导语
腾讯云人脸识别产品基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、五官定位、人脸搜索、人脸比对、人脸验证、人员查重、静态活体检测等多种功能,主要以公有云API的方式,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于智慧零售、智慧社区、在线娱乐、智慧楼宇、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
为了让大家更好的体验产品功能和产品效果,人脸识别官网提供了针对“人脸检测与分析”、“五官定位”、“人脸比对”、“人脸搜索”的在线体验demo,方便大家使用:
此外,大家也可以在API Exploer在线工具中,体验全量接口的调用,每个接口每个月有一定的免费调用额度。
案例背景
用户在使用人脸识别各类功能接口时,入参必填项一定包含“图片”这一选项,支持base64和URL链接两种方式传入。某些特殊情况,会导致接口返回“图片中没有人脸”的返回值,很多用户会疑惑,为什么人眼视觉的确看到图片中是存在人脸的,而产品识别不出来呢?
原因分析
整体来说,导致这种错误码的原因一共有三种:
1.接口参数设置
在接口入参中,有MinFaceSize的入参,代表“人脸长和宽的最小尺寸,单位为像素。默认值为34。建议不低于34。低于MinFaceSize值的人脸不会被检测”。因此我们知道,如果图片中的真实人脸大小小于了设置的MinFaceSize,会导致该人脸被过滤,从而返回“图片中没有人脸”。
2.图片本身问题
众所周知,现在任何人脸识别产品都无法准确识别到所有人脸图片,一方面是模型训练数据的有限性,另一方是针对待识别图片相对严苛的要求。如果下列某方面被命中,可能导致无法识别人脸: (1)图片质量较差。包括图片是否清晰,图片是否过曝、图片是否过暗、图片是否存在亮点、图片是否存在明显色偏(eg:整体偏绿)等。
(2)人脸质量较差。包括人脸是否被大面积遮挡,人脸的Pitch俯仰角(正负25度以内)、Yaw偏航角(正负80度以内)、Roll翻滚角(正负40度以内)角度是否合理。
(3)图片被旋转却无exif信息。当图片存在旋转,而且没有exif信息来保证照片整体保持正向,会导致“图片中没有人脸”的。
3.引擎算法问题
如果上述两类问题均不存在,那就该图片很可能是算法本身的badcase。这个需要优化模型和算法,尽量保证识别的准确性。
解决方案
1.接口参数设置
检测是否是因为设置了MinFaceSize导致“图片中没有人脸”: 首先,可以利用“人脸检测与分析”在线接口调用,检测图片中人脸大小,即Width与Height两个出参,分别代表人脸宽度和长度。
其次,观察用户入参设置,MinFaceSize是否大于min{Width, Height}。如果大于,会导致该人脸被过滤。
2.图片本身问题
(1)针对图片质量较差,应保证图片清晰,无过曝、无过暗、无明显亮点、无存在明显色偏(eg:整体偏绿)等。
(2)针对人脸质量较差,应尽量保证图片中人脸不被大面积遮挡,人脸的Pitch俯仰角在正负25度以内、Yaw偏航角在正负80度以内、Roll翻滚角在正负40度以内。
(3)针对图片旋转却无exif信息。有两种解决方案:
- 【麻烦的方法一】增加图片exif信息,并保证处理后的图片中人脸正向。这里分享一个图片exif在线查看工具,用以查看图片是否携带exif信息。再分享一个exif修改工具,可搜索“MagicEXIF元数据编辑器”,以此完成图片修改操作。
。【简洁的方法二】接口入参“NeedRotateDetection”设置为1。现在人脸识别从产品功能层次支持对旋转人脸的识别,只是会带来一定的识别耗时增加的影响。接口入参介绍如下:
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
NeedRotateDetection | 否 | Integer | 是否开启图片旋转识别支持。0为不开启,1为开启。默认为0。本参数的作用为,当图片中的人脸被旋转且图片没有exif信息时,如果不开启图片旋转识别支持则无法正确检测、识别图片中的人脸。若您确认图片包含exif信息或者您确认输入图中人脸不会出现被旋转情况,请不要开启本参数。开启后,整体耗时将可能增加数百毫秒 |
3.引擎算法问题
针对算法badcase,现在只能等待算法的优化,这是AI行业的共识,而优化算法的耗时一般较长。这里建议一旦出现badcase,可以多试下其他照片,例如换个角度、换个背景、甚至换个手机(之前遇到一个前置摄像头自带超强美颜的手机,无论怎么拍摄都无法识别出人脸,最后换了个手机拍摄,解决问题)。
总结
人脸识别作为AI领域最为成熟、商业化也作为广阔的方向,一直在蓬勃发展的过程中。腾讯云的人脸识别功能丰富,服务稳定,欢迎大家使用。当然,如果大家遇到badcase,也请对行业对产品多包容一些。