双目测距联合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

### 使用YOLOv8进行双目相机标定 需要注意的是,YOLOv8本身是一个目标检测模型,并不直接提供双目相机标定的功能。然而,在某些应用场景下,可以利用YOLOv8的目标检测能力辅助完成特定条件下的双目视觉任务。 对于双目相机系统的标定工作通常依赖于专门设计的算法来计算立体几何参数,比如OpenCV提供了成熟的工具来进行此类操作[^3]。如果希望结合YOLOv8实现更复杂的应用场景,则可以通过先识别出共同的兴趣点(例如交通标志、行人等),再基于这些兴趣点的位置信息进一步处理以达到某种形式上的“伪标定”。 #### 利用YOLOv8辅助双目相机标定流程概述: 1. **环境准备** 安装必要的库文件,包括但不限于PyTorch, OpenCV-Python以及ultralytics/yolov8对应的版本。 2. **加载预训练好的YOLOv8模型** ```python from ultralytics import YOLO model = YOLO('yolov8n.pt') # 加载轻量级网络结构作为例子 ``` 3. **读取来自左、右摄像机的画面流并执行对象检测** ```python import cv2 cap_left = cv2.VideoCapture(0) # 假设这是左侧摄像头索引 cap_right = cv2.VideoCapture(1) while True: ret_l, frame_l = cap_left.read() ret_r, frame_r = cap_right.read() results_l = model(frame_l) results_r = model(frame_r) annotated_frame_l = results_l[0].plot() annotated_frame_r = results_r[0].plot() combined_frames = np.hstack((annotated_frame_l, annotated_frame_r)) cv2.imshow('Stereo Pair', combined_frames) if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows() ``` 4. **分析左右两侧相同类别物体之间的相对位置差异** 此部分涉及较为复杂的计算机视觉理论和技术细节,如视差图构建、三维重建等。具体实施时需考虑实际需求定制化开发相应逻辑。 5. **应用校正矩阵调整原始图像** 一旦获得了足够的对应关系数据集之后,就可以采用传统方法求解内外参矩阵进而得到最终的矫正结果。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值