人脸识别

    概览

    快速导览

    获得支持

    如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

    • 在百度云控制台内 提交工单,咨询问题类型请选择人工智能服务
    • 如有需要讨论的疑问,欢迎进入 AI社区 与其他开发者们一同交流。

    离线识别SDK是一个刚刚来到市场的小家伙,还有很多不足,请各位开发大大不吝指正批评,我们会努力快速优化,做到更好。

    SDK基础信息介绍

    产品概述

    人脸离线识别SDK,包含人脸采集、活体检测、人脸对比/识别、人脸库管理等能力,并全部离线化、本地化。此SDK一经授权激活,可完全在无网环境下工作,所有数据皆在设备本地运行处理,可根据业务需要进行灵活的上层业务开发。核心能力分布如下图所示,后文会详细介绍。

    适用场景特点

    • 网络:无网、局域网等情况,无法连接公网。如政府单位、金融保险、教育机构等。
    • 安全:行业特点所带来的人脸数据敏感性,即使可以连接公网也不可请求。
    • 速度:由于各地网络线路、机房部署等诸多原因,网络请求速度存在不可控因素。
    • 稳定:需要尽可能避免网络抖动、机房故障等影响,进一步控制可用性影响因素。

    规格信息

    • 包大小:~ 100M(包含全部功能,可根据需要自定义剪裁)
    • 最小人脸检测大小:30px * 30px
    • 可识别人脸角度:yaw ≤ ±30°, pitch ≤ ±30°
    • 检测速度:70ms 720p*
    • 追踪速度:20ms 720p*
    • 人脸检测耗时:< 100ms
    • RGB图片特征抽取耗时:< 150ms
    • RGB活体检测耗时:< 100ms
    • 近红外活体检测耗时:< 20ms
    • 3D结构光活体检测耗时:< 10ms
    • 5万本地人脸库检索速度:< 20ms

    如RK3288,检测+活体+识别全流程耗时 < 300ms

    备注:以上指标,以RK3288作为参考,由最新版SDK运行在真实设备上,采用真实数据集所得,但算法性能受实际运行设备、实际数据集等情况影响,以上数字仅供参考。

    兼容性

    Android 4.4+

    授权方式

    按设备授权

    离线识别SDK授权方式为以设备维度为主,每台硬件设备需要一个独立的授权,此授权的校验是基于设备的硬件指纹(指纹的获取SDK初始化时会自动读取并展示),被授权的设备,将在有效期内可以运行SDK。

    重新拉取授权的情况:设备授权不变,仅需要重新激活而已。

    • 删除SDK或基于SDK开发的应用
    • 刷安卓系统

    授权失效的情况:需要重新购买序列号,之前的序列号失效。

    • 激活一台设备后,此设备硬件变更
    • 硬件损坏

    序列号

    序列号为管理授权的依据。每台被授权的设备,都将对应一个序列号,用于标识对应的设备信息及授权记录。序列号的形式为16位随机英文数字组合,如:3G59-M5JK-889A-7LQA。您在管理后台购买SDK授权时,购买成功后系统将会发放对应数量的序列号。序列号不限制平台版本,任何开发平台的离线SDK,都可以使用此序列号激活。序列号不限制账号,可供任何设备激活使用。

    激活

    已购买的序列号,是用于激活的唯一凭证,激活流程主要是将序列号与具体的硬件进行绑定(硬件指纹),从而生成对应硬件设备的授权文件(License),SDK运行前,将会校验授权文件是否和实际硬件信息相匹配。

    注意:激活时,设备系统时间需要和当前时间一致,如果差距太大(例如偏差5min以上),激活则无法完成。

    联网激活

    此种激活方式,适用于设备可首次联网的情况,优势在于激活过程极为简单。您只需将SDK安装到需要激活的设备上,然后填写已经购买的序列号,在界面上点击激活即可(为使用方便,我们为您设计了一个简单的激活用户界面)

    1. 获取序列号:从管理后台购买获取序列号。
    2. SDK中填写序列号:将序列号填写到SDK的可视化界面中。
    3. 启动激活:点击「激活」按钮。
    4. SDK自动激活:SDK自动拉取授权文件并完成授权,激活完毕。

    如激活成功,将会立即在界面上有明确的弹窗提示,请留意查看;如激活失败,也会反馈具体的错误信息。

    离线激活(安卓后续版本支持)

    此种激活方式,适用于设备完全不可联网的情况,优势在于可避免联网激活,满足业务对网络的严格要求,以及设备批量注册需求。您需要在后台配置好硬件指纹并完成和序列号的绑定,然后将授权文件放到SDK的指定位置。

    1. 获取序列号:从管理后台购买获取序列号。
    2. 采集硬件指纹:将SDK置于设备上,运行激活程序,获取硬件指纹。
    3. 配置授权:在后台将硬件指纹绑定到具体序列号上。
    4. 下载授权文件:绑定成功后下载授权文件。
    5. 设备激活:将授权文件放到SDK中,并初始化SDK完成授权。

    授权有效期

    申请通过后,每个账户给2个测试序列号,用于激活及SDK试用,有效期为自激活日期后的3个月。这两个序列号在有效期内完全免费,您可以用于进行产品试用。试用期到期后也可以在后台申请延期,填写具体延期理由即可。

    正式购买

    正式购买的序列号,试用期限为永久有效。此「永久」是指绑定到具体设备维度,但如已绑定的硬件设备变更后,授权则可能会失效。

    定价方式

    离线SDK的授权基于设备维度,每个序列号仅可以授权一台设备。每个账号购买的序列号会累计计算,累计购买量越多,单价越便宜。具体如下所示:

    累计购买授权数量 每个授权单价
    0~1000 299元/个
    1001~5000 249元/个
    >5000 199元/个

    立即去购买

    核心功能

    离线人脸检测与追踪

    可在设备端,离线实时检测视频流中的人脸。同时支持处理静态图片或者视频流,并对当前检测到的人脸持续跟踪,动态定位人脸轮廓,稳定贴合人脸。

    离线质量控制

    在人脸检测及追踪过程中,实时校验人脸的姿态角度、遮挡、清晰度、光照条件,符合质量条件的人脸图片才会被采集。

    离线人脸采集

    针对视频流实时完成人脸图片采集,并输出满足质量过滤条件的人脸图片,可自定义采集人脸大小,采集频率,采集质量等设置。

    离线RGB可见光活体检测

    针对视频流/图片,通过采集人像的破绽(摩尔纹、成像畸形等)来判断目标对象是否为活体,可有效防止屏幕二次翻拍等作弊攻击,可使用单张或多张判断逻辑。

    离线NIR近红外活体检测

    针对视频流/图片,利用近红外成像原理,实现夜间或无自然光条件下的活体判断。其成像特点(如屏幕无法成像,不同材质反射率不同等)可以实现高鲁棒性的活体判断。

    离线Depth深度图像(3D结构光)活体检测

    通过3D建模判断目标对象是否为活体,基于3D结构光成像原理,可强效防御图片、视频、屏幕、模具等攻击。

    离线1:1对比

    提供本地化的1:1人脸对比功能,高鲁棒性算法,可对应各种姿态、肤色、光照等场景,可有效应用于人证比对、身份核验等场景。

    示例工程中包含:

    • 图片与图片的比对:两张人脸图片的1:1对比,并返回相似度分值。
    • 图片与视频流比对:一张预设的人脸图片,和摄像头实时采集的符合条件的人脸图片进行对比。

    离线1:N搜索

    本地数据库中保留所有人脸特征值(如需要保留原图,可根据业务需要自行修改工程)。

    • 视频流采集的人脸在人脸库中搜索:视频流中实时采集人脸,并与人脸库中预设的人脸库进行一一对比,返回相似度最高的user及对应分值。

    离线人脸库管理

    人脸数量不做上限,可根据业务需要适当调整,支持人脸库、人脸组、用户、Face几个维度的增删改查设置。

    业务应用策略

    通用流程概述

    如上图所示,人脸识别的核心业务流程可以分为三个步骤。

    1. 检测采集:通过视频流实时检测跟踪,并采集到符合质量要求的人脸图片,用于后续的识别。
    2. 活体判断:为可选步骤,主要保障业务操作者为真人,避免业务作弊。加上这步的校验,即只有满足活体判断通过,人脸图片才会被采集。
    3. 对比识别:1:1对比主要是判断「你是你」,用于核实身份的真实性;1:N搜索主要判断「你是谁」,用于明确身份的具体所属。

    活体检测

    活体基础原理

    • RGB可见光活体:主要基于图片破绽,判断目标对象是否为活体。例如图像中的屏幕反光、成像畸形等,最主要的应用情形为屏幕的二次翻拍等攻击防御。此种活体对于待检测图片的要求,主要需要满足画面中除了人脸以外,要尽可能保留一些背景内容,用于查找破绽,通常建议人脸与屏幕的长宽比为1:3。为控制达到此比例,建议通过调整最小检测人脸参数,控制采集的人脸不可过大,避免人脸面积占比过高,而导致图片中没有多少背景信息。同时RGB活体受光线影响较大,所以在强光、暗光等场景,容易数值波动较大,主要影响的是「通过率」,产品策略上需要通过适当的补光、使用宽动态镜头抵消逆光等方式缓解。
    • NIR近红外活体:主要基于近红外光线反射成像原理,通过人脸呈现来判断是否为活体。即使是夜间或者没有自然光的情况下,依然可以判断活体。因为其成像特点,对于屏幕、图片等攻击形式,基本可以达到近似于100%的活体防御。同时近红外设备的成本,相对性价比更高。
    • Depth深度活体(3D结构光):结构光原理是通过主动光发射,在物体上形成光栅,并接受此信息进行活体分析。同样可以不需要自然光。3D结构光的成像更为稳定,抗攻击能力更强,对图像噪声的抗干扰能力也更强,是相对更加安全和稳定的方案,但相应的硬件设备造价也较高,需要根据实际业务成本预算,进行综合考虑。

    以上,无论活体是否可以通过,我们业务的最终目的,还是要进行「对比识别」,所以拿到合适的RGB图像还是最为关键,保障符合条件的RGB图像获取也是需要在活体判断同时,最为需要关注的事情。

    在实际业务场景中,需要根据场景特点,灵活组合使用以上几种活体方案。当然,实际业务中,没有绝对100%的安全,在应用过程中,还需要根据业务流程特点,指定一系列的辅助措施,如证件信息读取、密码、其他生物特征识别等,达到刚安全的核验。

    产品应用策略

    活体判断逻辑简单理解为:满足活体条件才可以采集图片,否则一直反复判断,直到满足活体条件为止。因为我们最终送去识别的图片是RGB图片,所以需要保证活体通过时,在同一时间采集RGB图片,才可真正防止作弊攻击。当多种活体叠加使用时,需要满足所有活体都通过,才能出发此操作,如果有任一活体没有通过,都不可进入识别步骤。

    场景及应用方案

    • 通行场景:此场景通常保障通行速度为主,确保不影响通行秩序和效率。所以建议无需使用三重活体检测,可仅用NIR活体或Depth活体,保障效率同时仍可保证安全性。
    • 身份核验场景:此场景通常保障业务安全性为主,可尽可能提供更加安全的活体方案。如RGB+NIR,或者RGB+Depth,乃至RGB+NIR+Depth,最大程度确保对攻击的拒绝率较高。
    • 强光/暗光场景:光线较强的场景,RGB活体会受影响比较严重,建议使用NIR或者Depth活体,同时尽量通过产品策略避免这两种情况的光线,例如添加补光灯、配备遮光板等。

    应用方案及模组选择

    • 无需活体:如有人值守的场景下,活体检测并无太大的必要(活体检测也会增加额外的业务耗时),现有设备的单目USB摄像头即可。
    • 仅用RGB可见光活体:如果您的设备已经配备了USB单目摄像头,则无需更换,输出的RGB图像可直接用于RGB可见光活体算法识别。
    • RGB可见光+NIR近红外活体:需要配备能够同时获取RGB、NIR近红外数据的镜头使用。
    • RGB可见光+Depth深度活体:需要配备能够同时获取RGB、Depth深度图像数据的镜头使用。
    • RGB可见光+NIR近红外+Depth深度活体:此种方式安全度最高,目前SDK正在模组适配中,后续会陆续推出已适配的模组方案,敬请期待。

    指标

    活体检测存在几个标准的指标,如下所示:

    • 拒绝率(TRR):如99%,代表100次作弊假体攻击,会有99次被拒绝。
    • 误拒率(FRR):如0.5%,指1000次真人请求,会有5次因为活体分数低于阈值被错误拒绝。
    • 通过率(TAR):如99%,指100次真人请求,会有99次因为活体分数高于阈值而通过。
    • 阈值(Threshold):高于此数值,则可判断为活体。

    温馨提示:此SDK涉及多种离线活体检测模型,加上镜头模组效果各异,使用环境也较为复杂,以下给出综合测试值,仅供参考:

    • 拒绝率:> 99.5%
    • 误拒率:< 1%
    • 通过率:> 99%

    阈值选择推荐

    活体分值区间为[0~1],大部分情况的活体攻击,活体分值近似于接近0.0,建议阈值如下,高于此阈值的即可判断为活体。

    • RGB可见光活体:0.8
    • NIR近红外活体:0.8
    • Depth深度活体(3D结构光):0.8

    人脸1:1对比

    人脸对比分为两种常见形态,具体如下:

    对比类型:图片vs图片

    如果有两张待对比的图片(如证件图片、以事先获取到的人脸生活照等),则可以直接通过离线SDK进行对比,业务流程如下图所示:

    对比类型:实时视频流vs图片

    这是最为常见的1:1对比类型,一张事先获取的图片(通常为身份证芯片照、证件照片等),与现场人脸采集的图片进行对比。如果需要为无人看守,则需要配备活体检测保障业务真实性和安全性。

    人脸1:N搜索

    将需要识别的人脸图片集注册到本地人脸库中,当有用户需要识别身份时,从视频流中实时采集人脸图片,与人脸库中的人脸集合对比,得到搜索结果。如果需要为无人看守,则需要配备活体检测保障业务真实性和安全性。

    设备选型

    镜头模组选择

    1.4.1.1 无活体或仅用RGB单目活体

    uvc免驱单目USB摄像头,推荐视派尔单目摄像头,默认为3mm焦距镜头,可以选择6mm镜头,可以检测识别更远的人脸。

    1.4.1.2 RGB可见光+NIR近红外活体

    推荐使用如下品牌的近红外摄像头,可根据场景举例选择合适焦距摄像头。

    • 迪威泰DV-BD4044S305AD[产品规格书];联系人:杨先生;联系电话:18643209187
    • 迪威泰DV-BD4053S305AD[产品规格书];联系人:杨先生;联系电话:18643209187
    • 视派尔C-EP35WDLDIR[产品规格书];联系人:焦先生;联系电话:18676660044

    NIR近红外实际检测效果回显示例:

    1.4.1.3 RGB可见光+Depth深度活体(3D结构光)

    推荐使用如下品牌的深度摄像头,可根据场景举例选择合适焦距摄像头。

    • 奥比中光Astra Mini / Mini S[产品规格书];联系人:牛妍;联系电话:13571984079;邮箱:niuyan@orbbec.com

    Depth实际检测效果回显示例:

    1.4.1.4 是否可以使用其他品牌镜头?

    如果您需要使用NIR近红外或者Depth活体,则一定要配备支持对应图像格式类型的镜头模组。目前百度离线SDK适配的镜头类型有限,难以覆盖市面上所有双目模组。您可以查看下方的图像适配指标文档,只需满足文档中的图像/数据要求,即可自行进行模组适配。

    [镜头模组图像适配指标.pdf]

    我们也诚挚欢迎各镜头模组厂商参与到SDK的合作中来,我们会积极与您进行产品、技术、商务等多方面对接。测评效果较佳的模组,将会作为SDK官方适配模组,并在所有技术资料中优先推荐用户使用。您可以将合作申请发送到下方咨询邮箱,我们接到您的申请后会尽快与您取得联系,感谢您的信任。

    合作邮件:ai#baidu.com( #替换成@符号 )

    开发板选择(Android)

    推荐使用RK3399,推荐硬件厂商及型号

    机器选择(Windows)

    • 系统:Windows 7、Windows 10系统的设备
    • 处理器:推荐Intel i3及以上
    • 内存:4.00 GB及以上
    • 系统类型:32位、64位
    • 具备2个及以上的USB插口
    • 安装vs2015环境(不保证其他vs版本兼容性)

    方案选型

    离线SDK具备离线人脸检测、跟踪、质量校验、图像采集、RGB/NIR/3D结构光活体、离线对比识别、离线人脸库管理。可基本cover人脸识别所需要的全部能力,仅需一个SDK即可完成业务能力覆盖。但相对来说仍然具备一定的场景及业务使用限制。

    目前AI开放平台也同时开放采集SDK和API能力,建议您根据实际的业务需要,选择合适的产品应用方案,以达到最佳的应用效果。

    使用离线SDK

    以下特点及场景,适合仅适用人脸离线SDK

    适用的场景特点

    • 网络条件不稳定
    • 无网络
    • 数据安全性高,不允许联网
    • 人脸库较小,且变更不频繁,如1w人以下
    • 单台设备、单人脸检测与识别

    注意:此版本离线SDK暂不支持多线程处理,主要适用于单人脸核验场景,不建议用于多人脸抓拍识别。

    典型场景及设备类型

    • 人脸门禁
    • 人脸闸机
    • 人证核验机
    • 自助柜机
    • 人脸考勤机
    • 会场签到

    提示:对于离线1:N场景,需要您基于SDK构造上层的人脸库数据更新业务逻辑,例如小区门口的闸机为纯离线,但是住户的变更信息,如何同步到每一个大门的闸机中。

    使用采集SDK+API接口

    以下特点及场景,适合使用采集SDK+API接口

    适用的场景特点

    • 网络条件良好
    • 人脸库量级庞大
    • 需要跨地域同步人脸库
    • 人脸库更新频繁
    • 用户APP产品形态

    提示:采集SDK具备本地化的人脸检测跟踪、质量校验、人脸采集等功能,与离线SDK相比,活体和识别操作使用云端服务完成。

    典型场景及设备类型

    • 零售会员识别
    • 人脸支付
    • 手机APP
    • 移动考勤
    • 远程开户

    使用离线SDK+API接口

    以下特点及场景,适合使用离线SDK+API接口

    适用的场景特点

    • 网络条件较好
    • 人脸库较小,但变更频繁
    • 业务常为集中时段的高并发(如考勤)

    典型场景及设备类型

    • 上下班刷脸考勤
    • 社区闸机
    • 楼宇门禁

    离线人脸库处理固定人员的识别请求,将在本地抵消掉很多API请求量;同时API处理变动人员的请求,方便及时同步更新,从而总体节省QPS资源的成本消耗。

    上一篇
    离线采集SDK
    下一篇
    功能介绍