本文是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