一种基于卷积神经网络的狗脸识别方法

文档序号:25884587发布日期:2021-07-16 19:04阅读:174来源:国知局
一种基于卷积神经网络的狗脸识别方法

1.本发明涉及计算机视觉以及深度学习领域,具体而言是一种基于卷积神经网络的狗脸识别方法。
技术背景
2.现如今,狗作为人类的伙伴,深受广大人民的喜爱。随着狗的不断增加,出现了宠物狗丢失、恶狗伤人以及宠物医院狗狗识别管理等一系列问题。而解决这些问题的关键在于对狗狗的身份识别。目前,其主要方式是通过将米粒大小的芯片植入到狗狗体内,但这种需要破皮的识别方法会引起狗狗的不适,很难让人接受。因此,非接触式的狗脸识别技术应运而生。


技术实现要素:

3.针对现有技术中存在的不足,本发明提出一种基于卷积神经网络的狗脸识别方法。该方法可以准确快速的对狗狗身份进行识别。
4.本发明的技术方案是这样实现的:
5.一种基于卷积神经网络的狗脸识别方法,包括以下步骤:
6.步骤(1)、采集狗脸图像,构建用于模型训练的狗脸数据集,将获得的狗脸数据集划分为训练数据集和测试数据集;
7.步骤(2)、图像预处理。
8.对数据集中的狗脸以及它的左眼,右眼,鼻子,左嘴角和右嘴角进行人工手动标注,然后使用特征点坐标仿射变换的方法对狗脸图像进行狗脸位置对齐,然后对狗脸图像进行裁剪;
9.步骤(3)、构建识别网络模型。
10.采用残差结构构建卷积神经网络作为特征提取网络,即识别网络模型,采用加法角余量损失(additive angular margin loss)作为输出层的损失函数;
11.步骤(4)、使用训练数据集并采用随机梯度下降法训练识别网络模型及调参优化;
12.步骤(5)、根据测试协议,使用测试数据集对训练好的识别网络模型进行准确率评估。
13.所述步骤(1)的具体实现方法为:对每条狗采集多张狗脸图像,拍摄角度任意,但拍摄的狗脸图像需要包含左眼,右眼,鼻子,左嘴角和右嘴角,对采集到的狗脸图像数据根据狗的身份进行编号,并将狗脸图像数据按8:2的比例随机划分为训练数据集和测试数据集。并从整个狗脸数据集中对每条狗选出一张它的清晰的狗脸图像作为图集,该狗脸图集用于测试使用。
14.所述步骤(2)的具体实现方法为:首先,使用电脑标注软件对数据集中的狗脸进行矩形框框选,以及对狗脸的左眼中心点、右眼中心点、鼻子点、左嘴角点和右嘴角点进行特征点坐标标注。完成标注后,使用特征点坐标仿射变换的方法对狗脸图像进行裁剪对齐预
处理处理。
15.所述坐标点仿射变换是指二维坐标到二维坐标之间的线性变换,通过一系列的平移、缩放、翻转、旋转和剪切来实现。经过坐标点仿射变换后,狗脸的五个特征点将配准到预先定义好的五点模板上,完成狗脸对齐。
16.所述裁剪使用双线性插值算法,在两个方向分别进行一次线性插值。
17.所述识别网络模型用于提取狗脸图像的特征,由1个全连接层和10个卷积层组成,其中包括第一残差模块和第二残差模块,数量分别为1和2。所述卷积层包含卷积核(conv2d)、归一化层(batchnorm2d)和激活层(relu)。
18.识别网络模型运算步骤依次为:输入狗脸图像,首先通过大小为3
×
3,通道数为64的卷积层;然后通过大小为3
×
3,通道数为128,步长为2的卷积层;再通过第一残差模块;之后通过大小为3
×
3,通道数为256,步长为2的卷积层;然后通过两次重复的第二残差模块;随后通过大小为3
×
3,通道数为512,步长为2的卷积层;最后通过全连接层得到最终128维的特征向量。
19.所述第一残差模块由一个大小为1
×
1,通道数为64的卷积层和一个大小为3
×
3,通道数为128的卷积层组成。
20.所述第二残差模块由一个大小为1
×
1,通道数为128的卷积层和一个大小为3
×
3,通道数为256的卷积层组成。
21.所述残差结构是指输入经过1
×
1卷积层和3
×
3卷积层后的特征与输入特征相加,然后得到其输出特征。
22.所述加法角余量损失函数表达式如下:
[0023][0024]
w为权值向量,x为特征向量,θ为特征向量x与权值向量w间的夹角。m是常数,控制类别之间的差距。s是一个缩放因子。n是样本数。
[0025]
所述加法角余量损失函数具体实现流程为:特征向量x和一个全连接层w之间的点积等于特征和权重归一化后的余弦距离cos(θ)。利用反余弦函数来计算当前特征与目标权重之间的夹角θ。然后,在目标角度上加上一个相加的角度裕度m。在后,用固定的s重新缩放得到scos(θ)。
[0026]
所述步骤(4)的具体实现方法为:使用训练数据集对识别网络模型进行训练,监测识别网络模型训练时的损失函数值l收敛情况,以便及时调整识别网络模型参数,如果损失函数值l小于设定阈值且稳定在设定区间,则认为训练完成。
[0027]
所述步骤(5)的具体实现方法为:根据测试协议,通过测试数据集对识别网络模型的准确率进行计算,若准确率达到预期结果则表示合格,完成训练,若准确率未达到预期结果,则返回步骤(4)继续训练,直到得到训练好的网络模型为止。
[0028]
所述测试协议是指测试数据集中的测试狗脸图像与狗脸图集中的每一张狗脸图
像进行余弦相似性计算,然后得出图库中余弦相似性最高的一张狗脸图像,若该图与测试狗脸图像身份一致,则认为识别正确,否则认为识别错误。
[0029]
所述余弦相似性计算的具体实现方法为:首先将需要计算的图像经过预先训练好的识别网络模型,从而得到其特征向量a和特征向量b。然后,将特征向量a和特征向量b通过(a*b)/(|a|*|b|)得到其余弦值cosθ。该余弦值就是余弦相似性。
[0030]
本发明有益效果:
[0031]
本发明设计合理,采用残差网络构建识别网络模型,对狗脸图像的特征进行精确提取并且细节保留完整,利用人脸识别中效果较好的加法角余量损失函数对特征进行分类,使得识别结果更加准确,具有较强的鲁棒性,从而实现非接触式狗脸的个体识别,对社会具有重要意义。
附图说明
[0032]
图1是本发明的整体实现流程图;
[0033]
图2是本发明识别网络模型的网络结构示意图;
[0034]
图3是本发明使用流程图;
具体实施方式
[0035]
下面根据附图详细说明本发明,本发明的目的和效果将变得更加明显。
[0036]
如图1所示,本发明整体实现流程如下:
[0037]
步骤(1)、采集狗脸图像,构建用于模型训练的狗脸数据集,将获得的狗脸数据集划分为训练数据集和测试数据集;
[0038]
对每条狗采集多张狗脸图像,拍摄角度任意,但拍摄的狗脸图像需要包含左眼,右眼,鼻子,左嘴角和右嘴角,对采集到的狗脸图像数据根据狗的身份进行编号,并将狗脸图像数据按8:2的比例随机划分为训练数据集和测试数据集。并从整个狗脸数据集中对每条狗选出一张它的清晰的狗脸图像作为图集,该狗脸图集用于测试使用。
[0039]
步骤(2)、图像预处理。
[0040]
对数据集中的狗脸以及它的左眼,右眼,鼻子,左嘴角和右嘴角进行人工手动标注,然后使用特征点坐标仿射变换的方法对狗脸图像进行狗脸位置对齐,然后对狗脸图像进行裁剪;
[0041]
首先,使用电脑标注软件对数据集中的狗脸进行矩形框框选,以及对狗脸的左眼中心点、右眼中心点、鼻子点、左嘴角点和右嘴角点进行特征点坐标标注。完成标注后,使用特征点坐标仿射变换的方法对狗脸图像进行裁剪对齐预处理处理。
[0042]
坐标点仿射变换是指二维坐标到二维坐标之间的线性变换,通过一系列的平移、缩放、翻转、旋转和剪切来实现。经过坐标点仿射变换后,狗脸的五个特征点将配准到预先定义好的五点模板上,完成狗脸对齐。
[0043]
裁剪使用双线性插值算法,其核心思想是在两个方向分别进行一次线性插值。该方法作为数值分析中的一种插值算法,广泛应用在信号处理,数字图像和视频处理等方面。
[0044]
图像预处理可以有效减少由于位置偏差而带来的误识别,从而有效地增加狗脸识别准确率。
[0045]
步骤(3)、构建识别网络模型。
[0046]
如图2所示,采用残差结构构建卷积神经网络作为特征提取网络,即识别网络模型,采用加法角余量损失(additive angular margin loss)作为输出层的损失函数;
[0047]
识别网络模型用于提取狗脸图像的特征,由1个全连接层和10个卷积层组成,其中包括第一残差模块和第二残差模块,数量分别为1和2。卷积层包含卷积核(conv2d)、归一化层(batchnorm2d)和激活层(relu)。
[0048]
识别网络模型运算步骤依次为:输入大小为112
×
112的狗脸图像,首先通过大小为3
×
3,通道数为64的卷积层;然后通过大小为3
×
3,通道数为128,步长为2的卷积层;再通过第一残差模块;之后通过大小为3
×
3,通道数为256,步长为2的卷积层;然后通过两次重复的第二残差模块;随后通过大小为3
×
3,通道数为512,步长为2的卷积层;将输出展平得14
×
14
×
512维,最后通过全连接层得到最终128维的特征向量。
[0049]
第一残差模块由一个大小为1
×
1,通道数为64的卷积层和一个大小为3
×
3,通道数为128的卷积层组成。
[0050]
第二残差模块由一个大小为1
×
1,通道数为128的卷积层和一个大小为3
×
3,通道数为256的卷积层组成。
[0051]
残差结构是指输入经过1
×
1卷积层和3
×
3卷积层后的特征与输入特征相加,然后得到其输出特征。
[0052]
残差结构具有加速训练,解决梯度消失和梯度爆炸问题。
[0053]
大小为3
×
3,步长为2的卷积层用来缩小特征尺寸,并且有助于提取图像更多细节,增加模型鲁棒性,使识别结果更加精确。
[0054]
加法角余量损失函数来源于人脸识别技术,是目前应用于人脸识别领域主流的,效果好的损失函数。
[0055]
加法角余量损失函数表达式如下:
[0056][0057]
w为权值向量,x为特征向量,θ为特征向量x与权值向量w间的夹角。m是常数,控制类别之间的差距。s是一个缩放因子。n是样本数。
[0058]
加法角余量损失函数具体实现流程为:特征向量x和一个全连接层w之间的点积等于特征和权重归一化后的余弦距离cos(θ)。利用反余弦函数来计算当前特征与目标权重之间的夹角θ。然后,在目标角度上加上一个相加的角度裕度m。在后,用固定的s重新缩放得到scos(θ)。
[0059]
步骤(4)、使用训练数据集并采用随机梯度下降法训练识别网络模型及调参优化。
[0060]
使用训练数据集对识别网络模型进行训练,监测识别网络模型训练时的损失函数值l收敛情况,以便及时调整识别网络模型参数,如果损失函数值l小于设定阈值且稳定在设定区间,则认为训练完成。
[0061]
步骤(5)、根据测试协议,通过测试数据集对识别网络模型的准确率进行计算,若准确率达到预期结果则表示合格,完成训练,若准确率未达到预期结果,则返回步骤(4)继续训练,直到得到训练好的网络模型为止。最终训练得到的识别网络模型将用于狗脸识别。
[0062]
测试协议是指测试数据集中的测试狗脸图像与狗脸图集中的每一张狗脸图像进行余弦相似性计算,然后得出图库中余弦相似性最高的一张狗脸图像,若该图与测试狗脸图像身份一致,则认为识别正确,否则认为识别错误。
[0063]
余弦相似性计算的具体实现方法为:首先将需要计算的图像经过预先训练好的识别网络模型,从而得到其特征向量a和特征向量b。然后,将特征向量a和特征向量b通过(a*b)/(|a|*|b|)得到其余弦值cosθ。该余弦值就是余弦相似性。
[0064]
如图3所示,是本发明的具体使用流程图:
[0065]
步骤(1)、摄像机采集要识别的狗脸图像,通过训练好的识别网络模型提取待识别狗脸特征;
[0066]
步骤(2)、狗脸图库包含所有狗的狗脸,其中每条狗含有一张狗脸,将狗脸图库的每张狗脸图片通过训练好的识别网络模型得到图库特征;
[0067]
步骤(3)、将待识别的狗脸特征与图库中的狗脸特征一一计算它们的余弦相似性,即余弦值;
[0068]
步骤(4)、将步骤(3)的余弦值进行排序,待识别狗脸与图库中的狗脸余弦值最大的即是识别结果。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1