|
|
|
|
|
|
|
|
|
|
|
|
|
"""Store JPEG images from a hdf5 file, in order to compute FID scores (COCO-Stuff).""" |
|
from argparse import ArgumentParser |
|
import numpy as np |
|
import os |
|
import h5py as h5 |
|
from imageio import imwrite as imsave |
|
|
|
import sys |
|
|
|
sys.path.insert(1, os.path.join(sys.path[0], "..")) |
|
from data_utils.utils import filter_by_hd |
|
|
|
|
|
def main(args): |
|
dataset_name_prefix = "COCO" |
|
test_part = True if args["split"] == "val" else False |
|
|
|
|
|
hdf5_filename = "%s%i%s%s" % ( |
|
dataset_name_prefix, |
|
args["resolution"], |
|
"_val" if args["split"] == "val" else "", |
|
"_test" if test_part else "", |
|
) |
|
data_path_xy = os.path.join(args["data_root"], hdf5_filename + "_xy.hdf5") |
|
|
|
print("Loading images %s..." % (data_path_xy)) |
|
with h5.File(data_path_xy, "r") as f: |
|
imgs = f["imgs"][:] |
|
|
|
|
|
if args["filter_hd"] > -1: |
|
filtered_idxs = filter_by_hd(args["filter_hd"]) |
|
else: |
|
filtered_idxs = range(len(imgs)) |
|
|
|
|
|
counter_i = 0 |
|
for i, im in enumerate(imgs): |
|
if i in filtered_idxs: |
|
imsave( |
|
"%s/%06d.%s" % (args["out_path"], counter_i, "jpg"), |
|
im.transpose(1, 2, 0), |
|
) |
|
counter_i += 1 |
|
|
|
|
|
if __name__ == "__main__": |
|
parser = ArgumentParser( |
|
description="Storing ground-truth COCO-Stuff images to compute FID metric." |
|
) |
|
parser.add_argument( |
|
"--resolution", |
|
type=int, |
|
default=64, |
|
help="Data resolution (default: %(default)s)", |
|
) |
|
parser.add_argument( |
|
"--split", |
|
type=str, |
|
default="train", |
|
choices=["train", "val"], |
|
help="Data split (default: %(default)s)", |
|
) |
|
parser.add_argument( |
|
"--filter_hd", |
|
type=int, |
|
default=-1, |
|
help="Hamming distance to filter val test in COCO_Stuff (by default no filtering) (default: %(default)s)", |
|
) |
|
parser.add_argument( |
|
"--data_root", |
|
type=str, |
|
default="data", |
|
help="Default location where the hdf5 file is stored (default: %(default)s)", |
|
) |
|
parser.add_argument( |
|
"--out_path", |
|
type=str, |
|
default="data", |
|
help="Default location where the resulting images will be stored (default: %(default)s)", |
|
) |
|
|
|
args = vars(parser.parse_args()) |
|
main(args) |
|
|