.背景
人脸识别实施过程中,我们发现拿某一省训练出来的模型在其他省份应用时,性能有约1.3个点的下降,(从99.6降到98.3),因此专门进行了一段时间的优化工作。

2.思路
2.1.数据维度
比较容易想到的,通常效果也会很明显的手段就是添加实施省份的数据,但是由于信息安全问题,一些省份的数据是拿不到的,因此这个方式暂时搁浅。
2.2.数据预处理
另外一个方法就是在数据预处理阶段做工作。结合平时的经验,可以从人脸对准、光线补偿、灰度变换、直方图均衡化、归一化、滤波(图片的平滑操作以消除噪声)、锐化角度做一些工作。

3.具体实施过程
3.1.直方图均衡化
使用opencv功能实现。
3.2.人脸对准
首先检测5点位置,然后扶正。
3.3.滤波
实现了双边滤波、均值滤波、高斯滤波、中值滤波,但是后3种方式处理后图片非常模糊,未进行后续测试。
3.4.明度和饱和度调节
首先挑选了部分脸部区域比较暗的图片,数量在130+,通过实验不同参数,在130+组照片中,对准确度有~1.7个点的提升。
3.5.Retinex图像增强
基于Retinex的图像增强的目的就是从原始图像S中估计出光照L,从而分解出R,消除光照不均的影响,以改善图像的视觉效果,正如人类视觉系统那样。Retinex算法,从SSR(单尺度Retinex)到MSR(多尺度Retinex)以及到最常用的MSRCR(带颜色恢复的多尺度Retinex)。MSRCR算法利用彩色恢复因子C,调节原始图像中3个颜色通道之间的比例关系,从而把相对较暗区域的信息凸显出来,达到了消除图像色彩失真的缺陷。

4.结果

见下表:

Opencv java 人脸识别怎么提高 opencv人脸识别优化_人脸识别

挑选部分比较暗的图片进行测试:

Opencv java 人脸识别怎么提高 opencv人脸识别优化_图像增强_02

5.结果说明:
(1)大批量测试下,只有人脸校正对结果有正影响,其他都有下降。其中调整明度和饱和度在小批量下有提升效果,大批量效果下降的原因可能是小批量测试下设定的阈值有局限性,不适合在大数据量测试。重新调节了一下参数,有0.1个点的提升。

(2)几种方式,包括直方图均衡化、滤波、图像增强、明度和饱和度调节应该应用在某些条件下的图片,对一些质量较好的图片不应该直接使用。(具体应用的条件后续继续探索)