查看: 890|回复: 0

[评测分享] 【英蓓特I.MX8M MaaxBoard开发板】试用4--基于深度学习双目测距

[复制链接]

该用户从未签到

发表于 2020-12-3 21:22:41 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 乐米hmf 于 2020-12-3 21:28 编辑



1 引言


1.1 双目测距原理及算法流程
  正常人可以通过两只眼睛,通过在人的大脑中3D成像,可以大致的估算出前方目标物体的距离,这也就是双目测距的基本原理,利用安放在固定位置上的两个摄像头,所拍摄出的图像的视差,来计算出目标物体的距离。图一为我所使用的双目摄像头的图片。
QQ截图20201203200031.png

图1

  图2,为整个双目测距系统的算法流程。准备工作还包括,在PC端利用MATLAB,完成相机标定,将标定好的内参数矩阵和重投影矩阵,导入程序内,用于后续的立体校正以及三角测量。当相机获取图像后,左右相机的图片分别利用MobileNetv3-ssdlite完成目标检测,并截取带有目标的图片;对图像中可能存在的多目标,利用dHash完成多目标图片对匹配,也就是将各个目标在左右相机中的图片配对;将图片对完成特征点检测与匹配;将匹配好的特征点校正,再利用三角测量法完成距离计算。

QQ截图20201203200306.png

图2

1.2 算法简介

1.2.1 MobileNetv3-ssdlite

  MobileNetv3是一种基于深度可分离卷积的分类网络,适于在嵌入式平台上使用。能够以较快的速度完成较高精度的检测。SSD利用多尺度特征图进行目标检测,对较小的物体的检测能力,明显优于同类型的YOLO模型。MobileNetv3- SSDlite利用MobileNetv3作为block,结合SSD目标检测网络结构,将MobilenetV3抽出二层特征层+另外补充的4层卷积层输出的特征,进行分类和回归。图3,为MobileNetv3的网络结构,图4为SSD的网络结构。

mobile.png

图3

SSD.png

图4

1.2.2 dHash算法

  感知哈希算法是一类哈希算法的总称,用于生成每张图片的指纹信息,比较不同图像的相似性。感知哈希算法包括均值哈希(aHash)、感知哈希(pHash)和差异值哈希(dHash)。本文选择dHash方法,对提取出的目标物图像计算出指纹信息,再计算汉明距离,通过汉明距离的大小判断两张图片中同一物体的相似性。

1.2.3 特征匹配

  ORB 是 Oriented Fast and Rotated Brief 的简称,可以用来对图像中的关键点快速创建特征向量,这些特征向量可以用来识别图像中的对象。经过ORB提取特征点后,使用knn最近邻搜索匹配,即分别计算两张图片的每个点之间的距离,找到距离最小的点,作为匹配点。经过最近邻匹配后,会有很多的误匹配点,再利用RANSAC方法去除误匹配点。

1.2.4 立体校正

  三角测量的计算公式是基于理想状态下共面且共基线的相机图片,进行推导的,而现实下的相机,会有各种各样的畸变,造成两张图片并不会共面。此时,需要将双目相机拍摄的两张图片映射到理想的共面且共基线下。常用的为,Bouguet算法:通过坐标系变换,来完成图片平面与世界相机平面的转化,此时还需要之前相机标定的内参数矩阵和重投影矩阵用于计算。图5,图6分别为校正前后示意图。

QQ截图20201203203236.png

图5 校正前不共面

QQ截图20201203203249.png

图6 校正后共面

1.2.4 三角测量

如图7为三角测量的原理,就是个相似三角形原理。P点是待测量点,OR、OT为左右相机的光学中心,p和p’为P在左右相机上的成像点,XR、XT为图像上的横坐标值,B为相机间距,f相机焦距,Z为待求的距离。Z = fB /(XR - XT)。

QQ截图20201203204856.png

图7


2 实验结果


  如图8,MobileNetv3- SSDlite识别结果;图9,立体校正后的图像及在目标上识别的特征点;图10,原图及目标上的特征点;图11,截取目标后的图片与特征点。图12,为测量值与实际值对应图表,这里看到当距离在750MM的时候,与其他的值相比较,误差较大,失去线性关系,这可能是因为距离过近带来的误差过大造成的影响。

QQ截图20201203194718.png

图8

QQ截图20201203194626.png

图9

QQ截图20201203194644.png

图10

QQ截图20201203194701.png

图11

QQ截图20201203210324.png

图12


3 总结


  至此,此次的试用,就结束了,非常感谢电路城论坛以及英蓓特能够给我这次机会,试用到这样一块完美的板子。在使用英蓓特I.MX8M MaaxBoard开发板的过程中,由于板子自身带来的问题,没有一个,足以说明一件事,这个板子的完美性,以及适配的系统的完美性。过程中的问题,主要还是在于我对debian系统的不熟悉,对linux编程的陌生。如果非要说个问题的话,那就只有,这个板子的散热不好,建议在散热片上装个小风扇。最后来一张,板子与双目相机的合照。

QQ图片20201203212132.jpg




回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

手机版|小黑屋|与非网

GMT+8, 2024-4-19 11:37 , Processed in 0.118474 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.