调用Dlib库进行人脸关键点标记

       昨天调试了人脸识别(classifier_webcam)这个程序,效果不错,响应速度也挺快。按照http://blog.csdn.net/u011531010/article/details/52270023博客内容进行调试即可。

       今天调试了python写的landmark,用的是dlib库里的68点文件,其中dat文件为训练好的68点标注,我们加入了视频的实时检测的功能,仿照classifier_webcam这个文件(openface中的)使用VideoCapture(0)这个(0为本机摄像头,1为USB外设)函数打开,然后读取frame。注意标注时使用了for 循环,for i range(0,67),将点一个个标注出来,经过使用print函数打印出shape.part(i).x  shape.part(i).y,可见其为坐标 用cvCircle函数进行画圈。结果显示尚可,但仍为反映速度较慢,明天使用cuda进行加速,但在这之前需要安装一些文件,拟采用http://www.mobibrw.com/2017/7153 博客中使用的方法。

关键代码:

ret, frame=video_capture.read()
dets =  detector(frame, 1)
for k, d in enumerate(dets):
shape = predictor(frame, d)
for idx  in range(0, 67):
#pos = (point[0,0],point[0,1])
pos = (shape.part(idx).x, shape.part(idx).y)
#print(shape.part(i).x,shape.part(i).y)
cv2.circle(frame, pos, 5, color = (225, 0, 0))
#cv2.putText(frame, str(idx), pos, color = (0, 255, 0))
cv2.imshow('N1', frame)

landmark效果应该如下:

       就先写到这儿了,明天再看。

-------------------------------------------------------------------------------------------------------------------------------------------

果然遇到了问题,不过这次问题解决起来还是挺顺利的,报错:"libcudart.so.8.0 cannot open shared object file: No such file or directory"

参考博客:http://blog.csdn.net/u014696921/article/details/60140264  即可完成。

对Openface训练的人脸识别(Face Recognition)模型进行测试,这个模型过程为:输入整个图片-人脸检测(调用dlib中frontal_face_detector库)-进行人脸对齐(仿射变换affine transform)-输入神经网络(CNN)+Triplet loss函数修正网络-- 输入128维特征,生成csv矩阵文件  最后使用SVM分类器进行分类生成pkl分类器,最后使用classifier.py调用形成的pkl进行识别分类。【实践过程参考http://blog.csdn.net/u011531010/article/details/52270023】

classifier_webcam实验结果:

阈值threshold越小,越容易匹配到一个人,但错误率也越高。

转头角度过大会失败,捂着眼睛(wcc)失败,不含捂嘴捂着眼睛的图片

捂嘴成功(zzy,训练集中包含捂嘴图片)

说明需要一些不同姿态的训练集尤其是对脸部遮挡的,因为每次训练的时候都会对脸部进行对其,脸以外的部分均被剔除了,在脸上做文章并进行训练才行,并且要加大训练集,实时动态的进行识别的时候准确率会比静态识别图片差一些。

不在一个电脑上实验,所以贴图有点困难。。。。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏about云

TensorFlow ML cookbook 第一章7、8节 实现激活功能和使用数据源

问题导读: 1、TensorFlow中有哪些激活函数? 2、如何运行激活函数? 3、TensorFlow有哪些数据源? 4、如何获得及使用数据源? 上...

4948
来自专栏奇点大数据

阿里巴巴最新实践:TVM+TensorFlow优化GPU上的神经机器翻译

本文是阿里巴巴 PAI-Blade 团队发表于 TVM 的最新博文,文中阐述了如何将 TVM 引入 TensorFlow,使 TensorFlow 中的 bat...

5415
来自专栏从流域到海域

A Gentle Introduction to Autocorrelation and Partial Autocorrelation (译文)

A Gentle Introduction to Autocorrelation and Partial Autocorrelation 自相关和偏自相关的简单...

3036
来自专栏人工智能LeadAI

TensorFlow从0到1丨 第五篇:TensorFlow轻松搞定线性回归

上一篇 第一个机器学习问题 其实是一个线性回归问题(line regression),呈现了用数据来训练模型的具体方式。本篇从平行世界返回,利用TensorFl...

3597
来自专栏ATYUN订阅号

使用Python进行人脸聚类的详细教程

思考下面这个场景:两名劫匪在抢劫波士顿或纽约等繁华城市的银行。银行的安全摄像头工作正常,捕捉到了抢劫行为,但劫匪戴着头套,没办法看到他们的脸。

5872
来自专栏人工智能

使用10几行Python代码,快速建立视觉模型识别图像

视觉 进化的作用,让人类对图像的处理非常高效。 这里,我给你展示一张照片。 ? 如果我这样问你: 你能否分辨出图片中哪个是猫,哪个是狗? 你可能立即会觉得自己遭...

3999
来自专栏鸿的学习笔记

在hadoop2.0上实现深度学习

我承认我又偷懒了,只是大概写了下提纲,和完成了第一章节的部分写作。不睡午觉的恶果啊,原本已经写好草稿,讲讲语言和信息的关系,结果,实在是回家后好困。

1022
来自专栏专知

零基础构建神经网络:使用PyTorch从零编写前馈神经网络代码

【导读】1月20日,机器学习研究人员Jeff Hu发布一篇深度学习教程,与其他的文章略有不同,作者并不介绍深度学习最前沿技术、也没有分析深度模型的优劣,而是从基...

5105
来自专栏从流域到海域

自相关和偏自相关的简单介绍

原文地址:https://machinelearningmastery.com/gentle-introduction-autocorrelation-part...

1.1K7
来自专栏人工智能

完全云端运行:使用谷歌CoLaboratory训练神经网络

选自Medium 作者:Sagar Howal 机器之心编译 参与:路雪 Colaboratory 是一个 Google 研究项目,旨在帮助传播机器学习培训和研...

8008

扫码关注云+社区

领取腾讯云代金券