许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MTCNN各子函数文件说明(网络结构/损失函数/数据加载)

MTCNN各子函数文件说明(网络结构/损失函数/数据加载)

阅读数 4
点赞 0
article_banner

1.三个网络的说明

   MTCNN由3个网络结构组成(P-Net,R-Net,O-Net)。

Proposal Network (P-Net):该网络结构主要获得了人脸区域的候选窗口和 边界 框的回归向量。并用该边界框做回归,对候选窗口进行校准,然后通过非极大值抑制(NMS)来合并高度重叠的候选框, 再利用NMS去除重叠窗体。

Refine Network (R-Net):该网络结构还是通过边界框回归和NMS来去掉那些false-positive区域。只是由于该网络结构和P-Net网络结构有差异,多了一个全连接层,所以会取得更好的抑制false-positive的作用。

Output Network (O-Net):该层比R-Net层又多了一层卷基层,所以处理的结果会更加精细。作用和R-Net层作用一样。但是该层对人脸区域进行了更多的监督,同时还会输出5个地标(landmark)。

MTCNN模型 推理  

   MTCNN的 Inference  流程如下图所示:
在这里插入图片描述

   由原始图片和PNet生成预测的bounding boxes。输入原始图片和PNet生成的 bounding box ,通过RNet,生成校正后的bounding box。

   输入元素图片和RNet生成的bounding box,通过ONet,生成校正后的bounding box和人脸面部轮廓关键点。执行过程如下所示:

  1. 首先读入要检测的图片:image = cv2.imread(imagepath)
  2. 加载训练好的模型参数,构建检测对象:detector = MtcnnDetector
  3. 执行推理操作:all_boxes,landmarks = detector.detect_face(image)
  4. 绘制目标框:cv2.rectangle(image, box,(0,0,255))

        注: ONet功能与RNet作用类似,只是在去除重叠候选窗口的同时,同时显示五个人脸关键点定位。

2.函数的说明
PNet:
gen_12net_data.py

   训练PNet的数据的采样代码

   输入:是wider_face_train.txt,其中包括图片的路径,人脸框的位置(X1,X2,Y1,Y2);WIDER_train文件内的图片

   输出:…/data/12/negative positive part 内保存图片,还有…/data/12/pos_12.txt neg_12.txt part_12.txt
gen_landmark_aug_12.py:

   用于生成特征点的数据,在这里并没有生成tfreord,只是对进行数据增强(随机 镜像  、随机旋转)

   此脚本的输入:是trainImageList.txt,其中定义了文件的路径,人脸框的位置(x1,x2,y1,y2),特征点的位置(x1,y1,x5,y5)

   输出: …\data\12 train_PNet_landmark_aug文件中和中landmark_12_aug.txt

gen_imglist_pnet.py:

   将pos,neg,part 和landmark 数据标签合并

   输入:…\data\12\neg_12.txt pos_12.txt part_12.txt & … \data\12\landmark_24_aug.txt

   输出:…\data\imglists\PNet\train_PNet_landmark.txt

RNet:
gen_hard_example.py


   分别生成RNet和ONet的 训练数据  

   输入:…\data\trainImageList.txt WIDER_train文件夹

   输出:…\data\no_LM24\neg_24.txt pos_24.txt part_24.txt

gen_landmark_aug_24.py:同PNet

gen_imglist_rnet.py

   将pos,neg,part 和landmark 数据标签合并

   输入:…\data\no_LM24\neg_24.txt pos_24.txt part_24.txt & … \data\24\landmark_24_aug.txt

   输出:…\data\imglists_noLM\RNet\train_RNet_landmark.txt

gen_RNet_tfrecords.py:

   输入:(输入标签文件)…\data\no_LM24\part_24.txt pos_24.txt neg_24.txt & …\data\24\landmark_24_aug.txt

   输出:(输出tfrecord文件)…\data\imglists_noLM\RNet\part_landmark.tfrecord_shuffle pos_landmark.tfrecord_shuffle neg_landmark.tfrecord_shuffle landmark_landmark.tfrecord_shuffle

train_RNet:

   输入:(输入tfrecord数据文件) …\data\imglists_noLM\RNet\neg_landmark.tfrecord_shuffle part_landmark.tfrecord_shuffle pos_landmark.tfrecord_shuffle landmark_landmark.tfrecord_shuffle

   输出:(输出模型参数文件)

ONet:
gen_hard_example.py


   输入:…\data\wider_face_train_bbx_gt.txt WIDER_train文件夹 & …\data\MTCNN_model\RNet_landmark下的模型参数 & …\data\MTCNN_model\PNet_landmark下的模型参数

   输出:…\data\no_LM24\neg_24.txt pos_24.txt part_24.txt

gen_landmark_aug_48.py

   输入:…\data\trainImageList.txt , lfw_5590文件夹

   输出:…\data\48\landmark_48_aug.txt , train_ONet_landmark_aug文件夹(lfw小图图片)

gen_imglist_onet

   将pos,neg,part 和landmark 数据标签合并

   输入:…\data\no_LM48\neg_48.txt pos_48.txt part_48.txt & … \data\48\landmark_48_aug.txt

   输出:…\data\imglists\ONet\train_ONet_landmark.txt


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空