1.一种基于特征融合的群养猪身份识别方法,其特征在于,包括以下步骤:
步骤1,对群养猪俯视视频进行分帧处理,采用关键区域最近邻像素比较法选取关键帧,图像增强后利用改进的基于阈值优化的分水岭算法进行猪个体分割,得到七张猪个体图像,其中阈值优化采用改进的果蝇优化算法AOIES-FOA;
步骤2,分别对七张猪个体图像,采用稀疏点多方向描述的尺度不变特征变换算法SMD-SIFT提取猪个体的局部特征,多分块改进的中心对称局部八元模式算法MB-ICSLOP提取猪个体的纹理特征,基于空间分布信息的连通域统计算法提取猪个体的颜色区域块特征;
步骤3,对上述提取的三种特征分别进行归一化后,给每个特征赋予一个权重,并采用改进的杂交育种算法IHBA进行优化,然后对加权特征进行串行融合,最后采用PCA进行降维,提高猪个体图像的识别效率;
所述步骤3中改进的串行加权融合算法具体包括:
1)将归一化后的SMD-SIFT特征、MB-ICSLOP特征和基于空间分布信息的连通域统计特征的特征向量分别定义为f1、f2和f3;
2)通过F=[w1×f1,w2×f2,w3×f3]T获得融合后的特征F,其中w1、w2和w3分别是f1、f2和f3的权重,通过改进的杂交育种算法进行优化;
3)对加权特征进行串行融合,得到1174维特征,此时维数较大,分类速度较慢,选取PCA进行降维以提高分类速度;
所述步骤3中改进的杂交育种算法IHBA具体包括:
3.1)在原杂交操作中引入一个随机扰动因子α,该因子利用公式(10)产生随机值对杂交生成的个体进行轻微扰动,利用公式(11)产生新个体,进而提高个体的活跃性以及算法的局部寻优能力;
α=[max-rand()*(max-min)] (10)公式(10)(11)中,为不育系个体,为保持系个体,为不育系个体,r2、r3为[-1,1]中的随机数,且r2+r3≠0,α为随机扰动因子,max为所需随机值最大值,取值为2,min为所需随机值最小值,取值为-2,即α取值范围为(-2,-1,0,1,2),[]表示取整,rand()取值范围为[0,1];
3.2)针对原自交操作算法寻优速度不高这一缺点,根据公式(12)在算法优化前期设定较大的初始步长,但随着迭代次数的增加,搜索步长逐渐减小;从而因前期搜索范围较大,提高了算法的全局搜索能力,后期搜索步长较小,提高了算法的局部寻优精度;根据公式(13)自交产生新个体;
公式(12)(13)中,Ic为当前迭代次数,c0为控制步长因子c的初始值,表示恢复系自交产生的新个体,为恢复系中随机选择的个体,xbest为当前全局最优个体;
步骤4,采用基于改进杂交育种算法的加权集成分类器进行训练,首先采用按比例有放回的抽样方式将数据集生成3个不同的训练子集,通过Kappa值度量出差异性最大的3个分类器进行并行训练,然后采用改进的杂交育种算法对分类器的权重进行优化,得到最优权重组合,最后通过加权投票法来识别猪个体的身份。
2.根据权利要求1所述一种基于特征融合的群养猪身份识别方法,其特征在于,步骤1中关键区域最近邻像素比较法选取关键帧具体包括:对群养猪视频进行分帧后,根据分帧顺序取出相邻的2帧图像,主要针对饮水区域猪的身份识别,在2帧图像中选定相同饮水区域,计算该区域RGB三分量对应的像素差值和,如果该像素差值和小于设定阈值,则2帧图像相似性高,剔除后一帧图像,反之,保存后一帧图像,即将相似度低的图像作为关键帧。
3.根据权利要求1所述一种基于特征融合的群养猪身份识别方法,其特征在于,所述步骤1中基于改进的阈值优化的分水岭算法具体包括:首先利用改进的果蝇优化算法搜索最优阈值,进行阈值分割,得到二值化图像;然后通过形态学运算和距离变换得到背景和前景区域;标记背景与前景区域相交的部分;最后采用分水岭算法对图像进一步分割,得到最终分割结果;
所述改进的果蝇优化算法AOIES-FOA具体包括:
1)根据公式(1)将原算法的固定步长改进为根据迭代次数调整搜索步长,使得算法在寻优前期具备较大的搜索步长进行全局性的搜索,避免较早地陷入局部最优,寻优后期随着迭代次数的增加搜索步长减小,提高算法的局部搜索能力,公式(1)中,DL为搜索步长,D为初始步长,Ic为当前迭代次数,Imax为最大迭代次数,b为偏移量;
2)选择合适的适应度函数提高寻优精度,图像的二维信息总熵和二维类间方差是评判图像分割的两个标准,选择将两者进行加权融合作为浓度适应度函数,如公式(2)所示:公式(2)中,F(s,t)为浓度适应度值,为图像的二维信息总熵,O(s,t)为图像的二维类间方差值,Si为味道浓度判定值,i为当前寻优次数,ω为权重值,r为系数。
4.根据权利要求1所述一种基于特征融合的群养猪身份识别方法,其特征在于,所述步骤2中稀疏点多方向描述的尺度不变特征变换算法具体包括:
2.1)为了扩大关键点的稀疏度,使关键点分布得更均匀,设定一个3*3的抑制区域,根据公式(3)计算该区域内所有关键点的Harris响应值RM,剔除响应值小于设定阈值的关键点,保留最稳定的关键点:公式(3)中,M为协方差矩阵,P为图像块,trace为求矩阵的迹,Ix为关键点沿x方向的梯度值,Iy为关键点沿y方向的梯度值,RM为Harris响应值,k为系数,取值0.5;
2.2)在原算法对关键点描述的基础上增加了对角线像素的灰度变化特征,有利于提取猪个体关键点的更多方向特征,增加了特征的细节信息,具体步骤如下:I)根据公式(4)计算像素(x,y)两条对角线方向的梯度;
Gx(x,y)=I(x+1,y+1)-I(x-1,y-1),Gy(x,y)=I(x-1,y+1)-I(x+1,y-1) (4)公式(4)中,Gx(x,y)、Gy(x,y)为两条对角线方向的梯度,I(x,y)为像素(x,y)的值;
II)根据公式(5)计算梯度幅值M(x,y)和方向值θ(x,y);
III)然后将4×4个窗口内的像素进行8个方向的直方图统计,形成一个128维的特征向量;
2.3)将原SIFT特征向量和通过计算对角线像素变化得到的特征向量进行串联,最终得到关键点的256维描述子。
5.根据权利要求1所述一种基于特征融合的群养猪身份识别方法,其特征在于,所述步骤2中多分块改进的中心对称局部八元模式算法具体包括:
1)滑动9*9的窗口提取特征,将窗口均分成9个大小为3*3像素的子窗口,计算每个子窗口的平均值,得到大小为3*3像素的均值图像块;
2)对均值图像块进行MB-ICSLOP编码计算,MB-ICSLOP在比较中心像素与相邻像素灰度值的基础上,采用两位二进制编码和三位二进制编码,增加了邻域像素点之间的灰度值对比以及四个对角线方向上中心对称像素点的灰度值对比,有效提取了细微变化的纹理特征,有利于猪个体的识别,具体如公式(6)-(9)所示:其中,s(i)=ν(f(p2i-p2i+1),f(p2i+1-p2i+2))2i(7)t(i)=μ(f(pi-pc),f(pi+4-pc),f(pi-pi+4))2i (8)其中,BM-ICSLOP(C)为当前像素C的BM-ICSLOP编码值,s(i)为邻域像素值比较的编码值,t(i)为对角线像素值比较的编码值,ν(a,b)表示两位二进制编码值,μ(a,b,c)表示三位二进制编码值,f(x)为像素比较函数,pi为邻域像素值,pc为中心像素值;
3)在特征提取过程中,一个MB-ICSLOP算子在9*9像素的窗口下能产生150种模式,因此单只猪图像可提取150维MB-ICSLOP特征,降低特征维数的同时不会缺失细节信息。
6.根据权利要求1所述一种基于特征融合的群养猪身份识别方法,其特征在于,所述步骤2中基于空间分布信息的连通域统计算法提取猪个体的颜色区域块特征具体包括:颜色直方图特征是对全局颜色特征的统计,但缺少颜色的空间分布信息;为了改进这一点,采用局部颜色范围值构成的连通区域的4个统计特征,来描述图像中该颜色范围值的像素分布信息,具体步骤如下:定义连通域:若两个像素点之间符合八邻域相邻的特征,并且像素值大小是相同的,则认为两个像素点是属于一个连通域;
将R、G、B分量中颜色值{0,1,2,…,255}按顺序划分为64个范围,每个范围有4个颜色值,根据连通域定义找到每个颜色范围值的连通域图像,该图像中所有连通域均做区分标记;
统计每个连通域图像的最大连通域的像素数CR1、第二大连通域的像素数CR2、所有连通域的个数NCR和连通域的密度ρCR,每个连通域图像得到4维统计特征;
将R、G、B各分量中64个颜色范围值生成的连通域统计特征级联,可得到64*4*3=768维的连通域统计特征,该特征能够更好地反映出颜色的空间信息。
7.根据权利要求1所述一种基于特征融合的群养猪身份识别方法,其特征在于,所述步骤4中采用基于改进杂交育种算法的加权集成分类器进行训练,具体包括:
4.1对原始训练集进行按比例有放回的抽样,生成3个大小相同的训练子集训练基分类器;
4.2通过计算Kappa值度量基分类器的差异性,当选择KNN、SVM和Bayes这3种分类器时,差异性最大;
4.3通过加权投票法来识别猪个体的身份,给每个基分类器赋予一个权重,通过改进的杂交育种算法进行优化,将基分类器识别出的相同结果加权求和,选择最大的结果作为猪个体的最终身份。
8.根据权利要求1所述一种基于特征融合的群养猪身份识别方法,其特征在于,所述步骤4中按比例有放回的抽样具体包括:按比例有放回的抽样是针对原Bootstrap抽样技术有可能致使原训练集中某些训练数据始终未被抽取这一缺点提出的,假设原训练集有N个样本,需要生成m个训练子集,每个子集需要n个训练样本,其中n>(N/m),具体步骤如下:将原训练集平均生成m份分配到每个训练子集中;
子集中剩余的(n-N/m)个样本通过对原训练集采取有放回的抽样获得,上述原训练集要求除去当前子集中平均分配到的训练样本,最后生成m个大小相同的训练子集,如此便能保证所有训练数据都能被抽到训练。