双目测距联合YOLOv8 项目总结

代码贴:双目测距--5 双目相机 联合 YOLOv8_爱钓鱼的歪猴的博客-CSDN博客

0、图片筛选

可以用matlab,对双目图像做个一个筛选,也就是做双目标定。

熟悉matlab的小伙伴完全可以用matlab做双目标定,我是没咋接触过不知道怎么导出标定结果,所以我只是用其做图片筛选,然后用OpenCV标定,因为后续开发也是OpenCV

 所有图像双目标定,可以看出有几对图像的误差比较大

剔除这些图像对,再次标定查看下

1、单目标定(张友正标定法)

获得左相机、右相机的cameraMatrix(内部参数值)、disCoeffs(畸变矩阵)

2、双目标定

固定左右相机的内部参数值、畸变矩阵,求R (右相机坐标系相对于左相机坐标系的旋转矩阵),T(右相机坐标系相对于左相机坐标系的平移动向量), E(本征矩阵), F(基础矩阵)

进一步求得畸变矫正、立体矫正所需的映射矩阵,以及深度差异映射矩阵Q

原图:

 畸变矫正、立体矫正后:

 画横线检查是否行对准,验证矫正质量

3、获取深度图并使用yolov8进行目标检测

利用双目标定结果,对左右相机图像进行畸变矫正、立体矫正,此时两相机共面且行对准。

利用SGBM立体匹配算法获取视差图,并进一步获得图像每个像素的深度信息(深度图)

yolov8对矫正后的左相机图像进行物体检测,目标框中心点的深度值即为距离

 其他:

stereoRectify() flags参数设置

原图

flags-设置为CV_CALIB_ZERO_DISPARITY

 flags-设置为0

  flags-设置为-1

猜你喜欢

转载自blog.csdn.net/weixin_45824067/article/details/130876353