基于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开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
Python正则表达式常用函数总结
Jun 24 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 Python
Python中super函数用法实例分析
Mar 18 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
Aug 26 Python
python中tab键是什么意思
Jun 18 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
Python数据处理的三个实用技巧分享
Apr 01 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中使用Oracle数据库(5)
2006/10/09 PHP
服务器端解压缩zip的脚本
2006/12/22 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
Windows下python2.7.8安装图文教程
2016/05/26 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
2018/05/25 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
python 文件查找及内容匹配方法
2018/10/25 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
详解Python是如何实现issubclass的
2019/07/24 Python
python Paramiko使用示例
2020/09/21 Python
python3实现飞机大战
2020/11/29 Python
pip install命令安装扩展库整理
2021/03/02 Python
英国儿童图书网站:Scholastic
2017/03/26 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
师范生自荐信范文
2013/10/06 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
2014司机年终工作总结
2014/12/05 职场文书
整改通知书
2015/04/20 职场文书
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript