DSFD人脸检测算法的tensorflow实现
DSFD
高性能人脸检测算法
https://arxiv.org/abs/1810.10220
github
这篇文章不会关注文章的细节内容,主要让大家在tensorflow框架下面跑起来,并能够有个结果,并且方便的削减运算进行自己的线上部署,原理介绍应当参考论文会更为妥当。
最近的人脸检测算法有了不小的进展,包括S3FD,SSH,DSFD,retinanetface pyramidbox 等,都算是single stage的检测算法。在我看来都是类ssd的架构,mutibox的方式来实现。然后,再看新的anchor free的方法,也是类似于该架构,只不过检测的bounding box encode的方式改变了,也引入了关键点检测上的一些东西,所以看来CV领域的几个关键的问题都在相互学习,互相取长补短,共同进步。
顺便说一个anchor free的人脸检测还没有被充分的挖掘。
另外,这个代码也不是完整的dsfd 的实现,借鉴了很多的文章的方法,也借了别的repo的代码,仅供参考 :
如果有问题可以mailme,2120140200@mail.nankai.edu.cn 或者留言 ?
1 demo
这里有一个训好的模型
https://pan.baidu.com/s/1cUqnf9BwUVkCy0iT6EczKA ( 提取码 ty4d )
widerface val set
Easy MAP | Medium MAP | hard MAP |
---|---|---|
0.942 | 0.935 | 0.880 |
fddb |
---|
0.987 |
参考vis.py 用来可视化
首先看一下demo图片吧,检出约700+人脸,没有论文里面多。(此处原图分辨率是1600x898,, 原图输入只能检测出500个脸,放大两倍能检测出750+,没试过resize到更大了, 用的resnet50)
不过实际的部署上不能这么用,注意固定输入尺寸,和nms的输出数量,不能不考虑耗时。
(caution:第二个图,1300+人脸检出,我也不知道是谁的图,我就拿来用了,如果你觉得属于侵权行为,请联系我,我会删除 :))
关键点release在github。这个模型是由300W以及300VW训练出来的,大致±90度, (俯仰角±45,稍差)之内都可以稳定检测。
train
一步步来,看如何训练
step 1
首先clone下代码,git clone https://github.com/610265158/DSFD-tensorflow.git
step 2
下载数据集widerface
把 WIDER_train, WIDER_val and wider_face_split 放到新建的WIDER 下面,
step 3
然后运行,python prepare_wider_data.py
, 然后会产生train.txt 和val.txt
其中 内容每一行是这个样子:./WIDER/WIDER_val/images/0–Parade/0_Parade_Parade_0_913.jpg| 238,146,450,392,1 612,192,818,426,1 28,100,104,214,1。
也就是如果 你要训练你自己的数据就这样: imgpath| xmin,ymin,xmax,ymax,1 …
step 4
下载imagenet 预训练模型,
http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz
当然也可以不加载,从头训练
step 5
查看train_config.py 里面是配置文件,包括gpu配置等,默认配置不动的话,如果数据,txt以及预训练模型都弄好,是可以直接跑起来的,
python train.py
就可以看到有log输出了
ps
train_config.py 里面有很多参数,包括多卡训练的配置,BN GN,是否锁住bn层,学习率,batch size 等,如果跑起来都是可以试一下的 ?
demo
如果你训练好了,会在./model 下有模型里面有checkpoint 文件,
里面内容如下,选好你要转换的模型,
model_checkpoint_path: “epoch_17L2_0.00025.ckpt”
all_model_checkpoint_paths: “epoch_**17 **L2_0.00025.ckpt”
然后在根目录下,运行:
python tools/auto_freeze.py
将会在model下生成一个detector.pb 这个模型就可以用了,
然后 看一下 vis.py 里面
改一下data_dir 到你想检测的那个目录,会递归的查找jpg png结尾的图片,然后检测。
python vis.py
###后记
dsfd是一个检测性能很强的算法,不过要是部署的话肯定不行,计算量比较大,后续会删减一些结构,进行小网络的实验,都会加到里面。然后自己的线上的算法也该更新一下下了。
另外,还有一个人脸关键点的算法,还没有整理好,一个轻量级的网络,效果还不错,抖动也抑制的比较好,后续都会放出来:)
DSFD人脸检测算法的tensorflow实现相关推荐
- 人脸检测算法_腾讯已开源高精度人脸检测算法DSFD
腾讯提出一种高精度双分支人脸检测器DSFD并开源.该算法曾在全球两大权威人脸检测数据集WIDERFACE和FDDB上均取得了第一. 任务介绍 人脸检测算法是在图像上检测出人脸的位置(通常以矩形框形式输 ...
- 腾讯已开源高精度人脸检测算法DSFD
腾讯提出一种高精度双分支人脸检测器DSFD并开源.该算法曾在全球两大权威人脸检测数据集WIDERFACE和FDDB上均取得了第一. 任务介绍 人脸检测算法是在图像上检测出人脸的位置(通常以矩形框形式输 ...
- 重磅!刷新两项世界纪录的腾讯优图人脸检测算法DSFD开源了!
近日,知名开源社区Github上有个名为DSFD(Dual Shot Face Detector)的算法引起了业内关注,它正是来自于腾讯优图.目前,该算法已经被计算机视觉顶级会议CVPR 2019接收 ...
- 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源...
雷锋网(公众号:雷锋网) AI 科技评论按:近年来,卷积神经网络在人脸检测中取得了很大的成功,然而这些方法在处理人脸中多变的尺度,姿态,遮挡,表情,光照等问题时依然比较困难.为此,腾讯优图推出名为 D ...
- 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源
雷锋网(公众号:雷锋网) AI 科技评论按:近年来,卷积神经网络在人脸检测中取得了很大的成功,然而这些方法在处理人脸中多变的尺度,姿态,遮挡,表情,光照等问题时依然比较困难.为此,腾讯优图推出名为 D ...
- 【CV】10种轻量级人脸检测算法大PK | 代码集合开源
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 最近在微信公众号 AIZOO 里看到轻量级人脸检测算法大盘点的文章 ...
- 10种轻量级人脸检测算法大PK
几个月前,AIZOO曾经盘点过 最强六大开源轻量级人脸检测项目分析 | 附打包下载,nihate同学将它丰富到10种算法,并用Python.对他们进行了汇总整理,以及效果的对比. Github链接:h ...
- 10种轻量级人脸检测算法大PK | 代码集合开源
喜欢就关注 AIZOO 吧! 几个月前,AIZOO曾经盘点过 最强六大开源轻量级人脸检测项目分析 | 附打包下载,nihate同学将它丰富到10种算法,并用Python.对他们进行了汇总整理,以及效果 ...
- Matlab人脸检测算法详解
这是一个Matlab人脸检测算法详解 前言 人脸检测结果 算法详解 源代码解析 所调用函数解析 bwlabel(BW,n) regionprops rectangle 总结 前言 目前主流的人脸检测与 ...
最新文章
- SQL游标原理和使用方法
- 实训笔记(一) 创建文件夹(SDCard)
- vscode终端没显示_记一个VS Code终端显示问题的较完美解决
- python plot方法的使用_【python】matplotlib.pyplot入门
- 6.方法(go语言学习笔记)
- NOT运算符与运算符
- Chrome谷歌浏览器私密浏览自动开启功能获批专利
- A/D转换器(华中师范)
- c++ windows下declspec
- 标准模板库(STL) map —— 初始化问题
- 山东中职计算机应用基础课件,计算机应用基础课件(中职)-精选版.ppt
- 第二课 Python Web企业门户网站-框架搭建
- 邮箱收不到验证邮件怎么回事?为什么我的电子邮件收不到验证码的原因,无限容量邮箱开通
- 软件开发中什么是CI/CD
- 《带人要同频,管人要共情》读书笔记
- 互联网高端社畜行话大全(表情包)
- MATLAB:读取nc文件并将nc文件转为tif文件输出
- 架构之重构的 12 条军规
- Window脚本学习笔记之定时关闭进程
- <转载>项目工程中的WebRoot与WebContent有什么区别?
热门文章
- c++请输入任意键继续
- oracle如何撤销权限,Oracle授予/撤销权限
- NVIDIA开源Linux GPU内核驱动
- JAVA正则表达式怎么表达汉字_Java的正则表达式匹配汉字
- “阳光伴童行”跳蚤市场·弘扬美德,勤俭节约活动
- 问题 I: 4.18 join、split 删除字符串s=‘zzz xx y u v w ttt ‘中多余的空白字符,如果有连续多个空白字符,只保留一个。
- 矮人要塞 dwarf fortress
- 『晨读』《孙子兵法》云:“故用兵之法,十则围之,五则攻之,倍则分之,敌则能战之,少则能逃之,不若则能避之。
- 巴顿将军粗野的战前动员
- 亚马逊云科技协同速石科技,技术攻关工业领域研发云平台搭建