杨岚兰 侍国忠 陈明 张重阳
摘要 借助计算机视觉技术研究鱼类行为已逐渐成为热点课题,该技术模拟生物视觉原理,通过处理采集的图片或视频获得动态目标参数信息,以达到对鱼类游泳行为监测分析的目的。利用传统的Vibe算法进行鱼类游泳行为监测会出现消除鬼影需要消耗大量视频帧,存在水面波纹的动态背景下运动目标的检测结果不准确的问题,因此提出了一种改进的Vibe算法。针对消除鬼影需要消耗大量视频帧,提出利用层次遍历搜索算法对目标图像进行标记并计数方法来自适应调整背景更新概率以实现快速消除鬼影。针对存在水面波纹的动态背景下运动目标的检测结果不够精确,提出基于LBP和HSV去除水面波纹以提高检测精度。
关键词 运动目标检测;Vibe算法;鬼影去除;动态背景
中图分类号 TP 391文献标识码 A
文章编号 0517-6611(2020)16-0222-05
doi:10.3969/j.issn.0517-6611.2020.16.063
Research on Target Detection of Ornamental Fish Based on Improved Vibe Algorithm
YANG Lan-lan1,SHI Guo-zhong2,3,CHEN Ming2,3 et al (1.Jiangsu Zhongyang Group Co.,Ltd.,Nantong,Jiangsu 226600;2.College of Information Technology,Shanghai Ocean University,Shanghai 201306;3.Key Laboratory of Fisheries Information,Ministry of Agriculture and Rural Affairs,Shanghai 201306)
Abstract Using computer vision technology to study fish behavior has gradually become a hot topic.It simulates the principle of biological vision and obtains dynamic target parameter information by processing collected pictures or videos to achieve the purpose of monitoring and analyzing fish swimming behavior.Using the traditional Vibe algorithm to monitor fish swimming behaviors,a large number of video frames will be consumed to eliminate ghost images,and there is a problem of inaccurate detection results of moving targets under the dynamic background of water ripples.Therefore,an improved Vibe algorithm is proposed .In order to eliminate the ghost image,a large number of video frames are consumed.This paper proposes a method of labeling and counting the target image by using a hierarchical traversal search algorithm to adaptively adjust the background update probability to quickly eliminate the ghost image.The detection results of moving targets under dynamic background with water surface ripple are not accurate enough.This paper proposes to remove water surface ripple based on LBP and HSV to improve detection accuracy.
Key words Moving target detection;Vibe algorithm;Ghost removal;Dynamic background
基金項目 国家重点研发计划(2018YFD0701003)。
作者简介 杨岚兰(1986—),女,江苏海安人,工程师,硕士,从事电子信息工程研究。
收稿日期 2020-02-18;修回日期 2020-03-16
计算机视觉(Computer vision)技术是一种快速、经济、有效的测量和评价手段,通过实现人的视觉功能来感知、识别和理解三维场景[1]。运动目标检测是计算机视觉研究的前沿课题,借助运动目标检测研究鱼类行为已逐渐成为热点课题。通过检测运动的鱼,可以得到鱼的轨迹、位置、尺寸、形状、加速度等进行鱼类游泳行为的识别与分析[2]。鱼类游泳行为的研究为改进捕捞技术、优化养殖环境、监测水源水质[3-4]、增强渔业资源保护与管理能力提供了理论基础,是鱼类行为学、生理学、生态学等学科的重要研究内容[5]。当前主要的运动目标检测算法分为3类:帧间差分法[6]、背景差分法[7-8]、光流法[9]。其中,帧间差分法时间复杂度较低,但对二值化的阈值选取要求较高,阈值选取太小会导致检测结果中有大量的噪声,但选取过大又会丢失大量的运动目标信息,并且它受鱼的运动速度影响较大,如果鱼发生突然性地跳跃,用帧间差分法检测就会出现双轮廓的现象;光流法最大的优点就是能够适应摄像机运动的监控场景,但是因为它要对每1个像素点计算光流场,所以时间复杂度很高,而且它很容易受到光照强度变化的影响;背景差分法的基本原理是通过选取一定数量的视频帧建立背景模型,将当前视频帧减去背景模型获得运动目标。背景差分法是常用的运动目标检测方法,其中早期典型的方法主要包括混合高斯模型[10]、码本模型[10-11]、自组织神经网络模型等[12]。Vibe算法因其检测速度快、敏感度高,在移动目标检测方面有着许多应用,因此该研究选取背景差分法中的Vibe算法进行研究。
目前,针对鬼影问题主要的解决办法有改进初始化背景模型和改进时间子采样因子。陈亮等[13]利用相邻像素点的空间一致性原理对Vibe算法进行改进,当一像素点被判为前景时,将该点与其邻域像素点背景模型中的像素值进行匹配,如果匹配点数超过阈值则判定此像素点为鬼影点,然后消除鬼点并重新初始化该点的背景模型,从而抑制鬼影。该方法虽然能抑制鬼影,但算法运算量大。Li等[14]提出了一种帧间差分法与Vibe算法相结合的改进算法,这种方法将开始若干帧的差分结果与Vibe算法同一帧检测得到的结果进行“与”运算,抑制鬼影并更新鬼影区域的背景模型。该方法可以抑制部分鬼影,而剩余鬼影点的抑制还是依赖Vibe原始更新策略,多帧后才能消除。针对动态背景问题目前主要解决办法有自适应更新阈值、边缘检测和形态学处理、改进模型更新策略。Guang等[15]提出了自适应的距离阈值,对于和背景区分不开的前景取得了较好的效果。该方法计算每个像素的强度以确定阈值,增加了算法复杂度。Hofmann等[16]在Vibe算法框架上引入了时域信息,用连续N帧图像建模,通过计算模型样本统计信息得到自适应阈值,对类周期性动态背景有较好的适应性,但是对间断性的扰动背景的响应时间较慢,它还放弃了Vibe算法的单帧建模的优势,增加了算法的复杂度和内存开销。鉴于此,笔者在前人研究基础上针对消除“鬼影”需要消耗大量视频帧,提出利用层次遍历搜索算法对目标图像进行标记并计数方法来自适应调整背景更新概率,以实现快速消除鬼影;针对动态背景情景下运动的检测结果不够精确的问题,提出了基于LBP和HSV去除水面波纹以提高检测精度,旨在消耗少量视频帧就可以快速消除鬼影,在水面波纹的动态复杂背景下也可以准确地检测出运动目标。
1 材料与方法
1.1 对象与材料
采用草种金鱼为试验对象,体长为3~5 cm。在开展试验前,将试验鱼放入试验室水族箱饲养数月,使其充分适应试验环境。为保证成像质量,相机安装在水族箱的正上方进行拍摄。试验硬件平台配置为:Intel Core 8核CPU,8 GB内存,Windows 10操作系统。试验数据来源于尼康D90拍摄视频,采用vs 2010 + OpenCV 2.4.9进行试验。
1.2 试验方法
1.2.1 Vibe算法。
1.2.1.1 初始化背景模型。Vibe算法假定图像中每个像素点和其相邻像素点有类似的分布。在该假定前提下,背景模型可以通过每个像素点和其相邻像素点来表示,建立足够多的背景模型以符合统计学规律。当获取到第1帧图像时,即t=0时,通过公式1建立背景模型:
式中,C(x,y)表示当前点的邻域像素,f(x,y)表示当前点的像素。C(x,y)中的像素点(xi,yi)在N次初始化过程中,被选中的次数为N = 1,2,3,…,n。
1.2.1.2 背景差分。计算后续图像和背景模型像素点的距离差并统计距离小于半径R的个数以判定运动目标。
式中,fk(x,y)表示t=k时像素点的值,num表示每个像素与背景模型相应像素点N个样本值的距离小于半径R的个数。
1.2.1.3 背景模型更新。背景模型的更新具有随机性,表现在时间随机性和空间随机性。①时间随机性。假如图像中某一位置x相应的像素被判定为背景,算法按照一定的概率对背景模型进行更新,这体现了时间上的随机性。②空间随机性。随机抽取N个背景模型中的一个背景模型,设为PM。 图1表示PM在x位置的某一像素点及其相邻的8个像素点。在PM(x)的相邻的9个位置上随机的选取1个像素点PM(r),用Pt(x)来替换PM(r),这体现了空间上的随机性。
1.2.2 自适应背景更新概率的鬼影消除。传统Vibe算法中经常出现的问题是检测结果中存在鬼影。当算法使用第1帧图片进行初始化背景建模时,图片中可能包含运动目标,在后续帧中它们开始运动便产生了鬼影;当图片中运动目标由运动状态转变成静止状态后,再开始运动也会产生鬼影。针对传统Vibe算法采用保守更新策略:当某一像素连续n次被判断为前景像素,则判定该像素为鬼影,并采用全局固定的背景更新概率,将鬼影像素更新为背景像素,使得消除鬼影需要消耗大量视频帧。改进传统Vibe算法的保守更新策略基本思想是:先利用传统Vibe算法进行运动目标检测,在获得含有鬼影的运动目标图像后利用层次遍历搜索算法对目标图像中运动目标进行标记并计数,如果计数的结果和实际目标个数不等则加快背景更新概率,如果相等则不改变背景更新概率。
1.2.2.1 標图像标记计数。传统Vibe算法检测后得到含有鬼影的二值图。可以借助层次遍历搜索算法对前景像素进行遍历,以标记检测后运动目标,从而获得图中运动目标的数量。具体实现步骤如下:①按照从左向右、从上到下的顺序扫描Vibe算法检测后带有鬼影的二值图像。②如果当前像素点是前景像素点,将num(目标物体个数)加1并将标记矩阵,该像素对应位置设置为M,表示已经处理过该像素。如果为背景像素点跳过则继续扫描下1个像素。③查找它相邻4连通邻域中未处理过的前景像素点,将其插入队列,如果队列不空继续以下循环。④出队并将标记矩阵该像素对应位置设置为M,查找它相邻4连通邻域中未处理过
的前景像素点将其插入队列。⑤扫描到二值图像的结尾结束循环,num中存储了Vibe算法检测后运动目标的个数。
图2a是原始灰度图像,255表示前景像素,0表示背景像素,M表示已经处理过的前景像素,用4领域进行层次遍历过程(图2)。处理结果表明,算法对检测后运动目标进行了正确标记并获得了运动目标的个数。
1.2.2.2 自适应调整背景更新概率。经过层次遍历搜索算法对Vibe算法检测后的目标图像计数得到的运动目标个数如果和实际运动目标个数不相等,此时应该增加背景更新概率加快鬼影消除,如果相等应使用初始背景更新概率防止正确的前景像素点被更新为背景。如公式3所示
式中,a是固定参数取值为20,fnum为实际运动目标个数,num为统计运动目标个数。通过自适应背景更新概率可以迅速消除鬼影。
1.2.3 动态背景运动目标提取。传统Vibe算法中对于动态背景情况如水面波纹,检测结果是大量背景点(水面波纹)被错误地检测为前景点,从而严重影响检测精度。该研究提出基于LBP和HSV去除动态背景以提高检测精度。
1.2.3.1 LBP纹理。LBP是一种用来描述图像局部纹理特征的算子,它的作用是进行特征提取,提取图像的局部纹理特征。LBP算子定义为在3×3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于等于中心像素值,则该像素点的位置被标记为1,否则为0。从右侧领域像素开始按照逆时针的顺序扫描3×3领域内的8个点可以产生8 Bit的无符号二进制数然后转换为十进制数,即得到该窗口的LBP值,并用这个值来反映该区域的纹理信息具体过程(图3)。
1.2.3.2 结合LBP纹理和HSV颜色空间去除水面波纹。在利用Vibe算法进行背景建模前先对视频帧进行LBP纹理计算和HSV颜色空间转换以进行水面波纹检测,最后去除水面波纹然后使用Vibe算法检测运动背景。具体实现步骤如下:①截取视频中的一帧图片。②复制截取图片将其转化为灰度图像并划分为128×128个小区域。③对于每个小区域的每个像素计算LBP值。④统计每个小区域的直方图,即每个数字(假定是十进制数LBP值)出现的频率;然后对该直方图进行归一化处理。⑤设置水面波纹的阈值范围,将范围内的像素设置为0(0表示黑色),过滤水面波纹。⑥将截取图片由RGB颜色空间转化为HSV颜色空间。⑦设置H、S、V的阈值范围,将在阈值范围内的像素V设置为0(0表示黑色),过滤水面波纹。⑧将使用颜色空间过滤后获得截取图片转化为灰度图像。⑨将使用LBP过滤后的灰度图像和HSV过滤后的灰度图像按照像素进行运算,获得最终滤掉水面波纹的灰度图像。⑩将过滤掉水面波纹的灰度图像使用上文提出的改进的Vibe算法进行运动目标检测。
2 结果与分析
2.1 自适应背景更新概率的鬼影消除试验结果
试验中样本模型个数N=20;最小匹配个数min=2;初始距离阈值R=20;背景更新概率P(x)=1/30;固定参数a=10。从图4可以看出,基于自适应背景更新概率的改进Vibe算法可以较快地去除鬼影。
为了详细表现改进后的Vibe检测效果,统计各个视频中消除鬼影所需帧数,如表1所示。结果显示,改进的Vibe算法利用层次遍历搜索算法对目标图像中运动目标进行标记并计数,以动态调整背景更新概率。即不需要等待某一像素连续n次被判断为前景像素,又可以在存在鬼影的情况下加快背景更新概率,所以消除鬼影所需视频帧数比经典算法所需视频帧数少50%以上。
2.2 基于LBP和HSV动态背景去除试验结果
试验中LBP阈值设置为200~230,H阈值范围设置为0~42;S阈值范围设置为0~50;V阈值范围设置为110~127。图5中由于存在动态背景(水面波纹),使得检测结果存在许多噪点。如图5b所示,经过HSV颜色空间去除动态背景后的检测精度大大提高。为了详细表现改进后的Vibe检测效果,该研究采用精确度(Precision)、召回率(Recall)、评价值(Rating)作为判断改进Vibe性能指标[17],精确度指标反映了检测正确的前景像素点的个数与检测出的前景像素点的比值,召回率指标反映了检测错误的前景像素点的个数与真实前景像素点个数的比值,具体如公式4、5所示,检测结果如表2所示。
式中,TP表示检测正确的前景像素点的个数,FP表示前景像素点的个数,FN表示检测错误的前景像素点的个数。改进的Vibe算法利用LBP和HSV对视频帧进行了去除波纹的前期处理,使得使用Vibe算法可以准确建模所以检测效果大大提高。
3 小结
针对传统Vibe算法中消除鬼影需要消耗大量视频帧,且动态背景情况下运动目标检测结果不够精确的问题,笔者提出了自适应动态背景更新概率和基于LBP和HSV去除动态背景。试验结果表明,改进的Vibe算法消除鬼影所需视频帧数比经典算法所需视频帧数少50%以上。在存在水面波纹的动态背景下改进Vibe算法的检测精度大大提高。
参考文献
[1] 张胜茂,张衡,唐峰华,等.计算机视觉技术在监测鱼类游泳行为中的研究进展[J].大连海洋大学学报,2017,32(4):493-500.
[2] 田超,黃志勇.一种实时的鱼类轨迹跟踪算法[J].信息通信,2017(1):47-50.
[3] 李雷华.基于鱼群运动的异常水质监测[D].秦皇岛:燕山大学,2017.
[4] 李治国,路娜,郭晓芝,等.基于青鳉鱼行为的在线生物监测系统及综合预警平台建设研究[J].科学技术与工程,2017,17(7):288-292,298.
[5] 于晓明,张秀梅.鱼类游泳能力测定方法的研究进展[J].南方水产科学,2011,7(4):76-84.
[6] ZHOU A M,QU B Y,LI H,et al.Multiobjective evolutionary algorithms:A survey of the state of the art[J].Swarm & evolutionary computation,2011,1(1):32-49.
[7] BARNICH O,VAN DROOGENBROECK M.ViBe:A universal background subtraction algorithm for video sequences[J].IEEE Transactions on Image Processing ,2011,20(6):1709-1724.
[8] VAN DROOGENBROECK M,PAQUOT O.Background subtraction:Experiments and improvements for ViBe[C]// Computer vision and pattern recognition workshops.Rhode Island,US:IEEE,2012:32-37.
[9] HORN B K P,SCHUNCK B G.Determining optic flow[J].Artificial intelligence,1981,17(1/2/3):185-203.
[10] ZIVKOVIC Z.Improved adaptive Gaussian mixture model for background subtraction[C]//Proceedings of the 17th international conference on pattern recognition(ICPR′04).Cambridge,UK:IEEE Computer Society,2004:28-31.
[11] KIM K,CHALIDABHONGSE T H,HARWOOD D,et al.Real-time foreground-background segmentation using codebook model[J].Real-time imaging,2005,11(3):172-185.
[12] MADDALENA L,PETROSINO A.A fuzzy spatial coherence-based approach to background/foreground separation for moving object detection[J].Neural computing & applications,2010,19(2):179-186.
[13] 陳亮,陈晓竹,范振涛.基于Vibe的鬼影抑制算法[J].中国计量学院学报,2013,24(4):425-429.
[14] LI Y Q,CHEN W Z,JIANG R.The integration adjacent frame difference of improved ViBe for foreground object detection[C]// 2011 7th international conference on wireless communications,networking and mobile computing.Wuhan,China:IEEE,2011:1-4.
[15] HAN G,WANG J K,CAI X.Improved visual background extractor using an adaptive distance threshold[J].Journal of electronic imaging,2014,23(6):1-12.
[16] HOFMANN M,TIEFENBACHER P,RIGOLL G.Background segmentation with feedback:The Pixel-Based Adaptive Segmenter[C]// Computer vision and pattern recognition workshops.Piscataway,NJ,USA:IEEE,2012:38-43.
[17] ARORA M,KANJILAL U,VARSHNEY D.Evaluation of information retrieval:Precision and recall[J].International journal of Indian culture & business management,2016,12(2):224-236.