• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

Kinect V2 相机标定

人工智能 光头明明 1717次浏览 0个评论

错位情况:

  ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190908100420578.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcnJ5Y29tZW9u,size_16,color_FFFFFF,t_70  
Kinect V2 相机标定   ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190908120506540.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcnJ5Y29tZW9u,size_16,color_FFFFFF,t_70 针对上述情况我们需要对相机进行配准,从而保证相机的彩色图与深度图不会错位。  

相机标定流程:

  声明,这里已经默认你已经安装了libfreenect2 和ros下的iai_kinect2, 参考安装教程:https://blog.csdn.net/u012424737/article/details/80609451 这种标定方法是先保存(record)一些图片,然后再计算标定(calibrate)。后面的坑3会说明为什么这么做。   需要标定四样东西:color彩色图像 ir红外图像 sync帧同步 depth深度图像   前期准备需要打印好你的标定板,可以从以下网址下载不同的标定板   chess5x7x0.03.pdf chess7x9x0.025.pdf chess9x11x0.02.pdf   下面我选择了用chess5x7x0.03标定板,标定板的5和7对应的宽和长的黄十字点个数。 如下图  
Kinect V2 相机标定  

具体实施方案:

  1,连接传感器并运行kinect2_bridge  

roslaunch kinect2_bridge kinect2_bridge.launch
cd ~/catkin_ws/
#运行kinect2_bridge
roslaunch kinect2_bridge kinect2_bridge.launch
#打开一个新终端,查看点云图
rosrun kinect2_viewer kinect2_viewer sd cloud

  2,使用iai_kinect2下的kinect2_calibration对传感器进行标定  

#新终端
rosrun kinect2_bridge kinect2_bridge _fps_limit:=2//以每秒少的帧数启动kinect2_bridge(以便在您的CPU上轻松实现)
#新终端
//为校准数据文件创建一个目录(目录任意),并转到这个目录下
mkdir  /home/harry/catkin_ws/src/kinect_cal_data; 
cd /home/harry/catkin_ws/src/kinect_cal_data

rosrun kinect2_calibration kinect2_calibration chess5x7x0.03  record color//记录彩色摄像机的图像
//出现这样的错误提示是无妨的请看后面

//出现图像窗口后,按空格键开始收集图片即可,采集50张左右,有位置深度变化
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate color//校准内参矩阵

rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record ir//记录红外摄像机的图像 
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate ir//校准红外摄像机的内参矩阵

rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record sync//在两台摄像机上同步录制图像: 
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate sync//校准配准矩阵 

rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate depth//校准深度测量:

  下一步,找到设备的序列号,如坑3  

roscd ~/kinect2_bridge/data
mkdir  008426164947

  然后,将以下文件calib_color.yaml calib_depth.yaml calib_ir.yaml calib_pose.yaml 从校准目录(〜/ kinect_cal_data)复制到刚刚创建的目录中   重启kinect2_bridge并对更好的数据感到惊讶,会看到相机的彩色图与深度图不会错位  

cd ~/catkin_ws/
#运行kinect2_bridge
roslaunch kinect2_bridge kinect2_bridge.launch
#打开一个新终端,查看点云图
rosrun kinect2_viewer kinect2_viewer sd cloud

  效果如下:  
Kinect V2 相机标定   可以看到相机标定后错位少了很多。  

注意事项:

  坑1:标定深度的时候出现:  
Kinect V2 相机标定   解决方案:没有数据的意思,需要记录前的三种数据(color彩色图像 ir红外图像 sync帧同步),每种100张,需要至少两种距离   坑2: 如何查看自己Kinect V2的序列号 方法: 运行 roslaunch kinect2_bridge kinect2_bridge.launch   可以发现:  
Kinect V2 相机标定   这里的008426164947便是自己设备的序列号   坑3: 在运行下面三条语句时  

rosrun kinect2_calibration kinectcalibration chess5x7x0.03 record color
rosrun kinect2_calibration kinectcalibration chess5x7x0.03 record ir
rosrun kinect2_calibration kinectcalibration chess5x7x0.03 record sync

  都会提示下面的错误:  
Kinect V2 相机标定   这时候我们不用在意,只要按照指示, [SPACE, s] – Save current frame 按空格保存图片即可,每个类型保存各50张左右张,可以在创建的kinect_cal_data下查看即可,然后再分别对每个类型的50张左右图片进行计算。   参考网址: https://blog.csdn.net/sinat_23853639/article/details/80276848 https://blog.csdn.net/qq_40313712/article/details/85231192 https://blog.csdn.net/qingdu007/article/details/79204115


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明Kinect V2 相机标定
喜欢 (0)

您必须 登录 才能发表评论!

加载中……