虹软人脸识别sdk踩坑记录贴

 

一、虹软sdk过期问题

虹软虽然让我们免费试用sdk,但sdk下载下来只能在一年之内试用,超过一年则视为过期,要在虹软官网重新下载sdk和替换秘钥.虹软的这种措施,估计是为了后面收费做打算吧.但这种机制折腾起来真的很蛋疼.一个sdk包体积大约40M吧,如果需要批量替换,流量哪个遭得住哇.

目前想到一个思路,把系统的时间改了,让系统时间永远在有效时间内.这样就避免的了虹软sdk过期而不工作的问题.

二、虹软sdk2.0人脸检测问题

听说2.0在速度方面有很大的提升,于是乎就去下载下来进行尝试.发现2.0在人脸检测的速度上不仅很慢还容易错识别.之前在办公室摆了一盆儿花,不知不觉的被虹软识别了好几次人脸.妈耶,吓死我了.晚上就去求一个附身符.

经过测试在windows平台,CPU:I3-4170,RAM:16G 1000轮循环测试,平均检测速度为130ms.

解决方案:可以采用1.0的人脸检测或者用opencv进行检测.但2.0 在夜晚检测人脸效果还不错,还是要权衡一下.

三、虹软sdk2.0 png格式图片无法检测人脸

在项目上有个需求,推送过来的图片要加载到人脸库中去.于是就遇到了这种问题.png格式的图片死活检测不出人脸,只有转成jpg格式才能检测出.

解决方案:在图片加载到内存之前先判断图片格式,如果是png格式,先转换为jpg格式.注意.如果图片已经变成了bufferedImage对象,那么是无法获取图片格式信息的.

四、虹软sdk不能并发使用

曾经试过一次,jvm直接crash掉,挺真实的.但是在一些场景不得不并发操作.

解决方案:把虹软engine对象池化,每次用的时候在对象池中去取,这样就保证了一条线程一个对象.但值得注意是,虹软1.0 engine 全部初始化完毕,需要40+M的内存,请控制好内存.

不断完善中….