【人脸检测】 vedadet复现
参考
TinaFace: Strong but Simple Baseline for Face Detection
https://github.com/Media-Smart/vedadet
https://github.com/sovrasov/wider-face-pascal-voc-annotations
0.环境
ubuntu16.04python3.6cuda9.2cudnn7torch==1.6.0 cu92addict==2.4.0cycler==0.10.0Cython==0.29.21future==0.18.2kiwisolver==1.3.1matplotlib==3.3.3numpy==1.19.4Pillow==8.0.1pycurl==7.43.0pygobject==3.20.0pyparsing==2.4.7python-apt==1.1.0b1 ubuntu0.16.4.9python-dateutil==2.8.1six==1.15.0unattended-upgrades==0.1
cd vedadetpip 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官网上下载训练、验证与测试数据:
解压从官网下载的数据,目录应该是这样:
vedadet├── vedadet├── vedacore├── tools├── configs├── data│ ├── WIDERFace│ │ ├── WIDER_train│ │ │ ├── images│ │ │ │ ├── 0--Parade│ │ │ │ ├── ......│ │ │ │ ├── 61--Street_Battle│ │ ├── WIDER_val│ │ │ ├── images│ │ │ │ ├── 0--Parade│ │ │ │ ├── ......│ │ │ │ ├── 61--Street_Battle│ │ ├── WIDER_test│ │ ├── wider_face_split
2)xml文件
下载对应的VOC格式的xml文件:
git clone https://github.com/sovrasov/wider-face-pascal-voc-annotations.gitcd vedadet/datamv wider-face-pascal-voc-annotations/ WIDERFace/mv WIDERFace/WIDER_train_annotations WIDERFace/WIDER_train/Annotationsmv WIDERFace/WIDER_val_annotations WIDERFace/WIDER_val/Annotations
然后利用命令:
cd ..sh configs/trainval/tinaface/gen_xml_name_txt.sh
目录结构如下:
vedadet├── vedadet├── vedacore├── tools├── configs├── data│ ├── WIDERFace│ │ ├── WIDER_train│ │ │ ├── images│ │ │ │ ├── 0--Parade│ │ │ │ ├── ......│ │ │ │ ├── 61--Street_Battle│ │ │ ├── Annotations│ │ ├── WIDER_val│ │ │ ├── images│ │ │ │ ├── 0--Parade│ │ │ │ ├── ......│ │ │ │ ├── 61--Street_Battle│ │ │ ├── Annotations│ │ ├── WIDER_test│ │ ├── wider_face_split
3)代码中路径等修改
由于与作者给出的目录略微有点不同,所以修改以下:
# \vedadet\configs\trainval\tinaface\tinaface.py line 14与38 img_prefix=data_root 'WIDER_train/', img_prefix=data_root 'WIDER_val/',改为: img_prefix=data_root 'WIDER_train/images/', img_prefix=data_root 'WIDER_val/images/',# \vedadet\vedadet\datasets\widerface.py line 36-37 xml_path = osp.join(self.img_prefix, 'Annotations', f'{img_id}.xml')改为 xml_path = osp.join(self.img_prefix.replace('images','Annotations'), f'{img_id}.xml')
至此,基本就可以了。如果想修改数据的根目录:
# \vedadet\configs\trainval\tinaface\tinaface.py line 3 改为你对应的对应就可以了,绝对与相对路径都可以data_root = './data/WIDERFace/'
2.测试
python configs/trainval/tinaface/test_widerface.py configs/trainval/tinaface/tinaface.py /root/vedadet/weights/tinaface_r50_fpn_widerface.pth
赞 (0)