基于原型网络的小样本禽蛋图像特征检测方法

2021-12-07 05:36李庆旭王巧华
农业机械学报 2021年11期
关键词:禽蛋皮蛋鸭蛋

李庆旭 王巧华,2

(1.华中农业大学工学院, 武汉 430070; 2.农业农村部长江中下游农业装备重点实验室, 武汉 430070)

0 引言

计算机视觉作为禽蛋无损检测领域中最常用的技术手段之一[1-2],对禽蛋内外部品质进行检测时,一般需要根据人工经验手动提取禽蛋图像特征并利用机器学习算法建立禽蛋内外部品质的分类模型[3-4],或利用卷积神经网络自动提取禽蛋图像特征实现端对端的禽蛋图像自动分类与检测[5-6]。机器学习或深度学习算法需要大量禽蛋样本才能取得较好的检测精度[7],但禽蛋样本数据的获取是一个耗时耗力的过程。在禽蛋图像检测中,利用机器学习算法或深度学习算法建立的模型在缺乏足够的样本数据时均存在过拟合的风险。

元学习已成为近年来人工智能领域的研究热点[8],旨在通过模拟人类智能在少样本条件下快速且准确地完成分类或匹配任务,与深度学习需要海量训练数据相比,是一种更为接近人类智能的算法。其可以分为3类:①基于度量的元学习,是使用深度神经网络提取样本的特征,将样本数据映射至度量空间中,并在度量空间中计算样本间的距离,最终实现样本的分类或匹配,常见的基于度量的元学习算法有孪生网络[9]、原型网络[10]与关系网络[11]等。②基于初始化的元学习,其核心思想是学习一个通用的初始化模型,使模型在处理新任务时能够快速收敛,如模型无关的元学习算法(Model agnostic meta learning, MAML)[12]。③基于优化器的元学习,包含基网络和循环神经网络,利用循环神经网络代替梯度下降算法作为基网络的优化器,从而使基网络在小样本条件下依然能够表现出较好的性能[13]。

元学习被广泛应用于小样本条件下的图像分类任务中[14],但在农业领域尚未发现相关文献,若能将元学习应用于禽蛋图像检测,将加速人类智能融入禽蛋无损检测领域。考虑到禽蛋图像的特征主要存在于禽蛋的蛋黄或者蛋壳表面部分[15-16],且禽蛋图像检测一般为2~3分类的专属任务。经反复探究与尝试,本文利用基于度量的元学习构造少样本条件下禽蛋图像检测模型。在原型网络的基础上设计一种适用于禽蛋图像检测的原型禽蛋网络(Prototypical-Egg network),利用引入注意力机制的逆残差结构搭建的卷积神经网络将禽蛋图像映射到嵌入空间,从而实现对禽蛋图像的分类。将为少样本条件下的禽蛋图像无损检测提供一种更为智能的检测思路,以避免因样本数据不足而无法对禽蛋图像进行分析检测的问题。

禽蛋视觉无损检测任务一般可分为种蛋孵化信息检测、内部品质和外部品质检测[17-19],分别采集孵化5 d的种鸭蛋图像(检测种鸭蛋是否受精)、双黄鸭蛋与普通鸭蛋图像(检测双黄蛋)和裂纹皮蛋与正常皮蛋图像(检测皮蛋裂纹),针对此3个禽蛋分类任务利用原型禽蛋网络验证分类效果,以验证本文方法的可行性。

1 图像采集和原型网络

1.1 禽蛋图像数据采集

为采集孵化5 d的种鸭蛋透射图像,选用300枚新鲜的国绍1号麻鸭种鸭蛋(其中无精蛋和受精蛋比例为1∶1)为试验材料,将其消毒编号后置入智能孵化箱内进行孵化,待孵化5 d后利用图1所示图像采集系统采集种鸭蛋透射图像,孵化10 d后对其进行破壳处理获取精准的受精结果。

选用300枚高邮鸭蛋(双黄蛋和单黄蛋各150枚)作为试验材料,利用图1所示图像采集系统采集双黄蛋与单黄蛋的透射图像。

为采集禽蛋外部品质图像,试验选用产自湖北神丹公司的300枚皮蛋作为试验材料,其中裂纹皮蛋和正常皮蛋各150枚,利用图2所示图像采集系统采集皮蛋表面反射图像,图像采集装置包括工业相机及镜头、暗箱、光源和计算机。

1.2 原始图像

采集得到孵化5 d种鸭蛋图像300幅,无精蛋和受精蛋各150幅,如图3所示。双黄鸭蛋与单黄鸭蛋图像共300幅,双黄蛋与单黄蛋各150幅,如图4所示。正常皮蛋和裂纹皮蛋图像各150幅,如图5所示。三者的原始图像尺寸均为1 024像素×768像素,为方便将图像输入设计的原型网络,利用双线性插值法将原始图像尺寸统一调整为256像素×256像素。图像划分为支撑集与查询集,支撑集共300幅图像(其中受精蛋、无精蛋、双黄蛋、单黄蛋、正常皮蛋与裂纹皮蛋各50幅),查询集共600幅图像,每类含100幅图像。

1.3 原型网络

原型网络是SNELL等提出的一种小样本学习算法,利用非线性映射将支撑集图像映射到嵌入空间内,计算嵌入空间内每类图像的加权平均值得到该类的原型,测试图像同样经过非线性映射至嵌入空间,计算查询集图像在嵌入空间上到每个类别原型的欧氏距离,利用欧氏距离实现测试图像的分类, 原型网络的结构如图6所示,包括由卷积层和池化层组成的卷积神经网络、嵌入空间和欧氏距离计算。

原型网络分为模型训练和测试两部分,训练时通过卷积神经网络强大的特征提取能力和非线性表达能力,将支撑集图像映射至嵌入空间中。在嵌入空间计算每个类别图像的嵌入支持点(图像特征)的平均向量,得到每个分类的原型。测试时将查询集图像输入至卷积神经网络得到嵌入支持点,计算测试图像嵌入支持点与支撑集每个类别的原型之间的距离。将距离测试图像嵌入支持点最近的原型划为一类,从而完成测试图像的分类。

每类图像原型ck和测试图像与原型之间的距离pφ计算公式为

(1)

(2)

其中

(3)

式中fφ(xi)——嵌入函数,表示卷积神经网络的映射关系

Sk——含k个类别的样本集

|Sk|——k个类别的样本集的数量

xi——Sk中第i个样本的特征向量

yi——Sk中第i个样本的标记向量

d——嵌入空间内样本x到第k个原型的距离函数

k——支撑集样本类别数

2 Prototypical-Egg网络实现

2.1 原始卷积神经网络

原型网络在Omniglot和miniImageNet数据集上取得了较好的检测效果,其中Omniglot数据集中的图像是尺寸为105×105×1的单通道图像,miniImageNet数据集图像尺寸为84×84×3。原型网络的卷积神经网络部分由卷积层、池化层和批量归一化操作组成,其网络结构如图7所示,本文以miniImageNet数据集为例说明原型网络的图像特征提取过程:

(1)输入层(Inputs):输入图像尺寸为84×84×3,输入至卷积层1(Conv1)。

(2)卷积层1(Conv1):卷积核尺寸为3×3,卷积核个数为64,步长为1,输入图像经过卷积后输出的图像尺寸为64×84×84。后对其进行批量归一化(BN)操作,最后由ReLU函数激活后输入至池化层1(Pool1)。

(3)池化层1(Pool1):池化核尺寸为2×2,输入图像(64×84×84)经过池化处理后输出图像尺寸为64×42×42,并将其输入至卷积层2(Conv2)。

(4)卷积层2(Conv2):卷积核尺寸为3×3,卷积核个数为64,步长为1,输入图像经过卷积后输出图像尺寸为64×42×42。后对其进行批量归一化操作,最后由ReLU函数激活后输入至池化层2(Pool2)。

(5)池化层2(Pool2):池化核尺寸为2×2,输入图像(64×42×42)经过池化处理后输出图像尺寸为64×21×21,并将其输入至卷积层3(Conv3)。

(6)卷积层3(Conv3):卷积核尺寸为3×3,卷积核个数为64,步长为1,输入图像经过卷积后输出图像尺寸为64×21×21。后对其进行批量归一化操作,最后由ReLU函数激活后输入至池化层3(Pool3)。

(7)池化层3(Pool3):池化核尺寸为2×2,输入图像(64×21×21)经过池化处理后输出图像尺寸为64×10×10,并将其输入卷积层4(Conv4)。

(8)卷积层4(Conv4):卷积核尺寸为3×3,卷积核个数为64,步长为1,输入图像经过卷积后输出图像尺寸为64×10×10。后对其进行批量归一化操作,最后由ReLU函数激活后输入至池化层4(Pool4)。

(9)池化层4(Pool4):池化核尺寸为2×2,输入图像(64×10×10)经过池化处理后输出图像尺寸为64×5×5,并将其输入至嵌入空间。

2.2 改进原型网络

禽蛋图像的特点与miniImageNet数据集中的数据分布情况有显著区别,所有的禽蛋图像均呈近似椭圆形,有效特征主要集中在蛋黄或蛋壳表面部分,如受精蛋和无精蛋相比蛋黄部分颜色呈暗红色、双黄鸭蛋的特征在于蛋黄面积较单黄蛋明显增加、裂纹皮蛋的蛋壳表面有轻微的损伤。针对禽蛋图像数据特征分布特点,要求卷积神经网络具备更强大的特征提取能力。而原型网络的卷积神经网络部分仅为4层,对于禽蛋图像特征的提取能力表现得略显不足[20]。

卷积神经网络的层数越深或宽度越大其特征提取能力会有明显提升[21-22],MobileNet系列网络因其具有参数量小和检测性能强的特点,已成为机器视觉领域较为常用的网络[23]。MobileNet网络利用深度可分离卷积代替标准卷积(Conv),还增加了分辨率与宽度因子,极大地减少了网络参数量,但其提取低维空间时存在线性瓶颈。MobileNet V2网络针对MobileNet的缺陷,利用先升维再卷积后降维的逆残差结构和对激活函数的改进[24],增强了网络的性能,逆残差结构如图8所示。为了进一步提升网络的速度和检测精度,MobileNet V3在逆残差结构的基础上引入了注意力机制模块[25],能够有效地减少噪声对梯度的影响。注意力机制逆残差模块结构如图9所示。

为此,本文搭建了7层卷积神经网络(Prototypical-Egg网络),网络含有逆残差卷积、注意力机制逆残差卷积。与原型网络卷积部分相比增加了网络的深度,增强了网络的鲁棒性。Prototypical-Egg网络的卷积部分结构如图10所示,具体实现过程如下:

(1)输入层(Inputs):输入禽蛋图像尺寸为256×256×3。

(2)卷积层1(Conv2d_1):卷积核尺寸为3×3,核个数为16,步长为2。尺寸为256×256×3的图像经过卷积处理后输出图像尺寸为128×128×16。

(3)逆残差卷积层1(IRS_1): 逆残差卷积包括2个1×1卷积和1个3×3卷积,每个卷积层后加BN层和ReLU激活函数。128×128×16的禽蛋图像经过逆残差卷积后输出图像尺寸为64×64×16,输出至逆残差卷积层2(IRS_2)。

(4)逆残差卷积层2(IRS_2):尺寸为64×64×16的图像经过逆残差卷积后输出图像尺寸为32×32×24,输出至逆残差卷积层3(IRS_3)。

(5)逆残差卷积层3(IRS_3):尺寸为32×32×24的图像经过逆残差卷积后输出的图像尺寸为32×32×24,输出至SE逆残差卷积1(SE IRS_1)。

(6)SE逆残差卷积(SE IRS_1): 尺寸为32×32×24的图像经过SE逆残差卷积输出图像为32×32×40,输出至SE逆残差卷积2(SE IRS_2)。

(7)SE逆残差卷积(SE IRS_2): 尺寸为32×32×40的图像经过SE逆残差卷积输出图像为16×16×40,输出至SE逆残差卷积3(SE IRS_3)。

(8)SE逆残差卷积(SE IRS_3): 尺寸为16×16×40的图像经过SE逆残差卷积输出图像为16×16×64,输出至嵌入空间。

3 试验结果与分析

试验硬件平台:AMD锐龙 Threadripper 2920X型CPU、NIVIDIA GeForce RTX 2080Ti 型GPU、128 GB内存。软件平台:Pytorch 1.6+Python 3.8。

3.1 数据预处理

采集的原始图像尺寸为1 024像素×768像素,若直接将原始图像输入至原型网络的卷积神经网络部分,每幅图像最终输入给嵌入空间的特征尺寸为64×48×64,网络的参数量将大大增加。为此,本文将原始图像进行尺寸调整,但图像尺寸过小则会损失大量特征导致模型性能表现不佳。以双黄鸭蛋图像为例,分别将其调整为84×84×3(miniImageNet数据集)、128×128×3、256×256×3(本试验)、512×512×3,如图11所示。不难发现,将禽蛋图像尺寸调整为84×84×3和128×128×3,图像像素信息丢失较多,考虑模型的参数量和速度,本文将禽蛋图像统一调整为256×256×3。

3.2 模型训练

原型网络的训练过程是不断优化参数找寻最佳原型的过程。先从支撑集读取6类禽蛋图像构造15个分类任务,每次随机抽取2类禽蛋图像进行二分类。训练时从支撑集中随机抽取50幅图像(每类含25幅图像),利用卷积神经网络将50幅图像映射成嵌入空间的2个原型。再从这2类中选取16幅图像输入至卷积神经网络映射到嵌入空间,并计算每幅禽蛋图像与2个原型之间的欧氏距离,从而完成测试图像分类。训练流程如图12所示,其中训练过程中优化的目标(损失)函数为

J(φ)=-lgpφ(y=k|x)

(4)

式中φ——网络学习参数

试验利用Adam优化器寻找最优梯度下降方向,使原型网络对禽蛋图像的分类性能朝着更佳的方向发展。原型网络和Prototypical-Egg网络的初始学习率均设置为0.000 1,迭代次数设置为50次,每个迭代次数设置为10次。

原型网络和Prototypical-Egg网络训练过程中损失值变化如图13所示。从图13可以发现,原型网络的初始损失值较低,迭代20次后维持在较低水平。Prototypical-Egg网络初始损失值较大,后总体呈下降趋势,训练25次后网络收敛并维持在较低水平。

3.3 结果分析

将查询集600幅图像(受精蛋、无精蛋、双黄鸭蛋、单黄鸭蛋、裂纹皮蛋和正常皮蛋各100幅)分别输入训练好的原型网络和Prototypical-Egg网络,测试网络性能,考虑到实际应用价值,本文主要测试网络在受精蛋与无精蛋(受精任务)、双黄鸭蛋与单黄鸭蛋(双黄蛋任务)、裂纹皮蛋与正常皮蛋(裂纹任务)3个分类任务上的表现,测试结果如表1所示。

表1 网络精度测试结果Tab.1 Network accuracy test results %

对比原型网络和Prototypical-Egg网络在查询集上3个分类任务上的表现,Prototypical-Egg网络在裂纹检测任务上精度比原型网络提升了5个百分点,在受精检测任务上精度提升了2个百分点。其中两者对皮蛋裂纹检测精度略低,分析原因可能为裂纹特征不够明显。但Prototypical-Egg网络相比原型网络的性能提升明显,更加适应于禽蛋图像分类任务的检测。

由于所采集禽蛋图像的背景基本为纯黑色,该部分为无用信息。故对原始图像进行裁剪,将原始图像尺寸裁剪为700像素×500像素,裁剪后的图像如图14所示,可去除大量背景信息。此外,对裁剪后的支撑集图像进行旋转、平移等操作以实现数据集的扩充,数据增强后的支撑集图像为1 200幅(受精蛋、无精蛋、双黄鸭蛋、单黄鸭蛋、裂纹皮蛋和正常皮蛋各200幅)。利用裁剪和增强后的图像,以相同的训练方法和网络模型进一步验证网络性能,对裁剪后查询集图像的精度测试结果如表2所示。可以发现,改进前后的原型网络对受精和裂纹任务的检测性能均有一定程度的提升,且改进后的网络性能仍优于改进前的原型网络。

表2 裁剪和增强后的精度测试结果Tab.2 Cropped and enhanced accuraey test results %

4 结论

(1)利用注意力机制改进的逆残差模块搭建原型网络的卷积部分,更加适用于禽蛋图像检测任务,对受精、双黄和裂纹检测精度分别为95%、98%、88%,取得了较好的检测结果,比原型网络性能提升明显。对原始图像进行裁剪去除部分背景后并对支撑集图像进行数据扩充,扩充后的受精、双黄和裂纹蛋检测精度分别为96%、98%、90%。

(2)试验仅利用300幅图像作为支撑集用于训练,600幅禽蛋图像作为查询集用于测试,Prototypical-Egg网络取得了较好的检测精度,充分体现了小样本学习的优势。采集少量的禽蛋图像便可完成禽蛋视觉无损检测,节约大量人力物力成本,为禽蛋无损检测提供了新的思路。

(3)试验结果表明,将禽蛋图像尺寸统一调整为256×256×3,可以在不丢失主要特征的情况下取得较快的训练速度。

猜你喜欢
禽蛋皮蛋鸭蛋
鸭蛋大约有多重
忘性大的妈妈
禽蛋生产消费缓慢增长,进出口基本稳定
逃跑的皮蛋
皮蛋的宠物
禽蛋 生产消费市场供需基本平衡
鸭蛋去哪儿了
鸭蛋小厨神
禽蛋:产量增速放缓消费稳步增长
“Q”