基于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扫描proxy并获取可用代理ip的实例
Aug 07 Python
简单介绍python封装的基本知识
Aug 10 Python
python处理自动化任务之同时批量修改word里面的内容的方法
Aug 23 Python
python 解决flask uwsgi 获取不到全局变量的问题
Dec 22 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
Python实现投影法分割图像示例(二)
Jan 17 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 Python
Python的控制结构之For、While、If循环问题
Jun 30 Python
Python无损压缩图片的示例代码
Aug 06 Python
python 利用zmail库发送邮件
Sep 11 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
Oct 28 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中explode的负数limit用法分析
2015/02/27 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
JQuery从头学起第二讲
2010/07/04 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
javascript时间差插件分享
2016/07/18 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
python常用函数详解
2016/09/13 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
python sys.argv[]用法实例详解
2018/05/25 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
python2和python3哪个使用率高
2020/06/23 Python
基于python实现操作git过程代码解析
2020/07/27 Python
Python 代码调试技巧示例代码
2020/08/11 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
联欢晚会主持词
2014/03/25 职场文书
请客吃饭开场白
2015/06/01 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python