成功安装Emgucv3.x64位后,我们将用它来实现人脸识别。 EmguCv演示代码有人脸检查代码,但是人脸识别的介绍是错误的。 大多数在线教程都适用于 2.x 版本。 是的,3.x版本的介绍很少,但是方法类似,大致流程如下:
鉴定过程
后端实现人脸识别有两种形式,一是使用本地摄像头进行人脸识别人脸识别html5,二是使用推流实现人脸识别,推流部分需要前端配合定时识别(在 Global.asax 中开启现场定时读取),所谓为了简单起见,我们采用第一种方法。
和前面介绍的摄像头采集一样,我们需要使用html5的socket来调用摄像头,然后每隔一段时间就将视频流信息绘制到画布上,然后调用将屏幕转成base64字符串传给后台。 手动识别的关键代码如下。
vue定期上传快照
后台部分首先获取base64字符串,然后转成Bitmap,再转成EmguCv专用的Mat格式,然后实例化辅助类,如下
转换为Mat对象并识别
样本采集与人工识别类似,只是需要在后台进行保存操作。 前台关键代码如下:
Vue收集样本数据
其实后台关键代码如下:
灰度+识别+保存
重点是helper类的实现(需要注意的一点是样本规格必须与设置相符人脸识别html5,不相符会抛出异常,通常设置为100*100)
具体代码详见百度云,密码:vlc2