mtcnn人脸检测python_基于MTCNN/TensorFlow实现人脸检测
人脸检测方法有许多,比如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,更多资料可以点击链接
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
mtcnn人脸检测python_基于MTCNN/TensorFlow实现人脸检测相关推荐
- mtcnn人脸检测python_基于mtcnn和facenet的实时人脸检测与识别系统开发
简介:本文主要介绍了实时人脸检测与识别系统的详细方法.该系统基于python/opencv2/tensorflow环境,实现了从摄像头读取视频,检测人脸,识别人脸的功能.本系统代码地址:real ti ...
- OpenCV + python 实现人脸检测(基于照片和视频进行检测)
OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...
- Python人脸识别教程 - 基于Python的开源人脸识别库:离线识别率高达99.38%
Python人脸识别教程 - 基于Python的开源人脸识别库:离线识别率高达99.38% 仅用 Python 和命令行就可以实现人脸识别的库开源了.该库使用 dlib 顶尖的深度学习人脸识别技术构建 ...
- [系统安全] 三十三.恶意代码检测(3)基于机器学习的恶意代码检测技术
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- 离群点、异常点检测及Python实现(正态分布3∂,Z-score 异常值检测,基于MAD的Z-score 异常值检测,杠杆值点、DFFITS值、SR学生化残差、cook距离和covratio值)
有一些准则可以检测离群点,如:正态分布3∂,Z-score 异常值检测,基于MAD的Z-score 异常值检测 以上部分详情与代码请参考:https://blog.csdn.net/weixin_35 ...
- 【人脸识别】基于dlib库实现人脸特征值提取
一.Dlib库介绍与安装 1. Dlib库简介 Dlib库是一个机器学习的开源库,包含了机器学习的很多算法,使用起来很方便,直接包含头文件即可,并且不依赖于其他库(自带图像编解码库源码).Dlib可以 ...
- 【人脸识别】基于主成分分析PCA算法人脸识别门禁系统含Matlab源码
1 简介 人脸是反应人身份的最直接的,最可靠的信息资源.通过人脸我们可以很快辨识一个人,这就是所谓的人脸识别.最初的人脸研究人员是一些从事社会心理学的工作者,从20世纪50年代开始有一些文献资料陆续发 ...
- 【雷达检测】基于matlab模拟海洋监视雷达检测仿真【含Matlab源码 2268期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[雷达检测]基于matlab模拟海洋监视雷达检测仿真[含Matlab源码 2268期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...
- 精简 opencv python_基于Python的OpenCV人脸检测!简直不要太简单!
一.文章概述 注意:本文只是人脸检测,人脸识别的实现请参见本人另一篇博客:基于OpenCV+TensorFlow+Keras实现人脸识别 本文将要讲述的是Python环境下如何用OpenCV检测人脸, ...
最新文章
- Linux文本搜索工具grep
- canvas之特丑时钟
- java Servlet学习笔记(一)
- Oracle 随机取某一列的值
- sqlalchemy mysql配置中怎么设置utf8_在SqlAlchemy中,我想要一个列是UTF8?
- 【机器学习】 - 目标检测 - VOC格式数据集介绍与自己制作
- ifix怎么装服务器系统上,ifix服务器和客户端配置
- linux 切换目录技巧,Lnux入门教程:Linux目录切换技巧
- 面试必问:如何实现Redis分布式锁
- 连昌宫词 [唐] 元稹
- 解决easyui textarea 值不显示及获取textarea的值
- Unity中Debug打印信息的颜色设置
- “21天好习惯”第一期-6
- Unity美术字体教程--BMFont美术字体的制作流程以及在unity中美术字体的生成
- python贪吃蛇的实验报告_贪吃蛇游戏程序设计实验报告.doc
- cad 打开硬件加速卡_CAD如何根据已知条件设计图形
- 【雷达】毫米波雷达和激光雷达
- 欧姆字符的编码c语言,欧姆符号怎么打
- 爬取Google网站的图片
- mysql 减去一月_sql – 如何从日期列中减去一个月