人脸识别技术二次开发及接口函数
路漫漫其修远兮,吾将上下而求索 - 百度文库 人脸识别接口二次开发包人脸识别接口二次开发包 及函数及函数 说明书说明书 第一部分 产品的性能评价,使用说明,问题等。 第二部分 SDK 函数手册。 第一部分第一部分 一.一.产产品的版权品的版权 本品从底层开始即完全自主知识产权开发,未用任何第三方图像库及GDI 函数库。 更未引用其它公司的人脸识别 SDK 来进行加工与封装。 本品是 VC 开发,但只有极小部分用到了 MFC,大部分 CODE 均为标准 C编写。 二.二.产产品的版本品的版本 SunLightFace. 是网站发布的演示程序,用户可以通过这个程序来测试SDK 的性能。 SunLightFace.dll 是 SDK,其性能技术指标与演示程序是完全相同的。 目前这个版本全称是可见光主动识别版(非红外摄像头,配合识别) 另外还有两个版本可见光被动识别版,红外主动识别版。 三.三.产产品的重要特点品的重要特点 1.人脸检测的高正确率,误检,漏检很少,支持多脸(max32) 。 平面旋转高达 60 度,并带鼻,嘴定位,及眼镜判断等功能。 2.人脸识别的高精度,向用户推荐的识别阀值不仅能适应光线环境的变化,而且有高达 97.18以上的正确率。 带眼镜或头发挡住眉毛都行。 (但黑粗边眼镜的识别率相对低些, 即在较好的识别环境下, 黑粗边眼镜仍是 OK 的,除此之外的眼镜,对识别率没有任何影响) 四.四.如如何使用范例代码何使用范例代码 SunLightFace.dll是按 WINDOWS API的标准调用来生成的动态库, 并提供了 VB,VC,C三类范例代码, 精简扼要, 如果因 VS 版本问题无法打开,可以用其它文件编辑器打开.CPP,.H,.CS,.frm,.bas 文件来进行分析。 五.五.如如何采模板何采模板 1.因为是主动配合识别,最好是采 5 张模板(总量是 10 张) ,正面 1 张,侧面 2 张,上仰下俯各 1 张,偏角不宜 大 (2-3 度即可-微偏 因为你在主动配合识别时不会故意地去偏着头识别, 而是正对识别, 但可能无心偏了一点, 这里要求你“微偏”的目的就是为了和你将来可能的“无心偏了一点“对应),并都眼看着画面中的自己,因为眼 球是定准比对的重要依据,所以无论是采模板还是识别,都眼看着画面中的自己最佳。 2.另外余下的 5 个模板,可以空,用于以后进行动态模板更新 (后面第二部分详解) ,以适应人脸的长期发展变化。 3.采模板时,光线不宜偏亮,也不宜偏暗,适中,并充分地反映出人脸轮廓。这样的标准化模板才能更有效地去 兼容那些人脸偏亮或偏暗的识别时段。要让识别更准确,眼球附近就必须最大可能地清晰鲜明,同时眼球上最好 不要反白光。 4.由于各个摄像头的焦距不同,可能对人脸轮廓的拉伸度也不同,所以,为达到最好的识别率,建议采集与识别 完全用一模一样的摄像头。 5.及时画出采集的人脸模板照片,如果发现其中人眼定位不准确的,建议删除该模板重采,因为这样的模板是对 - 1 - 路漫漫其修远兮,吾将上下而求索 - 百度文库 识别无效的。 六.如何设置相似度阀值六.如何设置相似度阀值 当前版本的人脸检测推荐阀值为 0.55 0.55 当前版本的人脸识别 1CN 推荐阀值为 0.71 0.71 当前版本的人脸识别 1C1 推荐阀值为 0.61 0.61 1.人脸识别或验证最好进行三次,取最大值,更可靠些。 2.1C1 由于有个人 ID 的输入或打卡,所以相似度阀值可略低些。 3.假定每个 ID 都有 5 个模板,且都有一张正面的 BMP 文件,则把所有加入的 ID,用它们对应的 BMP,在内部做一 遍 2 选的 1CN 相互识别。 这样,2 选的结果会输出两个值,第一个为张三的照片与张三的模板的相似度,第二个是与张三最像的人的 模板与张三照片的相似度,我们关注第二个 求出第二个的平均相似度及最高相似度,再参照SDK 的推荐值来共同设定。 比如 SDK 的推荐值0.55 全部互识别的第二个结果的平均相似度0.2 第二个结果的最高相似度0.41 (由于这两个人像) 那么,说明最终阀值可定为0.55 虽然目前取 0.43(比 0.41 多 0.02)的阀值也不会出错,但难保外人来识别时不会错,所以 还是用推荐值好些。 再比如 SDK 的推荐值0.55 全部互识别的第二个结果的平均相似度0.3 第二个结果的最高相似度0.56 (由于这两个人非常像) 那么,说明最终阀值可定为0.58 高于推荐值否则这两个人就可能相互识别错。 六.六.图像格式,大小,人脸大小怎样最佳图像格式,大小,人脸大小怎样最佳 1.图像格式可用 BMP,JPG ,但最好用 BMP,因为最终分析数据还是BMP 的。 2.图像大小推荐用 320*240(240*320 更好) ,最大可支持 1280*1280,但大了会使速度减慢。 3.人脸最佳采模板和识别SIZE 是眼距 40 像素。 七.七.产产品的适用人群品的适用人群 仅对人脸识别而言(即不针对人脸检测) 最适用人群深色眼球,眉毛与眼睛界限分明,鼻尖处明暗分明。 不适用人群眼球颜色非常“浅色”的人脸。(除此外,黑黄蓝绿眼球都是可以的) 年纪限制 老少男女均可识别,无头发可,头发挡住眉毛也可。 佩戴限制戴墨镜不行,戴帽子可以,但不能挡住眼,戴粗黑边眼镜时,识别效果比不戴眼镜稍差,但仍能 识别,其它眼镜不影响识别,而且可以戴眼镜采模板,不带眼镜识别,反之亦可。 八.八.人人脸数据的保存脸数据的保存 1. 一个模板大约需要 1MB 的硬盘空间。 其中含有一张档案式人脸照片,可由SDK 函数读出并画出。 2. 注意查看一个名为 DataBase.ini 的文件,里面可对数据库进行配置。 即可以由用户定制 ADO 连接串,目前主要兼容 Access 和 SQLSERVER 两种数据库。 - 2 - 路漫漫其修远兮,吾将上下而求索 - 百度文库 九.九.如如何鉴别两套人脸识别何鉴别两套人脸识别 SDKSDK 的优劣的优劣 1CN 如果识别出错(把你认成了别人),就意味着1C1 也会错,即这个误认的人用你的 ID 号就能识别通过, 所以,应用 1CN 来比较人脸识别开发包(SDK)的性能,几个人采好模板后,在各种可能性的光线下都能刚 好通过的 1CN 阀值,就是“性能比较阀值”,(各家SDK 的阀值不同,这就相当于让两个SDK 都处于相同的 识别能力水平上。)然后想办法找百人照片,或千人照片,且一个人只能有一张照片,不能重复,越多越 好,以每张照片一个 ID 的方式加入,从而构成大型人脸模板库,然后再一一用这些照片进行 1CN 的 5 选, 当然第 1 名相似度应是 0.99 以上(自身像片),而第2,3,4,5 个相似度其他人的像片,应在“性能比 较阀值”之下否则就是实际上的认错人了,而且差距越大越好,然后统计出这 1000 次操作的平均结果, 就可以知道哪个 SDK 识别能力强了。 十.十.在在 DELPHIDELPHI 下做二次开发的注意事项下做二次开发的注意事项 1. 因为