【人脸检测】 Tinaface复现(数据集准备、测试与评估)

转载自 https://blog.csdn.net/qq_35975447/article/details/110430390

 

【人脸检测】 Tinaface复现(数据集准备、测试与评估)

 

参考:

TinaFace: Strong but Simple Baseline for Face Detection

https://github.com/Media-Smart/vedadet

https://github.com/sovrasov/wider-face-pascal-voc-annotations

0.环境

 
  1. ubuntu16.04

  2. python3.6

  3. cuda9.2

  4. cudnn7

  5. torch==1.6.0+cu92

  6. addict==2.4.0

  7. cycler==0.10.0

  8. Cython==0.29.21

  9. future==0.18.2

  10. kiwisolver==1.3.1

  11. matplotlib==3.3.3

  12. numpy==1.19.4

  13. Pillow==8.0.1

  14. pycurl==7.43.0

  15. pygobject==3.20.0

  16. pyparsing==2.4.7

  17. python-apt==1.1.0b1+ubuntu0.16.4.9

  18. python-dateutil==2.8.1

  19. six==1.15.0

  20. unattended-upgrades==0.1

  21. tqdm

  22. scipy

  23. ipython

 
  1. cd vedadet

  2. pip install -r requirements/build.txt

避免出错,我直接安装环境中对应的python库,然后注释掉对应的根目录下setup.py中的安装依赖包的两行。

改为: 

(默认会安装最新的,如果对应的cuda版本不支持的话,那就自己安装吧!!!)然后执行下面:

pip install -v -e .

1.准备

1.1 准备模型

https://drive.google.com/u/0/uc?id=1zU738coEVDBkLBUa4hvJUucL7dcSBT7v&export=download

可以将放到https://github.com/Media-Smart/vedadet/tree/main/configs/trainval/tinaface,目录下新建的models下。

1.2 准备数据

1)原始数据

https://github.com/Media-Smart/vedadet/tree/main/configs/trainval/tinaface

进入vedadet/目录下,新建data,然后进入data目录下,从widerface官网上下载训练、验证与测试数据:

 解压从官网下载的数据,目录应该是这样:

 
  1. vedadet

  2. ├── vedadet

  3. ├── vedacore

  4. ├── tools

  5. ├── configs

  6. ├── data

  7. │ ├── WIDERFace

  8. │ │ ├── WIDER_train

  9. │ │ │ ├── images

  10. │ │ │ │ ├── 0--Parade

  11. │ │ │ │ ├── ......

  12. │ │ │ │ ├── 61--Street_Battle

  13. │ │ ├── WIDER_val

  14. │ │ │ ├── images

  15. │ │ │ │ ├── 0--Parade

  16. │ │ │ │ ├── ......

  17. │ │ │ │ ├── 61--Street_Battle

  18. │ │ ├── WIDER_test

  19. │ │ ├── wider_face_split

2)xml文件

下载对应的VOC格式的xml文件: 

 
  1. git clone https://github.com/sovrasov/wider-face-pascal-voc-annotations.git

  2. cd vedadet/data

  3. mv wider-face-pascal-voc-annotations/ WIDERFace/

  4. mv WIDERFace/WIDER_train_annotations WIDERFace/WIDER_train/Annotations

  5. mv WIDERFace/WIDER_val_annotations WIDERFace/WIDER_val/Annotations

 然后利用命令:

 
  1. cd ..

  2. sh configs/trainval/tinaface/gen_xml_name_txt.sh

目录结构如下:

 
  1. vedadet

  2. ├── vedadet

  3. ├── vedacore

  4. ├── tools

  5. ├── configs

  6. ├── data

  7. │ ├── WIDERFace

  8. │ │ ├── WIDER_train

  9. │ │ │ ├── images

  10. │ │ │ │ ├── 0--Parade

  11. │ │ │ │ ├── ......

  12. │ │ │ │ ├── 61--Street_Battle

  13. │ │ │ ├── Annotations

  14. │ │ ├── WIDER_val

  15. │ │ │ ├── images

  16. │ │ │ │ ├── 0--Parade

  17. │ │ │ │ ├── ......

  18. │ │ │ │ ├── 61--Street_Battle

  19. │ │ │ ├── Annotations

  20. │ │ ├── WIDER_test

  21. │ │ ├── wider_face_split

3)代码中路径等修改

由于与作者给出的目录略微有点不同,所以修改以下:

 
  1. # \vedadet\configs\trainval\tinaface\tinaface.py line 14与38

  2. img_prefix=data_root + 'WIDER_train/',

  3. img_prefix=data_root + 'WIDER_val/',

  4. 改为:

  5. img_prefix=data_root + 'WIDER_train/images/',

  6. img_prefix=data_root + 'WIDER_val/images/',

  7. # \vedadet\vedadet\datasets\widerface.py line 36-37

  8. xml_path = osp.join(self.img_prefix, 'Annotations',

  9. f'{img_id}.xml')

  10. 改为

  11. xml_path = osp.join(self.img_prefix.replace('images','Annotations'),f'{img_id}.xml')

/vedadet/vedadet/datasets/xml_style.py

其中 \vedadet\vedadet\datasets\xml_style.py 中对应的xml_path也要修改为相应的

  1. xml_path = osp.join(self.img_prefix, 'Annotations',

  2. f'{img_id}.xml')

  3. 改为

  4. xml_path = osp.join(self.img_prefix.replace('images','Annotations'),

  5. f'{img_id}.xml')

至此,基本就可以了。如果想修改数据的根目录:

 
  1. # \vedadet\configs\trainval\tinaface\tinaface.py line 3 改为你对应的对应就可以了,绝对与相对路径都可以

  2. data_root = './data/WIDERFace/'

2.测试与评估

2.1 测试

python configs/trainval/tinaface/test_widerface.py configs/trainval/tinaface/tinaface.py /root/vedadet/weights/tinaface_r50_fpn_widerface.pth

会在vedadet/eval_dirs/tmp/tinaface/目录下,生成对应的txt文件。

2.2 评估

还是用之前很多篇评估widerface的方式来评估一下。

将Pytorch_Retinaface/widerface_evaluate内的这几个文件与widerface_eval文件夹,复制到vedadet/tools目录下。

https://github.com/biubug6/Pytorch_Retinaface/tree/master/widerface_evaluate

https://github.com/ChiCheng123/SRN/tree/master/tools

 widerface_eval文件也可以在我的资源中下载:https://download.csdn.net/download/qq_35975447/14158058

命令加修改:

 
  1. cd ./tools

  2. python setup.py build_ext --inplace

  3. vim evaluation.py

  4. # line 287-288

  5. parser.add_argument('-p', '--pred', default="${vedadet_root}/eval_dirs/tmp/tinaface/")

  6. parser.add_argument('-g', '--gt', default='./widerface_eval/ground_truth/')

  7. python evaluation.py

其中参数:

--pred是预测结果txt文件的保存路径,默认为:

 --gt是真实的,我们之前准备的。

2.3 评估结果 

评估结果还是比较准的,这个是没有加TTA的。

 参考

1.vedadet(官方代码)

2.tinaface(官方论文)

3.wider-face-pascal-voc-annotations(xml文件)

4.评估部分参考(SRN)

5.评估部分代码与gt

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值