基于语义分割的槟榔内核轮廓检测
2019-08-13朱泽敏张东波张莹汪忠
朱泽敏 张东波 张莹 汪忠
摘 要:针对槟榔去核工序中槟榔内核轮廓检测问题,提出一种基于语义分割的槟榔内核轮廓检测方法。分割模型以VGG16为基础网络,将全连接层替换为卷积层,增加了跳跃结构,将浅层特征经过采样后在同一尺度下与深层特征进行融合,并将常规卷积替换成扩张卷积,减少了学习参数,提升了分割模型的实时性,得到最终的FCN-Dilated-VGG-8s分割模型。该模型对槟榔图像分割的准确率达到98.79%,单张图像分割只需0.071 s,模型大小只有FCN-VGG-8s模型的37.5%。算法表现出良好的鲁棒性,实现了槟榔图像准确、快速分割。通过对分割完后的图像的边界提取,即可得到完整平滑的槟榔内核轮廓线。
关键词:语义分割;边缘检测;深度学习;全卷积网络;扩张卷积
中图分类号:TP391.4 文献标识码:A
Betel Nut Stones Contour Detection Based on Semantic Segmentation
ZHU Ze-min1,ZHANG Dong-bo1,2?覮,ZHANG Ying1,2,WANG Zhong1
(1. College of Information Engineering ,Xiangtan University ,Xiangtan,Hunan 411105,China;
2. National Engineering Laboratory for Robot Visual Perception & Control Technology,Changsha,Hunan 410012,China)
Abstract:A method for the detection of betel nut stones contour based on semantic segmentation is proposed. The segmentation model is based on VGG16,among it the fully connected layer is replaced with convolution layer,moreover a jump structure is introduced,and the lower level features are merged with higher level deep features under the same scale,in addition we replace the conventional convolution with the dilated convolution,it results in reduced learning parameters,the real-time performance of the segmentation model is improved. By above process,the final FCN-Dilated-VGG-8s segmentation model is obtained. The accuracy of the model is 98.79% for betel nut image segmentation,and cost of single image segmentation is only 0.071s,and the model complexity is only 37.5% of the FCN-VGG-8s model. The algorithm shows good robustness and achieves accurate and quick segmentation of betel nut images. By extracting the boundary of the segmented image,a complete and smooth betel nut outline can be obtained.
Key words:semantic segmentation;edge detection;deep learning;full convolution network;dilated convolution
槟榔是一种快速消费食品,目前国内市场出售的槟榔通常属于烟果槟榔,其加工工艺比较复杂,加工主要流程包括选籽→碱洗→水洗→泡制→烘烤→表皮加香→切籽→去核→点卤→干燥→包装→成品等十几道工艺[1]。由于槟榔加工过程中经过挤压后形状变得极不规则(图1),因此其中三道关键工艺:切籽、去核和点卤工序目前通常由人工操作,由于每天加工量巨大,因此槟榔厂在上述三道工序上耗费的人工是很大的,由于人力成本逐年增加,而且生产环境有较强的刺激性气味[2],因此對槟榔厂来说,招工的成本很高而且比较困难。为了降低人工成本,同时提高生产效率和产品品质,槟榔加工过程亟需提高自动化程度。
本文只研究槟榔加工过程的去核问题,槟榔切籽后被一分为二,切开后的槟榔有果壁和果核两部分,如图2所示,其中果核需要去除,为了去除果核,我们的解决方案是通过控制机械臂沿槟榔内核轮廓进行去核操作,为了实现这一操作,需要检测出槟榔的完整内核区域轮廓曲线,从而给机械臂提供视觉引导。
传统的轮廓检测算法有基于边缘检测和基于区域分割的两大类,基于边缘检测的算法主要利用局部边缘的灰度突变,常用的有各种边缘检测算子,例如Sobel算子、Prewitt算子[3-5]、Canny算子等[6-7],优点是算法简单,实时性好,但是由于过于关注局部信息,其对弱边缘的检测不够理想,而且边缘平滑性差、鲁棒性弱,很多时候难以形成比较完整和闭合的轮廓,实验表明,这种情况在槟榔图像的轮廓检测中出现的概率不低。基于区域分割的方法中,早期比较出名的有区域生长算法,分水岭算法[8]、主动轮廓模型等[9],这一类算法的优点是利用了区域信息,综合考虑了多种因素,能够产生比较平滑且封闭的轮廓,但是需要人工干预,例如预设种子点或初始轮廓,另外算法比较复杂,通常达不到实时性要求,因此在工业图像处理中很少采用。
由于槟榔个体形状差异很大;不同批次槟榔的纹理,干湿度、内核颜色、果肉颜色差异很大;现场成像时易受到光照强度、污渍、破损等不可控因素影响,经前期实验验证出传统边缘检测方法和区域分割方法都不能取得良好的轮廓检测效果。
近年来,深度学习网络模型在计算机视觉任务中得到广泛应用,借助复杂模型的强大学习能力和大量数据的训练,深度学习在目标检测与识别、轮廓检测、语义分割等传统计算机视觉领域取得了很大的突破,在实际应用中达到了良好的性能。同时借助GPU和模型压缩、优化加速处理,速度得到很大提升,在实际部署中能够达到实时性处理要求。针对槟榔的内核轮廓检测问题,采用基于深度网络的轮廓检测模型或语义分割模型都是可行的。经典的轮廓检测模型有:Holistically-Nested Edge Detection(HED)[10]、Deep Category-Aware Semantic Edge Detection(CASENet)[11]等,由于直接采用轮廓检测模型不能生成单像素宽度的轮廓曲线,同时其关注的仍是局部边缘,因此检测结果并不能直接区分内核轮廓和其它的边缘。基于上述原因,我们选择的方案是通过语义分割模型先将槟榔内核区域完整的分割出来,分割得到的内核区域的边界曲线自然对应内核的轮廓曲线,这是很容易变换得到的。
研究了基于全卷积神经网络的语义分割槟榔内核轮廓检测方法。Shelhamer等将AlexNet[12]和VGG16等提出的分类网络改造成全卷积网络
FCN[13],并将分类网络的学习参数迁移到语义分割任务中。本文基于语义分割全卷积网络结构,将深度学习应用于槟榔内核轮廓检测问题,我们将槟榔图片分成背景、槟榔果壁、槟榔内核三部分,然后对分割得到内核区域部分进行边界提取即可得到槟榔内核轮廓曲线上各点的坐标。通过迁移学习后,FCN-VGG16-Net模型能很好地将输入的槟榔图像分割成背景、槟榔果壁、槟榔内核三部分,从而帮助我们很好地解决了槟榔内核轮廓检测任务。
1 改进的全卷积神经网络
FCN由CNN发展而来,CNN自2012年在ILSVRC夺冠以来,在图像分类、目标检测与识别等方面取得了广泛的应用。CNN在进行分类时主要由卷积层、池化层、全连接层和softmax层组成。图像经过一系列卷积池化处理后,再经过全连接层输出相同维度的特征向量,最后通过softmax层进行分类。网络每经过一次池化操作后输出特征尺寸变为输入特征尺寸的1/2,这对于分类任务没影响,但对语义分割问题而言由于丢失像素点位置信息,最终无法实现像素级分类的目标。因此FCN 以CNN 分类网络为基础,将网络最后的全连接层替换为卷积层,输出结果由一维的特征向量变成二维特征图,再对缩小的特征图进行若干次反卷积可恢复原始图像大小,最后通过像素级分类,得到每个像素点的类别,从而得到语义分割结果。VGG16-Net是经典的特征提取网络,本文以VGG16-Net作为特征提取的基础网络进行槟榔图像分割实验。最后在基于FCN-VGG16的基础上增加跳跃结构并将第一个反卷积单元中传统卷积fc6层替换成Dilated-convolutiondilated-fc6层,从而得到我们的槟榔图像分割网络,网络架构如图3所示,表1给出了详细的网络架构参数说明。
网络的改进主要包括三个方面:
1)FCN全连接层被替换为卷积层。现有的FCN-VGG16-32s分割网络在分类网络VGG16-Net的基础上将最后两层全连接层改为卷积层,其中第一个替换的卷积层fc6对应卷积核尺寸为4096*512*7*7,第二个替换的卷积层fc7对应卷积核尺寸为4096*4096*1*1。由于FCN-VGG16的前五个卷积模块分别包含一个池化层,每经过一层池化得到的特征图大小变为输入特征图大小的1/2,五次池化后即得到一个尺寸为输入1/32大小的特征图,最后对所得特征图进行反卷积,恢复到原图尺寸大小,从而实现像素级别的预测分类。
2)增加了跳跃结构。CNN 通过浅层卷积提取图像的细节特征,如边缘、角点等,而深层卷积提取
注:表中scale_pool4层中的[512]*0.01和scale_pool3层中的[256]*0.001为特征融合时设置的可调节权重影响因子;dilated-fc6层为扩张卷积层。
语义特征。直接对最后一层卷积特征score-fr进行32倍上采样得到FCN-VGG-32s模型,由于该模型只用了最后一层卷积特征,导致浅层轮廓、角点等细节信息丢失,使得分割结果粗糙、局部信息丢失严重。为融合浅层细节信息,FCN-VGG-8s在最初的FCN-VGG-32s基础上添加了两种跳跃结构:①FCN-VGG16-16s。在对scoer_fr层的输出进行反卷积的基础上,融合pool_4层特征,然后对融合后的特征upscore_pool4层进行stride为16,kernel_size为32的反卷积,从而将特征图扩大16倍,恢复到原图尺寸。②FCN-VGG16-8s。在FCN-VGG16-16s对upscore_pool4层进行反卷积的基础上,再融合pool_3层的特征,并对融合后的特征进行stride为8,kernel_size为16的反卷积,将特征图扩大8倍,再经过Crop层裁剪即可恢复到原图尺寸。
3)将常规卷积替换成扩张卷积。dilated convolution最初是为了解决FCN在下采样和上采样特征图缩小后再放大过程中造成信息损失这一问题提出来的,而在这里为了缩减模型大小,提升算法速度,本文从占据网络数据超过90%的fc6层着手,将原有的4096*512*7*7的fc6卷积替换成4096*512*3*3的dilated-fc6,由于Dilated-Convolution卷积核大小为3*3,扩张率為3时感受野为7*7,这使得保持相同感受野的同时大大减少了学习参数,其中fc6层参数量为102764544个,dilated-fc6层参数量为18878464个,参数量对比如图4所示。
当卷积核尺寸为7*7,扩张率为1时即为常规卷积,如图5(a)所示,本文所用的扩张卷积其卷积核尺寸为3*3,扩张率为3,如图5(b)所示,其感受野大小为7*7。
2 槟榔图像分割实验
2.1 数据采集与数据集制作
原始图像由200万像素的彩色CCD相机采集,光源采用白色穹形光源,图像初始尺寸为1600*1200的彩图,综合考虑处理速度和分割效果,实验中将图像归一化成500*375大小。标签制作时我们将背景标注为黑色,槟榔内核标注为绿色,槟榔果壁标注为红色,标签示例如图6(b)所示。原始数据一共818张,经左右翻转,随机旋转一定角度,数据扩增到2454张,并随机选取90%即2208张作为训练样本,剩下10%即246张作为测试样本。
2.2 实验环境
本文算法基于开源深度学习Caffe框架,实验硬件配置为Intel i7-7700处理器,NVIDIA GeForce GTX 1080Ti显卡,软件环境为Ubuntu 16.04 LTS 操作系统,CUDA9.0配套Cudnn7.0的加速训练环境。
2.3 评价指标
使用图像分割中使用最多的Pixel Accuracy标准来衡量算法的精度。
Pixel Accuracy:即标记正确的像素占总像素的比例。
注:nij:即预测为类j类的i类像素数,ti:即ground truth segmentation中类别i的像素总数
2.4 模型训练
深度神经网络在模型训练时要求数据集的量非常大,对硬件要求也比较高,而且模型训练周期很长。而实际情况下我们数据集的量不够,为了解决上述问题本文在模型训练过程中应用迁移学习策略,将VGG16在Pascal VOC数据集上预训练好的模型对网络的下采样部分进行初始化,这样大大减少模型训练时参数学习带来的振荡,既可以缩短训练周期还能得到小数据集上训练无法比拟的效果。训练过程中交替调用前向(forward)算法和反向传递(backward)算法来更新参数,最小化损失(loss),训练过程中关键参数如表2。
3 实验结果与分析
3.1 对比实验
为了验证本文算法槟榔内核轮廓检测的效果,以及实时性、鲁棒性方面的优势,本文设计了两部分实验:第一部分为基于传统方法的槟榔内核轮廓检测实验,第二部分为基于深度学习的槟榔内核轮廓检测实验。
3.1.1 基于传统方法的槟榔内核轮廓检测实验
我们分别对比了基于canny算子的槟榔内核轮廓检测方法,以及基于区域生长算法的槟榔内核轮廓检测方法。基于canny算子的槟榔内核轮廓检测方法需要先对图像进行平滑,当取阈值上下限分别为threshold1为20,threshold2为50时边缘检测效果相对最佳,最后通过阈值去除过短的线,剩下即为检测出的轮廓线,试验结果示例如图7所示。
图7给出了部分示例实验结果,其中图7 (a) (b) (c) (d) (e)是检测效果相对比较好的示例,但从中我们仍能观察发现,轮廓线并不平滑,容易产生毛刺。图7 (f) (g) (h) (i) (j) 给出了一些检测失败的典型示例:图7(f)由于槟榔内核失水后,体积缩小,导致果壁与内核分离形成空隙,由于难以区分内核和果壁的边缘,算法不能自动确定内核轮廓。图7(g)由于檳榔下端果壁较薄,且槟榔端部颜色与内核相近造成内外轮廓线连在一起,不能形成准确的封闭的内核轮廓线。图7(h)则因为槟榔内核部分纹理信息丰富,纹理产生的边缘给内核部分的边界边缘检测造成极大干扰。图7(i)槟榔果壁内部纹理差异较大,同时果壁颜色与背景颜色相近,造成边缘漏检。图7(j)则因为颜色相近的内核与果壁粘连,导致槟榔内核轮廓检测失败。
基于上述情况,我们得知基于边缘检测的方法存在的问题主要是:轮廓线易受纹理、噪声干扰、检测得到的轮廓线往往不够光滑,很多时候不能形成封闭的内核轮廓线。局部边缘细节对内核轮廓的判断形成很大干扰。
基于区域生长的方法受噪声边缘干扰影响相对较少且能够形成的轮廓线相对光滑,于是我们采用区域生长方法也做了槟榔内核轮廓的检测实验。基于区域生长的槟榔轮廓检测先用中值滤波对图像进行平滑处理,然后对平滑处理后的图像进行开闭运算,紧接着进行生长,最后再次进行开闭运算得到槟榔轮廓图,实验结果示例如图8所示。
图8给出了若干基于区域生长的槟榔内核轮廓检测示例结果。图8 (a) (b) (c)为检测效果比较理想的示例。图8(d)中由于果壁和内核部分灰度相近,在生长时误将部分内核分割成果壁。图8(e)中由于槟榔上端果壁较薄加上灰度相近,造成生长后的连通区域不闭合。图8(f)在统一阈值分割下,由于槟榔局部干湿度不同,图像灰度差异较大,导致区域生长效果很差。
总的来说,以上两种传统算法不需要繁琐的模型训练过程,且单张图像处理时间很短,对硬件设备要求很低,但是它们存在的缺点也是致命的,算法很容易被噪声边缘干扰,当槟榔各批次差异较大,槟榔形状及不规则时,检测效果不理想,算法鲁棒性很差。
4.1.2 基于深度语义分割的槟榔内核轮廓检测
本部分包含三个实验,其中实验一用于验证语义分割深度神经网络中相对于轮廓检测深度网络方法的优越性,轮廓检测网络采用的是HED。实验二用于验证FCN-VGG在融合低层信息后提升分割效果的有效性,主要对比的网络是FCN-VGG-8s,FCN-VGG-16s与FCN-VGG-32s。实验三用于验证Dilated Convolution取代常规Convolution缩减模型大小后,在提升处理速度方面的有效性,对比的网络是FCN-VGG-8s与FCN-Dilated-VGG-8s。
实验一、基于HED的深度神经网络轮廓检测实验结果
图9给出若干轮廓检测示例,HED模型对大部分样本检测效果还不错,但是存在以下问题:例如图9(a)槟榔内核失水体积缩小后,在果壁与内核之间形成的缝隙对边沿轮廓检测造成严重干扰。图9(b)由于内核与果壁灰度变化不明显,导致无法检测到边缘。图9(c)在获取图像时由于拍摄角度有一定倾斜,导致槟榔果壁侧面对轮廓检测造成干扰。由于HED模型检测的轮廓还只是响应图,不是单像素宽度的轮廓线,因此想获得单像素宽度准确的轮廓线还需要作后续处理,而且定位精度难以保证。
实验二、FCN-VGG-8s和FCN-VGG-16s分别是在FCN-VGG-32s网络的基础上融合pool_3和pool_4层特征后的模型,不同模型的分割结果示例如图10所示。
为了体现算法优势我们给出了分割难度相对较大的示例结果(图10),从分割结果来看,融合低层信息后的语义网络分割效果明显优于没有融合低层特征的网络,且FCN-VGG-8s,FCN-VGG-16s与FCN-VGG-32s三个网络中FCN-VGG-8s分割效果在细节部分明显优于其他对比模型,这为后续轮廓边缘提取提供了很好的初步结果。
实验三、Dilated Convolution取代Convolution,实验统计结果如表3所示:
在测试时我们选取了246张图像作为验证集,在测试五次后取平均值作为统计结果,从表3可知改进后的FCN-Dilated-VGG-8s比FCN-VGG-8s分割准确率高了0.47%,且训练得到的模型减小到
原模型的37.5%。在显存占用率测试时,我们将设置batch-size为1,分时输入同一批图像,测试五次后取平均值,最终得到相同环境下训练期间显存占用率减小到原模型的76.1%。在单张耗时测试时,我们取了100张图像进行测试,也是分别测试五次取平均值作为统计结果,最终测得单张耗时缩减到原来模型的73%。综上无论从分割效果,模型大小,显存占用率,单张测试耗时,本文算法都有明显优势。
在得到语义分割的内核区域后,其边界自然就是内核轮廓线,只要分割效果理想,轮廓线提取就很容易实现,图11中对应示例图所绘的绿色线部分即为该槟榔内核区域的轮廓线。
从上图可知,Dilated-VGG-8s模型在细节部分的检测效果明显优于其它两种模型,例如曲率变化较大的尖端(红色箭头表示处),其检测得到的轮廓线和实际轮廓拟合的更好。同时Dilated-VGG-8s分割时单张检测耗时只有VGG-8S的73%,显存消耗减少了37.5%,所以无论从效率上还是硬件设备要求上,基于Dilated-VGG-8s语义分割的槟榔轮廓检测具有明显优势。
4 结 论
传统的基于传统边缘检测和区域生长的轮廓检测方法在面对复杂的、不规则的槟榔图像时,算法鲁棒性差,检测成功率较低。为此,提出了基于语义分割的槟榔内核轮廓检测方法。通过将FCN全连接层替换为卷积层,增加跳跃结构,将常规卷积替换成扩张卷积等改进措施,提升了全卷积FCN网络的分割性能,在FCN-VGG-32s、FCN-VGG-16s、FCN-VGG-8s实验对比中,本算法分割准确率最高,达到98.79%,单张图片分割耗时减少到原来网络的73%,在模型大小、显存占用上有明显优势。
参考文献
[1] 孟继勇. 食用槟榔自动切籽机控制系统设计[D]. 西安:西安电子科技大学,2014.
[2] 高华北,张花玲,周湘晖,等. 槟榔加工业职业危害的调查[J]. 中国工业医学杂志,2009(2):125—127.
[3] JAIN N,KUMAR S,KUMAR A. Analysis of edge detection techniques using soft computing approaches[C]// Electrical,Electronics and Computer Science,IEEE,2016:1—4.
[4] XIN G,KE C,HU X. An improved canny edge detection algorithm for color image[M]. IEEE,2012.
[5] MANOORUBINI R,HARIPRIYA K,VIJAYARAGHAVAN R,et al. Comparison of edge detection techniques using traditional and soft computing approach[J]. International Journal of Applied Engineering Research,2014,9(2):161—166.
[6] DONG Y,LI M,LI J. Image retrieval based on improved canny edge detection algorithm[C]// International Conference on Mechatronic Sciences,Electric Engineering and Computer, IEEE,2014:1453—1457.
[7] RONG W,LI Z,ZHANG W,et al. An improved canny edge detection algorithm[C]// IEEE International Conference on Mechatronics and Automation,IEEE,2014:577—582.
[8] GONZALEZ L C. Digital image processing solution manual (3rd edition)[J]. 北京:电子工业出版社,2017.
[9] 秦倫明. 用于图像分割的主动轮廓模型研究[D].北京:北京交通大学,2013.
[10] XIE S,TU Z. Holistically-nested edge detection[C]// IEEE International Conference on Computer Vision,IEEE,2016:3—18.
[11] YU Z,FENG C,LIU M Y,et al. CASENet:deep category-aware semantic edge detection[C]// Computer Vision and Pattern Recognition,IEEE,2017:1761—1770.
[12] KRIZHEVSKY A,SUTSKEVER I,HINTON G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc,2012:1097—1105.
[13] LONG J,SHELHAMER E,DARRELL T. Fully convolutional networks for semantic segmentation[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society,2015:3431—3440.