基于卷积神经网络的猪脸特征点检测方法

2022-07-07 01:49李向宇李慧盈
吉林大学学报(理学版) 2022年3期
关键词:关键点人脸卷积

李向宇, 李慧盈,2

(1. 吉林大学 计算机科学与技术学院, 长春 130012;2. 吉林大学 符号计算与知识工程教育部重点实验室, 长春 130012)

随着科技的发展和社会的进步, 面部识别、 表情分析以及面部追踪等面部应用场景的需求越来越广泛, 而面部对齐和面部配准是这些应用场景的关键技术, 关键点检测则是面部对齐和面部配准的前提. 目前, 人脸关键点识别技术已经成熟, 面部对齐和面部配准的技术应用也趋于完备[1-5], 但对于动物特征点识别的研究相对较少. 动物面部识别在农业有广泛需求, 而猪作为目前养殖最广泛的动物, 对其进行面部识别已成为该领域的研究热点. 猪脸的整体相似度较高, 且由于猪脸长期不清洗, 其面部特征也会受影响, 因此, 在动物脸部的识别中, 猪脸是较难识别的问题. 文献[6]基于神经网络的方法进行了猪脸识别的研究, 但研究的数据集只包含10头猪, 无法确认该方法的泛化性. 在人脸识别领域, 通常以特征点识别的前提进行大量数据的识别. 因此, 在猪脸识别领域, 同样需要关键点识别的必要前提.

深度学习是机器学习领域中的一个研究方向, 其学习样本数据的内在规律和表示层次, 在学习过程中获得的信息对诸如文字、 图像和声音等数据的解释有较大帮助[7]. 卷积神经网络(convolutional neural networks, CNN)是深度学习的一个重要分支, 卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络, 具有表征学习能力, 能按其阶层结构对输入信息进行平移不变分类, 因此也被称为平移不变人工神经网络[8-9]. 卷积神经网络常用于解决图像问题. 卷积神经网络在人脸面部特征点识别方面应用广泛[10-19], 因此本文使用卷积神经网络解决猪脸特征点的检测问题.

目前, 对于动物面部关键点检测的研究报道较少, 而关于猪脸特征点检测的方法尚未见文献报道. 文献[20]提出了一种绵羊关键点检测算法, 应用了级联网络, 需大量的手工标注数据; 文献[21-23]研究了鸟类的特征点检测, 但并未侧重于面部关键点检测; 文献[24]提出了一种解决马和羊面部关键点检测的算法, 通过与人脸进行结构匹配实现特征点识别, 本文基于该方法, 提出一种猪脸关键点检测的算法. 猪脸特征点识别的难点是数据集问题和特征点选择问题. 目前有很多人类面部关键点数据集, 如AFLW数据集、 XM2VTS数据集、 FRGCV2数据集等, 但没有可用的猪脸特征点数据集; 在采集猪脸过程中, 猪脸的嘴部通常会被鼻子遮住, 不能很好地进行特征点标注, 因此本文在文献[24]方法的基础上采用新的特征点标注方法.

1 算法设计

1.1 算法结构

本文算法的结构基于文献[24]的方法. 首先对猪脸的特征点进行结构计算, 与人脸数据集进行匹配, 找出相似的人脸, 构建匹配数据集, 对于形变神经网络进行训练, 生成形变模型; 然后利用形变模型生成形变后的猪脸图像, 对于人脸关键点检测网络进行微调(fine-tuning), 生成猪脸关键点检测模型. 算法整体思路如图1所示.

图1 算法整体思路Fig.1 Overall idea of algorithm

1.2 人脸匹配算法

人脸匹配算法首先要进行特征点结构计算, 对于猪脸匹配相似度最高的5张人脸图像, 相似度的计算公式为

S=

(1)

(2)

其中xle和yle分别表示左眼的横坐标和纵坐标,xre和yre分别表示右眼的横坐标和纵坐标,xn和yn分别表示鼻尖的横坐标和纵坐标,xlm和ylm分别表示左嘴角的横坐标和纵坐标,xrm和yrm分别表示右嘴角的横坐标和纵坐标.有时由于面部姿态的原因, 可能缺失某只眼睛的特征点, 当左眼可见时,l=1, 否则l=0; 当右眼可见时,r=1, 否则r=0.

猪脸与人脸的相似度通过夹角判断.当左右眼皆可见时, 如图2所示, 考虑通过双眼连线中点的垂线与左嘴角和双眼连线中点的连线的夹角, 利用这两条边的向量计算夹角的正弦值; 当仅有左(右)眼可见时, 如图3所示, 考虑左(右)眼和鼻尖的连线与左(右)嘴角和鼻尖的连线的夹角, 利用这两条边的向量计算夹角的余弦值.

图2 猪双眼都可见时的匹配方法Fig.2 Matching method when both eyes of pig are visible

图3 猪某只眼睛不可见时的匹配方法Fig.3 Matching method when one eye of pig is invisible

1.3 形变神经网络

微调是在其他预训练网络的基础上, 将输入层和全连接层按需要改变, 在预训练权重的基础上进行训练的过程.其是迁移学习的一种实现方式, 可以将某类型所学习到的信息转移到其他类型上, 适用于那些数据集相对较少, 且其相似类型有较大数据量的类型.对于猪脸特征点识别, 人脸特征点有较大的数据量, 且相对于人脸特征点数据集, 猪脸特征点数据集相对较少, 因此可以应用微调完成猪脸特征点识别.猪脸和人脸在结构上存在差异, 因此如果直接使用人脸特征点识别模型进行微调并不能达到较好效果, 本文算法将猪脸形变为结构相似的人脸, 调整特征点网络的输入, 使输入适配预训练的模型, 从而提高微调的作用.

薄板样条插值(thin plate spline, TPS)[25]是一种常用的2D插值方法, 在两张图像中找出若干匹配的特征点, TPS可以根据对应的特征点, 生成原图像其他点的变化(即插值). 本文应用卷积神经网络进行猪脸形变, 网络的输入为猪脸图像, 通过TPS对图像进行扭曲, 并通过监督学习的方法对网络进行训练. 使用所得到的猪脸人脸匹配, 计算TPS变换, 并利用真实的变换和预测的变换得到损失函数, 训练网络. 形变卷积网络的结构如图4所示.

图4 形变卷积网络结构Fig.4 Structure of deformed convolutional network

1.4 特征点检测网络

特征点检测网络使用Tweaked CNN(TCNN)[26], TCNN在TCDCN(tasks-constrained deep convolutional network)[27]的基础上, 调整了网络的全连接层, 使具有相似特征的图像训练对应的回归器, 从而提高了识别效率和精度, 同时采用alignment-sensitive方法进行数据增强, 提高了网络的泛化性. 本文网络在TCNN的基础上添加了额外的卷积层和池化层以适应更大的图像, 网络已经在AFLW数据集[28]和文献[29]中的数据集上进行了预训练, 输入形变后的猪脸数据即可进行微调. 网络结构如图5所示.

图5 特征点检测卷积网络结构Fig.5 Convolutional network structure of feature point detection

网络使用文献[30]中的平滑L1损失函数:

(3)

其中x为特征点的预测值与实际值的差值.由于猪脸的姿态可能会出现少量的异常值, 因此网络使用文献[30]中的损失函数, 该损失函数不会对少量的异常值产生较大波动.

2 实 验

2.1 猪脸特征点数据集

本文利用手机采集限位栏内的猪脸图像, 采集时间和猪脸姿态随机, 因此数据集包含了不同的光照条件和姿态.猪样本共206头, 筛选出包含完整猪脸的图像生成数据集, 数据集的分辨率为224×224.通常情况下, 人脸的5个关键点为左眼、 右眼、 鼻尖、 左嘴角和右嘴角, 如图6所示.由于猪脸部的特点, 其嘴角通常会被鼻子遮挡, 如图7所示, 因此本文利用新的采集方式, 将左嘴角和右嘴角换为鼻左翼和鼻右翼, 最终的采集实例如图8所示.

图6 人脸特征点采集方法Fig.6 Collection method of human facial feature point

图7 猪脸图像实例Fig.7 Example of pig face images

图8 猪脸特征点采集方法Fig.8 Feature point collection method of pig face

最终标注的数据集为6 099张样本图像, 将数据集按猪编号随机划分为各自包含不同猪样本的训练集、 验证集和测试集, 各数据集分布列于表1.

表1 数据集分布

2.2 实验结果及分析

猪脸与人脸匹配的过程中, 选用数据集为AFLW数据集[28]和文献[29]中的数据集(31 524张图像), 文献[29]中的数据集包括LFW数据集[31](5 590张图像)和部分网络图像(7 876张), 特征点检测网络也使用这些数据进行预训练. 实验选用的评估标准与文献[21]相同, 如果关键点的预测位置与实际位置的欧氏距离不超过边界框的10%, 则视为预测成功, 否则视为失败. 将平均失败率计算为失败测试关键点的百分数.

猪脸特征点识别实验结果列于表2, 最终结果以错误率衡量. 由表2可见, 在猪脸特征点识别较难的情况下, 5个部位的特征点预测结果及总体的预测结果仍较理想, 表明本文的特征点采集方法及使用的算法有效. 文献[24]中马脸的特征点识别总体错误率为8.36%, 羊脸的特征点识别总体错误率为0.87%. 与文献[24]的结果相比, 本文的猪脸特征点识别结果比马脸特征点识别的结果更好, 比羊脸特征点识别结果差, 但文献[24]中方法泛化性较差. 由于在本文构建的猪脸部特征点数据集中, 训练集、 验证集和测试集都来自不同的猪样本, 包含了不同的随机角度、 姿势及光照条件, 因此得到的结果可说明该模型有良好的鲁棒性和泛化性, 适用于大型、 复杂的猪脸数据. 图9为部分猪脸特征点预测的实例.

表2 猪脸特征点识别实验结果

综上所述, 本文针对猪脸特征点的预测问题, 采集了猪脸部的数据, 提出了一种新的特征点采集方法以解决猪口部的遮挡问题, 标注并构建了猪脸部特征点数据集, 使用深度学习的方法, 通过猪脸人脸匹配公式及形变卷积神经网络构建猪脸形变数据集, 使猪脸数据与人脸数据适配, 最后使用形变后的猪脸特征点数据集对人脸特征点检测卷积神经网络模型进行微调, 得到猪脸特征点检测模型, 实现了猪脸特征点检测.

猜你喜欢
关键点人脸卷积
基于全卷积神经网络的猪背膘厚快速准确测定
论建筑工程管理关键点
水利水电工程施工质量控制的关键点
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一种并行不对称空洞卷积模块①
玻璃窗上的人脸
利用定义法破解关键点
“领家系”可爱脸VS“高冷系”美人脸