基于Google Lens的移动端活体检测实现

目的

自从深度学习及 CNN 神经网络在图像识别技术的广泛应用,再加上 Google 开源深度学习框架 TensorFlow后,人脸识别技术迅速发展,甚至已经超过人眼识别的能力。但是,随之而来出现了安全性问题,照片攻击、视频攻击等各种攻击手段层出不穷。

因此为了更安全的使用人脸识别技术,增加攻击者的破解难度,需要在前端加入安全措施。主要安全措施有:

  • 动作检测,即通过随机动作,判断目标人物"是活的
  • 连续性检测,即通过视频流连续检测,判断目标人物"是活的"
  • 纹理检测,即通过图片本身的纹理判断是否为二次拍摄,从而证明目标人物"是活的"

本文主要借助开源Google Lens,从动作检测和连续性检测两个方面实现活体检测。

Google Lens


2017年5 月17日,Google I/O开发者大会发布Google Lens。它是基于图像识别和OCR技术的人工智能应用,能够让机器学会“看图说话”。在I/O大会放出的视频演示中,拥有Google Lens的智能手机,可以通过对视觉对象的扫描,识别和获得详细信息。

基于Google Lens的移动端活体检测实现

基于Google Lens 的框架Mobile Vision ,https://developers.google.com/vision/
按照实现流程分,主要有人脸检测,特征点提取,动作检测和连续性检测。

人脸检测


通过集成Mobile Vision,调用GMVFaceFeature 接口实现图片中的face detection

特征点提取


调用GMVFaceFeature 接口提取人脸的11个特征点,分别代表眼睛、耳朵、鼻子、脸颊和嘴巴等主要人脸五官

动作检测

主要实现眨眼、微笑、张嘴、左转、右转、抬头、低头、左摆、右摆等9个动作。其中眨眼和微笑Google框架中已经判断,其它动作需要结合11个特征点通过实际场景计算来

连续性检测

通过实时抓取移动端的视频帧数,通过调用GMVFaceFeature 接口实现face detection

实现总结

通过集成Google Lens的图像识别框架,实现了移动端活体检测。

难度

  • 主要在视频流如何转换成Google Lens支持的图片格式
  • 另外通过特征点判断是哪个动作,需要结合实际环境计算阀值,阀值待验证

性能

性能非常好,能实时处理移动端摄像头 60FPS的帧率

大小

集成后App小于10M,基本能满足App集成要求。

下一步计划

通过纹理检测,进一步提高人脸识别的安全性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 图像识别主要用到了两个第三方的框架:OpenCV和TesseractOCR,OpenCV用来做图像处理,定位到身份...
    方弟阅读 14,035评论 9 52
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,423评论 25 709
  • 作为应届生的我,在四月一日那天辞职离开了实习单位。我至今记得那天阳光明媚,一改之前的阴雨绵绵,天气好的不像话。 在...
    般若涅槃阅读 2,726评论 3 1
  • 渥丹的bg文写得一般般吧,感觉太过于纠结于情感描写,而没有实际的故事发展去推动情节,因此会觉得啰嗦,说来说去就这点...
    乌丽曼阅读 5,522评论 0 1
  • 《孤独六讲》里几乎囊括了一切孤独,从个体到群体,文学到现实,历史到当下,西方到东方。本以为书里总有一款孤独适合自己...
    叫我哪托阅读 3,214评论 1 2