项目 / 水下立体视觉

img

水下1.0总结

img
img
img

1.工作原理

  • 工作原理 (静态) :线激光照射到被测物体上,形成有变形的条纹。通过反射镜的旋转,条纹可以打到整个被测物体上,通过左右图像进行水下三维重建。

2.系统算法流程(核心)

  1. 线激光扫描,相机拍照—–>水下双目拍照+激光扫描测量物

    • 舵机控制,arduino控制,NUC控制相机
  2. 基于平顶线结构光的中心_亮条纹提取算法—–>提取中心亮条纹

  3. 水下线结构光匹配(共面约束找对应点 / 混合积为0)—–>找到对应像点m1和m2
    img

    • 空气中可以进行立体矫正,从而使得符合极线约束找到对应像点。
    • 而水下不存在极线约束,只有共面约束
    • 所以我们计算传递到最后一层的点矢和方向矢,转换到同一坐标系,三个矢量共面,混合积为0找寻对应像点。

img


  • 具体流程:

  • step1:分别计算左右图像光条上的点,,计算最后一层的 点q和方向矢量a、(qL,qR,aL,aR)

  • step2:左相机的一个点,去搜寻右相机中最匹配的点和矢量

  • step2.1首先确定上界、下界、中点值
    img

  • 二分法

    • 当A_up * A_down >0 同号无效
    • 当A_up * A_down <0 时
    • A_up * A_mid >0 同号 A_up = A_mid,反之A_down = A_mid
    • 当 | A_up - A_down | <threshold终止,或者迭代次数超过最大值

  1. 最后最后:水下三维坐标XYZ求取—–>
    • 根据多层平面光场成像模型,光线分别传播到最后一层界面后,对右相机的点矢量q和方向矢量a转换至左相机。
    • 最后点P同时在两条直线上,所以满足:

img

  • 矢量差乘为0,对方程进行奇异值分解,求取点P。

双目立体视觉总结

  • 1.微软Kinect——结构光——三角测量

    • 距离近,受阳光影响大
  • 2.TOF相机——time of flight——飞行测距法——发射反射接收

    • 使用调制光,帧率高
    • 电力消耗高,低分辨率
  • 3.激光雷达传感器:距离远,效果佳

    • 成本高,垂直分辨率低
  • 总结:都是发射光线,反射光线获取信息,功耗大

  • PNP,单目相机的位姿跟踪计算

  • 移动的单目相机,(SFM),比较多帧的差异来获得深度信息。

  • 空气双目立体视觉流程

  • 1.相机标定、立体标定

  • 2.采集图像,对图像进行立体矫正,使其相机共面且光轴平行(立体矫正)

  • 3.Z = f*b / d视差,利用SGBM等匹配算法计算出左右图像的对应点,从而计算出像点深度

  • 在立体矫正后,行对齐的情况下,我们可以通过三角形的相似原理,计算出像点的深度Z = f * b(基线距离) / d(视差)


总结:线激光 / 高速生物测量相机

img


水下2.0总结

1.硬件选型

文章作者: Inter
文章链接: https://zuizichuan.cn/2020/07/24/%E9%A1%B9%E7%9B%AE-%E6%B0%B4%E4%B8%8B%E7%AB%8B%E4%BD%93%E8%A7%86%E8%A7%89-1/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Zichuan365' Blog