1.4.1 喷码检测方法概述
1.基于传统机器视觉方法的喷码检测技术
在早期的工业现场中,对产品质量合格的把关大都是采用人工质检的方式,但人工的检测效率有限,不仅检测速度慢,且耗费成本高,诸多的弊端早已无法满足高速自动化罐装生产线的要求。随着机器视觉技术的发展,对于这种工作强度大且重复机械式的任务,采用机器视觉的方法可以完成在线实时检测,很好地代替了落后的人工检测方式,极大地提升了厂家的生产效率。
近年来,对喷码质量的检测首要任务是对喷码的字符内容进行识别,进而通过喷码字符的高度、个数以及内容是否匹配等标准来评判喷码的质量是否合格。传统字符识别的方法主要包含以下步骤:
①对工业相机捕获的图像进行预处理;
②对字符区域定位并提取;
③分割提取单个字符;
④对单个字符片进行识别。
外界环境因素的干扰和设备性能的好坏等原因会直接影响获取图像的质量,而低质量的图像会增大后续步骤算法设计的难度,也会影响算法的实现效果。因此图像的预处理工作显得极为重要,其主要目的在于改善图像质量,同时根据算法的设计需要,还可以起到增强图像重要信息的可检测性与简化数据的作用。图像预处理的方法主要有灰度变化、图像增强等。灰度变化算法是将彩色的RGB三个通道的图像,通过加权平均的方式得到单通道的灰度图像,可以减少图像处理过程中的数据量;图像增强算法可以对图像的亮度、对比度、饱和度等进行调节,突出图像中更有价值的信息,也能达到减少噪声的作用。如灰度变换法、直方图均衡化、直方图匹配等算法,一般用于图像对比度的增强;高斯滤波等图像平滑的算法可用于消除图像中的噪点。
字符区域的提取目的是定位图像中的字符位置,常用的有二值化法和边缘检测法。二值化法是数字图像处理中最常用的方法之一,通过设定一个阈值将大于和小于阈值的像素部分分为感兴趣区域和背景区域,因此也称为阈值分割法。二值化处理后的图像只存在黑白两种颜色信息,图像的数据量减少,且使得感兴趣区域的轮廓信息更为突出。二值化法简单明了,但缺点是对整体图像空间缺乏考虑。有研究采用基于逼近思想的迭代法,根据每一幅图像的灰度值分布来逼近一个最佳的阈值,从而确定每一幅喷码图像的最佳分割阈值。研究者采用二值化Arimoto熵进行阈值分割,在考虑像素点的空间分布特征情况下,又完成了像素点的灰度分布信息的统计。通过采用计算机视觉软件库OpenCV中的自适应阈值二值化算法(Adaptive Threshold函数),研究者根据图像的局部特征自适应地计算喷码图像局部区域的阈值,通过对局部区域的逐个分割过程完成对喷码图像整体的分割。基于边缘检测的方法从图像整体的空间布局信息着手,通过边缘检测算子,如Sobel算子、Canny算子、Laplace算子、Robert算子等确定感兴趣区域的边缘信息,缺点是对于一些对比度低和复杂背景的图像无法保证边缘信息的连续和封闭。图像分割后如若存在字符旋转的图像,还需要对字符区域的图像进行倾斜校正。此外,还有研究者通过计算字符的倾斜角对图像进行仿射变换,从而达到喷码图像倾斜校正的目的。有研究者运用双线性拟合与错切变换相结合的方法,实现基于彩色车牌图像的倾斜校正。
字符分割的目的是从字符区域中得到单个字符切片。有研究者采用了基于投影分割的方法,根据二值化处理的图像得到水平方向和垂直方向上的投影直方图,然后利用直方图的局部最小值找到字符的间隔位置。但该方法在出现字符连接、复杂背景的干扰下很难找到最佳的分割字符位置。还有的研究提出基于聚类分析切割车牌字符的方法,根据与字符相关的先验知识,如固定尺寸、宽高和间距等信息,利用相同字符的像素构建一个连通域,较好地解决了车牌照在复杂背景下的字符分割问题。
最后,单个字符切片的识别可以采用模板匹配、KNN等方法从字符模板库中选择对应的字符,进而识别出字符符号;也可以通过图像的特征信息来设计分类器,如BP神经网络、卷积神经网络、SVM等来提升字符识别的准确率。
总的来说,目前基于传统机器视觉的喷码字符识别技术已较为成熟,理论性较强、速度快、过程可视化,并且只需要少量的样本实验即可实现。由于传统机器视觉方法需要根据当前任务场景的特点来手工设计特征,并且对于待检测图像的质量要求较高,通常适用于在单一背景或者具有高区分度的背景图像中。然而,对于图像背景干扰较大、字符出现连接或者图像光照条件分布不均等情况,喷码识别的准确率会受到严重影响。
2.基于深度学习的字符识别研究现状
深度学习在字符检测与识别领域获得了显著的成效和广泛的应用,取得了传统机器视觉方法无法媲美的性能和结果。
Wu Jixiu等提出了雷管喷码自动识别网络(ADCR-Net),通过集成定位模型和识别模型两种深度神经网络结构,完成了对雷管字符码快速和准确的识别。在字符定位网络中提出了多尺度级联块和特征集成模块,改进了特征提取的表现;在识别网络中提出了多级递进注意力模块,以帮助网络注意力集中在多级激活图上。
艾梦琴等[5]采用深度学习的方法对钢材表面字符进行检测和识别,设计了基于MobileNet的轻量化字符检测模型和CRNN字符识别模型。其中设计的轻量化字符检测网络结合了MobileNet模型和SSD目标检测算法核心,通过对SSD框架进行剪枝和优化,有效地提升了检测速度。
史健伟等扩展了YOLOv3模型中多尺度检测的功能,融合了多级细粒度的特征,使其对较小车牌的检测更为准确。采用了门控循环神经元GRU和CTC的组合方式对传统的CRNN序列识别模型进行了改进,实现了端到端的车牌字符识别精度的提升。
Singh等[6]采用深度学习和传统图像处理方法的结合,完成了对生产流水线上包装箱喷码的识别。检测部分采用CTPN完成复杂场景下的字符定位,通过形态学处理的方法得到单个字符,最后用改进的CapsNet对单个字符图像分类识别。
Li Hui等[7]为了实现端到端的车牌检测和识别,提出了一种联合训练的网络。与将字符检测和识别作为两个单独的任务并逐步解决的现有方法相反,该网络是基于Faster R-CNN和CRNN的结合,同时解决了这两个子任务,可以实现端到端的训练与识别。
深度学习技术的引入有效提升了喷码字符检测和识别的准确率,但在现实场景下,模型预测的准确性并不只是唯一要考虑的因素。一方面由于深度学习需要大量的数据计算,对计算机算力的要求很高,普通GPU已经无法满足深度学习的要求。而目前主流的算力都是基于GPU和TPU平台,导致了硬件成本和设备功耗增加。另一方面大量的数据计算使得模型运行的时间更长,实时性不如一些传统的机器视觉方法。且庞大的深度神经网络模型不适合在移动设备上部署,便携性差。因此,目前的发展趋势在于通过网络轻量化的方法,使得深度网络在低设备硬件条件下也能发挥高效性能。
3.轻量化深度神经网络的发展
模型的轻量化在早期常使用的方法是模型压缩,即对网络中不重要的参数进行剪枝,减少了网络过拟合的风险,提升了模型学习速率。Han等[8]研究者提出的Deep Compression通过剪枝、权值共享和权值量化、哈夫曼编码,从压缩模型参数的角度降低模型的计算量。另外,模型轻量化的研究主要集中在轻量化的模型架构设计上,改进的神经网络如MobileNet、Sufflenet、Xception通过深度可分离卷积、组卷积、通道混洗、空间相关性与通道相关性的改进等操作,提高了CNN网络结构的计算效率,在等效传统卷积方式效果的前提下减少了网络参数。而轻量化神经网络结构的设计依赖于人工设计网络的经验,以及在设计模型和超参数上投入大量的时间,因此近年来在神经网络架构搜索(Neural Architecture Search,NAS)技术上也得到了研究关注,并取得了一定成果。如NasNet、MnasNet通过强化学习控制器对神经网络架构与超参数进行搜索,可以自动地完成轻量级网络模型的搭建。