lidargaitv2 open-source

This commit is contained in:
Noah
2025-06-11 14:43:19 +08:00
parent c42f2f8c07
commit 16a7c3f0bf
11 changed files with 6396 additions and 4 deletions
+42 -1
View File
@@ -456,4 +456,45 @@ def evaluate_scoliosis(data, dataset, metric='euc'):
print(f"{cls} Specificity: {TNR[i] * 100:.2f}%")
print(f"Accuracy: {accuracy * 100:.2f}%")
return result_dict
return result_dict
def evaluate_FreeGait(data, dataset, metric='euc'):
msg_mgr = get_msg_mgr()
features, labels, cams, time_seqs = data['embeddings'], data['labels'], data['types'], data['views']
import json
probe_sets = json.load(
open('./datasets/FreeGait/FreeGait.json', 'rb'))['PROBE_SET']
probe_mask = []
for id, ty, sq in zip(labels, cams, time_seqs):
if '-'.join([id, ty, sq]) in probe_sets:
probe_mask.append(True)
else:
probe_mask.append(False)
probe_mask = np.array(probe_mask)
# probe_features = features[:probe_num]
probe_features = features[probe_mask]
# gallery_features = features[probe_num:]
gallery_features = features[~probe_mask]
# probe_lbls = np.asarray(labels[:probe_num])
# gallery_lbls = np.asarray(labels[probe_num:])
probe_lbls = np.asarray(labels)[probe_mask]
gallery_lbls = np.asarray(labels)[~probe_mask]
results = {}
msg_mgr.log_info(f"The test metric you choose is {metric}.")
dist = cuda_dist(probe_features, gallery_features, metric).cpu().numpy()
cmc, all_AP, all_INP = evaluate_rank(dist, probe_lbls, gallery_lbls)
mAP = np.mean(all_AP)
mINP = np.mean(all_INP)
for r in [1, 5, 10]:
results['scalar/test_accuracy/Rank-{}'.format(r)] = cmc[r - 1] * 100
results['scalar/test_accuracy/mAP'] = mAP * 100
results['scalar/test_accuracy/mINP'] = mINP * 100
# print_csv_format(dataset_name, results)
msg_mgr.log_info(results)
return results