Source code for dataset_loading.pascal

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import os
import pandas as pd
from dataset_loading import core


[docs]def img_sets(): """ List all the image sets from Pascal VOC. Don't bother computing this on the fly, just remember it. It's faster. """ return [ 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor']
def img_dict(base_dir): d = {} for i, cat in enumerate(img_sets()): filename = os.path.join(base_dir, 'ImageSets', 'Main', cat+'_trainval.txt') df = pd.read_csv(filename, delim_whitespace=True, header=None, names=['filename', 'true']) df = df[df['true'] == 1] files = df['filename'].values for f in files: if f in d.keys(): d[f].append(i) else: d[f] = [i] return d
[docs]def load_pascal_data(data_dir, max_epochs=None, thread_count=3, imsize=(128,128)): """Will use a filename queue and img_queue and load the data """ file_queue = core.FileQueue() # d = img_dict(data_dir) img_queue = core.ImageQueue(files_in_epoch=250, maxsize=1000) threads = [] for i in range(thread_count): thread = core.imLoader('Loader ' + str(i+1), file_queue, img_queue, imsize, data_dir) thread.start() threads.append(thread) return img_queue