邹燕飞 刘淑英
(咸阳师范学院计算机学院 咸阳 712000)
移动目标侦测的算法研究和实现∗
邹燕飞 刘淑英
(咸阳师范学院计算机学院 咸阳 712000)
基于图像的移动侦测技术在安防系统、行车记录仪,包括现在比较流行的XBox中都有广泛的应用,可是市场上对移动侦测的应用讨论的比较多,相比之下对它如何实现讨论很少,具体的实现算法很难找到。论文提出了一种解决方案,通过算法实现了侦测的运作过程,结合在移动设备iPhone手机将该算法进行试验,最终能够实现对水平(上、下、左、右)移动方向和固定场景下的移动物体远近的识别,验证了算法中图像分辨率、算法效率和精准度的问题。
移动侦测;图像识别;侦测算法
移动侦测技术受视频质量、视频图像分辨率的影响较大,而且对算法的效率要求很高[1]。因此在不降低算法效率的情况下,需要提高取帧频率来提高侦测的敏感度,筛选图像中噪点提升识别的准确度[2]。移动目标的不规则和使用场景的复杂性也提高了对侦测算法的要求[3~4]。
受 Canny算法启发[5~6],本文提取 Canny算法中受用的部分并结合智能手机这个使用场景,实现一种可行侦测的方案,通过去噪点、加快图像捕捉的频率、分出更多的取值矩阵来提高侦测精确度,对移动侦测算法的原理和实现步骤做了详细的描述,对算法的正确性做了验证,对其性能进行了检测。
直方图可以反映一张RGB的二维图像的灰度特征,取不同时段的两张图像,比较它们的直方图,可以大致判断出图像是否有大幅度的变化[7]。取直方图中的一个通道,可以反映出两张图片在该灰度通道上的变化,侦测算法就是根据channel(0)上的灰度变化,来识别图像的变化。
图1 多通道下的灰度直方图
多通道下的灰度直方图为原始图像划分区域,单独给图像中的每个区域计算出直方图,通过比较两张图像中每个区域的灰度值的变化幅度,来判断物体的移动方向和物体是否在靠近,如图2所示。图2(a)和(b)、(c)和(d)分别是按时间顺序前后截取的两张图片,其中值“0”表示该区域灰度值和之前的图片在同区域没有大幅变化,“1”表示该区域灰度值和之前的图片在同区域有大幅变化[8~10]。那么根据这两张图的特征就可以判断出一个移动目标正在向左移动。
图2 按时间顺序前后截取的两组图片
图2 (c)和(d)展现了目标物体正在靠近或者是正在变大,再根据具体的应用场景就能判断出目标物体的状态。
根据算法原理,可得实现步骤如下:
算法中定义的参数:
1)按照FrequencyValue的频率从视频中获取到单帧的图像,对图像中的像素点进行区域划分,假定划分了一个8*8的区域块。
2)对各个区域块计算直方图在channel(0)上的灰度值,将这64个值保存到数组A中,作为下次运算的历史参考值。
3)和上一次获取的图像作比较,计算出每个区域块中的灰度差值,计算出所有的符合Effec⁃tiveValue的各个区域,并记下这些区域,写入数组B中。
4)根据数组B,计算出变化区域块的中心区域块的位置,寻找中心区域块的目的是为了计算移动目标的移动方向,只要和下一张图像中的中心区域块比较,就可以得出移动目标的移动向量。并将数组B中元素个数数量保存到数组PointNumArray中,作为移动目标远近或者是形态大小变化的参考值。例如图3中的第二行第三列的区域块就是这几个变化区域块的中心区域块。中心区域块的位置记入C数组中。
图3 寻找中心区域块的位置
5)重复上述1)~4)步骤,就可以通过C数组中记录的位置,取出数组C中的两个相邻的点,点A(m1,n1),点B(m2,n2),则那个时段下移动目标的移动向量计算如下:AB=(m2-m1,n2-n1),结合PointNumArray数组对应位置上的变化区域块的个数变化,来初步评判移动物体是否在靠近或者是否变大。例如PointNumArray中对应两个点得值分别为 NumberA 和 NumberB,NumberB-NumberA>Value,那么这个物体可能在靠近,或者是正在变大。
说明:
FrequencyValue:定义了取帧的频率,例如其值为3代表了间隔3帧从视频中取一幅图像。
CriticalValue:定义了噪点的判断值,大于该值则判定为噪点,直接舍弃,不加入后期运算。
EffectiveValue:定义有效变化值的临界点,大于该变化值则认可该区域发生了变动。
获取直方图的灰度openCV的calcHist方法,因为只取出单通道下的灰度值,所以效率很高,另一方面为了加快运算的速度,对原始图像的分辨率做了调整,对原始图像进行了适当的压缩,从原始的1280*720,提取出来的是640*480的图像[11]。结果测试在iPhone5处理性能的环境下,1s大概可以对8*8区域分块的4张图片做运算。计算中心区域块和差值运算,由于区域块数量不会很多,所以运算时间可以忽略不计。
本文讨论的算法会应用在iPhone移动设备上,前置摄像头120万像素,可提取1280*960的图像,算法用于捕捉前置摄像头镜头前的移动目标,然后在屏幕上绘制出移动目标的运动轨迹。使用苹果自带SDK从摄像视频中获取Medium类型的视频流,得到的是640*480的图像,以及使用openCV函数库对单帧图像在进行划块后分别进行直方图灰度运算运算,取channel(0)上的值。图像划分成8*8的区域,单个区域是80*60的图像。
1)取帧处理
利用AVCapture从前置摄像头的视频流中取出单个帧,过4帧取一次,获取到单个图像之后,对图像进行分割,图像有像素点组成,单个像素点由RGBA构成,指针指向了图片的存数区域,由于单张图片像素点确定,所以每块区域的像素点的起终点可以获得。使用openCV::calcHist计算出每个区域块中通道0的灰度值,得到Frame1-Frame64所有的灰度值后放入数组中。
2)计算前后两次获取的灰度值数组的差值
前后两次计算的区域灰度值分别放在Histo⁃ryArray(上一张图片)以及 CurrentArray(当前图片)中,比较各数组中对应位置上的数值差值,得到数值差值数组A,对A中各个数值和删选常量进行比较number1>ConstValue则定义为有效变化,所有有效变化的区域块定义为1,无效变化则定义成0,得道一个新的数组EffectiveArray。
3)计算中心区域块和去噪点
数组的存储方式是一维的,从1~64的顺序,需要把一维的数组转化为二维序列。一维到二维的转换方法如下:取到某个Number的位置之后,对其进行除行数取整再经过上加一运算后得到P1,对行数求余数得到P2,则Number在二维平面上位置就是(p1,q1)。然后进行去噪处理,假设我们获得了4个点,(p1,q1),(p2,q2),(p3,q3),(p4,q4),先对行进行处理,从中取出3个块的行值,p2、p3、p4做方差运算,得道一个值SA1,SA1代表了取出p1之后其他几个块的行值得方差值,同理算出SA2、SA3、SA4,比较这四个方差值,方差值最小的那个则暂时视为噪点,相同的方式计算出列上的SB1、SB2、SB3、SB4,如果SB1也为最小值,那么可以确定点(p1,q1)为噪点,并将EffectiveArray中对应块的值从1改成0。
获取到各个有效位置之后,对各个有效区域块的行值和列值求平均值,对平均值取整后,得到得位置坐标即视为中心点。
4)轨迹描绘以及形态变化
把各个中心点显示到屏幕上,并计算出两个相邻点的向量就能够做出类似图4的形状。
图4 计算出两个相邻点的向量
图5 在时间轴上获取到的有效区域数量
通过该图我们可以检测出是否存在移动目标以及移动目标的移动方向,在屏幕上相对移动速度。通过计算各个EffectiveArray中有效区域的个数,就可以绘制出类似图5中的形状,图5展现了在时间轴上获取到的EffectiveArray中的有效区域数量在增加。
本论文中讨论的侦测算法已经应用到上线IOS应用“拇指音”中,经过反复的测试和调试,已经能够做到良好的体验,使用iPhone前置摄像头,能够顺利捕捉出在镜头前移动的手,以及手掌是否在靠近镜头,并且能够在相比iPhone5性能低很多的iPhone4上流畅地运行,算法效率得到了验证。读者可以通过AppStore搜索“拇指音”查看运行效果。
[1]郭玲,李真真,杜明辉.基于单目序列图像的运动目标跟踪[J].华南理工大学学报(自然科学版),2012,40(3):94-97.GUO Ling,LI Zhenzhen,DU Minghui.Moving target track⁃ing based on monocular sequence images[J].Journal of South China University of Technology(Natural Science Edition),2012,40(3):94-97.
[2]李文斌,周晓敏,王长松.一种基于背景减法的运动目标检测算法[J].北京科技大学学报,2008,30(2):212-216.LI Wenbin,ZHOU Xiaomin,WANG Changsong.Detec⁃tion algorithm of moving objects based on background sub⁃traction method[J].Journal of University of Science and Technology Beijing,2008,30(2):212-216.
[3]Sezan M I,A peak detection algorithm and its application to histogram-based imagedata reduction[J].Computer Vi⁃sion,Graphics and Image Processing,1990,49(1):36-61.
[4] Arifin A D.Thresholding ofdigitalimagesusing two-di-mejsional entropies[J].Pattern Recognition,1992,25(8):803-808.
[5]周晓明,马秋禾,肖蓉,等.一种改进的Canny算子边缘检测算法[J].测绘工程,2008,17(2):28-31.ZHOU Xiaoming,MA Qiuhe,XIAO Rong,et al.An Im⁃proved Canny Edge Detection Algorithm[J].Engineering of Surveying and Mapping,2008,17(2):28-31.
[6]黄剑玲,郑雪梅.一种改进的基于Canny算子的图像边缘提取算法[J].计算机工程与应用,2008,44(25):170-172.HUANG Jianling,ZHENG Xuemei.Improved Image Edge Detection Algorithm Based on Canny Operator[J].Com⁃puter Engineering and Applications,2008,44(25):170-172.
[7]冯桂,卢健,林宗坚.图像直方图不变特征在影像匹配定位中的应用[J].计算机辅助设计与图形学学报,2000(2):146-148.FENG Gui,LU Jian,LIN Zongjian.An image matching ap⁃proach based on the invariant feature of image histogram[J].Journal of Computer-Aided Design&Computer Graphics,2000,12(2):146-148.
[8]田小林,焦李成,缑水平.加权空间函数优化的FCM的SAR图像分割[J].西安电子科技大学学报,2008,35(5):846-852.TIAN Xiaolin,JIAO Lichen,GOU Suiping.SAR image segmentation using optimized FCM with weighted spatial function[J].Journal of Xidian University,2008,35(5):846-852.
[9]练秋生,孔令富.非抽样轮廓波变换构造及其在图像去噪中的应用[J].仪器仪表学报,2006,27(4):331-335.LIAN Qiusheng.KONG Lingfu.The undecimated contour⁃let transform and its application on image denoising[J].Chinese Journal of Scientific Instrument,2006,27(4):331-335.
[10]Chandran V,et al.Pattern recognition using invariants defined from higher order-spectra one dimensional inputs[J].IEEE Transactions on Signal Processing,1993,1(41):205-212.
[11]黄凯奇,任伟强,谭铁牛.图像物体分类与检测算法综述[J].计算机学报,2014,37(6):1225-1240.HUANG Kaiqi,REN Weiqiang,TAN Tieniu.A review on image object classification and detection[J].Chinese Journal of Computers,2014,37(6):1225-1240.
Research and Implementation of Algorithm for Moving Target Detection
ZOU Yanfei1LIU Shuying2
(Department of Computer,Xianyang Normal University,Xianyang 712000)
Image motion detection technology in the security system,vehicle traveling data recorder,including the widely used XBox is now more popular,and the technique in the future intelligent machines will be more and more important.But to dis⁃cuss the application of mobile detection on the market more,in contrast to how it achieves very little discussion algorithm is difficult to achieve specific find.This paper presents a solution,the operation process of detection is used to realize the algorithm,and has been applied in the mobile device,capable of more basic level(upper and lower,left and right)recognition of moving objects mov⁃ing direction and distance of the fixed scene.The algorithm also takes into account the image resolution,the algorithm efficiency and accuracy problem.
motion detection technology,image recognition,detection algorithm
Class Number TP39
TP39
10.3969/j.issn.1672-9722.2017.12.036
2017年6月11日,
2017年7月27日
国家自然科学基金项目(编号:61462057);咸阳师范学院专项科研基金项目(编号:13XSYK057)资助。
邹燕飞,女,讲师,硕士,研究方向:云计算、并行计算。刘淑英,女,硕士,副教授,研究方向:神经网络。