最近公司要开发一款人脸识别的闸机,就是在现有闸机上将一个小屏的识别装置,人脸识别成功后将闸机打开。

项目源码在 : https://gitee.com/panmingzhi/ArcSoftFace.git

使用了虹软的最新人脸识别技术完成开发
1、首先我们选择的是windows 64位的动态库,因为这个我熟悉,上手快。使用的是官方的开发库,这里的是官方在github的url : https://github.com/steponteam/FaceRecognization 官方有简单的例子,是最快上手的。但仅仅只是例子,现实使用还有很多坎。

2、取摄像头视频可以用opencv或者afroge,我使用的是afroge,因为这个库很小,仅仅只有几mb。使用afroge插入视频也有两种处理方式:1 使用videoSourcePlayer控件,重写他的paint事件,在paint事件中调用人脸追踪库,并画出方框。另外,软件启动时,再开一个Task,每间隔200ms取当前帧videoSourcePlayer.getCurrentFrame(),对当前这一帧进行人脸识别,如果识别在成功,就可以开闸了。

3、在每200ms间隔识别时,先判断一下当前的paint 人脸追踪有没有追踪到人脸,如果当前没有追踪到人脸,就可以略过当前这些的人脸识别了。

4、在识别到人脸后,不要立马开闸,要做一下限制,同一个人在不停的验证人脸时,2秒内可以不用处理。不然连续识别成功会导致语音报没完又接着重新放了一遍语音。

5、上述是最初一版的开发过程,在开发电脑上运行很流畅,也没有内存问题。而且模拟放了一个小品做测试,放了一个星期,内存始终保存在100-300左右,累计识别了25w次,这个量基本到项目上可以用一个月了。

6、悲剧总会来,开发电脑性能很强劲,视频很流畅,一点也没有卡的意思,但放在闸机上时,问题就后接踵而来了。
首先,闸机上的工供机是win7,要先安装.net 4.5.2,其次软件会加载不到libs下的dll,要安装 vcredist_x64.exe ,其次,请不要用ghost ,请不要用ghost,请不要用ghost,重要的事情3遍。否则会在系统事件中提示缺失dll,这个很抓狂,system32下己存在,但就是不断的提示缺失dll。
其次,工供机性能底,使用videoSourcePlayer不能控制FPS,导致画面有延时,大概有2秒,很可怕,查很多资料也都没用。后来就不使用videoSourcePlayer控件,直接使用NewFrame事件,然后绘制到picturebox。接收NewFrame传来的图片时,可以适当的放弃一部帧来提高流畅度,用Stopwatch来控制FPS始终保持在20帧左右。

7、在NewFrame事件中取当前帧来做人脸识别,经常会出现bitmap内存被损坏。这个问题最难搞的,甚至一度让我重新选择emgucv来实现USB相机采集,但问题还是依旧的。后来我反思了一下,使用 videoSourcePlayer 控件时没有这个问题,为什么使用pictureBox会发生,所以又回过头重新看一下videoSourcePlayer这个控件的实现。后来发现在取当前帧做人脸认别时,当前帧的图片有可能正在被绘制到pictureBox,而pictureBox.image=xxx这个方法不是立即绘制,是异步的,这就导致bitmap被同时在使用,找到问题后,加了一个lock锁就搞定了,又测试跑了一个星期,杠杠的。
8、window电脑会有一个屏幕休眠,当有人脸追踪到时,要调用windows自身的api来点亮屏幕。这个休眠是人为设定的,因为屏幕老亮着,给人感觉就是浪费电,一般设置30分钟自动屏幕关闭,软件追踪到人后,调用windows的鼠标滚珠事件来模拟有鼠标移动,达到点亮屏幕的目的。

更多内容欢迎来这里看
人脸识别的闸机开发经验及源码分享
是我这两周的折腾了,语言组织不好,但愿能给正在使用window做人脸识别一点帮助。
这是软件的截图,


人脸识别 闸机开发分享相关推荐

  1. 基于深度学习的人脸识别闸机开发(基于飞桨PaddlePaddle)

    目录 一.概述 1.1 人脸识别背景 1.2 实现 1.2.1 算法说明 1.2.2 环境设置 1.2.3 实现思路 二.示例脚本 2.1 安装PaddlePaddle和PLSC 2.2 下载人脸检测 ...

  2. 人脸识别闸机助力线下展览与演出

    人脸识别在疫情期间表现出非接触.便捷性和安全性等优势,让多领域产品选择搭载该技术,由此衍生出人脸识别门禁.人脸识别测温仪.人脸识别通行闸机.人脸支付终端等,在安防.交通.旅游.教育.警务等领域获得广泛 ...

  3. 人脸识别闸机应用在哪些地方?

    人脸识别闸机已经成为当下最热门的闸机,跟着人工智能技能的快速开展,人们开端更多地寻求舒适便捷的智能寓居和工作环境,智能化应用更是成为才智社区.才智工作.才智城市建设的重要方法. 那么人脸辨认闸机运用在 ...

  4. 基于产生式的动物识别专家系统_钇鑫智通打造“极致流畅人脸识别闸机”

    现在,人脸识别通道闸机越来越普及,但是由于技术的差异,导致人脸识别闸机的性能也有差异,人脸识别闸机其核心在人脸识别设备上,人脸机的配置,决定人脸识别的速度和准确率.人脸识别系统成功关键在于是否拥有尖端 ...

  5. 无法通过sak判断卡片类型_不同类型人脸识别闸机展示

    人脸识别闸机是基于强大的人脸深度学习技术+大数据技术,通过比对摄像头抓拍的现场人脸和数据库信息,对行人进行身份认证,比对结果一致则放行,具有识别快速精准,安保级别高等优点. 人脸识别闸机现已快速进入人 ...

  6. 人脸识别进水_万维|人脸识别闸机怎么选?

    如今人脸识别在安防行业的逐渐普及,现在已经有越来越多的场景都已应用人脸识别闸机,像办公大厦啊,景区门口,社区门口等,什么都不用带,只要刷个脸就行,方便快捷又省事.那么,你又对人脸闸机了解多少呢?如果你 ...

  7. 用脚踹?地震火灾中,如何快速打开人脸识别闸机门?

    作者 | 谭婧 责编 | 胡巍巍 2019年6月17日晚,四川宜宾长宁县发生连续地震,多地震感明显,<观察者网>报道"大学生地震时排队刷脸出宿舍一事." 事后,又据&l ...

  8. 云栖大会人脸识别闸机【技术亮点篇4】--户外闸机高20%的抗撞击能力

    云栖大会人脸识别闸机[技术亮点篇4]–户外闸机高20%的抗撞击能力 云栖大会户外闸机是一款针对通用系列摆闸存在的缺陷进行升级换代的新型高科技通道产品,艾力奋会展服务公司提供的户外无刷防撞摆闸,采用全新 ...

  9. 魔点人脸识别闸机系统落地郑州中心客运站

    车站的智能时代已经到来, 现阶段很多城市的汽车站,高铁站, 机场都设立了人脸识别闸机系统设备,近日郑州市中心客运站在进站检票门口设立了人脸识别闸机系统,乘客在进站的时候,只需要拿着×××站在人脸识别闸 ...

最新文章

  1. explain查看mysql语句的执行效率
  2. ESXI添加存储器步骤
  3. MySQL(十一)视图及存储过程
  4. 这些数据科学家必备的技能,你拥有哪些?
  5. 我的第一个项目(人力资源管理之报表管理)
  6. Node.js入门 - 回调函数
  7. @Component,@Service等注解是如何被解析的?
  8. 数据结构与算法(七) 栈以及栈的应用
  9. android监听键盘的隐藏,Android监听软键盘的显示和隐藏
  10. Liferay7 BPM门户开发之10: 通用流程实现从Servlet到Portlet(Part1)
  11. poj 1456 Supermarket 贪心,我已开始用dp,没做出来,惭愧!!
  12. qq 音乐 python 登录_手把手教你使用Python抓取QQ音乐数据(第四弹)
  13. 你的主机中的软件中止了一个已建立的连接
  14. web压力测试工具(持续更新)
  15. 正确的座机号码格式_固定电话的格式
  16. 怎么删除计算机病毒,电脑中病毒删不掉怎么办?
  17. 如何使用 QEMU 中的虚拟串口
  18. LabVIEW控制Arduino驱动1602液晶显示屏(基础篇—10)
  19. HTML <style> 标签
  20. oracle 里sum(0),sum(1) ,sum(2) ,sum(num) over,count(*) over() ,coun(*),count(1)

热门文章

  1. 程序员进阶知识点!java链表ListNode
  2. 【智力题】13 个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?
  3. 在Windows Embedded Standard中阻止安装提示和OOBE
  4. 笔记本电池只能充电到95%-99%之间无法充至100%的原因和处理方案
  5. Linux系统防火墙设置
  6. 困了累了,就想想这些吧
  7. oracle 修改po税api_Oracle PO控制状态变更
  8. java之简单的增删改查功能
  9. 数据恢复软件EasyRecovery支持恢复所有类型的文件
  10. centos进入救援模式并修复文件系统(7、8)