1、使用之前首先要去face++的官网注册一个帐号,获取key和secret
2、然后进入程序设置key和secret
3、然后还要进入管理,创建你要识别的人物,就是往服务器上次face(图片),要确保没张图片都只有一个脸,而且是同一个人,并且图片要是jpg格式,不能大于1M。
4、最后就进入人脸识别的界面
5、首先设置摄像头的地址,如果这个不懂,可以先去了解下mjpeg streamer的用法,
然后要设置目标人物的名字,就是你创建的那个人的名字
6、最后就点击网络摄像头启动,程序会监控当前画面的变化,如果有变化就抓取当前的画面进行识别(画面也会保存在save文件夹下面) ,如果识别正确,会往局域网内9527端口用udp广播目标人物的名字和识别的正确率。
原理: 程序不断对监控画面的计算,如果画面的变化大于遇到的程度,那么当前的画面就会被抓下来, 然后通过调用face++的网络api,进行云端识别。
已知问题: 1、识别并不是很理想,因为face++的识别本身也有一定的问题,例如如果图片中的头部是斜的,
那么就很有可能检测不到头,还有眼睛被遮挡等情况。
2、由于是云端识别,网络质量很强调。 3、由于我对图像处理不太懂,识别的效率很低,这也是识别率低的一个重大原因。
总结:花了一个星期写完,虽然好像用处不大,但是对qt的界面编写更加掌握了,尤其是多线程, 在win7下一旦UI线程被阻塞了,那么程序马上就会变成未响应状态,因此程序一但遇到需要大量运算和阻塞,都 提交线程后台处理,UI界面则显示等待进度条。最后想到的改进方法是抛弃mjpeg streamer,自己用v4l2,采集
摄像头,然后把视频流直接发给程序,这样或许效率会高点。
|