美文网首页Open CV
OpenCV实现双目测距

OpenCV实现双目测距

作者: cssc_eda9 | 来源:发表于2017-12-24 09:57 被阅读1378次

原理图示

原理很简单,利用了相似三角形计算距离,所以双目测距的主要任务在于前期摄像头的定标、双目图像点的特征匹配上。

常用做法具体步骤

1.双目定标和校正,获得摄像头的参数矩阵

摄像头定标一般都需要一个放在摄像头前的特制的标定参照物(棋盘纸),摄像头获取该物体的图像,并由此计算摄像头的内外参数。标定参照物上的每一个特征点相对于世界坐标系的位置在制作时应精确测定,世界坐标系可选为参照物的物体坐标系。在得到这些已知点在图像上的投影位置后,可计算出摄像头的内外参数。

如上公式所示,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由三个参数k1,k2,k3确定;由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数p1,p2确定。

具体操作:

cvStereoRectify 执行双目校正
initUndistortRectifyMap 分别生成两个图像校正所需的像素映射矩阵
cvremap 分别对两个图像进行校正

2.立体匹配,获得视差图:

具体操作:

预处理: 图像归一化,减少亮度差别,增强纹理
stereoBM生成视差图
匹配过程: 滑动sad窗口,沿着水平线进行匹配搜索,由于校正后左右图片平行,左图的特征可以在右图对应行找到最佳匹配
再过滤: 去除坏的匹配点 通过uniquenessratio
输出视差图disparity:如果左右匹配点比较稠密,匹配点多,得到的图像与原图相似度比较大, 如果匹配点比较稀疏,得到的点与原图 相似度比较小

3.得出测距:

根据提取的特征点上用上述双目测距的相似三角算法得出距离。

小车中的实际应用

  • SIFT特征提取算法对左右图像点提取特征
  • knnMatch取k=2找到左右图片最佳匹配
  • 再过滤去除坏的匹配点
  • 对于剩下的点使用相似三角形计算公式得到图片各点景深标在图上
  • 最终小车避障可根据其中少数点进行判断,或者取均值。

相关文章

  • OpenCV实现双目测距

    原理图示 原理很简单,利用了相似三角形计算距离,所以双目测距的主要任务在于前期摄像头的定标、双目图像点的特征匹配上...

  • 双目标定(三)

    借助Matlab标定 Matlab标定结果 向OpenCV中写入标定结果并测试。参见双目测距(四)

  • 双目测距

    左边中轴到点P在左相机的成像点也就是xl的距离为 xl 右边中轴到点P在右相机的成像点也就是xr的距离为 ...

  • 用solvepnp求距离和角度

    最近正在用opencv实现测距,看到网上有完整代码的不多,所以就来写一篇。参考了这篇文章:1.Opencv:Sol...

  • 机器视觉学习笔记: 一个双目测距的简单实例

    1.实例目标 学习OpenCV也一月有余了,遂想进行一个双目测距的简单实验,先解决从无到有,再解决锦上添花。 该实...

  • 双目测距(四)

    Code: 这个矩阵很重要/*事先标定好的相机的参数fx 0 cx0 fy cy0 0 1*/ 最后得到的深度大...

  • opencv3.2 单目摄像头的标定与矫正

    最近打省电赛,与双目立体视觉相关。要实现双目测距首先要进行摄像头的标定,单目标定主要是为了测定摄像头的内参矩阵和畸...

  • Robomasters视觉研究全记录

    创建于20171129 12/08 双目测距 https://www.cnblogs.com/daihengche...

  • 双目视觉棋盘标定板的选择

    网上有的就不说了,这里说些细节 1.双目测距的注意事项: 在测距之前一定要确定自己测量的目标的大概距离(比如1.5...

  • 人工智能课第三次展示

    AI Car 第三次展示报告 实现的功能 基于摄像头的双目测距 基于卷积神经网络的图像识别 基于长短期记忆网络的音...

网友评论

    本文标题:OpenCV实现双目测距

    本文链接:https://www.haomeiwen.com/subject/rlxcgxtx.html