(本系列随笔持续更新)

搭建要求

详细的搭建过程在 参考资料1 中已经有啦。

TensorFlow 1.6.0

OpenCV 2.4.8 仅仅是加载和读取图片的需要

Ubuntu 14.04 64bits

代码:加载图片,找出人脸。运行依赖detect_face.py

import cv2
import detect_face
import matplotlib.pyplot as plt
import math
from scipy import misc img = misc.imread('face_airplane.jpg') sess = tf.Session()
pnet, rnet, onet = detect_face.create_mtcnn(sess, None) minsize = 20
threshold = [0.6, 0.7, 0.7]
factor = 0.709
df_result, _ = detect_face.detect_face(img, minsize, pnet, rnet, onet, threshold, factor) n_face = df_result.shape[0]
print('detected face number: {}'.format(n_face))
print(df_result) fig = plt.figure('faces')
i = 0
plt_nrow = n_face/5
plt_nrow = plt_nrow + int(n_face != plt_nrow*5) plt_ncol = 5
crop_face = []
for subfaceRec in df_result:
i = i+1 #ax = fig.subplot(plt_nrow, plt_ncol, i)
subfaceRec = subfaceRec.astype(int)
img_a_face = img[subfaceRec[1]:subfaceRec[3], subfaceRec[0]:subfaceRec[2]]
crop_face.append(img_a_face)
img_a_face = cv2.resize(img_a_face, (96, 96), interpolation = cv2.INTER_CUBIC)
#plt.imshow(img_a_face)
print('plt_nrow:{}, plt_ncol:{}, i:{}'.format(plt_nrow, plt_ncol, i))
plt.subplot(plt_nrow, plt_ncol, i)
plt.imshow(img_a_face) cv2.rectangle(img, (subfaceRec[0], subfaceRec[1]), (subfaceRec[2], subfaceRec[3]), (0,255,0), 2) plt.figure('img')
plt.imshow(img)
plt.show() sess.close()

  

显示效果:

 

参考资料:

1 https://blog.csdn.net/mr_evanchen/article/details/77650883

2 https://github.com/ShyBigBoy/face-detection-mtcnn

01-人脸识别-基于MTCNN,框选人脸区域-detect_face_main的更多相关文章

  1. 人脸识别(基于Caffe)

    人脸识别(基于Caffe, 来自tyd) 人脸识别(判断是否为人脸) LMDB(数据库, 为Caffe支持的分类数据源) mkdir face_detect cd face_detect mkdir ...

  2. 基于Emgu CV+百度人脸识别,实现视频动态 人脸抓取与识别

    背景 目前AI 处于风口浪尖,作为 公司的CTO,也作为自己的技术专研,开始了AI之旅,在朋友圈中也咨询 一些大牛对于AI 机器学习框架的看法,目前自己的研究方向主要开源的 AI 库,如:Emgu C ...

  3. 3D动态人脸识别技术分析——世纪晟人脸识别实现三维人脸建模

    - 目录 - 国内3D动态人脸识别现状概况 - 新形势下人脸识别技术发展潜力 - 基于深度学习的3D动态人脸识别技术分析 1. 非线性数据建模方法 2. 基于3D变形模型的人脸建模 - 案例结合——世 ...

  4. facenet 人脸识别(二)——创建人脸库搭建人脸识别系统

    搭建人脸库 选择的方式是从百度下载明星照片 照片下载,downloadImageByBaidu.py # coding=utf-8 """ 爬取百度图片的高清原图 &qu ...

  5. uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件

    插件亮点 1 支持安卓平板(横竖屏均可),苹果的iPad.2 颜色图片均可更换. 特别提醒 此插件包含 android 端和 iOS 端,考虑到有些同学只做其中一个端的 app,特意分为 2 个插件, ...

  6. 02-人脸识别-基于MTCNN,框选人脸区域-detect_face

    (本系列随笔持续更新) 这部分代码是基于参考中的链接,修改后适用于TensorFlow1.6.0版本的代码.由于TensorFlow的频繁更新,所以不一定支持后续新或者就版本,特此说明. 程序的最初版 ...

  7. 03-人脸识别-基于MTCNN,显示5个人脸特征

    import tensorflow as tf import numpy as np import cv2 import detect_face import matplotlib.pyplot as ...

  8. 【Python+OpenCV】人脸识别基于环境Windows+Python3 version_3(Anaconda3)+OpenCV3.4.3安装配置最新版安装配置教程

    注:本次安装因为我要安装的是win10(64bit)python3.7与OpenCV3.4.3教程(当下最新版,记录下时间2018-11-17),实际中这个教程的方法对于win10,32位又或是64位 ...

  9. 基于深度学习的人脸性别识别系统(含UI界面,Python代码)

    摘要:人脸性别识别是人脸识别领域的一个热门方向,本文详细介绍基于深度学习的人脸性别识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中可以选择人脸图片.视频进行检 ...

随机推荐

  1. Python thread & process

    线程 点击查看 <- 进程 点击查看 <- 线程与进程的区别 线程共享内部空间:进程内存空间独立 同一个进程的线程之间可以直接交流:两个进程之间想通信必须通过一个中间代理 创建新线程很简单 ...

  2. jQuery与IE兼容性问题处理

    jQuery虽然是兼容所有主流的浏览器,但实际应用中也会存在很多兼容性的问题.使用IE11+jquery-3.2.1.min.js遇到的问题如: 对象不支持indexOf 在低版本中,1.8写法如下: ...

  3. eclipse 离线安装SVN插件(支持eclipse201909)

      1.情景展示 重装eclipse后,按照网上的在线安装方法,SVN始终安装失败,之前的离线SVN包也不能用. 2.解决方案 SVN离线包下载地址:http://subclipse.tigris.o ...

  4. 剑指offer:矩阵中的路径(递归回溯法DFS类似迷宫)

    1. 题目描述 /* 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径. 路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子. 如果一条 ...

  5. 生活点滴:java基础知识细化

    生活点滴:java基础知识细化 一.前言 越是对一门语言深入了解,就会发现自己不知道的东西越多,这才是走向了正道,同样的,对于java语言特性的学习,笔者也只是初窥门径. 二.java基础知识思考 i ...

  6. 通过requirements.txt文件创建虚拟环境副本

    1.首先在原来的环境中生成一个需求文件requirements.txt,用于记录所有依赖包及其精确的版本号. (venv) $ pip freeze >requirements.txt 2.创建 ...

  7. LeetCode 232:用栈实现队列 Implement Queue using Stacks

    题目: 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部. pop() -- 从队列首部移除元素. peek() -- 返回队列首部的元素. empty() -- 返回队列是 ...

  8. re2c安装

    wget  https://kojipkgs.fedoraproject.org//packages/re2c/1.1.1/3.fc31/src/re2c-1.1.1-3.fc31.src.rpm 解 ...

  9. jquery改变表单某个输入框的值时,另一个或几个输入框的值同步变化,这里演示的是改变数量时价格同步变化

    效果如下,当我输入数量时,下面的价格同步变化 代码如下: 上图圈起来的事件是当input 框里面的值改变时触发的事件. 补图

  10. Mongodb--内存管理MMAP

    MongoDB使用的是内存映射存储引擎,即Memory Mapped Storage Engine,简称MMAP. MMAP可以把磁盘文件的一部分或全部内容直接映射到内存,这样文件中的信息位置就会在内 ...