基于残差神经网络的商品生产日期识别技术研究
2023-01-06杨博文阮洁李纪豪陈志江
杨博文 阮洁 李纪豪 陈志江
中国民航大学 天津 300300
1 概述
商品的生产日期与商品的其他信息一样,对于商品质量的监管具有重要的作用[1]。然而,目前对于商品生产日期的自动化识别和管理技术的发展相较其他产品信息识别技术却大大落后。例如,通常超市等零售终端使用的扫码枪等仅能识别一维码或二维码所携带的品名、商品编号、售价等信息。而生产日期信息却需要超市工作人员肉眼识别录入或由消费者在购买商品时自行识别,常有产品过期仍在销售的情况出现。对于商家的信誉和消费者的权益都产生不良影响[2]。所以针对商品日期识别技术展开科学研究,具有一定应用价值及现实意义。
商品生产日期的识别问题本质上是字符识别的问题。传统的字符识别算法如最近邻(KNN)算法、模板匹配、支持向量机(SVM)等,对汉字、字母与数字混合复杂字符串的分类问题有识别能力差、处理速度慢等问题,虽然卷积神经网络对相同字符集的识别速度高于以上所提算法,但却存在着由于网络层次太多、网络训练参数太多而引起的识别准确度下降,即网络模型退化问题[3]。残差神经网络既可以使识别需求得到有效满足,还可以使网络模型退化问题得到有效解决,使自身具备许多优良特点,因而被广泛应用在人脸识别、目标检测、行人检测、语义分割、自然语言处理等[4]多个领域。
因此,本文提出了一种基于残差神经网络进行商品生产日期自动识别的方法。对字符集的确认、图像预处理、残差神经网络的设计和字符语义分析等内容进行了研究。并给出了实验结果。
2 目标字符集的确认
根据国家相关标准要求和生活经验,国内商品的生产日期大多由数字、年月日等汉字、个别英文字母和少数特殊符号等组成,只是不同生产厂家或不同商品的生产日期中,这些符号的组合格式有所区别。在进行生产日期的残差神经网络算法设计之前,首先要确定生产日期基本字符的集合。这一集合应包含所有可能在生产日期信息中出现的汉字、字符、数字和特殊符号等。并且尽可能缩小字符集的大小。如果字符集无法包含所有可能字符,会降低生产日期的可识别率,如果字符集过大,则会增加神经网络识别算法的负担和复杂度。经过查阅国家标准并对采集的500份生产日期图片进行分析,如图1展示的采样图像所示,最终确定待识别的生产日期基本字符集共包含48个元素,确定其集合并分为4个大类:0~9的10个阿拉伯数字、{年、月、日、保、质、期、至、之、前、最、佳}这11个汉字、{“:”“/”“.”}三个特征字符、除O和I两个容易与0和1混淆的字母以外24个英文字母。
图1 部分采样出生日期图像数据
3 商品生产日期识别算法设计
字符识别系统一般包括图像采集、字符识别算法处理以及数据后续处理三大模块。如图2所示,系统首先通过工业相机对含有目标字符集的商品外包装图像进行采集,后对图像进行字符识别算法处理,即对所采集图像进行必要的图像预处理操作、从复杂的图像中提取目标区域的字符定位操作、将目标区域分割成多个单一字符以便制成目标字符集的字符分割操作以及字符识别操作,最后对系统给出的字符信息进行语义分析从而输出所需的商品生产日期和有效期限。
图2 字符识别系统结构图
3.1 图像预处理、字符定位与字符分割
图像预处理。进行图像预处理的核心目的就是去除大部分图像干扰,从而提取出最有效的真实信息,实现对数据的有效简化以及对信息可检测性的有效加强。这一方式可以使识别与匹配、图像分割和特征提取等后续各个环节的可靠性得到进一步的加强[5]。对采集的生产日期图像数据,通过灰度化将彩色图像转化为矩阵数据,借助高斯滤波去除杂波,再经过阈值分割将灰度图像转化为二值图像,达到分离字符和背景区域的目的。
字符定位。基于实际情景中干扰因素多、时长以及原始数据集的匮乏等原因,选用基于数学形态学与连通域的字符定位方法定位目标区域。首要步骤是开运算处理已经被预处理过的图像,即先腐蚀图像后让其膨胀,从而实现对噪声的有效去除。再利用canny边检测器找到图像轮廓,如何进行形态学处理,即依次进行闭运算,两次开运算,得到主要的连通域,最后按照主要连通域的轮廓提取,从而定位生产日期区域。
字符分割。通过对垂直投影法的使用,分别在垂直及水平方向针对预处理图像当中包含的某类像素展开统计,如果面对的是二值图像,则针对其中的白点或者黑点展开统计,就能够按照统计结果得出每一列和每一行分别对应的左右边界和上下边界,从而有效分割字符。如图3所示为一张生产日期采样图像的预处理、字符定位、字符分割三大操作的效果图。
(a)采样图像 (c)图像轮廓 (e)定位结果
3.2 建立残差神经网络
残差神经网络与普通神经网络最大的区别是残差网络。而残差网络主要使用两种模块,分别是恒等模块和卷积模块,而使用哪种模块取决于输入输出的维数是否一致[6]。恒等模块建立了连接输入端与输出端处的非线性激活函数层的恒等映射,这使模块的输入与输出可以先相合,再激活,从而使残差单元以跨层连接的形式实现。对于输入输出维数不同的情况,残差单元采用卷积模块,卷积模块将恒等模块中的跨层连接映射改为卷积层和批归一化层,使在结尾部分中输入的维数与该残差单元的输出维数相匹配。
本文使用卷积模块和恒等模块来建立残差神经网络,同时为了延缓因样本较少而导致的过拟合问题,残差神经网络的层数应尽量简化,如图4所示描述了改进的神经网络的结构细节。其中,输入端用3×3的值为0的模板将输入补齐到相应维数。从第一部分到第四部分,卷积层均是采用64个尺寸为7×7的卷积核,最大池化层:3×3规格的池化核,池化核、卷积核步长均为2。而各部分的主路径则为3×3尺寸且步长为1的卷积核,其中捷径部分二维卷积具有步长为1且1×1尺寸的卷积核。全局平均池化将池化窗口形状设置成输入的高和宽而全连接层则将维数减少到softmax分类函数的维数。
图4 残差神经网络结构示意图
3.3 语义分析
语义研究是在对字符和数字进行分类识别的基础上,确定某一字符的具体含义。残差神经网络能够识别和区分基本字符集中的每一个字符,但并不能给出每个字符的语义内容。例如,残差神经网络能够识别生产日期中的一个字符是“2”,但并不能判断这个“2”是代表的月份信息还是年份信息。语义分析就是要解决这一问题。本文则利用目标字符集的各个单一字符位置和字符信息进而转换为目标字符串,分析商品生产日期格式可知,利用“年”“月”“日”“生产日期”“保质期至”“之前最佳”以及“:”“/”“.”等关键字符设定特定的正则表达式,从而从字符串中提取日期信息,并统一格式输出日期信息,并利用日期信息的大小得出生产日期和有效截止日期。
4 实验结果与分析
为了对比改进的残差神经网络与卷积神经网络对生产日期图像的识别效果,对两种神经网络结构训练时采用相同的参数设置,给定相同的数据集,观测改进的残差神经网络的识别准确率和识别速度,能否达到实际使用情景的要求。
4.1 实验
编程使用Python3.8结合OpenCV框架分别对残差神经网络和卷积神经网络LeNet-5模型进行了仿真实验,同时收集了实际生活情景中常见的商品生产日期图像数据共500个,用于训练、验证对比两种神经网络的性能。利用生产日期图像分割得到的字母、汉字、符号、数字4种字符集,共计48个字符类别分别建立了250个训练样本集和50个测试样本集。图5为商品生产日期部分图像数据。
图5 部分商品生产日期图像
4.2 实验参数设置
训练学习的首要任务就是对训练参数进行设置,而对神经网络训练效果造成决定性影响的往往是迭代次数epochs及学习率Ir。学习率Ir是使用梯度下降算法中梯度前面的系数,该参数需要适当取值,若取值过大,无法实现网格参数的优化;假设取值太小,则有可能因为优化速度过慢而导致局部最优难以脱离。除此之外,ReLU函数大多数输出值非正值时,输入值会在激活后归零,从而导致神经元“死亡”,对学习率的调节可使该问题得到有效缓解。作为用来表示神经网络遍历样本集的具体次数,迭代次数epochs的取值也必须适当,过大取值会使训练时间太长且难以得到明显改善,过小取值会导致识别精度受到不良影响。在实验中将Ir取为0.001,epochs取为100。
4.3 对比实验
为实现对残差神经网络识别性能的有效验证,特别选用卷积神经网络对应的LeNet-5模型展开对比实验。将学习率和迭代次数分别设为0.001和100,可以得出如下表所示的对比结果。
两种神经网络结构的识别性能对比表
从上表可知,相较于卷积神经网络,残差神经网络的识别准确率并无大幅提升,但是在运算速度上有着明显提升,基本满足实际应用情况。
结语
本文描述了商品生产日期识别算法的主要流程,同时基于残差神经网络的网络原理,主要为了降低对样本量的要求,对残差神经网络结构、网络残差块中卷积模块、恒等模块的卷积核以及各层维数进行了改进,在保证识别准确率的情况下,简化网络结构。对比卷积神经网络而言,残差神经网络识别速度更快,识别精度更高。