基于MTCNN/TensorFlow实现人脸检测


Posted in Python onMay 24, 2018

人脸检测方法有许多,比如opencv自带的人脸Haar特征分类器和dlib人脸检测方法等。对于opencv的人脸检测方法,有点是简单,快速;存在的问题是人脸检测效果不好。正面/垂直/光线较好的人脸,该方法可以检测出来,而侧面/歪斜/光线不好的人脸,无法检测。因此,该方法不适合现场应用。对于dlib人脸检测方法 ,效果好于opencv的方法,但是检测力度也难以达到现场应用标准。

MTCNN是基于深度学习的人脸检测方法,对自然环境中光线,角度和人脸表情变化更具有鲁棒性,人脸检测效果更好;同时,内存消耗不大,可以实现实时人脸检测。

代码如下:

from scipy import misc 
import tensorflow as tf 
import detect_face 
import cv2 
import matplotlib.pyplot as plt 
%pylab inline 
 
minsize = 20 # minimum size of face 
threshold = [ 0.6, 0.7, 0.7 ] # three steps's threshold 
factor = 0.709 # scale factor 
gpu_memory_fraction=1.0 
 
 
print('Creating networks and loading parameters') 
 
with tf.Graph().as_default(): 
    gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=gpu_memory_fraction) 
    sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options, log_device_placement=False)) 
    with sess.as_default(): 
      pnet, rnet, onet = detect_face.create_mtcnn(sess, None) 
 
image_path = '/home/cqh/faceData/multi_face/multi_face3.jpg'       
 
img = misc.imread(image_path)       
bounding_boxes, _ = detect_face.detect_face(img, minsize, pnet, rnet, onet, threshold, factor) 
nrof_faces = bounding_boxes.shape[0]#人脸数目 
print('找到人脸数目为:{}'.format(nrof_faces)) 
 
print(bounding_boxes) 
 
crop_faces=[] 
for face_position in bounding_boxes: 
  face_position=face_position.astype(int) 
  print(face_position[0:4]) 
  cv2.rectangle(img, (face_position[0], face_position[1]), (face_position[2], face_position[3]), (0, 255, 0), 2) 
  crop=img[face_position[1]:face_position[3], 
       face_position[0]:face_position[2],] 
   
  crop = cv2.resize(crop, (96, 96), interpolation=cv2.INTER_CUBIC ) 
  print(crop.shape) 
  crop_faces.append(crop) 
  plt.imshow(crop) 
  plt.show() 
   
plt.imshow(img) 
plt.show()

实验效果如下:

基于MTCNN/TensorFlow实现人脸检测

  基于MTCNN/TensorFlow实现人脸检测

基于MTCNN/TensorFlow实现人脸检测

基于MTCNN/TensorFlow实现人脸检测

再上一组效果图:

基于MTCNN/TensorFlow实现人脸检测

基于MTCNN/TensorFlow实现人脸检测

 关于MTCNN,更多资料可以点击链接

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python随机生成一个6位的验证码代码分享
Mar 24 Python
python机器学习案例教程——K最近邻算法的实现
Dec 28 Python
python 列表删除所有指定元素的方法
Apr 19 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
python安装requests库的实例代码
Jun 25 Python
python简单区块链模拟详解
Jul 03 Python
pycharm部署、配置anaconda环境的教程
Mar 24 Python
IDLE下Python文件编辑和运行操作
Apr 25 Python
解决python存数据库速度太慢的问题
Apr 23 Python
Python图像处理之图像拼接
Apr 28 Python
Pytorch中的数据集划分&正则化方法
May 27 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 Python
Jupyter中直接显示Matplotlib的图形方法
May 24 #Python
基于python神经卷积网络的人脸识别
May 24 #Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 #Python
Tensorflow实现卷积神经网络的详细代码
May 24 #Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 #Python
Tensorflow卷积神经网络实例进阶
May 24 #Python
Tensorflow卷积神经网络实例
May 24 #Python
You might like
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
微信小程序全局变量功能与用法详解
2019/01/22 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
python类的实例化问题解决
2019/08/31 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
PyQt实现计数器的方法示例
2021/01/18 Python
介绍一下JMS编程步骤
2015/09/22 面试题
德尔福集团DELPHI的笔试题
2012/02/22 面试题
运动会解说词200字
2014/02/06 职场文书
婚礼主持结束词
2014/03/13 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
中学团支部工作总结
2015/08/13 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers