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实现相关推荐

  1. 人脸检测算法_腾讯已开源高精度人脸检测算法DSFD

    腾讯提出一种高精度双分支人脸检测器DSFD并开源.该算法曾在全球两大权威人脸检测数据集WIDERFACE和FDDB上均取得了第一. 任务介绍 人脸检测算法是在图像上检测出人脸的位置(通常以矩形框形式输 ...

  2. 腾讯已开源高精度人脸检测算法DSFD

    腾讯提出一种高精度双分支人脸检测器DSFD并开源.该算法曾在全球两大权威人脸检测数据集WIDERFACE和FDDB上均取得了第一. 任务介绍 人脸检测算法是在图像上检测出人脸的位置(通常以矩形框形式输 ...

  3. 重磅!刷新两项世界纪录的腾讯优图人脸检测算法DSFD开源了!

    近日,知名开源社区Github上有个名为DSFD(Dual Shot Face Detector)的算法引起了业内关注,它正是来自于腾讯优图.目前,该算法已经被计算机视觉顶级会议CVPR 2019接收 ...

  4. 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源...

    雷锋网(公众号:雷锋网) AI 科技评论按:近年来,卷积神经网络在人脸检测中取得了很大的成功,然而这些方法在处理人脸中多变的尺度,姿态,遮挡,表情,光照等问题时依然比较困难.为此,腾讯优图推出名为 D ...

  5. 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源

    雷锋网(公众号:雷锋网) AI 科技评论按:近年来,卷积神经网络在人脸检测中取得了很大的成功,然而这些方法在处理人脸中多变的尺度,姿态,遮挡,表情,光照等问题时依然比较困难.为此,腾讯优图推出名为 D ...

  6. 【CV】10种轻量级人脸检测算法大PK | 代码集合开源

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 最近在微信公众号 AIZOO 里看到轻量级人脸检测算法大盘点的文章 ...

  7. 10种轻量级人脸检测算法大PK

    几个月前,AIZOO曾经盘点过 最强六大开源轻量级人脸检测项目分析 | 附打包下载,nihate同学将它丰富到10种算法,并用Python.对他们进行了汇总整理,以及效果的对比. Github链接:h ...

  8. 10种轻量级人脸检测算法大PK | 代码集合开源

    喜欢就关注 AIZOO 吧! 几个月前,AIZOO曾经盘点过 最强六大开源轻量级人脸检测项目分析 | 附打包下载,nihate同学将它丰富到10种算法,并用Python.对他们进行了汇总整理,以及效果 ...

  9. Matlab人脸检测算法详解

    这是一个Matlab人脸检测算法详解 前言 人脸检测结果 算法详解 源代码解析 所调用函数解析 bwlabel(BW,n) regionprops rectangle 总结 前言 目前主流的人脸检测与 ...

最新文章

  1. SQL游标原理和使用方法
  2. 实训笔记(一) 创建文件夹(SDCard)
  3. vscode终端没显示_记一个VS Code终端显示问题的较完美解决
  4. python plot方法的使用_【python】matplotlib.pyplot入门
  5. 6.方法(go语言学习笔记)
  6. NOT运算符与运算符
  7. Chrome谷歌浏览器私密浏览自动开启功能获批专利
  8. A/D转换器(华中师范)
  9. c++ windows下declspec
  10. 标准模板库(STL) map —— 初始化问题
  11. 山东中职计算机应用基础课件,计算机应用基础课件(中职)-精选版.ppt
  12. 第二课 Python Web企业门户网站-框架搭建
  13. 邮箱收不到验证邮件怎么回事?为什么我的电子邮件收不到验证码的原因,无限容量邮箱开通
  14. 软件开发中什么是CI/CD
  15. 《带人要同频,管人要共情》读书笔记
  16. 互联网高端社畜行话大全(表情包)
  17. MATLAB:读取nc文件并将nc文件转为tif文件输出
  18. 架构之重构的 12 条军规
  19. Window脚本学习笔记之定时关闭进程
  20. <转载>项目工程中的WebRoot与WebContent有什么区别?

热门文章

  1. c++请输入任意键继续
  2. oracle如何撤销权限,Oracle授予/撤销权限
  3. NVIDIA开源Linux GPU内核驱动
  4. JAVA正则表达式怎么表达汉字_Java的正则表达式匹配汉字
  5. “阳光伴童行”跳蚤市场·弘扬美德,勤俭节约活动
  6. 问题 I: 4.18 join、split  删除字符串s=‘zzz xx y u v w ttt ‘中多余的空白字符,如果有连续多个空白字符,只保留一个。
  7. 矮人要塞 dwarf fortress
  8. 『晨读』《孙子兵法》云:“故用兵之法,十则围之,五则攻之,倍则分之,敌则能战之,少则能逃之,不若则能避之。
  9. 巴顿将军粗野的战前动员
  10. 亚马逊云科技协同速石科技,技术攻关工业领域研发云平台搭建