基于瞳孔定位的单目测距系统

2016-05-03 02:46李贤辉高钱恭斌
智能计算机与应用 2016年2期

李贤辉 高钱 恭斌

摘 要针对人和机器人在协同工作的过程中,机器人需要对伙伴进行准确的目标定位这个问题,设计了一个以ARM Cotex-A9 i.MX6Q为微处理器处理模块,USB摄像头为采集模块的嵌入式视觉测距系统,实现了单目视觉测距定位。该系统设计大体分为人眼瞳孔定位和单目测距两部分。人眼瞳孔定位通过USB摄像头采集人脸图像,系统对人脸图像进行处理,获取人脸图像中瞳孔的精确位置,获取人脸图像中瞳孔的位置采用Adboost人脸检测算法和灰度投影人眼定位算法;测距采用小孔成像三角形相似原理,根据实际人眼瞳距和图像中人眼瞳距信息计算出目标人物到摄像机镜头间的距离,其中摄像机的内参数标定借助于Matlab工具箱来完成。实验结果表明,该测距定位系统测距精度较高,系统鲁棒性好,具有良好的应用前景。

关键词单目视觉; 视觉定位; 嵌入式图像处理; 人眼定位

中图分类号:TP27 文献标志码:A 文章编号:2095-2163(2016)02-

Monocular vision measurement system based on eye location

LI Xianhui,GAO Ying,QIAN Gongbin

(College of Information Engineering,Shenzhen University,Shenzhen Guangdong China,518000)

Abstract:The target location problem of people-robot cooperation is discussed. A monocular vision measurement system with ARM Cotex-A9i.MX6Q microprocessor as the main processing module and the USB camera as the image capture module is presented. The system design includes two parts that eye location and measurement. The system capture the image of human face by USB camera ,and then process the image of human face by microprocessor to get eyes location in the image. The system use the Adboost and eye location based on gray projection to achieve the eye location, and the distance measurement according to the principle of small hole imaging. The intrinsic camera parameter calibration is performed with Matlab toolbox. The experiments show that the system is high in precision and robust.

Key words:monocular vision; visual localization; embedded image processing; eye location

0 引言

随着机器人研究的兴起,视觉测量作为嵌入式视觉系统的重要应用,受到了机器人领域的广泛关注。在视觉测量中,机器人使用摄像头采集目标物体的二维图像信息,并通过处理器对信息进行处理,以获取目标物体的位置等方位信息。按照视觉系统所使用摄像头的数目,可分为单目、双目和多个摄像头视觉系统[1]。

总而言之,单目视觉系统使用单个摄像头对目标物体进行图像采集及测量,本系统使用的是单摄像头视觉系统。双目视觉系统使用2个摄像头对目标进行测量,多摄像机视觉系统采用多台摄像机来进行目标测量[1]。

本文中,设计系统基于嵌入式Linux实现了单摄像头测距功能。系统控制摄像头对目标通过人脸图像采集,处理器再对采集到的人脸图像施以处理,获取人脸图像中瞳距信息,结合实际瞳距以及摄像机内部参数,达到对目标进行测距定位的目的[2]。系统采用被动测距,相对主动测距更具灵活性,并更显实用性,经测量数据验证表明,该系统测量精度较高,鲁棒性好。

1 硬件结构设计

本视觉系统,使用USB摄像机采集目标图像,选用基于Cotex-A9 架构的i.MX6Q芯片作为嵌入式核心处理器来进行视觉图像算法处理,用DDR3和Flash作为存储器。系统具体构成如下:

1) 处理器采用飞思卡尔i.MX6Q芯片,稳定运行时处理器主频为1GHz,最高主频可达到1.2GHz。

2) 容量为1GB的DDR3,2GB的Flash 存储。

3) 摄像头模块:USB摄像头,内部由CMOS感光芯片构成,30万像素,帧数为30fps。

4)SPI接口。

其中,摄像头是通过USB接口连接到主板上,DDR3/EMMC FLASH 通过内存控制把图像数据输送到微处理器进行处理。

2 算法设计

该视觉系统分为人眼瞳孔定位和摄像机标定测距2个模块。人眼瞳孔定位所采用的算法有Adboost人脸检测算法和灰度投影算法,摄像机内部参数标定使用Matlab工具箱来完成,测距采用小孔成像中三角形相似原理,通过处理器处理采集图像获取的人眼瞳孔的像素距离,根据人眼的实际瞳距,以及摄像机标定参数计算出摄像机镜头到目标人物之间的距离。

2.1 Adboost人脸检测算法

Viola[3]等提出了Adboost算法,能够实时地检测出人脸,具体算法[4]如下:

1)给定训练样本( ), ( ),…( ), =1和0分别表示人脸和非人脸。

2)初始化权重,当 时, =1/(2m);当 =1时, =1/(2l),m和l分别代表非人脸样本和人脸样本的个数。

3) t=1,2...T

归一化权重: ;

对每一个特征j训练一个分类器 (x),使得利用该分类器进行分类时,相应的错误率为: ;

选择错误率 最小的分类器 ;

④更新权值 ,其中 =0,表示正确分类, =1,表示错误分类。并且 ,计算分类器的权值为 。

4)最后构建一种强的分类器:

2.2灰度投影人眼定位算法

目前在人眼检测方面有很多成熟的算法,如边缘特征提取法、模板匹配法、基于Hough变换的检测方法,灰度积分投影法等。其中,灰度积分投影法是对人脸进行水平和垂直2个方向上的投影,根据波峰波谷的信息来定位人眼,这种方法实现简单,定位速度快,但对人眼姿态有较高的要求,当人脸发生旋转造成人眼有一定的倾斜角度时,传统的灰度积分投影法就很难对人眼进行有效的定位[5]。本系统采用改进的灰度投影法[6]对人眼进行定位。

其中,x,y分别为图像坐标水平方向和垂直方向上的坐标, 为像素值, , 分别为水平方向和垂直方向上的投影积分值, , 分别表示水平方向和垂直方向上的均值差分投影值。

假设人眼在帧存图像中的坐标为:左眼 ,右眼 ,具体算法如下:

1)读取检测到的人脸灰度图像数据,分别取人脸的左半脸和右半脸。

2)对左半脸在水平方向上进行均值差分投影,即公式(4),并存储 的值及相对应的图像坐标值y;

3)求出所有 值中的最大值,这个最大值对应的y值即是左眼瞳孔的垂直坐标值,记为 ;

4)根据 确定左眼垂直方向区域,记为H;

5)对左脸区域在垂直方向H范围内进行积分投影,即公式(3),并存储 的值以及相对应图像坐标值x;

6)求出 所有值中的最小值,这个最小值对应的x值即是左眼瞳孔的水平坐标值,记为 ;

7)则左眼坐标为 ;

8)同理可得右眼瞳孔坐标 ;

如图3所示,系统对人脸部位进行人眼瞳孔定位,十字交叉点即为人眼的瞳孔位置。

2.3摄像机标定与目标定位

2.3.1 摄像机内参数标定

本文使用7×5黑白交错的棋盘网格作为标定模板对摄像机进行标定,标定板的网格规格为30mm×30mm。使用摄像头模块采集20幅不同放置角度的模板图像,然后用Matlab标定工具箱对摄像机内部参数进行标定。

轴任

(6)

为世界坐标, 为摄像机坐标,R为3×3旋转矩阵,t为三维平移矩阵。

有如下关系[7]:

其中,M1为摄像机内参数矩阵, , ,f为摄像机内部焦距。

2.3.2测距算法

假设人眼瞳孔在摄像机坐标系中的坐标为 , , ,在图像平面中的投影分别为 , ,在摄像机坐标中人眼瞳孔x轴方向上模值为Δx=| |,单位为毫米(mm),在图像平面中人眼瞳孔u轴方向上的像素模值为Δu=| |,单位为像素(pixel)。根据摄像机针孔模型[7],若O为光轴与针孔平面的交点,则Δ 与Δ 相似,令| |=R,根据三角形相似原理,可得:

3 系统测量结果及分析

本文采取两个方面的数据测量来对系统进行验证,一方面是对系统测量精度的验证,另一方面是对系统测量鲁棒性的验证。系统精确度验证,采集目标物体在不同位置的距离测量数据,并对这些数据进行分析比较。鲁棒性验证,多次采集目标物体在同一位置的距离测量数据,而且对这些数据通过比较对照,计算均值误差。

3.1摄像机内部参数标定结果

摄像机内部参数标定结果:

3.2精确度验证

3.3鲁棒性验证

其中,该项测量设置实际距离固定为300mm,计算输出的测量距离的均值为312.85mm,由此可见系统的鲁棒性较高,计算输出的波动稳定在1cm左右。

4 结束语

系统以ARM Cotex-A9i.MX6Q为微处理器,USB摄像头为图像采集模块,设计了一个单目视觉测距系统,实现了测距功能。经测量数据表明该系统测距精度较高,鲁棒性好,基本能够满足机器人和人协同工作过程中机器人对伙伴进行实时定位的要求。当然,该系统功能比较简单,系统测距的精度也有待提高,在后续研究中,将会进一步提高瞳孔定位精确度以及摄像机标定参数的准确度,以提高系统测距的精度。

参考文献

[1] 邹伟,喻俊志,徐德,等. 基于ARM处理器的单目视觉测距定位系统[J]. 控制工程,2010, 17(4):509-512.

[2] 罗静云.一种基于人眼定位的单目测距方法[D].深圳:深圳大学, 2015.

[3] VIOLA P, JONES M. Rapid object detection using a boosted cascade of simple features[C]// Proceedingsof the2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Kauai, Hawaii USA :IEEE,2001:511-518.

[4] 杨定礼,赵正敏,白秋产. 基于Adboost与空间支持向量域分类的人脸检测[J]. 电路与系统学报, 2013, 18(2):321-325.

[5] 修春波,卢少磊. 基于极坐标的改进灰度积分投影法的人眼检测[J]. 计算机工程与应用,2015(12):161-164,170.

[6] FANG J Y, LING Lu. Eye location based on gray projection[C]//Proceedingsof 2009 Third International Symposium on Intelligent Information Technology Application , Nanchang :IEEE ,2009:58-60

[7] 马颂德,张正友.计算机视觉-计算机理论与算法基础[M].北京:科学出版社,2003.

[8] ZHANG Zhengyou. A flexible new technique for cameracalibration[J].IEEE Transactions on Pattern Analysis & MachineIntelligence,2000,22(11):1330-1334.