崔亚琳
(中北大学,太原 030051)
现代射箭运动14世纪起源于英国,它由战争的军事需要演变成娱乐运动。进入21世纪,射箭已成为一项重要的全球性运动。报靶是射箭项目的重要部分。传统的人工报靶方式存在安全隐患,效率低下,工作量大等弊端。随着科技进步和训练技术水平的提高,射箭运动的场地器材也在不断地更新,并向自动化的方向发展。有很多自动报靶系统逐渐出现:双层电极短路报靶系统、激光坐标定位报靶系统、声电定位自动报靶系统、还有基于图像处理的计算机视觉报靶系统[1]。
双层电极报靶、激光坐标定位、声电定位三种方法安装困难、成本较高、定位精度不高、实时性不强。而基于计算机视觉的图像处理技术的自动报靶系统由于可以直接处理现场摄像机采集的图像得到结果,其成本低、效率高、实时性高,因此被越来越多的人所关注。
然而目前国际国内比赛均还在使用人工报靶,各种自动报靶技术使用不多。造成这种情况的原因主要还是报靶精度不够,出错率比较高。基于计算机视觉的自动报靶技术主要处理现场摄像机采集的图像,而射箭运动每组比赛最后完成后才会拔去箭,这就使得箭与箭之间产生遮挡,而且当箭处于压线状态是判别会更加困难,使得报靶出错率难以控制。本文针对这些问题设计了一种可以精确报自动靶的系统。
基于计算机视觉的自动报靶主要存在摄像机位置随机、图像畸变、箭的遮挡、压线等问题。对箭靶图像进行确定箭靶位置、校正等预处理后最主要面对的问题就是在遮挡的图像中精确定位箭的位置。可以使用检测箭的端点这样可以避免中间的遮挡,最后利用距离来判靶可以解决压线难检测的问题。
本文射箭精确自动报靶系统,首先检测箭靶中心的颜色,以此为中心以一定的距离截取图像即可定位箭靶。确定箭靶位置后,对箭靶进行校正预处理并对射出的箭的位置进行识别。
检测箭时可知每一次比赛中箭靶跟摄像头固定,所以图像背景固定,可以考虑帧差法、背景减除法来进行检测。然而由于比赛进行时实时性的要求以及主要关注的是箭的位置所以直接采用算法更为简单的两帧差分的方法来判决是否有箭射中即可。最后再使用hough 变换检测圆心,箭的端点,利用两者之间的距离来判别得分。
对环值的判定是本系统的核心模块。首先我们可以使用目标检测的方法检测是否有箭射中箭靶,再对差分后的图像进行霍夫直线变换获取中箭坐标位置,最后使用霍夫圆检测检测箭靶圆心,并根据圆心与中箭坐标的距离进行判靶。
运动目标检测一般常用的方法有:帧差法、背景减除法、光流法等。针对本文来说射箭比赛中箭靶固定不动也就是背景变化很小,同时射箭前后图像对比明显。主要在于区别有没有箭,即目标会在某一帧中突然出现,无需追踪箭的运动。对比这三种算法可以发现,帧差法计算简单、而且可以正确地勾勒出目标形态,所以采用帧差法。
图1 总体流程
帧差法的基本原理主要是考虑到运动物体在相邻的帧之间有位移,而背景图像在相邻的帧之间的位置是相对固定的[5]。帧差法的流程如图2,当前帧与前一帧图像相减,并对相减得到的结果利用阈值T 进行二值化后,还要进行形态学滤波等后续处理,最终才判断此帧图像是否出现了运动目标[5]。
图2 帧差法流程图
使用帧差法来确定前景和背景区域的阈值T一般很难确定。手动确定的阈值处理效果得不到保证,所以自动确定阈值很重要。最大类间差法算法简单、易于实现。所以本文采用最大类间差法自动确定阈值。
检测到箭的位置后,我们还需要确定箭靶的圆心以及半径,最基本的检测圆的方法是霍夫圆变换。霍夫圆变换将x-y 空间的圆心为(a,b)半径为r 的圆变换到a-b-r 三维空间进行累加,这样计算占用内存大速度慢,所以我们利用霍夫梯度法来解决这一问题[2]。
圆方程:
以极坐标表示圆,其中θ 是梯度方向角:
利用梯度信息对图像进行霍夫圆检测的主要思路[6]:
1.首先对图像应用边缘检测,然后对边缘使用Sobel 算子计算x 和y 方向的梯度为(Gx,Gy)并且求取方向角θ=arctan(Gx/Gy)。
2.由于半径未知选取一个半径的范围进行循环,在一个半径r的循环中按式(4)求得圆心坐标的值,并据此对累加数组进行累加操作。
3.找到累加数组中值最大的那个元素,其对应的值就是要检测的圆心。
的坐标与靶心坐标的距离来确定。在前面进行过图像校正后则靶纸表面的圆环是一个个规则的圆,各圆环的半径也就依次为R,2R,3R 这样的以R 为差的等差数列。经过大量观测实验,发现箭的命中点往往是下面那个端点。假设线段上靠下的端点坐标值为(x1,y1),靶心坐标值为(x2,y2)。则距离的计算公式为:
得到距离后与半径进行比较后最终确定环数。
本文使用图像处理的方法来识别射箭箭靶得分,其中使用了几何校正对图像进行校正,方便准确识别。然后利用帧差法检测箭的位置,并且使用霍夫圆检测来识别得分。
图3 展示了箭检测的过程,(a)图是已经有四支箭的图像,(b)图是射入第五支以后。两帧相减后进行阈值处理、形态学处理,最后使用hough 直线检测进行箭的检测。由图(e)发现相差后箭由于遮挡会变得不再完整,但是经过hough 检测后可以将其连为一条直线,并确定端点。本图检测到的箭的两个端点为(280,156)、(243,167)。按前文所述选取下方即y 值比较小的点(243,167)。
环值判定算法的关键是确定各区域范围所对应的环值,而区域范围的确定则由中箭所产生的线段
图3 目标检测
环值判定的前提是检测到箭的位置以及圆心与半径。前文中检测到箭的位置为(243,167),如图4利用hough 梯度法确定的圆心为(263,160)半径为18。根据距离判靶可知环值为9。表1 为六次测试得到的结果,由表1 可知本文中的检测方法可以、准确率很高。
图4 圆检测
表1 环值判定
本文使用图像处理的方法来对射箭箭靶进行判别。对其中应用到的图像处理的技术进行了阐述。主要用到了hough 变换、帧差法、环值判定等。首先将多用于遥感图像的几何校正方法使用在视频图像校正上很好的解决了箭靶与摄像机之间存在夹角导致的图像空间上的畸变。其次使用自适应阈值的方法避免了帧差法阈值不好选取的弊端,使得帧差法效果得以改进。再次使用梯度法避免了普通hough圆检测计算量过大,需要的存储空间过大等问题。
通过实验表明使用图像处理可以准确判靶,而且各部分的处理都获得了良好的效果,很好的解决了精度差、出错率高等问题。同时本系统还可以对射箭数据进行统计,依据箭时偏上偏下等分析每次运动员射箭的状态,使得训练效果更好。同时本系统图像处理的方法简单、易实现可以在电脑或者手机之类的终端上使用,更方便推广。
[1]甘重斗.基于图像处理技术的自动报靶系统的设计与实现[D].兰州大学,2007:28-29.
[2]Rafael C.Gonzalez,Richard E.Woods.数字图像处理[M].阮秋琦,阮宇智,译.北京:电子工业出版社,2007:215-219.
[3]陈海峰.基于图像处理技术的自动报靶系统研究[D].南京航空航天大学,2005:56-60.
[4]刘泉志.基于视频的运动目标检测与跟踪算法研究[D].上海交通大学,2010:45-50.
[5]黄素茵.基于视频监控运动目标检测算法研究[D].华南理工大学,2013:26-32.
[6]程鹏,朱美琳,耿华.一种基于梯度Hough 变换和SVM 的圆检测算法[J].计算机与现代化,2013,02:22-26.
[7]谢小亮.基于图像处理技术的自动报靶系统[D].重庆大学,2012.20-36.