采用tensorflow框架编写的人脸检测MTCNN算法实现

网友投稿 1006 2022-10-31

采用tensorflow框架编写的人脸检测MTCNN算法实现

采用tensorflow框架编写的人脸检测MTCNN算法实现

tensorflow-MTCNN

人脸检测MTCNN算法,采用tensorflow框架编写,从理解到训练,中文注释完全,含测试和训练,支持摄像头,代码参考AITTSMD,做了相应删减和优化。

模型理解

代码介绍

环境说明

ubuntu16.04 python3.6.5 tensorflow1.8.0 opencv3.4.3 pip install tqdm为了显示进度条

代码介绍

data下放置训练所用的原始数据和划分数据,生成的tfrecord等 detection下的fcn_detector.py主要用于PNet的单张图片识别,detector.py用于RNet和ONet的一张图片通过PNet截取的多个人脸框的批次识别,MtcnnDetector.py为识别人脸和生成RNet,ONet输入数据 graph里放置的是训练过程中生成的graph文件 output里放置识别图像或视频完成后存储放置的路径 picture里是要测试的图像放置路径 preprocess里是预处理数据程序,BBox_utils.py和utils.py,loader.py是一些辅助程序,gen_12net_data.py是生成PNet的pos,neg,part的程序,gen_landmark_aug.py是生成landmark数据的程序,gen_imglist_pnet.py是pnet的四种数据组合一起,gen_hard_example.py是生成rnet,onet的三种数据程序,gen_tfrecords.py是生成tfrecord文件的程序 train中的config是一些参数设定,大都文件夹我都直接写死了,所以里面参数能改的很少,model.py是模型,train.py是训练,train_model.py针对不同网络训练 test.py是测试代码

-数据

将WIDERFace的训练数据-解压,将里面的WIDER_train文件夹放置到data下,将Deep Convolutional Network Cascade for Facial Point Detection的训练集解压,将里面的lfw_5590和net_7876文件夹放置到data下。model文件夹下已存储好我训练的权值文件了。

运行

训练: 将目录cd到preprocess上, python gen_12net_data.py生成三种pnet数据, python gen_landmark_aug.py 12 生成pnet的landmark数据, python gen_imglist_pnet.py整理到一起, python gen_tfrecords.py 12生成tfrecords文件 将目录cd到train上python train.py 12 训练pnet 将目录cd到preprocess上, python gen_hard_example.py 12 生成三种rnet数据, python gen_landmark_aug.py 24 生成rnet的landmark数据, python gen_tfrecords.py 24生成tfrecords文件 将目录cd到train上python train.py 24 训练rnet 将目录cd到preprocess上, python gen_hard_example.py 24 生成三种onet数据, python gen_landmark_aug.py 48 生成onet的landmark数据, python gen_tfrecords.py 48生成tfrecords文件 将目录cd到train上python train.py 48 训练onet 测试: python test.py

一些建议

生成hard_example时间非常长需要三到四小时,所以如果你想从头训练请耐心等待,如果代码或理解有什么问题,欢迎批评指正。

结果展示

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:非递归归并排序详细分析
下一篇:Mobi.css 一个轻量、可拓展、移动端优先的 CSS 框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~