随着果冻生产效率的提高,传统的人工杂质检测已不能满足果冻生产商的需求。由于果冻的通透性,果冻内部的杂质可以通过人眼进行人工检测,但由于杂质类型繁多、体积小,导致人工检测效率低下,此外,杂质检测对检验员的经验要求高,不适合现代大规模的生产需求,且给企业增加了许多人力成本。因此,研究基于视觉图像的果冻杂质检测系统是果冻生产企业一个亟需解决的问题。
随着机器视觉与深度学习技术的迅猛发展和广泛应用,其在工业中产品表面的缺陷检测方面得到了广泛的应用[1-12]。Cen等人[1]提出基于低秩矩阵重构的方法来对TFT-LCD图像进行缺陷检测。Li等人[2]提出通过基于Fisher准则的堆叠去噪自动编码器方法(FCSDA)将织物贴片有效的分类为无缺陷和缺陷类别。Wang等人[3]提出一种基于深度学习的太阳能电池片表面缺陷检测方法,该方法根据样本特征建立深度置信网络,来取得训练样本到无缺陷模板之间的映射关系,利用重构图像与缺陷图像之间的对比关系,实现测试样本的缺陷检测。Yao等人[7]提出一种基于深度主动学习的磁片表面缺陷检测方法,该方法结合边缘检测和模板匹配算法将磁片前景与背景进行分割,使用Inception-Resnet-V2深度学习网络对样本进行训练,完成对缺陷图像的识别。文献[8]提出了一种基于卷积神经网络的晶圆图缺陷模式分类和图像检索方法对缺陷模式进行分类。文献[9]提出了一种基于图像特征融合的工业产品表面缺陷检测方法,该方法离线学习合格图像的子图像灰度差、颜色直方图和像素规律性,并根据这三种图像特征的检测结果进行检测。文献[12]提出了一种仅用无缺陷样本进行模型训练的缺陷检测和定位方法,利用去噪自编码网络对不同高斯金字塔级的图像块进行重构,综合不同分辨率通道的检测结果,将训练块的重构残差作为缺陷预测的指标,并将每个通道生成的重构残差图结合起来生成最终的检测结果。
由此可见,深度学习技术已经被广泛的应用到工业中缺陷检测领域。对于果冻生产企业来说,杂质检测直接关系到食品安全问题,也是企业产品品质的保证。果冻中的杂质检测可以建模为一个目标检测[13-16]和分类问题,即将果冻中的杂质视为需要检测的目标,通过目标检测方法对其进行检测定位。由于杂质目标小、形态不一、光照等问题影响,若直接使用目前已有的深度学习算法(如Faster R-CNN[13], YOLO[14],SSD[15]),不能取得较好的检测效果,无法直接应用于生产中。本文在已有的SSD网络基础上,提出基于深度学习的果冻杂质检测算法,能够在较短的时间内,准确的检测出果冻中的杂质,实现全自动检测杂质种类、标记杂质位置的功能。
图1是果冻杂质检测的流程图,主要包括分割块检测和检测结果整合两个阶段。
图1 果冻杂质检测算法流程图
Fig.1 Algorithm of jelly impurity detection
本文中,果冻图像大小为1700×1536像素,杂质的种类有飞虫、果虫、黑点、料垢、金属屑、头发、气泡、线头和浅色斑点九种。根据杂质的属性,头发丝杂质宽高不固定,飞虫的宽高约为60~90像素之间,果虫的宽高约在50~120像素之间。线头的宽高约为50~80像素之间,黑点的宽高约为10~30像素之间。由于目标占比小,尤其是对黑点、金属屑、料垢,此外,气泡、果虫与果冻、果肉颜色十分相似,若将原始图像直接输入SSD网络中进行检测,则大部分的小目标杂质会被漏检。因此,本文考虑对原始果冻图像进行分块预处理,其预处理流程如图2所示。经过分块预处理,使得小目标杂质在分割出来的图像块中的占比变大,这在一定程度上降低了小目标杂质的漏检率。
图2 图像预处理流程
Fig.2 Image preprocessing flow
本文提出滑动图像块分割方法对果冻图像进行分割,如图3所示。对于训练数据,用固定宽高L×L的滑动块,分别以一定的滑动步长s在原始图像上进行滑动,截取滑动块与原始图像重合的部分作为分块图像。在每次从左到右的滑动分块中,若滑动块超出了图像边界(最后一次滑动),则从图像边界往回选定L列作为分块图像。滑动分块方法见公式(1)。本文中,滑动块大小L×L为300×300像素,步长s为150像素。通过滑动图像块分割方法,每张原始图像可分割110个滑动块图像。
(1)
公式(1)中,Id(i,j)表示滑动块在第j次水平滑动,第i次竖直滑动所得到的分割图像块。H,W分别为原始图像的高和宽。I表示原始图像,I[x1∶x2,y1∶y2]表示原始图像中高从x1到x2,宽从y1到y2的一个图像块。
本文使用labelImg工具对分割块图像中的杂质目标进行标注。为增加样本的多样性,对图像进行水平翻转、竖直翻转等处理。对于测试数据,我们对原始果冻图像进行了标注。
图3 滑动图像块分割. 左图为原始果冻图像,右图为通过滑动图像块分割方法得到的110个图像块
Fig.3 Sliding image block segmentation. The left image is the original jelly image, and the right image is the 110 image blocks divided by the sliding image block segmentation method
普通的池化方法使用池化核为2×2,步长为2的参数,其最主要的作用是缩小特征图大小,达到加速的目的。但是在卷积网络的高层使用这种单一尺度的池化参数,没有考虑不同尺度下特征的显著性和相邻特征元素之间的关系,以致准确率下降。为了解决这一问题,本文提出使用多尺度重叠滑动池化(Scalable Overlapping Slide Pooling, SOSP)方法从粗粒度到细粒度进行池化。
SOSP方法主要通过若干种尺度的池化核对输入特征图进行池化。图4中,第一种尺度,使用核大小为n,m,填充为n/2,m/2,步长为1,1,通过该尺度对输入特征图进行池化,得到粗粒度特征图。第二种尺度,使用核大小为n,m/2,填充为n/2,m/4,步长为1,1,通过该尺度对输入特征图进行池化,得到中粒度特征图。第三种尺度,使用核大小为n/2,m,填充为n/4,m/2,步长为1,1,通过该尺度对输入特征图进行池化,得到中粒度特征图。第四种尺度,使用核大小为n/2,m/2,填充为n/4,m/4,步长为1,1,通过该尺度对输入特征图进行池化,得到细粒度特征图。以此类推,通过尺度五,尺度六等等,可以得到细粒度特征图。由于池化的步长为1,1,填充大小为池化核大小的一半,故经过多尺度重叠池化后的特征图尺寸相同,最终将得到的若干尺度特征图按通道合并到一起输出。
图4 多尺度重叠滑动池化方法
Fig.4 The scalable overlapping slide pooling
通过上述SOSP方法,可获得更加全面精准的粒度特征,提升网络对小目标的检测能力以及整体检测的准确性。
本文使用多尺度重叠滑动池化SSD网络框架对果冻图像进行杂质检测,网络框架图如图5所示。这里,输入大小为300×300的果冻滑动块图像,使用VGG16的前五个卷积模块作为基础网络提取特征,同时使用低层卷积层conv4-3和高层卷积层conv7、conv8、conv9、conv10、conv11共同产生检测结果,最后将满足阈值的检测结果进行非极大值抑制处理,得到最终的杂质目标。本文在SSD网络中使用SOSP池化方法取代第五层池化,以取得鲁棒的池化特征。
由于训练网络的输入是300×300的果冻图像分割块,而测试时,需要输出整张果冻图像及杂质的类别和位置。因此,需要对输入的整张果冻图像进行分块,然后再将分割块输入到网络中进行测试,最后将每个分割块上的杂质整合到原图上,如公式(2)。
(2)
其中,m表示分割块中的某个杂质在原图像中的序号。Otmp(m)表示分割块杂质投影的结果,共有5个属性,Otmp(m).c表示杂质的类别,Otmp(m).ltx、Otmp(m).lty、Otmp(m).rbx、Otmp(m).rby分别表示分割块杂质投影到原图像上左上角的横纵坐标和右下角的横纵坐标。公式(2)中,简写了横坐标x投影的计算和纵坐标y投影的计算,其中k表示某分割块中的第k个杂质。整合结果如图6的左图所示。
图5 网络框架图
Fig.5 The framework of the network
图6 映射与整合. 左图为分块图像结果在原图的映射,右图为杂质检测结果的整合
Fig.6 Mapping and merging. The left picture is the mapping of block image in the original picture, and the right picture is the integration of impurity detection results
从图6的左图可以看到,由于分块操作,因此同一杂质会被分割到不同的块中,导致整合后同一杂质对应有多个检测框,因此需要合并这些检测框,如公式(3)。
Otmp(m1)=[Otmp(m2).c,Otmp(m2).ltx,
Otmp(m2).lty,Otmp(m2).rbx,Otmp(m3).rby]
if Otmp(m2).c=Otmp(m3).c &
Otmp(m2).rbx≥Otmp(m3).ltx &
Otmp(m2).rby≥Otmp(m3).lty
(3)
此处,如果第m2个杂质与第m3个杂质表示的类别相同,且坐标框有重叠,则认为第m2个杂质与第m3个杂质表示的是同一个杂质,此时,我们对两个杂质进行合并。合并结果如图6的右图所示。最后,在整张果冻图像上标记的各杂质的类别和位置坐标,并将其输出。上述果冻杂质检测过程见算法1。
算法1 果冻杂质检测测试过程
Alg.1 The test of impurity detection of jelly
算法1 果冻杂质检测测试过程输入:果冻图像I,训练好的SSD模型M。输出:果冻图片杂质检测结果O。Step 1 果冻图像分块 通过遍历原始图像,根据公式(1),求得所有的图像分块Id;Step 2 分块检测 使用本文改进的SSD算法分块检测:Od=SSD(Id,M);Step 3 检测结果整合 分块杂质投影:根据公式(2),将所有分割块检测到的杂质Od投影到原图像上,得Otmp; 同一杂质多目标框合并:将Otmp同类杂质且重叠的检测结果按照公式(3)进行合并,得O。
实验环境:CPU为Inter Core i7- 6850K,主频为3.6GHz,11G显存,GPU处理器为GeForce GTX 1080 Ti,操作系统为Ubuntu16.04。
采集的果冻图像分辨率为1700×1536。其中,训练集5000张,验证集500张,测试集2500张。实验中,对训练集和验证集进行了预处理,经过滑动图像块分割方法将训练集和验证集分割为300×300像素的块图像,如图3右图,标签根据分割块图像制作。测试集是原始的果冻图像,图像大小为1700×1536。
首先使用经ImageNet数据集训练过的参数作为预训练参数,接着使用果冻数据库对改进的SSD算法进行训练,输入网络的图像大小为300×300像素,采用随机梯度下降法微调参数,学习率为0.001,训练批次(batch)大小为32,验证批次(batch)大小为8。对网络进行了12万次的训练,迭代次数与损失函数见图7,由图可知,迭代次数约80000时,网络得到了收敛。
测试时,输入大小为1700×1536像素,经过滑动块图像块分割方法分割成110个300×300像素的图像块,使用训练好的网络对这些图像块进行检测,使用算法1中Step3结果整合方法对检测的结果进行整合,并标记杂质的位置和类别。
图7 迭代次数与损失值
Fig.7 Iteration number and loss value
经过对测试集的2500张果冻图像进行测试,本文算法可以准确检测到大部分的杂质,但也有部分漏检和误检的现象,图像检测结果示例如图8所示。
图8 本算法的检测结果图
Fig.8 The detection result diagram of this algorithm
为了进一步验证本算法的性能,分别使用原始SSD算法和Faster R-CNN算法对本文所制作的果冻杂质数据集进行检测,并与本文提出的多尺度重叠滑动池化SSD算法作对比。在训练阶段,使用果冻数据集中的训练集对SSD算法和Faster R-CNN算法进行训练,使用经分块处理后的数据对本文算法进行训练。在测试阶段,三种算法均使用果冻数据集中的测试集进行测试。本文统计了这三种算法在九种缺陷上的准确率,以及平均测试一张果冻图像的耗时,如表1所示。
表1 不同算法在果冻数据测试集上的准确率及耗时
Tab.1 Comparisons of different methods on the test jelly dataset
算法SSDFaster R-CNNOurs头发0.68880.40130.7162黑点0.04270.08150.4231气泡0.38470.21510.8441料垢0.05250.36630.5862飞虫0.10530.23260.9241果虫0.26930.25760.9439线头0.41780.34090.8324浅块0.09520.33530.5298金属屑0.07180.24840.7444总体0.23650.27540.7271FPS2.491.540.53
通过表1可以看到,本文所提出的方法由于对果冻图像进行了滑动块分割处理,并使用多尺度重叠滑动池化SSD算法对每个滑动块图像进行检测,最后将检测结果进行整合处理,可以更加精准的检测果冻中的各种杂质。与直接使用Faster R-CNN和SSD方法相比,大大提高了准确率,整体准确率达到了0.7271。尤其是相对于目标比较小的黑点,使用Faster R-CNN和SSD方法几乎检测不到,而本文的算法可以取得0.4231的准确率。从测试时间上来看(表中时间单位为fps),由于本文算法对原始图像进行了固定步长滑动处理,原始的果冻图像的有效像素为1700×1536,而经过处理后,有效像素为110×300×300,像素个数为原图像的3.79倍,故增加了测试所需时间,如表1最后一行。但就果冻生产线上来说,SSD算法与Faster R-CNN算法由于检测的精度较低,并不能应用于生产线中,而本文所提出的算法,准确度可以达到0.7271,时间也在可用的范围之内,故基本可以满足工业要求。
本文提出了一种多尺度重叠滑动池化SSD算法的果冻杂质检测方法,用于检测果冻图像中的杂质并标记出杂质的位置。在预处理阶段,提出滑动图像块分割方法,将图像分割成110个300×300像素的图像块,解决了目标占比过小的问题。在杂质检测算法中,提出使用多尺度重叠滑动池化的方法取代第五次池化,取得了更加鲁棒的池化特征。实验结果表明,本文提出的算法在果冻数据集上极大地提高了检测准确率,且检测速度上也能基本满足实际生产要求。
[1] Cen Yigang, Zhao Ruizhen, Cen Lihui, et al. Defect Inspection for TFT-LCD Images Based on the Low-rank Matrix Reconstruction[J]. Neurocomputing, 2015, 149(3): 1206-1215.
[2] Li Yundong, Zhao Weigang, Pan Jiahao. Deformable Patterned Fabric Defect Detection With Fisher Criterion-Based Deep Learning[J]. IEEE Transactions on Automation Science & Engineering, 2017, 14(2): 1256-1264.
[3] 王宪保, 李洁, 姚明海, 等. 基于深度学习的太阳能电池片表面缺陷检测方法[J]. 模式识别与人工智能, 2014, 27(6): 517-523.
Wang Xianbao, Li Jie, Yao Haiming, et al. Solar Cells Surface Defects Detection Based on Deep Learning[J]. Pattern recognition & artificial intelligence, 2014, 27(6): 517-523.(in Chinese)
[4] 王辉, 孙洪. 鲁棒主成分分析的铝箔表面缺陷检测方法[J]. 信号处理, 2017, 33(4): 577-582.
Wang Hui, Sun Hong. Robust Principal Component Analysis for Aluminum Foil Surface Detects Detection[J]. Journal of Signal Processing, 2017, 33(4): 577-582.(in Chinese)
[5] 张琳娜, 岑翼刚. 铁轨图像的低秩矩阵分解缺陷检测[J]. 信号处理, 2019, 35(4): 667- 675.
Zhang Linna, Cen Yigang. Low-rank Matrix Decomposition for Rail Track Image Defect Detection[J]. Journal of Signal Processing, 2019, 35(4): 667- 675.(in Chinese)
[6] 冯奇, 黄建军, 张源, 等. LCD缺陷检测系统的图像压缩感知方法[J]. 信号处理, 2018, 34(1): 72- 80.
Feng Qi, Huang Jianjun, Zhang Yuan, et al. An Image Compressive Sensing Method for LCD Mura Detection System[J]. Journal of Signal Processing, 2018, 34(1): 72- 80.(in Chinese)
[7] 姚明海, 陈志浩. 基于深度主动学习的磁片表面缺陷检测[J]. 计算机测量与控制, 2018, 26(9): 29-33.
Yao Haiming, Chen Zhihao. Deep Active Learning in Detection of Surface Defects on Magnetic Sheet[J]. Computer Measurement & Control, 2018, 26(9): 29-33.(in Chinese)
[8] Takeshi Nakazawa, Deepak V. Kulkarni. Wafer Map Defect Pattern Classification and Image Retrieval using Convolutional Neural Network[J]. IEEE Transactions on Semiconductor Manufacturing, 2018, 31(2): 309-314.
[9] Wu Xiaojun, Xiong Huijiang, Yu Zhiyang, et al. A surface defect detection method based on multi-feature fusion[C]∥Ninth International Conference on Digital Image Processing (ICDIP 2017). BELLINGHAM, WA: SPIE-INT SOC OPTICAL ENGINEERING, 2017: 160-165.
[10] Mei Shuang, Yang Hua, Yin Zhouping. An Unsupervised Learning Based Approach for Automated Defect Inspection on Textured Surfaces[J]. IEEE Transactions on Instrumentation and Measurement, 2018, 67(6): 1266-1277.
[11] Wang Hengyou, Cen Yigang, He Zhihai, et al. Robust generalized low-rank decomposition of multi-matrices for image recovery[J]. IEEE Transactions on Multimedia, 2017, 9(5): 969-983.
[12] Kan Shichao, Cen Yigang, He Zhihai, et al. Supervised Deep Feature Embedding with Hand Crafted Feature[J]. IEEE Transactions on Image Processing, 2019, 28(12): 5809-5823.
[13] Ren Shaoqing, He Kaiming, Ross Girshick, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015, 39(6): 1137-1149.
[14] Joseph Redmon, Santosh Divvala, Ross Girshick, et al. You Only Look Once: Unified, Real-Time Object Detection[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). NEW YORK, NY: IEEE, 2016: 779-788.
[15] Liu Wei, Dragomir Anguelov, Dumitru Erhan, et al. SSD: Single Shot MultiBox Detector[C]∥Computer Vision - ECCV 2016, PT I. CHAM, CH: SPRINGER INTERNATIONAL PUBLISHING AG, 2016: 21-37.
[16] Singh B, Najibi M, Davis L S. SNIPER: Efficient Multi-Scale Training[C]∥Advances in Neural Information Processing Systems 31 (NIPS 2018). LA JOLLA, CALIFORNIA: NEURAL INFORMATION PROCESSING SYSTEMS (NIPS), 2018: 31.
Reference format: Zhang Fanghui, Zhang Chune, Zhang Linna, et al. Jelly Impurity Detection Based on Scalable Overlapping Slide Pooling SSD Network[J]. Journal of Signal Processing, 2020, 36(11): 1811-1818. DOI: 10.16798/j.issn.1003- 0530.2020.11.003.
张芳慧 女, 1990年生, 河南人。北京交通大学信息科学研究所博士研究生, 主要研究方向为深度学习、机器学习、目标检测、缺陷检测等。
E-mail: 18112013@bjtu.edu.cn
章春娥 女, 1976年生, 四川人。北京交通大学信息科学研究所讲师, 硕士生导师, 主要研究方向为数字水印、图像处理、模式识别与智能系统等。
E-mail: chezhang@bjtu.edu.cn
张琳娜(通信作者) 女, 1977年生, 贵州人。贵州大学机械工程学院讲师, 硕士生导师, 主要研究方向为工业产品缺陷检测、机器视觉等。
E-mail: zln770808@163.com
岑翼刚 男, 1978年生, 贵州人。北京交通大学信息科学研究所教授, 博士生导师, 主要研究方向为低秩矩阵重构、稀疏表示、小波分析、异常检测等。
E-mail: ygcen@bjtu.edu.cn
阚世超 男, 1991年生, 云南人。北京交通大学信息科学研究所, 博士研究生, 主要研究方向包括跨媒体智能处理、图像视频编码等。
E-mail: 16112062@bjtu.edu.cn