李国亮+古明辉+卢健瀚
摘 要
本文设计了一种基于Hi3516A及ODROID-C2的单目测距系统。该系统以Hi3516A作为主控芯片进行图像数据采集,通过交换机将所采集数据传输到ODROID-C2,再由ODROID-C2对图像数据进行处理,经过识别算法及测距相关算法进行物体识别及测距,最后给出结果值。实际测试的结果表明,测距的精度可达到20cm以内,基本能满足项目需求。
【關键词】单目摄像头测距 图像数据采集
1 背景及单目测距原理介绍
目标测距是机器人视觉系统的重要应用。目前,主要的目标测距方法主要有超声波测距,红外测距,激光测距以及视觉测距。近年来,视觉测距吸引了许多学者的研究。随着制造技术的发展,摄像头设备价格走低的同时性能越来越好。因此摄像头应用于视觉测距领域成为一种受欢迎的方式。
1.1 单目测距原理介绍
视觉测距首先要解决的问题是将图像的座标转换为机器人实际座标。座标映射器的任务就是将摄像头帧图片的像素点座标映射到机器人座标。
从图1三角等比例相似关系可以计算出实际距离d=d0[(h-a)/a]=d0*h/a-d0=A+B/PVC
计算出纵座标后,横座标的距离也可以相应地计算出来,如图2所示。
根据三角形相似关系,实际横座标X=(C*PR)/PV。其中C为常数,PR为X像素点座标像素值,PV为Y像素点座标像素值。在得知常数A、B、C后,再计算目标在图片中的像素值,即可计算出机器人座标的实际值。A,B,C常数与摄像头与地面的形成的角度有关。摄像头的位置确定不变后,这些值就可以确定了。A,B,C常数的值可以通过左确定距离拍摄棋盘格的图片,通过角检测算法确定与棋盘4个角同像素的对应关系得出。本文不对此算法展开讨论。
2 系统介绍
单目测距系统分为硬件系统及软件系统。
2.1 硬件系统
硬件系统框图如图3所示,摄像头模块包括图像传感器及镜头系统。镜头采用5MP像素,为了有较大的视觉范围,采用3.6MM的焦距,图像传感器采用SONY的IMAX178。此CMOS图像传感器面积为1/1.8'',最大3072*2048 约 6.29M有效像素。5M像素输出时,可在12bit下达到60帧/秒,14 bit下达到30 帧每秒。为了达到更高的帧率,选定了 5M像素,12bit,60帧/秒。
HI3516A集成智能分析加速引擎,支持智能运动侦测、周界防范、视频诊断等多种智能分析应用。内置A7@ 600MHz, 32KB I-Cache, 32KB D-Cache /128KB L2 cache,支持 Neon 加速,集成 FPU 处理单元,H.264 BP/MP/HP, H.265 Main Profile, MJPEG/JPEG Baseline 编码,H.264/H.265 编码可支持最大分辨率为 5M Pixel,H.264/H.265 多码流实时编码能力:? 5M@30fps+VGA@30fps。输入支持8/10/12/14 bit RGB Bayer DC时序视频输入,时钟频率最高150MHz,支持MIPI、 LVDS/Sub-LVDS、 HiSPi接口,兼容多种sensor并行/差分接口电气特性,提供可编程sensor时钟输出,支持输入最大分辨率为5M Pixel。
列举以上参数可知,IMAX178 同Hi3516A连接及配合工作是合适的,可充分发挥2者的性能。为了让Hi3516A专注于ISP处理,Hi3516A出来的图像通过交换机传输到ODROID-C2进行算法计算并处理结果。ODROID-C2系个功能强大的四核单板计算机,CPU为四核Amlogic ARM? Cortex?-A53(ARMv8),时钟频率为 1.5Ghz,集成了包含2个像素处理器+2个Vertex阴影处理器的Mali?-450 GPU,2Gbyte的DDR3 SDRAM,网络接口为千兆以太网,同时带有H.265 4K/60FPS 以及 H.264 4K/30FPS 的 VPU。可运行最新的Ubuntu及Android系统。
2.2 软件系统
如图4所示,IMX178 经过光电转换,出来的是Bayer 格式的原始图像, Bayer 格式的原始图像传送给 ISP后经过逻辑单元进行算法处理及Firmware控制镜头及IMAX178完成光圈调节、曝光调节、白平衡调节、减嘈、除雾、Gamma调节、锐化调节等功能,输出 RGB 空间域的图像给后端的视频采集单元VIU。设计过程可以参考HiISP的开发参考文档,开发文档中详细的列出了相关的接口调用。
如图5所示,Hi3516A运行于Ubuntu系统,主要由2个功能模块组成。分别为图片采集模块及HTTP服务模块。图片采集模块包括图4的ISP子系统以及图片及视频输出接口。HTTP服务模块监听8080端口,以响应ODROID-C2及其他外界访问,接收摄像头相关参数设置及图片、视频采集或其他控制命令。
如图6所示,ODROID-C2运行于Ubuntu系统,主要由4个功能模块组成。图片视频服务器储存所采集的图片及视频文件,然后通过目标识别模块计算出所要识别的目标在图片中的像素位置信息,得出像素位置信息后,将结果发送到目标距离计算模块,最后输出目标到HTTP服务器。
3 测试结果
实际距离指摄像头与地面垂直交点为起点,在地平面的直线距离。已经考虑到摄像头与地面的倾角。从120cm到500cm,系统测量均可以识别出目标并准确计算直线距离值。测量实际误差均少于20cm。
4 结论
本文给出了一种单目测距系统的方案,介绍了软硬件的设计,并且给出了实际测量的结果值。从测量结果看,从系统畸变允许的视域范围内,误差在20cm以内,基本能满足项目需求。
参考文献
[1]Coordinate Mapping,Andreas, Konstantin,Reiko & Taavi,http://robotex.ing.ee/2012/01/coordinate-mapping/2012,01.
[2]IMAX178LQJ-C Technical Datasheet V3.0.0,Sony corporation 2012.11
[3]Hi3516A/Hi3516D专业型HD IP Camera 用户指南,深圳市海思半导体有限公司,2015(06).
[4]ODROID-C2 Specifications,Hardkernel co.,Ltd.2013.