基于改进深度残差网络的河蟹精准溯源系统
2020-01-15侍国忠张重阳
侍国忠,陈 明,张重阳
(1.上海海洋大学 信息学院,上海 201306;2.农业部渔业信息重点实验室,上海 201306)
1 引 言
河蟹隶属于甲壳纲、十足目、方蟹科、绒螯蟹属,俗称大闸蟹、螃蟹;其肉味鲜美、营养价值高,具有较高的经济价值,是优质水产养殖品种[1]。但是,近年来,随着河蟹养殖业的快速发展,相继而来的河蟹质量安全问题也逐渐增多,影响着河蟹行业的可持续发展。一方面,在河蟹养殖过程中存在乱用、滥用药物的现象,严重影响商品河蟹的品质和食用安全[2]。另一方面由于阳澄湖大闸蟹的知名度和高价位,其他湖泊的蟹也顺着攀上高枝,太湖、扬州、苏北等江苏地区的湖蟹、塘蟹在上市前运送至阳澄湖里泡上一个月,摇身一变就成了正宗阳澄湖出产的大闸蟹,其身价也翻了数倍[3]。为解决上述问题,目前商品河蟹溯源的途径主要有3种,即生物溯源、化学溯源、信息溯源[4]。生物溯源主要包括DNA溯源技术,它可以从本质上实现溯源,具有准确性高的特点,但操作复杂、鉴定时间长。化学溯源包括质谱技术、光谱技术和分离技术,相比生物溯源,它具有较快速、较准确的特点,但局限于实验室环境无法大规模推广。信息溯源主要有标签溯源技术,如条形码、二维码、电子标签、防伪蟹扣等[5-6],使得消费者可以通过移动端直接进行验证并溯源,具有方便、准确、可移动性高的特点,是今后溯源的主要发展方向。陆军等[7]采用为每只河蟹生成一个二维码的方式开发了基于Web的河蟹养殖质量安全信息可追溯系统源平台。周兴国等[8]结合RFID和二维码技术,实现了海参的防伪溯源。张炳良等[9]提出一种结合二维码和河蟹甲壳图像相结合的双重防伪体系,但是仅提出了思路,并未给出结果和验证。从上述文献可知,虽然信息溯源技术已经取得了一些研究成果,但验证的并非河蟹本体,而是绑缚在蟹螯上的可移动标识物,存在人为伪造、回收可移动标识物等问题,使得假蟹冒充真蟹验证后卖出,造成真假蟹混淆而无法溯源。
特征提取是图像识别最重要的步骤,提取特征的好坏将直接影响识别效果。主要有几何特征方法[10]、局部特征描述方法[11-12]、子空间方法[13]、和深度学习方法[14],近年来随着深度学习的不断发展,其在人脸识别领域以99.7%的识别精度取得了巨大成功[15],此外相关研究表明,一方面,蟹壳表面分布着丰富的凸起、沟、脊、纹理等性状且并不会受生活场景的影响,表现出较高的稳定性[16];另一方面,河蟹无论是在自然条件下还是在养殖环境中,喜欢攀爬、掘洞、潜伏于沙或泥中,但因为个体生活习性的不同而出现蟹壳图案不同程度的磨损,进而增大河蟹个体蟹壳图案的差异性[17]。但如果直接使用深度残差网络提取蟹壳特征进行识别溯源,存在特征维度大,识别时间长,无法实时溯源的问题。因此本文提出基于改进深度残差网络的河蟹精准溯源系统。
2 溯源平台总体架构
该溯源系统的总体架构如图1所示,由养殖环节、检测环节、销售环节、溯源环节4部分组成。养殖环节是指河蟹准备上市时,养殖户先通过摄像机采集每一只河蟹的蟹壳图片,再将蟹壳图片、养殖环境数据、水质数据、河蟹生长数据、药物使用数据等养殖相关信息提交到溯源系统,溯源系统收到养殖信息后,首先使用训练后改进深度残差网络提取蟹壳图片的156维特征,再将蟹壳图片,156维特征、养殖相关信息保存到溯源数据库,数据库存储数据后返回每只河蟹唯一的编号和批号,最后将返回的编号和批号以自锁式扎带作为载体附着在河蟹蟹螯上。检测环节是指检测中心对每一批河蟹进行质量抽检,再将抽检河蟹蟹螯上的编号、批号,检测结果、检测单位等检测相关信息存入溯源数据库。销售环节是指河蟹批发商或者经销商将销售河蟹蟹螯上的编号、批号,商家信息、销售去向、销售时间等销售信息存入溯源数据库。溯源环节是指养殖者、监管者、消费者将使用手机或摄像机拍摄的蟹壳图片通过溯源APP或者在线溯源网站提交到溯源系统,溯源系统使用基于改进深度残差网络的河蟹识别技术,识别溯源数据库中是否存在待溯源河蟹。如果存在则输出溯源数据库中对应河蟹在养殖、检测、销售环节的信息,否则输出该河蟹不属于本系统。最终实现河蟹从养殖者、监管者、消费者到养殖场的追溯跟踪。
图1 溯源系统总体架构Fig.1 Tracing system overall architecture
3 系统关键技术
上述系统的关键是基于改进深度残差网络的河蟹识别技术,识别流程如图2所示,由特征提取模型训练和识别两部分组成。特征提取模型训练指使用91 000张蟹壳图像数据集训练采用增加一层全连接和Dropout层的改进深度残差网络,提取具有泛化能力且能区分每只河蟹的蟹壳特征。河蟹识别由图像预处理、特征提取、相似度计算、相似度判定4部分组成。图像预处理指将待溯源河蟹蟹壳图像尺寸缩小为128×128;特征提取指使用训练后改进深度残差网络提取预处理后蟹壳图像的156维特征向量;相似度计算指使用余弦相似度计算待溯源河蟹蟹壳图像特征向量和溯源数据库中河蟹蟹壳图像特征向量相似度,相似度判定指如果相似度大于90%,输出两幅蟹壳图片属于同一只河蟹,识别成功,否则继续搜索,直至遍历完溯源数据库也没有找到相似度大于90%的蟹壳图片特征向量,输出识别失败。
图2 基于改进深度残差网络的河蟹识别流程Fig.2 Crab identification process based on improved depth residual network
3.1 深度残差网络
深度残差网络(Resnet网络)由何凯明等于2015年提出,解决了神经网络随着层数增加而带来的梯度消失和梯度爆炸问题,使得网络的性能随着深度的增加同时得到提升[18]。图3所示为Resnet101结构图,其中包含100个卷积层和1个全连接层,第二至第五阶段中的IDBLOCK×n表示n个具有相同维度的残差块,CONVBLOCK表示卷积核设置为固定尺度的残差块,每个残差块包含3个卷积层,所以卷积层个数为1+3×(3+4+23+3)=100。
图3 Resnet101网络结构图Fig.3 Resnet101 network structure
3.2 卷积层
卷积层的主要功能是对输入图像提取特征。如图4所示,输入蟹壳图像的尺寸为128×128,经过第一阶段7×7卷积核与输入图像卷积后得到一幅64×64的特征图,并输入到后续阶段继续提取高层特征,将各阶段部分特征图可视化,如图4所示,第一阶段卷积层类似于边缘检测的功能,随着层数加深提取的特征抽象程度越高,识别精度越高。
图4 卷积特征可视化Fig.4 Convolution feature visualization
3.3 损失函数
虽然深度残差网络能自动学习具有泛化能力的河蟹蟹壳特征,但存在提取的特征,类间间距不足够小,从而导致错误接受或者错误拒绝。因此张枫等[19]提出采用结合中心损失函数[20]与交叉熵损失函数共同监督网络训练,使同一只河蟹蟹壳图像提取的特征尽可能聚集,而不同只河蟹蟹壳图像提取的特征尽可能远离。中心损失函数与交叉熵损失函数结合的定义,如式(1)所示:
(1)
式中:xi为第i个样本的特征,属于yi类,Wj是全连接层权重参数,n和m分别为类别数和样本数。
3.4 改进深度残差网络
如图5所示,如果直接将Flatten层输出的2 048维特征向量作为提取的蟹壳特征,设溯源数据库中蟹壳图片数量为1 000,则识别一只待溯源河蟹需要1 000×2 048的计算量,当溯源数据库非常大时,无法达到实时性要求。因此本文提出在Flatten层[21]后增加一层全连接层和Dropout层,全连接层,不仅能增强网络的非线性映射能力,同时可以降低特征维度,提高识别速度和精度。Dropout层,训练时按照20%舍弃部分神经元,利用这种方式不仅可以防止模型过拟合,也可以提高模型泛化能力。最后将新增全连接层输出的156维特征向量作为提取的蟹壳特征记为C:
C=[c1,…,c156].
(2)
图5 改进后Resnet101网络结构图Fig.5 Improved Resnet101 network structure
如图5所示,Flatten层神经元个数为2 048记为n,新增全连接层神经元个数为156记为l,输出层神经元个数为训练集螃蟹个数记为m。Flatten层与新增全连接层的权重为wij,新增全连接层到输出层的权重为wjk,Flatten层与新增全连接层间的偏置为aj,新增全连接层与输出层间的偏置为bk,新增全连接层取ReLU激活函数,如式(3)所示:
(3)
(4)
输出层取Softmax激活函数,如式(5)所示:
(5)
则输出Ok可表示为式(6):
(6)
最后使用中心损失与交叉熵计算Ok的损失并用梯度下降算法对整个改进后Resnet网络进行训练。
3.5 螃蟹相似度计算
设两幅蟹壳图像经过Resnet网络提取后的特征表示为二元组(x1,x2),使用余弦相似可以得到两幅蟹壳图像的相似度,如式(7)所示:
(7)
式中:d表示特征向量的维度,x1,x2表示提取的特征向量。
4 测量实验与效果
4.1 实验对象
实验材料为养殖的河蟹,其中雄蟹46只,雌蟹45只共91只。雌蟹体质量130.0 ~ 150.0 g,壳长74.0 ~100.0 mm,壳宽70.0 ~120.0 mm;雄蟹体质量180.0~205.0 g,壳长85.0 ~115.0 mm,壳宽98.0 ~130.0 mm。将上述河蟹以1~91顺序编号并将编号牌统一固定在右侧蟹螯上。随即开始下一步相关的图像采集。
4.2 实验数据集
(a)同一只河蟹不同分辨率图片(a)Same river crab different resolution pictures
(b)同一只河蟹不同角度图片(b)Same river crab different angle pictures
(c)同一只河蟹不同尺度图片(c)Same river crab different scale pictures图6 测试库部分蟹壳图片集Fig.6 Picture set of test library part crab shell
将上述91只河蟹,用SONY-ILCE-6000相机为每只河蟹采集1张蟹壳图像并按河蟹编号命名共91张组成样本库。使用5种主流相机分辨率的手机(3 876×2 584、3 072×2 304、2 580×1936、1 600×1 200、1 200×1 100)为每只河蟹采集5种不同分辨率蟹壳图像并按河蟹编号加流水号命名共455张组成不同分辨率蟹壳图像库。将手机以72度为单位旋转5次,为每只河蟹采集5种不同角度蟹壳图像并按河蟹编号加流水号命名共455张组成不同角度蟹壳图像库。将手机从不同高度,为每只河蟹采集原图像不同倍数的5种不同尺度(0.1,0.2,0.3,0.4,0.5)蟹壳图像并按河蟹编号加流水号命名共455张组成不同尺度蟹壳图像库。将不同分辨率、角度、尺度蟹壳图像库合并,共1 365张组成测试库,为提取鲁棒性更强的蟹壳特征以适应用户拍摄时的复杂环境,使用翻转、随机修剪、色彩抖动、平移变换、尺度变换、对比度变换、噪声扰动、旋转变换、反射变换进行图片扩充,扩充后测试库包含91 000张图片,其中每只螃蟹1 000张,部分测试库蟹壳图片如图6所示。
4.3 实验结果与分析
4.3.1 改进深度残差网络训练
从测试库中选取81只河蟹的81 000张蟹壳图片集,并按8∶2拆分为训练集和验证集,训练改进深度残差网络。实验设定学习率为0.05,优化器为SGD,大小2 000,迭代次数为5 000,得到训练结果如图7、8所示。
图7 改进深度残差网络准确率变化曲线Fig.7 Improved depth residual network accuracy curve
图8 改进深度残差网络损失值变化曲线Fig.8 Improved depth residual network loss value curve
由图7、8知,训练集迭代1 100次时开始收敛并稳定在100%,验证集随着训练集损失的不断下降,迭代3 000次时开始收敛并稳定在98%。该实验结果达到了河蟹识别对提取蟹壳特征的高可区分性要求。
4.3.2 训练后改进深度残差网络提取蟹壳特征泛化性测试
将测试库中剩余10只河蟹的10 000张蟹壳图片,使用训练后改进深度残差网络提取蟹壳156维特征向量。再使用T-SNE流形学习[22]通过降维实现特征向量分布可视化,绘制出提取蟹壳特征分布情况,其中数字为河蟹编号,不同颜色代表不同只河蟹。如图9所示,从10只河蟹10 000张蟹壳图片中提取的蟹壳特征,较好地聚成了10类,类内紧凑,类间差异明显,因此训练后改进深度残差网络提取的蟹壳特征具有很好的辨识和泛化能力。
图9 蟹壳特征分布Fig.9 Crab shell feature distribution
4.3.3 识别结果对比
使用本文提出的基于改进深度残差网络的河蟹识别技术将测试库中的蟹壳图片在样本库中进行匹配识别实验,得到的结果如表1所示。由表1知基于改进深度残差网络的河蟹识别技术与改进前相比,虽然识别正确率相差不大,只提高了0.3%,但识别耗时降低了92%,更加符合溯源系统对实时性的要求。
表1 测试库与样本库识别结果
Tab.1 Identification results of test library and sample library
螃蟹编号识别正确数/%识别次数正确率耗时/s深度残差网络83 58891 00091.8%4.3改进深度残差网络83 81191 00092.1%0.33
5 结 论
本文针对深度残差网络提取特征维度大的问题,提出在Flatten层后新增一层全连接和Dropout层,将提取的蟹壳特征向量从2048维降至156维,使得识别时间降低了92%,识别准确率为92.1%。由于蟹壳表面存在大量特征且无法伪造,因此提出基于改进深度残差网络的河蟹识别技术,以替代传统的通过验证可移动的条形码、二维码或防伪蟹扣等标识物进行溯源,实现每一只商品河蟹从消费者到养殖场的精准溯源追踪,解决了人为伪造、回收标识物,造成真假蟹混淆而无法溯源的问题。