APP下载

基于深度学习的水果缺陷实时检测方法

2021-12-04周胜安黄耿生张译匀高东发

食品与机械 2021年11期
关键词:中心点卷积深度

周胜安 - 黄耿生 - 张译匀 - 高东发 -

(1. 广东行政职业学院人工智能学院,广东 广州 510800;2. 广东外贸外语大学计算机科学学院,广东 广州 510665)

基于机器视觉自动检测具有较强的可执行性和非接触工作模式的优势[1]。左兴健等[2]研制了一套实用的猕猴桃自动分级设备,该设备包括单行定位输送系统、图像采集系统、分级执行系统和控制系统,通过多特征提取和融合分级的方法对猕猴桃实现了自动分级。项辉宇等[3-4]使用基于图像处理方法对苹果的大小、颜色和缺陷进行了检测,该类方法主要是基于水果形状、边缘、纹理等普通特征来定位缺陷目标。高辉等[5]采用自动亮度校正技术和加权矢量机相结合,进一步提高了水果缺陷检测准确率和检测速度,但该方法需要进行光照系统的配置,成本较大。薛勇等[6]采用GoogLeNet深度迁移模型对苹果缺陷进行检测,获得了较好的泛化能力与鲁棒性,但该卷积网络模型复杂、参数多且检测效率低。夏雪等[7]构建了用于苹果检测的轻量级无锚点深度学习网络模型M-CenterNet,该方法通过改进轻量级的MobileNetV3网络,结合关键点预测的目标检测网络(CenterNet),为非结构环境下果园作业平台的轻量化果实目标检测模型研究提供了新的思路。但该方法适应用于检测目标具有大小适中、外形和颜色较相近的特征,如场景中苹果目标的检测。

针对水果中存在复杂多样的缺陷块,为提高缺陷的检测准确度,文章拟设计一种实时的MO-CenterNet水果缺陷检测方法,先采用MobileNet[8]的高效架构代替CenterNet原有的Hourglass[9]编码解码全卷积网络,再用可形变卷积改造为深度的可形变卷积,扩大模型的感受野,增加小型缺陷块的检测目标数,并对CenterNet的检测头进行预测优化,通过位置阀值过滤非缺陷块预测目标,旨在为满足农产品自动化处理系统对于轻量化水果缺陷检测模型的需求提供依据。

1 检测方法

1.1 基于深度学习的目标检测方法

基于深度学习的目标检测包括目标分类和目标定位2个任务。按其算法可以分为两类:① 基于Region Proposal的R-CNN系算法如Fast R-CNN、Mask-RCNN等的Two-stage算法,即先用算法产生目标候选框,即目标位置,再对候选框进行分类与回归。Two-stage detectors对每个框重新计算图像特征并进行分类。后处理,即非极大值抑制(NMS),通过计算锚点(Bbox)间的IOU来删除同个目标的重复检测框[10-11],Two-stage detectors这种预测目标后处理很难区分和训练,因此现有检测器大多不是端到端可训练的。② Yolo、SSD、RetinaNet、CornerNet和CenterNet这类的One-stage算法。One stage detectors在图像上滑动复杂排列的可能Bbox,然后直接对框进行分类,而不会指定框中内容[12-16]。

如图1(a)所示,YOLO方法先通过卷积网络进行特征提取,生成S×S的feature maps(7×7),特征图上的每个点映射在原图上为一个方格。对于一个真实的目标框其中心点所落的网格负责预测此目标,每个bounding box除了要回归自身的位置(x,y,w,h)外,还要附带预测一个confidence值,每个网格要预测B个bounding box,网络预测后的Bbox通过NMS进行过滤,得到最终的检测框。

如图1(b)所示,CornerNet方法的原图经过卷积网络得到128×128大小的输出,然后经特征提取网络Hourglass network提取特征,Hourglass module后会有两个输出分支模块,分别表示左上角点预测分支和右下角点预测分支,每个分支模块经过Corner pooling层后输出3个信息:Heatmaps、Embeddings和Offsets。Heatmaps用来预测角点位置信息,一个支路预测左上角,一个支路预测右下角,Embeddings用来对预测的角点进行分组,即找到属于同一个目标的左上角角点和右下角角点,同一个预测框的一对角点的角距离最短。Offsets用来调整角点位置,使得获得的边界框更紧密。

CenterNet是基于CornerNet的改进。如图1(c)所示,与Corenet不同的是,CenterNet预测的是目标的中心点,而不再是CornerNet中的2个角点,然后再预测目标框的宽和高来生成预测框。

与CornetNet一样,CenterNet也是采用热力图(heatmap)来实现,均引入了预测点的高斯分布区域计算真实预测值,同损失函数一样。此外,CenterNet也不包含corner pooling等操作,因为一般目标框的中心点落在目标上的概率比较大,因此常规的池化操作能够提取到有效的特征。

1.2 CenterNet骨干网络

CenterNet网络模型是通过目标中心点来呈现目标,如水果缺陷块中心,然后在中心点位置回归出缺陷块的大小,如图2所示,因些目标检测问题变成了一个缺陷块的关键点估计问题。CenterNet网络先将水果图像传入全卷积网络,得到一个热力图,然后取热力图峰值点看作是缺陷块的可选中心点,同时通过该点的位置来预测目标的宽高信息。

由图2可知,CenterNet骨干网络由于采用全卷积网络将水果图下采样得到4倍的热力图,由于不需要提前设定预定区域,大大提高了计算速度。将水果热力图的通道数初始值设置为要检测的缺陷区域种类数。取热力图的前100个峰值作为网络提取的待检测缺陷块目标中心点,然后设定一个阈值进行筛选得到最终的目标中心点。CenterNet中所有的上采样前都有deformable卷积,4倍的下采样feature map使得网络不需要多尺度预测和特征金字塔的感受野也能更精确地检测缺陷块。

图1 YOLO、CenterNet和CornerNet目标检测Figure 1 Target detection of YOLO, CenterNet and CornerNet

CenterNet尽管不需要NMS,但是所有检测缺陷块的中心点是由热力图的峰值得到,因此会出现一个十分耗时的非极大值抑制过程,此外,CenterNet未采用分组卷积,进一步延迟了缺陷块的检测时间,很难应用到实际场景中进行实时检测。

1.3 轻量化网络

针对CenterNet的骨干网络无法满足在移动设备上的应用需求,Xiao等[17-19]研究了更轻的模型设计来获得更快的速度。轻量化模型设计主要思想在于设计更高效的卷积计算方式,从而使网络参数减少的同时,不损失网络性能。假设H×W为输出feature map的空间大小,C1为输入通道数,H1×W1为卷积核大小,C2为输出通道数,标准卷积的计算量与输出特征图的空间大小、卷积核的大小和输入输出通道的数量呈正比。当在空间域和通道域进行卷积时,需要H1×W1×C1×C2计算量。通过分解该卷积,可以加速卷积神经网络的计算,分组卷积将输入特征图按通道数分成g组,则每组输入特征图的尺寸为H×W×(C1/g),对应的卷积核尺寸为Hi×Wi×(C1/g),每组输出特征图尺寸为H×W×(C2/g)。将g组结果拼接(concat),得到最终尺寸为H×W×C2的输出特征图,分组卷积层的参数量为H1×W1×C1×C2/g,计算量为原计算量的1/g。

为了进一步降低卷积计算量,采用深度可分离卷积,假设输入特征图尺寸为DF×DF×M,卷积核尺寸为DK×DK×M,输出特征图尺寸为DF×DF×N,标准卷积层的参数量为DK×DK×M×N。将深度卷积和逐点卷积两者合起来就是深度可分离卷积。深度卷积负责滤波,尺寸为(DK,DK,1),共M个,作用在输入的每个通道上;逐点卷积负责转换通道,尺寸为(1,1,M),共N个,作用在深度卷积的输出特征映射上。深度卷积参数量为DK×DK×1×N,逐点卷积参数量为1×1×M×N,所以深度可分离卷积参数量是标准卷积的1/N+1/(DK)2。针对卷积计算特点,对分类算法进行优化,具有代表性的有ResNet、ShuffleNet和MobileNet。如ResNet中使用的带有bottleneck架构的残差单元是与其他未采用残差单元模型进行比较,具有更好的识别准确率。ShuffleNet在分组卷积中对通多次卷积,在组间的顺序进行“shuffles”,提高精度。MobileNetV3采用类似ResNet2中带有bottleneck架构残差单元的模块架构,用深度可分离卷积代替conv3×3,是残差单元的改进版本。MobileNetV3为了在保留高维特征的前提下减小延时,将平均池化前的层移除并用1×1卷积来计算特征图。特征生成层被移除后,先前用于瓶颈映射的层也不再需要,将减少10 ms的开销,在提速15%的同时减小了30 ms的操作数[20]。

2 MO-CenterNet目标检测网络

2.1 网络结构

文中受到 MobileNet 网络模型和CenterNet目标检测的启发,在尽可能减小网络计算量并保持较高的识别率的原则下,设计一个基于改进的CenterNet网络模型MO-CenterNet,其网络框架如图3所示,第1部分是图片输入,第2部分是骨干网络,用于图像特征提取,第3部分是图像的热力图,第4部分是检测头,包括目标中心点位置、目标高度、宽度和目标中心高斯分布。与原CenterNet网络相比,① 采用MobileNetV3(Bneck)模块单元作为骨干网络快速提取图像的特征,并尽量保证精度;② 对原有的检测头进行优化,检测头的所有普通卷积替换为depth-wise卷积,并将可形变卷积改造为深度的可形变卷积。

图3中每层图络的设计如表1所示。

由表1可知,Conv2d/s1/s2代表深度卷积,卷积步距为1/2。卷积核3×3代表卷积核大小为3×3。Bneck表示采用Mobilenet V3中的block块,由4部分组成:① 膨胀,由1×1卷积将原来的feature map膨胀;② 深度可分离卷积,由3×3卷积核逐层卷积每层特征,经1×1卷积融合成新的feature map;③ SE(Squeeze and Excitation,)结构的轻量级注意力模块,获取新的feature map后,利用SE的注意力机制获取空间权重来优化性能;④ Residual,利用残差结构做残差。

图3 MO-CenterNet的网络框架图Figure 3 MO-CenterNet network framework diagram

表1 MO-CenterNet网络层Table 1 MO-CenterNetnetwork layer

在MO-CenterNet网络中,先将输入水果特征图通过一个标准卷积层,然后在通过第0~10个改进后的Conv/s操作后,经第11层的池化和全连接层提取特征。为了更好地提取特征和使网络快速收敛,Conv/s操作卷积层处理后的输出均要经过BN层和ReLU非线性激活函数处理,从而增加复杂缺陷块的表达能力。

2.2 中心点预测

假设输入图像

I∈RW×H×3,

(1)

式中:

R、H——图像的宽和高。

热点图(keypoint heatmap):

(2)

式中:

R——输出对应原图的步长;

C——目标检测中对应检测点数量(苹果检测中C为3,代表有苹果不同大小的3个缺陷类别)。

P[(x1+x2)/2,(y1+y2)/2]。

(3)

(4)

式中:

σp——一个与目标大小(即W和H)相关的标准差。

2.3 损失函数

与CenterNet的损失函数类似,MO-CenterNet的损失函数如式(5)所示。

Ldet=Lk+λsizeLsize+λoffLoff,(λsize=0.1,λoff=1),

(5)

式中:

LK——关键点的热点图;

Lsize——目标长宽预测;

Loff——目标中心点偏移值;

λsize、λoff——试验设置参数。

(6)

式中:

N——图像的关键点数量;

α、β——超参数(用来均衡难易样本和正负样本);

xyc——所有关键点热点图上的所有坐标点;

C——目标类别(每个类别一张heatmap);

Yxyc——标注真实值。

(7)

式中:

p——图片中目标中心点坐标;

第一,现场巡检。这种巡检形式是最为传统的一种作业方式,也是现阶段使用最为普遍的一种方式。在现场巡检中,相关巡检人员需要利用船舶定期或不定期的对相应海域的航标进行检查与维护,对于航标故障进行预防以及排除。在现场巡检中,相关巡检人员要对航标灯、航标标体结构进行检查维护,并对航标的结构、设备、附属设施等进行故障排查与保养。同时,还要完成对航标位置等的测定。在现场巡检中,由于需要相关巡检人员深入实际的海域进行作业,所以受到天气条件、海况等的威胁较大,危险程度相对较高。

图4 关键点热点图值Figure 4 Keypoint heatmap value

R——缩放尺度;

(8)

式中:

Sk——真实尺寸。

苹果缺陷检测中,采用λsize,λoff=1所使用的backbone都有3个head layer,分别产生[1,4,128,128],[1,2,128,128],[1,2,128,128],即每个坐标点产生C+4个数据,分别为类别以及长、宽、偏置。

2.4 预测优化

3 结果与分析

3.1 试验数据集

文中算法通过keras实现,操作系统为Ubuntu18.04.1, CPU I5 2.9 GHz,显卡1080ti,内存32 G。为进一步证明改进MO-CenterNet目标检测效果,采用随机拍摄的1 000个苹果图片。

由于样品源数量有限,为了扩充样本数据规模,防止算法过拟合,对其训练样本进行数据增强(如图5),将图像缩放至512×512的分辨率,再将图像随机旋转-30°~30°,分别以0.8~1.2的随机缩放因子对图像进行缩放,并对其中50%的随机图像进行水平镜像,即相当于将整个样品数据量进行了成倍的扩充。

图5 数据增强效果图Figure 5 Effect of data enhancement

3.2 网络训练

将苹果数据集按8∶2分为训练集与测试集(见表2),从经过处理的训练集中随机抽出20%的图片为验证集。训练集数据输入模型训练前,为了使训练出的模型泛化性更高,使用图像增强技术对数据集进行镜像、缩放和旋转处理。

模型训练分为两次:第1次训练学习率为0.000 1,轮次100次,每轮次迭代次数100,共迭代10 000次,每次迭代训练样本数为20;第2次训练使用减少学习率和提前终止,初始学习率为0.000 01,最大轮次为50次,每轮次迭代次数150,最大迭代次数7 500,每次迭代训练样本数为5。

表2 苹果缺陷数据集信息表

由图6可知,经第1、2次训练后,改进MO-CenterNet算法损失值均趋于稳定。

3.3 训练结果及分析

在数据集的测试集中随机抽取两张图片,并将图片输入已建立好的模型中,得到对应的框坐标和类别。为了更好地体现小的缺陷块结果,将3类缺陷的score初始值设置为0.25,IOU的初始值设置为0.70,检测结果如图7 所示。由图7可知,该模型能分别检测出≥4 mm、2~4 mm和≤2 mm 3种缺陷,其中检测出最显著的缺陷概率为0.997。

图6 迭代训练损失值Figure 6 Iterative training loss

为了提高2~4 mm和≤2 mm两类小缺陷块,采用基于位置特点的距离约束进行检测优化,结果如图8所示。

由图8可知,当score值为0.30时,原本要保留的很多候选点被过滤了,如图8(a)中的红点。当≤2 mm,2~4 mm缺陷的score值为0.15时,出现了更多候选点,如图8(b)所示;再通过距离约束筛选,获得更精确的≤2 mm,2~4 mm缺陷检测点如图8(c)所示,框外部分的检测点被过滤。

图7 检测结果Figure 7 Test results

为评估MO-CenterNet检测的性能,使用苹果缺陷数据集作为测试数据,采用缺陷检测平均值、检测速度和参数量作为评价指标对模型进行评估,结果如表3所示。

图8 检测优化过程Figure 8 Detection optimization process

表3 缺陷数据集各类别缺陷检测平均值

由表3可知,改进的MO-CenterNet算法的AP50值相比于CenterNet_ResNet18的提高了3%,比CenterNet_Shuffler的提高了9%,速度相比于CenterNet_ResNet18、CenterNet_Shuffler分别快23%,14%。MO-CenterNet模型所使用的参数量也是最低的。

4 结论

提出了一种新的基于机器视觉的水果缺陷检测方法MO-Centernet。该方法通过使用MobileNetV3针对移动端优化的轻量化神经网络模替代原有CenterNet骨干网络检测模块,并对Centern的检测头进行了轻量化改进,解决了深度卷积计算速度慢的问题,提高了网络的特征提取速度。此外,对于多个候选区域采用了距离约束进行筛选,进一步提高了网络对于苹果缺陷的检测速率。由于水果种类繁多,形状和缺陷要求不一,加上采集大量复杂的数据存在一些难度,自制的苹果数据图像集种类较为单一。为进一步增强检测模型的泛化性能,后续将针对类问题进行克服改善,以适用其在不同水果种类检测的适应性。

猜你喜欢

中心点卷积深度
四增四减 深度推进
基于3D-Winograd的快速卷积算法设计及FPGA实现
深度理解一元一次方程
一种基于标准差的K-medoids聚类算法
Scratch 3.9更新了什么?
卷积神经网络的分析与设计
如何设置造型中心点?
从滤波器理解卷积
简约教学 深度学习
基于傅里叶域卷积表示的目标跟踪算法