) return parser if __name__ == '__main__': args = get_parser().parse_args() cfg = setup_cfg(args) test_loader, num_query = build_reid_test_loader( cfg, dataset_name=args.dataset_name) demo = FeatureExtractionDemo(cfg, parallel=args.parallel) logger.info("Start extracting image features") feats = [] pids = [] camids = [] for (feat, pid, camid) in tqdm.tqdm(demo.run_on_loader(test_loader), total=len(test_loader)): feats.append(feat) pids.extend(pid) camids.extend(camid) feats = torch.cat(feats, dim=0) q_feat = feats[:num_query] g_feat = feats[num_query:] q_pids = np.asarray(pids[:num_query]) g_pids = np.asarray(pids[num_query:]) q_camids = np.asarray(camids[:num_query]) g_camids = np.asarray(camids[num_query:]) # compute cosine distance distmat = 1 - torch.mm(q_feat, g_feat.t())
) return parser if __name__ == '__main__': args = get_parser().parse_args() logger = setup_logger() cfg = setup_cfg(args) test_loader, num_query = build_reid_test_loader(cfg, args.dataset_name) demo = FeatureExtractionDemo(cfg, device=args.device, parallel=args.parallel) logger.info("Start extracting image features") feats = [] pids = [] camids = [] for (feat, pid, camid) in tqdm.tqdm(demo.run_on_loader(test_loader), total=len(test_loader.loader)): feats.append(feat) pids.extend(pid) camids.extend(camid) feats = torch.cat(feats, dim=0) q_feat = feats[:num_query] g_feat = feats[num_query:] q_pids = np.asarray(pids[:num_query]) g_pids = np.asarray(pids[num_query:]) q_camids = np.asarray(camids[:num_query]) g_camids = np.asarray(camids[num_query:]) # compute cosine distance distmat = torch.mm(q_feat, g_feat.t()) distmat = distmat.numpy()