基于Dragonboard 410c平台的机器3D视觉——如何标定摄像机并获取参数

相信大家在diy机器人的时候,都想让自己的机器人像人一样能够识别周围的环境进行自主运动,今天推出的系列blog将带大家一起学习和了解机器3d视觉,向大家介绍3d视觉相关原理,并以dragoboard410c开发板为平台进行简单的3d视觉实验,这里我们将涉及到3d视觉中的摄像机标定、姿势估计、对极集合和3d图像中的深度地图等内容。
这篇blog主要向大家介绍摄像机标定涉及到的一些基础概念和原理,这是我们进行3d视觉处理的基础,在dragonboard 410c上我们可以方便的用usb摄像头进行图像采集,但是通常我们买的usb摄像头采集到的图像会带有一定的畸变,这些畸变将给后续我们进行3d视觉处理计算带来误差,为了消除这些误差,我们在进行3d视觉建模的过程中需要对我们使用的摄像机进行标定,获取相机内外参数,然后再根据内外参数对计算进行纠正。
摄像机采集到的图像发生的畸变通常分为径向畸变和切向畸变两种,如下图2所示,我们用摄像头对棋盘进行拍摄获取图像,用红色直线将棋盘的两个边标注出来的时候,可以发现棋盘的边界与红线并不重合,这就是畸变带来的成像影响,如果不进行处理,后续进行3d视觉计算,其将影响计算结果。
通常径向畸变我们可以通过下面的方程组来进行纠正:
同样,采用相似原理,我们通过下面的方程组来进行校正:
根据上述分析,如果我们在使用摄像头进行采集的时候,要对采集的图像进行畸形校正,就必须找到五个造成畸变的系数如下:
同时,校正的过程中我们并不是为了校正图像,更重要的是我们需要找到摄像机的内外参数,这些参数是我们后面进行3d计算的关键参数,觉得了3d计算的精度,包括摄像机的焦距(fx,fy),光学中心(cx,cy)等,在计算中我们用矩阵进行表示,通常称为相机矩阵,这些参数是相机的固有参数,一般情况下,如果不去调整硬件,是不会变化的,因此在进行3d视觉计算的过程中,我们这些参数在计算机标定的时候计算出来即可,其矩阵表示如下:
以上就是整个摄像机标定的基本原理和相关概念,在机器3d视觉计算中,先要通过标定确定这些参数,通常的做法是通过一些包含了非常明显的图案样本(棋盘),然后找到图像中的比较特殊的拐点,然后得到这些特殊点在图片中的位置和实际位置,通过真实位置和实际位置就可以采用上述数学方法来计算求解方程组中的相关参数,即我们在3d计算中所需要的畸变系数。
以上就是整个摄像机标定的基本原理和概念,这里只是简单的介绍了单个摄像头的标定,如果大家想要更精确的视觉3d建模或者想详细了解摄像机标定的原理,可以参考双目视觉几何框架系列--机器视觉一文,下期blog将在此基础上介绍如何用cv库中的函数来实现摄像机图像的标定编程。

中移芯昇科技亮相2023世界半导体大会暨南京国际半导体博览会
格芯技术在汽车雷达领域的优化方案
承德科胜半自动旋盖机|二锅头压盖机|河北旋盖机
【1.18】USB OTG与CAN应用的开发首选 | 雅特力发布AT32F425系列超值型Cortex®-M4 MCU
Vishay发布新款集成功率光敏
基于Dragonboard 410c平台的机器3D视觉——如何标定摄像机并获取参数
虹科方案|HK-ATTO 和西部数据为性能要求苛刻的应用构建存储解决方案
工业pH计使用中出现的问题有哪些
嵌入式无风扇工控机实现智能交通管理
PLC和DCS控制系统有何区别
地方申报燃料电池汽车示范城市群情绪高涨
一位共阳极LED数码管的引脚详情分析
机器视觉的四大功能
植入式动脉传感器面世,可实时监测血压
龙芯2P0500打印机主控芯片初样研制
加速科技应邀出席厦门国家火炬高新区建设30周年大会
激光切割双层平台的制作
EVA+项目推动意大利、奥地利充电桩及交通基建建设
中国移动要实现十三五规划目标还需要重点抓好六个方面的工作
一文浅述电路系统中的谐振(上)