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

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:值越小,生成的金字塔图像越多,但会增加计算量。适当降低可减少误检。

相关文章:

  • Android移动应用开发入门示例:Activity跳转界面
  • 数据仓库建设全解析!
  • Whisper微调及制作方言数据集
  • 动态哈希映射深度指南:从基础到高阶实现与优化
  • Vue开发网站会有“#”原因是前端路由使用了 Hash 模式
  • Qt使用 SQLite 数据库的基本方法
  • 代码随想录算法训练营第二十六天
  • Python爬虫第19节-动态渲染页面抓取之Splash使用下篇
  • React-组件和props
  • 【Python爬虫实战篇】--Selenium爬取Mysteel数据
  • Cephalon端脑云:神经形态计算+边缘AI·重定义云端算力
  • 网页版 deepseek 对话问答内容导出为 PDF 文件和 Word 文件的浏览器插件下载安装和使用说明
  • spark-streaming(二)
  • NeRF:原理 + 实现 + 实践全流程配置+数据集测试【Ubuntu20.04 】【2025最新版】
  • 【1区SCI】Fusion entropy融合熵,多尺度,复合多尺度、时移多尺度、层次 + 故障识别、诊断-matlab代码
  • CE第一次作业
  • 协作开发攻略:Git全面使用指南 — 第一部分 Git基础
  • 3台CentOS虚拟机部署 StarRocks 1 FE+ 3 BE集群
  • 与终端同居日记:Shell交响曲の终极共舞指南
  • 海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成
  • 我国首次实现地月距离尺度的卫星激光测距
  • 无视规范开“远端”、企业云端被窃密,国安部:莫让运维成运“危”
  • 王宝强谈《棋士》:饰演这个灰度人物有一种被割裂的痛苦
  • 中纪报刊文:新时代反腐败斗争为党赢得历史主动
  • 王珊珊读《吾自绝伦》|摘掉皮普斯的“假发”
  • 医学泰斗客死他乡?AI小作文批量如何炮制?对话已被抓获的网络水军成员