def visualize(self): import sklearn.metrics.pairwise as skp metric = self.eval_metric self.set_eval() query_feats, query_pids, query_camids = self.extract_feats( self.datamanager.query_loader) gallery_feats, gallery_pids, gallery_camids = self.extract_feats( self.datamanager.gallery_loader) if metric == 'cosine': distmat = skp.cosine_distances( query_feats, gallery_feats ) # please note, it is cosine distance not similarity elif metric == 'euclidean': distmat = skp.euclidean_distances(query_feats, gallery_feats) elif metric == 'hamming': distmat = lightreid.utils.hamming_distance(query_feats, gallery_feats) dataset = [ self.datamanager.query_dataset.samples, self.datamanager.gallery_dataset.samples ] visualize_ranked_results(distmat, dataset, save_dir='./vis-results/', topk=20, mode='inter-camera', show='all')
def visualize(self): import sklearn.metrics.pairwise as skp metric = self.eval_metric self.set_eval() for dataset_name, ( query_loader, gallery_loader ) in self.datamanager.query_gallery_loader_dict.items(): query_feats, query_pids, query_camids = self.extract_feats( query_loader) gallery_feats, gallery_pids, gallery_camids = self.extract_feats( gallery_loader) if metric == 'cosine': distmat = skp.cosine_distances( query_feats, gallery_feats ) # please note, it is cosine distance not similarity sort = 'ascend' elif metric == 'euclidean': distmat = skp.euclidean_distances(query_feats, gallery_feats) sort = 'ascend' elif metric == 'hamming': distmat = lightreid.utils.hamming_distance( query_feats, gallery_feats) sort = 'descend' else: assert 0, 'metric type error' query_dataset, gallery_dataset = self.datamanager.query_gallery_dataset_dict[ dataset_name] dataset = [query_dataset.samples, gallery_dataset.samples] output_path = join(self.results_dir, 'visualize/', '{}/'.format(dataset_name)) visualize_ranked_results(distmat, dataset, save_dir=output_path, sort=sort, topk=20, mode='inter-camera', show='all')