相机标定主要分为内参标定、外参标定。
一、标定各个相机内参
对各相机进行内参标定,建议拍摄时注意一下两点
- 1、棋盘默认左上角为世界坐标系原点,不要旋转棋盘超过~15-30度。
- 2、拍摄分布在不同距离,每个距离覆盖所有图像视角(所有的边界,中心等)
1、内参标定
内参标定使用 Calibration.exe 程序,这里直接给出相机ipc1和相机ipc2的标定命令行
1
2
3
4
5
6
7
8Calibration.exe -mode 1 -grid_square_size_mm 120.0 // 棋盘方格的边长(mm) -grid_number_inner_corners 7x6 // 棋盘格内角点网格数 -camera_serial_number ipc1 // 相机标记字符串 -calibration_image_dir ipc1_resize // 相机标定使用图片存放路径 -camera_parameter_folder xml // 标定参数结果ipc1.xml存放路径
1
2
3
4
5
6
7
8Calibration.exe -mode 1 -grid_square_size_mm 120.0 // 棋盘方格的边长(mm) -grid_number_inner_corners 7x6 // 棋盘格内角点网格数 -camera_serial_number ipc2 // 相机标记字符串 -calibration_image_dir ipc2_resize // 相机标定使用图片存放路径 -camera_parameter_folder xml // 标定参数结果ipc2.xml存放路径
依次多个相机进行内参数标定…
2、畸变校正
使用标定xml结果对使用图片进行畸变校正,并显示
1
2
3
4
5OpenPoseDemo.exe --image_dir D:Gym相机标定视频内参camera5_img --frame_undistort --camera_parameter_path D:Gym相机标定视频内参camera5.xml
也可以对视频进行畸变校正并显示
1
2
3
4
5
6OpenPoseDemo.exe --num_gpu 0 --video D:Gym相机标定视频内参Camera1.mp4 --frame_undistort --camera_parameter_path D:Gym相机标定视频内参camera1.xml
注意:根据opencv的版本,有可能对h264h265的裸流文件不能识别,需要先进行封装为可识别的视频文件如MP4、avi等。
对于在线的相机进行实时矫正显示,windows下不能加参数–webcam,
1
2
3
4
5OpenPoseDemo.exe --num_gpu 0 --frame_undistort --camera_parameter_path D:Gym相机标定视频内参camera1.xml
二、外参标定
外参标定需要多路相机同时采集图片,保持张数一致,命名规则一致。
1、保存畸变矫正后图片
准备四个相机同时拍摄的相片集,分别做畸变校正并保存
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28OpenPoseDemo.exe --num_gpu 0 --image_dir D:/Gym/相机标定视频/外参/snapimages/cam1_img --frame_undistort --camera_parameter_path D:/Gym/相机标定视频/外参/hik/camera1.xml --write_images D:/Gym/相机标定视频/外参/snapimages/cam1_img_undistort OpenPoseDemo.exe --num_gpu 0 --image_dir D:/Gym/相机标定视频/外参/snapimages/cam2_img --frame_undistort --camera_parameter_path D:/Gym/相机标定视频/外参/hik/camera2.xml --write_images D:/Gym/相机标定视频/外参/snapimages/cam2_img_undistort OpenPoseDemo.exe --num_gpu 0 --image_dir D:/Gym/相机标定视频/外参/snapimages/cam3_img --frame_undistort --camera_parameter_path D:/Gym/相机标定视频/外参/hik/camera3.xml --write_images D:/Gym/相机标定视频/外参/snapimages/cam3_img_undistort OpenPoseDemo.exe --num_gpu 0 --image_dir D:/Gym/相机标定视频/外参/snapimages/cam4_img --frame_undistort --camera_parameter_path D:/Gym/相机标定视频/外参/hik/camera4.xml --write_images D:/Gym/相机标定视频/外参/snapimages/cam4_img_undistort
2、外参标定
外参标定算法中,用到了Eigen库,因此编译openpose需要依赖Eigen库。
2.1 目录结构
官方流程是所有图片是经过undistort后render的图,放入同一个文件夹,
图片格式 [%12d]_rendered[CAMERA_NUMBER_MINUS_1].png
例如,4个相机,2张图:
1
2
3
4
5
6
7
8
9000000000000_rendered.png 000000000000_rendered_1.png 000000000000_rendered_2.png 000000000000_rendered_3.png 000000000001_rendered.png 000000000001_rendered_1.png 000000000001_rendered_2.png 000000000001_rendered_3.png
另外,文件夹中每个相机拍摄的图片数量要一致,并且相机参数文件和这里需要标定的相机数保持一致。例如,这里有4个相机,camera_parameter_folder/flir/中相机内参xml文件也只能有4个(可以指定不使用默认)。
2.2 依次两两标定
先以前4个相机为例 顺序为 cam1-cam2-cam3-cam4 (序号为 0-1-2-3)
将cam2作为坐标系原点。这里以10张图为例。
(1)标定 1,0 两个相机
1
2
3
4
5
6
7
8
9
10Calibration.exe --mode 2 --grid_square_size_mm 120.0 --grid_number_inner_corners 7x6 --omit_distortion --calibration_image_dir D:Gym相机标定视频外参extrinsic_calibration --cam0 1 --cam1 0 --camera_parameter_folder D:Gym相机标定视频外参hik
(2)标定 1,2 两个相机
1
2
3
4
5
6
7
8
9
10Calibration.exe --mode 2 --grid_square_size_mm 120.0 --grid_number_inner_corners 7x6 --omit_distortion --calibration_image_dir D:Gym相机标定视频外参extrinsic_calibration --cam0 1 --cam1 2 --camera_parameter_folder D:Gym相机标定视频外参hik
(3)标定 1,3 两个相机
1
2
3
4
5
6
7
8
9
10Calibration.exe --mode 2 --grid_square_size_mm 120.0 --grid_number_inner_corners 7x6 --omit_distortion --calibration_image_dir D:Gym相机标定视频外参extrinsic_calibration --cam0 1 --cam1 3 --camera_parameter_folder D:Gym相机标定视频外参hik
这里,当1,3相机距离远,共同视角有限时,可以先标定2,3的关系,借助1,2已知的情况下,推出1,3的关系,可修改、并添加–cam0 2 --cam1 3 --combine_cam0_extrinsics参数,即
1
2
3
4
5
6
7
8
9
10
11Calibration.exe --mode 2 --grid_square_size_mm 120.0 --grid_number_inner_corners 7x6 --omit_distortion --calibration_image_dir D:Gym相机标定视频外参extrinsic_calibration --cam0 2 --cam1 3 --combine_cam0_extrinsics --camera_parameter_folder D:Gym相机标定视频外参hik
三、补充说明
内参标定后, 可以不需要进行一次畸变校正。(外参标定时可指定输入是未校准的图片)
外参标定时,内参标定的xml文件放在一个文件夹中;用于外参标定的图片文件放在一个文件夹。
不同相机的图片统一添加后缀,后缀按照 第一个相机xxxx.ext,第二个相机xxxx_1.ext,第三个相机xxxx_2.ext,依次类推。相机顺序和图片后缀命名顺序一致。同样内参xml文件也要有顺序,例如第一个相机camera1.xml,第二个相机camera2.xml,第三个相机camera3.xml。
最后
以上就是微笑大神最近收集整理的关于openpose 官方相机标定流程(1)一、标定各个相机内参二、外参标定三、补充说明的全部内容,更多相关openpose内容请搜索靠谱客的其他文章。
发表评论 取消回复