baiduAIFaceIdentify项目是C#语言,集成百度AI的SDK利用AForge开发的实时人脸识别的小demo,里边包含了人脸检测识别,人脸注册,人脸登录等功能
人脸实时检测识别功能
思路是利用AForge打开摄像头,通过摄像头获取到的图像显示在winform窗体中AForge的控件中,利用AForge控件中的Newframe事件获取要显示的每一帧的图像,获取图像传输到百度AI平台进行人脸检测,并且将检测结果反馈到界面显示的图像中。在这个过程中有两个问题,获取图像上传到百度AI平台进行分析需要时间,这个时间跟网络有关,所以需要单独一个线程进行人脸识别,第二个问题,百度人脸识别接口开发者一秒内只能掉用2次接口,所以需要控制不是每一帧的图像都要上传。所以基于以上思路
首先页面初始化的时候获取视频设备、启动一个单独线程控制1秒内人脸检测的次数:
其次,在Newframe的回调方法中,根据IsStart判断是否要开始人脸识别,并且另外启动一个线程进行人脸识别操作,判断如果已经有识别过的结构,根据返回的人脸的位置,在当前的一帧图像中绘制方框指示出识别出的人脸位置
人脸注册。
在一些类似刷脸签到、刷脸登录的应用场景中,根据人脸获取人物信息,前提就是人脸注册,人脸注册就是获取当前摄像头的一帧图像,调用百度AI的人脸注册接口进行注册
人脸登录
人脸登录和人脸注册的方式一样,只不过调用的是百度AI的人脸登录接口