基于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 相关文章推荐
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
Python实现二维有序数组查找的方法
Apr 27 Python
Python中字符串的处理技巧分享
Sep 17 Python
python 通过xml获取测试节点和属性的实例
Mar 31 Python
Python基于whois模块简单识别网站域名及所有者的方法
Apr 23 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
python3对接mysql数据库实例详解
Apr 30 Python
如何在Django配置文件里配置session链接
Aug 06 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
jupyter使用自动补全和切换默认浏览器的方法
Nov 18 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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编程开发“虚拟域名”系统
2006/10/09 PHP
我的论坛源代码(十)
2006/10/09 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
python实现五子棋小程序
2019/06/18 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
python 代码运行时间获取方式详解
2020/09/18 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
职专应届生求职信
2013/11/16 职场文书
九年级物理教学反思
2014/01/29 职场文书
品牌转让协议书
2014/08/20 职场文书
简易版租房协议书范本
2014/10/13 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers