Faster RCNN 库如何加载训练数据集进行训练?

How Faster RCNN library load training dataset for training?

我使用 Faster RCNN library for Deep Learning and here is a discussion 如何训练自己的数据集。那比我先一步。

对我来说,我想了解如何设置训练数据集以及如何加载训练数据集?

看代码的时候看到了这行代码

imdb = get_imdb(imdb_name)train_faster_rcnn_alt_opt.py 调用 factory.py inside datasets folder

factory.py 有

for year in ['2007', '2012']:
    for split in ['train', 'val', 'trainval', 'test']:
        name = 'voc_{}_{}'.format(year, split)
        __sets[name] = (lambda split=split, year=year: pascal_voc(split, year))

# Set up coco_2014_<split>
for year in ['2014']:
    for split in ['train', 'val', 'minival', 'valminusminival']:
        name = 'coco_{}_{}'.format(year, split)
        __sets[name] = (lambda split=split, year=year: coco(split, year))

# Set up coco_2015_<split>
for year in ['2015']:
    for split in ['test', 'test-dev']:
        name = 'coco_{}_{}'.format(year, split)
        __sets[name] = (lambda split=split, year=year: coco(split, year))

def get_imdb(name):
    """Get an imdb (image database) by name."""
    if not __sets.has_key(name):
        raise KeyError('Unknown dataset: {}'.format(name))
    return __sets[name]()

def list_imdbs():
    """List all registered imdbs."""
    return __sets.keys()

我想知道这个 imdb 名称 voc_2007_trainval 的训练数据是如何加载用于训练的?

编辑: 当我打印 __sets[name]() inside def get_imdb(name): 时,我看到以下内容。

p __sets[name]()
<datasets.pascal_voc.pascal_voc object at 0x7fc937383ed0>

这是什么意思?

现在我明白了。 lib/datasets/factory.py 有

def get_imdb(name):
    """Get an imdb (image database) by name."""
    if not __sets.has_key(name):
        raise KeyError('Unknown dataset: {}'.format(name))
    return __sets[name]()

__sets[姓名] 致电

for year in ['2007', '2012']:
    for split in ['train', 'val', 'trainval', 'test']:
        name = 'voc_{}_{}'.format(year, split)
        __sets[name] = (lambda split=split, year=year: pascal_voc(split, year))

由于我们在训练命令中设置了--imdb voc_2007_trainval,它的作用是程序可以将trainval文件中规定的图像加载到data/VOCdevkit2007/VOC2007/ImageSets/Main/trainval.txt文件中。

如果我们设置 --imdb voc_2007_train 则将使用 train.txt。所有图像都在 JPEGImages 文件夹中,注释在 Annotations 文件夹中。