时间:2024-05-24
孙龙清 刘 婷 陈帅华 吴雨寒
(中国农业大学信息与电气工程学院, 北京 100083)
鱼的行为变化与养殖环境密切相关,可以作为水质监测的依据[1-2]。基于视频图像处理技术对多目标鱼体进行精确且快速的检测定位,有助于进一步提取多目标鱼体的运动和行为参数,对水质异常做到早预警[3-5]。准确有效的多目标鱼体检测算法是鱼群行为分析和水质监测的基础。
目标检测是根据目标区别于背景的特征,利用视频图像识别技术将目标从图像中自动识别出来并进行定位[6]。对象提议算法通过预先找出图像中目标可能出现的区域,避免滑动窗口的穷尽搜索,提高检测速度的精度。对象提议算法主要分为基于聚类操作的对象提议算法和基于窗口打分的对象提议算法[7]。基于聚类操作的对象提议算法中最具代表性的是UIJLINGS等[8]提出的选择性搜索算法(Selective search,SS),利用分割算法[9]产生超像素区域,通过不断合并超像素来生成不同大小的候选窗口,已被应用于R-CNN[10]、 Fast R-CNN[11]等物体检测框架中,生成的候选窗口召回率高,缺点是运算速度慢。基于窗口打分的对象提议算法利用滑动窗口遍历图像,根据特定的特征对窗口打分筛选得到候选窗口,CHENG等[12]提出的二值化规范梯度(Binarized normed gradients,BING)对象提议算法,基于边缘特征训练两级线性SVM模型对窗口进行打分,筛选得到候选区域,获得的候选窗口召回率高,运算速度快,但随着候选窗口与真实窗口之间的交并比(Intersection over union,IOU)标准的严格,召回率会明显下降。
针对对象提议算法难以同时满足高召回率和高运算速度的问题,ZITNICK等[13]提出了Edge Boxes算法,基于滑动窗口完全包含的边缘数量对窗口打分筛选得到候选窗口,保证了高召回率和较高的运算速度。ZHAO等[14]应用Edge Boxes算法实现了行人检测,在夜间环境下由于部分边缘信息的丢失,会出现漏检情况;HU等[15]将Edge Boxes算法与选择性搜索算法结合起来,实现了对癌细胞的检测,当癌细胞之间出现黏连时,会出现一个候选窗口包含多个癌细胞的情况;KUANG等[16]将区域相似性与Edge Boxes算法融合,实现了对多种水果的检测,当水果间紧密相邻时,易出现一个候选窗口包含多个目标的状况。大量的研究应用表明,Edge Boxes主要缺陷在于:①当图像中的目标物体位于低能见度环境下时,目标物体会缺失部分边缘信息,使得召回率降低,最终造成漏检。②Edge Boxes算法具有窗口包含边缘段越多、越易于获得更高得分的特性,当目标相邻或轻微重叠时,最终筛选获得的候选窗口可能包含多个目标,无法实现对每个目标的精确检测。
为克服上述缺陷,生成高召回率的候选窗口,实现多目标鱼体的精确检测,本文提出利用鱼体图像的骨架和边缘信息,设计新的窗口打分策略,获得候选窗口,训练主成分分析(Principal component analysis,PCA)卷积核提取鱼体目标和背景的特征,利用支持向量机分类得到鱼体目标所在的候选窗口,运用非极大值抑制算法[17]剔除得分低的窗口,完成目标检测。
实验平台主要由摄像机、鱼缸和台式计算机3部分组成,如图1所示。 摄像机为海康威视工业摄像机,分辨率为3 840像素×2 160像素,安装在养殖鱼缸的正上方;鱼缸尺寸为120 cm×120 cm×100 cm,其中水深50 cm;台式计算机的显卡为NVIDIA GeForce GTX 970M,16 GB内存。
图1 实验平台Fig.1 Experiment platform1.摄像机 2.鱼缸 3.台式计算机
样本数据集截取自上述实验平台采集到的真实视频图像,数据集构建步骤如下:
(1)从视频中截取1 500幅鱼体图像数据,这些图像数据可以是连续截取的,也可是随机挑选的,图像样本如图2a所示。
图2 训练数据集Fig.2 Training data sets
(2)对截取的图像利用开源图像标注软件labelImg进行人工标注,生成表明鱼体真实位置的XML文件。
(3)根据标注,将含有目标鱼体的区域剪裁下来构成检测对象识别模型的正样本,如图2b所示,随机剪裁一些背景区域作为负样本,如图2c所示。
本目标检测模型主要包括获得候选窗口和检测对象识别两部分,完整的算法流程如图3所示。
图3 鱼体检测算法流程图Fig.3 Flow chart of fish detection algorithm
1.2.1获得候选窗口
用不同宽高比、不同尺度的滑动窗口按照一定的滑动步长对图像进行从左到右、从上到下的扫描,生成一系列初始窗口,基于图像的骨架信息和边缘信息设计打分函数对初始窗口打分,筛选得到候选窗口。
(1)骨架信息提取
对连续多帧图像求相应位置像素值的中值作为背景模型,将待检测图像与背景差分获得运动前景,对运动前景二值化后进行骨架提取,二值化运动前景如图4所示。骨架提取可以理解为提取出运动前景的中心轴[18-19],原理如图5所示。假设P1=1为待判断的点,其8邻域分别按照图5中的顺序标记为P2、P3、P4、P5、P6、P7、P8、P9。
图4 二值化运动前景Fig.4 Binarization of foreground segmentation
图5 骨架提取原理图Fig.5 Schematic of skeleton extraction
为了保证骨架的连续性,将每次迭代分为两个子迭代。在第1个子迭代中,去除同时满足以下条件的点
式中B(P1)——点P1的8邻域中像素值为1的点的像素之和
A(P1)——点P1的8邻域中,顺时针方向像素值从0到1的变化次数
p2、p4、p6、p8——点P2、P4、P6、P8的像素
在第2个子迭代中,去除同时满足以下条件的点
循环迭代直到没有符合条件的点为止。骨架信息如图6所示。
图6 骨架信息Fig.6 Skeleton information
(2)边缘信息提取
本文采用快速有效的结构化森林边缘检测算子[20]得到鱼体图像的边缘响应,如图7所示。为了保证算法的运算效率,引入“边缘段”数据结构,即将具有相似性的边缘点进行聚合。搜索边缘响应图中每一个边缘点的8邻域,找到与其梯度方向角差值最小的边缘点添加进来,直到梯度方向角差值的和超过阈值π/2,得到一系列边缘段,此时边缘图像可以看成是边缘段的集合。
图7 边缘响应图Fig.7 Edge response map
(3)初始窗口打分
针对滑动窗口从左到右、从上到下扫描得到的一系列初始窗口,依据提取到的二值化运动前景可以滤除一部分不可能位于目标之上的初始窗口。对初始窗口打分的两个重要依据为窗口中完全包含的边缘段数量和窗口中可能包含的鱼体数量。
设定位于窗口边界上的边缘段为窗口外物体的边缘响应,基于与窗口边界上的边缘段的相似度,对初始窗口中每一个边缘段计算一个0~1范围内的连续值来指示其被初始窗口完全包含的程度
(1)
其中
a(si,sj)=|cos(θi-θij)cos(θj-θij)|γ
(2)
式中w(si)——边缘段si被初始窗口完全包含的程度
b——初始窗口
Sb——窗口b边界上的边缘段集合
xi——边缘段si上任意一点
T——长度为|T|的有向边缘组路径,起点是t1=sj∈Sb,终点是t|T|=si
a(si,sj)——任意两个边缘段之间的相似度
θi——边缘段si的平均方向角
θj——边缘段sj的平均方向角
θij——边缘段si平均坐标位置和边缘段sj平均坐标位置连线向量的方向角
γ——调节相似度计算的敏感度
把在原图生成的初始窗口b映射到骨架图像上,处理初始窗口内的连通区域时,一个点其8邻域中只有1个非零像素点与它相邻,则该点是骨架的端点,通过对骨架的端点计数可以估计初始窗口中完全包含的鱼体数量。
(3)
其中
u=uin-ub
(4)
式中μ——初始窗口中可能包含的鱼体数
u——完全包含在初始窗口b中的骨架的端点数
uin——初始窗口b中的所有端点数
ub——初始窗口b中与窗口边界相关的端点数
(5)
(6)
式中hb——初始窗口b的得分
mi——边缘段si上所有边缘点幅值的总和
bw——初始窗口b的宽度
bh——初始窗口b的高度
nb——初始窗口b对应运动前景像素值的和
λ——分子标准化系数,本文设置为1.5
p——边缘点
mp——边缘点的幅值
当u=0时,为了保证不出现打分函数分母为0的极端情况,设置μ=1。
根据分数对初始窗口进行排序,并输出得分排名前β的窗口作为单幅图像的候选窗口,用于后续检测对象识别阶段。其中β为可以使本文鱼体对象提议算法达到最高召回率的最少候选窗口。
1.2.2检测对象识别
计算每一个候选窗口对应区域
(7)
G——候选窗口对应区域
经过两级PCA卷积后,每个候选窗口对应区域生成了l×r幅特征图。对这些特征图进行哈希编码,堆叠成l组特征图,每组r幅二进制特征图。将每组的r幅二进制特征图转换成1幅十进制特征图,共有l幅。最后对每1幅特征图进行直方图统计,形成一个直方图向量,把l个直方图向量串联为一个特征向量后,输入到SVM中分类,判断该候选窗口是否含有目标。保留包含鱼体的候选窗口并滤除位于背景的候选窗口,保留下的部分候选窗口会在同一个鱼体目标上高度重叠,本文利用非极大值抑制算法解决该问题,完成多目标鱼体检测。
1.2.3PCA卷积核与SVM训练
设有N个尺寸为K×K的训练样本,对于每一个训练样本,利用k×k的采样窗口以每个像素点为中心进行采样,则每一个训练样本共K2个采样块,每个采样块的尺寸为k×k。N个训练样本构成一个k×k行、K2×N列的矩阵。提取采样矩阵的协方差矩阵的前L1个特征向量构成第1级PCA卷积核。
将训练样本与第1级PCA卷积核进行卷积,对卷积结果采用与第1级相同的方法获得第2级PCA卷积核。将第1级卷积结果与第2级PCA卷积核进行卷积得到特征图,经过哈希编码与直方图统计获得特征向量输入到SVM中训练,得到检测对象识别模型。
2.1.1滑动窗口的宽高比、面积和滑动步长
对人工标注鱼体真实位置窗口的宽和高进行统计分析,设定滑动窗口的宽高比在[1/3,3]之间;滑动窗口的面积在100~10 000像素之间;滑动窗口的步长α是通过相邻滑动窗口的交并比来表示的,当该值设定太大时,会生成密集的初始窗口增加运算时长,当该值设定太小,又会降低命中率。经过实验分析,滑动窗口的步长α一般情况下设置为0.7,具体实验结果如表1所示。α的计算公式为
(8)
式中St——当前时刻与下一时刻滑动窗口的交集
St′——当前时刻与下一时刻滑动窗口的并集
IOU阈值定义为
(9)
式中TIOU——候选窗口与人工标注窗口的交并比
Soverlap——候选窗口与人工标注窗口的交集
Sunion——候选窗口与人工标注窗口的并集
召回率(Recall)定义为
(10)
式中R——召回率
Tp——存在目标的候选窗口数量
Fn——不存在目标的候选窗口数量
表1 不同IOU阈值和α下本文算法召回率 (前1 000个候选窗口)和运行时间Tab.1 Results of proposal recall at 1 000 proposals and runtime at different values of IOU and α
分析表1可知,在IOU阈值较低时,如TIOU≤0.7,步长α为0.70时,本文算法在运行效率和召回率之间有一个较好的平衡;当IOU阈值较高时,如TIOU=0.9,步长α为0.85时,会生成密集的初始窗口,使得算法的召回率提高,但运行时间高达2.30 s。由上述分析可知,一般情况下设定滑动窗口的宽高比为 [1/3,3]、面积为100~10 000像素,α取0.7,对输入图像进行遍历。
2.1.2召回率分析
衡量本文算法性能的一个重要指标是召回率。评价召回率的方法有两种[22]:固定候选窗口数量,根据不同的IOU阈值来计算召回率;固定IOU阈值,根据不同的候选窗口数量计算召回率。
依据这两种评价方法在真实数据样本上分析比较本文算法、Edge Boxes算法和滑动窗口算法,其中滑动窗口算法作为参照基准。分别固定候选窗口数量为100、500、1 000个,设置步长α为0.7,依据不同的IOU阈值计算召回率,实验结果如图8所示。
图8 3种不同候选窗口数量下的召回率对比Fig.8 Comparison of recall rates under three different proposals
由图8可知,本文算法的召回率均比Edge Boxes算法高。TIOU≤0.7时,本文算法召回率较Edge Boxes算法提升明显;而TIOU≥0.8时,本文算法改善微弱,但是根据表1可知,若仅实现在高IOU阈值下保持高召回率,且不考虑时间,可以通过增大步长α的方式实现。
在IOU阈值分别为0.5、0.7和0.9时,根据不同候选窗口数量来计算召回率。其中在IOU阈值为0.5和0.7时设置α为0.7,在IOU阈值为0.9时设置α为0.85,实验结果如图9所示。
图9 3种不同IOU阈值下的召回率对比Fig.9 Comparison of recall rates under three different values of IOU
由图9可知,本文算法召回率相较于Edge Boxes算法均有不同程度的提高。在IOU阈值为0.5、0.7和0.9时,本文算法召回率最高分别为96.9%、78.4%和31.0%,高于Edge Boxes算法的85.2%、58.5%和27.0%。根据图9b可知,当候选窗口数量大于950时,召回率曲线斜率趋向于0,说明当候选窗口数量大于950时,召回率基本不变,故本文选择窗口得分排名前950的候选窗口进行目标对象的识别。
通过对鱼体标注框的统计可知,其宽、高均处于40~120像素之间,本文将训练样本的尺寸统一设置为64像素×64像素。检测对象识别模型的主体部分是两级PCA卷积, PCA卷积核的尺寸和数量是决定识别准确率的关键因素。
为了确定卷积核的尺寸,本文分别使用3×3、5×5、7×7、9×9共4种不同尺寸的卷积核进行实验,设两级PCA卷积核数量都为8,实验结果如表2所示。
表2 不同尺寸卷积核识别准确率对比Tab.2 Classification accuracy comparison of different convolution kernel size
由表2可知,在固定两级卷积核数量的情况下,卷积核尺寸为5×5时的识别准确率最高,为94.25%,因此在训练检测对象识别模型时,采样块尺寸为5×5。
确定卷积核为5×5后,通过改变卷积核数量η分析其对识别准确率的影响,设两级卷积核的数量一致,即L1=L2=η,结果如图10所示。
图10 不同卷积核数量下的识别准确率Fig.10 Identification accuracy under different convolution kernel numbers
由图10可知,当4≤η≤9时,识别准确率随着η的增大而提高,当η=9时,识别准确率达到最大值95.71%,当10≤η≤12时,识别准确率随η的增大而下降。由此可知,PCA卷积核数量为9时识别效果最优。
Edge Boxes-PCANet算法的检测效果如图11所示,本文算法的检测效果如图12所示。
图11和图12来自于本实验平台采集到的真实
图11 Edge Boxes-PCANet算法检测效果图Fig.11 Detection effect diagram of Edge Boxes-PCANet detection algorithm
图12 本文算法检测效果图Fig.12 Detection effect diagram of the proposed algorithm
数据,直观地对比检测效果,本文算法能够针对目标鱼体生成更紧密的包围框,并且对处于较深水体处的目标鱼体也展现了较好的检测性能,如图中的绿色圆圈标记所示。
对检测结果进行数据分析,如表3所示,本文算法的漏检率、误检率均低于Edge Boxes-PCANet算法,表明本文算法的性能优于Edge Boxes-PCANet算法。
表3 本文算法与Edge Boxes-PCANet算法的检测性能对比Tab.3 Comparision of detection performance between the proposed algorithm and Edge Boxes-PCANet algorithm
(1)根据鱼体图像的边缘和骨架特征提出了多目标鱼体对象提议检测算法,对生成的候选窗口利用 PCA卷积核提取特征,利用SVM进行目标对象识别,最后利用非极大值抑制算法剔除冗余窗口,实现对多目标鱼体的精确检测。
(2)实验表明,本文算法在固定候选窗口下召回率最高可达96.9%;对目标对象的最高识别准确率可达95.71%。本文算法的漏检率、误检率和平均检测时间分别为5.26%、2.52%和0.40 s,与Edge Boxes-PCANet算法相比,本文检测算法在多目标鱼体检测上具有更优越的性能。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!