文章目录

  • 写在前面
  • 1. 人脸注册
  • 2. 人脸更新
  • 3. 人脸删除
  • 4. 人脸库查询
  • 5. 人脸识别
  • 6. 扩展思考

写在前面

  由于直接讲代码略显枯燥,遵循个人做事风格,先看整体效果,再进行细致了解,这和始于颜值,忠于人品差不多的意思。这个章节介绍完功能后,感兴趣的同学,可以通过下个章节的代码解析,进行深入的了解。对作者来说也算是完成了一个人脸识别基础功能的Demo开发吧。

1. 人脸注册

  我在网上找了一些大家熟知的明星,将头像清晰的照片进行了保存,人脸注册,需要上传头像的照片,同时输入用户ID和用户信息,写2个字段,是因为真实情况下,会存在重名的情况,可以将用户ID作为唯一,将用户信息作为名字,当然根据需求做调整也行,这里只是抛砖引玉。

  设计逻辑简单提一下,在用户上传图片后,将图片数据、用户ID、用户信息一起作为对象,传送给后端的服务,由后端进行头像的特征点获取,获取成功后,进行保存。

2. 人脸更新

  当完成需要录入的人脸后,如果需要更新库中人的照片,就需要进行人脸更新了,人脸更新目前逻辑为以用户ID为唯一的校验值,进行其他信息的更新,包括用户信息和用户的人脸照片。

3. 人脸删除

  根据库里面的用户ID,删除用户已经进行了人脸注册的数据,包含后台存储的用户头像的图片数据,确保服务端不留存已删除的无用数据。

4. 人脸库查询

  人脸库查询,使用了比较粗暴的方式,查库里的top n条数据,上面的其他模块,做完操作都进行了库查询,这里就不放示例图了。

5. 人脸识别

  接下来就到了最重要的人脸识别模块了,我们通过输入一张人物照片,将照片与人脸库中的用户信息进行对比,返回在人脸库中相似度最高的一个用户信息,如果输入的是库中存在的人物照片,那么找到对应人的准确率会比较高,一般超过92%的相似度代表是同一个人,当然如果需要区别双胞胎,那么阈值会更高。这里只是简单提一下,具体真正工程项目中,需要考虑的东西远不止这些。

  下面我们上传一张人脸库外的人物头像进行测试,大家可以看到结果,赫敏和迪丽热巴的相似度有87%,虽然人来看很容易区别,但是计算出来的相似度并不低,确实不是同一个人。

6. 扩展思考

  虽然看起来这像一个系统,但是实际上真正工程化需要考虑的东西很多,这里简单提几点,后面如果有时间和必要,我会专门进行介绍。

  • 人脸库可扩展

  示例中只使用了一个库,所有的注册、更新、删除、对比都在同一个库中,实际真实的场景中,我们可以增加不同的库,这样就能够用于多个库的管理了。例如小区中有8栋楼,每栋楼都有不同的业主,那就需要将每一栋业主的人脸信息分别录到8个不同的组中,分别进行验证,这样就不会存在1栋的业主,可以用人脸识别打开8栋业主的门禁了。

  • 人脸识别准确率

  这个是人脸识别中最重要的,我们使用的模型shape_predictor_68_face_landmarks.dat,实际上是使用外国的人脸数据进行训练的,做Demo还行,想真正的实用,还需要专门的图像工程师来进行数据处理和模型调参/训练,还要考虑不同光线下的鲁棒性,而且特征点可能也不止这点,国内人脸识别做得比较好的是旷视、依图、BAT等,他们都有专门的图像算法团队在做这一块。

  • 人脸库搜索效率

  示例中,传入一张照片后,会和库中的每一个用户头像信息进行比较,计算余弦相似度,消耗的时间是线性的,如果每次计算消耗100ms,那么如果库中有100个用户,就需要10秒,这肯定是不现实的,而且真实环境中,1000个用户甚至更多是很正常的,不可能一直使用这种线性的方式来做。可以考虑使用Milvus等类似的向量数据库,进行top n的查询,将top n取出来进行计算,解决人脸搜索效率问题。

人脸识别实践(2) - 人脸识别系统展示相关推荐

  1. Python与人工智能入门实践——简易人脸识别系统

    Python与人工智能入门实践--简易人脸识别系统 写在前面: 笔者在寒假期间进行了一些简短的实训,主要内容包括简单的爬虫和简单的人脸识别算法,由于时间有限,对于python也是第一次详细学习,功能较 ...

  2. 开发基于深度学习的人脸识别【考勤/签到】系统

    开发基于深度学习的人脸识别[考勤/签到]系统 人脸识别介绍 平台环境需求 技术点 系统流程 细节设计 人脸检测 人脸关键点定位 人脸特征提取 模型的训练 模型的部署 MySQL数据库的使用 MFC工程 ...

  3. 基于wxpython+MySQL--实现人脸检测识别的宿舍人脸检测系统

    基于wxpython+MySQL--实现人脸检测识别的宿舍人脸检测系统 一.功能需求 二.数据库建立 2.1 初始化数据库 2.2 压缩/解压数据流 2.3 输入数据 三.宿舍管理 3.1 新建录入 ...

  4. 格灵深瞳:人脸识别最新进展以及工业级大规模人脸识别实践探讨 | 公开课笔记...

    作者 | 张德兵 编辑 | 阿司匹林 出品 | 人工智能头条(公众号ID:AI_Thinker) 人脸识别已经成为成为计算机视觉领域最热门的应用之一,很多刚入门的 AI 新手都或多或少接触过人脸识别的 ...

  5. 手把手教你开发基于深度学习的人脸识别【考勤/签到】系统

    人脸识别介绍 平台环境需求 技术点 系统流程 细节设计 人脸检测 人脸关键点定位 人脸特征提取 模型的训练 模型的部署 MySQL数据库的使用 MFC工程的搭建 软件使用 人脸识别介绍 人脸识别技术是 ...

  6. 人脸识别的最新进展以及工业级大规模人脸识别实践探讨

    人脸识别已经成为成为计算机视觉领域最热门的应用之一,很多刚入门的 AI 新手都或多或少接触过人脸识别,但纸上得来终觉浅,在实际应用中,往往会遇到各种各样的问题,比如如何保证不同环境下人脸识别的准确率, ...

  7. 人脸识别最新进展以及工业级大规模人脸识别实践探讨

    转自:https://zhuanlan.zhihu.com/p/38655724 人脸识别已经成为成为计算机视觉领域最热门的应用之一,很多刚入门的 AI 新手都或多或少接触过人脸识别的相关知识,但是纸 ...

  8. 格灵深瞳:人脸识别工业级大规模人脸识别实践探讨 | 百万人学AI

    作者 | 张德兵 编辑 | 阿司匹林 出品 | 人工智能头条(公众号ID:AI_Thinker) 人脸识别已经成为成为计算机视觉领域最热门的应用之一,很多刚入门的 AI 新手都或多或少接触过人脸识别的 ...

  9. java基于springboot的人脸识别企业排班考勤系统之人脸识别模块的设计和实现

    项目里考勤打卡需要换成人脸识别,主要思路:超级管理员在员工管理处上传员工相对清晰的五官电子一寸照片.然后员工登录自己的账号,在考勤页面点击打卡,浏览器开启电脑摄像头,采集员工脸部信息照片,并且将这个照 ...

最新文章

  1. python支持链式赋值和多重赋值_Python: 链式赋值的坑
  2. ASP.NET Web - 服务器控件
  3. 网页设计中常用的19个Web安全字体
  4. 1-1 顺序表操作集 (20 分)
  5. 面试官:元素排序Comparable和Comparator有什么区别?
  6. 分支和循环结构的应用(习题)
  7. MySQL数据的备份与还原实现步骤
  8. 【经验分享】为什么后台取到的时间和前台差8个小时?
  9. [面试专题]Vue.js 2.0 独立构建和运行时构建的区别
  10. Qt中如何给按钮加图标(背景图片)
  11. viiv个人计算机,欢娱尽情 欢跃平台PC导购
  12. (原创) 学生宿舍管理系统(简易版) C语言
  13. 2021年谷歌地球专业版使用方法,解决Google Earth无法连接服务器问题。
  14. 《Git 教程 - 廖雪峰》
  15. 《metapath2vec: Scalable Representation Learning for Heterogeneous Networks》
  16. 王春亮用心接待全国的调养者和学习者
  17. 手机怎么改android版本号,安卓手机build.prop每行的意思,如果想改版本信息型号等...
  18. python爬虫教程下载-Python网络爬虫从入门到精通 PDF 下载
  19. 软件工程 学习笔记 知识梳理
  20. 2021-03-10

热门文章

  1. 国企招聘:中国空空导弹2023校园招聘正式启动
  2. java计算机毕业设计校园二手书交易系统源码+系统+数据库+lw文档+mybatis+运行部署
  3. 基于卷积神经网络和小波变换的视频监控中的火灾探测
  4. 一个Word中的样式导入另一个Word
  5. 关于爆仓那些事,出现爆仓就是黑平台?
  6. ESP32驱动 1.3寸OLED SH1106芯片)
  7. 经典Java开发教程!腾讯+字节+阿里面经真题汇总,斩获offer
  8. android 分屏切换流程,一种切换分屏模式和多窗口模式的方法与流程
  9. jQuery的事件冒泡,事件对象和图片跟随
  10. pvm虚拟机基本原理