人脸关键点检测模型-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
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Workbuddy注册额外积分
角色定位与核心任务目标 明确了基本定位后,我们直接切入核心:作为一名专业的文章优化师,我的核心职责在于,将那些带有明显AI生成特征的文本,深度重塑为拥有个人特色与行业洞见的优质内容。 换句话说,这项任务的关键在于实施一次“精准的换血手术”。你必须严格保证原文所有的事实依据、核心观点、逻辑框架,以及每
我把 Anthropic 的 Harness 工程思想做成了一个 Skill
用AI写代码,难在哪儿? 用AI生成代码本身并不难,真正的挑战在于让它稳定地交付一个真正可用的东西。这篇文章,我们就来聊聊Anthropic工程团队是如何破解这个难题的,以及我如何将这套方法论落地成了一个可以复用的实战工具。 用 AI 写代码有多难?不是写不出来难,是让它稳定交付可用的东西很难。这篇
沃尔玛、塔吉特等美国零售巨头拥抱 AI,明确用户需为购物助手出错担责
美国零售巨头拥抱AI新玩法:功能归我,风险归你? 最近有件事挺有意思,美国那边的大型零售商们,正铆足了劲把AI往购物流程里塞。但你猜怎么着?一旦AI捅了娄子,买单的却很可能变成了消费者自己。 这不,就在当地时间4月5号,外媒Futurism的一篇报道就点破了这个现象。企业们一边热火朝天地推广AI功能
小米物流大件“当日达”服务上线 50 城
小米物流大家电“当日达”实现全国50城覆盖,上午11点前下单最快当日送达 对于大家电配送时效长的普遍困扰,小米物流带来了全新的解决方案。最新消息显示,小米旗下大件商品的“当日达”服务范围已成功拓展至全国50座重点城市。除了北京、上海、广州、深圳、杭州、成都等一线与新一线核心城市外,此次升级还囊括了天
为什么现在很多人觉得 OpenClaw 不好用
当前开源版本的定位 你得明白,当前的开源版本,本质上更偏向于一个**开发者工具链**,而非一个即开即用的完整产品。它的核心组件非常明确: 一个基于 Node js 的运行环境 (runtime) 一个网关 (gateway) 插件与技能 (plugins skills) JSON 配置文件 命令
- 日榜
- 周榜
- 月榜
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

