变异系数怎么算?降维和变异系数提升识别效果

一、图像特征码计算优化方式前一章节的图像特征码提取算法是基于像素点的三元色数值的,有时候,图像少量的像素点差异可能干扰识别结果。有两种算法可以使识别效果更好:

一、图像特征码计算优化方式

前一章节的图像特征码提取算法是基于像素点的三米色数值的,有时候,图像少量的像素点差异可能干扰识别结果。有两种算法可以使识别效果更好:

  1. 将人脸图像大小设置为适当的数值(通常越小越好),这样更能突出人脸的特征,而略去很多干扰项。此外,提取原始特征组后,使用PCA降维技术对原始特征组进行进一步加工,生成最终的特征组,从而更好地表征人脸。
  2. 在标准欧氏距离的基础上乘以权重。有两种计算方式:每区域像素设置不同的权重;设置整体权重,使人脸图像矩阵的差分值均匀化。这里使用第2种方式。

二、变异系数

变异系数是衡量资料中各观测值变异程度的一个统计量。当进行两个或多个资料变异程度的比较时,如果度量单位与平均数相同,可以直接利用标准差来比较。如果单位和(或)平均数不同时,比较其变异程度就不能采用标准差,而需采用标准差与平均数的比值(相对值)来比较。

离散系数指标有:全距(极差)系数、平均差系数、方差系数和标准差系数等。常用的是标准差系数,用CV(Coefficient of Variance)表示。
CV(Coefficient of Variance):标准差与均值的比率。
用公式表示为:CV=σ/μCV=σ/μ

计算公式:

  • 极差(全距)系数:Vr=R/X′Vr=R/X′ ;
  • 平均差系数:Va,d=A.D/X′Va,d=A.D/X′;
  • 方差系数:V方差=方差/X′V方差=方差/X′ ;
  • 标准差系数:V标准差=标准差/X′V标准差=标准差/X′;

其中,X’表示X的平均数。
—-百度百科

变异系数可以消除因为平均数不同在变异程度比较中产生的干扰。变异系数越小,数据离平均值的偏离程度越小;反之,变异系数越大,数据离平均值的偏离程度越大。

这里对变异系数进行改进,将标准差用方差代替,然后将改进的变异系数的倒数作为计算欧氏距离的调节系数,这样做的效果是:将偏离程度较大的数据赋予较小的权重,将偏离程度越小的数据赋予较大的权重中。最后将标准欧氏距离乘以调节权重,从而实现差异平均化,让改进后的欧氏矩阵更好地表征人脸整体差异。

三、代码示例

def get_distance(img,findimg): newsize=(21,21) fimg=cv2.resize(findimg,newsize) img = cv2.resize(img,newsize) my_img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) my_fimg = cv2.cvtColor(fimg, cv2.COLOR_BGR2GRAY) # PCA降维 pcaimg = mlpy.PCA() pcaimg.learn(my_img) pca_img = pcaimg.transform(my_img,k=1) pca_img=pcaimg.transform_inv(pca_img) pcafimg = mlpy.PCA() pcafimg.learn(my_fimg) pca_fimg = pcaimg.transform(my_fimg,k=1) pca_fimg = pcafimg.transform_inv(pca_fimg) # 计算基于整体权重的欧氏距离 return get_EuclideanDistance(pca_img,pca_fimg)

其它部分代码与上一节相同。

运行效果:

Python-OpenCV 干货 人脸辨识2、降维和变异系数提升识别效果

  • 发表于 2021-04-10 13:28
  • 阅读 ( 506 )
  • 分类:互联网

0 条评论

请先 登录 后评论
黑白网络
黑白网络

79736 篇文章

你可能感兴趣的文章

相关问题