人脸关键点检测模型-MTCNN
本文介绍了基于PaddlePaddle实现的MTCNN多任务卷积神经网络项目,该模型含P-Net、R-Net、O-Net三层结构,可检测人脸区域及关键点。说明环境要求、文件功能,详述数据集下载与放置,训练需分三步依次训练PNet、RNet、ONet模型,每步依赖上一步结果,还提及预测方法及参考资料。

啥也别说,先来试试效果吧。
In [2]!python infer_path.py --image_path=dataset/test.webpfrom PIL import Imagedisplay(Image.open('result.webp'))登录后复制 /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/setuptools/depends.py:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses import imp/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/backward.py:1640: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working return list(x) if isinstance(x, collections.Sequence) else [x]W0408 11:14:58.244475 362 device_context.cc:362] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1W0408 11:14:58.249330 362 device_context.cc:372] device: 0, cuDNN Version: 7.6.: cannot connect to X server登录后复制
登录后复制
前言
MTCNN,Multi-task convolutional neural network(多任务卷积神经网络),将人脸区域检测与人脸关键点检测放在了一起,总体可分为P-Net、R-Net、和O-Net三层网络结构。它是2016年中国科学院深圳研究院提出的用于人脸检测任务的多任务神经网络模型,该模型主要采用了三个级联的网络,采用候选框加分类器的思想,进行快速高效的人脸检测。这三个级联的网络分别是快速生成候选窗口的P-Net、进行高精度候选窗口过滤选择的R-Net和生成最终边界框与人脸关键点的O-Net。和很多处理图像问题的卷积神经网络模型,该模型也用到了图像金字塔、边框回归、非最大值抑制等技术。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
环境
PaddlePaddle 2.0.1Python 3.7文件介绍
models/Loss.py MTCNN所使用的损失函数,包括分类损失函数、人脸框损失函数、关键点损失函数models/PNet.py PNet网络结构models/RNet.py RNet网络结构models/ONet.py ONet网络结构utils/data_format_converter.py 把大量的图片合并成一个文件utils/data.py 训练数据读取器utils/utils.py 各种工具函数train_PNet/generate_PNet_data.py 生成PNet训练的数据train_PNet/train_PNet.py 训练PNet网络模型train_RNet/generate_RNet_data.py 生成RNet训练的数据train_RNet/train_RNet.py 训练RNet网络模型train_ONet/generate_ONet_data.py 生成ONet训练的数据train_ONet/train_ONet.py 训练ONet网络模型infer_path.py 使用路径预测图像,检测图片上人脸的位置和关键的位置,并显示infer_camera.py 预测图像程序,检测图片上人脸的位置和关键的位置实时显示数据集下载
WIDER Face 下载训练数据WIDER Face Training Images,解压的WIDER_train文件夹放置到dataset下。并下载 Face annotations ,解压把里面的 wider_face_train_bbx_gt.txt 文件放在dataset目录下,Deep Convolutional Network Cascade for Facial Point Detection 。下载 Training set 并解压,将里面的 lfw_5590 和 net_7876 文件夹放置到dataset下解压数据集之后,dataset目录下应该有文件夹lfw_5590,net_7876,WIDER_train,有标注文件testImageList.txt,trainImageList.txt,wider_face_train.txt,wider_face_train_bbx_gt.txt训练模型
训练模型一共分为三步,分别是训练PNet模型、训练RNet模型、训练ONet模型,每一步训练都依赖上一步的结果。
第一步 训练PNet模型
PNet全称为Proposal Network,其基本的构造是一个全卷积网络,P-Net是一个人脸区域的区域建议网络,该网络的将特征输入结果三个卷积层之后,通过一个人脸分类器判断该区域是否是人脸,同时使用边框回归。
请在终端执行以下命令:
cd train_PNet 切换到train_PNet文件夹python3 generate_PNet_data.py 首先需要生成PNet模型训练所需要的图像数据python3 train_PNet.py 开始训练PNet模型第二步 训练RNet模型
全称为Refine Network,其基本的构造是一个卷积神经网络,相对于第一层的P-Net来说,增加了一个全连接层,因此对于输入数据的筛选会更加严格。在图片经过P-Net后,会留下许多预测窗口,我们将所有的预测窗口送入R-Net,这个网络会滤除大量效果比较差的候选框,最后对选定的候选框进行Bounding-Box Regression和NMS进一步优化预测结果。
请在终端执行以下命令:
cd train_RNet 切换到train_RNet文件夹python3 generate_RNet_data.py 使用上一步训练好的PNet模型生成RNet训练所需的图像数据python3 train_RNet.py 开始训练RNet模型第三步 训练ONet模型
ONet全称为Output Network,基本结构是一个较为复杂的卷积神经网络,相对于R-Net来说多了一个卷积层。O-Net的效果与R-Net的区别在于这一层结构会通过更多的监督来识别面部的区域,而且会对人的面部特征点进行回归,最终输出五个人脸面部特征点。
请在终端执行以下命令:
cd train_ONet 切换到train_ONet文件夹python3 generate_ONet_data.py 使用上两部步训练好的PNet模型和RNet模型生成ONet训练所需的图像数据python3 train_ONet.py 开始训练ONet模型预测
python3 infer_path.py 使用图像路径,识别图片中人脸box和关键点,并显示识别结果
python3 infer_camera.py 使用相机捕获图像,识别图片中人脸box和关键点,并显示识别结果
参考资料
https://github.com/AITTSMD/MTCNN-Tensorflowhttps://blog.csdn.net/qq_36782182/article/details/83624357本项目Github地址:https://github.com/yeyupiaoling/PaddlePaddle-MTCNN
相关攻略
常见报错解析:“Access Not Configured”故障排除指南 许多开发者和团队成员在使用OpenClaw集成飞书时,都曾遭遇过一个典型的中断提示:“access not configured”(访问未配置)。该提示会明确显示您的飞书账户ID及一组唯一的配对验证码,并指出需要联系机器人所有
OpenClaw 常用指令大全与使用详解 openclaw status:此命令是查看OpenClaw系统整体健康状态的核心指令,执行后即获取服务运行状况的全面报告,是日常运维的首要诊断工具。 openclaw gateway restart:在修改网关配置后,必须运行此指令以重启网关服务,使配置文
如何通过 OpenClaw 实现 Chrome 浏览器自动化操控 在软件开发与自动化测试领域,持续学习是常态。本文旨在详细介绍如何利用 OpenClaw 连接并控制一个已开启的 Chrome 浏览器实例,实现点击、文本输入、文件上传、页面滚动、屏幕截图以及执行 JavaScript 等自动化操作。整
项目概述 你是否希望将强大的 AI 助手带入日常聊天?本教程将指导你完成搭建流程,让你能在 QQ 上直接调用 OpenClaw 智能助手,实现无门槛的 AI 对话体验。 架构说明 ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ QQ 用户 │ ─
一 下载并安装Node js,全程保持默认设置 首先,请前往Node js官方网站的下载中心:https: nodejs org zh-cn download。根据您的操作系统(Windows Mac Linux)下载对应的安装程序。运行安装向导时,整个过程非常简单,您只需连续点击“下一步”按钮
热门专题
热门推荐
速览攻略:世界圣羽翼王核心打法与全面解析 本攻略将为你完整呈现《洛克王国》世界圣羽翼王的通关秘籍,深度剖析两种高效实战打法:追求极致速度的“燃薪虫四回合速通”与稳定输出的“酷拉无限连击流”。文章将进一步解析这位翼系精灵王的技能机制、属性克制关系及其在PVE与PVP中的实战定位,帮助你彻底掌握应对其隐
速览:工程系统核心机制解析 在《异种航员2》中,工程系统是整个抵抗力量赖以运转的“战略后勤中枢”。无论是研发新武器、生产重型装甲还是制造先进飞行器,所有实体装备的产出都依赖于此。简言之,该系统的核心运作围绕着两大关键:工程师人力的高效配置与全球稀缺资源的精细化调度。工程师的数量直接决定了每个项目的建
核心速览 在《洛克王国世界》中,治愈兔是一位兼具功能性任务角色与实战辅助能力的精灵。它的价值不仅在剧情推进中体现,更在于对战里出色的治疗与防护表现。本文将为你全面解析治愈兔的精准获取位置、种族属性特点以及实战技能搭配,助你顺利捕捉并最大化其在队伍中的作用。所有关键信息将通过清晰的图文内容详细展示,确
速览 在《红色沙漠》中,挑战传说之狼这一强大的任务BOSS,需要玩家进行充分的准备并遵循完整的任务流程。整个过程环环相扣,你必须首先参与塞莱斯特家族的势力任务,通过完成任务将家族声望提升至指定等级,才能解锁【传说之狼】的专属讨伐任务,最终直面这个传说中的强大生物。 红色沙漠传说之狼怎么打 归根结底,
【宝可梦Pokopia】舒适度全解析:快速提升环境等级的核心秘诀 你是否正在探索《宝可梦Pokopia》世界,并希望有效提升宝可梦栖息地的舒适度?舒适度不仅是衡量宝可梦快乐程度的晴雨表,更是解锁游戏核心内容、加速发展的关键驱动指标。本攻略将系统性地为你揭示提升舒适度的核心途径,涵盖从装饰栖息地、建造





