Commit 398a91c1 authored by 李聪聪's avatar 李聪聪
Browse files

add voc

parent 3493df0d
Loading
Loading
Loading
Loading

configs/voc_train.sh

0 → 100644
+17 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash

PYTHON=${PYTHON:-"python"}

GPUS=$1

$PYTHON -m torch.distributed.launch --nproc_per_node=$GPUS \
    --master_port=$((RANDOM + 10000)) --use_env $(dirname "$0")/../train.py \
    --trains "voc_2007_trainval" "voc_2012_trainval" \
    --tests "voc_2007_test" "voc_clipart_traintest" \
    --eval-types "voc" \
    --lr-steps 16 22 \
    --epochs 25 \
    --batch-size 1 \
    --num-classes 21 \
    --work-dir "works_dir/voc_2_clipart" \
    --lr 1e-5 ${@:2}
 No newline at end of file
+69 −4
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ import torch
from torch.utils.data import ConcatDataset, DataLoader

from . import collate_fn
from .cityscape import CityscapeDataset
from .datasets import *

cityscapes_images_dir = '/data7/lufficc/cityscapes/leftImg8bit'
foggy_cityscapes_images_dir = '/data7/lufficc/cityscapes/leftImg8bit_foggy'
@@ -53,17 +53,82 @@ DATASETS = {
        "root": "/data7/lufficc/coco/val2017",
        'train': False,
    },

    'voc_2007_trainval': {
        'root': '/data7/lufficc/voc/VOCdevkit/VOC2007',
        'split': 'trainval',
        'train': True,
    },

    'voc_2012_trainval': {
        'root': '/data7/lufficc/voc/VOCdevkit/VOC2012',
        'split': 'trainval',
        'train': True,
    },

    'voc_2007_test': {
        'root': '/data7/lufficc/voc/VOCdevkit/VOC2007',
        'split': 'test',
        'train': False,
    },

    'voc_watercolor_train': {
        'root': '/data7/lufficc/cross_domain_detection/watercolor',
        'split': 'train',
        'train': True,
    },
    'voc_watercolor_test': {
        'root': '/data7/lufficc/cross_domain_detection/watercolor',
        'split': 'test',
        'train': False,
    },

    'voc_comic_train': {
        'root': '/data7/lufficc/cross_domain_detection/comic',
        'split': 'train',
        'train': True,
    },
    'voc_comic_test': {
        'root': '/data7/lufficc/cross_domain_detection/comic',
        'split': 'test',
        'train': False,
    },
    'voc_clipart_train': {
        'root': '/data7/lufficc/cross_domain_detection/clipart',
        'split': 'train',
        'train': True,
    },
    'voc_clipart_test': {
        'root': '/data7/lufficc/cross_domain_detection/clipart',
        'split': 'test',
        'train': False,
    },
    'voc_clipart_traintest': {
        'root': '/data7/lufficc/cross_domain_detection/clipart',
        'split': 'traintest',
        'train': False,
    },
}


def build_datasets(names, is_train=True):
    assert len(names) > 0
    datasets = []
    for name in names:
        cfg = DATASETS[name]
        cfg = DATASETS[name].copy()
        cfg['dataset_name'] = name
        if 'cityscapes' in name:
            dataset = CityscapeDataset(**cfg)
        elif 'coco' in name:
            dataset = MSCOCODataset(**cfg)
        elif 'voc' in name:
            dataset = CustomVocDataset(**cfg)
        else:
            raise NotImplementedError
        print('{:<24}: {}'.format(dataset.dataset_name, len(dataset)))
        datasets.append(dataset)
    if is_train:
        return [ConcatDataset(datasets)]
        return datasets if len(datasets) == 1 else [ConcatDataset(datasets)]
    return datasets


+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ def coco_evaluation(dataset, predictions, output_dir, iou_type='bbox', iteration
            [
                {
                    "image_id": image_id,
                    "category_id": dataset.label2cat[labels[k]],
                    "category_id": labels[k],
                    "bbox": [box[0], box[1], box[2] - box[0], box[3] - box[1]],  # to xywh format
                    "score": scores[k],
                }
+6 −0
Original line number Diff line number Diff line
from .coco import MSCOCODataset
from .cityscape import CityscapeDataset
from .voc import CustomVocDataset
from .dataset import COCODataset, VOCDataset

__all__ = ['MSCOCODataset', 'CityscapeDataset', 'CustomVocDataset', 'COCODataset', 'VOCDataset']
+2 −2
Original line number Diff line number Diff line
@@ -44,6 +44,6 @@ test_transforms = [
class CityscapeDataset(COCODataset):
    CLASSES = ('__background__', 'person', 'rider', 'car', 'truck', 'bus', 'train', 'motorcycle', 'bicycle',)

    def __init__(self, ann_file, root, train=True):
    def __init__(self, train=True, **kwargs):
        transforms = train_transforms if train else test_transforms
        super().__init__(ann_file, root, transforms=transforms, remove_empty=train)
        super().__init__(transforms=transforms, remove_empty=train, **kwargs)
Loading