Files
cvpr/get_error.py
T
2023-03-14 14:08:03 +00:00

70 lines
2.7 KiB
Python

import os
import csv
import glob
import numpy as np
if __name__ == '__main__':
garment_type_table = np.load('custom_data/garment_type_table_test.npy', allow_pickle=True).item()
folder = '/home/workspace/data/results/errors/iccv'
checkpoint_name = 'iccv_pyr_32_64_128_256_seq_2'
checkpoint_name_skirt = 'iccv_pyr_32_64_128_skin_skirt'
iteration = '185' + '000'
iteration_skirt : str = '155' + '000'
error_type = 'euclidean' # 'euclidean' 'collision' edge normal
errors = []
errors_skirt = []
per_garment_errors= { 'Tshirt': [], 'Jumpsuit': [], 'Trousers': [], 'Top': [] }
per_garment_errors_skirt = { 'Tshirt': [], 'Dress': [], 'Skirt': [], 'Top': [] }
with open(os.path.join(folder, f'{checkpoint_name}-{iteration}-{error_type}.csv'), 'r') as f:
csv_reader = csv.reader(f, delimiter=',')
for row in csv_reader:
per_garment_errors[garment_type_table[row[0].split('_')[0]]].append(float(row[1]))
print('\nNon-skirt:')
for key in per_garment_errors.keys():
avg = np.mean(per_garment_errors[key])
errors.append(avg)
print(key + ': ' + str(avg))
print('\nAvg non-skirt: ' + str(np.mean(errors)))
# with open(os.path.join(folder, f'{checkpoint_name_skirt}-{iteration_skirt}-{error_type}.csv'), 'r') as f:
# csv_reader = csv.reader(f, delimiter=',')
# for row in csv_reader:
# per_garment_errors_skirt[garment_type_table[row[0].split('_')[0]]].append(float(row[1]))
# print('\nSkirt:')
# for key in per_garment_errors_skirt.keys():
# avg = np.mean(per_garment_errors_skirt[key])
# errors_skirt.append(avg)
# print(key + ': ' + str(avg))
# print('Avg skirt: ' + str(np.mean(errors_skirt)))
# cum_avg_shirt = np.mean(per_garment_errors['Tshirt'] + per_garment_errors_skirt['Tshirt'])
# cum_avg_top = np.mean(per_garment_errors['Top'] + per_garment_errors_skirt['Top'])
# print('Global tshirt avg: ' + str(cum_avg_shirt))
# print('Global top avg: ' + str(cum_avg_top))
# print('\nGlobal per garment: ')
# global_errors = []
# per_garment_errors['Tshirt'].extend(per_garment_errors_skirt['Tshirt'])
# per_garment_errors['Top'].extend(per_garment_errors_skirt['Top'])
# per_garment_errors['Skirt'] = per_garment_errors_skirt['Skirt']
# per_garment_errors['Dress'] = per_garment_errors_skirt['Dress']
# for key in per_garment_errors.keys():
# avg = np.mean(per_garment_errors[key])
# global_errors.append(avg)
# print(key + ': ' + str(avg), 'samples: ' + str(len(per_garment_errors[key])))
# print('Global avg: ' + str(np.mean(global_errors)))
# print(len(global_errors))