You are on page 1of 3

158 传感器与微系统( Transducer and Microsystem Technologies) 2021 年 第 40 卷 第 10 期

DOI: 10. 13873 / J. 1000 —9787( 2021) 10 —0158 —03

*
基于改进 K-SVD 算法在牛脸识别上的应用
赵建敏,姜世奇,李 琦
( 内蒙古科技大学 信息工程学院,内蒙古 包头 014000)

摘 要: 为了适应精准畜牧业理念,提出了一种改进的 K-SVD 算法用于牛的个体身份识别。在 K-SVD 算


法基础上,更改了稀疏编码阶段字典原子的选择方式,使算法更加适用于图像分类问题。构造了包含 20 头
牛的牛脸图像数据集 IMCFR20,利用该数据集分析稀疏度与字典原子数对识别效果的影响。实验结果表
明: 改进后的算法识别率达到 90 % 以上,识别效果有了较大提升,为利用图像进行牛的个体识别问题提供
了可行的方案。
关键词: 个体识别; 牛脸; 稀疏表示; K-SVD 算法
中图分类号: TP 391 文献标识码: A 文章编号: 1000 —9787( 2021) 10 —0158 —03

Application of improved K-SVD algorithm in cattle


face recognition*
ZHAO Jianmin,JIANG Shiqi,LI Qi
( College of Information Engineering,Inner Mongolia University of Science & Technology,Baotou 014000,China)

Abstract: In order to adapt to concept of precise animal husbandry,an improved K-SVD algorithm is proposed for
individual identification of cattle. On the basis of K-SVD algorithm,selection mode of dictionary atoms in sparse
encoding phase is changed,making the algorithm more suitable for image classification problems. A cattle face
image dataset IMCFR20 containing 20 cattle is constructed and using this dataset to analyze the impact of sparsity
and dictionary atomic number on recognition effect. The experimental results show that the improved algorithm has
recognition rate of above 90 % ,and the recognition effect is greatly improved,which provides a feasible solution for
individual recognition of cattle using images.
Keywords: individual identification; cattle face; sparse representation; K-SVD algorithm

0 引 言 金字塔匹配原理( SPM) 的 BOF 模型上,引入了 HOG 特征


目前传统畜牧业正在不断寻找新的发展模式,不再仅 替换 SIFT 特征,针对奶牛图像降低特征复杂度,提升了识
以增产为主,转而更加注重产品的质量与品种,
向智能化、
精 别性能。深度学习的兴起使得卷积神经网络 ( CNN) 对图
细化、
规模化方向发展,
提出了精准畜牧业的发展理念,这也 像识别表 现 优 异,很 多 学 者 利 用 CNN 进 行 牛 的 个 体 识
[6,
7]
是由我国目前的发展现状与时代特征所决定的,
同时也对牲 别 ,取得了较好的识别效果,但基于 CNN 的网络模型需
畜的个体身份识别提出了更高的要求。目前主流的牛个体 要大量人工标注的数据进行训练与测试,对于人力成本要
识别都是采用基于射频识别( radio frequency identification, 求较高,在实际牧场应用中难以大范围开展。Kumar S 等
[1 ~ 3] [8,
9]
RFID) 的识别方式 ,这种方法不仅识别距离有限,而且 人 利用牛的鼻口点 ( muzzle point) 信息来进行个体识
存在被替换、损坏和丢失导致无法准确识别的潜在风险。 别,
这些信息与人类指纹类似具有较高的辨识度,但相比脸
因此,国内外学者利用图像处理技术对牲畜的识别展开了 部图像获取,鼻口点数据的实际采集过程对人工成本要求
[4]
广泛的研究。Xia M 等人 提出了利用稀疏表示分类器 较高,采集难度较大,实际应用困难。
( SRC) 对牛脸图像进行识别,通过主成分分析( PCA) 进行 对此,本文将字典学习理论结合牛脸图像识别应用到
[5] [10]
特征提取后利用 SRC 进行识别。陈娟娟等人 用改进的 牛的个体身份识别,在经典 K-SVD 算法 基础上进行了
特征袋模型( BOF) 对奶牛头部图像进行识别,在基于空间 改进,对于输入的牛脸图像,通过构造冗余字典原子的线性

收稿日期: 2020—04—07
* 基金项目: 内蒙古自然科学基金资助项目( 2019LH06006) ; 内蒙古自治区科技重大专项资助项目( 2019ZD025)
第 10 期 赵建敏,等: 基于改进 K-SVD 算法在牛脸识别上的应用 159

组合来对样本进行稀疏表示,在稀疏表示过程中加强了原 交替优化求解 X 和 D。在更新时对 X 中非零列逐次更新,


子的优化策略,求解样本在不同字典下的重构误差,针对牛 将式( 1) 转换为
脸识别问题,有了明显改善。 2
K
j 2

1 材 料
‖Y - DX‖ F = ‖Y - ∑dx ‖
j =1
j L F

j
数据来源于内蒙古自治区乌兰察布市察哈尔地区某牧 = ‖( Y - ∑dx ) j L - d k x kL ‖2F
j≠k
场,
为了更好地采集完整的牛脸图像,选取了牛在饮水期间
= ‖E k - d k x kL ‖2F ( 2)
进行图像采集,经过挑选后构造了一 个 牛 脸 图 像 数 据 集 k
式中 d k 为 D 的第 k 列,x 为 X 的第 k 行,E k 为去掉 d k 列
L
IMCFR20。该数据集中包含 20 头牛,每头牛挑选 20 张正 k
的残差,对其进行 SVD 分解,得到更新后的 d k 和 x R
面牛脸图片,共计 400 张。采集时间为 2018 年 7 月,采集
E Rk = UΔV T ,d k = U(︰,
1) ,x kR = ∑( 1,
1) V(︰,
1) ( 3)
设备为高清数码摄像机。
2. 2 K-SVD 算法的改进
图 1 为 IMCFR20 数据集中部分牛只 ID 对应的牛脸图
K-SVD 在稀疏编码阶段是通过求解一个稀疏矩阵来
像,可以看出除 ID17 的花纹毛色呈现明显 区 别 外,其 余
对算法进行优化,通常采用 OMP 算法。具体是通过反复迭
ID02,
03, 15 所代表的牛只外形极为相似,只在牛角以
06,
代求解样本向量与字典原子的内积来寻找一个最佳的正交
及毛发的弯曲程度以及其他细节特征上有所区别。除此以
投影进行信号的稀疏逼近。在利用牛脸图像进行牛个体身
相似的养殖环境进一步提升了识别难度,依赖人的主观
外,
份的识别问题上,希望通过输入的牛脸图像尽可能准确地
判断很难对其进行准确识别。
对牛个体进行分类和识别,不需要对原始的牛脸图像进行
ID 02 精准的重构,而对于输入样本的稀疏表达形式提出了不同
要求。因此针对分类与识别问题,使残差尽可能取最小并
ID 03 不是目的,而是需要使稀疏向量的系数尽可能非负。借鉴
文献[12]的思想对 OMP 算法进行改进,为了使负值系数
ID 06
尽可能少出现,在迭代过程中不再选取使内积最大的字典
原子作为最优解,而是保留使系数取最大值的原子,将其
ID 15
余原子去除,进而实现稀疏表示的优化。具体流程如下:
输入: 字典 D,样本 Y,稀疏度 L,迭代次数 N
ID 17
输出: 稀疏矩阵 X
图1 IMCFR20 部分牛脸图像 ( 0)
初始化: 残差 r0 = y,索引集 Λ = Ø,J = 1
2 方 法
过程:
2. 1 K-SVD 算法
1) 计算 r J - 1 与 D 中原子 d j 内积,求取使系数最大的原
K-SVD 算法的提出将 K-Means 与 SVD 进行了有机结
子( P d j 表示在原子 d j 上的投影)
合,
通过得到一个对原始样本进行学习的冗余字典,利用其
〈r ( J - 1) ,d j 〉
原子的线性组合来实现近似表示。对于样本集合 Y =[y1 , λ = argmax ;
2,…,N 1 -〈d j ,
j = 1, Pdj dj 〉
…,y N]∈R n × N ,可以近似描述为 Y≈DX,D =[d1 ,…,d K]∈ 2) 更新索 引 集 和 字 典 原 子: Λ ( J) J = λ,D ( J) J = D (︰,
R n × K 表示过完备字典,X =[x1 ,…,x N]∈R K × N 表示 Y 对应 Λ
( J)
J( 1︰J) ) ;
稀疏系数构成的矩阵。算法可表示为以下问题的优化 3) x( J) = ‖y - D ( J) x‖2 ;
2
〈D,X〉= argmin‖Y - DX‖ s. t. ∀i,‖x i ‖0 ≤L ( 1)
F 4) 更新残差 r ( J) = D ( J) x ( J) ,J = J + 1;
式中 L 为稀疏度,‖Y - DX‖22 为重构误差,即在一定的 5) 若 J > N,
则停止迭代,
否则,
循环步骤( 1) ~ 步骤( 5) 。
稀疏约束下,利用最小化重构误差对 D 进行求解。 3 结果与分析
在求解过程中大致分为三个步骤: 第一步是初始化 实验环境为 CPU: Intel Core i7 —7700K; 内存: 32 GB; 显
D0 ,在 Y 中随机选取 K 个样本对字典进行初始化。第二步 卡: GTX 1080Ti; OS: Ubuntu16. 04; MATLAB 2016a。IMC-
是稀疏编码过程,将式( 1) 的优化问题转换为求解 Y 对应 FR20 数据集中包含 20 头牛的 400 张牛脸图像,样本大小
[11]
稀疏矩阵 X,这里采用 OMP 算法 进行求解,通过不断迭 为 128 × 128。
代计算样本向量与字典原子的内积,选择与信号残差最匹 通过牛脸图像数据集 IMCFR20 对本文算法进行验证。
配的原子,直到满足稀疏度限制。第三步是字典更新过程, 首先进行数据的预处理,将 IMCFR20 数据集中的图像进行
160 传 感 器 与 微 系 统 第 40 卷

灰度变换,针对每个 ID 的样本数据随机选取 70 % 作为训 了 0. 8 % ,可见本文对字典原子数量的改变所造成的结果


练数据,剩余 30 % 作为测试数据。在训练阶段,对于每个 影响波动较小。
输入的训练样本,将 128 × 128 维度下采样为 256 维,将所 4 结 论
256 × 280
有训练样本映射为 R 的矩阵,迭代次数设为 60,稀疏 本文在 K-SVD 算法的基础上,对稀疏编码阶段的字典
度阈 值 为 10,字 典 原 子 K 初 始 设 为 300。由 于 改 变 了 原子选择方式进行了改进,使得改进后的算法更适用于图
K-SVD的稀疏编码过程中字典原子的选取原则,分别测试 像分类与识别问题。在构造的牛脸图像数据集 IMCFR20
改进后的算法与原始 K-SVD 算法在不同迭代次数下的重 上的实验结果表明: 本文算法的牛脸图像识别准确率达到
构误差,结果如图 2 所示。 了 90 % 以上,识别效果较好,对通过图像方式进行牛个体
0.019 5
改进 K-SVD
身份识别问题提供了一种可行的方案。
K-SVD
0.018 5 参考文献:
重构误差

0.017 5 [1] 庞超,何东健,李长悦,等. 基于 RFID 与 WSN 的奶牛养殖溯

0.016 5 源信息采集 与 传 输方 法[J]. 农业 工程 学 报,2011,27 ( 9 ) :

0.015 5 147 - 152.


0 10 20 30 40 50 60
[2] 耿丽微,钱东平,赵春辉. 基于射频技术的奶牛身份识别系
迭代次数
图2 重构误差与迭代次数的关系 统[J]. 农业工程学报, 25( 5) : 137 - 141.
2009,

通过表 1 可以看出将字典原子的选择方式变为保留使 [3] 郭卫,钱东平,王辉,等. 奶牛身份射频识别系统的防冲突技


术[J]. 农业工程学报, 25( 11) : 222 - 225.
2009,
系数最大的原子后,相比原算法的重构性能会有一定下降。
[4] XIA M,CAI C. Cattle face recognition using sparse representation
为了进一步分析验证改进后算法的识别效果,在 IMCFR20
classifier[J]. ICIC Express Letters,Part B: Applications,2012,
数据集上分别对 K-SVD 与改进 K-SVD 算法进行测试,由于
3( 6) : 1499 - 1505.
稀疏度大小与字典原子的不同取值都会对识别结果产生影
[5] 陈娟娟,刘财兴,高月芳,等. 基于改进特征袋模型的奶牛识
响,针对以上两个参数分别进行实验。首先分析稀疏度取
别算法[J]. 计算机应用, 36( 8) : 2346 - 2351.
2016,
值的不同对识别效果的影响,分别选取 L = 2,L = 4,L = 6, [6] 赵凯旋,何东健. 基于卷积神经网络的奶牛个体身份识别方
L = 8,L = 10 进行实验,测试结果如表 1 所示。实验表明, 法[J]. 农业工程学报, 31( 5) : 181 - 187.
2015,
改进后算法的识别率增加 3 % 左右,提升效果较为明显。 [7] 刘杰鑫,姜波,何东健,等. 基于高斯混合模型与 CNN 的奶牛
随着稀疏度的增加,重构误差会不断减小,但识别效果会呈 2018 ( 10) : 29.
个体识别方法研究[J]. 计算机应用与软件,

现先上升后下降的趋势,稀疏度在 L = 6 时识别率最佳。 [8] KUMAR S,


SINGH S K,
ABIDI A I,
et al. Group sparse representa-

表1 不同稀疏度对识别率的影响 tion approach for recognition of cattle on muzzle point images[J].


2017( 12) : 1 - 26.
International Journal of Parallel Programming,
不同 L 取值下的识别率 / %
算法 [9] KUMAR S ,SINGH S K ,SINGH A K . Muzzle point pattern
L =2 L =4 L =6 L =8 L = 10

K-SVD 83. 4 85. 1 86. 9 86. 5 86. 1 based techniques for individual cattle identification[J]. IET

改进 K-SVD 86. 7 88. 2 90. 1 88. 4 89. 0 Image Processing, 11( 10) : 805 - 814.
2017,
[10] AHARON M,ELAD M,BRUCKSTEIN A. K-SVD: An algorithm
分析字典原子数量对识别效果的影响,随机选取每类
for designing overcomplete dictionaries for sparse representa-
牛脸图像中的 16 张用于训练,
4 张用于测试,共20 类。稀疏
tion[J]. IEEE Transactions on Signal Processing, 54( 11) :
2006,
度 L = 6,字典原子数 K 分别取 300,400,500 进行测试,结
4311 - 4322.
果如表 2 所示。 [11] TROPP J A,GILBERT A C. Signal recovery from random
表2 不同数量的字典原子对识别率的影响 measurements via orthogonal matching pursuit[J]. IEEE Trans-
不同 K 取值下的识别率 / % actions on Information Theory, 53( 12) : 4655 - 4666.
2007,
算法
K = 300 K = 400 K = 500 [12] 殷爱菡,姜辉明,张清淼. 改进 OMP 算法在人脸识别中的应
K-SVD 86. 8 87. 3 88. 3 用[J]. 计算机工程, 38( 12) : 146 - 148.
2012,
改进 K-SVD 90. 1 90. 5 90. 9
作者简介:
实验表明,在一定范围内增加字典原子个数可以提升 赵建敏( 1982 - ) ,男,硕士,副教授,研究领域为计算机视觉,
识别效果,当 K = 500 时,本文算法可以达到 90. 9 % ,具有 人工智能。

较好的识别性能。K 在 300 ~ 500 的变化范围内,K-SVD 算 姜世奇( 1994 - ) ,男,通讯作者,硕士研究生,研究方向为图像

法的识别率波动了 1. 5 % ,改进 K-SVD 算法的识别率波动 处理,深度学习,计算机视觉。

You might also like