问题描述
在开发某个项目时,需要用到虹软人脸识别技术,故而有了本次问题。
笔者发现在项目中,使用了虹软人脸注册和比对的方式。因为一些历史因素。笔者的项目是从前同事那里承接过来的。使用的是使用虹软提取人脸中的特征,保存这些特征到数据库中,并存储在内存中,当新用户录入时,需要进行人脸的比对时再提取新的人脸信息,遍历比对这些人脸特征信息,选择最高相似度的人脸(当然也需要高过一定的阈值)返回。
现状问题
使用中发现,项目中注册时提取人脸特征使用的是Register模式,然后人脸比对时也使用Register模式,这种情况下,在window和linux SDK下很容易就出现了相似度达到0.80,0.90的人脸。但是这些人脸放到同事的Android SDK中,往往相似度只有0.6,0.7的样子,关键在Andriod SDK时,不管是使用Register还是Recognize模式,识别出来的结果都是大差不差。但是在java的window64和linux64中,不管是注册使用Register,比对使用Register还是注册使用Register,比对使用Recoginze模式,都会发现很高的相似度。
解决方案
最终,笔者在注册和比对时都适用Recognize模式,相似度使用0.95的情况下,初步解决了这个问题。