文/游康 任忻生 张水清 郑硕 洪世光 陈晓昕 吴垠峰 黄昱
水产品贸易在中国农产品贸易中有非常重要的地位。改革开放以来,随着人们收入水平的提升,保健意识的加强,以及冷链物流的发展,我国的水产品消费市场持续扩大,水产品国际贸易发展迅速。据2022中国渔业统计年鉴显示,2021年,中国水产品进口数量为574.74万t,进口金额为180.23亿美元,出口数量为380.07万t,出口金额为219.26亿美元,水产品贸易涉及约200个国家或地区。
2018年,海关机构改革,关检业务领域实现全面融合,水产品进出口监管涉及单证审核、现场查验、取样送检、合格评定等多个环节。但进出口水产品种类和数量增长快,国际贸易环境复杂多变,给海关与企业对水产品的认定和归类带来较大困难,对海关一线执法人员商品知识掌握的全面性提出了更高要求。
随着机器学习尤其是深度学习技术的迅速发展,图像识别技术已在植物识别、人脸识别、交通标志识别和医学图像识别等方面展开了广泛的研究应用。本文提出一种基于深度学习的水产品智能识别辅助系统设计方案,将图像识别技术与海关关税业务相结合,贴合海关归类业务,切实解决水产品归类中识鱼难的问题,并有效提高进出口水产品通关便利程度。
图像识别技术是人工智能的一种,通过计算机模拟人类的认知活动,从大量数据中学习到泛化规律,从而对新的样本做出识别或者利用规律对未来作出预测。机器学习的卷积神经网络(convolutional neural network,CNN)是一种目标分类识别方法,使用该识别方法可以实现自动化图像特征提取,与分类识别过程融为一体,实现水产品图像自动识别。
Inception-ResNet网络是一种深度学习结构,从微软的残差网络(ResNet)中得到启发,由Inception V3模型变化而来,在Inception模块中引入ResNet的残差结构,残差连接(Residual Connections)可以让Shortcuts存在于模型中,从而简化Inception块,可以让更深的神经网络训练成为可能,该网络集成了Inception检测准和ResNet训练速度快的优势。2016年,Google团队发布Inception-ResNet-V2卷积神经网络,在ILSVRC图像分类基准测试中拿下了最好成绩。
商品归类是指在《商品名称及编码协调制度公约(HS)》商品分类目录体系下,以《中华人民共和国进出口税则》(以下简称“《税则》”)为基础,按照《进出口税则商品及品目注释》《中华人民共和国进出口税则本国子目注释》以及总署发布的关于商品归类的行政裁定、商品归类决定的要求,确定进出口货物商品编码的活动。
水产品主要指《税则》第三章所列的鱼、甲壳动物、软体动物及其他水生无脊椎动物。
《税则》第三章按照鱼—甲壳动物—软体动物及其他水生无脊椎动物的顺序列目,主要包括所有活的或死的鱼、甲壳动物、软体动物及其他水生无脊椎动物,这些动物可供直接食用、工业用(罐头工业等)、产卵或观赏用。《税则》第三章产品允许的加工程度为鲜(含用盐临时保藏)、冷、冻、盐腌、盐渍、干制、熏制、在表面撒糖或糖水的。另外,熏制前或熏制过程中烹煮过的熏鱼及蒸过或用水煮过的带壳甲壳动物,无论是否冷冻都归入本章。
归类思路为:各品目按门、纲、目、科、属、种分别归入不同子目。归类过程中,应根据商品学名(通常为拉丁文表示)判断属、种,再根据归类总规则依次确定品目、子目及本国子目。
前端将配合海关总署在建知识库平台,根据海关总署在建知识库平台的需求,选择使用安卓、IOS或者微信小程序进行开发,待系统建成后,服务器将提供识别接口,海关总署在建知识库平台调用服务器接口,传对应的参数到服务器,然后服务端识别后回传结果,由海关总署在建知识库平台进行展示。后端采用Express框架+Redis内存数据库+PostgreSQL后台存储用数据库的模式。
在对比当前深度学习主流分类网络VGG、Inception-ResNet-V2、ResNet和DenseNet后,采用Inception-ResNet-V2模型对水产品图像进行实验,通过试验对比,探讨如何提高其识别水产品图像的能力。
采用Keras深度学习框架,实验环境支持多GPU并行运算,操作系统采用Linux,开发语言是Python3.6,在训练和测试过程中使用CUDA和CUDNN进行并行加速计算。
实验数据挑选了13种水产品,包括中国鲳、银鲳、刺鲳,白带鱼、沙带鱼,鱿鱼、墨鱼,巴浪鱼、竹荚鱼、鲭鱼、秋刀鱼,黄鳗、青鳗。
其中,中国鲳、银鲳、刺鲳虽然都叫鲳鱼,但商品归类各不相同,在进出口申报时经常出现错误;白带鱼、沙带鱼、黄鳗、青鳗外观很难区分,归类也不相同;巴浪鱼、竹荚鱼、鲭鱼、秋刀鱼非专业人士也很难区分;鱿鱼、墨鱼是软体动物代表。
实验数据由宏东渔业、马尾口岸进出口水产品公司现场拍照提供,并结合索罗特公司前期收集的图册,13种水产品,共计2128张照片,其中冻品照片984张。
将13种水产品的冻品照片和非冻品照片作为不同种类分开,合计26种类别。采用img_to_array函数对图像进行预处理,并将其划分成2个部分,80%作为训练集,20%作为测试集。
用预先在K e r a s中训练好的Inception-ResNet-V2模型。修改该模型的最后一层全连接层的参数,即将模型最终的密集层舍弃,采用平均池化,将最终的类别改成26类,激活函数选用Softmax函数。设置Model Checkpoint,按照验证集的准确率进行保存。设置loss(训练集损失值)、accuracy(训练集准确率)、val_loss(测试集损失值)、val_accruacy(测试集准确率)并实时监控训练过程。
为了探究更好的准确率,对Batch-size进行了重新设置。在一定的范围内增大Batch-size,可以使内存的使用率提高,跑一轮的迭代次数减少,模型确定的下降方向变准,减小训练震荡从而达到提高准确率的效果。将Batch-size的数值分别设置为8、16、24、32、40,因为Batch变大要达到相同准确率必须要增大Epoch。所以学习轮数分别设置为5、10、15、20、25。
1.实验方案
分别设置每步的Batch-size(单次传递给程序用以训练的参数个数)为8、16、24、32、40,epoch(学习的轮数设置)为5、10、15、20、25,输入全部数据,80%作为训练集,20%作为测试集,开始训练。
2.实验数据
当Batch-size为40,Epoch为25时,训练只进行到第22轮,准确率和损失值就已达到极高的水平,系统就自动判定完成训练,不再继续训练。
3.实验结论
从表1可以看出,当Batch-size为32,Epoch为20,Loss值降至0.0087,准确率可达到99.74%。同时可以看到,在训练集中,当Batch-size为40时,测试集准确率相较于Batch-size为32时并没有得到提升,反而还下降了,虽然Loss值也变小了,但训练轮次在第22轮就终止了,所以不是Batch-size越大越好。可以推测Batch-size的最优解在32左右,此时准确率达到最大。
表1 不同Batch-size下模型的准确率统计
以此图像识别训练模型参数设置为基础,设计整个进出口水产品智能识别辅助系统。
为满足水产品进出口场景的需求,将图像识别技术与海关关税业务相结合,贴合海关归类业务,解决水产品归类中识鱼难的问题,设计本系统需包含水产品查询模块、识鱼模块、展示模块及专家识鱼模块等四大主要模块。
水产品查询模块是在已明确水产品物种的情况下,查询海关进出口商品归类、进出口税率、进出口准入条件等信息的窗口,为进出口水产品企业提供一站式的信息查询服务,也是进出口水产品智能识别辅助系统在“智能识鱼”模块训练尚不完善,无法识别情况下的补充。
对于水产品进出口企业而言,在进出口报关前仅掌握了商品名称,但报关所需要的商品编码、规范申报要素、监管条件等信息需通过多个渠道才能获得,查询模块可以帮助进出口水产品企业通过该模块一次性获取以上信息,并可根据获取的进出口税率信息,计算进口税费成本。
该模块的核心在于通过拉丁文名这个世界统一的命名来对应水产品的ID,然后根据水产品进出口商品编码对应的ID,从而将水产品进出口信息与所查询的商品进行对应关联。如中国鲳、斗鲳、华鲳对应的拉丁文名都是,在选择不同的报验状态后,匹配对应的商品编码,展示相关水产品进出口信息。
识鱼模块是本系统的核心之一,目的是辅助进出口企业和现场执法人员在面对未知水产品时,通过拍照或上传图片,能够自动识别出水产品物种的拉丁文名。
前端上传过来的图片保存在本地后,用keras加载模型的函数,加载已经训练好的模型对此图片进行卷积处理。
再调用model.predict(image),将卷积结果与训练好的模型文件进行比对,从而计算出属于某个水产品的概率。概率越大,属于该种鱼类的可能性越高,准确度越高,出于提高进出口水产品识别准确率要求的目的,去除概率值低于0.9的识别结果。
经过识别服务器给出结果后,导出一条识别记录到数据库,分为两个表,识别recognise表和识别日志recogniselog表。
识别出水产品的拉丁文名后,通过选择报验状态自动确定HS编码,根据HS编码对应水产品进出口信息,进出口信息需要包含水产品进出口报关申报所需要的所有信息,从而实现信息查询一体化的目的。
在研究水产品通关全流程后,选择商品名称、HS编码、对应的进口税率、协定税率、出口退税率、商品图片、申报要素、进口准入条件、进出口检验检疫要求等信息作为展示信息。
在系统建设早期,由于数据库图片不够完善,机器训练程度不够,会出现无法识别或识别错误的情况。系统不完善可能导致现场执法不便,无法获取用户的信任,不利于推广。
为了尽量确保识别的准确率,防止因使用本系统导致的执法歧义,本系统将识别的概率值提高到0.9,对于概率值低于0.9的图片,将返回“很抱歉,我们暂时无法识别该水产品”界面。在反馈无法识别后,为解决这个问题,用户可选择将图片上传至“专家识鱼”模块,由后台人工对水产品进行识别,但人工识别无法做到实时答复。由于人工识别也有局限性,也无法百分百做出答复,对人工无法识别的图片将回复“很抱歉,我们暂时无法识别该水产品”。
为不断丰富数据库,提高系统识别率和识别精度,应鼓励用户上传图片,并利用新图片定期对全部数据进行训练,不断完善机器训练模型,发挥集聚的效应。由于用户上传信息的准确性会影响最终数据库的准确性,在用户上传图片信息后,后台还需进行审核,并对数据进行处理。同时由于卷积神经网络模型训练,在数据量大的情况下,小部分错误图片不会对训练结果造成影响,所以不用担心小部分错误信息进入训练库从而影响识别准确率的问题。
本文通过研究进出口水产品智能识别辅助系统,并尝试运用图像这个非结构化的数据库,提出使用“智能识鱼”模块拍照识别水产品,探索出一种全新的水产品归类方式,降低水产品归类的“门槛”,这是当前海关信息系统在大数据运用上的一个突破,也为下一步建设海关总署知识库平台“水产品智能模块”提供方案。
通过建设推广进出口水产品智能识别辅助系统,将有利于降低水产品进出口企业报关差错率,减少企业报关差错带来的经济损失,营造良好营商环境;进一步提升海关执法人员水产品商品知识水平,培养水产品专家,提高执法水平,防范税收风险;有效提升防范准入风险能力、打击走私濒危水产品能力;快速识别入侵物种,守护国门生物安全,促进进出口水产品贸易良性发展。