环境:
win7 以上 VS2013 以上
sdk 版本:ArcFace v2.0
x86 x64 平台 Debug、Release 配置都已通过编译
下载地址:https://github.com/ArcsoftEsc…
配置过程:
到虹软官网下载 SDK2.0 版本,点击下载
解压下载的 x86 或 x64 的 zip 包,本 Demo 以 x64 为例
选择平台,如:,将 libarcsoft_face.dll 和 libarcsoft_face_engine.dll 放到 binx64Debug 下
修改工程下 App.config 配置文件中的 APP_ID 和对应的 SDKKEY64 的值
点击启动或者 F5 启动;
其他详细信息请阅读项目中 doc 目录下的说明文档;
常见问题:1. 后引擎初始化失败
(1) 请选择对应的平台,如 x64,x86
(2) 删除 bin 下面对应的 asf_install.dat,freesdk_132512.dat;
(3) 请确保 App.config 下的 appid,和 appkey 与当前 sdk 一一对应。
2.SDK 支持那些格式的图片人脸检测?
目前 SDK 支持的图片格式有 jpg,jpeg,png,bmp 等。
3. 使用人脸检测功能对图片大小有要求吗?
推荐的图片大小最大不要超过 2M,因为图片过大会使人脸检测的效率不理想,当然图片也不宜过小,否则会导致无法检测到人脸。
4. 使用人脸识别引擎提取到的人脸特征信息是什么?
人脸特征信息是从图片中的人脸上提取的人脸特征点,是 byte[] 数组格式。
5.SDK 人脸比对的阈值设为多少合适?
推荐值为 0.8,用户可根据不同场景适当调整阈值。
6. 可不可以将人脸特征信息保存起来,等需要进行人脸比对的时候直接拿保存好的人脸特征进行比对?
可以,当人脸个数比较多时推荐先存储起来,在使用时直接进行比对,这样可以大大提高比对效率。存入数据库时,请以 Blob 的格式进行存储,不能以 string 或其他格式存储。
7. 在.Net 项目中出现堆栈溢出问题, 如何解决?
.Net 平台设置的默认堆栈大小为 256KB,SDK 中需要的大小为 512KB 以上,推荐调整堆栈的方法为:
new Thread(new ThreadStart(delegate {
ASF_MultiFaceInfo multiFaceInfo = FaceUtil.DetectFace(pEngine, imageInfo);
}), 1024 * 512).Start();
8.X86 模式下批量注册人脸有内存溢出或图片空指针
请增加虚拟内存或每次批量注册人脸控制在 20 张图片范围内
9. 图片中有人脸,但是检测时未检测到人脸
(1) 请调整 detectFaceScaleVal 的值;
(2) 请确认图片的宽度是否为 4 的倍数;
(3) 请确认图片是否通过 ImageUtil.ReadBMP 方法进行数据调整。
感谢 虹软提供免费离线的人脸识别 SDK