1、第4 8卷 第8期西 南 师 范 大 学 学 报(自然科学版)2 0 2 3年8月V o l.4 8 N o.8 J o u r n a l o f S o u t h w e s tC h i n aN o r m a lU n i v e r s i t y(N a t u r a l S c i e n c eE d i t i o n)A u g.2 0 2 3D O I:1 0.1 3 7 1 8/j.c n k i.x s x b.2 0 2 3.0 8.0 1 1基于改进Y O L O v 5的鸽子蛋壳破损检测杨航,何皓明,李滕科,王嘉雯,吴霆,钟乐,邹娟,杨灵仲恺农业工程学院
2、信息科学与技术学院/广东省食品安全溯源与控制工程技术研究中心,广州5 1 0 2 2 5摘要:破损鸽蛋检测是鸽蛋分拣过程中最重要的步骤之一.为解决破损鸽蛋实时检测问题,提出一种改进YO L O v 5的破损鸽蛋检测方法.首先,为解决鸽蛋细微裂纹检测难的问题,采用Km e a n s聚类算法计算细微裂纹锚框适应度,在h e a d模块增加A n c h o r值为7,9,1 3,8,9,1 2 的检测层,从而提高细微裂纹图像的特征提取能力;其次,为解决裂纹特征权重较低的问题,采用融合反向最大池化层的注意力机制,将色值权重提高,从而增强裂纹特征的权重;再次,为解决检测模型负向梯度消失问题,采用H
3、a r d s w i s h激活函数的全连接层替换R e L U激活函数的全连接层,解决输入为负时存在的神经元坏死问题,确保神经网络误差正常反馈.最后,基于改进YO L O v 5方法建立鸽蛋裂纹识别模型,采用721交叉验证方法对模型进行验证.经对比验证,改进YO L O v 5模型的检测效果有明显提升,其准确率、召回率和平均精度分别达到9 8%,9 7.3%和9 8.3%,比原始YO L O v 5模型分别提高了1 4.8%,6.2%和3.4%,检测速度大约为1 1 1帧/s,且模型大小仅为4.6M b,为鸽蛋破损检测提供了一种新方法.关 键 词:鸽子蛋;YO L O v 5;裂纹检测;H
4、 a r d s w i s h;最大池化层中图分类号:T P 1 8 1 文献标志码:A 文章编号:1 0 0 0 5 4 7 1(2 0 2 3)0 8 0 0 9 2 1 1D e t e c t i o no fP i g e o nE g g s h e l lB r e a k a g eB a s e do nI m p r o v e dY O L O v 5YANG H a n g,HEH a o m i n g,L IT e n g k e,WANGJ i a w e n,WUT i n g,Z HONGL e,Z OUJ u a n,YANGL i n gS c h o
5、o l o f I n f o r m a t i o nS c i e n c ea n dT e c h n o l o g y,Z h o n g k a iU n i v e r s i t yo fA g r i c u l t u r ea n dE n g i n e e r i n g/G u a n g d o n gP r o v i n c i a l F o o dS a f e t yT r a c e a b i l i t ya n dC o n t r o l E n g i n e e r i n gT e c h n o l o g yR e s e a r
6、 c hC e n t e r,G u a n g z h o u5 1 0 2 2 5,C h i n aA b s t r a c t:P i g e o ne g gb r o k e nd e t e c t i o n i so n eo f t h em o s t i m p o r t a n t s t e p s i n t h ep i g e o ne g gs o r t i n gp r o c e s s.I no r d e r t os o l v e t h ep r o b l e mo f r e a l-t i m ed e t e c t i o n
7、o f d a m a g e dp i g e o ne g g s,t h i sp a p e rp r o p o s e dam e t h o dt o i m p r o v eYOO v 5 sd e t e c t i o no fd a m a g e dp i g e o ne g g s.F i r s t,i no r d e r t os o l v e t h ed i f f i c u l t yo fp i g e o ne g gf i n ec r a c kd e t e c t i o n,t h eKm e a n s c l u s t e r
8、i n ga l g o r i t h mw a su s e d t oc a l c u l a t e t h e f i t n e s so f t h e f i n e c r a c ka n-c h o r f r a m e,a n dt h ed e t e c t i o nl a y e rw i t ht h ea n c h o rv a l u eo f7,9,1 3,8,9,1 2w a sa d d e dt ot h eh e a dm o d u l e t o i m p r o v e t h ef e a t u r ee x t r a c t
9、 i o na b i l i t yo f t h ef i n ec r a c ki m a g e;S e c o n d l y,i no r d e rt os o l v et h e收稿日期:2 0 2 2 1 2 2 7基金项目:广东省重点领域研发计划项目(2 0 2 1 B 0 2 0 2 0 3 0 0 0 1,2 0 1 9 B 0 2 0 2 1 5 0 0 1);国家自然科学基金项目(3 1 8 7 2 6 0 6);广州市重点研发计划项目(2 0 2 1 0 3 0 0 0 0 6 7,2 0 1 8 0 3 0 2 0 0 3 3,2 0 2 0 0 2 0 3
10、 0 1 5 4);广东省教育厅乡村振兴重点领域专项(2 0 2 0 Z D Z X 1 0 6 0);广东省自然科学基金(2 0 1 8 A 0 3 0 3 1 3 0 0 3 4,2 0 2 0 A 1 5 1 5 0 1 0 8 3 4);广东省教育厅创新强校特色创新项目(2 0 1 8 K T S C X 0 9 6);广东省省级科技计划项目(2 0 1 7 A 0 2 0 2 2 5 0 4 2);广东省现代农业产业技术体系创新团队建设专项(2 0 1 9 K J 1 4 1,2 0 2 0 K J 1 3 8).作者简介:杨航,硕士研究生,主要从事人工智能研究.通信作者:邹娟,讲师
11、,硕士研究生导师.p r o b l e mo f l o w w e i g h to fc r a c kc h a r a c t e r i s t i c s,t h ea t t e n t i o nm e c h a n i s mo f f u s i n gt h er e v e r s em a x i m u mp o o l l a y e rw a sa d o p t e dt oi n c r e a s et h ew e i g h t so fc r a c kc o l o rv a l u e,t h u se n h a n c i n gt h
12、ew e i g h to fc r a c kc h a r a c t e r i s t i c s;T h i r d l y,i no r d e r t os o l v e t h ep r o b l e mo f t h ed i s a p p e a r a n c eo f t h en e g a t i v eg r a d i e n to f t h ed e t e c t i o nm o d e l,t h e f u l l c o n n e c t i o n l a y e ro f t h eH a r d s w i s ha c t i v
13、a t i o n f u n c t i o nw a su s e d t o r e p l a c e t h e f u l lc o n n e c t i o n l a y e r o f t h eR e L Ua c t i v a t i o n f u n c t i o n,t o s o l v e t h ep r o b l e mo f n e u r o nn e c r o s i sw h e n t h e i n p u t i sn e g a t i v e,a n dt oe n s u r e t h en o r m a l f e e d
14、 b a c ko f t h en e u r a ln e t w o r ke r r o r.F i n a l l y,t h ep i g e o ne g gc r a c ki-d e n t i f i c a t i o nm o d e lw a se s t a b l i s h e db a s e do nt h e i m p r o v e dYO L O v 5m e t h o d,a n dt h e7:2:1c r o s sv a l i d a-t i o nm e t h o dw a su s e d t ov e r i f y t h em
15、 o d e l.T h r o u g hc o m p a r i s o na n dv e r i f i c a t i o n,t h ed e t e c t i o ne f f e c t o f t h ei m p r o v e dm o d e l o fYO L O v 5 i n t h i sp a p e rh a sb e e ns i g n i f i c a n t l y i m p r o v e d,w i t h i t s a c c u r a c y,r e c a l l a n da v-e r a g ea c c u r a c
16、yr e a c h i n g9 8%,9 7.3%a n d9 8.3%r e s p e c t i v e l y,w h i c hw a s1 4.8%,6.2%a n d3.4%h i g h e rt h a nt h eYO L O v 5.T h ed e t e c t i o ns p e e dw a s a b o u t 1 1 1f r a m e s/s,a n d t h em o d e l s i z ew a so n l y4.6 M b.T h i sp r o v i d e san e w m e t h o df o rd e t e c t
17、 i n gb r o k e np i g e o ne g g s.K e yw o r d s:p i g e o ne g g;YO L O v 5;c r a c kd e t e c t i o n;M a x p o o l在禽蛋经营中,破损禽蛋分拣是一个非常重要的环节.为解决传统人工分拣准确度低、漏检率高、速度慢的问题,提高自动分拣的水平,研究人员一直在研究采用先进技术来实现禽蛋破损自动检测.在过去的2 0年里,有不少专家学者将传统的机器视觉1-2和音频分析3-4等各种技术手段应用在禽蛋破损检测上.贺静等5提出的基于D S P实时图像采集处理的鸡蛋破损检测方法,将D S P实时
18、采集的鸡蛋图片灰度化处理后,应用外接矩形法描绘鸡蛋近似椭圆投影的外切矩形,利用改进型标记法判断鸡蛋是否破损.但该方法有一定的局限性,检测时会受到蛋壳斑点的影响,当斑点面积大于1 5.0 4mm2时,就会错检.王树才等6根据声波在不同介质中的不同特性,利用敲击声音信号进行研究,发现正常蛋、破损蛋、钢壳蛋和尖嘴蛋在衰减时间、共振峰频率、最大频差3项指标上存在显著差异,据此实现蛋的破损检测.但该方法受到噪声和敲击点的位置影响较大,对检测精度有一定的影响.从相关研究文献1-6可以看出,传统机器学习算法应用在禽蛋破损检测时,鲁棒性比较差,容易受到多因素的干扰,漏检和错检问题比较突出,很难满足大规模分拣的
19、需要.近年来,计算机视觉技术迅猛发展,目标检测算法不断改进和创新,被广泛运用在各个领域中7-8.在蛋破损检测领域,研究人员也不断尝试将各种目标检测算法应用在研究中,极大地提高了蛋壳破损检测的精度和速度.如涂伟沪等9利用蝗虫算法(g r a s s h o p p e ro p t i m i z a t i o na l g o r i t h m,GOA)改进c a n n y算子,提高了鸡蛋线型、网状裂纹的检测精度,对鸡蛋的线型和网状裂纹的漏检率分别降低了2 0%以上和6 0%以上;赵祚喜等1 0用YO L O v 4进行了鸡蛋破损的在线检测研究,破损蛋的识别率达8 5%左右.相比于鸡、鸭
20、、鹅等禽蛋,鸽子蛋具有体积更小、蛋壳更易碎的特点.据汤青萍等1 1人研究,鸽子蛋壳平均厚度为0.2 3mm,蛋壳强度1.1 9k g/c m,乳突层稀疏、形状不规则且直径较大,栅栏层断面凹凸不平,晶体层晶体排列松散、晶格棱角模糊.基于此,本文实验采用目前综合性能最优的目标检测算法YO L O v 5来研究鸽子蛋壳破损检测.以自行设计的设备分别对裂纹鸽蛋和完好鸽蛋的图像进行采集,对数据通过M o s a i c数据增强1 2、自适应锚框计算、自适应图片缩放等进行预处理.在实验过程中,出现了模型对部分裂纹鸽蛋识别准确率不高的问题,原因在于细微裂纹在深层网络中出现特征丢失、气室特征权重过高的问题,干
21、扰了裂纹特征的提取.为此,本研究对YO L O v 5模型进行了相应的改进,增加一个检测层以提高对细微裂纹特征的提取能力,融合改进的S E注意力机制(s q u e e z e-a n d-e x c i t e)1 3以提高裂纹特征的权重.本文采用YO L O v 51 4,F a s t e rR C NN1 5,YO L O v 3-S P P1 6进行对比,结果显示,本文改进的YO L O v 5模型在鸽蛋破损检测中综合优势明显,为鸽蛋的破损检测提供了新的解决方案.1 模型选择1.1 Y O L O v 5算法描述YO L O v 5由4个模块组成:输入端(I n p u t)、主干网
22、络(B a c k b o n e)、颈部网络(N e c k)和输出端(H e a d),其网络结构见图1.39第8期 杨航,等:基于改进YO L O v 5的鸽子蛋壳破损检测图1 YO L O v 5网络结构1.1.1 输入端主要功能是数据输入与数据增强,包括M o s a i c数据增强、自适应锚框计算、自适应图片缩放等.其中,M o s a i c数据增强通过对输入图像进行随机缩放、裁剪、拼接、排布等方式增加小目标的样本数量,从而提高模型的检测精度.1.1.2 主干网络主要包括C B S、带s h o r t c u t的C 3和S P P F3种模块(图1).C B S的结构为C o
23、 n v+B N+S i L U,主要用于卷积操作;C 3为C S P架构1 7,包含了3个标准卷积层和多个b o t t l e n e c k模块,这个部分的C 3模块包含的位置信息、细节信息较多,但语义信息较少,主要用于特征提取;S P P F模块采用了多个小尺寸池化核来代替单个的大尺寸池化核,在保留了单个大尺寸池化核的多感受野特征融合功能的情况下,进一步提高了运行速率.1.1.3 颈部网络位于主干网络和输出端之间,主要由C B S,U p s a m p l e,C o n c a t和不带s h o r t c u t的C 3组成.颈部网络采用F P N+P AN的结构,F P N结
24、构1 8能使所有尺度下的特征都有丰富的语义信息;P AN结构1 9则主要用于加强定位信息.N e c k的C B S主要作用是通过下采样来抽取高层次语义信息.C 3则主要用于纹理特征的提取,包含的位置信息、细节信息较少,语义信息较多,将提取出的特征进行混合组合后,传递到预测层,增强网络特征融合的能力.1.1.4 输出端H e a d模块利用之前获取的特征作出预测,采用G I o U_L o s s作为损失函数,同时通过非极大值抑制NM S来筛选目标框2 0.因网 络 深 度 和 维 度 不 同,YO L O v 5模 型 主 要 有YO L O v 5 n,YO L O v 5 s,YO L
25、O v 5 m,YO L O v 5 l,YO L O v 5 x等版 本.其 中,YO L O v 5 n是 支 持 移 动 端 的 最 小 化 模 型,训 练 出 来 的 最 终 模 型 的 大 小 是YO L O v 5 s的1/4左右,只有3.4MB,具有轻量化、精度高、速度快的特点.为满足轻量化要求,本研究实验选择了适合搭载在移动设备上、更轻量的YO L O v 5 n模型.1.2 算法优化针对鸽蛋破损检测过程中,裂纹目标细微、裂纹特征模糊、裂纹特征提取能力差等特点,本研究提出了两点改进.一是为提高细微裂纹检测精度,采用Km e a n s聚类算法计算细微裂纹锚框适应度,并在h e
26、a d模块增加检测层,从而检测到更小的裂纹;二是为提高对鸽蛋纹理特征的提取和融合能力,用融合了改进S E注意力机制的C 3模块代替原有的C 3模块,提高裂纹特征的权重,增强对鸽蛋纹理特征的提取和融合49西南师范大学学报(自然科学版)h t t p:/x b b j b.s w u.e d u.c n 第4 8卷能力.1.2.1 增加检测层YO L O v 5的3个检测层对应3组初始化A n c h o r值1 0,1 3,1 6,3 0,3 3,2 3、3 0,6 1,6 2,4 5,5 9,1 1 9、1 1 6,9 0,1 5 6,1 9 8,3 7 3,3 2 6,最大能检测3 23 2
27、的目标,最小能检测88的目标.由于大部分鸽蛋的裂纹比较细微,图像分辨率低、特征表达能力弱,能提取的特征比较少,更容易出现错检问题.为此,本研究采用Km e a n s聚类算法计算细微裂纹锚框适应度,迭代次数为10 0 0,获得自适应锚框7,9,1 3,8,9,1 2.即为了检测和提取到更细微的裂纹特征,在h e a d模块中增加A n c h o r值为7,9,1 3,8,9,1 2 的检测层.计算过程为:d(b o x,a n c h o r)=1-I OU(b o x,a n c h o r)(1)I OU(b o x,a n c h o r)=b o xa n c h o rb o xa
28、 n c h o r(2)依此改进后,主干网络的第2层就会开始增强特征,并在1 7层后继续对特征图进行上采样等处理,扩大特征图.在第2 0层将获取到的大小为1 6 01 6 0的特征图与主干网络中第2层特征图进行c o n c a t融合,以此获取更大的特征图,从而能够提取到44大小的特征,实现对比较细微的裂纹的特征提取.1.2.2 添加注意力机制S E模块在本鸽子蛋破损检测任务中,细微裂纹的特征信息容易在深层网络中丢失.同时,在暗室照蛋的条件下,气室部位会形成光晕,给裂纹特征信息带来极大的干扰,需要更加注重纹理特征的提取.S E注意力机制1 3能通过建模来确定各个特征通道的重要程度,然后针对
29、不同的任务增强或者抑制不同的通道,增强对裂纹特征信息的学习,增加裂纹特征的权重,可以让网络更加关注待检测目标,减少细微裂纹特征信息在深层网络中丢失的现象,从而提高检测效果.为此,本实验将S E注意力机制融合到C 3模块中,以增强裂纹特征信息的提取.S E注意力机制结构主要包含S q u e e z e和E x c i t a t i o n两部分.S q u e e z e通过全局平均池化层(g l o b a l p o o l i n g)将全局空间信息压缩到信道描述符中,将HW个像素压缩成一组113的实数,计算公式为:zc=Fs q(uc)=1HWHi=1Wj=1uc(i,j)(3)然后
30、通过E x c i t a t i o n的激励操作,将113的实数降维为11(3/r),然后再升维到113,最后经过s i g m o i d激活函数的全连接层的归一化操作,变成一组0-1的实数,计算公式为:s=Fe x(z,W)=(g(z,W)=(W2(W1z)(4)s=Fe x(z,W)=(g(z,W)=(W2m a x(0,W1z)(5)其中为R e L U激活函数.这组0-1的实数对应了每个通道的重要性,0为最不重要,1为最重要.最后再对应到特征图的每一个像素值,得到的最终输出为:F=(HWC)(11C)(6)考虑到大部分的裂纹在照蛋环境下呈现黑色纹路,在E x c i t a t
31、i o n的激励操作的降维中会出现得到的实数基本相同,而裂纹部分的R G B图色值大多数接近0,0,0,使得这部分的特征在归一化之后获得的权重很低,出现这部分特征在深层网络中丢失的现象.为此,本实验对S E注意力机制的全局平均池化层进行修改,以反向最大池化层的方式增强裂纹特征的权重.改进后的S q u e e z e操作为:zc=Fs q(1-uc)=m a x(Hi=1Wj=11-uc(i,j)(7)然而,这一改动会在降维操作中出现输入为负的现象.如果继续使用R e L U激活函数的全连接层,会出现小于零的输入存在时导致的神经元坏死问题(图2).于是,本研究采用s w i s h激活函数的全
32、连接层,这样即便在降维操作中输入为负也不会出现输出为0的现象,可以较好地解决融合了反向的最大池化层后出现的负向梯度消失问题,避免部分神经元坏死,确保神经网络误差正常反馈(图3).59第8期 杨航,等:基于改进YO L O v 5的鸽子蛋壳破损检测图2 激活函数R e L U的全连接层降维结果图3 两种激活函数的降维结果对比 与R e L U激活函数相比,s w i s h激活函数2 1-2 2是一个平滑的、非单调的函数,它和它的导数定义为:f(x)=x(x)(8)f(x)=(x)+x(x)(1-(x)(9)其中:(x)=s i g m o i d(x).从中可知,在x0时,s w i s h激
33、活函数不会出现梯度消失的问题;当x0时,也不会出现R e L U激活函数导致的神经元坏死的问题.在S E注意力机制的全连接层中,采用s w i s h激活函数的全连接层便不会出现得到的实数中出现0的现象,由此可避免这部分特征在深层网络中丢失.同时,s w i s h激活函数的导数也不像R e L U激活函数的导数那样一成不变,而是处处可导、连续光滑,能显著提高神经网络的准确性2 3,让模型获得更高的精度.虽然s w i s h激活函数能提高精度,但在移动设备和嵌入式设备上它所需的计算成本要比R e L U高得多.在相同数据集下,对分别使用R e L U、s w i s h和H a r d s
34、w i s h激活函数时模型的推理速度进行对比时发现,使用R e L U激活函数时的单帧推理时间为1 0.3 m s,使用s w i s h激活函数时的单帧推理时间为1 0.9m s,使用H a r d s w i s h激活函数时的单帧推理时间为1 0.5 m s.使用R e L U激活函数和H a r d s w i s h激活函数时,模型的推理速度差别不大,降低了不到2%;而使用s w i s h激活函数时,模型的推理速度却降低了约6%.因此,本文采用H a r d s w i s h激活函数代替R e L U激活函数2 4,其定义为:H a r d s w i s h(x)=xH a
35、r d S i g m o i d(x)=xR e L U 6(x+3)6(1 0)R e L U 6(x)几乎可以在所有的软件和硬件框架上使用2 4,在量化过程中消除了近似S i g m o i d函数的不同实现而导致的潜在数值精度损失.此外,H a r d s w i s h激活函数可以实现分段功能,以减少内存访问次数,能使网络的推理速度加快,对量化过程更加友好2 5-2 6.R e L U,s w i s h,H a r d s w i s h3种激活函数及其导数见图4.图4 R e L U,s w i s h,H a r d s w i s h激活函数及其导数69西南师范大学学报(自然
36、科学版)h t t p:/x b b j b.s w u.e d u.c n 第4 8卷改进后的E x c i t a t i o n的激励操作为:s=Fe x(z,W)=(g(z,W)=(W2(W1z)(1 1)s=Fe x(z,W)=(g(z,W)=(W22(W1z)*m a x(0,m i n(1,(0.2(W1z)+0.5)(1 2)其中为H a r d s w i s h激活函数.改进后的S E注意力机制的结构见图5.图5 S E注意力机制以及改进后的S E注意力机制改进后C 3结构见图6.图6 改进后C 3的结构2 实验过程2.1 实验设备本研究实验采用自主设计的数据采集设备,旨在
37、创造一个尽可能去除外部干扰的检测环境,用来采集鸽蛋图像和实现对鸽蛋的快速检测.装置的主体部分由可控制传送带、暗室、摄像机、开发板组成.传送带79第8期 杨航,等:基于改进YO L O v 5的鸽子蛋壳破损检测采用步进电机驱动,使用S TM 3 2 F 0 3 0 R 8芯片控制传送带的转动速度和识别单个鸽蛋的时间;开发板使用的操作系统为U b u n t u1 8.0 4,检测G P U为G T X 7 6 0,显存容量2 0 4 8 M,测试环境为P y t h o n 3.8,测试框架为P y t o r c h 1.9.0,使用C UD A版本1 0.2.8 9作为框架计算.鸽子蛋通过传
38、送带被连续不断送入暗室,每个鸽蛋在固定时间内绕轴心旋转3 6 0,利用摄像头通过照蛋法采集到每个鸽子蛋的图像,每个鸽蛋获得蛋身不同侧面的图片若干张,利用这些图片建立数据集并训练模型,最后由开发板搭载训练好的模型对鸽子蛋进行实时检测.实验装置及示意图见图7.图7 实验装置及示意图2.2 数据采集和数据集建立本研究的实验材料为3 0 0枚完好无损鸽子蛋,从鸽子养殖场和菜市场采购获得.先将3 0 0枚鸽蛋通过图7实验装置拍摄获得图像,并将这些图像编组为“g o o d”.然后用不同工具、不同力度在3 0 0枚鸽子蛋的不同部位敲出裂缝,尽量使裂缝的大小、形状、位置不一,并通过图7实验装置拍摄获得图像,
39、编组为“c r a c k”.将“g o o d”组和“c r a c k”组图片建立数据集,并对“c r a c k”组图像的裂纹通过图像翻转、旋转及对裂纹复制、粘贴等方式进行数据增强,对数据集进行扩容,得到2 1 7 9张图片组成的数据集,其中将16 2 0张作为训练集,5 5 9张作为测试集.2.3 训练环境以及模型训练在网络模型训练阶段,本实验使用的操作系统为U b u n t u1 8.0 4,训练G P U为2 0 6 0 t i,显存容量6 1 4 4 M,测试环境为P y t h o n 3.8,测试框架为P y t o r c h 1.9.0,使用C UD A版本1 0.2.
40、8 9作为框架计算和c u D NN 8.2.1的深度神经网络加速库.迭代批量大小为1 6,总迭代次数设置为2 0 0次,初始学习率设置为0.0 0 1.3 结果本文的所有结果利用单张图片的检测时间和视频检测的帧数作为模型推理速度的评价指标.采用准确率(p r e c i s i o n)、召回率(r e c a l l)、平均精度(a v e r a g ep r e c i s i o n,A P)和权重大小等指标衡量检测效果.准确率越高,分拣正确的鸽蛋就越多;召回率越高,漏检的鸽蛋就越少.相关指标计算公式如下:P r e c i s i o n=TpTp+Fp(1 3)R e c a l
41、 l=TpTp+FN(1 4)A P=10P(R)d R(1 5)其中,TP为真实的正样本数量,FP为虚假的正样本数量,FN为虚假的负样本数量.3.1 融合S E注意力机制前后对比本实验分别用未添加S E模块、添加默认S E模块、改进S E模块3个模型进行对比实验,将这3种模型分别命名为YO L OV 5,YO L OV 5-S E和YO L O v 5-改进S E.检测试验结果见表1.89西南师范大学学报(自然科学版)h t t p:/x b b j b.s w u.e d u.c n 第4 8卷表1 Y O L O v 5模型融合S E注意力机制前后的检测指标对比模型(M o d e l
42、s)P r e c i s i o nR e c a l lmA P0.5YO L O v 50.8 3 20.9 1 10.9 4 9YO L O v 5-S E0.9 1 70.9 2 90.9 2 1YO L O v 5-改进S E0.9 2 20.9 3 80.9 3 9 从表1可见,融合了S E注意力的YO L O v 5检测的准确率、召回率得到显著提升,整体检测准确率(P r e c i s i o n)达到9 1.7%,提高了8.5%;召回率(R e c a l l)达到了9 2.9%,提高了1.8%;在融合改进S E注意力机制后,准确率和召回率的指标进一步提升,分别达到了9 2
43、.2%和9 3.8%,对于漏检问题有了较好的改善.3.2 消融实验为验证本实验对YO L O v 5改进后的检测效果,在原数据集上展开消融实验,以判断每个改进点的有效性,依次在原有模型上添加检测层和改进S E注意力机制,进行逐项改进.结果如表2所示(使用该项改进用“”表示,未使用该项改进用“-”表示).表2 消融实验各项指标对比增加检测层改进S E注意力模块准确率召回率平均精度mA P0.5-0.8 3 20.9 1 10.9 4 9-0.9 0 60.9 4 20.9 6 0-0.9 2 20.9 3 80.9 3 90.9 8 00.9 7 30.9 8 3 可以看出,引入了改进S E注意
44、力机制后,准确率提高了9%,召回率提升了2.7%;而增加了更小检测层之后,准确率的提升虽然不如融合了改进S E注意力后那么惊艳,但召回率却有了明显的提升,高达3.1%.综合两种改进之后的新模型在准确率、召回率上都有了明显的提升,其中准确率达到了9 8%,提高了1 4.8%;召回率达到了9 7.3%,提高了6.2%.实验结果表明,对YO L O v 5的每一项改进都取得了一定的效果,综合改进网络结构和预测端的最终模型效果最佳.部分检测效果见图8.图8 部分实际检测效果对比3.3 不同模型检测效果比较为了验证本研究实验所用算法的有效性和鲁棒性,本文实验在相同的配置环境下,用F a s t e rR
45、 C NN,YO L O v 3-S P P,YO L O v 5,改进YO L O v 5进行了基于同一数据集的对比实验,结果见表3.99第8期 杨航,等:基于改进YO L O v 5的鸽子蛋壳破损检测表3 F a s t e rR C N N,Y O L O v 3-S P P,Y O L O v 5,改进Y O L O v 5模型性能比较模型(M o d e l s)S i z e(p i x e l s)P r e c i s i o nR e c a l lF P S(帧/s)M o d e l s i z e(MB)F a s t e rR C NN6 4 00.4 9 20.9
46、2 66.61 9 3.2YO L O v 3-S P P6 4 00.8 1 30.8 6 95 43 2 3YO L O v 56 4 00.8 3 20.9 1 11 2 53.4改进YO L O v 56 4 00.9 8 00.9 7 31 1 14.6 结果显示,F a s t e r-R C NN,YO L O v 3-S P P,YO L O v 5,改进YO L O v 5的准确率分别为4 9.2%,8 1.3%,8 3.2%,9 7.4%,召回率分别为9 2.6%,8 6.9%,9 1.1%,9 7.1%,本实验的改进YO L O v 5在准确率和召回率方面均为最高水平.虽
47、然在模型的优化过程中,增加了一定的计算量,导致检测速度略有下降,但差别不大,且在3 0帧/s的视频流下可以流畅运行并准确识别.因此,改进YO L O v 5模型具有最优检测效果.4 讨论由表1可知,融合了S E注意力机制的YO L O v 5模型在各项指标上都明显优于原始的YO L O v 5模型,表明在n e c k的C 3模块后面融合的S E注意力机制的确提高了对鸽蛋纹理特征的提取能力,从而能够更好地保留裂纹特征,提高了检测的准确率和召回率.但平均池化层依旧会忽略掉一部分裂纹特征,导致仍有相当一部分裂纹鸽蛋被错检和漏检.而将S E注意力机制优化后,通过反向的最大池化层提升了裂纹特征的权重;
48、同时,H a r d s w i s h激活函数的全连接层替换R e L U激活函数的全连接层后,在基本保证了原有推理速度的前提下,避免了R e L U激活函数在输入为负时存在的神经元坏死问题,确保神经网络误差正常反馈(图9),检测效果有了进一步提升.图9 融合S E注意力机制和改进S E注意力机制特征图对比由表2可知,单项的改进虽然在整体上有所提升,但却有着各自的缺陷:增加了检测层的改进模型虽然提升了对细微裂纹的鸽蛋的检测效果,但对于在YO L O v 5模型下裂纹明显的错检鸽蛋的检测结果基本没有得到纠正;而只融合了S E注意力机制的改进模型,虽然在裂纹明显的鸽蛋的错检方面有了较为明显的改善
49、,但对YO L O v 5模型下比较细微裂纹的错检或漏检并没有得到很好的纠正.在融合两种改进之后,模型在减少错检和漏检方面都表现出较好的效果.增加检测层和融合注意力机制的代价是计算量增加,导致检测速度降低了大约1 1%,但相对于细微裂纹检测精度接近2 0%和召回率接近1 2%的提升,速度上的小幅降低是可以接受的.因此,这两种改进是比较有效的.F a s t e rR C NN作为深度学习两阶段的目标检测算法,算法原理是通过R P N(R e g i o nP r o p o s a lN e t-w o r k)网络先提取出物体的候选位置(R e g i o nP r o p o s a l)
50、,然后对候选位置进行物体分类、边界框回归和置信度计算,因此,F a s t e rR C NN的召回率会高于YO L O系列算法.从表3的实验结果中可以看出,F a s t e rR C NN的准确率是四种模型中最低的,表明其较难准确分类出完好鸽蛋和裂纹鸽蛋.同时,两阶段算法的特性决定了F a s t e rR C NN的运行速度要低于YO L O系列算法.YO L O v 3-S P P和YO L O v 5的差别不大,但YO L O v 5在n e c k部分引入C S P结构,加强了网络特征的融合能力,从而提高了模型的效果.此外,YO L O v 5模型在检测速度和模型大小上优于YO L