|
import argparse |
|
import glob |
|
import os |
|
import sys |
|
|
|
import numpy as np |
|
|
|
sys.path.append(os.path.join(os.path.dirname(__file__), "..")) |
|
|
|
|
|
from libs.class_id_map import get_class2id_map |
|
|
|
|
|
def get_arguments() -> argparse.Namespace: |
|
""" |
|
parse all the arguments from command line inteface |
|
return a list of parsed arguments |
|
""" |
|
|
|
parser = argparse.ArgumentParser( |
|
description="convert ground truth txt files to numpy array" |
|
) |
|
parser.add_argument( |
|
"--dataset_dir", |
|
type=str, |
|
default="./dataset", |
|
help="path to a dataset directory (default: ./dataset)", |
|
) |
|
|
|
return parser.parse_args() |
|
|
|
|
|
def main() -> None: |
|
args = get_arguments() |
|
|
|
datasets = ["LARA"] |
|
|
|
for dataset in datasets: |
|
|
|
save_dir = os.path.join(args.dataset_dir, dataset, "gt_arr") |
|
if not os.path.exists(save_dir): |
|
os.mkdir(save_dir) |
|
|
|
|
|
class2id_map = get_class2id_map(dataset, dataset_dir=args.dataset_dir) |
|
|
|
gt_dir = os.path.join(args.dataset_dir, dataset, "groundTruth") |
|
|
|
if dataset == 'LARA': |
|
gt_paths = glob.glob(os.path.join(gt_dir, "*.csv")) |
|
else: |
|
gt_paths = glob.glob(os.path.join(gt_dir, "*.txt")) |
|
|
|
for gt_path in gt_paths: |
|
|
|
gt_name = os.path.relpath(gt_path, gt_dir) |
|
|
|
with open(gt_path, "r") as f: |
|
gt = f.read().split("\n")[:-1] |
|
|
|
gt_array = np.zeros(len(gt)) |
|
for i in range(len(gt)): |
|
gt_array[i] = class2id_map[gt[i]] |
|
|
|
|
|
np.save(os.path.join(save_dir, gt_name[:-4] + ".npy"), gt_array) |
|
|
|
print("Done") |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |
|
|