当前位置: 首页 > java >正文

python的mtcnn检测图片中的人脸并标框

python的mtcnn检测图片中的人脸并标框,标记鼻尖位置

import cv2
from mtcnn import MTCNN# 初始化 MTCNN 检测器
# stages:指定检测阶段
# 指定运行设备为CPU
detector = MTCNN(stages="face_and_landmarks_detection", device="CPU:0")# 配置参数
config = {'mtcnn_params': {'min_face_size': 20,        # 最小检测人脸尺寸'scale_factor': 0.709,      # 图像金字塔缩放因子'threshold_pnet': 0.6,      # P-Net人脸概率阈值'nms_pnet1': 0.5,           # P-Net第一次NMS阈值'nms_pnet2': 0.7,           # P-Net第二次NMS阈值'threshold_rnet': 0.7,      # R-Net人脸概率阈值'nms_rnet': 0.7,            # R-Net的NMS阈值'threshold_onet': 0.8,      # O-Net人脸概率阈值'nms_onet': 0.7             # O-Net的NMS阈值},'confidence_threshold': 0.85,    # 最终置信度阈值'nms_threshold': 0.3,            # 后处理NMS阈值(未使用)'depth_smooth_size': 3,          # 深度平滑参数(未使用)'display_scale': 0.75,           # 显示缩放(未使用)'async_interval': 2              # 异步间隔(未使用)
}# 读取图像
image = cv2.imread('test.png')  # 替换为你的图像文件路径# 进行人脸检测
faces = detector.detect_faces(image, **config['mtcnn_params'])# 遍历检测到的人脸
for face in faces:if face['confidence'] >= config['confidence_threshold']:# 获取人脸的边界框x, y, w, h = face['box']# 绘制边界框cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)# 获取人脸关键点landmarks = face['keypoints']# 获取鼻尖位置nose_tip = landmarks['nose']print(f"鼻尖位置: {nose_tip}")# 绘制鼻尖点cv2.circle(image, nose_tip, 5, (0, 0, 255), -1)# 显示图像
cv2.imshow('Face Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

  • min_face_size:增大可过滤小尺寸误检。
  • 提高 P-Net、R-Net、O-Net 的阈值,提高可增强筛选严格性。
  • scale_factor:值越小,生成的金字塔图像越多,但会增加计算量。适当降低可减少误检。
http://www.xdnf.cn/news/1597.html

相关文章:

  • 精选面试题
  • 观成科技:摩诃草组织Spyder下载器流量特征分析
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用NSString类型字符串?
  • [Mac] 使用homebrew安装miniconda
  • 机器学习中的特征存储是什么?我需要一个吗?
  • 游戏引擎学习第241天:将OpenGL VSync 和 sRGB 扩展
  • nerf 有哪些 高精度建图算法
  • vue3,element ui框架中为el-table表格实现自动滚动,并实现表头汇总数据
  • 如何保证高防服务器中的系统安全?
  • Rust项目GPG签名配置指南
  • 再来1章linux 系列-11 系统的延迟任务及定时任务 at ,crontab,mail;/etc/at.allow,/etc/at.deny
  • C++学习:六个月从基础到就业——STL算法(二)排序与变序算法
  • 从单机工具到协同平台:开源交互式模拟环境的技术演进之路
  • 空闲列表:回收和再利用
  • 【MySQL】表的约束
  • 面阵相机中M12镜头和远心镜头的区别及性能优势
  • 游戏引擎学习第243天:异步纹理下载
  • Python类可以有多个构造函数吗
  • Freertos----中断管理
  • 使用HYPRE库并行装配IJ稀疏矩阵指南: 矩阵预分配和重复利用
  • 《ATPL地面培训教材13:飞行原理》——第1章:概述与定义
  • 基于PHP+Uniapp的互联网医院源码:电子处方功能落地方案
  • EasyRTC音视频实时通话在线教育解决方案:打造沉浸式互动教学新体验
  • 大模型AI的“双刃剑“:数据安全与可靠性挑战与破局之道
  • 前端跨端框架的开发以及IOS和安卓的开发流程和打包上架的详细流程
  • 电子病历高质量语料库构建方法与架构项目(计划篇)
  • 【C++】二叉树进阶面试题
  • IDEA将本地的JAR文件手动安装到 Maven的本地仓库
  • 无人设备遥控之调度自动化技术篇
  • 在vue项目中实现svn日志打印