驱动中国|开箱即用的人脸识别算法大盘点
人工智能领域最近几年的发展可以说是如火如荼 , 这里面既有创业者的磨刀霍霍 , 也有资本的一路执着狂跟 , 还有学生和程序员群体的热情追随 。 回顾人工智能领域从2012年的星星之火 , 到15年左右的疯狂态势 , 再到18年理性的声音初现 。 有人开始对人工智能抱有怀疑的态度 , 认为这一波AI并没有想象中那么强 。
但是 , 不可否认 , 人工智能真的在一些领域中得到了很好的落地 , 其中最典型的就是人脸识别的相关应用 。 现在我们乘车可以无票自动人证核验通行;通过人脸验证身份在线办各种证件手续 , 也不再需要跑到各个局去现场办理;还有很方便的手机人脸解锁等等 。 可以说 , 人脸识别还是一个真正实用的技术 。
人脸识别的流程介绍
对于一个落地可用的人脸识别系统 , 一般要包含以下几个步骤:
1) 人脸检测——将人脸从图像中检测出来;
2) 人脸关键点检测——从检测到的人脸中检测关键点(landmark);
3) 人脸对齐——根据人脸关键点 , 将人脸"扭正";
4) 人脸特征提取——把"扭正"的人脸送进特征提取网络 , 产生特征向量(例如128维、512维的特征向量);
5) 人脸比对——将人脸特征和底库里面存储的人的特征向量进行比较 。
本文插图
从上面的流程可以看到 , 一个真正work的人脸识别系统 , 是包含多个流程的 。 在多数场合 , 中间还需要加一个"活体检测"的步骤 , 也就是判断人脸是真的人脸 , 还是别人拿照片或者视频录像假冒的;如果你是从视频中检测人脸 , 还需要加一个"人脸质量分"判断 , 也就是判断一个视频序列中哪个人脸质量最好 , 然后将最好的这个人脸送入到人脸识别系统 。
有哪些可用的人脸识别算法
在上面一节 , 我们简要介绍了如何做一个人脸识别系统 。 可以说 , 要做好这个系统还是需要很大工作量的 。 从算法层面 , 要解决特征提取模型、活体检测、人脸图像质量检测三块硬骨头 。 此外 , 还需要考虑如何优化低功耗、高性能等工程化问题 。
还好 , 现在有一些AI科技公司开放了成熟的人脸识别算法 , 可以让程序员很快可以完成部署 。 那么当前有哪些可用的免费人脸识别算法 , 目前市面上主流的开箱即用的人脸识别算法又有哪些呢?下边 , 小算农为大家整理一下 。
按照调用方式来看 , 主要分为两种:云服务API和离线SDK 。
云服务API
云服务API本质上是"在线请求 , 返回结果" , 从功能上来说它是一个接口 。 多数人脸识别厂商将算法布置在云端 , 将API接口向有需求的公司开放 。 终端设备与云端连接后 , 人脸识别过程都在云端进行 , 消耗云端算力 , 本地端只需要上传照片 , 接收结果 。
云服务人脸识别API的优势主要有:
轻量级 , 集成方便 , 基本上任何语言都可以通过Http调用云服务API;
多为APP或一些网页在使用 。
当然 , 凡事都有两面性 , 云服务API也有不少劣势:
无法离线运行 , 需要网络流量成本 , 在一些特定场景下无法使用(无网络、无法访问公网的企业机构);
云端API厂商只能在较少调用量下(基本是产品测试阶段) , 提供免费使用 。 一旦规模化商用 , 尤其是App端等场景下大规模调用收费高昂;
受网络影响大 , 受网络稳定性影响较大 , 存在一定延迟 , 这样即使算法、算力再给力 , 也无法弥补网络的延迟 。
在人脸识别API云服务里 , 国内的BAT应该是最大的玩家 , 如果你打开阿里云、百度云、腾讯云 , 会发现他们提供了齐全的人脸识别相关的服务 , 另外 , 国内的"CV四小龙"、图普等众多公司也提供云端人脸识别API 。
大致价格如下表所示:
表 1 人脸比对API价格表
本文插图
可以看到如果单纯使用人脸比对 , 且调用量比较小的话 , 采用云服务API的价格还是可以接受的 。 但是 , 需要注意的是 , 表中仅是人脸比对的API价格 , 上文也提到了 , 一个完整的人脸识别系统至少还要包括人脸检测+人脸活体检测+人脸识别+人脸检索这四个过程 , 需要分别购买四个模块的API , 加起来价格并不便宜 。
离线人脸识别SDK
离线人脸识别SDK则是另外一种选择 , SDK也就是软件开发工具包 , 算法厂商将人脸识别功能封装成SDK , 分发给其他公司使用 。 接收方下载安装后使用 , 算法在本地端运行 。
相比云服务API , 离线SDK主要有以下优点:
本地运行 , 可离线使用 , 不受网络环境影响 , 响应速度快;
人脸数据储存在本地 , 无需与服务端进行数据交互 , 安全性高;
部分公司提供了免费的SDK(例如知名的虹软视觉开放平台提供的免费人脸识别SDK , 全平台覆盖 , 文档齐全)
国内提供人脸识别SDK的知名公司及其价格:
表 2 部分主流厂商人脸识别SDK价格
本文插图
笔者经过统计 , 发现提供离线人脸SDK的公司相比提供云服务API的公司要少很多 。 另外 , 商业公司的离线人脸识别SDK一般价格比较贵 。 不过 , 虹软视觉开放平台却有提供免费、离线的人脸识别SDK 。 它不仅支持商用、拥有多个平台版本 , 而且还提供了非常齐全的文档 。
知道虹软的人脸识别SDK是因为笔者在知乎搜索 , 有没有离线版的人脸识别的sdk可以使用的?看到大家在回答中都重点推荐了科创板上市企业虹软科技 。 于是笔者也去官网试了一下 , 发现该公司的确提供了四大平台的SDK , 而且 , 最关键的是 , 它是完全免费的!
本文插图
使用后发现 , 虹软提供了人脸识别、认证核验、活体检测三大主流应用的免费算法 。
本文插图
另外 , 对于不同平台的人脸识别SDK , 虹软都提供了Demo代码 。 例如 , 下面是人脸识别SDK的安卓Demo(所有代码都在下载的安卓SDK里面 , 打开Android Studio加载项目即可编译安装) 。
其中人脸识别Demo的主页如图所示 , 因为是Demo所以相对简单 。
本文插图
下边是人脸属性识别的效果页面 , 从图片可以看出 , 算法检测出了人脸、估计出了年龄、性别、人脸三个角度 , 是否是活体以及特征提取和相似度的计算 。
本文插图
另外 , 笔者也尝试了Ubuntu版本的人脸识别以及Windows版本的人证合一的SDK , 发现调用起来都非常的方便 , 官方写的Demo代码也非常的简洁易懂 。
经过小算农的总结 , 从性价比来看 , 离线SDK使用本地算力可以做到完全免费商用 。 而云服务API是基于云端算力 , 很难真正免费开放 , 尤其是用户规模基本都在几十万甚至上百万、上千万的APP产品应用中 , 云端调用的收费还是比较高昂的 。
从应用场景来看 , 云端API受到网络条件制约 。 对于追求低时延 , 稳定高效、用户体验的闸机门禁、刷脸考勤、人脸测温通行等产品应用中 , 也更推荐离线SDK 。
因此综合来看 , 虹软视觉开放平台的免费离线人脸SDK , 是一个比较不错的选择 。 顺便提一个细节 , 笔者自己在尝试用虹软SDK搭建一个应用时 , 遇到了关于"活体检测和人脸特征值提取多线程调用"的小疑问 。 于是 , 通过工单系统提交了技术支持需求 , 不到1天时间就得到了相关技术人员的1对1辅导 , 毕竟是科创板上市企业 。
【驱动中国|开箱即用的人脸识别算法大盘点】所以也推荐大家可以去他们的官网下载体验一下 。
推荐阅读
- 猴面包树|这种树“能吃能喝还能住”,养活无数非洲人,引进中国后画风变了
- 云南|云南昭通市威信县发生3.3级地震
- 钱学森|钱学森侄子,拿下诺奖后为何说:我不是中国人,我在美国长大
- 冰岛|数万次地震之后 冰岛一火山爆发
- 昆虫|近亿年前的虫珀里藏只“小怪兽”!中国科学家发现昆虫新物种
- 杨振宁|杨振宁今年99岁,曾坦言:我放弃中国国籍后,父亲不原谅我
- 中国镇|你知道中国的“心脏”在哪吗?经国家地理测量,位于一个村庄上
- 中国疾控中心|何时能建立免疫屏障,中国疾控中心首席专家回应
- 印度_社会|天灾还是人祸?印度多年前与美国联手“监视”中国,现在自食恶果
- gitlab|GitLab成立中国合资公司极狐,强调“独立运营”
