霍 炬,王行顺,王永锟,刘洪臣,杨旭强
(哈尔滨工业大学 a.电气工程及自动化学院;b.航天学院,哈尔滨 150080)
视觉定位系统实习平台开发
霍炬a,王行顺b,王永锟b,刘洪臣a,杨旭强a
(哈尔滨工业大学a.电气工程及自动化学院;b.航天学院,哈尔滨150080)
摘要为了能让本科毕业生将课堂上的知识运用到工程实践中,培养他们解决问题的能力,提高他们的综合素质,结合实际科研项目,综合利用实验设备,搭建了一套视觉定位系统,解决了从摄像机拍摄的图像序列中识别、定位运动目标的问题。该文采用基于金字塔分层的LK光流算法,并且采用TM6710工业摄像机对亮点的定位进行测试。经验证,该系统具有很好的实时性和较高的稳定性。
关键词视觉定位;图像序列;光流法
作为机器视觉与图像处理技术的一个重要分支[1],视觉定位技术在国防领域和日常生活中有着广泛的应用[2],如主动视频监控、人机交互等。在工业方面,视觉定位技术可以用于工业机器人系统中,机器人通过对目标的识别,定位出目标的位置。
为本科毕业生将来的就业和进一步学习奠定基础,哈尔滨工业大学为学生提供了校内实习的机会,搭建了视觉定位系统。首先,根据系统本身的特点,采用基于金字塔分层的LK光流算法;其次,在VC++6.0环境下利用OpenCV库对算法进行验证,并在实际定位环境下对算法进行性能测试;最后,对实习平台的软硬件进行设计,完成运动视觉定位系统的搭建,并对其进行测试。在实际运行中,刚开始时,系统采用的摄像头采集频率较低,影响了跟踪精度,更换采集频率比较高的TM6710摄像机后,最终结果显示,该系统能满足实验需求。
1视觉定位系统的总体结构
运动视觉定位系统的总体框图如图1所示。系统主要包括上位机、工业摄像机及空间目标模拟器3个部分。工业摄像机为TM6710,主要负责图像采集;上位机为一台高性能计算机,主要接收工业摄像机采集到的图像数据,进行图像预处理、特征角点提取、运动目标识别等相关的图像处理;运动目标模拟器为一个二维平面支架,模拟运动目标在平面内的运动。在此过程中,学生们对整个系统构架有了清晰的认识。
图1 视觉定位系统的总框图
2视觉定位系统原理
运动目标识别就是把图像序列中与背景存在相对运动关系的物体提取出来,而运动目标跟踪就是根据识别出的运动目标的图像特征,在接下来的图像序列中找出目标[3]。
本文采用基于金字塔分层的LK光流算法实现运动目标的识别与跟踪,该方法处理流程如图2所示。
图2金字塔分层LK光流算法流程
3基于金字塔分层计算的LK光流算法
金字塔分层的LK算法步骤为角点检测、图像分层和基于角点匹配的光流跟踪[4]。该算法基于小窗口匹配像素点,对图像分层可在一定程度上减小该约束的作用[5],因此能够处理较快的运动。
3.1角点特征检测
角点是指图像中具有高曲率的点[6]。角点包含较丰富的图像信息,利用角点进行匹配可以大大减小计算量。
本文采用Harris提出的角点检测算法[7]实现角点的检测,它利用图像的灰度信息来提取角点。
检测得到所有候选角点后,仅保留强度变化幅值局部最大的点,来寻找易于跟踪的特征角点。通过合理设定阈值,根据Harris角点检测方法检测出候选角点。然后,根据候选角点特征值大小,依次确定一个以该点为圆心,以d0为半径的区域,在该区域内,剔除其他的候选角点,保证该区域内只有一个特征值较大的候选角点。这样就保证了角点的健壮性。
3.2图像分层
对于大多数30 Hz的摄像机,大而不连贯的运动是普遍存在的,而LK光流算法适合于小而连续的运动,因此在实际跟踪过程中效果并不非常好[8]。通过分层后,大而不连贯的运动在底层便是小而连续了,可以进行光流计算[9]。用上一层得到的运动估计结果作为下一图像层的起始点来估计该层的光流,直至图像底层完成实际光流的计算。
IL-1(2x+1,2y)+IL-1(2x,2y-1)+
IL-1(2x+1,2y-1)+IL-1(2x-1,2y+1)+
IL-1(2x+1,2y+1))
(1)
(2)
3.3基于角点匹配的光流跟踪
(3)
金字塔LK光流算法步骤为:计算金字塔顶层图像ILM的光流,将得到的光流结果作为Lm-1层光流的初始值;再计算Lm-1层图像上光流的精确值[11]。同样,Lm-2层光流的初始值由Lm-1层光流的精确值估计,得到该层精确值后继续代入下一层图像估计初始值,直到计算出原始图像的光流。
在图像处理中,学生学习了光流法的理论知识和公式推导过程,为之后视觉定位系统的处理奠定了理论基础。
4基于光流法的视觉定位
图3是视觉定位的示意图,主要由摄像机和运动目标组成。
为了对本文的光流算法进行实用性验证,在实现算法的基础上,首先,利用摄像机运动情况下拍摄的飞行器视频对算法进行验证,它与本系统最终实验情况相同;其次,在算法正确的基础上对实际要定位的模拟运动目标进行静态定位实验,根据模拟环境的实际情况,在定位前需要进行相关图像预处理;最后给出测试结果。
图3 视觉定位示意图
4.1摄像机的标定
在进行视觉定位前,必须先建立图像坐标与世界坐标的转换关系,即完成摄像机的标定工作。在本实验中,摄像机标定完成的工作就是根据图像坐标差标定出云台在水平和垂直方向需要旋转的角度,即云台在水平和垂直方向需要旋转多大角度才能将目标由偏移位置移动到图像中心[12]。
标定步骤为:利用发光二极管作为标定点,采用重心法提取亮点的图像坐标。首先,将亮点置于图像中心,通过云台控制软件记录此时云台的位置,作为初始位置。通过云台控制软件控制云台在水平方向旋转αx,在垂直方向旋转αy,便得到图3中亮点的偏移情况,提取亮点的图像坐标,得到亮点与图像中心的像素差Δxd,Δyd。通过该过程便得到一个标定点。重复上述过程,便得到如表1所示的实验数据。
在跟踪过程中,当运动目标偏离图像中心时,计算目标中心相对于图像中心的图像差,根据表1,便可计算出使运动目标处于图像中云台在水平及垂直方向旋转的角度。在此需要注意,标定表对角度的求取有一个取反的过程。因为标定时是从图像中心偏移到标定位置云台旋转的角度,而跟踪时是需要将目标从偏移位置旋转到图像中心。对于标定表中没有的数据,可以通过线性插值求取。
标定过程让学生学习了相机标定的原理,了解了标定步骤。
4.2金字塔LK光流法验证性实验
基于金字塔LK光流法,程序实现了对运动目标的检测与跟踪。程序流程如图4所示。
由于该方法在识别出运动目标后,以角点来标识运动目标,所以该方法可以跟踪任何具有角点特征的运动目标,而与目标的形状无关[13]。但是,当目标出现完全遮挡时,角点跟踪会失效,需要重新识别运动目标直至目标再次出现。
表1 摄像机标定数据
图4 运动目标识别与跟踪流程
4.3模拟视觉定位测试
运动目标模拟系统模拟飞行器的平面运动。由于实际运动过程中支架的运动导致在视场内运动物体过大,为此在被跟踪区域贴标识来表示运动目标。在实际跟踪情况下,需先进行图像的预处理。
1)图像滤波。
图像滤波可以减少图像上的噪声。常见的图像噪声主要有高斯噪声、脉冲噪声等[14]。常见的滤波方法分为线性滤波和非线性滤波。最常见的线性滤波器就是均值滤波器,它采用奇数正方形窗口的平均灰度值代替窗口中心的灰度值,表达式为:
(4)
式中,M是邻域N像素总和,f(x,y)为第i行j列像素的灰度值。
2)目标标识提取。
目标标识提取的目的是提取运动目标的大致区域,便于在该区域内提取易于跟踪的角点,从而利用光流法跟踪运动目标。
为提取目标的轮廓,需对图像进行边缘提取,采用canny边缘检测法对图像进行边缘提取[15]。由于目标标识已知,根据面积大小去除不满足要求的轮廓,对接近标识面积大小的轮廓进行椭圆拟合,由于目标标识为圆形,故拟合出的椭圆长轴与短轴之比应接近1,据此便可提取出目标区域。
提取出目标区域后,便可在实际跟踪情况下对算法进行测试。在摄像机静止情况下,光流算法能够很好地完成运动目标的跟踪,跟踪比较稳定。
跟踪实时性测试中对光流法跟踪处理耗时予以计时,跟踪算法耗时约为4 ms。对于图像采集频率约为100 Hz的相机来说,跟踪处理过程能在图像采集间隔10 ms内完成,因此,实时性能够满足系统要求。测试该算法所能跟踪的最大速度时,主要受两个因素影响:一是图像采集速率;二是光流算法所能跟踪的最大像素差。对本文实现的光流算法测试发现,该算法能跟踪的两帧间最大像素差约为6个像素。若图像的采集频率为100 Hz,图像的分辨率为 640×480,那么,理想状态下该方法可以对视场内任意运动的目标进行跟踪。因此,系统的实际跟踪性能主要受图像采集频率影响。
在实验中,学生学到了目标提取的方法,并熟知了实验流程。
5系统平台组成
5.1系统平台硬件组成
系统平台的硬件由摄像机、运动目标模拟器和上位机3部分组成。
1)摄像机作为图像采集的工具,在本系统中相当于一个误差传感器,摄像机的成像质量直接影响跟踪效果。本文选用的摄像头是市面上普通的USB接口的CMOS摄像头,这种摄像头价格便宜且使用方便,可通过USB接口直接与计算机相连而无须图像采集卡,易于开发。主要技术规格如下:
①感光芯片:CMOS。
②分辨率:640 ×480。
③帧率:CIF格式30帧/s,VGA格式15-20 帧/s。
④接口:USB接口。
2)运动目标模拟器完成的功能是模拟飞行器的平面运动,作为待跟踪的运动目标。伺服控制柜主要有工控机及控制软件、GALIL运动控制卡和松下伺服驱动器等组成。最大运动速度为1.5 m/s,运动范围为2 m×2 m,能够模拟运动目标的直线运动与圆弧运动。
3)上位机作为图像处理部分的核心,运行运动目标的识别程序,完成对运动目标的实时坐标提取。
5.2系统平台软件组成
系统平台的软件开发是在VC++6.0环境下完成的,在开发过程中用到的是OpenCV函数库。
作为一个跨平台的开源的计算机视觉库,OpenCV的设计目标是执行速度尽量快,主要关注实时应用。这非常符合本系统的要求,它主要采用了优化的C代码实现。利用OpenCV可以帮助开发人员更便捷地开发计算机视觉相关的应用程序,其中包含的众多函数,涵盖了计算机视觉应用的许多领域。利用OpenCV可以轻松地实现一些图像的基本处理,如图像的几何变换、形态学处理、图像的轮廓处理和目标的特征提取等[16]。
使用OpenCV大大减小了在VC环境下开发运动目标识别与跟踪程序的复杂程度,而且在VC环境下使用非常方便,只需将用到的库文件和相关头文件添加到工程中,便可应用这些功能强大的函数。视觉定位软件界面如图5所示。
图5 视觉定位软件界面
6实验结果及分析
控制运动目标模拟器使运动目标在运动平面内做直线运动,根据运动目标识别结果控制云台旋转。根据对程序的测试,运动目标识别耗时约为15 ms,完成运动目标识别后,接下来的数据帧采用光流法对运动进行跟踪提取耗时约为4 ms。
经实验验证,在现有条件下能够满足系统的实时性要求。
参 考 文 献
[1]徐剑.目标跟踪系统的设计与研究[D].西安:西北工业大学,2005.
[2]伍翔.视频图像中运动目标检测与跟踪方法研究与实现[D].哈尔滨:哈尔滨工业大学,2007:1-10.
[3]徐晶,方明,杨华民,等.计算机视觉中的运动检测与跟踪[M].北京:国防工业出版社,2012:9-12.
[4]于丹丹.局部化光流估计方法研究[D].哈尔滨:哈尔滨工业大学,2011.
[5]CLAVEAU D.A space-variant architecture for active visual target tracking[D].Montreal:Concordia University,2007:9-12.
[6]张海燕.基于图像分块的多尺度Harris角点检测方法[J].计算机应用,2011,5(10):45-50.
[7]HARRIS C,STEPHENS M.A combined corner and edge detector[J].Proceedings of the 4th Alvey Vision Conference,Manchester,England,1988:147-151.
[8]BRTADSKI G,KAEBLER A.学习OpenCV[M].北京:清华大学出版社,2009:356-365.
[9]GONZLLEA R C,WOODS R E.数字图像处理[M].北京:电子工业出版社,2011:88-100.
[10]彭艳芳,视频运动目标检测与跟踪算法研究[D].武汉:武汉理工大学,2010:15-18.
[11]NIETHAMMER M,TANNENBAUM A,ANGENENT S.Dynamic active contours for visual tracking[J].IEEE Transactions on Automatic Control,2006,51(4):562-579.
[12]周孚成.基于图像的机器人视觉伺服控制[D].长沙:中南大学,2012.
[13]徐德,谭明,李原.机器人视觉测量与控制[M].北京:国防工业出版社,2011:210-215.
[14]魏任得.视频监控系统的设计和实现[D].成都:电子科技大学,2010.
[15]周宏仁,敬忠良,王培德.机动目标跟踪[M].北京:国防工业出版社,1991:10-20.
[16]蔡萌.机动目标跟踪方法研究[D].哈尔滨:哈尔滨工业大学,2010:9-10.
收稿日期:2015-03-13;修改日期: 2015-03-30
基金项目:黑龙江省高等学校教改工程项目(JG2014010725)。
作者简介:霍炬(1977-),男,博士,教授,主要从事电工电子方面的教学与管理工作。
中图分类号TN873;TP317
文献标志码A
doi:10.3969/j.issn.1672-4550.2016.03.002
Development of Internship Platform for Visual Positioning
HUO Jua,WANG Xingshunb,WANG Yongkunb,LIU Hongchena,YANG Xuqianga
(a.School of Electrical Engineering and Automating;b.School of Astronautics, Harbin Institute of Technology, Harbin 150080,China)
AbstractIn order to let the graduates apply the knowledge learned to engineering practice,raise student’s abilities of problem solving,and improve the comprehensive quality,a set of visual positioning system is set up using experimental equipment.Problem that camera is able to recognize,position moving targets in image sequence is solved.In this paper,based on pyramid hierarchical LK optical flow algorithm,we use the TM6710 to test the positioning of highlights.According to the experiment,the system has good real-time and high-stability.
Key wordsvisual positioning;image sequence;optical flow method