当前位置:首页 期刊杂志

基于小波变换与卷积神经网络的羊脸识别模型

时间:2024-05-24

黄铝文 谦 博 关非凡 侯紫霞 张 其

(1.西北农林科技大学信息工程学院, 陕西杨凌 712100; 2.农业农村部农业物联网重点实验室, 陕西杨凌 712100)

0 引言

当前,我国奶山羊产业处于经济效益黄金期,奶山羊养殖因投资小、风险低、见效快,已成为发展相对落后地区农民经济收入的重要来源[1]。规模化养殖是奶山羊产业的主要发展方向[2],监控个体的健康状况、饲喂情况是其重点环节,而这一切的基础是对奶山羊进行个体识别。与此同时,我国政策性农业保险正处于起步阶段,现有的保险对象个体识别技术相对陈旧,承保环节中已投保家畜被未投保家畜冒名顶替而导致骗保现象时有发生[3]。综上,为保证产业健康发展,急需可靠的奶山羊个体识别方案。在传统养殖过程中,养殖场大多通过给奶山羊佩戴耳标的方式实现个体识别。然而,有研究表明,佩戴耳标不仅会给羊只带来生理上的痛苦,引发应激反应,还容易使其滋生一些耳部疾病[4];另外,从成本角度考虑,羊耳标伴随羊的死亡而丢弃,不能重复利用,亦造成了养殖成本的提升。

近年来,随着养殖场摄像设备的普及[5],已有学者基于计算机视觉技术开展了包括奶山羊在内的常见家畜个体识别研究[6-17]。由这些研究可知,自动化的家畜个体识别已成为当前主要发展趋势。然而,上述工作所提出模型大多仅提取图像包含的空间域特征,在特征工程环节未充分考虑牛、羊、猪等家畜面部图像本身所具有的特点,在一定程度上影响了模型的识别效果。有研究表明[18],进行个体识别时,面部图像具备丰富的频域特征,但纯粹深度学习方法通常仅考虑图像的空间域特征,并未对频域特征进行分析。因此,若能充分挖掘家畜面部识别问题中数据本身所具有的特点,将频域特征与空间域特征进行融合,综合研判以实现分类任务,将有望使得模型识别准确率获得一定提升,并增强其可解释性。

为实现自动化的羊只个体识别,本文首先采集30只高相似度西农萨能奶山羊羊脸面部视频片段,经视频分帧、数据筛选、裁剪、增强,形成羊脸图像数据集。接着构建羊脸图像与羊只身份(ID)的映射关系,并按比例划分为训练集、验证集、测试集。考虑到小波变换是多分辨率分析的有效手段,能够有针对性地提取图像多个尺度下的频域特征[19],且所提取特征可解释性强,已在人脸识别领域得到广泛应用[20],本文基于二维离散小波变换(2D-DWT)与卷积运算设计羊脸特征提取模块,采用通道拼接的方式实现特征融合;之后,以前述羊脸特征提取模块为基础,添加分类模块,进行卷积神经网络搭建;最后,通过重复多次的模型训练过程,寻找最佳超参数组合,形成羊脸识别模型DWT-GoatNet,以期为非接触式羊脸识别提供参考方法。

1 数据采集与处理

1.1 数据采集

试验选择西北农林科技大学杨凌奶山羊试验示范基地所养殖的西农萨能奶山羊[21]作为研究对象,在不同光照、不同角度、不同遮挡程度等条件下对羊脸进行摄像。共采集到日间光照环境下羊脸视频20段,夜间灯光环境下羊脸视频10段,每段视频对应一只羊,总计30只。在视频采集过程中,未对羊的面部污垢进行清洁处理,从而保证所构建模型能够满足饲养场景需要。所采集的奶山羊羊脸相似度极高,肉眼相对难以辨认,分别使用Goat1~Goat30进行编号,经预处理后如图1、2所示。

图1 日间采集的20只奶山羊羊脸图像示例

图2 夜间采集的10只奶山羊羊脸图像示例

1.2 数据预处理

1.2.1数据筛选

首先使用FFmpeg开源工具,对采集到的视频数据选取合适的帧速率进行分帧处理,得到原始羊脸图像。因为得到的图像中存在模糊或只包含局部羊脸的样本,故需进行数据筛选,对不符合要求的样本进行剔除[22]。同时,为减少无关背景给后续工作所带来的干扰,本文紧接着对图像中羊脸寻找最小外接正方形,进行图像裁剪[23]。由于在数据采集过程中,相邻图像采集间隔较短,部分羊脸图像相似度过高甚至接近重复,容易引发模型过拟合现象,故本文采用结构相似性(Structural similarity, SSIM)系数[24]度量所拍摄羊脸图像的相似程度,过滤相似度过高的样本,从而得到一个高质量的数据集。两个尺寸一致的图像x、y的结构相似性系数计算公式为

(1)

式中μx——图像x的像素均值

μy——图像y的像素均值

σx,y——图像x、y的像素协方差

c1、c2——防止分母为0的常数,取0.01

SSIM的取值范围是[0,1],当SSIM取0时,表示两幅图像完全不同;当SSIM取1时,表示两幅图像完全相同。本文将SSIM的阈值设置为0.7,即只有当SSIM小于0.7时,才认为两幅图像是不同的,对SSIM大于等于0.7的样本直接剔除。经过筛选,得到日间光照环境下羊脸图像1 210幅,夜间灯光环境下羊脸图像990幅,形成初始数据集。

1.2.2数据增强

在养殖场条件下,奶山羊活动较为频繁,若直接进行羊脸识别,往往面临着羊脸在图像中位置、方向、大小发生变化,所在环境明暗度发生变化,以及一定程度模糊等情况,若建立数据集时不对此类情况进行充分考虑,容易对识别结果造成一定影响[25]。为针对性地解决此类问题,提高模型的泛化能力,本文使用模糊、提高亮度、降低亮度、平移、旋转(旋转角度为30°)、加入椒盐噪声、缩放等7种数据增强方法,将数据集扩充为原始容量的8倍,对同一幅图像的数据增强效果如图3所示。

图3 数据增强效果

试验中,将每只奶山羊看作一种模式,对应一个分类,30只奶山羊分别记为Goat1~Goat30,对应30个分类。经数据增强后,数据集中图像总数由2 200幅扩充至17 600幅,各分类所对应的图像数量变化情况如表1所示。数据增强增加了羊脸图像的多样性,使得网络能够在不同条件下习得羊脸图像特征,进而提高模型的泛化能力[26]。

表1 增强前后各分类图像数量

1.3 数据集划分

将30个分类的17 600幅羊脸图像,依分层抽样原则,按照随机提取下标的方式,以6∶2∶2的比例划分为训练集、验证集和测试集,各分类数据集划分情况如表2所示。其中,训练集、验证集用于模型训练和参数调整,测试集用于模型性能评价。

表2 各分类数据集划分情况

2 研究方法

2.1 小波变换

小波变换是多分辨率分析的有效手段,常用于信号的时频分析。设x(t)是能量有限信号,则其小波变换为

(2)

式中a——尺度参数,反映频域特性,取a>0

τ——时移参数,反映时移特性

WTx(a,τ)——小波变换得到的频域信号

原始信号x(t)经过与不同伸缩尺度a和不同时移τ的母小波函数卷积变换后得到频域信号WTx(a,τ),实现原始信号向频域信号的转换。

二维离散小波变换(2D-DWT)能够有针对性地提取图像多个尺度下的频域特征,且所提取特征可解释性强,已在人脸识别领域得到一定应用。在羊脸识别问题中,原始信号对应羊脸的二维灰度图像,处理时按照一维离散小波变换的原理,先进行一次逐行分解,再进行一次逐列分解。一次分解完成后,可以得到LL、HL、LH、HH共计4个小波子带,宽、高均为原始图像的一半。其中,LL为水平低频垂直低频子带,表示原始图像的低频信息,是原始图像的近似表示;HL为水平高频垂直低频子带,体现原始图像的水平方向特征;LH为水平低频垂直高频子带,体现原始图像的垂直方向特征;HH为水平高频垂直高频子带,体现原始图像的对角边缘特征。本试验采用Haar小波基函数依次完成羊脸图像连续4个层级的小波变换,所得结果如图4所示。

图4 4个层级的小波变换结果

2.2 基于2D-DWT与卷积运算的羊脸特征提取模块

解决传统分类问题时,类间差异普遍较大,使用卷积神经网络提取图像空间域特征容易完成分类。而针对羊脸识别问题,不同分类的羊只不仅属于同一物种,还属于同一品种,外貌特征相似,面部差异很小,给分类带来了较大难度,这就要求引入更为丰富的特征。

卷积神经网络直接在空间域中处理图像,本质上是空间域方法,仅提取空间域特征;而在频域上,一个滤波器可以在增强某些频率的同时抑制其它频率以实现选择性,提取出所需要的频域特征。空间域方法与频域方法具有截然不同的特性,若将频域方法引入卷积神经网络,将使所搭建网络在保持空间域分析的基础上,兼具频域分析的功能。基于此构想,本文设计了如图5所示的基于2D-DWT与卷积运算的羊脸特征提取模块,进行羊脸图像空间域特征与频域特征的提取与融合。

图5 羊脸特征提取模块

由于使用一次核尺寸为3×3、步长为2的卷积运算可使特征图宽、高减半,而一次2D-DWT运算亦可将低频图像分解为4幅宽、高减半的子图,在特征图宽、高一致的前提条件下,可实现通道拼接操作。基于以上数量关系,本文完成了羊脸特征提取模块的构建。其中,卷积运算的操作对象是空间域特征图,经过图示运算,可使原特征图宽、高减半,通道加倍;2D-DWT运算的操作对象是上一次2D-DWT分解得到的低频图像,首先将其分解为4幅子图,对这4幅子图执行通道拼接操作,形成通道数为4的频域特征图,紧接着进行核尺寸为3×3、步长为1的卷积运算,使其通道加倍。之后,对2个分支得到的宽、高一致的特征图整体执行通道拼接操作,实现特征融合。

2.3 DWT-GoatNet网络搭建

本文以前述羊脸特征提取模块为基础,添加分类模块,进行卷积神经网络DWT-GoatNet的搭建,网络结构如图6所示。

图6 DWT-GoatNet网络结构

通过大量试验发现,使用核尺寸为3×3的卷积核具有较好的羊脸空间域特征提取效果。在主干网络中,输入的羊脸图像尺寸为224×224×3;浅蓝色模块代表核尺寸为3×3、步长为1的卷积运算,以下简称为等长卷积;深蓝色模块代表核尺寸为3×3、步长为2的卷积运算,以下简称为尺寸减半卷积。

在网络头部输入羊脸图像后,首先执行RGB图像向灰度图像的转换;然后执行1-level的2D-DWT运算,得到LL1、HL1、LH1、HH1共计4个小波子带,此时特征图的传播方向出现2个分支:

(1)在卷积运算分支中,对1-level的2D-DWT运算结果执行通道拼接操作,因为4个小波子带LL1、HL1、LH1、HH1尺寸一致,均为112×112×1,所以拼接后尺寸变为112×112×4,随后继续向后传播。经过一个等长卷积后,特征图尺寸变为112×112×64;再经过一个尺寸减半卷积后,特征图尺寸变为56×56×64。此后,经过卷积运算的特征图等待与2D-DWT分支传播过来的特征图进行特征融合。

(2)在2D-DWT分支中,对1-level的2D-DWT运算得到的LL1分量再次执行2-level的 2D-DWT运算,得到LL2、HL2、LH2、HH2共计4个小波子带,尺寸均为56×56×1,对其按序执行通道拼接操作,尺寸变为56×56×4,随后继续向后传播。经过一个等长卷积后,特征图尺寸变为56×56×64,与卷积运算分支输出结果尺寸一致。然后进行两个分支的特征融合,即特征图的通道拼接操作,使得特征图尺寸变为56×56×128,并送入下一个特征提取模块。

后续特征图在网络中的流动方式与此类似,只是在持续的尺寸减半卷积与小波变换过程中,特征图宽、高不断减半,深度不断翻倍,空间域特征与频域特征持续融合。网络中不使用池化层,取而代之以尺寸减半卷积,在保证特征细节尽少丢失的前提下实现下采样功能。最后,在网络结构尾部,使用 1个平均池化层与2个全连接层,以及Softmax层实现羊脸分类功能。网络中所使用的每个卷积运算均采用ReLU(Rectified linear unit)激活函数。

2.4 模型训练

2.4.1训练参数设置

试验在搭建Ubuntu 18.04操作系统的高性能计算机上进行,GPU选用单个NVIDIA GeForce RTX 3080Ti,显存为12 GB,对应CUDA运算库版本为11.4.0,基于Keras深度学习框架完成模型构建。

在参数设置方面,训练图像尺寸为224像素×224像素,批量大小(Batch size)为4,将模型迭代轮数设定为500。为获得最优的训练模型,采用Adam(Adaptive moment estimation)算法对模型进行优化,损失值的计算则采用交叉熵损失函数(Cross entropy loss),使用动态衰减策略对学习率进行更新[10]。试验中每迭代5轮保存一次权重参数,并选取最优权重文件形成羊脸识别模型。

2.4.2评价指标

采用准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1值作为模型的评价指标。其中,准确率是最常见的评价指标,指被正确预测的样本占所有样本的比重;精确率又称查准率,反映预测为正例的样本中确实为正例的样本所占比重;召回率又称查全率,反映实际为正例的样本中被正确预测出来的样本所占比重;F1值是精确率、召回率的调和平均数,将这两个分值合并为一个分值,当基于二者进行模型评价出现冲突时,使用此指标作为综合评价依据。

3 结果与分析

本文选取训练得到的最优权重文件形成羊脸识别模型。同时,使用同样的数据集基于AlexNet[27]、VGGNet-16[28]、GoogLeNet[29]、ResNet-50[30]、DenseNet-121[31]等经典卷积神经网络训练最优羊脸识别模型,并在同一测试集上就各项指标进行对比,在日间光照环境下、夜间灯光环境下测试集上识别结果如表3、4所示。

表3 日间光照环境下测试集上识别结果

由表3可知,在日间光照环境下,经典卷积神经网络中VGGNet-16在测试集上识别效果最佳,其准确率、精确率、召回率、F1值分别为98.13%、98.27%、97.89%、98.03%,而本文所提出的 DWT-GoatNet在上述4项指标上相较于VGGNet-16提高1.61、1.55、1.84、1.75个百分点。在具有概括性的准确率这一指标上,DWT-GoatNet相较于AlexNet、GoogLeNet、ResNet-50、DenseNet-121分别提高2.60、2.65、2.24、3.48个百分点。

由表4可知,在夜间灯光环境下,经典卷积神经网络中ResNet-50在测试集上识别效果最佳,其准确率、精确率、召回率、F1值分别为97.97%、98.06%、97.92%、97.93%,而本文所提出DWT-GoatNet在上述4项指标上相较于ResNet-50提高1.92、1.80、1.93、1.93个百分点。在具有概括性的准确率这一指标上,DWT-GoatNet相较于AlexNet、VGGNet-16、GoogLeNet、DenseNet-121分别提高3.00、3.89、2.43、3.25个百分点。

表4 夜间灯光环境下测试集上识别结果

DWT-GoatNet及其它5种模型在日间光照环境下(对应羊只为Goat1~Goat20)、夜间灯光环境下(对应羊只为Goat21~Goat30)测试集上羊脸识别结果的混淆矩阵如图7、8所示。在日间光照环境下,DenseNet-121在Goat18上发生了较多误识别情况,经对误识别样本查证发现,Goat18存在较多背光拍摄的图像,一定程度上弱化了面部细节特征,说明DenseNet-121在养殖场光照变化情况下进行羊脸识别存在一定不稳定性。在夜间灯光环境下,AlexNet、VGGNet-16在Goat25上发生了较多误识别情况,经对误识别样本查证发现,Goat25存在较多侧脸图像,而上述模型未考虑图像频域信息,故当五官特征显著性下降时,无法提取面部频域信息作为补充,导致了误识别现象的发生。

图7 日间光照环境下测试集上混淆矩阵

图8 夜间灯光环境下测试集上混淆矩阵

对识别结果进一步分析可知,DWT-GoatNet在两种不同光照环境下性能表现较为稳定,体现出模型所采用的羊脸特征提取模块能够有效应对环境光照变化带来的影响;同时,相较于其它5种经典卷积神经网络模型,DWT-GoatNet在测试集上识别准确率始终保持在99%以上,误识别样本数量极少,说明模型所采用的羊脸特征提取模块能够很好地融合羊脸频域、空间域特征,有效抑制无关背景信息带来的干扰,且模型整体具备良好的抗过拟合能力与泛化能力,具有鲁棒性、有效性,满足实际场景需要。

4 结论

(1)针对养殖场条件下羊只的个体识别问题,本文基于2D-DWT与卷积运算,提出一种羊脸特征提取模块,并据此形成羊脸识别模型DWT-GoatNet,在日间光照环境下羊脸测试集上准确率、精确率、召回率、F1值分别可达99.74%、99.82%、99.73%、99.78%,在夜间灯光环境下羊脸测试集上准确率、精确率、召回率、F1值分别可达99.89%、99.86%、99.85%、99.86%,在两种不同光照环境下试验结果均高于AlexNet、VGGNet-16、GoogLeNet、ResNet-50、DenseNet-121等经典卷积神经网络模型。

(2)本文所提出的羊脸特征提取模块,充分考虑了羊脸识别问题中数据本身所具有的特点,使用2D-DWT进行羊脸图像中频域特征提取,引入频域信息,并使用卷积运算完成空间域特征提取,通过特征图通道拼接完成频域特征与空间域特征的融合。本文模型能够适应羊脸在图像中位置、方向、大小变化和所在环境光照发生变化,以及一定程度模糊等情况,并抑制无关背景信息,完成羊脸识别任务。模型结构简单、收敛迅速,且易于部署,为精准养殖过程中家畜的个体识别,以及农业保险承保环节中保险对象的识别提供了有效解决方案。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!