准备数据
pascal voc格式数据转coco格式
参考: https://blog.csdn.net/weixin_41765699/article/details/100124689
在
1
2
3
4
3. 在```path/src/lib/datasets/datasets```下新建```gaodian.py```,内容参照```coco.py```改,改成自己需求的样子
1. 修改类名为```Gaodian14行
1
2
3
4
5
6
3. 改均值和方差,参考 https://blog.csdn.net/weixin_41765699/article/details/100118660
4. 修改数据和图片的路径,```data_dir```到数据集名称文件夹,```img_dir```放图片的位置
5. 修改标签文件```json```文件,我改了如下,这样train和val都读2036的文件else: self.annot_path = os.path.join( self.data_dir, 'annotations', '2036.json')
1
2
6. 修改```path/src/lib/datasets/dataset_factory.py1
2
3
4
5
6
7dataset_factory = {
'coco': COCO,
'pascal': PascalVOC,
'kitti': KITTI,
'coco_hp': COCOHP,
'gaodian': Gaodian
}
- 修改
1
2
将默认的数据集名称修改为```gaodian
1
2
self.parser.add_argument('--dataset', default='gaodian',
help='coco | kitti | coco_hp | pascal')
将默认数据集的均值方差修改
1
2
3
4
5
def init(self, args=''):
default_dataset_info = {
'ctdet': {'default_resolution': [512, 512], 'num_classes': 80,
'mean': [0.408, 0.447, 0.470], 'std': [0.289, 0.274, 0.278],
'dataset': 'coco'},
修改
1
elif num_classes == 80 or dataset == 'coco': self.names = coco_class_name elif num_classes == 3 or dataset == 'gaodian': self.names = gaodian_class_name elif num_classes == 20 or dataset == 'pascal':
1
gaodian_class_name = [
'person', 'vehicle', 'none-motor']
1
2
#### 训练
python main.py ctdet –arch dlav0_34 –exp_id coco_dla_1x –batch_size 64 –master_batch 16 –lr 5e-4 –gpus 0,1,2,3 –num_workers 16`