本文是DCNet食用手册,将会详细介绍如何使用DCNet,并介绍如何定制"个性化"DCNet :P
路径 | 文件名 | 作用 |
./data | PIOD | 训练/测试数据集 |
./detect_occ | run.sh | 训练/测试脚本 |
train.py | 训练模型 | |
test.py | 使用模型对图片进行处理得到结果 | |
./detect_occ/utils | compute_loss.py | Loss Function |
custom_transforms.py | 对输入图进行Transform | |
./models | 网络名称.py | 对应网络的结构定义 |
./lib/dateset | occ_dataset.py | PyTorch Dataset和Dataloader重写 |
./experiments | 网络名称 | 对应网络执行得到的结果图片 |
./experiments/output | 网络名称 | 对应网络训练得到的模型 |
./experiments/configs | train.yaml | 训练时的config |
test.yaml | 测试时的config |
初始化方法参考了DOOBNet的方法
需要下载PASCAL VOC 2010和Annotations. 解压后将JPEGImages
移动到PIOD文件夹。最终的文件夹目录如下:
PIOD
|_ Data
| |_ <id-1>.mat
| |_ ...
| |_ <id-n>.mat
|_ JPEGImages
| |_ <id-1>.jpg
| |_ ...
| |_ <id-n>.jpg
|_ val_doc_2010.txt
然后调用mat2hdf5_edge_ori.py
生成标注
mkdir PIOD/Augmentation
python mat2hdf5_edge_ori.py \
--dataset PIOD \
--label-dir PIOD/Data \
--img-dir PIOD/JPEGImages \
--piod-val-list-file PIOD/val_doc_2010.txt \
--output-dir PIOD/Augmentation
- 更改
./experiments/configs/train.yaml
中对应的数据集path,网络arch名称,迭代次数,学习率等 - 更改
./detect_occ/run.sh
中的注释行 - 在
./detect_occ
路径下运行
sh run.sh
- 更改
./experiments/configs/test.yaml
中对应的网络arch名称等 - 更改
./detect_occ/run.sh
中的注释行
注:此处需要注意,在
test.py
中如果使用myDataset时,每次读入一张img,需要在run.sh
中设置--img
;如果使用PIODDataset则不需要使用--img
。详细代码见./lib/dataset/occ_dataset.py
- 在
./detect_occ
路径下运行
sh run.sh
-
需要修改
./lib/dataset/occ_dataset
中数据的路径,list_file及读取方式(即是否包括.type,包含[:,-4]
与+'.jpg'
两处) -
需要修改
./experiments/configs/train(test).yaml
中的train_image_set
,val_image_set
以arch(网络的名字)
-
如果要使用新的pth,需要修改
./detect_occ/run.sh
中的路径 -
如果在
'./models/'
中定义了新的network,需要同时更改./models/__init__.py