Mtcnn进行人脸剪裁和对齐

简介: 1 from scipy import misc 2 import tensorflow as tf 3 import detect_face 4 import cv2 5 import matplotlib.

 

 1 from scipy import misc
 2 import tensorflow as tf
 3 import detect_face
 4 import cv2
 5 import matplotlib.pyplot as plt
 6 # %pylab inline
 7 
 8 minsize = 20  # minimum size of face
 9 threshold = [0.6, 0.7, 0.7]  # three steps's threshold
10 factor = 0.709  # scale factor
11 margin = 44
12 frame_interval = 3
13 batch_size = 1000
14 image_size = 182
15 input_image_size = 160
16 
17 print('Creating networks and loading parameters')
18 
19 with tf.Graph().as_default():
20     gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.6)
21     sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options, log_device_placement=False))
22     with sess.as_default():
23         pnet, rnet, onet = detect_face.create_mtcnn(sess, 'D:\\pycode\\real-time-deep-face-recognition-master\\20170512-110547')
24 
25 image_path = 'D:\\Users\\a\\Pictures\\test_pho\\5.jpg'
26 
27 img = misc.imread(image_path)
28 bounding_boxes, _ = detect_face.detect_face(img, minsize, pnet, rnet, onet, threshold, factor)
29 nrof_faces = bounding_boxes.shape[0]  # 人脸数目
30 print('找到人脸数目为:{}'.format(nrof_faces))
31 
32 print(bounding_boxes)
33 
34 crop_faces = []
35 for face_position in bounding_boxes:
36     face_position = face_position.astype(int)
37     print(face_position[0:4])
38     cv2.rectangle(img, (face_position[0], face_position[1]), (face_position[2], face_position[3]), (0, 255, 0), 2)
39     crop = img[face_position[1]:face_position[3],
40            face_position[0]:face_position[2], ]
41 
42     crop = cv2.resize(crop, (96, 96), interpolation=cv2.INTER_CUBIC)
43     print(crop.shape)
44     crop_faces.append(crop)
45     print(crop)
46     plt.imshow(crop)
47     plt.show()
48 
49 plt.imshow(img)
50 plt.show()

 

 

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
存储 Web App开发 消息中间件
原来10张图就可以搞懂分布式链路追踪系统原理
原来10张图就可以搞懂分布式链路追踪系统原理
原来10张图就可以搞懂分布式链路追踪系统原理
|
10月前
|
存储 缓存 关系型数据库
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL的存储引擎是其核心组件之一,负责数据的存储、索引和检索。不同的存储引擎具有不同的功能和特性,可以根据业务需求 选择合适的引擎。本文详细介绍了MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案。
1776 57
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
|
算法 5G 数据安全/隐私保护
基于MIMO系统的预编码matlab性能仿真
**摘要** 本文展示了在MATLAB2022a中运行的无水印预编码算法效果。核心程序采用详细中文注释,涉及MIMO系统中关键的MMSE和量化预编码技术。MMSE准则追求信号估计的准确性,通过利用信道状态信息优化发射,减少干扰,适合高容量需求;而量化准则结合格雷码量化,将连续信号映射至离散集合,简化硬件实现,适用于功耗敏感场景,但会引入量化误差。两者权衡了性能与实现复杂度。
|
缓存 Python
Conda太慢?试试这个加速工具!
Conda太慢?试试这个加速工具!
683 0
|
数据可视化 前端开发 JavaScript
可视化工具D3.js
可视化工具D3.js
369 0
|
Linux TensorFlow 算法框架/工具
linux下anaconda换源
linux下anaconda换源
1480 1
|
关系型数据库 MySQL 测试技术
数据库升级是一个涉及数据备份、新版本安装、数据迁移和测试等关键环节的复杂过程
【7月更文挑战第21天】数据库升级是一个涉及数据备份、新版本安装、数据迁移和测试等关键环节的复杂过程
341 1
|
Java 数据安全/隐私保护
Java使用PDFBox开发包实现对PDF文档内容编辑与保存
Java使用PDFBox开发包实现对PDF文档内容编辑与保存
485 7
|
Android开发
[Android jni] Bitmap与Mat对象的相互转换
[Android jni] Bitmap与Mat对象的相互转换
384 0
|
SQL 资源调度 安全
开启 Kerberos 安全的大数据环境中,Yarn Container 启动失败导致作业失败
开启 Kerberos 安全的大数据环境中,Yarn Container 启动失败导致作业失败