in dataloaders/prepare_cityscapes.py [0:0]
def main(in_dir, out_dir, img_side):
# List cities in the input directory
cities = os.listdir(in_dir)
# List directories in the input dir
all_fnames = []
for city in cities:
in_city_dir = os.path.join(in_dir, city)
# List frames
frame_fnames = os.listdir(in_city_dir)
all_fnames = all_fnames + [FNAME_PARSER.parse(f).named for f in frame_fnames]
# Convert into a pandas dataframe
df = pd.DataFrame(all_fnames)
# Loop over cities
for city in cities:
# Define dirs
in_city_dir = os.path.join(in_dir, city)
out_city_dir = os.path.join(out_dir, city)
# Find all sequences for that city
city_df = df[df.city == city]
city_seq_ids = city_df.seq_id.unique()
for seq_id in city_seq_ids:
out_seq_dir = os.path.join(out_city_dir, '{:0>6}'.format(seq_id))
# List all the fnames
seq_df = city_df[city_df.seq_id == seq_id]
# Resize all the images
if len(seq_df) == 30:
if not os.path.exists(out_seq_dir):
os.makedirs(out_seq_dir)
for index, row in seq_df.iterrows():
in_file = os.path.join(in_city_dir, '{}_{:0>6}_{:0>6}_leftImg8bit.png'.format(city, seq_id, row['frame_id']))
out_file = os.path.join(out_seq_dir, '{:0>6}.jpg'.format(row['frame_id']))
resize_image(in_file, out_file, img_side)
print('{}/{} done'.format(city, seq_id))
else:
print('{}/{} skipped'.format(city, seq_id))
print('All done')