MTCNN训练数据整理

对于训练数据,分为四个组成部分

1. 负样本 3

2. 正样本 1 

3. 部分样本 1

4. 关键点样本 2

比例为 3:1:1:2


其中对于 1,2,3中数据,来自wider_face数据库

对于4中数据,来自CelebA数据库


包括 label box landmark


label

negative 0

positive 1

part 2

landmark 3




分为三层网路PNet RNet ONet

1.

输入:积分图像

输出:

prob1 置信度

conv4-2 边框偏移


2.

输入:根据第一步提取的边框,提取图片,作为batch进行输入

输出:

prob1: batch_size * 2 置信度

conv5-2: batch_size * 4 边框偏移


3.

输入:根据第二步提取的边框,提取图片,作为batch进行输入

输出:

prob1: batch_size * 2 置信度

conv6-2: batch_size * 4 边框偏移

conv6-3: batch_size * 10 人脸关键点





### MTCNN 数据预处理方法实现步骤 #### 1. 准备标注数据文件 为了进行有效的训练,准备高质量的标注数据至关重要。通常使用的数据集如WIDER FACE包含了大量人脸图像及其对应的边界框和姿态信息。这些数据会被整理成特定格式的文件以便后续读取和解析[^1]。 #### 2. 图像增强与扩充 通过对原始图片施加随机变换来增加样本多样性,比如水平翻转、旋转角度调整等操作可以有效提升模型泛化能力。这一步骤不仅能够扩大训练集规模,还能使模型更加鲁棒地应对不同场景下的输入[^2]。 #### 3. 裁剪并保存正负样例图 基于给定的人脸位置标签,在原图中裁切出固定大小的小窗口作为候选区域;对于那些完全覆盖真实人脸中心点且IoU(Intersection over Union)大于一定阈值(例如0.7)的情况标记为正面例子;反之则视为负面例子存储下来用于下一步训练前准备工作中。 #### 4. PNet阶段的数据生成 PNet负责初步筛选可能含有人物脸部特征的大致范围。因此在此环节需针对上述得到的所有候选项制作适合该子网学习用到的小尺寸patch(通常是12×12像素),同时记录其类别标签(即是否为人脸)以及回归参数(用来修正初始估计误差)。此部分工作可通过编写脚本来自动化完成,确保效率的同时也提高了准确性。 ```python import numpy as np from PIL import Image, ImageDraw def generate_pnet_data(image_path, annotation_file, output_dir): """ Generate training data for the PNet stage of MTCNN. Args: image_path (str): Path to directory containing images. annotation_file (str): File with bounding box annotations. output_dir (str): Directory where processed patches will be saved. Returns: None """ # Read and parse annotation file... pass # Process each image according to its corresponding bbox info... pass # Save generated positive/negative samples into specified folder structure... pass ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值