diff --git a/coat-pvtv2-b2/.gitignore b/coat-pvtv2-b2/.gitignore new file mode 100644 index 0000000..16f4529 --- /dev/null +++ b/coat-pvtv2-b2/.gitignore @@ -0,0 +1,3 @@ +**/__pycache__ +*.pth +**/logs \ No newline at end of file diff --git a/coat-pvtv2-b2/COAT_pt171.yml b/coat-pvtv2-b2/COAT_pt171.yml new file mode 100644 index 0000000..a9318fc --- /dev/null +++ b/coat-pvtv2-b2/COAT_pt171.yml @@ -0,0 +1,26 @@ +name: coat +channels: + - pytorch + - conda-forge + - defaults +dependencies: + - cudatoolkit=11.0 + - numpy=1.19.2 + - pillow=8.2.0 + - pip=21.0.1 + - python=3.8.8 + - pytorch=1.7.1 + - scipy=1.6.2 + - torchvision=0.8.2 + - tqdm=4.60.0 + - scikit-learn=0.24.1 + - black=21.5b0 + - flake8=3.9.0 + - isort=5.8.0 + - tabulate=0.8.9 + - future=0.18.2 + - tensorboard=2.4.1 + - tensorboardx=2.2 + - pip: + - ipython==7.5.0 + - yacs==0.1.8 diff --git a/coat-pvtv2-b2/README.md b/coat-pvtv2-b2/README.md new file mode 100644 index 0000000..0146213 --- /dev/null +++ b/coat-pvtv2-b2/README.md @@ -0,0 +1,150 @@ +# **COAT代码使用说明** + +​ 这个存储库托管了论文的源代码:[[CVPR 2022] Cascade Transformers for End-to-End Person Search](https://arxiv.org/abs/2203.09642)。在这项工作中,我们开发了一种新颖的级联遮挡感知Transformer(COAT)模型,用于端到端的人物搜索。COAT模型在PRW基准数据集上以显著的优势胜过了最先进的方法,并在CUHK-SYSU数据集上取得了最先进的性能。 + +| 数据集(Datasets) | mAP | Top-1 | Model | +| ---------------- | ---- | ----- | ------------------------------------------------------------ | +| CUHK-SYSU | 94.2 | 94.7 | [model](https://drive.google.com/file/d/1LkEwXYaJg93yk4Kfhyk3m6j8v3i9s1B7/view?usp=sharing) | +| PRW | 53.3 | 87.4 | [model](https://drive.google.com/file/d/1vEd_zzFN88RgxbRMG5-WfJZgD3vmP0Xg/view?usp=sharing) | + +**Abstract**: The goal of person search is to localize a target person from a gallery set of scene images, which is extremely challenging due to large scale variations, pose/viewpoint changes, and occlusions. In this paper, we propose the Cascade Occluded Attention Transformer (COAT) for end-to-end person search. Specifically, our three-stage cascade design focuses on detecting people at the first stage, then progressively refines the representation for person detection and re-identification simultaneously at the following stages. The occluded attention transformer at each stage applies tighter intersection over union thresholds, forcing the network to learn coarse-to-fine pose/scale invariant features. Meanwhile, we calculate the occluded attention across instances in a mini-batch to differentiate tokens from other people or the background. In this way, we simulate the effect of other objects occluding a person of interest at the token-level. Through comprehensive experiments, we demonstrate the benefits of our method by achieving state-of-the-art performance on two benchmark datasets. + +![COAT](doc/framework.png) + + +## Installation +1. Download the datasets in your path `$DATA_DIR`. Change the dataset paths in L4 in [cuhk_sysu.yaml](configs/cuhk_sysu.yaml) and [prw.yaml](configs/prw.yaml). + +**PRW**: + +``` +cd $DATA_DIR +pip install gdown +gdown https://drive.google.com/uc?id=0B6tjyrV1YrHeYnlhNnhEYTh5MUU +unzip PRW-v16.04.20.zip +mv PRW-v16.04.20 PRW +``` + +**CUHK-SYSU**: + +``` +cd $DATA_DIR +gdown https://drive.google.com/uc?id=1z3LsFrJTUeEX3-XjSEJMOBrslxD2T5af +tar -xzvf cuhk_sysu.tar.gz +mv cuhk_sysu CUHK-SYSU +``` + +2. Our method is tested with PyTorch 1.7.1. You can install the required packages by anaconda/miniconda with the following commands: + +``` +cd COAT +conda env create -f COAT_pt171.yml +conda activate coat +``` + +If you want to install another version of PyTorch, you can modify the versions in `coat_pt171.yml`. Just make sure the dependencies have the appropriate version. + + +## CUHK-SYSU数据集实验 +**训练**: 目前代码只支持单GPU. The default training script for CUHK-SYSU is as follows: + +**在本地GTX4090训练**: + +``` bash +cd COAT +# 说明:4090显存较小,所以batchsize只能设置为2, 实测可以运行 +python train.py --cfg configs/cuhk_sysu-local.yaml INPUT.BATCH_SIZE_TRAIN 2 SOLVER.BASE_LR 0.003 SOLVER.MAX_EPOCHS 14 SOLVER.LR_DECAY_MILESTONES [11] MODEL.LOSS.USE_SOFTMAX True SOLVER.LW_RCNN_SOFTMAX_2ND 0.1 SOLVER.LW_RCNN_SOFTMAX_3RD 0.1 OUTPUT_DIR ./logs/cuhk-sysu +``` + +**在本地UESTC训练**: + +```bash +cd COAT +# 说明:RTX8000显存48G,所以batchsize只能设置为3 +python train.py --cfg configs/cuhk_sysu.yaml INPUT.BATCH_SIZE_TRAIN 2 SOLVER.BASE_LR 0.003 SOLVER.MAX_EPOCHS 14 SOLVER.LR_DECAY_MILESTONES [11] MODEL.LOSS.USE_SOFTMAX True SOLVER.LW_RCNN_SOFTMAX_2ND 0.1 SOLVER.LW_RCNN_SOFTMAX_3RD 0.1 OUTPUT_DIR ./logs/cuhk-sysu +``` + +Note that the dataset-specific parameters are defined in `configs/cuhk_sysu.yaml`. When the batch size (`INPUT.BATCH_SIZE_TRAIN`) is 3, the training will take about 23GB GPU memory, being suitable for GPUs like RTX6000. When the batch size is 5, the training will take about 38GB GPU memory, being able to run on A100 GPU. The larger batch size usually results in better performance on CUHK-SYSU. + +For the CUHK-SYSU dataset, we use a relative low weight for softmax loss (`SOLVER.LW_RCNN_SOFTMAX_2ND` 0.1 and `SOLVER.LW_RCNN_SOFTMAX_3RD` 0.1). The trained models and TF logs will be saved in the folder `OUTPUT_DIR`. Other important training parameters can be found in the file `COAT/defaults.py`. For example, `CKPT_PERIOD` is the frequency of saving a checkpoint model. + +**Testing**: The test script is very simple. You just need to add the flag `--eval` and provide the folder `--ckpt` where the [model](https://drive.google.com/file/d/1LkEwXYaJg93yk4Kfhyk3m6j8v3i9s1B7/view?usp=sharing) was saved. + +测试:这个测试脚本非常简单,你只需要添加flag --eval以及对应提供--ckpt当模型已经保存的时候 + +``` +python train.py --cfg ./configs/cuhk-sysu/config.yaml --eval --ckpt ./logs/cuhk-sysu/cuhk_COAT.pth +``` + +**Testing with CBGM**: Context Bipartite Graph Matching ([CBGM](https://github.com/serend1p1ty/SeqNet)) is an optimized matching algorithm in test phase. The detail can be found in the paper [[AAAI 2021] Sequential End-to-end Network for Efficient Person Search](https://arxiv.org/abs/2103.10148). We can use CBGM to further improve the person search accuracy. In test script, we just set the flag `EVAL_USE_CBGM` to True (default is False). + +``` +python train.py --cfg ./configs/cuhk-sysu/config.yaml --eval --ckpt ./logs/cuhk-sysu/cuhk_COAT.pth EVAL_USE_CB GM True +``` + +**Testing with different gallery sizes on CUHK-SYSU**: The default gallery size for evaluating CUHK-SYSU is 100. If you want to test with other pre-defined gallery sizes (50, 100, 500, 1000, 2000, 4000) for drawing the CUHK-SYSU gallery size curve, please set the parameter `EVAL_GALLERY_SIZE` with a gallery size. + +``` +python train.py --cfg ./configs/cuhk-sysu/config.yaml --eval --ckpt ./logs/cuhk-sysu/cuhk_COAT.pth EVAL_GALLER Y_SIZE 500 +``` + +## Experiments on PRW +**Training**: The script is similar to CUHK-SYSU. The code currently only supports single GPU. The default training script for PRW is as follows: + +**在本地GTX4090训练**: + +```bash +cd COAT +# PRW数据集较小,可以RTX4090的bs可以设置为3 +python train.py --cfg ./configs/prw-local.yaml INPUT.BATCH_SIZE_TRAIN 3 SOLVER.BASE_LR 0.003 SOLVER.MAX_EPOCHS 13 MODEL.LOSS.USE_SOFTMAX True OUTPUT_DIR ./logs/prw +``` + +**在本地UESTC训练**: + +```bash +cd COAT +# PRW数据集较小,可以RTX4090的bs可以设置为3 +python train.py --cfg ./configs/prw.yaml INPUT.BATCH_SIZE_TRAIN 3 SOLVER.BASE_LR 0.003 SOLVER.MAX_EPOCHS 13 MODEL.LOSS.USE_SOFTMAX True OUTPUT_DIR ./logs/prw +``` + +The dataset-specific parameters are defined in `configs/prw.yaml`. When the batch size (`INPUT.BATCH_SIZE_TRAIN`) is 3, the training will take about 19GB GPU memory, being suitable for GPUs like RTX6000. The larger batch size does not necessarily result in better accuracy on the PRW dataset. +Softmax loss is effective on PRW. The default weights of softmax loss at Stage 2 and Stage 3 (`SOLVER.LW_RCNN_SOFTMAX_2ND` and `SOLVER.LW_RCNN_SOFTMAX_3RD`) are 0.5, which can be found in the file `COAT/defaults.py`. If you want to run a model without Softmax loss for comparison, just set `MODEL.LOSS.USE_SOFTMAX` to False in the script. + + +**Testing**: The test script is similar to CUHK-SYSU. Make sure the path of pre-trained model [model](https://drive.google.com/file/d/1vEd_zzFN88RgxbRMG5-WfJZgD3vmP0Xg/view?usp=sharing) is correct. + +``` +python train.py --cfg ./logs/prw/config.yaml --eval --ckpt ./logs/prw/prw_COAT.pth + +``` + +**Testing with CBGM**: Similar to CUHK-SYSU, set the flag `EVAL_USE_CBGM` to True (default is False). + +``` +python train.py --cfg ./logs/prw/config.yaml --eval --ckpt ./logs/prw/prw_COAT.pth EVAL_USE_CBGM True +``` + + +## Acknowledgement +This code borrows from [SeqNet](https://github.com/serend1p1ty/SeqNet), [TransReID](https://github.com/damo-cv/TransReID), and [DSTT](https://github.com/ruiliu-ai/DSTT). + +## Citation +If you use this code in your research, please cite this project as follows: + +``` +@inproceedings{yu2022coat, + title = {Cascade Transformers for End-to-End Person Search}, + author = {Rui Yu and + Dawei Du and + Rodney LaLonde and + Daniel Davila and + Christopher Funk and + Anthony Hoogs and + Brian Clipp}, + booktitle = {{IEEE} Conference on Computer Vision and Pattern Recognition}, + year = {2022} +} +``` + +## License +This work is distributed under the OSI-approved BSD 3-Clause [License](https://github.com/Kitware/COAT/blob/master/LICENSE). diff --git a/coat-pvtv2-b2/configs/cuhk_sysu-local.yaml b/coat-pvtv2-b2/configs/cuhk_sysu-local.yaml new file mode 100644 index 0000000..0830c43 --- /dev/null +++ b/coat-pvtv2-b2/configs/cuhk_sysu-local.yaml @@ -0,0 +1,15 @@ +OUTPUT_DIR: "./logs/cuhk_coat" +INPUT: + DATASET: "CUHK-SYSU" + DATA_ROOT: "E:/DeepLearning/PersonSearch/COAT/datasets/CUHK-SYSU" + BATCH_SIZE_TRAIN: 3 +SOLVER: + MAX_EPOCHS: 14 + BASE_LR: 0.003 + LW_RCNN_SOFTMAX_2ND: 0.1 + LW_RCNN_SOFTMAX_3RD: 0.1 +MODEL: + LOSS: + LUT_SIZE: 5532 + CQ_SIZE: 5000 +DISP_PERIOD: 100 diff --git a/coat-pvtv2-b2/configs/cuhk_sysu.yaml b/coat-pvtv2-b2/configs/cuhk_sysu.yaml new file mode 100644 index 0000000..c28a480 --- /dev/null +++ b/coat-pvtv2-b2/configs/cuhk_sysu.yaml @@ -0,0 +1,15 @@ +OUTPUT_DIR: "./logs/cuhk_coat" +INPUT: + DATASET: "CUHK-SYSU" + DATA_ROOT: "/home/logzhan/datasets/CUHK-SYSU" + BATCH_SIZE_TRAIN: 4 +SOLVER: + MAX_EPOCHS: 14 + BASE_LR: 0.003 + LW_RCNN_SOFTMAX_2ND: 0.1 + LW_RCNN_SOFTMAX_3RD: 0.1 +MODEL: + LOSS: + LUT_SIZE: 5532 + CQ_SIZE: 5000 +DISP_PERIOD: 100 diff --git a/coat-pvtv2-b2/configs/prw-local.yaml b/coat-pvtv2-b2/configs/prw-local.yaml new file mode 100644 index 0000000..c5b1331 --- /dev/null +++ b/coat-pvtv2-b2/configs/prw-local.yaml @@ -0,0 +1,13 @@ +OUTPUT_DIR: "./logs/prw_coat" +INPUT: + DATASET: "PRW" + DATA_ROOT: "E:/DeepLearning/PersonSearch/COAT/datasets/PRW" + BATCH_SIZE_TRAIN: 3 +SOLVER: + MAX_EPOCHS: 13 + BASE_LR: 0.003 +MODEL: + LOSS: + LUT_SIZE: 482 + CQ_SIZE: 500 +DISP_PERIOD: 100 diff --git a/coat-pvtv2-b2/configs/prw.yaml b/coat-pvtv2-b2/configs/prw.yaml new file mode 100644 index 0000000..70a26f3 --- /dev/null +++ b/coat-pvtv2-b2/configs/prw.yaml @@ -0,0 +1,13 @@ +OUTPUT_DIR: "./logs/prw_coat" +INPUT: + DATASET: "PRW" + DATA_ROOT: "../../datasets/PRW" + BATCH_SIZE_TRAIN: 3 +SOLVER: + MAX_EPOCHS: 13 + BASE_LR: 0.003 +MODEL: + LOSS: + LUT_SIZE: 482 + CQ_SIZE: 500 +DISP_PERIOD: 100 diff --git a/coat-pvtv2-b2/datasets/__init__.py b/coat-pvtv2-b2/datasets/__init__.py new file mode 100644 index 0000000..58a3459 --- /dev/null +++ b/coat-pvtv2-b2/datasets/__init__.py @@ -0,0 +1,5 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +from .build import build_test_loader, build_train_loader diff --git a/coat-pvtv2-b2/datasets/base.py b/coat-pvtv2-b2/datasets/base.py new file mode 100644 index 0000000..1a61cad --- /dev/null +++ b/coat-pvtv2-b2/datasets/base.py @@ -0,0 +1,42 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import torch +from PIL import Image + +class BaseDataset: + """ + Base class of person search dataset. + """ + + def __init__(self, root, transforms, split): + self.root = root + self.transforms = transforms + self.split = split + assert self.split in ("train", "gallery", "query") + self.annotations = self._load_annotations() + + def _load_annotations(self): + """ + For each image, load its annotation that is a dictionary with the following keys: + img_name (str): image name + img_path (str): image path + boxes (np.array[N, 4]): ground-truth boxes in (x1, y1, x2, y2) format + pids (np.array[N]): person IDs corresponding to these boxes + cam_id (int): camera ID (only for PRW dataset) + """ + raise NotImplementedError + + def __getitem__(self, index): + anno = self.annotations[index] + img = Image.open(anno["img_path"]).convert("RGB") + boxes = torch.as_tensor(anno["boxes"], dtype=torch.float32) + labels = torch.as_tensor(anno["pids"], dtype=torch.int64) + target = {"img_name": anno["img_name"], "boxes": boxes, "labels": labels} + if self.transforms is not None: + img, target = self.transforms(img, target) + return img, target + + def __len__(self): + return len(self.annotations) diff --git a/coat-pvtv2-b2/datasets/build.py b/coat-pvtv2-b2/datasets/build.py new file mode 100644 index 0000000..29ab278 --- /dev/null +++ b/coat-pvtv2-b2/datasets/build.py @@ -0,0 +1,104 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import torch +from utils.transforms import build_transforms +from utils.utils import create_small_table +from .cuhk_sysu import CUHKSYSU +from .prw import PRW + +def print_statistics(dataset): + """ + Print dataset statistics. + """ + num_imgs = len(dataset.annotations) + num_boxes = 0 + pid_set = set() + for anno in dataset.annotations: + num_boxes += anno["boxes"].shape[0] + for pid in anno["pids"]: + pid_set.add(pid) + statistics = { + "dataset": dataset.name, + "split": dataset.split, + "num_images": num_imgs, + "num_boxes": num_boxes, + } + if dataset.name != "CUHK-SYSU" or dataset.split != "query": + pid_list = sorted(list(pid_set)) + if dataset.split == "query": + num_pids, min_pid, max_pid = len(pid_list), min(pid_list), max(pid_list) + statistics.update( + { + "num_labeled_pids": num_pids, + "min_labeled_pid": int(min_pid), + "max_labeled_pid": int(max_pid), + } + ) + else: + unlabeled_pid = pid_list[-1] + pid_list = pid_list[:-1] # remove unlabeled pid + num_pids, min_pid, max_pid = len(pid_list), min(pid_list), max(pid_list) + statistics.update( + { + "num_labeled_pids": num_pids, + "min_labeled_pid": int(min_pid), + "max_labeled_pid": int(max_pid), + "unlabeled_pid": int(unlabeled_pid), + } + ) + print(f"=> {dataset.name}-{dataset.split} loaded:\n" + create_small_table(statistics)) + + +def build_dataset(dataset_name, root, transforms, split, verbose=True): + if dataset_name == "CUHK-SYSU": + dataset = CUHKSYSU(root, transforms, split) + elif dataset_name == "PRW": + dataset = PRW(root, transforms, split) + else: + raise NotImplementedError(f"Unknow dataset: {dataset_name}") + if verbose: + print_statistics(dataset) + return dataset + + +def collate_fn(batch): + return tuple(zip(*batch)) + + +def build_train_loader(cfg): + transforms = build_transforms(cfg, is_train=True) + dataset = build_dataset(cfg.INPUT.DATASET, cfg.INPUT.DATA_ROOT, transforms, "train") + return torch.utils.data.DataLoader( + dataset, + batch_size=cfg.INPUT.BATCH_SIZE_TRAIN, + shuffle=True, + num_workers=cfg.INPUT.NUM_WORKERS_TRAIN, + pin_memory=True, + drop_last=True, + collate_fn=collate_fn, + ) + + +def build_test_loader(cfg): + transforms = build_transforms(cfg, is_train=False) + gallery_set = build_dataset(cfg.INPUT.DATASET, cfg.INPUT.DATA_ROOT, transforms, "gallery") + query_set = build_dataset(cfg.INPUT.DATASET, cfg.INPUT.DATA_ROOT, transforms, "query") + gallery_loader = torch.utils.data.DataLoader( + gallery_set, + batch_size=cfg.INPUT.BATCH_SIZE_TEST, + shuffle=False, + num_workers=cfg.INPUT.NUM_WORKERS_TEST, + pin_memory=True, + collate_fn=collate_fn, + ) + query_loader = torch.utils.data.DataLoader( + query_set, + batch_size=cfg.INPUT.BATCH_SIZE_TEST, + shuffle=False, + num_workers=cfg.INPUT.NUM_WORKERS_TEST, + pin_memory=True, + collate_fn=collate_fn, + ) + return gallery_loader, query_loader diff --git a/coat-pvtv2-b2/datasets/cuhk_sysu.py b/coat-pvtv2-b2/datasets/cuhk_sysu.py new file mode 100644 index 0000000..bdf45bd --- /dev/null +++ b/coat-pvtv2-b2/datasets/cuhk_sysu.py @@ -0,0 +1,121 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import os.path as osp +import numpy as np +from scipy.io import loadmat +from .base import BaseDataset + +class CUHKSYSU(BaseDataset): + def __init__(self, root, transforms, split): + self.name = "CUHK-SYSU" + self.img_prefix = osp.join(root, "Image", "SSM") + super(CUHKSYSU, self).__init__(root, transforms, split) + + def _load_queries(self): + # TestG50: a test protocol, 50 gallery images per query + protoc = loadmat(osp.join(self.root, "annotation/test/train_test/TestG50.mat")) + protoc = protoc["TestG50"].squeeze() + queries = [] + for item in protoc["Query"]: + img_name = str(item["imname"][0, 0][0]) + roi = item["idlocate"][0, 0][0].astype(np.int32) + roi[2:] += roi[:2] + queries.append( + { + "img_name": img_name, + "img_path": osp.join(self.img_prefix, img_name), + "boxes": roi[np.newaxis, :], + "pids": np.array([-100]), # dummy pid + } + ) + return queries + + def _load_split_img_names(self): + """ + Load the image names for the specific split. + """ + assert self.split in ("train", "gallery") + # gallery images + gallery_imgs = loadmat(osp.join(self.root, "annotation", "pool.mat")) + gallery_imgs = gallery_imgs["pool"].squeeze() + gallery_imgs = [str(a[0]) for a in gallery_imgs] + if self.split == "gallery": + return gallery_imgs + # all images + all_imgs = loadmat(osp.join(self.root, "annotation", "Images.mat")) + all_imgs = all_imgs["Img"].squeeze() + all_imgs = [str(a[0][0]) for a in all_imgs] + # training images = all images - gallery images + training_imgs = sorted(list(set(all_imgs) - set(gallery_imgs))) + return training_imgs + + def _load_annotations(self): + if self.split == "query": + return self._load_queries() + + # load all images and build a dict from image to boxes + all_imgs = loadmat(osp.join(self.root, "annotation", "Images.mat")) + all_imgs = all_imgs["Img"].squeeze() + name_to_boxes = {} + name_to_pids = {} + unlabeled_pid = 5555 # default pid for unlabeled people + for img_name, _, boxes in all_imgs: + img_name = str(img_name[0]) + boxes = np.asarray([b[0] for b in boxes[0]]) + boxes = boxes.reshape(boxes.shape[0], 4) # (x1, y1, w, h) + valid_index = np.where((boxes[:, 2] > 0) & (boxes[:, 3] > 0))[0] + assert valid_index.size > 0, "Warning: {} has no valid boxes.".format(img_name) + boxes = boxes[valid_index] + name_to_boxes[img_name] = boxes.astype(np.int32) + name_to_pids[img_name] = unlabeled_pid * np.ones(boxes.shape[0], dtype=np.int32) + + def set_box_pid(boxes, box, pids, pid): + for i in range(boxes.shape[0]): + if np.all(boxes[i] == box): + pids[i] = pid + return + + # assign a unique pid from 1 to N for each identity + if self.split == "train": + train = loadmat(osp.join(self.root, "annotation/test/train_test/Train.mat")) + train = train["Train"].squeeze() + for index, item in enumerate(train): + scenes = item[0, 0][2].squeeze() + for img_name, box, _ in scenes: + img_name = str(img_name[0]) + box = box.squeeze().astype(np.int32) + set_box_pid(name_to_boxes[img_name], box, name_to_pids[img_name], index + 1) + else: + protoc = loadmat(osp.join(self.root, "annotation/test/train_test/TestG50.mat")) + protoc = protoc["TestG50"].squeeze() + for index, item in enumerate(protoc): + # query + im_name = str(item["Query"][0, 0][0][0]) + box = item["Query"][0, 0][1].squeeze().astype(np.int32) + set_box_pid(name_to_boxes[im_name], box, name_to_pids[im_name], index + 1) + # gallery + gallery = item["Gallery"].squeeze() + for im_name, box, _ in gallery: + im_name = str(im_name[0]) + if box.size == 0: + break + box = box.squeeze().astype(np.int32) + set_box_pid(name_to_boxes[im_name], box, name_to_pids[im_name], index + 1) + + annotations = [] + imgs = self._load_split_img_names() + for img_name in imgs: + boxes = name_to_boxes[img_name] + boxes[:, 2:] += boxes[:, :2] # (x1, y1, w, h) -> (x1, y1, x2, y2) + pids = name_to_pids[img_name] + annotations.append( + { + "img_name": img_name, + "img_path": osp.join(self.img_prefix, img_name), + "boxes": boxes, + "pids": pids, + } + ) + return annotations diff --git a/coat-pvtv2-b2/datasets/prw.py b/coat-pvtv2-b2/datasets/prw.py new file mode 100644 index 0000000..738c6d3 --- /dev/null +++ b/coat-pvtv2-b2/datasets/prw.py @@ -0,0 +1,97 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import os.path as osp +import re + +import numpy as np +from scipy.io import loadmat + +from .base import BaseDataset + + +class PRW(BaseDataset): + def __init__(self, root, transforms, split): + self.name = "PRW" + self.img_prefix = osp.join(root, "frames") + super(PRW, self).__init__(root, transforms, split) + + def _get_cam_id(self, img_name): + match = re.search(r"c\d", img_name).group().replace("c", "") + return int(match) + + def _load_queries(self): + query_info = osp.join(self.root, "query_info.txt") + with open(query_info, "rb") as f: + raw = f.readlines() + + queries = [] + for line in raw: + linelist = str(line, "utf-8").split(" ") + pid = int(linelist[0]) + x, y, w, h = ( + float(linelist[1]), + float(linelist[2]), + float(linelist[3]), + float(linelist[4]), + ) + roi = np.array([x, y, x + w, y + h]).astype(np.int32) + roi = np.clip(roi, 0, None) # several coordinates are negative + img_name = linelist[5][:-2] + ".jpg" + queries.append( + { + "img_name": img_name, + "img_path": osp.join(self.img_prefix, img_name), + "boxes": roi[np.newaxis, :], + "pids": np.array([pid]), + "cam_id": self._get_cam_id(img_name), + } + ) + return queries + + def _load_split_img_names(self): + """ + Load the image names for the specific split. + """ + assert self.split in ("train", "gallery") + if self.split == "train": + imgs = loadmat(osp.join(self.root, "frame_train.mat"))["img_index_train"] + else: + imgs = loadmat(osp.join(self.root, "frame_test.mat"))["img_index_test"] + return [img[0][0] + ".jpg" for img in imgs] + + def _load_annotations(self): + if self.split == "query": + return self._load_queries() + + annotations = [] + imgs = self._load_split_img_names() + for img_name in imgs: + anno_path = osp.join(self.root, "annotations", img_name) + anno = loadmat(anno_path) + box_key = "box_new" + if box_key not in anno.keys(): + box_key = "anno_file" + if box_key not in anno.keys(): + box_key = "anno_previous" + + rois = anno[box_key][:, 1:] + ids = anno[box_key][:, 0] + rois = np.clip(rois, 0, None) # several coordinates are negative + + assert len(rois) == len(ids) + + rois[:, 2:] += rois[:, :2] + ids[ids == -2] = 5555 # assign pid = 5555 for unlabeled people + annotations.append( + { + "img_name": img_name, + "img_path": osp.join(self.img_prefix, img_name), + "boxes": rois.astype(np.int32), + # (training pids) 1, 2,..., 478, 480, 481, 482, 483, 932, 5555 + "pids": ids.astype(np.int32), + "cam_id": self._get_cam_id(img_name), + } + ) + return annotations diff --git a/coat-pvtv2-b2/defaults.py b/coat-pvtv2-b2/defaults.py new file mode 100644 index 0000000..54910f7 --- /dev/null +++ b/coat-pvtv2-b2/defaults.py @@ -0,0 +1,219 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +from yacs.config import CfgNode as CN + +_C = CN() + +# -------------------------------------------------------- # +# Input # +# -------------------------------------------------------- # +_C.INPUT = CN() +_C.INPUT.DATASET = "CUHK-SYSU" +_C.INPUT.DATA_ROOT = "data/CUHK-SYSU" + +# Size of the smallest side of the image +_C.INPUT.MIN_SIZE = 900 +# Maximum size of the side of the image +_C.INPUT.MAX_SIZE = 1500 + +# Number of images per batch +_C.INPUT.BATCH_SIZE_TRAIN = 5 +_C.INPUT.BATCH_SIZE_TEST = 1 + +# Number of data loading threads +_C.INPUT.NUM_WORKERS_TRAIN = 5 +_C.INPUT.NUM_WORKERS_TEST = 1 + +# Image augmentation +_C.INPUT.IMAGE_CUTOUT = False +_C.INPUT.IMAGE_ERASE = False +_C.INPUT.IMAGE_MIXUP = False + +# -------------------------------------------------------- # +# GRID # +# -------------------------------------------------------- # +_C.INPUT.IMAGE_GRID = False +_C.GRID = CN() +_C.GRID.ROTATE = 1 +_C.GRID.OFFSET = 0 +_C.GRID.RATIO = 0.5 +_C.GRID.MODE = 1 +_C.GRID.PROB = 0.5 + +# -------------------------------------------------------- # +# Solver # +# -------------------------------------------------------- # +_C.SOLVER = CN() +_C.SOLVER.MAX_EPOCHS = 13 + +# Learning rate settings +_C.SOLVER.BASE_LR = 0.003 + +# The epoch milestones to decrease the learning rate by GAMMA +_C.SOLVER.LR_DECAY_MILESTONES = [10, 14] +_C.SOLVER.GAMMA = 0.1 + +_C.SOLVER.WEIGHT_DECAY = 0.0005 +_C.SOLVER.SGD_MOMENTUM = 0.9 + +# Loss weight of RPN regression +_C.SOLVER.LW_RPN_REG = 1 +# Loss weight of RPN classification +_C.SOLVER.LW_RPN_CLS = 1 + +# Loss weight of Cascade R-CNN and Re-ID (OIM) +_C.SOLVER.LW_RCNN_REG_1ST = 10 +_C.SOLVER.LW_RCNN_CLS_1ST = 1 +_C.SOLVER.LW_RCNN_REG_2ND = 10 +_C.SOLVER.LW_RCNN_CLS_2ND = 1 +_C.SOLVER.LW_RCNN_REG_3RD = 10 +_C.SOLVER.LW_RCNN_CLS_3RD = 1 +_C.SOLVER.LW_RCNN_REID_2ND = 0.5 +_C.SOLVER.LW_RCNN_REID_3RD = 0.5 +# Loss weight of box reid, softmax loss +_C.SOLVER.LW_RCNN_SOFTMAX_2ND = 0.5 +_C.SOLVER.LW_RCNN_SOFTMAX_3RD = 0.5 + +# Set to negative value to disable gradient clipping +_C.SOLVER.CLIP_GRADIENTS = 10.0 + +# -------------------------------------------------------- # +# RPN # +# -------------------------------------------------------- # +_C.MODEL = CN() +_C.MODEL.RPN = CN() +# NMS threshold used on RoIs +_C.MODEL.RPN.NMS_THRESH = 0.7 +# Number of anchors per image used to train RPN +_C.MODEL.RPN.BATCH_SIZE_TRAIN = 256 +# Target fraction of foreground examples per RPN minibatch +_C.MODEL.RPN.POS_FRAC_TRAIN = 0.5 +# Overlap threshold for an anchor to be considered foreground (if >= POS_THRESH_TRAIN) +_C.MODEL.RPN.POS_THRESH_TRAIN = 0.7 +# Overlap threshold for an anchor to be considered background (if < NEG_THRESH_TRAIN) +_C.MODEL.RPN.NEG_THRESH_TRAIN = 0.3 +# Number of top scoring RPN RoIs to keep before applying NMS +_C.MODEL.RPN.PRE_NMS_TOPN_TRAIN = 12000 +_C.MODEL.RPN.PRE_NMS_TOPN_TEST = 6000 +# Number of top scoring RPN RoIs to keep after applying NMS +_C.MODEL.RPN.POST_NMS_TOPN_TRAIN = 2000 +_C.MODEL.RPN.POST_NMS_TOPN_TEST = 300 + +# -------------------------------------------------------- # +# RoI head # +# -------------------------------------------------------- # +_C.MODEL.ROI_HEAD = CN() +# Whether to use bn neck (i.e. batch normalization after linear) +_C.MODEL.ROI_HEAD.BN_NECK = True +# Number of RoIs per image used to train RoI head +_C.MODEL.ROI_HEAD.BATCH_SIZE_TRAIN = 128 +# Target fraction of foreground examples per RoI minibatch +_C.MODEL.ROI_HEAD.POS_FRAC_TRAIN = 0.25 # 0.5 + +_C.MODEL.ROI_HEAD.USE_DIFF_THRESH = True +# Overlap threshold for an RoI to be considered foreground (if >= POS_THRESH_TRAIN) +_C.MODEL.ROI_HEAD.POS_THRESH_TRAIN = 0.5 +_C.MODEL.ROI_HEAD.POS_THRESH_TRAIN_2ND = 0.6 +_C.MODEL.ROI_HEAD.POS_THRESH_TRAIN_3RD = 0.7 +# Overlap threshold for an RoI to be considered background (if < NEG_THRESH_TRAIN) +_C.MODEL.ROI_HEAD.NEG_THRESH_TRAIN = 0.5 +_C.MODEL.ROI_HEAD.NEG_THRESH_TRAIN_2ND = 0.6 +_C.MODEL.ROI_HEAD.NEG_THRESH_TRAIN_3RD = 0.7 +# Minimum score threshold +_C.MODEL.ROI_HEAD.SCORE_THRESH_TEST = 0.5 +# NMS threshold used on boxes +_C.MODEL.ROI_HEAD.NMS_THRESH_TEST = 0.4 +_C.MODEL.ROI_HEAD.NMS_THRESH_TEST_1ST = 0.4 +_C.MODEL.ROI_HEAD.NMS_THRESH_TEST_2ND = 0.4 +_C.MODEL.ROI_HEAD.NMS_THRESH_TEST_3RD = 0.5 +# Maximum number of detected objects +_C.MODEL.ROI_HEAD.DETECTIONS_PER_IMAGE_TEST = 300 + +# -------------------------------------------------------- # +# Transformer head # +# -------------------------------------------------------- # +_C.MODEL.TRANSFORMER = CN() +_C.MODEL.TRANSFORMER.DIM_MODEL = 512 +_C.MODEL.TRANSFORMER.ENCODER_LAYERS = 1 +_C.MODEL.TRANSFORMER.N_HEAD = 8 +_C.MODEL.TRANSFORMER.USE_OUTPUT_LAYER = False +_C.MODEL.TRANSFORMER.DROPOUT = 0. +_C.MODEL.TRANSFORMER.USE_LOCAL_SHORTCUT = True +_C.MODEL.TRANSFORMER.USE_GLOBAL_SHORTCUT = True + +_C.MODEL.TRANSFORMER.USE_DIFF_SCALE = True +_C.MODEL.TRANSFORMER.NAMES_1ST = ['scale1','scale2'] +_C.MODEL.TRANSFORMER.NAMES_2ND = ['scale1','scale2'] +_C.MODEL.TRANSFORMER.NAMES_3RD = ['scale1','scale2'] +_C.MODEL.TRANSFORMER.KERNEL_SIZE_1ST = [(1,1),(3,3)] +_C.MODEL.TRANSFORMER.KERNEL_SIZE_2ND = [(1,1),(3,3)] +_C.MODEL.TRANSFORMER.KERNEL_SIZE_3RD = [(1,1),(3,3)] +_C.MODEL.TRANSFORMER.USE_MASK_1ST = False +_C.MODEL.TRANSFORMER.USE_MASK_2ND = True +_C.MODEL.TRANSFORMER.USE_MASK_3RD = True +_C.MODEL.TRANSFORMER.USE_PATCH2VEC = True + +#### +_C.MODEL.USE_FEATURE_MASK = True +_C.MODEL.FEATURE_AUG_TYPE = 'exchange_token' # 'exchange_token', 'jigsaw_token', 'cutout_patch', 'erase_patch', 'mixup_patch', 'jigsaw_patch' +_C.MODEL.FEATURE_MASK_SIZE = 4 +_C.MODEL.MASK_SHAPE = 'stripe' # 'square', 'random' +_C.MODEL.MASK_SIZE = 1 +_C.MODEL.MASK_MODE = 'random_direction' # 'horizontal', 'vertical' for stripe; 'random_size' for square +_C.MODEL.MASK_PERCENT = 0.1 +#### +_C.MODEL.EMBEDDING_DIM = 256 + +# -------------------------------------------------------- # +# Loss # +# -------------------------------------------------------- # +_C.MODEL.LOSS = CN() +# Size of the lookup table in OIM +_C.MODEL.LOSS.LUT_SIZE = 5532 +# Size of the circular queue in OIM +_C.MODEL.LOSS.CQ_SIZE = 5000 +_C.MODEL.LOSS.OIM_MOMENTUM = 0.5 +_C.MODEL.LOSS.OIM_SCALAR = 30.0 + +_C.MODEL.LOSS.USE_SOFTMAX = True + +# -------------------------------------------------------- # +# Evaluation # +# -------------------------------------------------------- # +# The period to evaluate the model during training +_C.EVAL_PERIOD = 1 +# Evaluation with GT boxes to verify the upper bound of person search performance +_C.EVAL_USE_GT = False +# Fast evaluation with cached features +_C.EVAL_USE_CACHE = False +# Evaluation with Context Bipartite Graph Matching (CBGM) algorithm +_C.EVAL_USE_CBGM = False +# Gallery size in evaluation, only for CUHK-SYSU +_C.EVAL_GALLERY_SIZE = 100 +# Feature used for evaluation +_C.EVAL_FEATURE = 'concat' # 'stage2', 'stage3' + +# -------------------------------------------------------- # +# Miscs # +# -------------------------------------------------------- # +# Save a checkpoint after every this number of epochs +_C.CKPT_PERIOD = 1 +# The period (in terms of iterations) to display training losses +_C.DISP_PERIOD = 10 +# Whether to use tensorboard for visualization +_C.TF_BOARD = True +# The device loading the model +_C.DEVICE = "cuda:0" +# Set seed to negative to fully randomize everything +_C.SEED = 1 +# Directory where output files are written +_C.OUTPUT_DIR = "./output" + + +def get_default_cfg(): + """ + Get a copy of the default config. + """ + return _C.clone() diff --git a/coat-pvtv2-b2/doc/framework.png b/coat-pvtv2-b2/doc/framework.png new file mode 100644 index 0000000..1903b54 Binary files /dev/null and b/coat-pvtv2-b2/doc/framework.png differ diff --git a/coat-pvtv2-b2/engine.py b/coat-pvtv2-b2/engine.py new file mode 100644 index 0000000..6fd2ede --- /dev/null +++ b/coat-pvtv2-b2/engine.py @@ -0,0 +1,179 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import math +import sys +from copy import deepcopy + +import torch +from torch.nn.utils import clip_grad_norm_ +from tqdm import tqdm + +from eval_func import eval_detection, eval_search_cuhk, eval_search_prw +from utils.utils import MetricLogger, SmoothedValue, mkdir, reduce_dict, warmup_lr_scheduler +from utils.transforms import mixup_data + + +def to_device(images, targets, device): + images = [image.to(device) for image in images] + for t in targets: + t["boxes"] = t["boxes"].to(device) + t["labels"] = t["labels"].to(device) + return images, targets + + +def train_one_epoch(cfg, model, optimizer, data_loader, device, epoch, tfboard, softmax_criterion_s2, softmax_criterion_s3): + model.train() + metric_logger = MetricLogger(delimiter=" ") + metric_logger.add_meter("lr", SmoothedValue(window_size=1, fmt="{value:.6f}")) + header = "Epoch: [{}]".format(epoch) + + # warmup learning rate in the first epoch + if epoch == 0: + warmup_factor = 1.0 / 1000 + warmup_iters = len(data_loader) - 1 + warmup_scheduler = warmup_lr_scheduler(optimizer, warmup_iters, warmup_factor) + + for i, (images, targets) in enumerate( + metric_logger.log_every(data_loader, cfg.DISP_PERIOD, header) + ): + images, targets = to_device(images, targets, device) + + # if using image based data augmentation + if cfg.INPUT.IMAGE_MIXUP: + images = mixup_data(images, alpha=0.8) + + loss_dict, feats_reid_2nd, targets_reid_2nd, feats_reid_3rd, targets_reid_3rd = model(images, targets) + + if cfg.MODEL.LOSS.USE_SOFTMAX: + softmax_loss_2nd = cfg.SOLVER.LW_RCNN_SOFTMAX_2ND * softmax_criterion_s2(feats_reid_2nd, targets_reid_2nd) + softmax_loss_3rd = cfg.SOLVER.LW_RCNN_SOFTMAX_3RD * softmax_criterion_s3(feats_reid_3rd, targets_reid_3rd) + loss_dict.update(loss_box_softmax_2nd=softmax_loss_2nd) + loss_dict.update(loss_box_softmax_3rd=softmax_loss_3rd) + + losses = sum(loss for loss in loss_dict.values()) + + # reduce losses over all GPUs for logging purposes + loss_dict_reduced = reduce_dict(loss_dict) + losses_reduced = sum(loss for loss in loss_dict_reduced.values()) + loss_value = losses_reduced.item() + + if not math.isfinite(loss_value): + print(f"Loss is {loss_value}, stopping training") + print(loss_dict_reduced) + sys.exit(1) + + optimizer.zero_grad() + losses.backward() + if cfg.SOLVER.CLIP_GRADIENTS > 0: + clip_grad_norm_(model.parameters(), cfg.SOLVER.CLIP_GRADIENTS) + optimizer.step() + + if epoch == 0: + warmup_scheduler.step() + + metric_logger.update(loss=loss_value, **loss_dict_reduced) + metric_logger.update(lr=optimizer.param_groups[0]["lr"]) + if tfboard: + iter = epoch * len(data_loader) + i + for k, v in loss_dict_reduced.items(): + tfboard.add_scalars("train", {k: v}, iter) + + +@torch.no_grad() +def evaluate_performance( + model, gallery_loader, query_loader, device, use_gt=False, use_cache=False, use_cbgm=False, gallery_size=100): + """ + Args: + use_gt (bool, optional): Whether to use GT as detection results to verify the upper + bound of person search performance. Defaults to False. + use_cache (bool, optional): Whether to use the cached features. Defaults to False. + use_cbgm (bool, optional): Whether to use Context Bipartite Graph Matching algorithm. + Defaults to False. + """ + model.eval() + if use_cache: + eval_cache = torch.load("data/eval_cache/eval_cache.pth") + gallery_dets = eval_cache["gallery_dets"] + gallery_feats = eval_cache["gallery_feats"] + query_dets = eval_cache["query_dets"] + query_feats = eval_cache["query_feats"] + query_box_feats = eval_cache["query_box_feats"] + else: + gallery_dets, gallery_feats = [], [] + for images, targets in tqdm(gallery_loader, ncols=0): + images, targets = to_device(images, targets, device) + if not use_gt: + outputs = model(images) + else: + boxes = targets[0]["boxes"] + n_boxes = boxes.size(0) + embeddings = model(images, targets) + outputs = [ + { + "boxes": boxes, + "embeddings": torch.cat(embeddings), + "labels": torch.ones(n_boxes).to(device), + "scores": torch.ones(n_boxes).to(device), + } + ] + + for output in outputs: + box_w_scores = torch.cat([output["boxes"], output["scores"].unsqueeze(1)], dim=1) + gallery_dets.append(box_w_scores.cpu().numpy()) + gallery_feats.append(output["embeddings"].cpu().numpy()) + + # regarding query image as gallery to detect all people + # i.e. query person + surrounding people (context information) + query_dets, query_feats = [], [] + for images, targets in tqdm(query_loader, ncols=0): + images, targets = to_device(images, targets, device) + # targets will be modified in the model, so deepcopy it + outputs = model(images, deepcopy(targets), query_img_as_gallery=True) + + # consistency check + gt_box = targets[0]["boxes"].squeeze() + + assert ( + gt_box - outputs[0]["boxes"][0] + ).sum() <= 0.001, "GT box must be the first one in the detected boxes of query image" + + for output in outputs: + box_w_scores = torch.cat([output["boxes"], output["scores"].unsqueeze(1)], dim=1) + query_dets.append(box_w_scores.cpu().numpy()) + query_feats.append(output["embeddings"].cpu().numpy()) + + # extract the features of query boxes + query_box_feats = [] + for images, targets in tqdm(query_loader, ncols=0): + images, targets = to_device(images, targets, device) + embeddings = model(images, targets) + assert len(embeddings) == 1, "batch size in test phase should be 1" + query_box_feats.append(embeddings[0].cpu().numpy()) + + mkdir("data/eval_cache") + save_dict = { + "gallery_dets": gallery_dets, + "gallery_feats": gallery_feats, + "query_dets": query_dets, + "query_feats": query_feats, + "query_box_feats": query_box_feats, + } + torch.save(save_dict, "data/eval_cache/eval_cache.pth") + + eval_detection(gallery_loader.dataset, gallery_dets, det_thresh=0.01) + eval_search_func = ( + eval_search_cuhk if gallery_loader.dataset.name == "CUHK-SYSU" else eval_search_prw + ) + eval_search_func( + gallery_loader.dataset, + query_loader.dataset, + gallery_dets, + gallery_feats, + query_box_feats, + query_dets, + query_feats, + cbgm=use_cbgm, + gallery_size=gallery_size, + ) diff --git a/coat-pvtv2-b2/eval_func.py b/coat-pvtv2-b2/eval_func.py new file mode 100644 index 0000000..e6f0d85 --- /dev/null +++ b/coat-pvtv2-b2/eval_func.py @@ -0,0 +1,488 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import os.path as osp +import numpy as np +from scipy.io import loadmat +from sklearn.metrics import average_precision_score + +from utils.km import run_kuhn_munkres +from utils.utils import write_json + + +def _compute_iou(a, b): + x1 = max(a[0], b[0]) + y1 = max(a[1], b[1]) + x2 = min(a[2], b[2]) + y2 = min(a[3], b[3]) + inter = max(0, x2 - x1) * max(0, y2 - y1) + union = (a[2] - a[0]) * (a[3] - a[1]) + (b[2] - b[0]) * (b[3] - b[1]) - inter + return inter * 1.0 / union + + +def eval_detection( + gallery_dataset, gallery_dets, det_thresh=0.5, iou_thresh=0.5, labeled_only=False +): + """ + gallery_det (list of ndarray): n_det x [x1, y1, x2, y2, score] per image + det_thresh (float): filter out gallery detections whose scores below this + iou_thresh (float): treat as true positive if IoU is above this threshold + labeled_only (bool): filter out unlabeled background people + """ + assert len(gallery_dataset) == len(gallery_dets) + annos = gallery_dataset.annotations + + y_true, y_score = [], [] + count_gt, count_tp = 0, 0 + for anno, det in zip(annos, gallery_dets): + gt_boxes = anno["boxes"] + if labeled_only: + # exclude the unlabeled people (pid == 5555) + inds = np.where(anno["pids"].ravel() != 5555)[0] + if len(inds) == 0: + continue + gt_boxes = gt_boxes[inds] + num_gt = gt_boxes.shape[0] + + if det != []: + det = np.asarray(det) + inds = np.where(det[:, 4].ravel() >= det_thresh)[0] + det = det[inds] + num_det = det.shape[0] + else: + num_det = 0 + if num_det == 0: + count_gt += num_gt + continue + + ious = np.zeros((num_gt, num_det), dtype=np.float32) + for i in range(num_gt): + for j in range(num_det): + ious[i, j] = _compute_iou(gt_boxes[i], det[j, :4]) + tfmat = ious >= iou_thresh + # for each det, keep only the largest iou of all the gt + for j in range(num_det): + largest_ind = np.argmax(ious[:, j]) + for i in range(num_gt): + if i != largest_ind: + tfmat[i, j] = False + # for each gt, keep only the largest iou of all the det + for i in range(num_gt): + largest_ind = np.argmax(ious[i, :]) + for j in range(num_det): + if j != largest_ind: + tfmat[i, j] = False + for j in range(num_det): + y_score.append(det[j, -1]) + y_true.append(tfmat[:, j].any()) + count_tp += tfmat.sum() + count_gt += num_gt + + det_rate = count_tp * 1.0 / count_gt + ap = average_precision_score(y_true, y_score) * det_rate + + print("{} detection:".format("labeled only" if labeled_only else "all")) + print(" recall = {:.2%}".format(det_rate)) + if not labeled_only: + print(" ap = {:.2%}".format(ap)) + return det_rate, ap + + +def eval_search_cuhk( + gallery_dataset, + query_dataset, + gallery_dets, + gallery_feats, + query_box_feats, + query_dets, + query_feats, + k1=10, + k2=3, + det_thresh=0.5, + cbgm=False, + gallery_size=100, +): + """ + gallery_dataset/query_dataset: an instance of BaseDataset + gallery_det (list of ndarray): n_det x [x1, x2, y1, y2, score] per image + gallery_feat (list of ndarray): n_det x D features per image + query_feat (list of ndarray): D dimensional features per query image + det_thresh (float): filter out gallery detections whose scores below this + gallery_size (int): gallery size [-1, 50, 100, 500, 1000, 2000, 4000] + -1 for using full set + """ + assert len(gallery_dataset) == len(gallery_dets) + assert len(gallery_dataset) == len(gallery_feats) + assert len(query_dataset) == len(query_box_feats) + + use_full_set = gallery_size == -1 + fname = "TestG{}".format(gallery_size if not use_full_set else 50) + protoc = loadmat(osp.join(gallery_dataset.root, "annotation/test/train_test", fname + ".mat")) + protoc = protoc[fname].squeeze() + + # mapping from gallery image to (det, feat) + annos = gallery_dataset.annotations + name_to_det_feat = {} + for anno, det, feat in zip(annos, gallery_dets, gallery_feats): + name = anno["img_name"] + if det != []: + scores = det[:, 4].ravel() + inds = np.where(scores >= det_thresh)[0] + if len(inds) > 0: + name_to_det_feat[name] = (det[inds], feat[inds]) + + aps = [] + accs = [] + topk = [1, 5, 10] + ret = {"image_root": gallery_dataset.img_prefix, "results": []} + for i in range(len(query_dataset)): + y_true, y_score = [], [] + imgs, rois = [], [] + count_gt, count_tp = 0, 0 + # get L2-normalized feature vector + feat_q = query_box_feats[i].ravel() + # ignore the query image + query_imname = str(protoc["Query"][i]["imname"][0, 0][0]) + query_roi = protoc["Query"][i]["idlocate"][0, 0][0].astype(np.int32) + query_roi[2:] += query_roi[:2] + query_gt = [] + tested = set([query_imname]) + + name2sim = {} + name2gt = {} + sims = [] + imgs_cbgm = [] + # 1. Go through the gallery samples defined by the protocol + for item in protoc["Gallery"][i].squeeze(): + gallery_imname = str(item[0][0]) + # some contain the query (gt not empty), some not + gt = item[1][0].astype(np.int32) + count_gt += gt.size > 0 + # compute distance between query and gallery dets + if gallery_imname not in name_to_det_feat: + continue + det, feat_g = name_to_det_feat[gallery_imname] + # no detection in this gallery, skip it + if det.shape[0] == 0: + continue + # get L2-normalized feature matrix NxD + assert feat_g.size == np.prod(feat_g.shape[:2]) + feat_g = feat_g.reshape(feat_g.shape[:2]) + # compute cosine similarities + sim = feat_g.dot(feat_q).ravel() + + if gallery_imname in name2sim: + continue + name2sim[gallery_imname] = sim + name2gt[gallery_imname] = gt + sims.extend(list(sim)) + imgs_cbgm.extend([gallery_imname] * len(sim)) + # 2. Go through the remaining gallery images if using full set + if use_full_set: + for gallery_imname in gallery_dataset.imgs: + if gallery_imname in tested: + continue + if gallery_imname not in name_to_det_feat: + continue + det, feat_g = name_to_det_feat[gallery_imname] + # get L2-normalized feature matrix NxD + assert feat_g.size == np.prod(feat_g.shape[:2]) + feat_g = feat_g.reshape(feat_g.shape[:2]) + # compute cosine similarities + sim = feat_g.dot(feat_q).ravel() + # guaranteed no target query in these gallery images + label = np.zeros(len(sim), dtype=np.int32) + y_true.extend(list(label)) + y_score.extend(list(sim)) + imgs.extend([gallery_imname] * len(sim)) + rois.extend(list(det)) + + if cbgm: + # -------- Context Bipartite Graph Matching (CBGM) ------- # + sims = np.array(sims) + imgs_cbgm = np.array(imgs_cbgm) + # only process the top-k1 gallery images for efficiency + inds = np.argsort(sims)[-k1:] + imgs_cbgm = set(imgs_cbgm[inds]) + for img in imgs_cbgm: + sim = name2sim[img] + det, feat_g = name_to_det_feat[img] + # only regard the people with top-k2 detection confidence + # in the query image as context information + qboxes = query_dets[i][:k2] + qfeats = query_feats[i][:k2] + assert ( + query_roi - qboxes[0][:4] + ).sum() <= 0.001, "query_roi must be the first one in pboxes" + + # build the bipartite graph and run Kuhn-Munkres (K-M) algorithm + # to find the best match + graph = [] + for indx_i, pfeat in enumerate(qfeats): + for indx_j, gfeat in enumerate(feat_g): + graph.append((indx_i, indx_j, (pfeat * gfeat).sum())) + km_res, max_val = run_kuhn_munkres(graph) + + # revise the similarity between query person and its matching + for indx_i, indx_j, _ in km_res: + # 0 denotes the query roi + if indx_i == 0: + sim[indx_j] = max_val + break + for gallery_imname, sim in name2sim.items(): + gt = name2gt[gallery_imname] + det, feat_g = name_to_det_feat[gallery_imname] + # assign label for each det + label = np.zeros(len(sim), dtype=np.int32) + if gt.size > 0: + w, h = gt[2], gt[3] + gt[2:] += gt[:2] + query_gt.append({"img": str(gallery_imname), "roi": list(map(float, list(gt)))}) + iou_thresh = min(0.5, (w * h * 1.0) / ((w + 10) * (h + 10))) + inds = np.argsort(sim)[::-1] + sim = sim[inds] + det = det[inds] + # only set the first matched det as true positive + for j, roi in enumerate(det[:, :4]): + if _compute_iou(roi, gt) >= iou_thresh: + label[j] = 1 + count_tp += 1 + break + y_true.extend(list(label)) + y_score.extend(list(sim)) + imgs.extend([gallery_imname] * len(sim)) + rois.extend(list(det)) + tested.add(gallery_imname) + # 3. Compute AP for this query (need to scale by recall rate) + y_score = np.asarray(y_score) + y_true = np.asarray(y_true) + assert count_tp <= count_gt + recall_rate = count_tp * 1.0 / count_gt + ap = 0 if count_tp == 0 else average_precision_score(y_true, y_score) * recall_rate + aps.append(ap) + inds = np.argsort(y_score)[::-1] + y_score = y_score[inds] + y_true = y_true[inds] + accs.append([min(1, sum(y_true[:k])) for k in topk]) + # 4. Save result for JSON dump + new_entry = { + "query_img": str(query_imname), + "query_roi": list(map(float, list(query_roi))), + "query_gt": query_gt, + "gallery": [], + } + # only record wrong results + if int(y_true[0]): + continue + # only save top-10 predictions + for k in range(10): + new_entry["gallery"].append( + { + "img": str(imgs[inds[k]]), + "roi": list(map(float, list(rois[inds[k]]))), + "score": float(y_score[k]), + "correct": int(y_true[k]), + } + ) + ret["results"].append(new_entry) + + print("search ranking:") + print(" mAP = {:.2%}".format(np.mean(aps))) + accs = np.mean(accs, axis=0) + for i, k in enumerate(topk): + print(" top-{:2d} = {:.2%}".format(k, accs[i])) + + write_json(ret, "vis/results.json") + + ret["mAP"] = np.mean(aps) + ret["accs"] = accs + return ret + + +def eval_search_prw( + gallery_dataset, + query_dataset, + gallery_dets, + gallery_feats, + query_box_feats, + query_dets, + query_feats, + k1=30, + k2=4, + det_thresh=0.5, + cbgm=False, + gallery_size=None, # not used in PRW + ignore_cam_id=True, +): + """ + gallery_det (list of ndarray): n_det x [x1, x2, y1, y2, score] per image + gallery_feat (list of ndarray): n_det x D features per image + query_feat (list of ndarray): D dimensional features per query image + det_thresh (float): filter out gallery detections whose scores below this + gallery_size (int): -1 for using full set + ignore_cam_id (bool): Set to True acoording to CUHK-SYSU, + although it's a common practice to focus on cross-cam match only. + """ + assert len(gallery_dataset) == len(gallery_dets) + assert len(gallery_dataset) == len(gallery_feats) + assert len(query_dataset) == len(query_box_feats) + + annos = gallery_dataset.annotations + name_to_det_feat = {} + for anno, det, feat in zip(annos, gallery_dets, gallery_feats): + name = anno["img_name"] + scores = det[:, 4].ravel() + inds = np.where(scores >= det_thresh)[0] + if len(inds) > 0: + name_to_det_feat[name] = (det[inds], feat[inds]) + + aps = [] + accs = [] + topk = [1, 5, 10] + ret = {"image_root": gallery_dataset.img_prefix, "results": []} + for i in range(len(query_dataset)): + y_true, y_score = [], [] + imgs, rois = [], [] + count_gt, count_tp = 0, 0 + + feat_p = query_box_feats[i].ravel() + + query_imname = query_dataset.annotations[i]["img_name"] + query_roi = query_dataset.annotations[i]["boxes"] + query_pid = query_dataset.annotations[i]["pids"] + query_cam = query_dataset.annotations[i]["cam_id"] + + # Find all occurence of this query + gallery_imgs = [] + for x in annos: + if query_pid in x["pids"] and x["img_name"] != query_imname: + gallery_imgs.append(x) + query_gts = {} + for item in gallery_imgs: + query_gts[item["img_name"]] = item["boxes"][item["pids"] == query_pid] + + # Construct gallery set for this query + if ignore_cam_id: + gallery_imgs = [] + for x in annos: + if x["img_name"] != query_imname: + gallery_imgs.append(x) + else: + gallery_imgs = [] + for x in annos: + if x["img_name"] != query_imname and x["cam_id"] != query_cam: + gallery_imgs.append(x) + + name2sim = {} + sims = [] + imgs_cbgm = [] + # 1. Go through all gallery samples + for item in gallery_imgs: + gallery_imname = item["img_name"] + # some contain the query (gt not empty), some not + count_gt += gallery_imname in query_gts + # compute distance between query and gallery dets + if gallery_imname not in name_to_det_feat: + continue + det, feat_g = name_to_det_feat[gallery_imname] + # get L2-normalized feature matrix NxD + assert feat_g.size == np.prod(feat_g.shape[:2]) + feat_g = feat_g.reshape(feat_g.shape[:2]) + # compute cosine similarities + sim = feat_g.dot(feat_p).ravel() + + if gallery_imname in name2sim: + continue + name2sim[gallery_imname] = sim + sims.extend(list(sim)) + imgs_cbgm.extend([gallery_imname] * len(sim)) + + if cbgm: + sims = np.array(sims) + imgs_cbgm = np.array(imgs_cbgm) + inds = np.argsort(sims)[-k1:] + imgs_cbgm = set(imgs_cbgm[inds]) + for img in imgs_cbgm: + sim = name2sim[img] + det, feat_g = name_to_det_feat[img] + qboxes = query_dets[i][:k2] + qfeats = query_feats[i][:k2] + # assert ( + # query_roi - qboxes[0][:4] + # ).sum() <= 0.001, "query_roi must be the first one in pboxes" + + graph = [] + for indx_i, pfeat in enumerate(qfeats): + for indx_j, gfeat in enumerate(feat_g): + graph.append((indx_i, indx_j, (pfeat * gfeat).sum())) + km_res, max_val = run_kuhn_munkres(graph) + + for indx_i, indx_j, _ in km_res: + if indx_i == 0: + sim[indx_j] = max_val + break + for gallery_imname, sim in name2sim.items(): + det, feat_g = name_to_det_feat[gallery_imname] + # assign label for each det + label = np.zeros(len(sim), dtype=np.int32) + if gallery_imname in query_gts: + gt = query_gts[gallery_imname].ravel() + w, h = gt[2] - gt[0], gt[3] - gt[1] + iou_thresh = min(0.5, (w * h * 1.0) / ((w + 10) * (h + 10))) + inds = np.argsort(sim)[::-1] + sim = sim[inds] + det = det[inds] + # only set the first matched det as true positive + for j, roi in enumerate(det[:, :4]): + if _compute_iou(roi, gt) >= iou_thresh: + label[j] = 1 + count_tp += 1 + break + y_true.extend(list(label)) + y_score.extend(list(sim)) + imgs.extend([gallery_imname] * len(sim)) + rois.extend(list(det)) + + # 2. Compute AP for this query (need to scale by recall rate) + y_score = np.asarray(y_score) + y_true = np.asarray(y_true) + assert count_tp <= count_gt + recall_rate = count_tp * 1.0 / count_gt + ap = 0 if count_tp == 0 else average_precision_score(y_true, y_score) * recall_rate + aps.append(ap) + inds = np.argsort(y_score)[::-1] + y_score = y_score[inds] + y_true = y_true[inds] + accs.append([min(1, sum(y_true[:k])) for k in topk]) + # 4. Save result for JSON dump + new_entry = { + "query_img": str(query_imname), + "query_roi": list(map(float, list(query_roi.squeeze()))), + "query_gt": query_gts, + "gallery": [], + } + # only save top-10 predictions + for k in range(10): + new_entry["gallery"].append( + { + "img": str(imgs[inds[k]]), + "roi": list(map(float, list(rois[inds[k]]))), + "score": float(y_score[k]), + "correct": int(y_true[k]), + } + ) + ret["results"].append(new_entry) + + print("search ranking:") + mAP = np.mean(aps) + print(" mAP = {:.2%}".format(mAP)) + accs = np.mean(accs, axis=0) + for i, k in enumerate(topk): + print(" top-{:2d} = {:.2%}".format(k, accs[i])) + + # write_json(ret, "vis/results.json") + + ret["mAP"] = np.mean(aps) + ret["accs"] = accs + return ret diff --git a/coat-pvtv2-b2/loss/oim.py b/coat-pvtv2-b2/loss/oim.py new file mode 100644 index 0000000..dbb93f8 --- /dev/null +++ b/coat-pvtv2-b2/loss/oim.py @@ -0,0 +1,76 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import torch +import torch.nn.functional as F +from torch import autograd, nn + +class OIM(autograd.Function): + @staticmethod + def forward(ctx, inputs, targets, lut, cq, header, momentum): + ctx.save_for_backward(inputs, targets, lut, cq, header, momentum) + outputs_labeled = inputs.mm(lut.t()) + outputs_unlabeled = inputs.mm(cq.t()) + return torch.cat([outputs_labeled, outputs_unlabeled], dim=1) + + @staticmethod + def backward(ctx, grad_outputs): + inputs, targets, lut, cq, header, momentum = ctx.saved_tensors + + grad_inputs = None + if ctx.needs_input_grad[0]: + grad_inputs = grad_outputs.mm(torch.cat([lut, cq], dim=0)) + if grad_inputs.dtype == torch.float16: + grad_inputs = grad_inputs.to(torch.float32) + + for x, y in zip(inputs, targets): + if y < len(lut): + lut[y] = momentum * lut[y] + (1.0 - momentum) * x + lut[y] /= lut[y].norm() + else: + cq[header] = x + header = (header + 1) % cq.size(0) + return grad_inputs, None, None, None, None, None + + +def oim(inputs, targets, lut, cq, header, momentum=0.5): + return OIM.apply(inputs, targets, lut, cq, torch.tensor(header), torch.tensor(momentum)) + + +class OIMLoss(nn.Module): + def __init__(self, num_features, num_pids, num_cq_size, oim_momentum, oim_scalar): + super(OIMLoss, self).__init__() + self.num_features = num_features + self.num_pids = num_pids + self.num_unlabeled = num_cq_size + self.momentum = oim_momentum + self.oim_scalar = oim_scalar + + self.register_buffer("lut", torch.zeros(self.num_pids, self.num_features)) + self.register_buffer("cq", torch.zeros(self.num_unlabeled, self.num_features)) + + self.header_cq = 0 + + def forward(self, inputs, roi_label): + # merge into one batch, background label = 0 + targets = torch.cat(roi_label) + label = targets - 1 # background label = -1 + + inds = label >= 0 + + label = label[inds] + inputs = inputs[inds.unsqueeze(1).expand_as(inputs)].view(-1, self.num_features) + + projected = oim(inputs, label, self.lut, self.cq, self.header_cq, momentum=self.momentum) + # projected - Tensor [M, lut+cq], e.g., [M, 482+500]=[M, 982] + + projected *= self.oim_scalar + + self.header_cq = ( + self.header_cq + (label >= self.num_pids).long().sum().item() + ) % self.num_unlabeled + + loss_oim = F.cross_entropy(projected, label, ignore_index=5554) + + return loss_oim, inputs, label diff --git a/coat-pvtv2-b2/loss/softmax_loss.py b/coat-pvtv2-b2/loss/softmax_loss.py new file mode 100644 index 0000000..93619a4 --- /dev/null +++ b/coat-pvtv2-b2/loss/softmax_loss.py @@ -0,0 +1,62 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import torch +from torch import nn +import torch.nn.functional as F + +class SoftmaxLoss(nn.Module): + def __init__(self, cfg): + super(SoftmaxLoss, self).__init__() + + self.feat_dim = cfg.MODEL.EMBEDDING_DIM + self.num_classes = cfg.MODEL.LOSS.LUT_SIZE + + self.bottleneck = nn.BatchNorm1d(self.feat_dim) + self.bottleneck.bias.requires_grad_(False) # no shift + self.classifier = nn.Linear(self.feat_dim, self.num_classes, bias=False) + + self.bottleneck.apply(weights_init_kaiming) + self.classifier.apply(weights_init_classifier) + + def forward(self, inputs, labels): + """ + Args: + inputs: feature matrix with shape (batch_size, feat_dim). + labels: ground truth labels with shape (num_classes). + """ + assert inputs.size(0) == labels.size(0), "features.size(0) is not equal to labels.size(0)" + + target = labels.clone() + target[target >= self.num_classes] = 5554 + + feat = self.bottleneck(inputs) + score = self.classifier(feat) + loss = F.cross_entropy(score, target, ignore_index=5554) + + return loss + + +def weights_init_kaiming(m): + classname = m.__class__.__name__ + if classname.find('Linear') != -1: + nn.init.kaiming_normal_(m.weight, a=0, mode='fan_out') + nn.init.constant_(m.bias, 0.0) + elif classname.find('Conv') != -1: + nn.init.kaiming_normal_(m.weight, a=0, mode='fan_in') + if m.bias is not None: + nn.init.constant_(m.bias, 0.0) + elif classname.find('BatchNorm') != -1: + if m.affine: + nn.init.constant_(m.weight, 1.0) + nn.init.constant_(m.bias, 0.0) + + +def weights_init_classifier(m): + classname = m.__class__.__name__ + if classname.find('Linear') != -1: + nn.init.normal_(m.weight, std=0.001) + if m.bias: + nn.init.constant_(m.bias, 0.0) + diff --git a/coat-pvtv2-b2/models/coat.py b/coat-pvtv2-b2/models/coat.py new file mode 100644 index 0000000..50634ec --- /dev/null +++ b/coat-pvtv2-b2/models/coat.py @@ -0,0 +1,765 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +from copy import deepcopy +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.nn import init +from torchvision.models.detection.faster_rcnn import FastRCNNPredictor +from torchvision.models.detection.roi_heads import RoIHeads +from torchvision.models.detection.rpn import AnchorGenerator, RegionProposalNetwork, RPNHead +from torchvision.models.detection.transform import GeneralizedRCNNTransform +from torchvision.ops import MultiScaleRoIAlign +from torchvision.ops import boxes as box_ops +from torchvision.models.detection import _utils as det_utils + +from loss.oim import OIMLoss +from models.resnet import build_resnet +from models.transformer import TransformerHead + + +class COAT(nn.Module): + def __init__(self, cfg): + super(COAT, self).__init__() + + backbone, _ = build_resnet(name="resnet50", pretrained=True) + anchor_generator = AnchorGenerator( + sizes=((32, 64, 128, 256, 512),), aspect_ratios=((0.5, 1.0, 2.0),) + ) + head = RPNHead( + in_channels=backbone.out_channels, + num_anchors=anchor_generator.num_anchors_per_location()[0], + ) + pre_nms_top_n = dict( + training=cfg.MODEL.RPN.PRE_NMS_TOPN_TRAIN, testing=cfg.MODEL.RPN.PRE_NMS_TOPN_TEST + ) + post_nms_top_n = dict( + training=cfg.MODEL.RPN.POST_NMS_TOPN_TRAIN, testing=cfg.MODEL.RPN.POST_NMS_TOPN_TEST + ) + rpn = RegionProposalNetwork( + anchor_generator=anchor_generator, + head=head, + fg_iou_thresh=cfg.MODEL.RPN.POS_THRESH_TRAIN, + bg_iou_thresh=cfg.MODEL.RPN.NEG_THRESH_TRAIN, + batch_size_per_image=cfg.MODEL.RPN.BATCH_SIZE_TRAIN, + positive_fraction=cfg.MODEL.RPN.POS_FRAC_TRAIN, + pre_nms_top_n=pre_nms_top_n, + post_nms_top_n=post_nms_top_n, + nms_thresh=cfg.MODEL.RPN.NMS_THRESH, + ) + + box_head = TransformerHead( + cfg=cfg, + trans_names=cfg.MODEL.TRANSFORMER.NAMES_1ST, + kernel_size=cfg.MODEL.TRANSFORMER.KERNEL_SIZE_1ST, + use_feature_mask=cfg.MODEL.TRANSFORMER.USE_MASK_1ST, + ) + box_head_2nd = TransformerHead( + cfg=cfg, + trans_names=cfg.MODEL.TRANSFORMER.NAMES_2ND, + kernel_size=cfg.MODEL.TRANSFORMER.KERNEL_SIZE_2ND, + use_feature_mask=cfg.MODEL.TRANSFORMER.USE_MASK_2ND, + ) + box_head_3rd = TransformerHead( + cfg=cfg, + trans_names=cfg.MODEL.TRANSFORMER.NAMES_3RD, + kernel_size=cfg.MODEL.TRANSFORMER.KERNEL_SIZE_3RD, + use_feature_mask=cfg.MODEL.TRANSFORMER.USE_MASK_3RD, + ) + + faster_rcnn_predictor = FastRCNNPredictor(2048, 2) + box_roi_pool = MultiScaleRoIAlign( + featmap_names=["feat_res4"], output_size=14, sampling_ratio=2 + ) + box_predictor = BBoxRegressor(2048, num_classes=2, bn_neck=cfg.MODEL.ROI_HEAD.BN_NECK) + roi_heads = CascadedROIHeads( + cfg=cfg, + # Cascade Transformer Head + faster_rcnn_predictor=faster_rcnn_predictor, + box_head_2nd=box_head_2nd, + box_head_3rd=box_head_3rd, + # parent class + box_roi_pool=box_roi_pool, + box_head=box_head, + box_predictor=box_predictor, + fg_iou_thresh=cfg.MODEL.ROI_HEAD.POS_THRESH_TRAIN, + bg_iou_thresh=cfg.MODEL.ROI_HEAD.NEG_THRESH_TRAIN, + batch_size_per_image=cfg.MODEL.ROI_HEAD.BATCH_SIZE_TRAIN, + positive_fraction=cfg.MODEL.ROI_HEAD.POS_FRAC_TRAIN, + bbox_reg_weights=None, + score_thresh=cfg.MODEL.ROI_HEAD.SCORE_THRESH_TEST, + nms_thresh=cfg.MODEL.ROI_HEAD.NMS_THRESH_TEST, + detections_per_img=cfg.MODEL.ROI_HEAD.DETECTIONS_PER_IMAGE_TEST, + ) + + transform = GeneralizedRCNNTransform( + min_size=cfg.INPUT.MIN_SIZE, + max_size=cfg.INPUT.MAX_SIZE, + image_mean=[0.485, 0.456, 0.406], + image_std=[0.229, 0.224, 0.225], + ) + + self.backbone = backbone + self.rpn = rpn + self.roi_heads = roi_heads + self.transform = transform + self.eval_feat = cfg.EVAL_FEATURE + + # loss weights + self.lw_rpn_reg = cfg.SOLVER.LW_RPN_REG + self.lw_rpn_cls = cfg.SOLVER.LW_RPN_CLS + self.lw_rcnn_reg_1st = cfg.SOLVER.LW_RCNN_REG_1ST + self.lw_rcnn_cls_1st = cfg.SOLVER.LW_RCNN_CLS_1ST + self.lw_rcnn_reg_2nd = cfg.SOLVER.LW_RCNN_REG_2ND + self.lw_rcnn_cls_2nd = cfg.SOLVER.LW_RCNN_CLS_2ND + self.lw_rcnn_reg_3rd = cfg.SOLVER.LW_RCNN_REG_3RD + self.lw_rcnn_cls_3rd = cfg.SOLVER.LW_RCNN_CLS_3RD + self.lw_rcnn_reid_2nd = cfg.SOLVER.LW_RCNN_REID_2ND + self.lw_rcnn_reid_3rd = cfg.SOLVER.LW_RCNN_REID_3RD + + def inference(self, images, targets=None, query_img_as_gallery=False): + original_image_sizes = [img.shape[-2:] for img in images] + images, targets = self.transform(images, targets) + features = self.backbone(images.tensors) + + if query_img_as_gallery: + assert targets is not None + + if targets is not None and not query_img_as_gallery: + # query + boxes = [t["boxes"] for t in targets] + box_features = self.roi_heads.box_roi_pool(features, boxes, images.image_sizes) + box_features_2nd = self.roi_heads.box_head_2nd(box_features) + embeddings_2nd, _ = self.roi_heads.embedding_head_2nd(box_features_2nd) + box_features_3rd = self.roi_heads.box_head_3rd(box_features) + embeddings_3rd, _ = self.roi_heads.embedding_head_3rd(box_features_3rd) + if self.eval_feat == 'concat': + embeddings = torch.cat((embeddings_2nd, embeddings_3rd), dim=1) + elif self.eval_feat == 'stage2': + embeddings = embeddings_2nd + elif self.eval_feat == 'stage3': + embeddings = embeddings_3rd + else: + raise Exception("Unknown evaluation feature name") + return embeddings.split(1, 0) + else: + # gallery + boxes, _ = self.rpn(images, features, targets) + detections = self.roi_heads(features, boxes, images.image_sizes, targets, query_img_as_gallery)[0] + detections = self.transform.postprocess(detections, images.image_sizes, original_image_sizes) + return detections + + def forward(self, images, targets=None, query_img_as_gallery=False): + if not self.training: + return self.inference(images, targets, query_img_as_gallery) + images, targets = self.transform(images, targets) + features = self.backbone(images.tensors) + boxes, rpn_losses = self.rpn(images, features, targets) + + _, rcnn_losses, feats_reid_2nd, targets_reid_2nd, feats_reid_3rd, targets_reid_3rd = self.roi_heads(features, boxes, images.image_sizes, targets) + + # rename rpn losses to be consistent with detection losses + rpn_losses["loss_rpn_reg"] = rpn_losses.pop("loss_rpn_box_reg") + rpn_losses["loss_rpn_cls"] = rpn_losses.pop("loss_objectness") + + losses = {} + losses.update(rcnn_losses) + losses.update(rpn_losses) + + # apply loss weights + losses["loss_rpn_reg"] *= self.lw_rpn_reg + losses["loss_rpn_cls"] *= self.lw_rpn_cls + losses["loss_rcnn_reg_1st"] *= self.lw_rcnn_reg_1st + losses["loss_rcnn_cls_1st"] *= self.lw_rcnn_cls_1st + losses["loss_rcnn_reg_2nd"] *= self.lw_rcnn_reg_2nd + losses["loss_rcnn_cls_2nd"] *= self.lw_rcnn_cls_2nd + losses["loss_rcnn_reg_3rd"] *= self.lw_rcnn_reg_3rd + losses["loss_rcnn_cls_3rd"] *= self.lw_rcnn_cls_3rd + losses["loss_rcnn_reid_2nd"] *= self.lw_rcnn_reid_2nd + losses["loss_rcnn_reid_3rd"] *= self.lw_rcnn_reid_3rd + + return losses, feats_reid_2nd, targets_reid_2nd, feats_reid_3rd, targets_reid_3rd + +class CascadedROIHeads(RoIHeads): + ''' + https://github.com/pytorch/vision/blob/master/torchvision/models/detection/roi_heads.py + ''' + def __init__( + self, + cfg, + faster_rcnn_predictor, + box_head_2nd, + box_head_3rd, + *args, + **kwargs + ): + super(CascadedROIHeads, self).__init__(*args, **kwargs) + + # ROI head + self.use_diff_thresh=cfg.MODEL.ROI_HEAD.USE_DIFF_THRESH + self.nms_thresh_1st = cfg.MODEL.ROI_HEAD.NMS_THRESH_TEST_1ST + self.nms_thresh_2nd = cfg.MODEL.ROI_HEAD.NMS_THRESH_TEST_2ND + self.nms_thresh_3rd = cfg.MODEL.ROI_HEAD.NMS_THRESH_TEST_3RD + self.fg_iou_thresh_1st = cfg.MODEL.ROI_HEAD.POS_THRESH_TRAIN + self.bg_iou_thresh_1st = cfg.MODEL.ROI_HEAD.NEG_THRESH_TRAIN + self.fg_iou_thresh_2nd = cfg.MODEL.ROI_HEAD.POS_THRESH_TRAIN_2ND + self.bg_iou_thresh_2nd = cfg.MODEL.ROI_HEAD.NEG_THRESH_TRAIN_2ND + self.fg_iou_thresh_3rd = cfg.MODEL.ROI_HEAD.POS_THRESH_TRAIN_3RD + self.bg_iou_thresh_3rd = cfg.MODEL.ROI_HEAD.NEG_THRESH_TRAIN_3RD + + # Regression head + self.box_predictor_1st = faster_rcnn_predictor + self.box_predictor_2nd = self.box_predictor + self.box_predictor_3rd = deepcopy(self.box_predictor) + + # Transformer head + self.box_head_1st = self.box_head + self.box_head_2nd = box_head_2nd + self.box_head_3rd = box_head_3rd + + # feature mask + self.use_feature_mask = cfg.MODEL.USE_FEATURE_MASK + self.feature_mask_size = cfg.MODEL.FEATURE_MASK_SIZE + + # Feature embedding + embedding_dim = cfg.MODEL.EMBEDDING_DIM + self.embedding_head_2nd = NormAwareEmbedding(featmap_names=["before_trans", "after_trans"], in_channels=[1024, 2048], dim=embedding_dim) + self.embedding_head_3rd = deepcopy(self.embedding_head_2nd) + + # OIM + num_pids = cfg.MODEL.LOSS.LUT_SIZE + num_cq_size = cfg.MODEL.LOSS.CQ_SIZE + oim_momentum = cfg.MODEL.LOSS.OIM_MOMENTUM + oim_scalar = cfg.MODEL.LOSS.OIM_SCALAR + self.reid_loss_2nd = OIMLoss(embedding_dim, num_pids, num_cq_size, oim_momentum, oim_scalar) + self.reid_loss_3rd = deepcopy(self.reid_loss_2nd) + + # rename the method inherited from parent class + self.postprocess_proposals = self.postprocess_detections + + # evaluation + self.eval_feat = cfg.EVAL_FEATURE + + def forward(self, features, boxes, image_shapes, targets=None, query_img_as_gallery=False): + """ + Arguments: + features (List[Tensor]) + boxes (List[Tensor[N, 4]]) + image_shapes (List[Tuple[H, W]]) + targets (List[Dict]) + """ + cws = True + gt_det_2nd = None + gt_det_3rd = None + feats_reid_2nd = None + feats_reid_3rd = None + targets_reid_2nd = None + targets_reid_3rd = None + + if self.training: + if self.use_diff_thresh: + self.proposal_matcher = det_utils.Matcher( + self.fg_iou_thresh_1st, + self.bg_iou_thresh_1st, + allow_low_quality_matches=False) + boxes, _, box_pid_labels_1st, box_reg_targets_1st = self.select_training_samples( + boxes, targets + ) + + # ------------------- The first stage ------------------ # + box_features_1st = self.box_roi_pool(features, boxes, image_shapes) + box_features_1st = self.box_head_1st(box_features_1st) + box_cls_scores_1st, box_regs_1st = self.box_predictor_1st(box_features_1st["after_trans"]) + + if self.training: + boxes = self.get_boxes(box_regs_1st, boxes, image_shapes) + boxes = [boxes_per_image.detach() for boxes_per_image in boxes] + if self.use_diff_thresh: + self.proposal_matcher = det_utils.Matcher( + self.fg_iou_thresh_2nd, + self.bg_iou_thresh_2nd, + allow_low_quality_matches=False) + boxes, _, box_pid_labels_2nd, box_reg_targets_2nd = self.select_training_samples(boxes, targets) + else: + orig_thresh = self.nms_thresh # 0.4 + self.nms_thresh = self.nms_thresh_1st + boxes, scores, _ = self.postprocess_proposals( + box_cls_scores_1st, box_regs_1st, boxes, image_shapes + ) + + if not self.training and query_img_as_gallery: + # When regarding the query image as gallery, GT boxes may be excluded + # from detected boxes. To avoid this, we compulsorily include GT in the + # detection results. Additionally, CWS should be disabled as the + # confidences of these people in query image are 1 + cws = False + gt_box = [targets[0]["boxes"]] + gt_box_features = self.box_roi_pool(features, gt_box, image_shapes) + gt_box_features = self.box_head_2nd(gt_box_features) + embeddings, _ = self.embedding_head_2nd(gt_box_features) + gt_det_2nd = {"boxes": targets[0]["boxes"], "embeddings": embeddings} + + # no detection predicted by Faster R-CNN head in test phase + if boxes[0].shape[0] == 0: + assert not self.training + boxes = gt_det_2nd["boxes"] if gt_det_2nd else torch.zeros(0, 4) + labels = torch.ones(1).type_as(boxes) if gt_det_2nd else torch.zeros(0) + scores = torch.ones(1).type_as(boxes) if gt_det_2nd else torch.zeros(0) + if self.eval_feat == 'concat': + embeddings = torch.cat((gt_det_2nd["embeddings"], gt_det_2nd["embeddings"]), dim=1) if gt_det_2nd else torch.zeros(0, 512) + elif self.eval_feat == 'stage2' or self.eval_feat == 'stage3': + embeddings = gt_det_2nd["embeddings"] if gt_det_2nd else torch.zeros(0, 256) + else: + raise Exception("Unknown evaluation feature name") + return [dict(boxes=boxes, labels=labels, scores=scores, embeddings=embeddings)], [] + + # --------------------- The second stage -------------------- # + box_features = self.box_roi_pool(features, boxes, image_shapes) + box_features = self.box_head_2nd(box_features) + box_regs_2nd = self.box_predictor_2nd(box_features["after_trans"]) + box_embeddings_2nd, box_cls_scores_2nd = self.embedding_head_2nd(box_features) + if box_cls_scores_2nd.dim() == 0: + box_cls_scores_2nd = box_cls_scores_2nd.unsqueeze(0) + + if self.training: + boxes = self.get_boxes(box_regs_2nd, boxes, image_shapes) + boxes = [boxes_per_image.detach() for boxes_per_image in boxes] + if self.use_diff_thresh: + self.proposal_matcher = det_utils.Matcher( + self.fg_iou_thresh_3rd, + self.bg_iou_thresh_3rd, + allow_low_quality_matches=False) + boxes, _, box_pid_labels_3rd, box_reg_targets_3rd = self.select_training_samples(boxes, targets) + else: + self.nms_thresh = self.nms_thresh_2nd + if self.eval_feat != 'stage2': + boxes, scores, _, _ = self.postprocess_boxes( + box_cls_scores_2nd, + box_regs_2nd, + box_embeddings_2nd, + boxes, + image_shapes, + fcs=scores, + gt_det=None, + cws=cws, + ) + + if not self.training and query_img_as_gallery and self.eval_feat != 'stage2': + cws = False + gt_box = [targets[0]["boxes"]] + gt_box_features = self.box_roi_pool(features, gt_box, image_shapes) + gt_box_features = self.box_head_3rd(gt_box_features) + embeddings, _ = self.embedding_head_3rd(gt_box_features) + gt_det_3rd = {"boxes": targets[0]["boxes"], "embeddings": embeddings} + + # no detection predicted by Faster R-CNN head in test phase + if boxes[0].shape[0] == 0 and self.eval_feat != 'stage2': + assert not self.training + boxes = gt_det_3rd["boxes"] if gt_det_3rd else torch.zeros(0, 4) + labels = torch.ones(1).type_as(boxes) if gt_det_3rd else torch.zeros(0) + scores = torch.ones(1).type_as(boxes) if gt_det_3rd else torch.zeros(0) + if self.eval_feat == 'concat': + embeddings = torch.cat((gt_det_2nd["embeddings"], gt_det_3rd["embeddings"]), dim=1) if gt_det_3rd else torch.zeros(0, 512) + elif self.eval_feat == 'stage3': + embeddings = gt_det_2nd["embeddings"] if gt_det_3rd else torch.zeros(0, 256) + else: + raise Exception("Unknown evaluation feature name") + return [dict(boxes=boxes, labels=labels, scores=scores, embeddings=embeddings)], [] + + # --------------------- The third stage -------------------- # + box_features = self.box_roi_pool(features, boxes, image_shapes) + + if not self.training: + box_features_2nd = self.box_head_2nd(box_features) + box_embeddings_2nd, _ = self.embedding_head_2nd(box_features_2nd) + + box_features = self.box_head_3rd(box_features) + box_regs_3rd = self.box_predictor_3rd(box_features["after_trans"]) + box_embeddings_3rd, box_cls_scores_3rd = self.embedding_head_3rd(box_features) + if box_cls_scores_3rd.dim() == 0: + box_cls_scores_3rd = box_cls_scores_3rd.unsqueeze(0) + + result, losses = [], {} + if self.training: + box_labels_1st = [y.clamp(0, 1) for y in box_pid_labels_1st] + box_labels_2nd = [y.clamp(0, 1) for y in box_pid_labels_2nd] + box_labels_3rd = [y.clamp(0, 1) for y in box_pid_labels_3rd] + losses = detection_losses( + box_cls_scores_1st, + box_regs_1st, + box_labels_1st, + box_reg_targets_1st, + box_cls_scores_2nd, + box_regs_2nd, + box_labels_2nd, + box_reg_targets_2nd, + box_cls_scores_3rd, + box_regs_3rd, + box_labels_3rd, + box_reg_targets_3rd, + ) + + loss_rcnn_reid_2nd, feats_reid_2nd, targets_reid_2nd = self.reid_loss_2nd(box_embeddings_2nd, box_pid_labels_2nd) + loss_rcnn_reid_3rd, feats_reid_3rd, targets_reid_3rd = self.reid_loss_3rd(box_embeddings_3rd, box_pid_labels_3rd) + losses.update(loss_rcnn_reid_2nd=loss_rcnn_reid_2nd) + losses.update(loss_rcnn_reid_3rd=loss_rcnn_reid_3rd) + else: + if self.eval_feat == 'stage2': + boxes, scores, embeddings_2nd, labels = self.postprocess_boxes( + box_cls_scores_2nd, + box_regs_2nd, + box_embeddings_2nd, + boxes, + image_shapes, + fcs=scores, + gt_det=gt_det_2nd, + cws=cws, + ) + else: + self.nms_thresh = self.nms_thresh_3rd + _, _, embeddings_2nd, _ = self.postprocess_boxes( + box_cls_scores_3rd, + box_regs_3rd, + box_embeddings_2nd, + boxes, + image_shapes, + fcs=scores, + gt_det=gt_det_2nd, + cws=cws, + ) + boxes, scores, embeddings_3rd, labels = self.postprocess_boxes( + box_cls_scores_3rd, + box_regs_3rd, + box_embeddings_3rd, + boxes, + image_shapes, + fcs=scores, + gt_det=gt_det_3rd, + cws=cws, + ) + # set to original thresh after finishing postprocess + self.nms_thresh = orig_thresh + + num_images = len(boxes) + for i in range(num_images): + if self.eval_feat == 'concat': + embeddings = torch.cat((embeddings_2nd[i],embeddings_3rd[i]), dim=1) + elif self.eval_feat == 'stage2': + embeddings = embeddings_2nd[i] + elif self.eval_feat == 'stage3': + embeddings = embeddings_3rd[i] + else: + raise Exception("Unknown evaluation feature name") + result.append( + dict( + boxes=boxes[i], + labels=labels[i], + scores=scores[i], + embeddings=embeddings + ) + ) + + return result, losses, feats_reid_2nd, targets_reid_2nd, feats_reid_3rd, targets_reid_3rd + + def get_boxes(self, box_regression, proposals, image_shapes): + """ + Get boxes from proposals. + """ + boxes_per_image = [len(boxes_in_image) for boxes_in_image in proposals] + pred_boxes = self.box_coder.decode(box_regression, proposals) + pred_boxes = pred_boxes.split(boxes_per_image, 0) + + all_boxes = [] + for boxes, image_shape in zip(pred_boxes, image_shapes): + boxes = box_ops.clip_boxes_to_image(boxes, image_shape) + # remove predictions with the background label + boxes = boxes[:, 1:].reshape(-1, 4) + all_boxes.append(boxes) + + return all_boxes + + def postprocess_boxes( + self, + class_logits, + box_regression, + embeddings, + proposals, + image_shapes, + fcs=None, + gt_det=None, + cws=True, + ): + """ + Similar to RoIHeads.postprocess_detections, but can handle embeddings and implement + First Classification Score (FCS). + """ + device = class_logits.device + + boxes_per_image = [len(boxes_in_image) for boxes_in_image in proposals] + pred_boxes = self.box_coder.decode(box_regression, proposals) + + if fcs is not None: + # Fist Classification Score (FCS) + pred_scores = fcs[0] + else: + pred_scores = torch.sigmoid(class_logits) + if cws: + # Confidence Weighted Similarity (CWS) + embeddings = embeddings * pred_scores.view(-1, 1) + + # split boxes and scores per image + pred_boxes = pred_boxes.split(boxes_per_image, 0) + pred_scores = pred_scores.split(boxes_per_image, 0) + pred_embeddings = embeddings.split(boxes_per_image, 0) + + all_boxes = [] + all_scores = [] + all_labels = [] + all_embeddings = [] + for boxes, scores, embeddings, image_shape in zip( + pred_boxes, pred_scores, pred_embeddings, image_shapes + ): + boxes = box_ops.clip_boxes_to_image(boxes, image_shape) + + # create labels for each prediction + labels = torch.ones(scores.size(0), device=device) + + # remove predictions with the background label + boxes = boxes[:, 1:] + scores = scores.unsqueeze(1) + labels = labels.unsqueeze(1) + + # batch everything, by making every class prediction be a separate instance + boxes = boxes.reshape(-1, 4) + scores = scores.flatten() + labels = labels.flatten() + embeddings = embeddings.reshape(-1, self.embedding_head_2nd.dim) + + # remove low scoring boxes + inds = torch.nonzero(scores > self.score_thresh).squeeze(1) + boxes, scores, labels, embeddings = ( + boxes[inds], + scores[inds], + labels[inds], + embeddings[inds], + ) + + # remove empty boxes + keep = box_ops.remove_small_boxes(boxes, min_size=1e-2) + boxes, scores, labels, embeddings = ( + boxes[keep], + scores[keep], + labels[keep], + embeddings[keep], + ) + + if gt_det is not None: + # include GT into the detection results + boxes = torch.cat((boxes, gt_det["boxes"]), dim=0) + labels = torch.cat((labels, torch.tensor([1.0]).to(device)), dim=0) + scores = torch.cat((scores, torch.tensor([1.0]).to(device)), dim=0) + embeddings = torch.cat((embeddings, gt_det["embeddings"]), dim=0) + + # non-maximum suppression, independently done per class + keep = box_ops.batched_nms(boxes, scores, labels, self.nms_thresh) + # keep only topk scoring predictions + keep = keep[: self.detections_per_img] + boxes, scores, labels, embeddings = ( + boxes[keep], + scores[keep], + labels[keep], + embeddings[keep], + ) + + all_boxes.append(boxes) + all_scores.append(scores) + all_labels.append(labels) + all_embeddings.append(embeddings) + + return all_boxes, all_scores, all_embeddings, all_labels + + +class NormAwareEmbedding(nn.Module): + """ + Implements the Norm-Aware Embedding proposed in + Chen, Di, et al. "Norm-aware embedding for efficient person search." CVPR 2020. + """ + + def __init__(self, featmap_names=["feat_res4", "feat_res5"], in_channels=[1024, 2048], dim=256): + super(NormAwareEmbedding, self).__init__() + self.featmap_names = featmap_names + self.in_channels = in_channels + self.dim = dim + + self.projectors = nn.ModuleDict() + indv_dims = self._split_embedding_dim() + for ftname, in_channel, indv_dim in zip(self.featmap_names, self.in_channels, indv_dims): + proj = nn.Sequential(nn.Linear(in_channel, indv_dim), nn.BatchNorm1d(indv_dim)) + init.normal_(proj[0].weight, std=0.01) + init.normal_(proj[1].weight, std=0.01) + init.constant_(proj[0].bias, 0) + init.constant_(proj[1].bias, 0) + self.projectors[ftname] = proj + + self.rescaler = nn.BatchNorm1d(1, affine=True) + + def forward(self, featmaps): + """ + Arguments: + featmaps: OrderedDict[Tensor], and in featmap_names you can choose which + featmaps to use + Returns: + tensor of size (BatchSize, dim), L2 normalized embeddings. + tensor of size (BatchSize, ) rescaled norm of embeddings, as class_logits. + """ + assert len(featmaps) == len(self.featmap_names) + if len(featmaps) == 1: + k, v = featmaps.items()[0] + v = self._flatten_fc_input(v) + embeddings = self.projectors[k](v) + norms = embeddings.norm(2, 1, keepdim=True) + embeddings = embeddings / norms.expand_as(embeddings).clamp(min=1e-12) + norms = self.rescaler(norms).squeeze() + return embeddings, norms + else: + outputs = [] + for k, v in featmaps.items(): + v = self._flatten_fc_input(v) + outputs.append(self.projectors[k](v)) + embeddings = torch.cat(outputs, dim=1) + norms = embeddings.norm(2, 1, keepdim=True) + embeddings = embeddings / norms.expand_as(embeddings).clamp(min=1e-12) + norms = self.rescaler(norms).squeeze() + return embeddings, norms + + def _flatten_fc_input(self, x): + if x.ndimension() == 4: + assert list(x.shape[2:]) == [1, 1] + return x.flatten(start_dim=1) + return x + + def _split_embedding_dim(self): + parts = len(self.in_channels) + tmp = [self.dim // parts] * parts + if sum(tmp) == self.dim: + return tmp + else: + res = self.dim % parts + for i in range(1, res + 1): + tmp[-i] += 1 + assert sum(tmp) == self.dim + return tmp + + +class BBoxRegressor(nn.Module): + """ + Bounding box regression layer. + """ + + def __init__(self, in_channels, num_classes=2, bn_neck=True): + """ + Args: + in_channels (int): Input channels. + num_classes (int, optional): Defaults to 2 (background and pedestrian). + bn_neck (bool, optional): Whether to use BN after Linear. Defaults to True. + """ + super(BBoxRegressor, self).__init__() + if bn_neck: + self.bbox_pred = nn.Sequential( + nn.Linear(in_channels, 4 * num_classes), nn.BatchNorm1d(4 * num_classes) + ) + init.normal_(self.bbox_pred[0].weight, std=0.01) + init.normal_(self.bbox_pred[1].weight, std=0.01) + init.constant_(self.bbox_pred[0].bias, 0) + init.constant_(self.bbox_pred[1].bias, 0) + else: + self.bbox_pred = nn.Linear(in_channels, 4 * num_classes) + init.normal_(self.bbox_pred.weight, std=0.01) + init.constant_(self.bbox_pred.bias, 0) + + def forward(self, x): + if x.ndimension() == 4: + if list(x.shape[2:]) != [1, 1]: + x = F.adaptive_avg_pool2d(x, output_size=1) + x = x.flatten(start_dim=1) + bbox_deltas = self.bbox_pred(x) + return bbox_deltas + + +def detection_losses( + box_cls_scores_1st, + box_regs_1st, + box_labels_1st, + box_reg_targets_1st, + box_cls_scores_2nd, + box_regs_2nd, + box_labels_2nd, + box_reg_targets_2nd, + box_cls_scores_3rd, + box_regs_3rd, + box_labels_3rd, + box_reg_targets_3rd, +): + # --------------------- The first stage -------------------- # + box_labels_1st = torch.cat(box_labels_1st, dim=0) + box_reg_targets_1st = torch.cat(box_reg_targets_1st, dim=0) + loss_rcnn_cls_1st = F.cross_entropy(box_cls_scores_1st, box_labels_1st) + + # get indices that correspond to the regression targets for the + # corresponding ground truth labels, to be used with advanced indexing + sampled_pos_inds_subset = torch.nonzero(box_labels_1st > 0).squeeze(1) + labels_pos = box_labels_1st[sampled_pos_inds_subset] + N = box_cls_scores_1st.size(0) + box_regs_1st = box_regs_1st.reshape(N, -1, 4) + + loss_rcnn_reg_1st = F.smooth_l1_loss( + box_regs_1st[sampled_pos_inds_subset, labels_pos], + box_reg_targets_1st[sampled_pos_inds_subset], + reduction="sum", + ) + loss_rcnn_reg_1st = loss_rcnn_reg_1st / box_labels_1st.numel() + + # --------------------- The second stage -------------------- # + box_labels_2nd = torch.cat(box_labels_2nd, dim=0) + box_reg_targets_2nd = torch.cat(box_reg_targets_2nd, dim=0) + loss_rcnn_cls_2nd = F.binary_cross_entropy_with_logits(box_cls_scores_2nd, box_labels_2nd.float()) + + sampled_pos_inds_subset = torch.nonzero(box_labels_2nd > 0).squeeze(1) + labels_pos = box_labels_2nd[sampled_pos_inds_subset] + N = box_cls_scores_2nd.size(0) + box_regs_2nd = box_regs_2nd.reshape(N, -1, 4) + + loss_rcnn_reg_2nd = F.smooth_l1_loss( + box_regs_2nd[sampled_pos_inds_subset, labels_pos], + box_reg_targets_2nd[sampled_pos_inds_subset], + reduction="sum", + ) + loss_rcnn_reg_2nd = loss_rcnn_reg_2nd / box_labels_2nd.numel() + + # --------------------- The third stage -------------------- # + box_labels_3rd = torch.cat(box_labels_3rd, dim=0) + box_reg_targets_3rd = torch.cat(box_reg_targets_3rd, dim=0) + loss_rcnn_cls_3rd = F.binary_cross_entropy_with_logits(box_cls_scores_3rd, box_labels_3rd.float()) + + sampled_pos_inds_subset = torch.nonzero(box_labels_3rd > 0).squeeze(1) + labels_pos = box_labels_3rd[sampled_pos_inds_subset] + N = box_cls_scores_3rd.size(0) + box_regs_3rd = box_regs_3rd.reshape(N, -1, 4) + + loss_rcnn_reg_3rd = F.smooth_l1_loss( + box_regs_3rd[sampled_pos_inds_subset, labels_pos], + box_reg_targets_3rd[sampled_pos_inds_subset], + reduction="sum", + ) + loss_rcnn_reg_3rd = loss_rcnn_reg_3rd / box_labels_3rd.numel() + + return dict( + loss_rcnn_cls_1st=loss_rcnn_cls_1st, + loss_rcnn_reg_1st=loss_rcnn_reg_1st, + loss_rcnn_cls_2nd=loss_rcnn_cls_2nd, + loss_rcnn_reg_2nd=loss_rcnn_reg_2nd, + loss_rcnn_cls_3rd=loss_rcnn_cls_3rd, + loss_rcnn_reg_3rd=loss_rcnn_reg_3rd, + ) diff --git a/coat-pvtv2-b2/models/resnet.py b/coat-pvtv2-b2/models/resnet.py new file mode 100644 index 0000000..228a61b --- /dev/null +++ b/coat-pvtv2-b2/models/resnet.py @@ -0,0 +1,53 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +from collections import OrderedDict +import torch.nn.functional as F +import torchvision +from torch import nn + +class Backbone(nn.Sequential): + def __init__(self, resnet): + super(Backbone, self).__init__( + OrderedDict( + [ + ["conv1", resnet.conv1], + ["bn1", resnet.bn1], + ["relu", resnet.relu], + ["maxpool", resnet.maxpool], + ["layer1", resnet.layer1], # res2 + ["layer2", resnet.layer2], # res3 + ["layer3", resnet.layer3], # res4 + ] + ) + ) + self.out_channels = 1024 + + def forward(self, x): + # using the forward method from nn.Sequential + feat = super(Backbone, self).forward(x) + return OrderedDict([["feat_res4", feat]]) + + +class Res5Head(nn.Sequential): + def __init__(self, resnet): + super(Res5Head, self).__init__(OrderedDict([["layer4", resnet.layer4]])) # res5 + self.out_channels = [1024, 2048] + + def forward(self, x): + feat = super(Res5Head, self).forward(x) + x = F.adaptive_max_pool2d(x, 1) + feat = F.adaptive_max_pool2d(feat, 1) + return OrderedDict([["feat_res4", x], ["feat_res5", feat]]) + + +def build_resnet(name="resnet50", pretrained=True): + resnet = torchvision.models.resnet.__dict__[name](pretrained=pretrained) + + # freeze layers + resnet.conv1.weight.requires_grad_(False) + resnet.bn1.weight.requires_grad_(False) + resnet.bn1.bias.requires_grad_(False) + + return Backbone(resnet), Res5Head(resnet) diff --git a/coat-pvtv2-b2/models/transformer.py b/coat-pvtv2-b2/models/transformer.py new file mode 100644 index 0000000..547ddd2 --- /dev/null +++ b/coat-pvtv2-b2/models/transformer.py @@ -0,0 +1,300 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import math +import random +from functools import reduce +import torch +import torch.nn as nn +import torch.nn.functional as F +from utils.mask import exchange_token, exchange_patch, get_mask_box, jigsaw_token, cutout_patch, erase_patch, mixup_patch, jigsaw_patch + + +def conv1x1(in_planes: int, out_planes: int, stride: int = 1) -> nn.Conv2d: + """1x1 convolution""" + return nn.Conv2d(in_planes, out_planes, kernel_size=1, stride=stride, bias=False) + + +class TransformerHead(nn.Module): + def __init__( + self, + cfg, + trans_names, + kernel_size, + use_feature_mask, + ): + super(TransformerHead, self).__init__() + d_model = cfg.MODEL.TRANSFORMER.DIM_MODEL + + # Mask parameters + self.use_feature_mask = use_feature_mask + mask_shape = cfg.MODEL.MASK_SHAPE + mask_size = cfg.MODEL.MASK_SIZE + mask_mode = cfg.MODEL.MASK_MODE + + self.bypass_mask = exchange_patch(mask_shape, mask_size, mask_mode) + self.get_mask_box = get_mask_box(mask_shape, mask_size, mask_mode) + + self.transformer_encoder = Transformers( + cfg=cfg, + trans_names=trans_names, + kernel_size=kernel_size, + use_feature_mask=use_feature_mask, + ) + self.conv0 = conv1x1(1024, 1024) + self.conv1 = conv1x1(1024, d_model) + self.conv2 = conv1x1(d_model, 2048) + + def forward(self, box_features): + mask_box = self.get_mask_box(box_features) + + if self.use_feature_mask: + skip_features = self.conv0(box_features) + if self.training: + skip_features = self.bypass_mask(skip_features) + else: + skip_features = box_features + + trans_features = {} + trans_features["before_trans"] = F.adaptive_max_pool2d(skip_features, 1) + box_features = self.conv1(box_features) + box_features = self.transformer_encoder((box_features,mask_box)) + box_features = self.conv2(box_features) + trans_features["after_trans"] = F.adaptive_max_pool2d(box_features, 1) + + return trans_features + + +class Transformers(nn.Module): + def __init__( + self, + cfg, + trans_names, + kernel_size, + use_feature_mask, + ): + super(Transformers, self).__init__() + d_model = cfg.MODEL.TRANSFORMER.DIM_MODEL + self.feature_aug_type = cfg.MODEL.FEATURE_AUG_TYPE + self.use_feature_mask = use_feature_mask + + # If no conv before transformer, we do not use scales + if not cfg.MODEL.TRANSFORMER.USE_PATCH2VEC: + trans_names = ['scale1'] + kernel_size = [(1,1)] + + self.trans_names = trans_names + self.scale_size = len(self.trans_names) + hidden = d_model//(2*self.scale_size) + + # kernel_size: (padding, stride) + kernels = { + (1,1): [(0,0),(1,1)], + (3,3): [(1,1),(1,1)] + } + + padding = [] + stride = [] + for ksize in kernel_size: + if ksize not in [(1,1),(3,3)]: + raise ValueError('Undefined kernel size.') + padding.append(kernels[ksize][0]) + stride.append(kernels[ksize][1]) + + self.use_output_layer = cfg.MODEL.TRANSFORMER.USE_OUTPUT_LAYER + self.use_global_shortcut = cfg.MODEL.TRANSFORMER.USE_GLOBAL_SHORTCUT + + self.blocks = nn.ModuleDict() + for tname, ksize, psize, ssize in zip(self.trans_names, kernel_size, padding, stride): + transblock = Transformer( + cfg, d_model//self.scale_size, ksize, psize, ssize, hidden, use_feature_mask + ) + self.blocks[tname] = nn.Sequential(transblock) + + self.output_linear = nn.Sequential( + nn.Conv2d(d_model, d_model, kernel_size=3, padding=1), + nn.LeakyReLU(0.2, inplace=True) + ) + self.mask_para = [cfg.MODEL.MASK_SHAPE, cfg.MODEL.MASK_SIZE, cfg.MODEL.MASK_MODE] + + def forward(self, inputs): + trans_feat = [] + enc_feat, mask_box = inputs + + if self.training and self.use_feature_mask and self.feature_aug_type == 'exchange_patch': + feature_mask = exchange_patch(self.mask_para[0], self.mask_para[1], self.mask_para[2]) + enc_feat = feature_mask(enc_feat) + + for tname, feat in zip(self.trans_names, torch.chunk(enc_feat, len(self.trans_names), dim=1)): + feat = self.blocks[tname]((feat, mask_box)) + trans_feat.append(feat) + + trans_feat = torch.cat(trans_feat, 1) + if self.use_output_layer: + trans_feat = self.output_linear(trans_feat) + if self.use_global_shortcut: + trans_feat = enc_feat + trans_feat + return trans_feat + + +class Transformer(nn.Module): + def __init__(self, cfg, channel, kernel_size, padding, stride, hidden, use_feature_mask + ): + super(Transformer, self).__init__() + self.k = kernel_size[0] + stack_num = cfg.MODEL.TRANSFORMER.ENCODER_LAYERS + num_head = cfg.MODEL.TRANSFORMER.N_HEAD + dropout = cfg.MODEL.TRANSFORMER.DROPOUT + output_size = (14,14) + token_size = tuple(map(lambda x,y:x//y, output_size, stride)) + blocks = [] + self.transblock = TransformerBlock(token_size, hidden=hidden, num_head=num_head, dropout=dropout) + for _ in range(stack_num): + blocks.append(self.transblock) + self.transformer = nn.Sequential(*blocks) + self.patch2vec = nn.Conv2d(channel, hidden, kernel_size=kernel_size, stride=stride, padding=padding) + self.vec2patch = Vec2Patch(channel, hidden, output_size, kernel_size, stride, padding) + self.use_local_shortcut = cfg.MODEL.TRANSFORMER.USE_LOCAL_SHORTCUT + self.use_feature_mask = use_feature_mask + self.feature_aug_type = cfg.MODEL.FEATURE_AUG_TYPE + self.use_patch2vec = cfg.MODEL.TRANSFORMER.USE_PATCH2VEC + + def forward(self, inputs): + enc_feat, mask_box = inputs + b, c, h, w = enc_feat.size() + + trans_feat = self.patch2vec(enc_feat) + + _, c, h, w = trans_feat.size() + trans_feat = trans_feat.view(b, c, -1).permute(0, 2, 1) + + # For 1x1 & 3x3 kernels, exchange tokens + if self.training and self.use_feature_mask: + if self.feature_aug_type == 'exchange_token': + feature_mask = exchange_token() + trans_feat = feature_mask(trans_feat, mask_box) + elif self.feature_aug_type == 'cutout_patch': + feature_mask = cutout_patch() + trans_feat = feature_mask(trans_feat) + elif self.feature_aug_type == 'erase_patch': + feature_mask = erase_patch() + trans_feat = feature_mask(trans_feat) + elif self.feature_aug_type == 'mixup_patch': + feature_mask = mixup_patch() + trans_feat = feature_mask(trans_feat) + + if self.use_feature_mask: + if self.feature_aug_type == 'jigsaw_patch': + feature_mask = jigsaw_patch() + trans_feat = feature_mask(trans_feat) + elif self.feature_aug_type == 'jigsaw_token': + feature_mask = jigsaw_token() + trans_feat = feature_mask(trans_feat) + + trans_feat = self.transformer(trans_feat) + trans_feat = self.vec2patch(trans_feat) + if self.use_local_shortcut: + trans_feat = enc_feat + trans_feat + + return trans_feat + + +class TransformerBlock(nn.Module): + """ + Transformer = MultiHead_Attention + Feed_Forward with sublayer connection + """ + def __init__(self, tokensize, hidden=128, num_head=4, dropout=0.1): + super().__init__() + self.attention = MultiHeadedAttention(tokensize, d_model=hidden, head=num_head, p=dropout) + self.ffn = FeedForward(hidden, p=dropout) + self.norm1 = nn.LayerNorm(hidden) + self.norm2 = nn.LayerNorm(hidden) + self.dropout = nn.Dropout(p=dropout) + + def forward(self, x): + x = self.norm1(x) + x = x + self.dropout(self.attention(x)) + y = self.norm2(x) + x = x + self.ffn(y) + + return x + + +class Attention(nn.Module): + """ + Compute 'Scaled Dot Product Attention + """ + def __init__(self, p=0.1): + super(Attention, self).__init__() + self.dropout = nn.Dropout(p=p) + + def forward(self, query, key, value): + scores = torch.matmul(query, key.transpose(-2, -1) + ) / math.sqrt(query.size(-1)) + p_attn = F.softmax(scores, dim=-1) + p_attn = self.dropout(p_attn) + p_val = torch.matmul(p_attn, value) + return p_val, p_attn + + +class Vec2Patch(nn.Module): + def __init__(self, channel, hidden, output_size, kernel_size, stride, padding): + super(Vec2Patch, self).__init__() + self.relu = nn.LeakyReLU(0.2, inplace=True) + c_out = reduce((lambda x, y: x * y), kernel_size) * channel + self.embedding = nn.Linear(hidden, c_out) + self.to_patch = torch.nn.Fold(output_size=output_size, kernel_size=kernel_size, stride=stride, padding=padding) + h, w = output_size + + def forward(self, x): + feat = self.embedding(x) + b, n, c = feat.size() + feat = feat.permute(0, 2, 1) + feat = self.to_patch(feat) + + return feat + +class MultiHeadedAttention(nn.Module): + """ + Take in model size and number of heads. + """ + def __init__(self, tokensize, d_model, head, p=0.1): + super().__init__() + self.query_embedding = nn.Linear(d_model, d_model) + self.value_embedding = nn.Linear(d_model, d_model) + self.key_embedding = nn.Linear(d_model, d_model) + self.output_linear = nn.Linear(d_model, d_model) + self.attention = Attention(p=p) + self.head = head + self.h, self.w = tokensize + + def forward(self, x): + b, n, c = x.size() + c_h = c // self.head + key = self.key_embedding(x) + query = self.query_embedding(x) + value = self.value_embedding(x) + key = key.view(b, n, self.head, c_h).permute(0, 2, 1, 3) + query = query.view(b, n, self.head, c_h).permute(0, 2, 1, 3) + value = value.view(b, n, self.head, c_h).permute(0, 2, 1, 3) + att, _ = self.attention(query, key, value) + att = att.permute(0, 2, 1, 3).contiguous().view(b, n, c) + output = self.output_linear(att) + + return output + + +class FeedForward(nn.Module): + def __init__(self, d_model, p=0.1): + super(FeedForward, self).__init__() + self.conv = nn.Sequential( + nn.Linear(d_model, d_model * 4), + nn.ReLU(inplace=True), + nn.Dropout(p=p), + nn.Linear(d_model * 4, d_model), + nn.Dropout(p=p)) + + def forward(self, x): + x = self.conv(x) + return x diff --git a/coat-pvtv2-b2/train.py b/coat-pvtv2-b2/train.py new file mode 100644 index 0000000..d7531f8 --- /dev/null +++ b/coat-pvtv2-b2/train.py @@ -0,0 +1,154 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import argparse +import datetime +import os.path as osp +import time + +import torch +import torch.utils.data + +from datasets import build_test_loader, build_train_loader +from defaults import get_default_cfg +from engine import evaluate_performance, train_one_epoch +from models.coat import COAT +from utils.utils import mkdir, resume_from_ckpt, save_on_master, set_random_seed + +from loss.softmax_loss import SoftmaxLoss + + +def main(args): + cfg = get_default_cfg() + if args.cfg_file: + cfg.merge_from_file(args.cfg_file) + cfg.merge_from_list(args.opts) + cfg.freeze() + + device = torch.device(cfg.DEVICE) + if cfg.SEED >= 0: + set_random_seed(cfg.SEED) + + print("Creating model...") + model = COAT(cfg) + model.to(device) + + print("Loading data...") + train_loader = build_train_loader(cfg) + gallery_loader, query_loader = build_test_loader(cfg) + + softmax_criterion_s2 = None + softmax_criterion_s3 = None + if cfg.MODEL.LOSS.USE_SOFTMAX: + softmax_criterion_s2 = SoftmaxLoss(cfg) + softmax_criterion_s3 = SoftmaxLoss(cfg) + softmax_criterion_s2.to(device) + softmax_criterion_s3.to(device) + + if args.eval: + assert args.ckpt, "--ckpt must be specified when --eval enabled" + resume_from_ckpt(args.ckpt, model) + evaluate_performance( + model, + gallery_loader, + query_loader, + device, + use_gt=cfg.EVAL_USE_GT, + use_cache=cfg.EVAL_USE_CACHE, + use_cbgm=cfg.EVAL_USE_CBGM, + gallery_size=cfg.EVAL_GALLERY_SIZE, + ) + exit(0) + + params = [p for p in model.parameters() if p.requires_grad] + if cfg.MODEL.LOSS.USE_SOFTMAX: + params_softmax_s2 = [p for p in softmax_criterion_s2.parameters() if p.requires_grad] + params_softmax_s3 = [p for p in softmax_criterion_s3.parameters() if p.requires_grad] + params.extend(params_softmax_s2) + params.extend(params_softmax_s3) + + optimizer = torch.optim.SGD( + params, + lr=cfg.SOLVER.BASE_LR, + momentum=cfg.SOLVER.SGD_MOMENTUM, + weight_decay=cfg.SOLVER.WEIGHT_DECAY, + ) + + lr_scheduler = torch.optim.lr_scheduler.MultiStepLR( + optimizer, milestones=cfg.SOLVER.LR_DECAY_MILESTONES, gamma=cfg.SOLVER.GAMMA + ) + + start_epoch = 0 + if args.resume: + assert args.ckpt, "--ckpt must be specified when --resume enabled" + start_epoch = resume_from_ckpt(args.ckpt, model, optimizer, lr_scheduler) + 1 + + print("Creating output folder...") + output_dir = cfg.OUTPUT_DIR + mkdir(output_dir) + path = osp.join(output_dir, "config.yaml") + with open(path, "w") as f: + f.write(cfg.dump()) + print(f"Full config is saved to {path}") + tfboard = None + if cfg.TF_BOARD: + from torch.utils.tensorboard import SummaryWriter + + tf_log_path = osp.join(output_dir, "tf_log") + mkdir(tf_log_path) + tfboard = SummaryWriter(log_dir=tf_log_path) + print(f"TensorBoard files are saved to {tf_log_path}") + + print("Start training...") + start_time = time.time() + for epoch in range(start_epoch, cfg.SOLVER.MAX_EPOCHS): + train_one_epoch(cfg, model, optimizer, train_loader, device, epoch, tfboard, softmax_criterion_s2, softmax_criterion_s3) + lr_scheduler.step() + + # only save the last three checkpoints + if epoch >= cfg.SOLVER.MAX_EPOCHS - 3: + save_on_master( + { + "model": model.state_dict(), + "optimizer": optimizer.state_dict(), + "lr_scheduler": lr_scheduler.state_dict(), + "epoch": epoch, + }, + osp.join(output_dir, f"epoch_{epoch}.pth"), + ) + + # evaluate the current checkpoint + evaluate_performance( + model, + gallery_loader, + query_loader, + device, + use_gt=cfg.EVAL_USE_GT, + use_cache=cfg.EVAL_USE_CACHE, + use_cbgm=cfg.EVAL_USE_CBGM, + gallery_size=cfg.EVAL_GALLERY_SIZE, + ) + + if tfboard: + tfboard.close() + total_time = time.time() - start_time + total_time_str = str(datetime.timedelta(seconds=int(total_time))) + print(f"Total training time {total_time_str}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Train a person search network.") + parser.add_argument("--cfg", dest="cfg_file", help="Path to configuration file.") + parser.add_argument( + "--eval", action="store_true", help="Evaluate the performance of a given checkpoint." + ) + parser.add_argument( + "--resume", action="store_true", help="Resume from the specified checkpoint." + ) + parser.add_argument("--ckpt", help="Path to checkpoint to resume or evaluate.") + parser.add_argument( + "opts", nargs=argparse.REMAINDER, help="Modify config options using the command-line" + ) + args = parser.parse_args() + main(args) diff --git a/coat-pvtv2-b2/utils/km.py b/coat-pvtv2-b2/utils/km.py new file mode 100644 index 0000000..baf2e26 --- /dev/null +++ b/coat-pvtv2-b2/utils/km.py @@ -0,0 +1,150 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import random +import numpy as np + +zero_threshold = 0.00000001 + +class KMNode(object): + def __init__(self, id, exception=0, match=None, visit=False): + self.id = id + self.exception = exception + self.match = match + self.visit = visit + + +class KuhnMunkres(object): + def __init__(self): + self.matrix = None + self.x_nodes = [] + self.y_nodes = [] + self.minz = float("inf") + self.x_length = 0 + self.y_length = 0 + self.index_x = 0 + self.index_y = 1 + + def __del__(self): + pass + + def set_matrix(self, x_y_values): + xs = set() + ys = set() + for x, y, value in x_y_values: + xs.add(x) + ys.add(y) + + if len(xs) < len(ys): + self.index_x = 0 + self.index_y = 1 + else: + self.index_x = 1 + self.index_y = 0 + xs, ys = ys, xs + + x_dic = {x: i for i, x in enumerate(xs)} + y_dic = {y: j for j, y in enumerate(ys)} + self.x_nodes = [KMNode(x) for x in xs] + self.y_nodes = [KMNode(y) for y in ys] + self.x_length = len(xs) + self.y_length = len(ys) + + self.matrix = np.zeros((self.x_length, self.y_length)) + for row in x_y_values: + x = row[self.index_x] + y = row[self.index_y] + value = row[2] + x_index = x_dic[x] + y_index = y_dic[y] + self.matrix[x_index, y_index] = value + + for i in range(self.x_length): + self.x_nodes[i].exception = max(self.matrix[i, :]) + + def km(self): + for i in range(self.x_length): + while True: + self.minz = float("inf") + self.set_false(self.x_nodes) + self.set_false(self.y_nodes) + + if self.dfs(i): + break + + self.change_exception(self.x_nodes, -self.minz) + self.change_exception(self.y_nodes, self.minz) + + def dfs(self, i): + x_node = self.x_nodes[i] + x_node.visit = True + for j in range(self.y_length): + y_node = self.y_nodes[j] + if not y_node.visit: + t = x_node.exception + y_node.exception - self.matrix[i][j] + if abs(t) < zero_threshold: + y_node.visit = True + if y_node.match is None or self.dfs(y_node.match): + x_node.match = j + y_node.match = i + return True + else: + if t >= zero_threshold: + self.minz = min(self.minz, t) + return False + + def set_false(self, nodes): + for node in nodes: + node.visit = False + + def change_exception(self, nodes, change): + for node in nodes: + if node.visit: + node.exception += change + + def get_connect_result(self): + ret = [] + for i in range(self.x_length): + x_node = self.x_nodes[i] + j = x_node.match + y_node = self.y_nodes[j] + x_id = x_node.id + y_id = y_node.id + value = self.matrix[i][j] + + if self.index_x == 1 and self.index_y == 0: + x_id, y_id = y_id, x_id + ret.append((x_id, y_id, value)) + + return ret + + def get_max_value_result(self): + ret = -100 + for i in range(self.x_length): + j = self.x_nodes[i].match + ret = max(ret, self.matrix[i][j]) + return ret + + +def run_kuhn_munkres(x_y_values): + process = KuhnMunkres() + process.set_matrix(x_y_values) + process.km() + return process.get_connect_result(), process.get_max_value_result() + + +def test(): + values = [] + random.seed(0) + for i in range(500): + for j in range(1000): + value = random.random() + values.append((i, j, value)) + + return run_kuhn_munkres(values) + + +if __name__ == "__main__": + values = [(1, 1, 3), (1, 3, 4), (2, 1, 2), (2, 2, 1), (2, 3, 3), (3, 2, 4), (3, 3, 5)] + print(run_kuhn_munkres(values)) diff --git a/coat-pvtv2-b2/utils/mask.py b/coat-pvtv2-b2/utils/mask.py new file mode 100644 index 0000000..d63b0ed --- /dev/null +++ b/coat-pvtv2-b2/utils/mask.py @@ -0,0 +1,325 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import random +import torch + +class exchange_token: + def __init__(self): + pass + + def __call__(self, features, mask_box): + b, hw, c = features.size() + assert hw == 14*14 + new_idx, mask_x1, mask_x2, mask_y1, mask_y2 = mask_box + features = features.view(b, 14, 14, c) + features[:, mask_x1 : mask_x2, mask_y1 : mask_y2, :] = features[new_idx, mask_x1 : mask_x2, mask_y1 : mask_y2, :] + features = features.view(b, hw, c) + return features + +class jigsaw_token: + def __init__(self, shift=5, group=2, begin=1): + self.shift = shift + self.group = group + self.begin = begin + + def __call__(self, features): + batchsize = features.size(0) + dim = features.size(2) + + num_tokens = features.size(1) + if num_tokens == 196: + self.group = 2 + elif num_tokens == 25: + self.group = 5 + else: + raise Exception("Jigsaw - Unwanted number of tokens") + + # Shift Operation + feature_random = torch.cat([features[:, self.begin-1+self.shift:, :], features[:, self.begin-1:self.begin-1+self.shift, :]], dim=1) + x = feature_random + + # Patch Shuffle Operation + try: + x = x.view(batchsize, self.group, -1, dim) + except: + raise Exception("Jigsaw - Unwanted number of groups") + + x = torch.transpose(x, 1, 2).contiguous() + x = x.view(batchsize, -1, dim) + + return x + +class get_mask_box: + def __init__(self, shape='stripe', mask_size=2, mode='random_direct'): + self.shape = shape + self.mask_size = mask_size + self.mode = mode + + def __call__(self, features): + # Stripe mask + if self.shape == 'stripe': + if self.mode == 'horizontal': + mask_box = self.hstripe(features, self.mask_size) + elif self.mode == 'vertical': + mask_box = self.vstripe(features, self.mask_size) + elif self.mode == 'random_direction': + if random.random() < 0.5: + mask_box = self.hstripe(features, self.mask_size) + else: + mask_box = self.vstripe(features, self.mask_size) + else: + raise Exception("Unknown stripe mask mode name") + # Square mask + elif self.shape == 'square': + if self.mode == 'random_size': + self.mask_size = 4 if random.random() < 0.5 else 5 + mask_box = self.square(features, self.mask_size) + # Random stripe/square mask + elif self.shape == 'random': + random_num = random.random() + if random_num < 0.25: + mask_box = self.hstripe(features, 2) + elif random_num < 0.5 and random_num >= 0.25: + mask_box = self.vstripe(features, 2) + elif random_num < 0.75 and random_num >= 0.5: + mask_box = self.square(features, 4) + else: + mask_box = self.square(features, 5) + else: + raise Exception("Unknown mask shape name") + return mask_box + + def hstripe(self, features, mask_size): + """ + """ + # horizontal stripe + mask_x1 = 0 + mask_x2 = features.shape[2] + y1_max = features.shape[3] - mask_size + mask_y1 = torch.randint(y1_max, (1,)) + mask_y2 = mask_y1 + mask_size + new_idx = torch.randperm(features.shape[0]) + mask_box = (new_idx, mask_x1, mask_x2, mask_y1, mask_y2) + return mask_box + + def vstripe(self, features, mask_size): + """ + """ + # vertical stripe + mask_y1 = 0 + mask_y2 = features.shape[3] + x1_max = features.shape[2] - mask_size + mask_x1 = torch.randint(x1_max, (1,)) + mask_x2 = mask_x1 + mask_size + new_idx = torch.randperm(features.shape[0]) + mask_box = (new_idx, mask_x1, mask_x2, mask_y1, mask_y2) + return mask_box + + def square(self, features, mask_size): + """ + """ + # square + x1_max = features.shape[2] - mask_size + y1_max = features.shape[3] - mask_size + mask_x1 = torch.randint(x1_max, (1,)) + mask_y1 = torch.randint(y1_max, (1,)) + mask_x2 = mask_x1 + mask_size + mask_y2 = mask_y1 + mask_size + new_idx = torch.randperm(features.shape[0]) + mask_box = (new_idx, mask_x1, mask_x2, mask_y1, mask_y2) + return mask_box + + +class exchange_patch: + def __init__(self, shape='stripe', mask_size=2, mode='random_direct'): + self.shape = shape + self.mask_size = mask_size + self.mode = mode + + def __call__(self, features): + # Stripe mask + if self.shape == 'stripe': + if self.mode == 'horizontal': + features = self.xpatch_hstripe(features, self.mask_size) + elif self.mode == 'vertical': + features = self.xpatch_vstripe(features, self.mask_size) + elif self.mode == 'random_direction': + if random.random() < 0.5: + features = self.xpatch_hstripe(features, self.mask_size) + else: + features = self.xpatch_vstripe(features, self.mask_size) + else: + raise Exception("Unknown stripe mask mode name") + # Square mask + elif self.shape == 'square': + if self.mode == 'random_size': + self.mask_size = 4 if random.random() < 0.5 else 5 + features = self.xpatch_square(features, self.mask_size) + # Random stripe/square mask + elif self.shape == 'random': + random_num = random.random() + if random_num < 0.25: + features = self.xpatch_hstripe(features, 2) + elif random_num < 0.5 and random_num >= 0.25: + features = self.xpatch_vstripe(features, 2) + elif random_num < 0.75 and random_num >= 0.5: + features = self.xpatch_square(features, 4) + else: + features = self.xpatch_square(features, 5) + else: + raise Exception("Unknown mask shape name") + + return features + + def xpatch_hstripe(self, features, mask_size): + """ + """ + # horizontal stripe + y1_max = features.shape[3] - mask_size + num_masks = 1 + for i in range(num_masks): + mask_y1 = torch.randint(y1_max, (1,)) + mask_y2 = mask_y1 + mask_size + new_idx = torch.randperm(features.shape[0]) + features[:, :, :, mask_y1 : mask_y2] = features[new_idx, :, :, mask_y1 : mask_y2] + return features + + + def xpatch_vstripe(self, features, mask_size): + """ + """ + # vertical stripe + x1_max = features.shape[2] - mask_size + num_masks = 1 + for i in range(num_masks): + mask_x1 = torch.randint(x1_max, (1,)) + mask_x2 = mask_x1 + mask_size + new_idx = torch.randperm(features.shape[0]) + features[:, :, mask_x1 : mask_x2, :] = features[new_idx, :, mask_x1 : mask_x2, :] + return features + + + def xpatch_square(self, features, mask_size): + """ + """ + # square + x1_max = features.shape[2] - mask_size + y1_max = features.shape[3] - mask_size + num_masks = 1 + for i in range(num_masks): + mask_x1 = torch.randint(x1_max, (1,)) + mask_y1 = torch.randint(y1_max, (1,)) + mask_x2 = mask_x1 + mask_size + mask_y2 = mask_y1 + mask_size + new_idx = torch.randperm(features.shape[0]) + features[:, :, mask_x1 : mask_x2, mask_y1 : mask_y2] = features[new_idx, :, mask_x1 : mask_x2, mask_y1 : mask_y2] + return features + + +class cutout_patch: + def __init__(self, mask_size=2): + self.mask_size = mask_size + + def __call__(self, features): + if random.random() < 0.5: + y1_max = features.shape[3] - self.mask_size + num_masks = 1 + for i in range(num_masks): + mask_y1 = torch.randint(y1_max, (features.shape[0],)) + mask_y2 = mask_y1 + self.mask_size + for k in range(features.shape[0]): + features[k, :, :, mask_y1[k] : mask_y2[k]] = 0 + else: + x1_max = features.shape[3] - self.mask_size + num_masks = 1 + for i in range(num_masks): + mask_x1 = torch.randint(x1_max, (features.shape[0],)) + mask_x2 = mask_x1 + self.mask_size + for k in range(features.shape[0]): + features[k, :, mask_x1[k] : mask_x2[k], :] = 0 + + return features + + +class erase_patch: + def __init__(self, mask_size=2): + self.mask_size = mask_size + + def __call__(self, features): + std, mean = torch.std_mean(features.detach()) + dim = features.shape[1] + if random.random() < 0.5: + y1_max = features.shape[3] - self.mask_size + num_masks = 1 + for i in range(num_masks): + mask_y1 = torch.randint(y1_max, (features.shape[0],)) + mask_y2 = mask_y1 + self.mask_size + for k in range(features.shape[0]): + features[k, :, :, mask_y1[k] : mask_y2[k]] = torch.normal(mean.repeat(dim,14,2), std.repeat(dim,14,2)) + else: + x1_max = features.shape[3] - self.mask_size + num_masks = 1 + for i in range(num_masks): + mask_x1 = torch.randint(x1_max, (features.shape[0],)) + mask_x2 = mask_x1 + self.mask_size + for k in range(features.shape[0]): + features[k, :, mask_x1[k] : mask_x2[k], :] = torch.normal(mean.repeat(dim,2,14), std.repeat(dim,2,14)) + + return features + +class mixup_patch: + def __init__(self, mask_size=2): + self.mask_size = mask_size + + def __call__(self, features): + lam = random.uniform(0, 1) + if random.random() < 0.5: + y1_max = features.shape[3] - self.mask_size + num_masks = 1 + for i in range(num_masks): + mask_y1 = torch.randint(y1_max, (1,)) + mask_y2 = mask_y1 + self.mask_size + new_idx = torch.randperm(features.shape[0]) + features[:, :, :, mask_y1 : mask_y2] = lam*features[:, :, :, mask_y1 : mask_y2] + (1-lam)*features[new_idx, :, :, mask_y1 : mask_y2] + else: + x1_max = features.shape[2] - self.mask_size + num_masks = 1 + for i in range(num_masks): + mask_x1 = torch.randint(x1_max, (1,)) + mask_x2 = mask_x1 + self.mask_size + new_idx = torch.randperm(features.shape[0]) + features[:, :, mask_x1 : mask_x2, :] = lam*features[:, :, mask_x1 : mask_x2, :] + (1-lam)*features[new_idx, :, mask_x1 : mask_x2, :] + + return features + + +class jigsaw_patch: + def __init__(self, shift=5, group=2): + self.shift = shift + self.group = group + + def __call__(self, features): + batchsize = features.size(0) + dim = features.size(1) + features = features.view(batchsize, dim, -1) + + # Shift Operation + feature_random = torch.cat([features[:, :, self.shift:], features[:, :, :self.shift]], dim=2) + x = feature_random + + # Patch Shuffle Operation + try: + x = x.view(batchsize, dim, self.group, -1) + except: + x = torch.cat([x, x[:, -2:-1, :]], dim=1) + x = x.view(batchsize, self.group, -1, dim) + + x = torch.transpose(x, 2, 3).contiguous() + + x = x.view(batchsize, dim, -1) + x = x.view(batchsize, dim, 14, 14) + + return x + diff --git a/coat-pvtv2-b2/utils/transforms.py b/coat-pvtv2-b2/utils/transforms.py new file mode 100644 index 0000000..b7d0fdd --- /dev/null +++ b/coat-pvtv2-b2/utils/transforms.py @@ -0,0 +1,144 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import random +import math +import torch +import numpy as np +from copy import deepcopy +from torchvision.transforms import functional as F + +def mixup_data(images, alpha=0.8): + if alpha > 0. and alpha < 1.: + lam = random.uniform(alpha, 1) + else: + lam = 1. + + batch_size = len(images) + min_x = 9999 + min_y = 9999 + for i in range(batch_size): + min_x = min(min_x, images[i].shape[1]) + min_y = min(min_y, images[i].shape[2]) + + shuffle_images = deepcopy(images) + random.shuffle(shuffle_images) + mixed_images = deepcopy(images) + for i in range(batch_size): + mixed_images[i][:, :min_x, :min_y] = lam * images[i][:, :min_x, :min_y] + (1 - lam) * shuffle_images[i][:, :min_x, :min_y] + + return mixed_images + +class Compose: + def __init__(self, transforms): + self.transforms = transforms + + def __call__(self, image, target): + for t in self.transforms: + image, target = t(image, target) + return image, target + + +class RandomHorizontalFlip: + def __init__(self, prob=0.5): + self.prob = prob + + def __call__(self, image, target): + if random.random() < self.prob: + height, width = image.shape[-2:] + image = image.flip(-1) + bbox = target["boxes"] + bbox[:, [0, 2]] = width - bbox[:, [2, 0]] + target["boxes"] = bbox + return image, target + +class Cutout(object): + """Randomly mask out one or more patches from an image. + https://github.com/uoguelph-mlrg/Cutout/blob/master/util/cutout.py + Args: + n_holes (int): Number of patches to cut out of each image. + length (int): The length (in pixels) of each square patch. + """ + def __init__(self, n_holes=2, length=100): + self.n_holes = n_holes + self.length = length + + def __call__(self, img, target): + """ + Args: + img (Tensor): Tensor image of size (C, H, W). + Returns: + Tensor: Image with n_holes of dimension length x length cut out of it. + """ + h = img.size(1) + w = img.size(2) + mask = np.ones((h, w), np.float32) + + for n in range(self.n_holes): + y = np.random.randint(h) + x = np.random.randint(w) + y1 = np.clip(y - self.length // 2, 0, h) + y2 = np.clip(y + self.length // 2, 0, h) + x1 = np.clip(x - self.length // 2, 0, w) + x2 = np.clip(x + self.length // 2, 0, w) + mask[y1: y2, x1: x2] = 0. + + mask = torch.from_numpy(mask) + mask = mask.expand_as(img) + img = img * mask + + return img, target + + +class RandomErasing(object): + ''' + https://github.com/zhunzhong07/CamStyle/blob/master/reid/utils/data/transforms.py + ''' + def __init__(self, EPSILON=0.5, mean=[0.485, 0.456, 0.406]): + self.EPSILON = EPSILON + self.mean = mean + + def __call__(self, img, target): + if random.uniform(0, 1) > self.EPSILON: + return img, target + + for attempt in range(100): + area = img.size()[1] * img.size()[2] + + target_area = random.uniform(0.02, 0.2) * area + aspect_ratio = random.uniform(0.3, 3) + + h = int(round(math.sqrt(target_area * aspect_ratio))) + w = int(round(math.sqrt(target_area / aspect_ratio))) + + if w <= img.size()[2] and h <= img.size()[1]: + x1 = random.randint(0, img.size()[1] - h) + y1 = random.randint(0, img.size()[2] - w) + img[0, x1:x1 + h, y1:y1 + w] = self.mean[0] + img[1, x1:x1 + h, y1:y1 + w] = self.mean[1] + img[2, x1:x1 + h, y1:y1 + w] = self.mean[2] + + return img, target + + return img, target + + +class ToTensor: + def __call__(self, image, target): + # convert [0, 255] to [0, 1] + image = F.to_tensor(image) + return image, target + + +def build_transforms(cfg, is_train): + transforms = [] + transforms.append(ToTensor()) + if is_train: + transforms.append(RandomHorizontalFlip()) + if cfg.INPUT.IMAGE_CUTOUT: + transforms.append(Cutout()) + if cfg.INPUT.IMAGE_ERASE: + transforms.append(RandomErasing()) + + return Compose(transforms) diff --git a/coat-pvtv2-b2/utils/utils.py b/coat-pvtv2-b2/utils/utils.py new file mode 100644 index 0000000..14e9cdd --- /dev/null +++ b/coat-pvtv2-b2/utils/utils.py @@ -0,0 +1,436 @@ +# This file is part of COAT, and is distributed under the +# OSI-approved BSD 3-Clause License. See top-level LICENSE file or +# https://github.com/Kitware/COAT/blob/master/LICENSE for details. + +import datetime +import errno +import json +import os +import os.path as osp +import pickle +import random +import time +from collections import defaultdict, deque + +import numpy as np +import torch +import torch.distributed as dist +from tabulate import tabulate + + +# -------------------------------------------------------- # +# Logger # +# -------------------------------------------------------- # +class SmoothedValue(object): + """ + Track a series of values and provide access to smoothed values over a + window or the global series average. + """ + + def __init__(self, window_size=20, fmt=None): + if fmt is None: + fmt = "{median:.4f} ({global_avg:.4f})" + self.deque = deque(maxlen=window_size) + self.total = 0.0 + self.count = 0 + self.fmt = fmt + + def update(self, value, n=1): + self.deque.append(value) + self.count += n + self.total += value * n + + def synchronize_between_processes(self): + """ + Warning: does not synchronize the deque! + """ + if not is_dist_avail_and_initialized(): + return + t = torch.tensor([self.count, self.total], dtype=torch.float64, device="cuda") + dist.barrier() + dist.all_reduce(t) + t = t.tolist() + self.count = int(t[0]) + self.total = t[1] + + @property + def median(self): + d = torch.tensor(list(self.deque)) + return d.median().item() + + @property + def avg(self): + d = torch.tensor(list(self.deque), dtype=torch.float32) + return d.mean().item() + + @property + def global_avg(self): + return self.total / self.count + + @property + def max(self): + return max(self.deque) + + @property + def value(self): + return self.deque[-1] + + def __str__(self): + return self.fmt.format( + median=self.median, + avg=self.avg, + global_avg=self.global_avg, + max=self.max, + value=self.value, + ) + + +class MetricLogger(object): + def __init__(self, delimiter="\t"): + self.meters = defaultdict(SmoothedValue) + self.delimiter = delimiter + + def update(self, **kwargs): + for k, v in kwargs.items(): + if isinstance(v, torch.Tensor): + v = v.item() + assert isinstance(v, (float, int)) + self.meters[k].update(v) + + def __getattr__(self, attr): + if attr in self.meters: + return self.meters[attr] + if attr in self.__dict__: + return self.__dict__[attr] + raise AttributeError("'{}' object has no attribute '{}'".format(type(self).__name__, attr)) + + def __str__(self): + loss_str = [] + for name, meter in self.meters.items(): + loss_str.append("{}: {}".format(name, str(meter))) + return self.delimiter.join(loss_str) + + def synchronize_between_processes(self): + for meter in self.meters.values(): + meter.synchronize_between_processes() + + def add_meter(self, name, meter): + self.meters[name] = meter + + def log_every(self, iterable, print_freq, header=None): + i = 0 + if not header: + header = "" + start_time = time.time() + end = time.time() + iter_time = SmoothedValue(fmt="{avg:.4f}") + data_time = SmoothedValue(fmt="{avg:.4f}") + space_fmt = ":" + str(len(str(len(iterable)))) + "d" + if torch.cuda.is_available(): + log_msg = self.delimiter.join( + [ + header, + "[{0" + space_fmt + "}/{1}]", + "eta: {eta}", + "{meters}", + "time: {time}", + "data: {data}", + "max mem: {memory:.0f}", + ] + ) + else: + log_msg = self.delimiter.join( + [ + header, + "[{0" + space_fmt + "}/{1}]", + "eta: {eta}", + "{meters}", + "time: {time}", + "data: {data}", + ] + ) + MB = 1024.0 * 1024.0 + for obj in iterable: + data_time.update(time.time() - end) + yield obj + iter_time.update(time.time() - end) + if i % print_freq == 0 or i == len(iterable) - 1: + eta_seconds = iter_time.global_avg * (len(iterable) - i) + eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) + if torch.cuda.is_available(): + print( + log_msg.format( + i, + len(iterable), + eta=eta_string, + meters=str(self), + time=str(iter_time), + data=str(data_time), + memory=torch.cuda.max_memory_allocated() / MB, + ) + ) + else: + print( + log_msg.format( + i, + len(iterable), + eta=eta_string, + meters=str(self), + time=str(iter_time), + data=str(data_time), + ) + ) + i += 1 + end = time.time() + total_time = time.time() - start_time + total_time_str = str(datetime.timedelta(seconds=int(total_time))) + print( + "{} Total time: {} ({:.4f} s / it)".format( + header, total_time_str, total_time / len(iterable) + ) + ) + + +# -------------------------------------------------------- # +# Distributed training # +# -------------------------------------------------------- # +def all_gather(data): + """ + Run all_gather on arbitrary picklable data (not necessarily tensors) + + Args: + data: any picklable object + + Returns: + list[data]: list of data gathered from each rank + """ + world_size = get_world_size() + if world_size == 1: + return [data] + + # serialized to a Tensor + buffer = pickle.dumps(data) + storage = torch.ByteStorage.from_buffer(buffer) + tensor = torch.ByteTensor(storage).to("cuda") + + # obtain Tensor size of each rank + local_size = torch.tensor([tensor.numel()], device="cuda") + size_list = [torch.tensor([0], device="cuda") for _ in range(world_size)] + dist.all_gather(size_list, local_size) + size_list = [int(size.item()) for size in size_list] + max_size = max(size_list) + + # receiving Tensor from all ranks + # we pad the tensor because torch all_gather does not support + # gathering tensors of different shapes + tensor_list = [] + for _ in size_list: + tensor_list.append(torch.empty((max_size,), dtype=torch.uint8, device="cuda")) + if local_size != max_size: + padding = torch.empty(size=(max_size - local_size,), dtype=torch.uint8, device="cuda") + tensor = torch.cat((tensor, padding), dim=0) + dist.all_gather(tensor_list, tensor) + + data_list = [] + for size, tensor in zip(size_list, tensor_list): + buffer = tensor.cpu().numpy().tobytes()[:size] + data_list.append(pickle.loads(buffer)) + + return data_list + + +def reduce_dict(input_dict, average=True): + """ + Reduce the values in the dictionary from all processes so that all processes + have the averaged results. Returns a dict with the same fields as + input_dict, after reduction. + + Args: + input_dict (dict): all the values will be reduced + average (bool): whether to do average or sum + """ + world_size = get_world_size() + if world_size < 2: + return input_dict + with torch.no_grad(): + names = [] + values = [] + # sort the keys so that they are consistent across processes + for k in sorted(input_dict.keys()): + names.append(k) + values.append(input_dict[k]) + values = torch.stack(values, dim=0) + dist.all_reduce(values) + if average: + values /= world_size + reduced_dict = {k: v for k, v in zip(names, values)} + return reduced_dict + + +def setup_for_distributed(is_master): + """ + This function disables printing when not in master process + """ + import builtins as __builtin__ + + builtin_print = __builtin__.print + + def print(*args, **kwargs): + force = kwargs.pop("force", False) + if is_master or force: + builtin_print(*args, **kwargs) + + __builtin__.print = print + + +def is_dist_avail_and_initialized(): + if not dist.is_available(): + return False + if not dist.is_initialized(): + return False + return True + + +def get_world_size(): + if not is_dist_avail_and_initialized(): + return 1 + return dist.get_world_size() + + +def get_rank(): + if not is_dist_avail_and_initialized(): + return 0 + return dist.get_rank() + + +def is_main_process(): + return get_rank() == 0 + + +def save_on_master(*args, **kwargs): + if is_main_process(): + torch.save(*args, **kwargs) + + +def init_distributed_mode(args): + if "RANK" in os.environ and "WORLD_SIZE" in os.environ: + args.rank = int(os.environ["RANK"]) + args.world_size = int(os.environ["WORLD_SIZE"]) + args.gpu = int(os.environ["LOCAL_RANK"]) + elif "SLURM_PROCID" in os.environ: + args.rank = int(os.environ["SLURM_PROCID"]) + args.gpu = args.rank % torch.cuda.device_count() + else: + print("Not using distributed mode") + args.distributed = False + return + + args.distributed = True + + torch.cuda.set_device(args.gpu) + args.dist_backend = "nccl" + print("| distributed init (rank {}): {}".format(args.rank, args.dist_url), flush=True) + torch.distributed.init_process_group( + backend=args.dist_backend, + init_method=args.dist_url, + world_size=args.world_size, + rank=args.rank, + ) + torch.distributed.barrier() + setup_for_distributed(args.rank == 0) + + +# -------------------------------------------------------- # +# File operation # +# -------------------------------------------------------- # +def filename(path): + return osp.splitext(osp.basename(path))[0] + + +def mkdir(path): + try: + os.makedirs(path) + except OSError as e: + if e.errno != errno.EEXIST: + raise + + +def read_json(fpath): + with open(fpath, "r") as f: + obj = json.load(f) + return obj + + +def write_json(obj, fpath): + mkdir(osp.dirname(fpath)) + _obj = obj.copy() + for k, v in _obj.items(): + if isinstance(v, np.ndarray): + _obj.pop(k) + with open(fpath, "w") as f: + json.dump(_obj, f, indent=4, separators=(",", ": ")) + + +def symlink(src, dst, overwrite=True, **kwargs): + if os.path.lexists(dst) and overwrite: + os.remove(dst) + os.symlink(src, dst, **kwargs) + + +# -------------------------------------------------------- # +# Misc # +# -------------------------------------------------------- # +def create_small_table(small_dict): + """ + Create a small table using the keys of small_dict as headers. This is only + suitable for small dictionaries. + + Args: + small_dict (dict): a result dictionary of only a few items. + + Returns: + str: the table as a string. + """ + keys, values = tuple(zip(*small_dict.items())) + table = tabulate( + [values], + headers=keys, + tablefmt="pipe", + floatfmt=".3f", + stralign="center", + numalign="center", + ) + return table + + +def warmup_lr_scheduler(optimizer, warmup_iters, warmup_factor): + def f(x): + if x >= warmup_iters: + return 1 + alpha = float(x) / warmup_iters + return warmup_factor * (1 - alpha) + alpha + + return torch.optim.lr_scheduler.LambdaLR(optimizer, f) + + +def resume_from_ckpt(ckpt_path, model, optimizer=None, lr_scheduler=None): + ckpt = torch.load(ckpt_path) + model.load_state_dict(ckpt["model"], strict=False) + if optimizer is not None: + optimizer.load_state_dict(ckpt["optimizer"]) + if lr_scheduler is not None: + lr_scheduler.load_state_dict(ckpt["lr_scheduler"]) + print(f"loaded checkpoint {ckpt_path}") + print(f"model was trained for {ckpt['epoch']} epochs") + return ckpt["epoch"] + + +def set_random_seed(seed): + torch.manual_seed(seed) + torch.cuda.manual_seed(seed) + torch.cuda.manual_seed_all(seed) + torch.backends.cudnn.benchmark = False + torch.backends.cudnn.deterministic = True + random.seed(seed) + np.random.seed(seed) + os.environ["PYTHONHASHSEED"] = str(seed) diff --git a/coat-pvtv2-b2/vis/results.json b/coat-pvtv2-b2/vis/results.json new file mode 100644 index 0000000..e254e6f --- /dev/null +++ b/coat-pvtv2-b2/vis/results.json @@ -0,0 +1,25115 @@ +{ + "image_root": "/home/logzhan/datasets/CUHK-SYSU/Image/SSM", + "results": [ + { + "query_img": "s15132.jpg", + "query_roi": [ + 259.0, + 227.0, + 333.0, + 444.0 + ], + "query_gt": [ + { + "img": "s15130.jpg", + "roi": [ + 657.0, + 94.0, + 776.0, + 446.0 + ] + } + ], + "gallery": [ + { + "img": "s15093.jpg", + "roi": [ + 456.55987548828125, + 155.30093383789062, + 535.3646850585938, + 421.9245910644531, + 0.9996353387832642 + ], + "score": 1.0223350524902344, + "correct": 0 + }, + { + "img": "s15130.jpg", + "roi": [ + 230.93780517578125, + 150.7845916748047, + 308.59222412109375, + 432.7665710449219, + 0.9734180569648743 + ], + "score": 0.935034990310669, + "correct": 0 + }, + { + "img": "s15130.jpg", + "roi": [ + 516.515380859375, + 207.7164306640625, + 576.7314453125, + 394.07232666015625, + 0.9987201690673828 + ], + "score": 0.8768134117126465, + "correct": 0 + }, + { + "img": "s15130.jpg", + "roi": [ + 648.7044677734375, + 93.65948486328125, + 776.986083984375, + 447.05316162109375, + 0.9995324611663818 + ], + "score": 0.8140219449996948, + "correct": 1 + }, + { + "img": "s15093.jpg", + "roi": [ + 25.249862670898438, + 139.9752655029297, + 124.25250244140625, + 444.7110290527344, + 0.9999048709869385 + ], + "score": 0.8068479895591736, + "correct": 0 + }, + { + "img": "s15093.jpg", + "roi": [ + 600.0157470703125, + 155.8185577392578, + 682.571044921875, + 443.2160949707031, + 0.9975589513778687 + ], + "score": 0.7965628504753113, + "correct": 0 + }, + { + "img": "s14165.jpg", + "roi": [ + 67.03084564208984, + 146.54043579101562, + 99.47531127929688, + 229.32200622558594, + 0.9995172023773193 + ], + "score": 0.7829650044441223, + "correct": 0 + }, + { + "img": "s14684.jpg", + "roi": [ + 2.622648239135742, + 136.03656005859375, + 71.93844604492188, + 342.3094177246094, + 0.9930520057678223 + ], + "score": 0.7707449197769165, + "correct": 0 + }, + { + "img": "s15093.jpg", + "roi": [ + 537.7557373046875, + 141.30532836914062, + 625.9442138671875, + 430.2325134277344, + 0.9876335859298706 + ], + "score": 0.7140703201293945, + "correct": 0 + }, + { + "img": "s16022.jpg", + "roi": [ + 589.03076171875, + 139.13873291015625, + 678.11474609375, + 401.57147216796875, + 0.9956691265106201 + ], + "score": 0.7063974142074585, + "correct": 0 + } + ] + }, + { + "query_img": "s14965.jpg", + "query_roi": [ + 539.0, + 176.0, + 594.0, + 372.0 + ], + "query_gt": [ + { + "img": "s14964.jpg", + "roi": [ + 656.0, + 158.0, + 745.0, + 383.0 + ] + } + ], + "gallery": [ + { + "img": "s14964.jpg", + "roi": [ + 22.353736877441406, + 153.79806518554688, + 99.88859558105469, + 407.4570007324219, + 0.947150707244873 + ], + "score": 1.1243432760238647, + "correct": 0 + }, + { + "img": "s14964.jpg", + "roi": [ + 132.35842895507812, + 124.44600677490234, + 215.8330535888672, + 381.09228515625, + 0.9110243320465088 + ], + "score": 0.928485631942749, + "correct": 0 + }, + { + "img": "s4948.jpg", + "roi": [ + 89.21560668945312, + 202.8155975341797, + 109.97036743164062, + 271.1361999511719, + 0.9962890148162842 + ], + "score": 0.9029688239097595, + "correct": 0 + }, + { + "img": "s10864.jpg", + "roi": [ + 236.7283935546875, + 26.40435791015625, + 268.29833984375, + 120.08636474609375, + 0.9954050779342651 + ], + "score": 0.8502347469329834, + "correct": 0 + }, + { + "img": "s988.jpg", + "roi": [ + 6.219538688659668, + 186.3540496826172, + 49.828819274902344, + 332.783447265625, + 0.9837640523910522 + ], + "score": 0.8471819758415222, + "correct": 0 + }, + { + "img": "s14964.jpg", + "roi": [ + 310.4660339355469, + 154.74986267089844, + 376.72808837890625, + 387.36529541015625, + 0.9994279742240906 + ], + "score": 0.8398019671440125, + "correct": 0 + }, + { + "img": "s12231.jpg", + "roi": [ + 189.42340087890625, + 175.29669189453125, + 211.10211181640625, + 238.6693878173828, + 0.9943256974220276 + ], + "score": 0.8369609117507935, + "correct": 0 + }, + { + "img": "s10966.jpg", + "roi": [ + 117.23907470703125, + 283.23309326171875, + 231.6715850830078, + 607.8629760742188, + 0.9991718530654907 + ], + "score": 0.8361666202545166, + "correct": 0 + }, + { + "img": "s14964.jpg", + "roi": [ + 552.4982299804688, + 114.50923919677734, + 654.7014770507812, + 400.094970703125, + 0.8743614554405212 + ], + "score": 0.8221628665924072, + "correct": 0 + }, + { + "img": "s6009.jpg", + "roi": [ + 2.0395522117614746, + 233.00067138671875, + 37.82389831542969, + 356.2178955078125, + 0.9981198906898499 + ], + "score": 0.8161367177963257, + "correct": 0 + } + ] + }, + { + "query_img": "s13147.jpg", + "query_roi": [ + 600.0, + 91.0, + 673.0, + 390.0 + ], + "query_gt": [ + { + "img": "s13145.jpg", + "roi": [ + 457.0, + 108.0, + 515.0, + 288.0 + ] + }, + { + "img": "s13146.jpg", + "roi": [ + 488.0, + 104.0, + 553.0, + 337.0 + ] + } + ], + "gallery": [ + { + "img": "s13145.jpg", + "roi": [ + 669.4720458984375, + 95.10450744628906, + 759.6962890625, + 386.6672058105469, + 0.9991679191589355 + ], + "score": 1.4502798318862915, + "correct": 0 + }, + { + "img": "s13146.jpg", + "roi": [ + 624.2225341796875, + 98.40113067626953, + 684.2872924804688, + 304.9255065917969, + 0.9988227486610413 + ], + "score": 1.3541889190673828, + "correct": 0 + }, + { + "img": "s13146.jpg", + "roi": [ + 600.8760375976562, + 113.42558288574219, + 636.1805419921875, + 232.02577209472656, + 0.9984629154205322 + ], + "score": 1.2472649812698364, + "correct": 0 + }, + { + "img": "s13146.jpg", + "roi": [ + 490.25103759765625, + 106.55311584472656, + 562.2238159179688, + 332.5834655761719, + 0.9991725087165833 + ], + "score": 1.246073603630066, + "correct": 1 + }, + { + "img": "s13145.jpg", + "roi": [ + 620.829345703125, + 98.40647888183594, + 678.985595703125, + 305.879150390625, + 0.9995388984680176 + ], + "score": 1.2438678741455078, + "correct": 0 + }, + { + "img": "s13146.jpg", + "roi": [ + 374.3203430175781, + 102.17296600341797, + 423.6383056640625, + 255.72096252441406, + 0.9992252588272095 + ], + "score": 1.2291555404663086, + "correct": 0 + }, + { + "img": "s13145.jpg", + "roi": [ + 121.1705322265625, + 95.60099792480469, + 178.5600128173828, + 334.6331481933594, + 0.9991819262504578 + ], + "score": 1.209580421447754, + "correct": 0 + }, + { + "img": "s13145.jpg", + "roi": [ + 460.7118835449219, + 107.73612213134766, + 516.3201904296875, + 291.1056823730469, + 0.9996552467346191 + ], + "score": 1.180983543395996, + "correct": 1 + }, + { + "img": "s13146.jpg", + "roi": [ + 23.149948120117188, + 101.51560974121094, + 114.17250061035156, + 382.4692687988281, + 0.9997557997703552 + ], + "score": 1.1362483501434326, + "correct": 0 + }, + { + "img": "s13146.jpg", + "roi": [ + 114.03530883789062, + 94.30834197998047, + 172.73153686523438, + 325.9884948730469, + 0.9971311092376709 + ], + "score": 1.0931349992752075, + "correct": 0 + } + ] + }, + { + "query_img": "s17560.jpg", + "query_roi": [ + 167.0, + 106.0, + 252.0, + 448.0 + ], + "query_gt": [ + { + "img": "s17551.jpg", + "roi": [ + 351.0, + 84.0, + 411.0, + 339.0 + ] + }, + { + "img": "s17552.jpg", + "roi": [ + 369.0, + 71.0, + 448.0, + 347.0 + ] + } + ], + "gallery": [ + { + "img": "s17487.jpg", + "roi": [ + 510.966552734375, + 101.56269836425781, + 558.158203125, + 263.9617919921875, + 0.9988721013069153 + ], + "score": 0.9359509348869324, + "correct": 0 + }, + { + "img": "s13244.jpg", + "roi": [ + 153.99566650390625, + 14.798651695251465, + 290.7309265136719, + 449.2135314941406, + 0.9999169111251831 + ], + "score": 0.9098742008209229, + "correct": 0 + }, + { + "img": "s15241.jpg", + "roi": [ + 470.17510986328125, + 122.98381042480469, + 522.9397583007812, + 285.2103576660156, + 0.9990893602371216 + ], + "score": 0.8604332804679871, + "correct": 0 + }, + { + "img": "s17851.jpg", + "roi": [ + 422.9815368652344, + 50.777587890625, + 496.8824462890625, + 358.9709777832031, + 0.9775331616401672 + ], + "score": 0.8445513248443604, + "correct": 0 + }, + { + "img": "s17851.jpg", + "roi": [ + 193.71170043945312, + 97.050048828125, + 266.12213134765625, + 398.61187744140625, + 0.9994860887527466 + ], + "score": 0.8313952088356018, + "correct": 0 + }, + { + "img": "s17551.jpg", + "roi": [ + 729.0648803710938, + 61.25234603881836, + 781.1466674804688, + 248.38571166992188, + 0.9985706806182861 + ], + "score": 0.8243547677993774, + "correct": 0 + }, + { + "img": "s17487.jpg", + "roi": [ + 609.2725219726562, + 60.94861602783203, + 643.0401000976562, + 164.99630737304688, + 0.9919702410697937 + ], + "score": 0.8147932887077332, + "correct": 0 + }, + { + "img": "s9899.jpg", + "roi": [ + 516.1763916015625, + 190.12503051757812, + 548.3582763671875, + 298.450927734375, + 0.9941820502281189 + ], + "score": 0.8035545349121094, + "correct": 0 + }, + { + "img": "s17487.jpg", + "roi": [ + 665.954345703125, + 68.24248504638672, + 703.1196899414062, + 175.19241333007812, + 0.9965568780899048 + ], + "score": 0.7817418575286865, + "correct": 0 + }, + { + "img": "s17851.jpg", + "roi": [ + 341.5116271972656, + 71.72848510742188, + 407.5977783203125, + 359.8624572753906, + 0.9845864772796631 + ], + "score": 0.7677190899848938, + "correct": 0 + } + ] + }, + { + "query_img": "s15541.jpg", + "query_roi": [ + 347.0, + 126.0, + 435.0, + 436.0 + ], + "query_gt": [ + { + "img": "s15532.jpg", + "roi": [ + 536.0, + 143.0, + 592.0, + 339.0 + ] + }, + { + "img": "s15539.jpg", + "roi": [ + 286.0, + 156.0, + 332.0, + 315.0 + ] + } + ], + "gallery": [ + { + "img": "s14324.jpg", + "roi": [ + 281.3095397949219, + 229.69082641601562, + 326.8201599121094, + 386.4913330078125, + 0.99826979637146 + ], + "score": 1.1149301528930664, + "correct": 0 + }, + { + "img": "s15539.jpg", + "roi": [ + 286.61663818359375, + 160.5732421875, + 330.8807067871094, + 305.2944030761719, + 0.9983651041984558 + ], + "score": 1.0901598930358887, + "correct": 1 + }, + { + "img": "s15532.jpg", + "roi": [ + 529.8255615234375, + 144.19320678710938, + 588.5693969726562, + 342.6072692871094, + 0.999606192111969 + ], + "score": 1.073681116104126, + "correct": 1 + }, + { + "img": "s15539.jpg", + "roi": [ + 394.5596923828125, + 162.39108276367188, + 436.2995910644531, + 309.7515869140625, + 0.9749543070793152 + ], + "score": 0.9593914747238159, + "correct": 0 + }, + { + "img": "s12026.jpg", + "roi": [ + 22.52157974243164, + 296.4966735839844, + 60.8913459777832, + 406.238525390625, + 0.9995187520980835 + ], + "score": 0.8931758403778076, + "correct": 0 + }, + { + "img": "s13625.jpg", + "roi": [ + 241.7381591796875, + 106.62454223632812, + 334.34246826171875, + 431.09295654296875, + 0.9992237091064453 + ], + "score": 0.8757761716842651, + "correct": 0 + }, + { + "img": "s15571.jpg", + "roi": [ + 437.6371765136719, + 76.59469604492188, + 537.3268432617188, + 397.2134094238281, + 0.9998875856399536 + ], + "score": 0.8740983009338379, + "correct": 0 + }, + { + "img": "s2177.jpg", + "roi": [ + 4.66741943359375, + 136.90689086914062, + 54.82685089111328, + 301.25457763671875, + 0.9991642236709595 + ], + "score": 0.82342529296875, + "correct": 0 + }, + { + "img": "s2651.jpg", + "roi": [ + 130.24966430664062, + 162.7071990966797, + 176.37351989746094, + 304.62701416015625, + 0.9985230565071106 + ], + "score": 0.803692102432251, + "correct": 0 + }, + { + "img": "s15571.jpg", + "roi": [ + 344.15338134765625, + 138.44200134277344, + 424.46185302734375, + 386.3835754394531, + 0.9945397973060608 + ], + "score": 0.7682341933250427, + "correct": 0 + } + ] + }, + { + "query_img": "s14871.jpg", + "query_roi": [ + 535.0, + 54.0, + 621.0, + 307.0 + ], + "query_gt": [ + { + "img": "s14869.jpg", + "roi": [ + 380.0, + 94.0, + 449.0, + 368.0 + ] + } + ], + "gallery": [ + { + "img": "s17440.jpg", + "roi": [ + 34.043487548828125, + 209.88893127441406, + 95.95402526855469, + 375.44598388671875, + 0.9675096869468689 + ], + "score": 1.0962071418762207, + "correct": 0 + }, + { + "img": "s17440.jpg", + "roi": [ + 283.20416259765625, + 85.07064056396484, + 320.2061767578125, + 214.8308563232422, + 0.9830042123794556 + ], + "score": 1.0884050130844116, + "correct": 0 + }, + { + "img": "s17440.jpg", + "roi": [ + 105.22002410888672, + 138.38621520996094, + 145.52865600585938, + 272.556884765625, + 0.8547993898391724 + ], + "score": 0.9349413514137268, + "correct": 0 + }, + { + "img": "s17440.jpg", + "roi": [ + 157.56314086914062, + 49.5254020690918, + 199.18675231933594, + 187.2996826171875, + 0.9857463836669922 + ], + "score": 0.8777425289154053, + "correct": 0 + }, + { + "img": "s14869.jpg", + "roi": [ + 363.73211669921875, + 93.2157974243164, + 450.34716796875, + 363.8781433105469, + 0.9733731746673584 + ], + "score": 0.8712714314460754, + "correct": 1 + }, + { + "img": "s17440.jpg", + "roi": [ + 2.204458713531494, + 81.5881118774414, + 32.3538932800293, + 207.2830047607422, + 0.9687603116035461 + ], + "score": 0.8493637442588806, + "correct": 0 + }, + { + "img": "s17440.jpg", + "roi": [ + 123.84636688232422, + 89.77347564697266, + 168.50970458984375, + 245.66041564941406, + 0.9079391956329346 + ], + "score": 0.8484689593315125, + "correct": 0 + }, + { + "img": "s17440.jpg", + "roi": [ + 239.7179412841797, + 105.80091094970703, + 274.69879150390625, + 219.69468688964844, + 0.9817308187484741 + ], + "score": 0.8094549775123596, + "correct": 0 + }, + { + "img": "s7983.jpg", + "roi": [ + 497.3632507324219, + 68.0597152709961, + 515.1779174804688, + 123.87452697753906, + 0.9813886880874634 + ], + "score": 0.8061559200286865, + "correct": 0 + }, + { + "img": "s17440.jpg", + "roi": [ + 307.351806640625, + 73.99714660644531, + 347.6021423339844, + 219.21310424804688, + 0.8516440391540527 + ], + "score": 0.7939016222953796, + "correct": 0 + } + ] + }, + { + "query_img": "s15456.jpg", + "query_roi": [ + 439.0, + 161.0, + 509.0, + 342.0 + ], + "query_gt": [ + { + "img": "s15455.jpg", + "roi": [ + 295.0, + 100.0, + 398.0, + 407.0 + ] + } + ], + "gallery": [ + { + "img": "s4728.jpg", + "roi": [ + 530.0551147460938, + 243.43508911132812, + 602.6578979492188, + 448.79388427734375, + 0.9994044303894043 + ], + "score": 0.9383701682090759, + "correct": 0 + }, + { + "img": "s11194.jpg", + "roi": [ + 583.9673461914062, + 178.11952209472656, + 606.9642333984375, + 240.9362335205078, + 0.9993306398391724 + ], + "score": 0.8349502086639404, + "correct": 0 + }, + { + "img": "s17682.jpg", + "roi": [ + 517.4361572265625, + 155.62921142578125, + 609.1338500976562, + 389.3529968261719, + 0.9944071769714355 + ], + "score": 0.7984282970428467, + "correct": 0 + }, + { + "img": "s4187.jpg", + "roi": [ + 690.6283569335938, + 258.88739013671875, + 747.618408203125, + 401.34002685546875, + 0.9950975775718689 + ], + "score": 0.7978124022483826, + "correct": 0 + }, + { + "img": "s7671.jpg", + "roi": [ + 60.127418518066406, + 153.46095275878906, + 92.65070343017578, + 239.1244659423828, + 0.998293936252594 + ], + "score": 0.7793898582458496, + "correct": 0 + }, + { + "img": "s9290.jpg", + "roi": [ + 299.76837158203125, + 80.34442901611328, + 320.1968688964844, + 143.33689880371094, + 0.9967554211616516 + ], + "score": 0.7633935213088989, + "correct": 0 + }, + { + "img": "s13731.jpg", + "roi": [ + 521.9480590820312, + 91.94194793701172, + 614.714111328125, + 388.5273132324219, + 0.999647855758667 + ], + "score": 0.7105756402015686, + "correct": 0 + }, + { + "img": "s12025.jpg", + "roi": [ + 145.4176025390625, + 271.8869323730469, + 169.70921325683594, + 345.68121337890625, + 0.9707263112068176 + ], + "score": 0.6905021071434021, + "correct": 0 + }, + { + "img": "s13344.jpg", + "roi": [ + 537.040283203125, + 110.23429107666016, + 576.6165161132812, + 256.27972412109375, + 0.9940418601036072 + ], + "score": 0.6904126405715942, + "correct": 0 + }, + { + "img": "s11060.jpg", + "roi": [ + 172.697998046875, + 207.30047607421875, + 244.76336669921875, + 415.7237854003906, + 0.9998086094856262 + ], + "score": 0.6697157025337219, + "correct": 0 + } + ] + }, + { + "query_img": "s17148.jpg", + "query_roi": [ + 386.0, + 204.0, + 416.0, + 285.0 + ], + "query_gt": [ + { + "img": "s17149.jpg", + "roi": [ + 282.0, + 75.0, + 420.0, + 443.0 + ] + }, + { + "img": "s17150.jpg", + "roi": [ + 296.0, + 67.0, + 437.0, + 445.0 + ] + }, + { + "img": "s17151.jpg", + "roi": [ + 291.0, + 71.0, + 430.0, + 443.0 + ] + } + ], + "gallery": [ + { + "img": "s17150.jpg", + "roi": [ + 196.7296905517578, + 97.1121826171875, + 298.4324035644531, + 430.9096374511719, + 0.9983444213867188 + ], + "score": 0.8365045189857483, + "correct": 0 + }, + { + "img": "s17149.jpg", + "roi": [ + 202.0135040283203, + 94.10816192626953, + 289.29962158203125, + 419.5400695800781, + 0.999617338180542 + ], + "score": 0.834382951259613, + "correct": 0 + }, + { + "img": "s17151.jpg", + "roi": [ + 189.1184844970703, + 80.09745025634766, + 273.6923828125, + 429.2365417480469, + 0.9968966245651245 + ], + "score": 0.7909820079803467, + "correct": 0 + }, + { + "img": "s14461.jpg", + "roi": [ + 474.140380859375, + 138.44705200195312, + 546.3875122070312, + 355.360107421875, + 0.9988975524902344 + ], + "score": 0.764298141002655, + "correct": 0 + }, + { + "img": "s5460.jpg", + "roi": [ + 387.12640380859375, + 151.39169311523438, + 412.67596435546875, + 244.2161865234375, + 0.951043426990509 + ], + "score": 0.6954435110092163, + "correct": 0 + }, + { + "img": "s7909.jpg", + "roi": [ + 772.65966796875, + 263.9747619628906, + 794.3148803710938, + 330.0005187988281, + 0.9144946336746216 + ], + "score": 0.6902816295623779, + "correct": 0 + }, + { + "img": "s4687.jpg", + "roi": [ + 763.4081420898438, + 377.1557312011719, + 775.8969116210938, + 412.56280517578125, + 0.92542964220047 + ], + "score": 0.682373046875, + "correct": 0 + }, + { + "img": "s17149.jpg", + "roi": [ + 305.365478515625, + 74.47525024414062, + 413.6381530761719, + 437.2850036621094, + 0.999024510383606 + ], + "score": 0.671925961971283, + "correct": 1 + }, + { + "img": "s2071.jpg", + "roi": [ + 319.206787109375, + 270.4984436035156, + 393.20233154296875, + 468.529541015625, + 0.9981409311294556 + ], + "score": 0.6520473957061768, + "correct": 0 + }, + { + "img": "s16755.jpg", + "roi": [ + 232.31094360351562, + 110.34370422363281, + 326.6426696777344, + 414.67822265625, + 0.9994449019432068 + ], + "score": 0.6460908055305481, + "correct": 0 + } + ] + }, + { + "query_img": "s14832.jpg", + "query_roi": [ + 296.0, + 154.0, + 369.0, + 384.0 + ], + "query_gt": [ + { + "img": "s14833.jpg", + "roi": [ + 65.0, + 130.0, + 148.0, + 395.0 + ] + } + ], + "gallery": [ + { + "img": "s14833.jpg", + "roi": [ + 537.4506225585938, + 167.09735107421875, + 621.3147583007812, + 376.5055847167969, + 0.9971910119056702 + ], + "score": 1.5512616634368896, + "correct": 0 + }, + { + "img": "s14833.jpg", + "roi": [ + 297.6108703613281, + 141.1139373779297, + 376.13104248046875, + 366.23040771484375, + 0.9978596568107605 + ], + "score": 1.4558391571044922, + "correct": 0 + }, + { + "img": "s14833.jpg", + "roi": [ + 64.71894073486328, + 123.0371322631836, + 149.39389038085938, + 397.7843933105469, + 0.9967413544654846 + ], + "score": 1.3855351209640503, + "correct": 1 + }, + { + "img": "s8704.jpg", + "roi": [ + 200.19198608398438, + 97.6937255859375, + 393.27294921875, + 647.0294189453125, + 0.9993981122970581 + ], + "score": 0.7203459143638611, + "correct": 0 + }, + { + "img": "s15690.jpg", + "roi": [ + 181.07623291015625, + 140.80227661132812, + 257.95880126953125, + 346.95184326171875, + 0.999133288860321 + ], + "score": 0.7112183570861816, + "correct": 0 + }, + { + "img": "s14438.jpg", + "roi": [ + 160.2910919189453, + 117.21052551269531, + 214.45701599121094, + 314.53411865234375, + 0.9874978065490723 + ], + "score": 0.703262209892273, + "correct": 0 + }, + { + "img": "s5935.jpg", + "roi": [ + 372.4100341796875, + 166.68630981445312, + 395.0778503417969, + 246.53533935546875, + 0.9615330696105957 + ], + "score": 0.6816702485084534, + "correct": 0 + }, + { + "img": "s8704.jpg", + "roi": [ + 491.1097412109375, + 0.0, + 598.643310546875, + 451.9005126953125, + 0.9990997314453125 + ], + "score": 0.6768549680709839, + "correct": 0 + }, + { + "img": "s886.jpg", + "roi": [ + 106.7783432006836, + 124.3358154296875, + 137.83175659179688, + 219.6239471435547, + 0.9959850311279297 + ], + "score": 0.6648814678192139, + "correct": 0 + }, + { + "img": "s11031.jpg", + "roi": [ + 114.54595184326172, + 245.72193908691406, + 143.51678466796875, + 332.3980407714844, + 0.9970210194587708 + ], + "score": 0.6037603616714478, + "correct": 0 + } + ] + }, + { + "query_img": "s15382.jpg", + "query_roi": [ + 393.0, + 161.0, + 458.0, + 336.0 + ], + "query_gt": [ + { + "img": "s15383.jpg", + "roi": [ + 423.0, + 166.0, + 491.0, + 348.0 + ] + }, + { + "img": "s15384.jpg", + "roi": [ + 498.0, + 158.0, + 546.0, + 348.0 + ] + } + ], + "gallery": [ + { + "img": "s15384.jpg", + "roi": [ + 187.1673583984375, + 190.01429748535156, + 256.772705078125, + 424.3218994140625, + 0.8946638703346252 + ], + "score": 1.246573805809021, + "correct": 0 + }, + { + "img": "s15384.jpg", + "roi": [ + 492.71527099609375, + 193.34555053710938, + 541.3864135742188, + 357.3326721191406, + 0.9833071231842041 + ], + "score": 1.179146409034729, + "correct": 1 + }, + { + "img": "s15383.jpg", + "roi": [ + 493.9229431152344, + 193.85528564453125, + 566.515625, + 433.2369384765625, + 0.9734386801719666 + ], + "score": 1.1617050170898438, + "correct": 0 + }, + { + "img": "s15384.jpg", + "roi": [ + 522.4470825195312, + 180.13388061523438, + 599.265869140625, + 419.8018493652344, + 0.9588832855224609 + ], + "score": 1.1607829332351685, + "correct": 0 + }, + { + "img": "s15365.jpg", + "roi": [ + 147.22593688964844, + 126.94479370117188, + 211.57054138183594, + 324.8927917480469, + 0.9992121458053589 + ], + "score": 1.1031241416931152, + "correct": 0 + }, + { + "img": "s15383.jpg", + "roi": [ + 577.6851806640625, + 131.10610961914062, + 609.5286865234375, + 226.876953125, + 0.9844337701797485 + ], + "score": 1.0621510744094849, + "correct": 0 + }, + { + "img": "s15383.jpg", + "roi": [ + 72.45431518554688, + 138.32968139648438, + 113.6253662109375, + 284.89691162109375, + 0.9519617557525635 + ], + "score": 1.061326026916504, + "correct": 0 + }, + { + "img": "s15384.jpg", + "roi": [ + 646.3142700195312, + 181.7488250732422, + 682.81494140625, + 304.8045654296875, + 0.929655909538269 + ], + "score": 1.050406813621521, + "correct": 0 + }, + { + "img": "s15384.jpg", + "roi": [ + 151.83363342285156, + 198.37081909179688, + 224.3315887451172, + 421.3385925292969, + 0.8683437705039978 + ], + "score": 1.0246810913085938, + "correct": 0 + }, + { + "img": "s15384.jpg", + "roi": [ + 230.904296875, + 139.17112731933594, + 262.860595703125, + 244.45553588867188, + 0.8865917325019836 + ], + "score": 1.0100512504577637, + "correct": 0 + } + ] + }, + { + "query_img": "s12625.jpg", + "query_roi": [ + 406.0, + 207.0, + 458.0, + 367.0 + ], + "query_gt": [ + { + "img": "s12624.jpg", + "roi": [ + 439.0, + 85.0, + 510.0, + 343.0 + ] + } + ], + "gallery": [ + { + "img": "s16034.jpg", + "roi": [ + 352.44537353515625, + 167.5994873046875, + 410.1647033691406, + 337.3066101074219, + 0.99891197681427 + ], + "score": 1.1878376007080078, + "correct": 0 + }, + { + "img": "s13076.jpg", + "roi": [ + 415.9169921875, + 227.0140838623047, + 465.3236999511719, + 368.8934631347656, + 0.9997208714485168 + ], + "score": 1.1587145328521729, + "correct": 0 + }, + { + "img": "s13927.jpg", + "roi": [ + 428.6656188964844, + 55.852508544921875, + 531.9560546875, + 363.4364929199219, + 0.9933174848556519 + ], + "score": 1.1355774402618408, + "correct": 0 + }, + { + "img": "s12624.jpg", + "roi": [ + 435.2496032714844, + 86.41104125976562, + 518.9461669921875, + 340.54815673828125, + 0.9994675517082214 + ], + "score": 1.1285686492919922, + "correct": 1 + }, + { + "img": "s12590.jpg", + "roi": [ + 179.67721557617188, + 92.02616119384766, + 236.177978515625, + 266.38427734375, + 0.9948765635490417 + ], + "score": 1.0988826751708984, + "correct": 0 + }, + { + "img": "s13076.jpg", + "roi": [ + 350.92474365234375, + 225.4762420654297, + 403.1103210449219, + 369.7916564941406, + 0.9996458292007446 + ], + "score": 1.0892783403396606, + "correct": 0 + }, + { + "img": "s12590.jpg", + "roi": [ + 374.49822998046875, + 102.4321060180664, + 487.87017822265625, + 432.2066955566406, + 0.9995049238204956 + ], + "score": 1.017155408859253, + "correct": 0 + }, + { + "img": "s13927.jpg", + "roi": [ + 316.4676208496094, + 66.39161682128906, + 407.8084411621094, + 355.3291931152344, + 0.9993174076080322 + ], + "score": 0.9754104018211365, + "correct": 0 + }, + { + "img": "s6883.jpg", + "roi": [ + 334.96484375, + 282.7945251464844, + 372.0140380859375, + 386.4571533203125, + 0.9990369081497192 + ], + "score": 0.9167846441268921, + "correct": 0 + }, + { + "img": "s16034.jpg", + "roi": [ + 420.7881164550781, + 173.58934020996094, + 473.71929931640625, + 342.50958251953125, + 0.9997202754020691 + ], + "score": 0.9024443030357361, + "correct": 0 + } + ] + }, + { + "query_img": "s13387.jpg", + "query_roi": [ + 340.0, + 186.0, + 397.0, + 364.0 + ], + "query_gt": [ + { + "img": "s13388.jpg", + "roi": [ + 567.0, + 73.0, + 686.0, + 440.0 + ] + }, + { + "img": "s13389.jpg", + "roi": [ + 401.0, + 66.0, + 520.0, + 440.0 + ] + }, + { + "img": "s13390.jpg", + "roi": [ + 118.0, + 47.0, + 241.0, + 437.0 + ] + }, + { + "img": "s13391.jpg", + "roi": [ + 10.0, + 100.0, + 103.0, + 407.0 + ] + } + ], + "gallery": [ + { + "img": "s13388.jpg", + "roi": [ + 85.78314208984375, + 82.12303161621094, + 208.96629333496094, + 444.3425598144531, + 0.9995410442352295 + ], + "score": 1.393494963645935, + "correct": 0 + }, + { + "img": "s13388.jpg", + "roi": [ + 255.58628845214844, + 91.98076629638672, + 370.3885498046875, + 423.86993408203125, + 0.9990527033805847 + ], + "score": 1.3232665061950684, + "correct": 0 + }, + { + "img": "s13388.jpg", + "roi": [ + 564.2205810546875, + 86.3843002319336, + 692.874267578125, + 442.3490905761719, + 0.9993465542793274 + ], + "score": 1.314576506614685, + "correct": 1 + }, + { + "img": "s13390.jpg", + "roi": [ + 120.20340728759766, + 53.40528106689453, + 243.9981689453125, + 438.27923583984375, + 0.99891197681427 + ], + "score": 1.3087303638458252, + "correct": 1 + }, + { + "img": "s13389.jpg", + "roi": [ + 397.2621154785156, + 66.2558822631836, + 535.410888671875, + 440.138671875, + 0.9992358684539795 + ], + "score": 1.204243779182434, + "correct": 1 + }, + { + "img": "s13390.jpg", + "roi": [ + 591.5941162109375, + 6.817893028259277, + 752.137451171875, + 447.4788513183594, + 0.9983090162277222 + ], + "score": 1.181488275527954, + "correct": 0 + }, + { + "img": "s13391.jpg", + "roi": [ + 7.661873817443848, + 103.84741973876953, + 113.39311218261719, + 404.86480712890625, + 0.9996315240859985 + ], + "score": 1.1554181575775146, + "correct": 1 + }, + { + "img": "s13389.jpg", + "roi": [ + 254.6466064453125, + 71.14546203613281, + 374.5967712402344, + 432.2022399902344, + 0.9994246959686279 + ], + "score": 1.1333794593811035, + "correct": 0 + }, + { + "img": "s13389.jpg", + "roi": [ + 148.9138946533203, + 64.64227294921875, + 264.0914611816406, + 429.8460693359375, + 0.9980121850967407 + ], + "score": 1.1270660161972046, + "correct": 0 + }, + { + "img": "s13390.jpg", + "roi": [ + 392.1883850097656, + 52.76213073730469, + 536.9879150390625, + 445.7051086425781, + 0.9997773766517639 + ], + "score": 1.0381797552108765, + "correct": 0 + } + ] + }, + { + "query_img": "s13123.jpg", + "query_roi": [ + 323.0, + 17.0, + 459.0, + 444.0 + ], + "query_gt": [ + { + "img": "s13121.jpg", + "roi": [ + 429.0, + 189.0, + 503.0, + 417.0 + ] + }, + { + "img": "s13122.jpg", + "roi": [ + 450.0, + 192.0, + 525.0, + 412.0 + ] + } + ], + "gallery": [ + { + "img": "s13121.jpg", + "roi": [ + 623.5367431640625, + 189.7049560546875, + 686.6547241210938, + 420.6391906738281, + 0.9949482679367065 + ], + "score": 1.2263230085372925, + "correct": 0 + }, + { + "img": "s13122.jpg", + "roi": [ + 613.1993408203125, + 191.41151428222656, + 683.4390258789062, + 438.9781799316406, + 0.9995611310005188 + ], + "score": 1.1521579027175903, + "correct": 0 + }, + { + "img": "s13121.jpg", + "roi": [ + 343.2215881347656, + 195.24935913085938, + 413.3807067871094, + 414.1622314453125, + 0.9977033734321594 + ], + "score": 1.1338551044464111, + "correct": 0 + }, + { + "img": "s12592.jpg", + "roi": [ + 403.95098876953125, + 112.2903823852539, + 490.9590759277344, + 389.029296875, + 0.9996498823165894 + ], + "score": 1.1133370399475098, + "correct": 0 + }, + { + "img": "s13122.jpg", + "roi": [ + 455.0143737792969, + 193.19847106933594, + 522.3242797851562, + 413.53118896484375, + 0.9906159043312073 + ], + "score": 1.1056402921676636, + "correct": 1 + }, + { + "img": "s13121.jpg", + "roi": [ + 430.1695861816406, + 191.043701171875, + 498.8089904785156, + 411.1192626953125, + 0.9993454813957214 + ], + "score": 1.10474693775177, + "correct": 1 + }, + { + "img": "s13122.jpg", + "roi": [ + 537.4832763671875, + 184.36614990234375, + 605.7882690429688, + 430.4413146972656, + 0.9974583983421326 + ], + "score": 1.0422037839889526, + "correct": 0 + }, + { + "img": "s13122.jpg", + "roi": [ + 374.5271911621094, + 195.81887817382812, + 441.72869873046875, + 408.5643005371094, + 0.9984948635101318 + ], + "score": 1.0165539979934692, + "correct": 0 + }, + { + "img": "s12625.jpg", + "roi": [ + 63.568546295166016, + 153.7697296142578, + 136.10626220703125, + 426.7740478515625, + 0.9982593655586243 + ], + "score": 1.0140084028244019, + "correct": 0 + }, + { + "img": "s12592.jpg", + "roi": [ + 333.7386169433594, + 125.72579193115234, + 415.27227783203125, + 375.3708801269531, + 0.9994020462036133 + ], + "score": 1.0131300687789917, + "correct": 0 + } + ] + }, + { + "query_img": "s17595.jpg", + "query_roi": [ + 489.0, + 254.0, + 530.0, + 372.0 + ], + "query_gt": [ + { + "img": "s17594.jpg", + "roi": [ + 520.0, + 226.0, + 559.0, + 366.0 + ] + } + ], + "gallery": [ + { + "img": "s17594.jpg", + "roi": [ + 542.0740356445312, + 230.69647216796875, + 574.2802734375, + 330.44158935546875, + 0.9943395256996155 + ], + "score": 1.0349525213241577, + "correct": 0 + }, + { + "img": "s17594.jpg", + "roi": [ + 515.815185546875, + 227.20233154296875, + 558.8450927734375, + 368.7422180175781, + 0.872129499912262 + ], + "score": 1.0025297403335571, + "correct": 1 + }, + { + "img": "s16287.jpg", + "roi": [ + 104.06133270263672, + 71.58003234863281, + 210.37461853027344, + 440.8123474121094, + 0.9951072931289673 + ], + "score": 0.8857626914978027, + "correct": 0 + }, + { + "img": "s16455.jpg", + "roi": [ + 366.9453430175781, + 187.19110107421875, + 397.8946228027344, + 270.74822998046875, + 0.9994304776191711 + ], + "score": 0.8590039610862732, + "correct": 0 + }, + { + "img": "s14439.jpg", + "roi": [ + 242.32322692871094, + 151.0928497314453, + 302.0834655761719, + 352.7550964355469, + 0.9974154233932495 + ], + "score": 0.836068332195282, + "correct": 0 + }, + { + "img": "s3195.jpg", + "roi": [ + 1.7747116088867188, + 240.63565063476562, + 26.626220703125, + 342.7923278808594, + 0.9902428984642029 + ], + "score": 0.8122687339782715, + "correct": 0 + }, + { + "img": "s17763.jpg", + "roi": [ + 550.3187255859375, + 10.17492961883545, + 607.8939819335938, + 231.64328002929688, + 0.9898731708526611 + ], + "score": 0.8030950427055359, + "correct": 0 + }, + { + "img": "s17763.jpg", + "roi": [ + 736.6112060546875, + 35.55121994018555, + 795.0082397460938, + 278.0287780761719, + 0.9995972514152527 + ], + "score": 0.7547827363014221, + "correct": 0 + }, + { + "img": "s18035.jpg", + "roi": [ + 523.4059448242188, + 32.284603118896484, + 637.9869384765625, + 441.3814392089844, + 0.999036431312561 + ], + "score": 0.7513595223426819, + "correct": 0 + }, + { + "img": "s14014.jpg", + "roi": [ + 598.2982177734375, + 74.59268951416016, + 713.0239868164062, + 434.6017150878906, + 0.9995550513267517 + ], + "score": 0.7330640554428101, + "correct": 0 + } + ] + }, + { + "query_img": "s12981.jpg", + "query_roi": [ + 373.0, + 109.0, + 443.0, + 369.0 + ], + "query_gt": [ + { + "img": "s12982.jpg", + "roi": [ + 430.0, + 57.0, + 538.0, + 443.0 + ] + } + ], + "gallery": [ + { + "img": "s15150.jpg", + "roi": [ + 478.6895751953125, + 110.66600799560547, + 577.570068359375, + 439.69305419921875, + 0.9996863603591919 + ], + "score": 1.0899217128753662, + "correct": 0 + }, + { + "img": "s12982.jpg", + "roi": [ + 424.9353332519531, + 52.500423431396484, + 534.2431640625, + 444.40771484375, + 0.9988276362419128 + ], + "score": 1.0536057949066162, + "correct": 1 + }, + { + "img": "s12950.jpg", + "roi": [ + 746.6804809570312, + 106.69535064697266, + 797.5272827148438, + 323.0982360839844, + 0.9995751976966858 + ], + "score": 1.0028430223464966, + "correct": 0 + }, + { + "img": "s17625.jpg", + "roi": [ + 647.0274047851562, + 87.31097412109375, + 694.9905395507812, + 246.95547485351562, + 0.9997286200523376 + ], + "score": 0.9527697563171387, + "correct": 0 + }, + { + "img": "s17226.jpg", + "roi": [ + 284.24554443359375, + 198.6126708984375, + 351.6756286621094, + 399.52947998046875, + 0.9996782541275024 + ], + "score": 0.9404047131538391, + "correct": 0 + }, + { + "img": "s17107.jpg", + "roi": [ + 512.4152221679688, + 186.69154357910156, + 543.3967895507812, + 277.98583984375, + 0.9981354475021362 + ], + "score": 0.9158095121383667, + "correct": 0 + }, + { + "img": "s17107.jpg", + "roi": [ + 533.0635375976562, + 210.2965545654297, + 588.7640380859375, + 368.8243103027344, + 0.9993553757667542 + ], + "score": 0.9054995775222778, + "correct": 0 + }, + { + "img": "s18145.jpg", + "roi": [ + 392.20294189453125, + 62.4090690612793, + 502.66845703125, + 446.87689208984375, + 0.9983812570571899 + ], + "score": 0.904141902923584, + "correct": 0 + }, + { + "img": "s17226.jpg", + "roi": [ + 172.3377685546875, + 168.76084899902344, + 244.06898498535156, + 396.2293701171875, + 0.9996234178543091 + ], + "score": 0.9041348099708557, + "correct": 0 + }, + { + "img": "s15009.jpg", + "roi": [ + 404.5140686035156, + 112.19782257080078, + 481.1513366699219, + 353.02215576171875, + 0.9997060894966125 + ], + "score": 0.8786070346832275, + "correct": 0 + } + ] + }, + { + "query_img": "s14895.jpg", + "query_roi": [ + 371.0, + 220.0, + 414.0, + 353.0 + ], + "query_gt": [ + { + "img": "s14893.jpg", + "roi": [ + 7.0, + 59.0, + 101.0, + 400.0 + ] + } + ], + "gallery": [ + { + "img": "s15155.jpg", + "roi": [ + 230.75535583496094, + 107.9201889038086, + 275.26397705078125, + 245.19020080566406, + 0.9994691014289856 + ], + "score": 1.0010268688201904, + "correct": 0 + }, + { + "img": "s14893.jpg", + "roi": [ + 8.297160148620605, + 55.19293975830078, + 115.63414764404297, + 404.547119140625, + 0.9996004700660706 + ], + "score": 0.9547045826911926, + "correct": 1 + }, + { + "img": "s13037.jpg", + "roi": [ + 373.4263916015625, + 127.88555908203125, + 433.9698181152344, + 353.25494384765625, + 0.9993009567260742 + ], + "score": 0.9305228590965271, + "correct": 0 + }, + { + "img": "s1676.jpg", + "roi": [ + 438.63177490234375, + 197.9984130859375, + 465.32080078125, + 286.020263671875, + 0.9955418705940247 + ], + "score": 0.8490104079246521, + "correct": 0 + }, + { + "img": "s14893.jpg", + "roi": [ + 180.2596435546875, + 140.2978973388672, + 249.9082794189453, + 362.86212158203125, + 0.9996210336685181 + ], + "score": 0.8192406296730042, + "correct": 0 + }, + { + "img": "s5181.jpg", + "roi": [ + 462.3038330078125, + 184.702392578125, + 483.6717529296875, + 243.9045867919922, + 0.9939479827880859 + ], + "score": 0.804571270942688, + "correct": 0 + }, + { + "img": "s10661.jpg", + "roi": [ + 98.06710052490234, + 239.63815307617188, + 122.87278747558594, + 309.2782897949219, + 0.9979031085968018 + ], + "score": 0.7941653728485107, + "correct": 0 + }, + { + "img": "s16253.jpg", + "roi": [ + 164.78749084472656, + 124.62712860107422, + 246.69471740722656, + 385.8355407714844, + 0.988548755645752 + ], + "score": 0.7866711020469666, + "correct": 0 + }, + { + "img": "s12592.jpg", + "roi": [ + 333.7386169433594, + 125.72579193115234, + 415.27227783203125, + 375.3708801269531, + 0.9994020462036133 + ], + "score": 0.7791293859481812, + "correct": 0 + }, + { + "img": "s6021.jpg", + "roi": [ + 560.454345703125, + 176.11192321777344, + 598.7767944335938, + 389.195556640625, + 0.9294508695602417 + ], + "score": 0.7738856673240662, + "correct": 0 + } + ] + }, + { + "query_img": "s16133.jpg", + "query_roi": [ + 246.0, + 84.0, + 378.0, + 444.0 + ], + "query_gt": [ + { + "img": "s16132.jpg", + "roi": [ + 318.0, + 107.0, + 446.0, + 444.0 + ] + } + ], + "gallery": [ + { + "img": "s16134.jpg", + "roi": [ + 135.53553771972656, + 25.73750877380371, + 366.3419494628906, + 445.1076965332031, + 0.9838340878486633 + ], + "score": 1.6813267469406128, + "correct": 0 + }, + { + "img": "s16132.jpg", + "roi": [ + 320.1101989746094, + 110.29312133789062, + 439.4906921386719, + 434.7121276855469, + 0.9945411086082458 + ], + "score": 1.5989067554473877, + "correct": 1 + }, + { + "img": "s16134.jpg", + "roi": [ + 397.3359680175781, + 47.82691955566406, + 548.4157104492188, + 443.4660949707031, + 0.9997286200523376 + ], + "score": 1.5838303565979004, + "correct": 0 + }, + { + "img": "s16132.jpg", + "roi": [ + 426.0125732421875, + 65.2742919921875, + 547.8276977539062, + 438.76727294921875, + 0.9991002082824707 + ], + "score": 1.442952036857605, + "correct": 0 + }, + { + "img": "s17742.jpg", + "roi": [ + 504.456298828125, + 81.72959899902344, + 639.1553344726562, + 447.8373107910156, + 0.9996614456176758 + ], + "score": 1.150715708732605, + "correct": 0 + }, + { + "img": "s17992.jpg", + "roi": [ + 514.9828491210938, + 76.4034423828125, + 690.5709838867188, + 439.46783447265625, + 0.9985339641571045 + ], + "score": 0.9690221548080444, + "correct": 0 + }, + { + "img": "s16151.jpg", + "roi": [ + 195.68479919433594, + 125.0261001586914, + 269.0655822753906, + 390.4773864746094, + 0.9854574799537659 + ], + "score": 0.9201071858406067, + "correct": 0 + }, + { + "img": "s12891.jpg", + "roi": [ + 364.881591796875, + 129.2678680419922, + 412.56500244140625, + 260.4831848144531, + 0.8383793234825134 + ], + "score": 0.8675609827041626, + "correct": 0 + }, + { + "img": "s12728.jpg", + "roi": [ + 144.2650909423828, + 183.53167724609375, + 190.17138671875, + 334.33056640625, + 0.9840424060821533 + ], + "score": 0.8657059073448181, + "correct": 0 + }, + { + "img": "s12728.jpg", + "roi": [ + 431.9136657714844, + 125.50462341308594, + 542.61767578125, + 434.0140686035156, + 0.9989896416664124 + ], + "score": 0.8385030627250671, + "correct": 0 + } + ] + }, + { + "query_img": "s15080.jpg", + "query_roi": [ + 161.0, + 73.0, + 255.0, + 429.0 + ], + "query_gt": [ + { + "img": "s15074.jpg", + "roi": [ + 230.0, + 129.0, + 297.0, + 362.0 + ] + } + ], + "gallery": [ + { + "img": "s15647.jpg", + "roi": [ + 407.68389892578125, + 135.89755249023438, + 513.7317504882812, + 443.24444580078125, + 0.9997259974479675 + ], + "score": 1.333654522895813, + "correct": 0 + }, + { + "img": "s15074.jpg", + "roi": [ + 233.1181640625, + 130.62646484375, + 301.3164978027344, + 366.35528564453125, + 0.9994977712631226 + ], + "score": 1.3012837171554565, + "correct": 1 + }, + { + "img": "s13288.jpg", + "roi": [ + 363.3431396484375, + 130.79010009765625, + 443.1940612792969, + 385.4004211425781, + 0.9995206594467163 + ], + "score": 0.8582359552383423, + "correct": 0 + }, + { + "img": "s18172.jpg", + "roi": [ + 299.2967224121094, + 219.61122131347656, + 349.96875, + 380.5273742675781, + 0.975095272064209 + ], + "score": 0.8418197631835938, + "correct": 0 + }, + { + "img": "s13288.jpg", + "roi": [ + 270.1180114746094, + 149.16983032226562, + 339.814453125, + 365.8452453613281, + 0.9996838569641113 + ], + "score": 0.827958881855011, + "correct": 0 + }, + { + "img": "s15074.jpg", + "roi": [ + 351.6174621582031, + 16.466371536254883, + 497.3313293457031, + 437.4628601074219, + 0.9999305009841919 + ], + "score": 0.7689841389656067, + "correct": 0 + }, + { + "img": "s16222.jpg", + "roi": [ + 174.10543823242188, + 170.88699340820312, + 204.7238006591797, + 271.9310607910156, + 0.9984061121940613 + ], + "score": 0.7565087676048279, + "correct": 0 + }, + { + "img": "s15792.jpg", + "roi": [ + 70.11172485351562, + 79.48601531982422, + 116.47371673583984, + 256.806884765625, + 0.9553244113922119 + ], + "score": 0.7162702083587646, + "correct": 0 + }, + { + "img": "s12275.jpg", + "roi": [ + 237.77024841308594, + 366.4707946777344, + 275.85906982421875, + 472.9961853027344, + 0.9994418025016785 + ], + "score": 0.6950133442878723, + "correct": 0 + }, + { + "img": "s17165.jpg", + "roi": [ + 510.4203186035156, + 147.61854553222656, + 588.87451171875, + 351.8502502441406, + 0.9961161613464355 + ], + "score": 0.6843273639678955, + "correct": 0 + } + ] + }, + { + "query_img": "s15179.jpg", + "query_roi": [ + 99.0, + 176.0, + 156.0, + 379.0 + ], + "query_gt": [ + { + "img": "s15178.jpg", + "roi": [ + 144.0, + 157.0, + 198.0, + 386.0 + ] + } + ], + "gallery": [ + { + "img": "s15178.jpg", + "roi": [ + 95.8306655883789, + 157.7562713623047, + 159.72476196289062, + 378.2724914550781, + 0.9980699419975281 + ], + "score": 1.7290531396865845, + "correct": 0 + }, + { + "img": "s15178.jpg", + "roi": [ + 143.3463592529297, + 156.18017578125, + 208.2194061279297, + 387.68927001953125, + 0.9864584803581238 + ], + "score": 1.6120989322662354, + "correct": 1 + }, + { + "img": "s15178.jpg", + "roi": [ + 303.8635559082031, + 135.2280731201172, + 367.92938232421875, + 346.49957275390625, + 0.9992715716362 + ], + "score": 1.3625432252883911, + "correct": 0 + }, + { + "img": "s15178.jpg", + "roi": [ + 187.10353088378906, + 155.339599609375, + 256.5229187011719, + 383.79412841796875, + 0.9994390606880188 + ], + "score": 1.3478673696517944, + "correct": 0 + }, + { + "img": "s15178.jpg", + "roi": [ + 369.29168701171875, + 158.18212890625, + 427.9100341796875, + 354.768798828125, + 0.9955877065658569 + ], + "score": 1.2450743913650513, + "correct": 0 + }, + { + "img": "s6148.jpg", + "roi": [ + 454.7093505859375, + 61.2039794921875, + 482.4118347167969, + 149.20567321777344, + 0.9992523789405823 + ], + "score": 0.7913421988487244, + "correct": 0 + }, + { + "img": "s2636.jpg", + "roi": [ + 143.78097534179688, + 139.5286865234375, + 172.8526611328125, + 221.80892944335938, + 0.9960737228393555 + ], + "score": 0.7339680194854736, + "correct": 0 + }, + { + "img": "s12724.jpg", + "roi": [ + 715.9990234375, + 131.76760864257812, + 793.517333984375, + 393.71820068359375, + 0.9900709986686707 + ], + "score": 0.7255069017410278, + "correct": 0 + }, + { + "img": "s12796.jpg", + "roi": [ + 183.29486083984375, + 126.60291290283203, + 267.531005859375, + 373.7296142578125, + 0.9998013377189636 + ], + "score": 0.7223060727119446, + "correct": 0 + }, + { + "img": "s7841.jpg", + "roi": [ + 10.998649597167969, + 24.4908447265625, + 152.04037475585938, + 434.3948974609375, + 0.9985424280166626 + ], + "score": 0.6882542371749878, + "correct": 0 + } + ] + }, + { + "query_img": "s17297.jpg", + "query_roi": [ + 573.0, + 110.0, + 664.0, + 433.0 + ], + "query_gt": [ + { + "img": "s17296.jpg", + "roi": [ + 313.0, + 130.0, + 384.0, + 320.0 + ] + } + ], + "gallery": [ + { + "img": "s17316.jpg", + "roi": [ + 137.8433074951172, + 31.0355281829834, + 269.25555419921875, + 446.2392883300781, + 0.9996181726455688 + ], + "score": 1.138283371925354, + "correct": 0 + }, + { + "img": "s17316.jpg", + "roi": [ + 223.8447723388672, + 74.04840087890625, + 342.6411437988281, + 444.3595275878906, + 0.9962726831436157 + ], + "score": 1.1375482082366943, + "correct": 0 + }, + { + "img": "s14858.jpg", + "roi": [ + 18.970239639282227, + 96.05213165283203, + 89.84001922607422, + 354.8659973144531, + 0.9842846393585205 + ], + "score": 1.065703272819519, + "correct": 0 + }, + { + "img": "s16137.jpg", + "roi": [ + 451.79803466796875, + 131.4732208251953, + 517.9091186523438, + 368.3290100097656, + 0.9942036271095276 + ], + "score": 1.0547645092010498, + "correct": 0 + }, + { + "img": "s17296.jpg", + "roi": [ + 316.7160949707031, + 122.84891510009766, + 382.34814453125, + 320.04693603515625, + 0.9997499585151672 + ], + "score": 0.9855696558952332, + "correct": 1 + }, + { + "img": "s14357.jpg", + "roi": [ + 370.0152893066406, + 147.8928680419922, + 421.7497253417969, + 289.85302734375, + 0.9839932322502136 + ], + "score": 0.980760931968689, + "correct": 0 + }, + { + "img": "s16143.jpg", + "roi": [ + 156.54237365722656, + 273.37548828125, + 202.9280548095703, + 402.29364013671875, + 0.99868243932724 + ], + "score": 0.9583766460418701, + "correct": 0 + }, + { + "img": "s14357.jpg", + "roi": [ + 608.2144775390625, + 76.15364837646484, + 692.3634643554688, + 311.7727355957031, + 0.9994506239891052 + ], + "score": 0.8926810622215271, + "correct": 0 + }, + { + "img": "s14357.jpg", + "roi": [ + 232.1526641845703, + 84.30382537841797, + 299.252685546875, + 278.2232666015625, + 0.9991280436515808 + ], + "score": 0.8925292491912842, + "correct": 0 + }, + { + "img": "s16116.jpg", + "roi": [ + 430.6982727050781, + 49.52320098876953, + 602.0338134765625, + 444.3620910644531, + 0.9993059635162354 + ], + "score": 0.8790212869644165, + "correct": 0 + } + ] + }, + { + "query_img": "s17148.jpg", + "query_roi": [ + 353.0, + 201.0, + 386.0, + 290.0 + ], + "query_gt": [ + { + "img": "s17146.jpg", + "roi": [ + 298.0, + 113.0, + 406.0, + 401.0 + ] + }, + { + "img": "s17147.jpg", + "roi": [ + 306.0, + 90.0, + 417.0, + 387.0 + ] + }, + { + "img": "s17149.jpg", + "roi": [ + 75.0, + 50.0, + 220.0, + 438.0 + ] + }, + { + "img": "s17150.jpg", + "roi": [ + 79.0, + 50.0, + 225.0, + 441.0 + ] + }, + { + "img": "s17151.jpg", + "roi": [ + 64.0, + 50.0, + 209.0, + 438.0 + ] + } + ], + "gallery": [ + { + "img": "s17149.jpg", + "roi": [ + 305.365478515625, + 74.47525024414062, + 413.6381530761719, + 437.2850036621094, + 0.999024510383606 + ], + "score": 1.0089088678359985, + "correct": 0 + }, + { + "img": "s17150.jpg", + "roi": [ + 305.14337158203125, + 72.55179595947266, + 428.8995666503906, + 440.08782958984375, + 0.999349057674408 + ], + "score": 0.9354421496391296, + "correct": 0 + }, + { + "img": "s17151.jpg", + "roi": [ + 82.02531433105469, + 48.23237228393555, + 192.3993377685547, + 441.7369689941406, + 0.9989268183708191 + ], + "score": 0.9226832389831543, + "correct": 1 + }, + { + "img": "s17150.jpg", + "roi": [ + 93.94772338867188, + 47.792724609375, + 218.66384887695312, + 442.7411193847656, + 0.9997116923332214 + ], + "score": 0.8818534016609192, + "correct": 1 + }, + { + "img": "s17149.jpg", + "roi": [ + 96.44924926757812, + 49.66862869262695, + 211.35252380371094, + 436.2214660644531, + 0.9995760321617126 + ], + "score": 0.868003249168396, + "correct": 1 + }, + { + "img": "s17151.jpg", + "roi": [ + 304.0085144042969, + 70.16307830810547, + 409.8151550292969, + 435.4553527832031, + 0.9993261098861694 + ], + "score": 0.8613966107368469, + "correct": 0 + }, + { + "img": "s14371.jpg", + "roi": [ + 318.0677185058594, + 139.34866333007812, + 365.94390869140625, + 277.92523193359375, + 0.9872655868530273 + ], + "score": 0.8426172733306885, + "correct": 0 + }, + { + "img": "s11439.jpg", + "roi": [ + 74.16712951660156, + 247.57090759277344, + 152.55767822265625, + 482.87188720703125, + 0.9997109770774841 + ], + "score": 0.8298009037971497, + "correct": 0 + }, + { + "img": "s17147.jpg", + "roi": [ + 304.2724914550781, + 87.59114074707031, + 401.40191650390625, + 425.5480651855469, + 0.9989622831344604 + ], + "score": 0.8003089427947998, + "correct": 1 + }, + { + "img": "s17150.jpg", + "roi": [ + 196.7296905517578, + 97.1121826171875, + 298.4324035644531, + 430.9096374511719, + 0.9983444213867188 + ], + "score": 0.7936384081840515, + "correct": 0 + } + ] + }, + { + "query_img": "s13888.jpg", + "query_roi": [ + 442.0, + 225.0, + 475.0, + 314.0 + ], + "query_gt": [ + { + "img": "s13886.jpg", + "roi": [ + 102.0, + 167.0, + 159.0, + 401.0 + ] + } + ], + "gallery": [ + { + "img": "s13997.jpg", + "roi": [ + 355.52325439453125, + 242.0042724609375, + 391.8498229980469, + 357.13897705078125, + 0.9996060729026794 + ], + "score": 0.8484801054000854, + "correct": 0 + }, + { + "img": "s15225.jpg", + "roi": [ + 522.5596923828125, + 134.5109405517578, + 589.11083984375, + 354.34600830078125, + 0.9993243217468262 + ], + "score": 0.7474968433380127, + "correct": 0 + }, + { + "img": "s14640.jpg", + "roi": [ + 240.4899139404297, + 49.26736068725586, + 358.87750244140625, + 431.2508239746094, + 0.9997051358222961 + ], + "score": 0.7228612899780273, + "correct": 0 + }, + { + "img": "s13886.jpg", + "roi": [ + 112.75798034667969, + 133.09378051757812, + 211.0421600341797, + 419.2898864746094, + 0.9511860609054565 + ], + "score": 0.7192457318305969, + "correct": 0 + }, + { + "img": "s6641.jpg", + "roi": [ + 411.9354248046875, + 135.80242919921875, + 479.3730163574219, + 342.7066345214844, + 0.9992173910140991 + ], + "score": 0.7083654403686523, + "correct": 0 + }, + { + "img": "s13155.jpg", + "roi": [ + 307.9071960449219, + 174.03091430664062, + 381.205322265625, + 390.1587219238281, + 0.9986704587936401 + ], + "score": 0.6947286128997803, + "correct": 0 + }, + { + "img": "s16230.jpg", + "roi": [ + 367.7159729003906, + 74.1818618774414, + 451.88812255859375, + 324.3614196777344, + 0.9979177117347717 + ], + "score": 0.675532877445221, + "correct": 0 + }, + { + "img": "s16210.jpg", + "roi": [ + 711.1466064453125, + 188.78509521484375, + 748.405029296875, + 301.4899597167969, + 0.9997288584709167 + ], + "score": 0.6602009534835815, + "correct": 0 + }, + { + "img": "s16429.jpg", + "roi": [ + 555.032958984375, + 115.48790740966797, + 583.7859497070312, + 197.64735412597656, + 0.9858660697937012 + ], + "score": 0.6525808572769165, + "correct": 0 + }, + { + "img": "s15638.jpg", + "roi": [ + 491.78125, + 130.36178588867188, + 573.0211791992188, + 366.0355529785156, + 0.993615984916687 + ], + "score": 0.6485816240310669, + "correct": 0 + } + ] + }, + { + "query_img": "s12714.jpg", + "query_roi": [ + 279.0, + 179.0, + 327.0, + 308.0 + ], + "query_gt": [ + { + "img": "s12715.jpg", + "roi": [ + 274.0, + 178.0, + 321.0, + 305.0 + ] + } + ], + "gallery": [ + { + "img": "s10920.jpg", + "roi": [ + 620.0897827148438, + 245.45181274414062, + 656.4862670898438, + 364.0691833496094, + 0.9944682121276855 + ], + "score": 0.9316621422767639, + "correct": 0 + }, + { + "img": "s12715.jpg", + "roi": [ + 224.63404846191406, + 164.54945373535156, + 249.71633911132812, + 253.50169372558594, + 0.9745668768882751 + ], + "score": 0.9134550094604492, + "correct": 0 + }, + { + "img": "s12715.jpg", + "roi": [ + 232.4409942626953, + 165.48194885253906, + 294.7605285644531, + 356.98077392578125, + 0.8058920502662659 + ], + "score": 0.8612737655639648, + "correct": 0 + }, + { + "img": "s12715.jpg", + "roi": [ + 253.0411376953125, + 156.30825805664062, + 285.5729064941406, + 256.0780944824219, + 0.9641147255897522 + ], + "score": 0.835793673992157, + "correct": 0 + }, + { + "img": "s10920.jpg", + "roi": [ + 670.8306274414062, + 236.04757690429688, + 707.4114990234375, + 358.9268493652344, + 0.9912078380584717 + ], + "score": 0.8290173411369324, + "correct": 0 + }, + { + "img": "s17858.jpg", + "roi": [ + 579.450439453125, + 73.86117553710938, + 630.0753173828125, + 244.99169921875, + 0.9984708428382874 + ], + "score": 0.7578940391540527, + "correct": 0 + }, + { + "img": "s12715.jpg", + "roi": [ + 666.2074584960938, + 173.00723266601562, + 700.0685424804688, + 300.2864990234375, + 0.9380457997322083 + ], + "score": 0.7327784299850464, + "correct": 0 + }, + { + "img": "s12715.jpg", + "roi": [ + 281.8922119140625, + 160.4857177734375, + 310.49090576171875, + 251.14540100097656, + 0.8994382619857788 + ], + "score": 0.6941089034080505, + "correct": 0 + }, + { + "img": "s17145.jpg", + "roi": [ + 178.16055297851562, + 127.08218383789062, + 259.25799560546875, + 367.04266357421875, + 0.9397939443588257 + ], + "score": 0.6887525320053101, + "correct": 0 + }, + { + "img": "s12639.jpg", + "roi": [ + 139.9780731201172, + 165.59706115722656, + 203.26638793945312, + 382.31298828125, + 0.964158296585083 + ], + "score": 0.6804860234260559, + "correct": 0 + } + ] + }, + { + "query_img": "s17521.jpg", + "query_roi": [ + 509.0, + 93.0, + 549.0, + 222.0 + ], + "query_gt": [ + { + "img": "s17520.jpg", + "roi": [ + 432.0, + 53.0, + 500.0, + 341.0 + ] + } + ], + "gallery": [ + { + "img": "s14596.jpg", + "roi": [ + 390.6233215332031, + 60.88499450683594, + 506.2978210449219, + 393.5134582519531, + 0.9976891279220581 + ], + "score": 1.0696488618850708, + "correct": 0 + }, + { + "img": "s11263.jpg", + "roi": [ + 148.8380126953125, + 222.93124389648438, + 211.58631896972656, + 396.5629577636719, + 0.9992712140083313 + ], + "score": 1.0327531099319458, + "correct": 0 + }, + { + "img": "s13210.jpg", + "roi": [ + 291.281494140625, + 150.20318603515625, + 329.6619567871094, + 272.4582214355469, + 0.9682260751724243 + ], + "score": 0.9622726440429688, + "correct": 0 + }, + { + "img": "s6564.jpg", + "roi": [ + 495.3467712402344, + 224.74554443359375, + 545.7504272460938, + 366.8340759277344, + 0.999518632888794 + ], + "score": 0.906368613243103, + "correct": 0 + }, + { + "img": "s5269.jpg", + "roi": [ + 244.29293823242188, + 180.5322723388672, + 300.58123779296875, + 364.68182373046875, + 0.9988172650337219 + ], + "score": 0.851513147354126, + "correct": 0 + }, + { + "img": "s17224.jpg", + "roi": [ + 405.2439880371094, + 191.36924743652344, + 454.0837097167969, + 349.2210998535156, + 0.9994745850563049 + ], + "score": 0.8173633217811584, + "correct": 0 + }, + { + "img": "s17520.jpg", + "roi": [ + 428.93048095703125, + 51.32750701904297, + 502.167724609375, + 341.854248046875, + 0.9936097860336304 + ], + "score": 0.7966719269752502, + "correct": 1 + }, + { + "img": "s17830.jpg", + "roi": [ + 336.125244140625, + 45.85407257080078, + 423.9243469238281, + 356.3605041503906, + 0.9992218017578125 + ], + "score": 0.7911028265953064, + "correct": 0 + }, + { + "img": "s12418.jpg", + "roi": [ + 232.4846649169922, + 203.45018005371094, + 253.93304443359375, + 266.89776611328125, + 0.8909288048744202 + ], + "score": 0.7899522185325623, + "correct": 0 + }, + { + "img": "s8409.jpg", + "roi": [ + 187.144287109375, + 75.908935546875, + 240.68316650390625, + 231.56285095214844, + 0.999651312828064 + ], + "score": 0.7406387329101562, + "correct": 0 + } + ] + }, + { + "query_img": "s18144.jpg", + "query_roi": [ + 653.0, + 178.0, + 733.0, + 408.0 + ], + "query_gt": [ + { + "img": "s18145.jpg", + "roi": [ + 496.0, + 75.0, + 606.0, + 447.0 + ] + } + ], + "gallery": [ + { + "img": "s15041.jpg", + "roi": [ + 246.4414520263672, + 46.053768157958984, + 370.8707580566406, + 442.8022155761719, + 0.9996832609176636 + ], + "score": 0.930580198764801, + "correct": 0 + }, + { + "img": "s18145.jpg", + "roi": [ + 491.89263916015625, + 75.6285171508789, + 604.4760131835938, + 445.4815979003906, + 0.9997437596321106 + ], + "score": 0.7909407615661621, + "correct": 1 + }, + { + "img": "s7946.jpg", + "roi": [ + 171.6331024169922, + 142.06436157226562, + 274.5899963378906, + 437.80169677734375, + 0.9994977712631226 + ], + "score": 0.7542327642440796, + "correct": 0 + }, + { + "img": "s7435.jpg", + "roi": [ + 473.76715087890625, + 155.86927795410156, + 506.4133605957031, + 256.5760498046875, + 0.9916170239448547 + ], + "score": 0.7529879212379456, + "correct": 0 + }, + { + "img": "s18057.jpg", + "roi": [ + 177.2040252685547, + 90.70252990722656, + 250.39794921875, + 327.0723876953125, + 0.9994988441467285 + ], + "score": 0.7515049576759338, + "correct": 0 + }, + { + "img": "s15041.jpg", + "roi": [ + 439.0089111328125, + 30.249177932739258, + 565.1405639648438, + 433.1058044433594, + 0.9953065514564514 + ], + "score": 0.741318941116333, + "correct": 0 + }, + { + "img": "s16138.jpg", + "roi": [ + 304.9366760253906, + 131.95269775390625, + 351.7706604003906, + 278.9508056640625, + 0.9918550252914429 + ], + "score": 0.736192524433136, + "correct": 0 + }, + { + "img": "s14168.jpg", + "roi": [ + 227.1865997314453, + 127.12398529052734, + 296.2673034667969, + 358.227783203125, + 0.9997135996818542 + ], + "score": 0.7305514216423035, + "correct": 0 + }, + { + "img": "s7435.jpg", + "roi": [ + 545.5209350585938, + 126.3661117553711, + 665.4622192382812, + 445.5879821777344, + 0.9997556805610657 + ], + "score": 0.7222245335578918, + "correct": 0 + }, + { + "img": "s18145.jpg", + "roi": [ + 392.20294189453125, + 62.4090690612793, + 502.66845703125, + 446.87689208984375, + 0.9983812570571899 + ], + "score": 0.6985816359519958, + "correct": 0 + } + ] + }, + { + "query_img": "s12900.jpg", + "query_roi": [ + 285.0, + 113.0, + 370.0, + 359.0 + ], + "query_gt": [ + { + "img": "s12901.jpg", + "roi": [ + 329.0, + 121.0, + 397.0, + 315.0 + ] + } + ], + "gallery": [ + { + "img": "s12901.jpg", + "roi": [ + 357.0089416503906, + 112.88512420654297, + 441.2752685546875, + 335.27288818359375, + 0.9969563484191895 + ], + "score": 1.494791865348816, + "correct": 0 + }, + { + "img": "s16700.jpg", + "roi": [ + 354.5364685058594, + 167.11737060546875, + 414.7142028808594, + 365.9241638183594, + 0.9893249869346619 + ], + "score": 0.8491531610488892, + "correct": 0 + }, + { + "img": "s17495.jpg", + "roi": [ + 131.04261779785156, + 128.41519165039062, + 200.01087951660156, + 371.9599304199219, + 0.9991106390953064 + ], + "score": 0.7447558045387268, + "correct": 0 + }, + { + "img": "s13155.jpg", + "roi": [ + 625.29638671875, + 199.19947814941406, + 703.6958618164062, + 424.6664733886719, + 0.9937531352043152 + ], + "score": 0.7314614057540894, + "correct": 0 + }, + { + "img": "s16700.jpg", + "roi": [ + 606.049560546875, + 192.85635375976562, + 673.067138671875, + 396.43072509765625, + 0.9981483221054077 + ], + "score": 0.6626128554344177, + "correct": 0 + }, + { + "img": "s12664.jpg", + "roi": [ + 611.792724609375, + 199.06942749023438, + 659.49365234375, + 344.492431640625, + 0.9957678318023682 + ], + "score": 0.6478497982025146, + "correct": 0 + }, + { + "img": "s13316.jpg", + "roi": [ + 418.256591796875, + 136.6774139404297, + 461.5379943847656, + 265.6803894042969, + 0.9980306029319763 + ], + "score": 0.6432579755783081, + "correct": 0 + }, + { + "img": "s10402.jpg", + "roi": [ + 290.1729736328125, + 324.2474365234375, + 314.2993469238281, + 388.1784362792969, + 0.9984837174415588 + ], + "score": 0.6140366196632385, + "correct": 0 + }, + { + "img": "s15642.jpg", + "roi": [ + 692.9371948242188, + 109.14804077148438, + 793.7110595703125, + 446.51904296875, + 0.9998661279678345 + ], + "score": 0.6098449230194092, + "correct": 0 + }, + { + "img": "s6792.jpg", + "roi": [ + 263.9306335449219, + 138.38609313964844, + 360.8240661621094, + 411.1123046875, + 0.9997239708900452 + ], + "score": 0.6058172583580017, + "correct": 0 + } + ] + }, + { + "query_img": "s14430.jpg", + "query_roi": [ + 1.0, + 82.0, + 59.0, + 351.0 + ], + "query_gt": [ + { + "img": "s14431.jpg", + "roi": [ + 8.0, + 109.0, + 93.0, + 380.0 + ] + }, + { + "img": "s14430.jpg", + "roi": [ + 153.0, + 111.0, + 230.0, + 377.0 + ] + } + ], + "gallery": [ + { + "img": "s7351.jpg", + "roi": [ + 233.64141845703125, + 12.57769775390625, + 471.693359375, + 669.3741455078125, + 0.9994681477546692 + ], + "score": 0.7104575037956238, + "correct": 0 + }, + { + "img": "s7351.jpg", + "roi": [ + 222.28448486328125, + 145.088623046875, + 306.2791748046875, + 418.5075378417969, + 0.9722015261650085 + ], + "score": 0.6700814962387085, + "correct": 0 + }, + { + "img": "s9725.jpg", + "roi": [ + 2.5437724590301514, + 73.52450561523438, + 42.43699264526367, + 225.60006713867188, + 0.9442977905273438 + ], + "score": 0.6631545424461365, + "correct": 0 + }, + { + "img": "s16450.jpg", + "roi": [ + 516.4426879882812, + 142.3270721435547, + 560.12109375, + 299.73980712890625, + 0.834658145904541 + ], + "score": 0.6575888395309448, + "correct": 0 + }, + { + "img": "s2709.jpg", + "roi": [ + 263.8917236328125, + 214.70498657226562, + 311.6460266113281, + 352.22406005859375, + 0.9958840012550354 + ], + "score": 0.6232792139053345, + "correct": 0 + }, + { + "img": "s14431.jpg", + "roi": [ + 83.69927978515625, + 110.79228210449219, + 121.248779296875, + 226.70166015625, + 0.9911080598831177 + ], + "score": 0.6195826530456543, + "correct": 0 + }, + { + "img": "s13907.jpg", + "roi": [ + 254.8148193359375, + 74.43207550048828, + 327.4903564453125, + 333.1907653808594, + 0.999627947807312 + ], + "score": 0.6186677813529968, + "correct": 0 + }, + { + "img": "s17147.jpg", + "roi": [ + 304.2724914550781, + 87.59114074707031, + 401.40191650390625, + 425.5480651855469, + 0.9989622831344604 + ], + "score": 0.5956503748893738, + "correct": 0 + }, + { + "img": "s14050.jpg", + "roi": [ + 19.732511520385742, + 24.931095123291016, + 195.64451599121094, + 442.0280456542969, + 0.8998660445213318 + ], + "score": 0.5934056043624878, + "correct": 0 + }, + { + "img": "s14430.jpg", + "roi": [ + 39.13918685913086, + 104.34453582763672, + 134.64471435546875, + 414.5987854003906, + 0.9987354874610901 + ], + "score": 0.5933829545974731, + "correct": 0 + } + ] + }, + { + "query_img": "s18051.jpg", + "query_roi": [ + 299.0, + 53.0, + 372.0, + 289.0 + ], + "query_gt": [ + { + "img": "s18049.jpg", + "roi": [ + 67.0, + 67.0, + 187.0, + 343.0 + ] + } + ], + "gallery": [ + { + "img": "s18049.jpg", + "roi": [ + 544.4757080078125, + 46.62096405029297, + 659.2503662109375, + 393.3421936035156, + 0.9998842477798462 + ], + "score": 1.2614128589630127, + "correct": 0 + }, + { + "img": "s18049.jpg", + "roi": [ + 52.44107437133789, + 72.60677337646484, + 173.8493194580078, + 387.03582763671875, + 0.9956525564193726 + ], + "score": 1.1730895042419434, + "correct": 1 + }, + { + "img": "s14259.jpg", + "roi": [ + 206.02259826660156, + 168.30262756347656, + 265.71588134765625, + 393.2046203613281, + 0.9993025064468384 + ], + "score": 0.9040296077728271, + "correct": 0 + }, + { + "img": "s18049.jpg", + "roi": [ + 610.1377563476562, + 78.52091979980469, + 652.9448852539062, + 221.3610382080078, + 0.8943912386894226 + ], + "score": 0.8516578078269958, + "correct": 0 + }, + { + "img": "s18049.jpg", + "roi": [ + 3.195206880569458, + 68.07167053222656, + 117.86089324951172, + 428.4323425292969, + 0.806711733341217 + ], + "score": 0.8186643123626709, + "correct": 0 + }, + { + "img": "s17406.jpg", + "roi": [ + 206.68702697753906, + 56.55394744873047, + 314.76861572265625, + 428.65765380859375, + 0.999669075012207 + ], + "score": 0.8006449937820435, + "correct": 0 + }, + { + "img": "s15792.jpg", + "roi": [ + 180.96974182128906, + 98.09278106689453, + 251.8145294189453, + 321.6324157714844, + 0.998760461807251 + ], + "score": 0.7449882626533508, + "correct": 0 + }, + { + "img": "s15792.jpg", + "roi": [ + 114.96126556396484, + 82.77434539794922, + 196.49652099609375, + 326.2739562988281, + 0.9997546076774597 + ], + "score": 0.7399910092353821, + "correct": 0 + }, + { + "img": "s18049.jpg", + "roi": [ + 352.5115966796875, + 58.78907012939453, + 432.1180419921875, + 315.5002136230469, + 0.9996821880340576 + ], + "score": 0.7169374823570251, + "correct": 0 + }, + { + "img": "s13310.jpg", + "roi": [ + 139.41973876953125, + 75.05201721191406, + 271.1256103515625, + 444.0785827636719, + 0.999795138835907 + ], + "score": 0.6984744071960449, + "correct": 0 + } + ] + }, + { + "query_img": "s13816.jpg", + "query_roi": [ + 335.0, + 130.0, + 411.0, + 363.0 + ], + "query_gt": [ + { + "img": "s13814.jpg", + "roi": [ + 510.0, + 46.0, + 622.0, + 444.0 + ] + }, + { + "img": "s13815.jpg", + "roi": [ + 243.0, + 67.0, + 381.0, + 445.0 + ] + } + ], + "gallery": [ + { + "img": "s16397.jpg", + "roi": [ + 320.4320373535156, + 4.097245216369629, + 406.399169921875, + 284.4432678222656, + 0.9996542930603027 + ], + "score": 0.9836791753768921, + "correct": 0 + }, + { + "img": "s13815.jpg", + "roi": [ + 256.30291748046875, + 74.15425872802734, + 386.7513732910156, + 440.1722106933594, + 0.9958829879760742 + ], + "score": 0.8984416723251343, + "correct": 1 + }, + { + "img": "s14041.jpg", + "roi": [ + 394.2147521972656, + 38.880001068115234, + 514.8660888671875, + 441.48260498046875, + 0.9998403787612915 + ], + "score": 0.8970105051994324, + "correct": 0 + }, + { + "img": "s13814.jpg", + "roi": [ + 501.98895263671875, + 45.2429313659668, + 620.9317016601562, + 437.8125915527344, + 0.9945112466812134 + ], + "score": 0.8827189803123474, + "correct": 1 + }, + { + "img": "s16397.jpg", + "roi": [ + 739.840087890625, + 35.78599166870117, + 798.8161010742188, + 341.17279052734375, + 0.9915184378623962 + ], + "score": 0.8663472533226013, + "correct": 0 + }, + { + "img": "s3219.jpg", + "roi": [ + 63.42609786987305, + 19.217693328857422, + 211.2314910888672, + 487.4782409667969, + 0.9996188879013062 + ], + "score": 0.8621891736984253, + "correct": 0 + }, + { + "img": "s12941.jpg", + "roi": [ + 395.5285949707031, + 64.01373291015625, + 510.0507507324219, + 393.4457092285156, + 0.9993318915367126 + ], + "score": 0.8362085819244385, + "correct": 0 + }, + { + "img": "s15380.jpg", + "roi": [ + 459.7042541503906, + 145.44139099121094, + 524.7568359375, + 314.8875732421875, + 0.997748076915741 + ], + "score": 0.825896143913269, + "correct": 0 + }, + { + "img": "s15236.jpg", + "roi": [ + 511.3765563964844, + 120.26689147949219, + 561.619140625, + 349.4011535644531, + 0.9574772715568542 + ], + "score": 0.7286836504936218, + "correct": 0 + }, + { + "img": "s15201.jpg", + "roi": [ + 766.9619750976562, + 239.45114135742188, + 787.5989379882812, + 291.7366638183594, + 0.9961804151535034 + ], + "score": 0.687405526638031, + "correct": 0 + } + ] + }, + { + "query_img": "s17165.jpg", + "query_roi": [ + 270.0, + 139.0, + 368.0, + 403.0 + ], + "query_gt": [ + { + "img": "s17152.jpg", + "roi": [ + 285.0, + 76.0, + 358.0, + 271.0 + ] + }, + { + "img": "s17153.jpg", + "roi": [ + 308.0, + 113.0, + 418.0, + 406.0 + ] + }, + { + "img": "s17164.jpg", + "roi": [ + 346.0, + 31.0, + 497.0, + 434.0 + ] + }, + { + "img": "s17166.jpg", + "roi": [ + 173.0, + 25.0, + 329.0, + 443.0 + ] + } + ], + "gallery": [ + { + "img": "s17153.jpg", + "roi": [ + 448.61260986328125, + 211.2969970703125, + 499.9871826171875, + 384.20269775390625, + 0.99595046043396 + ], + "score": 1.1412354707717896, + "correct": 0 + }, + { + "img": "s17153.jpg", + "roi": [ + 314.2908020019531, + 112.19450378417969, + 408.7389221191406, + 399.0352783203125, + 0.9940912127494812 + ], + "score": 1.1222419738769531, + "correct": 1 + }, + { + "img": "s17164.jpg", + "roi": [ + 362.5422668457031, + 34.1828727722168, + 500.3514709472656, + 434.80352783203125, + 0.9991223216056824 + ], + "score": 1.1047046184539795, + "correct": 1 + }, + { + "img": "s17153.jpg", + "roi": [ + 305.1446838378906, + 205.2642364501953, + 358.29864501953125, + 388.4231872558594, + 0.9794212579727173 + ], + "score": 1.0415979623794556, + "correct": 0 + }, + { + "img": "s17164.jpg", + "roi": [ + 102.51092529296875, + 126.83466339111328, + 195.9879150390625, + 389.9591979980469, + 0.9990825653076172 + ], + "score": 0.9573969841003418, + "correct": 0 + }, + { + "img": "s17164.jpg", + "roi": [ + 480.75250244140625, + 61.409759521484375, + 575.6593627929688, + 399.54315185546875, + 0.99704509973526 + ], + "score": 0.9442718029022217, + "correct": 0 + }, + { + "img": "s8218.jpg", + "roi": [ + 299.2680358886719, + 93.44176483154297, + 438.7564392089844, + 538.4439697265625, + 0.9991586208343506 + ], + "score": 0.9255116581916809, + "correct": 0 + }, + { + "img": "s17164.jpg", + "roi": [ + 190.68385314941406, + 68.11945343017578, + 317.0125732421875, + 401.00018310546875, + 0.9985653758049011 + ], + "score": 0.9153997302055359, + "correct": 0 + }, + { + "img": "s17166.jpg", + "roi": [ + 181.50100708007812, + 22.788745880126953, + 330.0949401855469, + 448.32733154296875, + 0.9996587038040161 + ], + "score": 0.8552368879318237, + "correct": 1 + }, + { + "img": "s17152.jpg", + "roi": [ + 472.47509765625, + 187.85838317871094, + 545.6287231445312, + 422.7392272949219, + 0.9980073571205139 + ], + "score": 0.8246986269950867, + "correct": 0 + } + ] + }, + { + "query_img": "s17407.jpg", + "query_roi": [ + 350.0, + 32.0, + 477.0, + 446.0 + ], + "query_gt": [ + { + "img": "s17408.jpg", + "roi": [ + 683.0, + 40.0, + 713.0, + 136.0 + ] + } + ], + "gallery": [ + { + "img": "s17158.jpg", + "roi": [ + 100.69426727294922, + 19.136720657348633, + 240.37757873535156, + 438.2923889160156, + 0.9992625117301941 + ], + "score": 0.9971460700035095, + "correct": 0 + }, + { + "img": "s17907.jpg", + "roi": [ + 540.2177734375, + 53.55548095703125, + 599.7169189453125, + 273.2032165527344, + 0.9966821074485779 + ], + "score": 0.9776832461357117, + "correct": 0 + }, + { + "img": "s17408.jpg", + "roi": [ + 687.3112182617188, + 40.1510009765625, + 713.907958984375, + 132.3921356201172, + 0.9981878399848938 + ], + "score": 0.9669023752212524, + "correct": 1 + }, + { + "img": "s11237.jpg", + "roi": [ + 546.7914428710938, + 132.99874877929688, + 629.3379516601562, + 410.2262268066406, + 0.9994033575057983 + ], + "score": 0.9538204073905945, + "correct": 0 + }, + { + "img": "s17158.jpg", + "roi": [ + 176.08944702148438, + 18.756189346313477, + 282.7658996582031, + 426.4845886230469, + 0.9896352887153625 + ], + "score": 0.9484856724739075, + "correct": 0 + }, + { + "img": "s1608.jpg", + "roi": [ + 344.6307067871094, + 86.15643310546875, + 407.4423828125, + 265.3130187988281, + 0.9995613694190979 + ], + "score": 0.9276418685913086, + "correct": 0 + }, + { + "img": "s11237.jpg", + "roi": [ + 607.2218627929688, + 165.42889404296875, + 647.9314575195312, + 308.07977294921875, + 0.9941656589508057 + ], + "score": 0.912856936454773, + "correct": 0 + }, + { + "img": "s14415.jpg", + "roi": [ + 564.5533447265625, + 142.9637451171875, + 634.8873291015625, + 381.6932678222656, + 0.9965053796768188 + ], + "score": 0.8472170233726501, + "correct": 0 + }, + { + "img": "s17099.jpg", + "roi": [ + 479.8819580078125, + 54.510005950927734, + 580.893310546875, + 421.4513244628906, + 0.9966591596603394 + ], + "score": 0.8138825297355652, + "correct": 0 + }, + { + "img": "s17408.jpg", + "roi": [ + 504.6129455566406, + 92.23053741455078, + 548.8572387695312, + 232.22354125976562, + 0.9989485144615173 + ], + "score": 0.8094656467437744, + "correct": 0 + } + ] + }, + { + "query_img": "s15755.jpg", + "query_roi": [ + 463.0, + 170.0, + 506.0, + 256.0 + ], + "query_gt": [ + { + "img": "s15754.jpg", + "roi": [ + 385.0, + 233.0, + 427.0, + 315.0 + ] + } + ], + "gallery": [ + { + "img": "s15754.jpg", + "roi": [ + 736.7389526367188, + 241.1325225830078, + 764.5052490234375, + 314.6407165527344, + 0.916409969329834 + ], + "score": 0.9110703468322754, + "correct": 0 + }, + { + "img": "s15754.jpg", + "roi": [ + 626.0056762695312, + 230.5021209716797, + 660.490478515625, + 317.8138427734375, + 0.9604599475860596 + ], + "score": 0.7089114785194397, + "correct": 0 + }, + { + "img": "s16632.jpg", + "roi": [ + 260.9359436035156, + 163.97952270507812, + 304.0215148925781, + 288.0025634765625, + 0.9995613694190979 + ], + "score": 0.7062320113182068, + "correct": 0 + }, + { + "img": "s16302.jpg", + "roi": [ + 687.3548583984375, + 147.3529815673828, + 775.5610961914062, + 399.2823181152344, + 0.996563732624054 + ], + "score": 0.6926044821739197, + "correct": 0 + }, + { + "img": "s8923.jpg", + "roi": [ + 35.605342864990234, + 105.0678939819336, + 138.68710327148438, + 467.4681091308594, + 0.9560723900794983 + ], + "score": 0.5588796138763428, + "correct": 0 + }, + { + "img": "s15754.jpg", + "roi": [ + 517.96435546875, + 224.9403839111328, + 561.259033203125, + 345.79681396484375, + 0.9993972778320312 + ], + "score": 0.5310384035110474, + "correct": 0 + }, + { + "img": "s16302.jpg", + "roi": [ + 18.39139175415039, + 164.12307739257812, + 92.0597915649414, + 402.38677978515625, + 0.9712467789649963 + ], + "score": 0.5302146077156067, + "correct": 0 + }, + { + "img": "s12550.jpg", + "roi": [ + 304.1244812011719, + 107.69898223876953, + 393.687255859375, + 379.8053283691406, + 0.9998738765716553 + ], + "score": 0.5089172720909119, + "correct": 0 + }, + { + "img": "s17687.jpg", + "roi": [ + 341.1488342285156, + 113.56376647949219, + 421.5996398925781, + 419.84283447265625, + 0.9954636693000793 + ], + "score": 0.4830673933029175, + "correct": 0 + }, + { + "img": "s10402.jpg", + "roi": [ + 31.74373435974121, + 413.25653076171875, + 69.18254089355469, + 507.27386474609375, + 0.9990515112876892 + ], + "score": 0.48126962780952454, + "correct": 0 + } + ] + }, + { + "query_img": "s17408.jpg", + "query_roi": [ + 742.0, + 60.0, + 774.0, + 170.0 + ], + "query_gt": [ + { + "img": "s17402.jpg", + "roi": [ + 635.0, + 88.0, + 720.0, + 419.0 + ] + }, + { + "img": "s17403.jpg", + "roi": [ + 631.0, + 78.0, + 707.0, + 373.0 + ] + }, + { + "img": "s17404.jpg", + "roi": [ + 592.0, + 67.0, + 666.0, + 355.0 + ] + }, + { + "img": "s17407.jpg", + "roi": [ + 201.0, + 31.0, + 327.0, + 446.0 + ] + } + ], + "gallery": [ + { + "img": "s17404.jpg", + "roi": [ + 139.89590454101562, + 87.77629852294922, + 204.01406860351562, + 320.029296875, + 0.9994120597839355 + ], + "score": 1.1254388093948364, + "correct": 0 + }, + { + "img": "s17402.jpg", + "roi": [ + 62.61507034301758, + 102.41819763183594, + 137.20867919921875, + 382.96343994140625, + 0.9997439980506897 + ], + "score": 1.049859642982483, + "correct": 0 + }, + { + "img": "s17403.jpg", + "roi": [ + 108.84171295166016, + 96.78091430664062, + 176.17237854003906, + 358.98919677734375, + 0.9985997080802917 + ], + "score": 1.017379879951477, + "correct": 0 + }, + { + "img": "s17404.jpg", + "roi": [ + 582.5457153320312, + 66.3682861328125, + 670.4678955078125, + 362.8981628417969, + 0.9998186230659485 + ], + "score": 1.0011911392211914, + "correct": 1 + }, + { + "img": "s17403.jpg", + "roi": [ + 626.5906372070312, + 77.68024444580078, + 710.8756713867188, + 379.7856140136719, + 0.9989725351333618 + ], + "score": 0.9596713185310364, + "correct": 1 + }, + { + "img": "s17407.jpg", + "roi": [ + 437.4502258300781, + 24.90789794921875, + 521.5482788085938, + 333.135498046875, + 0.9958899617195129 + ], + "score": 0.9442782998085022, + "correct": 0 + }, + { + "img": "s1690.jpg", + "roi": [ + 173.89373779296875, + 177.453369140625, + 199.59019470214844, + 260.07049560546875, + 0.9960805773735046 + ], + "score": 0.9439108967781067, + "correct": 0 + }, + { + "img": "s3195.jpg", + "roi": [ + 455.6260681152344, + 236.30784606933594, + 480.30609130859375, + 311.46624755859375, + 0.9991925358772278 + ], + "score": 0.9407083988189697, + "correct": 0 + }, + { + "img": "s17402.jpg", + "roi": [ + 630.3673706054688, + 85.08782196044922, + 737.9742431640625, + 421.2171630859375, + 0.9979931116104126 + ], + "score": 0.8039930462837219, + "correct": 1 + }, + { + "img": "s6673.jpg", + "roi": [ + 503.4317626953125, + 88.99836730957031, + 586.6234130859375, + 322.446533203125, + 0.9963083863258362 + ], + "score": 0.7869289517402649, + "correct": 0 + } + ] + }, + { + "query_img": "s17164.jpg", + "query_roi": [ + 93.0, + 128.0, + 189.0, + 384.0 + ], + "query_gt": [ + { + "img": "s17154.jpg", + "roi": [ + 66.0, + 85.0, + 182.0, + 395.0 + ] + } + ], + "gallery": [ + { + "img": "s17154.jpg", + "roi": [ + 593.9965209960938, + 75.17308807373047, + 718.4515991210938, + 406.876953125, + 0.9988133907318115 + ], + "score": 1.493269681930542, + "correct": 0 + }, + { + "img": "s17154.jpg", + "roi": [ + 461.1772155761719, + 22.17058563232422, + 597.8240356445312, + 433.4414978027344, + 0.999300479888916 + ], + "score": 1.4053479433059692, + "correct": 0 + }, + { + "img": "s17154.jpg", + "roi": [ + 90.83377838134766, + 81.16976928710938, + 184.4032745361328, + 388.6068115234375, + 0.9949304461479187 + ], + "score": 1.2190873622894287, + "correct": 1 + }, + { + "img": "s17154.jpg", + "roi": [ + 141.04063415527344, + 41.958763122558594, + 300.0993957519531, + 438.1169128417969, + 0.9981657862663269 + ], + "score": 1.176525592803955, + "correct": 0 + }, + { + "img": "s17154.jpg", + "roi": [ + 525.6542358398438, + 29.135435104370117, + 629.5179443359375, + 416.2637939453125, + 0.6280888915061951 + ], + "score": 0.7966906428337097, + "correct": 0 + }, + { + "img": "s14930.jpg", + "roi": [ + 50.107295989990234, + 168.8590087890625, + 103.67082214355469, + 338.3299560546875, + 0.9981166124343872 + ], + "score": 0.7580968141555786, + "correct": 0 + }, + { + "img": "s9549.jpg", + "roi": [ + 427.9616394042969, + 147.71507263183594, + 446.33721923828125, + 207.70184326171875, + 0.9840922355651855 + ], + "score": 0.7449798583984375, + "correct": 0 + }, + { + "img": "s13288.jpg", + "roi": [ + 479.80859375, + 124.18040466308594, + 547.9727783203125, + 368.06005859375, + 0.997616171836853 + ], + "score": 0.7061805129051208, + "correct": 0 + }, + { + "img": "s13288.jpg", + "roi": [ + 534.2010498046875, + 163.97903442382812, + 563.9310302734375, + 272.74652099609375, + 0.974494993686676 + ], + "score": 0.6965513229370117, + "correct": 0 + }, + { + "img": "s14893.jpg", + "roi": [ + 248.6377716064453, + 125.5255126953125, + 319.0347900390625, + 360.04583740234375, + 0.998698353767395 + ], + "score": 0.6941968202590942, + "correct": 0 + } + ] + }, + { + "query_img": "s13440.jpg", + "query_roi": [ + 285.0, + 59.0, + 379.0, + 316.0 + ], + "query_gt": [ + { + "img": "s13438.jpg", + "roi": [ + 436.0, + 95.0, + 521.0, + 340.0 + ] + }, + { + "img": "s13439.jpg", + "roi": [ + 436.0, + 99.0, + 518.0, + 336.0 + ] + } + ], + "gallery": [ + { + "img": "s807.jpg", + "roi": [ + 285.17828369140625, + 58.48929977416992, + 498.876708984375, + 658.481689453125, + 0.9998646974563599 + ], + "score": 0.9548301100730896, + "correct": 0 + }, + { + "img": "s8047.jpg", + "roi": [ + 552.43603515625, + 202.2909698486328, + 598.5636596679688, + 359.88787841796875, + 0.9989708662033081 + ], + "score": 0.9485224485397339, + "correct": 0 + }, + { + "img": "s13347.jpg", + "roi": [ + 297.2386474609375, + 158.2240753173828, + 364.8194580078125, + 367.7459411621094, + 0.9973794221878052 + ], + "score": 0.9034171104431152, + "correct": 0 + }, + { + "img": "s8047.jpg", + "roi": [ + 10.236349105834961, + 123.96040344238281, + 96.41738891601562, + 392.48577880859375, + 0.9997593760490417 + ], + "score": 0.8680546283721924, + "correct": 0 + }, + { + "img": "s13438.jpg", + "roi": [ + 437.9455261230469, + 100.13143157958984, + 518.5679931640625, + 336.8635559082031, + 0.999871015548706 + ], + "score": 0.8630625009536743, + "correct": 1 + }, + { + "img": "s14447.jpg", + "roi": [ + 227.4347686767578, + 167.94236755371094, + 303.0950622558594, + 384.6324768066406, + 0.9995217323303223 + ], + "score": 0.8488712906837463, + "correct": 0 + }, + { + "img": "s15666.jpg", + "roi": [ + 182.56068420410156, + 95.90937805175781, + 260.9021911621094, + 356.87774658203125, + 0.9952278137207031 + ], + "score": 0.8435434699058533, + "correct": 0 + }, + { + "img": "s14447.jpg", + "roi": [ + 505.4439392089844, + 183.67288208007812, + 564.4683227539062, + 365.9481201171875, + 0.9957614541053772 + ], + "score": 0.8386385440826416, + "correct": 0 + }, + { + "img": "s13439.jpg", + "roi": [ + 432.08367919921875, + 100.91972351074219, + 515.0492553710938, + 337.86871337890625, + 0.9996819496154785 + ], + "score": 0.7733647227287292, + "correct": 1 + }, + { + "img": "s13347.jpg", + "roi": [ + 255.34703063964844, + 173.3358154296875, + 348.0279541015625, + 441.12860107421875, + 0.9847462177276611 + ], + "score": 0.7068206071853638, + "correct": 0 + } + ] + }, + { + "query_img": "s12795.jpg", + "query_roi": [ + 606.0, + 92.0, + 663.0, + 261.0 + ], + "query_gt": [ + { + "img": "s12794.jpg", + "roi": [ + 689.0, + 87.0, + 742.0, + 242.0 + ] + }, + { + "img": "s12798.jpg", + "roi": [ + 418.0, + 103.0, + 494.0, + 314.0 + ] + }, + { + "img": "s12796.jpg", + "roi": [ + 185.0, + 125.0, + 274.0, + 371.0 + ] + }, + { + "img": "s12797.jpg", + "roi": [ + 132.0, + 125.0, + 215.0, + 370.0 + ] + } + ], + "gallery": [ + { + "img": "s12794.jpg", + "roi": [ + 606.6683349609375, + 79.70075988769531, + 665.7791137695312, + 244.81080627441406, + 0.9987627267837524 + ], + "score": 1.6822718381881714, + "correct": 0 + }, + { + "img": "s12798.jpg", + "roi": [ + 420.523681640625, + 101.60138702392578, + 494.3084716796875, + 310.38177490234375, + 0.9992130994796753 + ], + "score": 1.4749075174331665, + "correct": 1 + }, + { + "img": "s12794.jpg", + "roi": [ + 693.1829833984375, + 86.10926055908203, + 740.860595703125, + 245.07925415039062, + 0.9991324543952942 + ], + "score": 1.3724099397659302, + "correct": 1 + }, + { + "img": "s12797.jpg", + "roi": [ + 67.89108276367188, + 105.49685668945312, + 137.41444396972656, + 315.3453369140625, + 0.9857655763626099 + ], + "score": 1.3252593278884888, + "correct": 0 + }, + { + "img": "s12796.jpg", + "roi": [ + 65.06741333007812, + 105.85415649414062, + 143.35049438476562, + 312.2570495605469, + 0.9953626394271851 + ], + "score": 1.3191958665847778, + "correct": 0 + }, + { + "img": "s12796.jpg", + "roi": [ + 183.29486083984375, + 126.60291290283203, + 267.531005859375, + 373.7296142578125, + 0.9998013377189636 + ], + "score": 1.318615198135376, + "correct": 1 + }, + { + "img": "s12797.jpg", + "roi": [ + 132.8076629638672, + 120.53655242919922, + 212.76087951660156, + 374.84002685546875, + 0.9996389150619507 + ], + "score": 1.0868972539901733, + "correct": 1 + }, + { + "img": "s15253.jpg", + "roi": [ + 406.96807861328125, + 140.25807189941406, + 468.22467041015625, + 327.4716491699219, + 0.9984581470489502 + ], + "score": 0.9075530171394348, + "correct": 0 + }, + { + "img": "s11212.jpg", + "roi": [ + 89.15696716308594, + 137.5089874267578, + 194.37149047851562, + 449.8697814941406, + 0.9995715022087097 + ], + "score": 0.8925355672836304, + "correct": 0 + }, + { + "img": "s17521.jpg", + "roi": [ + 509.50885009765625, + 92.65685272216797, + 550.5194091796875, + 221.8489990234375, + 0.9997301697731018 + ], + "score": 0.8805540800094604, + "correct": 0 + } + ] + }, + { + "query_img": "s15087.jpg", + "query_roi": [ + 412.0, + 131.0, + 490.0, + 372.0 + ], + "query_gt": [ + { + "img": "s15086.jpg", + "roi": [ + 210.0, + 276.0, + 274.0, + 443.0 + ] + }, + { + "img": "s15088.jpg", + "roi": [ + 363.0, + 72.0, + 471.0, + 444.0 + ] + }, + { + "img": "s15089.jpg", + "roi": [ + 379.0, + 152.0, + 461.0, + 390.0 + ] + }, + { + "img": "s15090.jpg", + "roi": [ + 420.0, + 71.0, + 491.0, + 313.0 + ] + }, + { + "img": "s15092.jpg", + "roi": [ + 289.0, + 62.0, + 418.0, + 442.0 + ] + }, + { + "img": "s15093.jpg", + "roi": [ + 23.0, + 137.0, + 139.0, + 446.0 + ] + }, + { + "img": "s15094.jpg", + "roi": [ + 269.0, + 194.0, + 313.0, + 313.0 + ] + }, + { + "img": "s15095.jpg", + "roi": [ + 414.0, + 107.0, + 539.0, + 439.0 + ] + }, + { + "img": "s15096.jpg", + "roi": [ + 176.0, + 155.0, + 251.0, + 411.0 + ] + }, + { + "img": "s15097.jpg", + "roi": [ + 282.0, + 137.0, + 384.0, + 434.0 + ] + }, + { + "img": "s15098.jpg", + "roi": [ + 342.0, + 189.0, + 398.0, + 339.0 + ] + } + ], + "gallery": [ + { + "img": "s15088.jpg", + "roi": [ + 261.35394287109375, + 106.54913330078125, + 362.0495910644531, + 414.13934326171875, + 0.9996249675750732 + ], + "score": 1.4435235261917114, + "correct": 0 + }, + { + "img": "s15088.jpg", + "roi": [ + 356.81829833984375, + 75.38600158691406, + 471.3934631347656, + 438.5036315917969, + 0.9991204142570496 + ], + "score": 1.4124692678451538, + "correct": 1 + }, + { + "img": "s15089.jpg", + "roi": [ + 380.1280822753906, + 150.67523193359375, + 462.284912109375, + 395.7411804199219, + 0.9979560375213623 + ], + "score": 1.341759443283081, + "correct": 1 + }, + { + "img": "s15093.jpg", + "roi": [ + 25.249862670898438, + 139.9752655029297, + 124.25250244140625, + 444.7110290527344, + 0.9999048709869385 + ], + "score": 1.3376944065093994, + "correct": 1 + }, + { + "img": "s15096.jpg", + "roi": [ + 614.9874267578125, + 139.0588836669922, + 699.5428466796875, + 444.2845458984375, + 0.9990170001983643 + ], + "score": 1.3333709239959717, + "correct": 0 + }, + { + "img": "s15096.jpg", + "roi": [ + 179.7660369873047, + 162.2582244873047, + 250.48049926757812, + 413.71453857421875, + 0.9996615648269653 + ], + "score": 1.3221421241760254, + "correct": 1 + }, + { + "img": "s15095.jpg", + "roi": [ + 209.14498901367188, + 141.3369598388672, + 276.62921142578125, + 330.91583251953125, + 0.9993268251419067 + ], + "score": 1.3162163496017456, + "correct": 0 + }, + { + "img": "s15092.jpg", + "roi": [ + 284.4073791503906, + 65.91887664794922, + 405.6197509765625, + 442.8320617675781, + 0.9995137453079224 + ], + "score": 1.3100810050964355, + "correct": 1 + }, + { + "img": "s15089.jpg", + "roi": [ + 450.4073486328125, + 159.96139526367188, + 524.3839111328125, + 396.8765869140625, + 0.9980360865592957 + ], + "score": 1.2889162302017212, + "correct": 0 + }, + { + "img": "s15093.jpg", + "roi": [ + 537.7557373046875, + 141.30532836914062, + 625.9442138671875, + 430.2325134277344, + 0.9876335859298706 + ], + "score": 1.260525107383728, + "correct": 0 + } + ] + }, + { + "query_img": "s14917.jpg", + "query_roi": [ + 198.0, + 142.0, + 276.0, + 445.0 + ], + "query_gt": [ + { + "img": "s14918.jpg", + "roi": [ + 211.0, + 144.0, + 287.0, + 447.0 + ] + } + ], + "gallery": [ + { + "img": "s14918.jpg", + "roi": [ + 238.48106384277344, + 147.71078491210938, + 327.29766845703125, + 437.49603271484375, + 0.9814784526824951 + ], + "score": 1.4197583198547363, + "correct": 0 + }, + { + "img": "s14918.jpg", + "roi": [ + 428.48382568359375, + 132.77247619628906, + 515.4448852539062, + 431.815185546875, + 0.9981169700622559 + ], + "score": 1.0952355861663818, + "correct": 0 + }, + { + "img": "s14918.jpg", + "roi": [ + 215.1908416748047, + 142.72142028808594, + 285.1163024902344, + 417.92236328125, + 0.6481508612632751 + ], + "score": 1.056050419807434, + "correct": 1 + }, + { + "img": "s14918.jpg", + "roi": [ + 114.94300079345703, + 105.7370834350586, + 221.1393280029297, + 440.6514892578125, + 0.9915453791618347 + ], + "score": 1.0182443857192993, + "correct": 0 + }, + { + "img": "s16466.jpg", + "roi": [ + 243.47007751464844, + 137.30450439453125, + 303.875732421875, + 349.5189208984375, + 0.9983716607093811 + ], + "score": 0.9447655081748962, + "correct": 0 + }, + { + "img": "s17436.jpg", + "roi": [ + 109.26282501220703, + 163.93434143066406, + 143.4495086669922, + 271.77020263671875, + 0.9967705011367798 + ], + "score": 0.9103820323944092, + "correct": 0 + }, + { + "img": "s14918.jpg", + "roi": [ + 310.325439453125, + 131.41134643554688, + 413.076171875, + 433.5695495605469, + 0.9987152814865112 + ], + "score": 0.9096845984458923, + "correct": 0 + }, + { + "img": "s18057.jpg", + "roi": [ + 268.8595275878906, + 83.97107696533203, + 357.55242919921875, + 365.4921875, + 0.9941860437393188 + ], + "score": 0.8917914032936096, + "correct": 0 + }, + { + "img": "s12526.jpg", + "roi": [ + 271.80108642578125, + 68.14767456054688, + 366.8846740722656, + 406.6561584472656, + 0.9986720085144043 + ], + "score": 0.8610036969184875, + "correct": 0 + }, + { + "img": "s8040.jpg", + "roi": [ + 2.1918742656707764, + 54.872440338134766, + 81.92153930664062, + 446.40203857421875, + 0.9789863228797913 + ], + "score": 0.8273319602012634, + "correct": 0 + } + ] + }, + { + "query_img": "s16668.jpg", + "query_roi": [ + 369.0, + 138.0, + 460.0, + 426.0 + ], + "query_gt": [ + { + "img": "s16669.jpg", + "roi": [ + 490.0, + 125.0, + 604.0, + 442.0 + ] + }, + { + "img": "s16670.jpg", + "roi": [ + 594.0, + 113.0, + 704.0, + 445.0 + ] + } + ], + "gallery": [ + { + "img": "s13522.jpg", + "roi": [ + 25.665008544921875, + 105.6165771484375, + 168.3365936279297, + 444.43804931640625, + 0.9975671768188477 + ], + "score": 1.1940507888793945, + "correct": 0 + }, + { + "img": "s15729.jpg", + "roi": [ + 620.1214599609375, + 134.06201171875, + 681.8460693359375, + 337.5589904785156, + 0.9959763884544373 + ], + "score": 1.060263752937317, + "correct": 0 + }, + { + "img": "s16669.jpg", + "roi": [ + 485.32769775390625, + 126.08226776123047, + 592.1473999023438, + 442.678955078125, + 0.9974063038825989 + ], + "score": 1.0489306449890137, + "correct": 1 + }, + { + "img": "s17108.jpg", + "roi": [ + 399.91766357421875, + 120.68708038330078, + 454.7052307128906, + 309.676513671875, + 0.9983730316162109 + ], + "score": 1.0108482837677002, + "correct": 0 + }, + { + "img": "s13522.jpg", + "roi": [ + 273.1501770019531, + 127.9695816040039, + 395.21319580078125, + 446.1085205078125, + 0.9986806511878967 + ], + "score": 0.9847813844680786, + "correct": 0 + }, + { + "img": "s7401.jpg", + "roi": [ + 442.840576171875, + 179.12510681152344, + 470.7369384765625, + 268.8780212402344, + 0.9743356704711914 + ], + "score": 0.9841338992118835, + "correct": 0 + }, + { + "img": "s13574.jpg", + "roi": [ + 457.8760986328125, + 129.0489959716797, + 536.0753784179688, + 406.8415832519531, + 0.999125063419342 + ], + "score": 0.9426513314247131, + "correct": 0 + }, + { + "img": "s14894.jpg", + "roi": [ + 503.63165283203125, + 89.37175750732422, + 590.0009155273438, + 400.3944091796875, + 0.9932925701141357 + ], + "score": 0.9265342950820923, + "correct": 0 + }, + { + "img": "s16043.jpg", + "roi": [ + 551.8246459960938, + 213.9945068359375, + 583.19482421875, + 306.3381652832031, + 0.9969727993011475 + ], + "score": 0.8665329217910767, + "correct": 0 + }, + { + "img": "s16043.jpg", + "roi": [ + 371.9670104980469, + 184.1422882080078, + 413.7491149902344, + 312.7735290527344, + 0.998955249786377 + ], + "score": 0.8468272686004639, + "correct": 0 + } + ] + }, + { + "query_img": "s17287.jpg", + "query_roi": [ + 622.0, + 191.0, + 667.0, + 393.0 + ], + "query_gt": [ + { + "img": "s17288.jpg", + "roi": [ + 760.0, + 136.0, + 800.0, + 399.0 + ] + } + ], + "gallery": [ + { + "img": "s12551.jpg", + "roi": [ + 398.7123107910156, + 183.63389587402344, + 460.96722412109375, + 365.6264343261719, + 0.9994601607322693 + ], + "score": 0.7815426588058472, + "correct": 0 + }, + { + "img": "s17288.jpg", + "roi": [ + 756.1694946289062, + 134.34194946289062, + 798.7549438476562, + 403.4105529785156, + 0.5870960354804993 + ], + "score": 0.7768952250480652, + "correct": 1 + }, + { + "img": "s11254.jpg", + "roi": [ + 754.5485229492188, + 170.9235382080078, + 768.7373657226562, + 214.49945068359375, + 0.9844845533370972 + ], + "score": 0.7691627144813538, + "correct": 0 + }, + { + "img": "s16147.jpg", + "roi": [ + 4.0979413986206055, + 87.7815933227539, + 96.46221923828125, + 432.8521423339844, + 0.9936156272888184 + ], + "score": 0.7669286727905273, + "correct": 0 + }, + { + "img": "s12520.jpg", + "roi": [ + 363.092529296875, + 220.28541564941406, + 424.52996826171875, + 409.04779052734375, + 0.9992259740829468 + ], + "score": 0.7629554867744446, + "correct": 0 + }, + { + "img": "s17288.jpg", + "roi": [ + 645.922607421875, + 137.5196533203125, + 717.16259765625, + 400.0213623046875, + 0.9994243383407593 + ], + "score": 0.7247093319892883, + "correct": 0 + }, + { + "img": "s7798.jpg", + "roi": [ + 579.2069702148438, + 101.52928924560547, + 674.1885986328125, + 385.33154296875, + 0.9756126403808594 + ], + "score": 0.7228108644485474, + "correct": 0 + }, + { + "img": "s14357.jpg", + "roi": [ + 301.5360107421875, + 75.18666076660156, + 378.866943359375, + 291.7908020019531, + 0.9990278482437134 + ], + "score": 0.7166891098022461, + "correct": 0 + }, + { + "img": "s14919.jpg", + "roi": [ + 594.6727294921875, + 251.58169555664062, + 620.2528076171875, + 329.8584289550781, + 0.9987836480140686 + ], + "score": 0.7056964039802551, + "correct": 0 + }, + { + "img": "s11254.jpg", + "roi": [ + 735.2801513671875, + 170.60452270507812, + 751.8419189453125, + 222.42483520507812, + 0.9969310760498047 + ], + "score": 0.6997641324996948, + "correct": 0 + } + ] + }, + { + "query_img": "s17108.jpg", + "query_roi": [ + 741.0, + 105.0, + 798.0, + 260.0 + ], + "query_gt": [ + { + "img": "s17104.jpg", + "roi": [ + 587.0, + 189.0, + 632.0, + 310.0 + ] + } + ], + "gallery": [ + { + "img": "s17104.jpg", + "roi": [ + 409.12969970703125, + 185.25277709960938, + 454.01129150390625, + 314.8045654296875, + 0.9993895292282104 + ], + "score": 1.32526433467865, + "correct": 0 + }, + { + "img": "s17104.jpg", + "roi": [ + 586.6773071289062, + 183.1625518798828, + 630.5772094726562, + 315.845703125, + 0.9995226860046387 + ], + "score": 1.312854528427124, + "correct": 1 + }, + { + "img": "s17104.jpg", + "roi": [ + 461.1519775390625, + 179.45877075195312, + 500.05731201171875, + 311.12738037109375, + 0.9990554451942444 + ], + "score": 1.265832543373108, + "correct": 0 + }, + { + "img": "s15308.jpg", + "roi": [ + 443.6093444824219, + 105.4167251586914, + 510.00848388671875, + 317.51953125, + 0.9413696527481079 + ], + "score": 0.9885598421096802, + "correct": 0 + }, + { + "img": "s13467.jpg", + "roi": [ + 68.76750183105469, + 56.287506103515625, + 205.60894775390625, + 446.0085144042969, + 0.999316930770874 + ], + "score": 0.9330407977104187, + "correct": 0 + }, + { + "img": "s11078.jpg", + "roi": [ + 724.0445556640625, + 157.87930297851562, + 752.5308837890625, + 240.1109161376953, + 0.999574601650238 + ], + "score": 0.8606758117675781, + "correct": 0 + }, + { + "img": "s17104.jpg", + "roi": [ + 529.296142578125, + 178.10528564453125, + 560.5435791015625, + 300.08343505859375, + 0.9813588261604309 + ], + "score": 0.8260044455528259, + "correct": 0 + }, + { + "img": "s17427.jpg", + "roi": [ + 689.5394287109375, + 94.04489135742188, + 721.1207885742188, + 195.5727996826172, + 0.997627317905426 + ], + "score": 0.7999306917190552, + "correct": 0 + }, + { + "img": "s11079.jpg", + "roi": [ + 717.1094970703125, + 169.40597534179688, + 746.1810913085938, + 253.30059814453125, + 0.9989482760429382 + ], + "score": 0.7946681976318359, + "correct": 0 + }, + { + "img": "s17635.jpg", + "roi": [ + 484.6976623535156, + 33.72998046875, + 597.9586791992188, + 385.6424255371094, + 0.9996638298034668 + ], + "score": 0.7937242984771729, + "correct": 0 + } + ] + }, + { + "query_img": "s16106.jpg", + "query_roi": [ + 600.0, + 110.0, + 639.0, + 206.0 + ], + "query_gt": [ + { + "img": "s16107.jpg", + "roi": [ + 595.0, + 107.0, + 629.0, + 177.0 + ] + }, + { + "img": "s16108.jpg", + "roi": [ + 625.0, + 101.0, + 650.0, + 155.0 + ] + } + ], + "gallery": [ + { + "img": "s16107.jpg", + "roi": [ + 89.91218566894531, + 56.83658981323242, + 132.6228790283203, + 186.3544921875, + 0.998977780342102 + ], + "score": 1.343616008758545, + "correct": 0 + }, + { + "img": "s16108.jpg", + "roi": [ + 320.52789306640625, + 71.94485473632812, + 347.75634765625, + 153.37142944335938, + 0.9958838820457458 + ], + "score": 1.1951960325241089, + "correct": 0 + }, + { + "img": "s16107.jpg", + "roi": [ + 600.3154907226562, + 108.16515350341797, + 623.4274291992188, + 178.48175048828125, + 0.7037192583084106 + ], + "score": 1.1202342510223389, + "correct": 1 + }, + { + "img": "s18160.jpg", + "roi": [ + 298.11505126953125, + 207.25051879882812, + 334.8326416015625, + 348.5309143066406, + 0.9814252853393555 + ], + "score": 1.00054931640625, + "correct": 0 + }, + { + "img": "s15754.jpg", + "roi": [ + 323.5435791015625, + 239.50376892089844, + 358.14306640625, + 347.65966796875, + 0.9986556768417358 + ], + "score": 0.9520630240440369, + "correct": 0 + }, + { + "img": "s9785.jpg", + "roi": [ + 417.36236572265625, + 230.07077026367188, + 446.26690673828125, + 320.68841552734375, + 0.9931174516677856 + ], + "score": 0.9192862510681152, + "correct": 0 + }, + { + "img": "s13028.jpg", + "roi": [ + 239.0540313720703, + 31.516212463378906, + 463.9579772949219, + 443.93927001953125, + 0.9836527109146118 + ], + "score": 0.9052734375, + "correct": 0 + }, + { + "img": "s16108.jpg", + "roi": [ + 631.1328735351562, + 103.7426528930664, + 651.2345581054688, + 157.77151489257812, + 0.7571433782577515 + ], + "score": 0.9035540819168091, + "correct": 1 + }, + { + "img": "s15754.jpg", + "roi": [ + 61.217952728271484, + 206.8125457763672, + 137.94000244140625, + 413.8142395019531, + 0.9991570711135864 + ], + "score": 0.8887055516242981, + "correct": 0 + }, + { + "img": "s16108.jpg", + "roi": [ + 204.97518920898438, + 225.23585510253906, + 283.2374267578125, + 446.3054504394531, + 0.9937855005264282 + ], + "score": 0.8806391954421997, + "correct": 0 + } + ] + }, + { + "query_img": "s16040.jpg", + "query_roi": [ + 154.0, + 145.0, + 232.0, + 392.0 + ], + "query_gt": [ + { + "img": "s16039.jpg", + "roi": [ + 135.0, + 181.0, + 197.0, + 383.0 + ] + } + ], + "gallery": [ + { + "img": "s16039.jpg", + "roi": [ + 323.462158203125, + 187.16751098632812, + 383.15728759765625, + 380.4989318847656, + 0.9986880421638489 + ], + "score": 1.495132565498352, + "correct": 0 + }, + { + "img": "s16039.jpg", + "roi": [ + 387.1771240234375, + 201.83949279785156, + 452.83135986328125, + 382.8663024902344, + 0.9945411086082458 + ], + "score": 1.1465840339660645, + "correct": 0 + }, + { + "img": "s16039.jpg", + "roi": [ + 133.00303649902344, + 187.35084533691406, + 193.4360809326172, + 384.31622314453125, + 0.7606494426727295 + ], + "score": 1.0739198923110962, + "correct": 1 + }, + { + "img": "s16039.jpg", + "roi": [ + 170.22740173339844, + 201.67391967773438, + 227.95106506347656, + 378.52545166015625, + 0.9751390218734741 + ], + "score": 1.0462042093276978, + "correct": 0 + }, + { + "img": "s15163.jpg", + "roi": [ + 347.838623046875, + 177.65457153320312, + 417.8289794921875, + 376.5128479003906, + 0.999481737613678 + ], + "score": 0.9875603318214417, + "correct": 0 + }, + { + "img": "s16039.jpg", + "roi": [ + 271.36163330078125, + 231.2930450439453, + 310.71527099609375, + 350.10467529296875, + 0.9948646426200867 + ], + "score": 0.8664917945861816, + "correct": 0 + }, + { + "img": "s16039.jpg", + "roi": [ + 237.7655029296875, + 224.1175537109375, + 279.58453369140625, + 344.4845275878906, + 0.6588204503059387 + ], + "score": 0.84083092212677, + "correct": 0 + }, + { + "img": "s15591.jpg", + "roi": [ + 323.0137634277344, + 162.21095275878906, + 402.45281982421875, + 419.06719970703125, + 0.9926121830940247 + ], + "score": 0.7749584913253784, + "correct": 0 + }, + { + "img": "s16039.jpg", + "roi": [ + 473.0978698730469, + 179.57342529296875, + 560.8912353515625, + 436.3851013183594, + 0.8848182559013367 + ], + "score": 0.7182568907737732, + "correct": 0 + }, + { + "img": "s1715.jpg", + "roi": [ + 28.772926330566406, + 184.07647705078125, + 57.5909538269043, + 261.2762451171875, + 0.9978353381156921 + ], + "score": 0.7156274914741516, + "correct": 0 + } + ] + }, + { + "query_img": "s15100.jpg", + "query_roi": [ + 422.0, + 175.0, + 464.0, + 290.0 + ], + "query_gt": [ + { + "img": "s15099.jpg", + "roi": [ + 353.0, + 104.0, + 474.0, + 442.0 + ] + } + ], + "gallery": [ + { + "img": "s15099.jpg", + "roi": [ + 451.8227844238281, + 193.12693786621094, + 516.8264770507812, + 405.2157897949219, + 0.9988590478897095 + ], + "score": 0.8929620385169983, + "correct": 0 + }, + { + "img": "s15099.jpg", + "roi": [ + 163.69786071777344, + 191.34451293945312, + 239.84347534179688, + 416.6295166015625, + 0.999337375164032 + ], + "score": 0.8809235692024231, + "correct": 0 + }, + { + "img": "s15279.jpg", + "roi": [ + 114.14061737060547, + 165.57455444335938, + 166.00643920898438, + 315.1787414550781, + 0.9970325231552124 + ], + "score": 0.8338722586631775, + "correct": 0 + }, + { + "img": "s15099.jpg", + "roi": [ + 361.71868896484375, + 100.65613555908203, + 474.5950622558594, + 436.46923828125, + 0.9989213943481445 + ], + "score": 0.7929001450538635, + "correct": 1 + }, + { + "img": "s15749.jpg", + "roi": [ + 149.38706970214844, + 194.08401489257812, + 202.53384399414062, + 372.89532470703125, + 0.998895525932312 + ], + "score": 0.7650287747383118, + "correct": 0 + }, + { + "img": "s14087.jpg", + "roi": [ + 531.5059814453125, + 139.58689880371094, + 570.0328979492188, + 262.5892333984375, + 0.9991127848625183 + ], + "score": 0.7582935094833374, + "correct": 0 + }, + { + "img": "s18184.jpg", + "roi": [ + 370.7320556640625, + 80.77508544921875, + 457.7444152832031, + 318.9403076171875, + 0.999159574508667 + ], + "score": 0.7513765692710876, + "correct": 0 + }, + { + "img": "s15959.jpg", + "roi": [ + 643.0822143554688, + 152.4087677001953, + 688.4638671875, + 295.9208984375, + 0.9989526271820068 + ], + "score": 0.7298429608345032, + "correct": 0 + }, + { + "img": "s15224.jpg", + "roi": [ + 67.16915130615234, + 126.37680053710938, + 139.47799682617188, + 348.5503845214844, + 0.9993038177490234 + ], + "score": 0.6940782070159912, + "correct": 0 + }, + { + "img": "s15279.jpg", + "roi": [ + 333.00445556640625, + 156.98675537109375, + 402.7054138183594, + 336.5614013671875, + 0.9974538683891296 + ], + "score": 0.6919111013412476, + "correct": 0 + } + ] + }, + { + "query_img": "s15540.jpg", + "query_roi": [ + 234.0, + 86.0, + 365.0, + 444.0 + ], + "query_gt": [ + { + "img": "s15538.jpg", + "roi": [ + 423.0, + 135.0, + 483.0, + 303.0 + ] + } + ], + "gallery": [ + { + "img": "s15751.jpg", + "roi": [ + 164.8709259033203, + 169.0234375, + 236.32261657714844, + 384.1962585449219, + 0.9991165995597839 + ], + "score": 1.2222034931182861, + "correct": 0 + }, + { + "img": "s16208.jpg", + "roi": [ + 7.885371208190918, + 196.72169494628906, + 40.99403762817383, + 296.94683837890625, + 0.9995187520980835 + ], + "score": 0.9233443140983582, + "correct": 0 + }, + { + "img": "s14689.jpg", + "roi": [ + 296.1690673828125, + 41.560142517089844, + 346.32855224609375, + 206.68911743164062, + 0.9739989638328552 + ], + "score": 0.8683776259422302, + "correct": 0 + }, + { + "img": "s14689.jpg", + "roi": [ + 719.2392578125, + 56.9217529296875, + 785.07177734375, + 253.31712341308594, + 0.9978518486022949 + ], + "score": 0.8387885689735413, + "correct": 0 + }, + { + "img": "s15751.jpg", + "roi": [ + 151.32574462890625, + 193.80221557617188, + 199.03533935546875, + 370.8132629394531, + 0.9887318015098572 + ], + "score": 0.775583803653717, + "correct": 0 + }, + { + "img": "s7860.jpg", + "roi": [ + 372.5728759765625, + 227.3603057861328, + 416.2677917480469, + 351.8566589355469, + 0.9994577765464783 + ], + "score": 0.7653923034667969, + "correct": 0 + }, + { + "img": "s2451.jpg", + "roi": [ + 513.892333984375, + 194.24093627929688, + 595.0065307617188, + 419.8161315917969, + 0.9997809529304504 + ], + "score": 0.7540611028671265, + "correct": 0 + }, + { + "img": "s15538.jpg", + "roi": [ + 418.7048645019531, + 137.97389221191406, + 479.9060363769531, + 303.31060791015625, + 0.9993410706520081 + ], + "score": 0.7140710353851318, + "correct": 1 + }, + { + "img": "s16411.jpg", + "roi": [ + 578.5698852539062, + 121.46924591064453, + 651.379638671875, + 402.0306701660156, + 0.9992774128913879 + ], + "score": 0.6822608113288879, + "correct": 0 + }, + { + "img": "s14914.jpg", + "roi": [ + 373.0412292480469, + 171.42274475097656, + 467.51531982421875, + 436.8356018066406, + 0.9841930270195007 + ], + "score": 0.677623450756073, + "correct": 0 + } + ] + }, + { + "query_img": "s16822.jpg", + "query_roi": [ + 63.0, + 132.0, + 169.0, + 445.0 + ], + "query_gt": [ + { + "img": "s16820.jpg", + "roi": [ + 209.0, + 255.0, + 243.0, + 355.0 + ] + }, + { + "img": "s16821.jpg", + "roi": [ + 185.0, + 121.0, + 268.0, + 398.0 + ] + } + ], + "gallery": [ + { + "img": "s16821.jpg", + "roi": [ + 261.739013671875, + 119.46434020996094, + 340.895751953125, + 413.2261047363281, + 0.9991257786750793 + ], + "score": 1.3458911180496216, + "correct": 0 + }, + { + "img": "s16821.jpg", + "roi": [ + 184.5850372314453, + 122.70550537109375, + 275.9163818359375, + 414.75335693359375, + 0.9983680844306946 + ], + "score": 1.2957303524017334, + "correct": 1 + }, + { + "img": "s16821.jpg", + "roi": [ + 409.3837585449219, + 122.40321350097656, + 499.52203369140625, + 399.7969665527344, + 0.9922637939453125 + ], + "score": 1.0561035871505737, + "correct": 0 + }, + { + "img": "s16263.jpg", + "roi": [ + 382.2728271484375, + 130.3375701904297, + 471.995361328125, + 425.19769287109375, + 0.999175488948822 + ], + "score": 0.9361298084259033, + "correct": 0 + }, + { + "img": "s16820.jpg", + "roi": [ + 213.91543579101562, + 252.6907958984375, + 254.08982849121094, + 357.4658508300781, + 0.9874916076660156 + ], + "score": 0.9013544917106628, + "correct": 1 + }, + { + "img": "s16263.jpg", + "roi": [ + 275.3280334472656, + 100.73424530029297, + 375.3702392578125, + 416.90997314453125, + 0.9986242055892944 + ], + "score": 0.8305085301399231, + "correct": 0 + }, + { + "img": "s7927.jpg", + "roi": [ + 396.1114501953125, + 33.18610763549805, + 487.78912353515625, + 352.32159423828125, + 0.9995536208152771 + ], + "score": 0.8174952268600464, + "correct": 0 + }, + { + "img": "s17225.jpg", + "roi": [ + 389.2317810058594, + 252.12171936035156, + 411.33941650390625, + 321.1102600097656, + 0.9963493347167969 + ], + "score": 0.8110469579696655, + "correct": 0 + }, + { + "img": "s17923.jpg", + "roi": [ + 135.58868408203125, + 82.47203063964844, + 209.017333984375, + 339.7464904785156, + 0.9993119239807129 + ], + "score": 0.8059582710266113, + "correct": 0 + }, + { + "img": "s16820.jpg", + "roi": [ + 148.19349670410156, + 255.6217803955078, + 181.1429443359375, + 353.9543762207031, + 0.9989063739776611 + ], + "score": 0.8057864308357239, + "correct": 0 + } + ] + }, + { + "query_img": "s17028.jpg", + "query_roi": [ + 6.0, + 104.0, + 32.0, + 174.0 + ], + "query_gt": [ + { + "img": "s17029.jpg", + "roi": [ + 218.0, + 96.0, + 288.0, + 347.0 + ] + }, + { + "img": "s17030.jpg", + "roi": [ + 171.0, + 100.0, + 261.0, + 388.0 + ] + } + ], + "gallery": [ + { + "img": "s11098.jpg", + "roi": [ + 407.6764831542969, + 197.6007843017578, + 428.8121643066406, + 252.84344482421875, + 0.9978391528129578 + ], + "score": 1.0979490280151367, + "correct": 0 + }, + { + "img": "s17029.jpg", + "roi": [ + 321.5241394042969, + 111.41268920898438, + 379.6430969238281, + 284.91107177734375, + 0.9994468092918396 + ], + "score": 1.0798484086990356, + "correct": 0 + }, + { + "img": "s11098.jpg", + "roi": [ + 436.3450622558594, + 172.601318359375, + 481.6463928222656, + 296.3848571777344, + 0.9997590184211731 + ], + "score": 0.9734429121017456, + "correct": 0 + }, + { + "img": "s11257.jpg", + "roi": [ + 38.938987731933594, + 235.25775146484375, + 67.27824401855469, + 301.5190734863281, + 0.9975499510765076 + ], + "score": 0.9732664823532104, + "correct": 0 + }, + { + "img": "s1715.jpg", + "roi": [ + 402.0399169921875, + 201.48692321777344, + 430.0793151855469, + 288.07855224609375, + 0.9907351732254028 + ], + "score": 0.9730687737464905, + "correct": 0 + }, + { + "img": "s17030.jpg", + "roi": [ + 291.3699645996094, + 103.52635955810547, + 387.1977844238281, + 399.59814453125, + 0.9999133348464966 + ], + "score": 0.9560877084732056, + "correct": 0 + }, + { + "img": "s11098.jpg", + "roi": [ + 757.3552856445312, + 145.56344604492188, + 794.888671875, + 259.62530517578125, + 0.9997852444648743 + ], + "score": 0.9536508917808533, + "correct": 0 + }, + { + "img": "s18114.jpg", + "roi": [ + 441.281982421875, + 292.4131774902344, + 460.6545104980469, + 347.7313537597656, + 0.9756917953491211 + ], + "score": 0.9502338171005249, + "correct": 0 + }, + { + "img": "s17030.jpg", + "roi": [ + 163.82888793945312, + 97.87120819091797, + 265.27410888671875, + 418.838134765625, + 0.9985136389732361 + ], + "score": 0.9495500326156616, + "correct": 1 + }, + { + "img": "s18114.jpg", + "roi": [ + 623.1170654296875, + 292.7319030761719, + 653.4625244140625, + 379.2220153808594, + 0.9987805485725403 + ], + "score": 0.9436594247817993, + "correct": 0 + } + ] + }, + { + "query_img": "s15011.jpg", + "query_roi": [ + 233.0, + 71.0, + 327.0, + 409.0 + ], + "query_gt": [ + { + "img": "s15010.jpg", + "roi": [ + 426.0, + 76.0, + 506.0, + 358.0 + ] + }, + { + "img": "s15012.jpg", + "roi": [ + 643.0, + 196.0, + 736.0, + 447.0 + ] + }, + { + "img": "s15013.jpg", + "roi": [ + 379.0, + 67.0, + 521.0, + 446.0 + ] + }, + { + "img": "s15014.jpg", + "roi": [ + 605.0, + 43.0, + 743.0, + 446.0 + ] + }, + { + "img": "s15009.jpg", + "roi": [ + 519.0, + 85.0, + 593.0, + 369.0 + ] + }, + { + "img": "s15015.jpg", + "roi": [ + 210.0, + 26.0, + 333.0, + 417.0 + ] + }, + { + "img": "s15002.jpg", + "roi": [ + 112.0, + 8.0, + 277.0, + 451.0 + ] + } + ], + "gallery": [ + { + "img": "s15009.jpg", + "roi": [ + 597.9441528320312, + 76.10295867919922, + 684.9189453125, + 426.4443054199219, + 0.9946746826171875 + ], + "score": 1.2377164363861084, + "correct": 0 + }, + { + "img": "s15010.jpg", + "roi": [ + 435.86492919921875, + 74.30790710449219, + 526.3389892578125, + 352.532470703125, + 0.9993242025375366 + ], + "score": 1.1144559383392334, + "correct": 1 + }, + { + "img": "s15158.jpg", + "roi": [ + 28.89284896850586, + 0.9799889326095581, + 284.88409423828125, + 447.3572692871094, + 0.9899185299873352 + ], + "score": 1.0912843942642212, + "correct": 0 + }, + { + "img": "s15158.jpg", + "roi": [ + 448.4781494140625, + 169.73170471191406, + 510.1698913574219, + 361.393310546875, + 0.9961690306663513 + ], + "score": 1.0783182382583618, + "correct": 0 + }, + { + "img": "s15015.jpg", + "roi": [ + 629.3341674804688, + 53.224063873291016, + 750.04638671875, + 437.8033752441406, + 0.9995096921920776 + ], + "score": 1.0716522932052612, + "correct": 0 + }, + { + "img": "s15010.jpg", + "roi": [ + 637.6276245117188, + 70.61275482177734, + 712.5284423828125, + 355.8868103027344, + 0.9823920130729675 + ], + "score": 1.054385781288147, + "correct": 0 + }, + { + "img": "s15158.jpg", + "roi": [ + 352.11083984375, + 140.6332244873047, + 415.50250244140625, + 356.612548828125, + 0.9981279969215393 + ], + "score": 1.0522969961166382, + "correct": 0 + }, + { + "img": "s15002.jpg", + "roi": [ + 649.0308227539062, + 50.48537063598633, + 773.739013671875, + 431.7314758300781, + 0.998805046081543 + ], + "score": 1.0359913110733032, + "correct": 0 + }, + { + "img": "s15009.jpg", + "roi": [ + 511.2579040527344, + 83.3091812133789, + 610.5169067382812, + 376.9436340332031, + 0.9997660517692566 + ], + "score": 1.0296900272369385, + "correct": 1 + }, + { + "img": "s15002.jpg", + "roi": [ + 428.9501953125, + 49.9188232421875, + 548.178466796875, + 442.1332092285156, + 0.9976298809051514 + ], + "score": 1.0267372131347656, + "correct": 0 + } + ] + }, + { + "query_img": "s13606.jpg", + "query_roi": [ + 195.0, + 161.0, + 263.0, + 401.0 + ], + "query_gt": [ + { + "img": "s13605.jpg", + "roi": [ + 314.0, + 123.0, + 376.0, + 298.0 + ] + } + ], + "gallery": [ + { + "img": "s13893.jpg", + "roi": [ + 231.42752075195312, + 166.84768676757812, + 259.9455871582031, + 257.9963684082031, + 0.9574189186096191 + ], + "score": 0.8169848322868347, + "correct": 0 + }, + { + "img": "s16444.jpg", + "roi": [ + 617.4773559570312, + 146.96630859375, + 675.2882080078125, + 342.1047668457031, + 0.885277509689331 + ], + "score": 0.8147414922714233, + "correct": 0 + }, + { + "img": "s13893.jpg", + "roi": [ + 249.2332305908203, + 158.20266723632812, + 274.52508544921875, + 243.11105346679688, + 0.885037899017334 + ], + "score": 0.789310872554779, + "correct": 0 + }, + { + "img": "s17605.jpg", + "roi": [ + 398.9744567871094, + 58.34616470336914, + 488.6123046875, + 351.13458251953125, + 0.9995540976524353 + ], + "score": 0.7377105951309204, + "correct": 0 + }, + { + "img": "s13893.jpg", + "roi": [ + 492.154541015625, + 153.00003051757812, + 518.6144409179688, + 225.3751678466797, + 0.9340082406997681 + ], + "score": 0.7266813516616821, + "correct": 0 + }, + { + "img": "s12540.jpg", + "roi": [ + 524.6561889648438, + 68.9429702758789, + 571.4100952148438, + 237.98345947265625, + 0.9606986045837402 + ], + "score": 0.7229447364807129, + "correct": 0 + }, + { + "img": "s12201.jpg", + "roi": [ + 397.5264892578125, + 335.8103942871094, + 415.40350341796875, + 396.08502197265625, + 0.9819091558456421 + ], + "score": 0.7149625420570374, + "correct": 0 + }, + { + "img": "s10856.jpg", + "roi": [ + 253.53480529785156, + 128.19984436035156, + 278.00701904296875, + 204.6287384033203, + 0.7410127520561218 + ], + "score": 0.7072021961212158, + "correct": 0 + }, + { + "img": "s17592.jpg", + "roi": [ + 549.28369140625, + 54.25172424316406, + 593.930419921875, + 189.23680114746094, + 0.9996004700660706 + ], + "score": 0.7019387483596802, + "correct": 0 + }, + { + "img": "s8838.jpg", + "roi": [ + 4.4646148681640625, + 299.15399169921875, + 58.73603820800781, + 492.1831970214844, + 0.9732442498207092 + ], + "score": 0.6840307712554932, + "correct": 0 + } + ] + }, + { + "query_img": "s17275.jpg", + "query_roi": [ + 171.0, + 66.0, + 247.0, + 411.0 + ], + "query_gt": [ + { + "img": "s17276.jpg", + "roi": [ + 352.0, + 103.0, + 436.0, + 399.0 + ] + } + ], + "gallery": [ + { + "img": "s16757.jpg", + "roi": [ + 270.8829345703125, + 192.3394317626953, + 328.1238098144531, + 383.8196105957031, + 0.9965181350708008 + ], + "score": 1.2286759614944458, + "correct": 0 + }, + { + "img": "s17276.jpg", + "roi": [ + 341.9615478515625, + 99.00861358642578, + 443.8957214355469, + 425.337646484375, + 0.9997041821479797 + ], + "score": 1.08059823513031, + "correct": 1 + }, + { + "img": "s12556.jpg", + "roi": [ + 410.038330078125, + 36.254638671875, + 511.40521240234375, + 401.7548828125, + 0.9957161545753479 + ], + "score": 0.9694859385490417, + "correct": 0 + }, + { + "img": "s16757.jpg", + "roi": [ + 3.843689203262329, + 179.55877685546875, + 73.89093780517578, + 437.1343078613281, + 0.9974562525749207 + ], + "score": 0.9180454015731812, + "correct": 0 + }, + { + "img": "s14941.jpg", + "roi": [ + 104.79436492919922, + 111.66500854492188, + 205.12149047851562, + 426.9660339355469, + 0.9926859140396118 + ], + "score": 0.8986848592758179, + "correct": 0 + }, + { + "img": "s16757.jpg", + "roi": [ + 55.87444305419922, + 24.058609008789062, + 245.90199279785156, + 444.68524169921875, + 0.9989058971405029 + ], + "score": 0.8671709895133972, + "correct": 0 + }, + { + "img": "s17646.jpg", + "roi": [ + 355.36907958984375, + 254.23834228515625, + 405.1221008300781, + 413.6464538574219, + 0.9994661211967468 + ], + "score": 0.8607259392738342, + "correct": 0 + }, + { + "img": "s7419.jpg", + "roi": [ + 399.8424072265625, + 142.3946075439453, + 452.3713684082031, + 305.2249755859375, + 0.9995177984237671 + ], + "score": 0.821011483669281, + "correct": 0 + }, + { + "img": "s13258.jpg", + "roi": [ + 129.6576385498047, + 133.55572509765625, + 185.3054656982422, + 303.31500244140625, + 0.9979487061500549 + ], + "score": 0.8152920007705688, + "correct": 0 + }, + { + "img": "s16757.jpg", + "roi": [ + 606.4743041992188, + 158.33810424804688, + 692.2435913085938, + 443.1000671386719, + 0.9996604919433594 + ], + "score": 0.8117392063140869, + "correct": 0 + } + ] + }, + { + "query_img": "s12607.jpg", + "query_roi": [ + 351.0, + 71.0, + 429.0, + 371.0 + ], + "query_gt": [ + { + "img": "s12606.jpg", + "roi": [ + 276.0, + 89.0, + 338.0, + 328.0 + ] + } + ], + "gallery": [ + { + "img": "s12606.jpg", + "roi": [ + 437.25897216796875, + 47.06925964355469, + 531.9904174804688, + 361.9602966308594, + 0.9986053109169006 + ], + "score": 1.5920467376708984, + "correct": 0 + }, + { + "img": "s12606.jpg", + "roi": [ + 533.3082275390625, + 76.13592529296875, + 600.7188110351562, + 335.56365966796875, + 0.9969025254249573 + ], + "score": 1.542778491973877, + "correct": 0 + }, + { + "img": "s12606.jpg", + "roi": [ + 567.1658935546875, + 70.21630859375, + 638.5496215820312, + 366.33734130859375, + 0.9896728992462158 + ], + "score": 1.4224687814712524, + "correct": 0 + }, + { + "img": "s12606.jpg", + "roi": [ + 607.8372802734375, + 66.94966125488281, + 712.0113525390625, + 423.5567321777344, + 0.9623450636863708 + ], + "score": 1.358055591583252, + "correct": 0 + }, + { + "img": "s12606.jpg", + "roi": [ + 369.26397705078125, + 64.07018280029297, + 451.1845703125, + 327.888671875, + 0.999527096748352 + ], + "score": 1.3418664932250977, + "correct": 0 + }, + { + "img": "s12606.jpg", + "roi": [ + 269.73040771484375, + 86.86744689941406, + 339.4227294921875, + 328.7117004394531, + 0.9697922468185425 + ], + "score": 1.323846697807312, + "correct": 1 + }, + { + "img": "s12606.jpg", + "roi": [ + 87.12396240234375, + 80.1871337890625, + 157.71095275878906, + 325.0094299316406, + 0.8906505107879639 + ], + "score": 1.1370359659194946, + "correct": 0 + }, + { + "img": "s12606.jpg", + "roi": [ + 20.955371856689453, + 35.477352142333984, + 109.92863464355469, + 390.149169921875, + 0.9867114424705505 + ], + "score": 0.9646973013877869, + "correct": 0 + }, + { + "img": "s15360.jpg", + "roi": [ + 350.42364501953125, + 127.81806945800781, + 444.84735107421875, + 413.7637939453125, + 0.9918163418769836 + ], + "score": 0.9610233902931213, + "correct": 0 + }, + { + "img": "s16998.jpg", + "roi": [ + 304.3140563964844, + 115.72803497314453, + 370.7583923339844, + 331.1864013671875, + 0.9643062353134155 + ], + "score": 0.9516618847846985, + "correct": 0 + } + ] + }, + { + "query_img": "s13388.jpg", + "query_roi": [ + 425.0, + 74.0, + 537.0, + 431.0 + ], + "query_gt": [ + { + "img": "s13460.jpg", + "roi": [ + 250.0, + 245.0, + 275.0, + 312.0 + ] + } + ], + "gallery": [ + { + "img": "s10947.jpg", + "roi": [ + 555.8289794921875, + 177.8622589111328, + 577.451416015625, + 244.55592346191406, + 0.9923033714294434 + ], + "score": 0.8506075739860535, + "correct": 0 + }, + { + "img": "s14895.jpg", + "roi": [ + 655.6016235351562, + 118.70799255371094, + 748.9097900390625, + 386.4491271972656, + 0.9994984865188599 + ], + "score": 0.8347271680831909, + "correct": 0 + }, + { + "img": "s11728.jpg", + "roi": [ + 1.613303303718567, + 226.238037109375, + 58.37946701049805, + 424.2193603515625, + 0.9988042116165161 + ], + "score": 0.8328114748001099, + "correct": 0 + }, + { + "img": "s2645.jpg", + "roi": [ + 1.0462443828582764, + 83.1259765625, + 88.92424011230469, + 419.9849853515625, + 0.9991989731788635 + ], + "score": 0.8212448954582214, + "correct": 0 + }, + { + "img": "s922.jpg", + "roi": [ + 513.93603515625, + 39.11077880859375, + 570.2987060546875, + 213.89938354492188, + 0.999457061290741 + ], + "score": 0.8059149980545044, + "correct": 0 + }, + { + "img": "s14032.jpg", + "roi": [ + 286.8912658691406, + 63.52568054199219, + 354.8819580078125, + 271.32440185546875, + 0.9996836185455322 + ], + "score": 0.7844472527503967, + "correct": 0 + }, + { + "img": "s14032.jpg", + "roi": [ + 165.45021057128906, + 61.056434631347656, + 222.7583465576172, + 246.66481018066406, + 0.9917130470275879 + ], + "score": 0.7666103839874268, + "correct": 0 + }, + { + "img": "s11728.jpg", + "roi": [ + 90.5570068359375, + 244.82403564453125, + 154.5900115966797, + 441.84539794921875, + 0.9995837807655334 + ], + "score": 0.7452055811882019, + "correct": 0 + }, + { + "img": "s14032.jpg", + "roi": [ + 111.51703643798828, + 108.16077423095703, + 201.89305114746094, + 338.5018005371094, + 0.996631920337677 + ], + "score": 0.7450816035270691, + "correct": 0 + }, + { + "img": "s13728.jpg", + "roi": [ + 598.3800659179688, + 139.654541015625, + 678.668212890625, + 377.9765319824219, + 0.9997143149375916 + ], + "score": 0.7437577843666077, + "correct": 0 + } + ] + }, + { + "query_img": "s10322.jpg", + "query_roi": [ + 257.0, + 102.0, + 293.0, + 200.0 + ], + "query_gt": [ + { + "img": "s10323.jpg", + "roi": [ + 246.0, + 237.0, + 315.0, + 421.0 + ] + } + ], + "gallery": [ + { + "img": "s11328.jpg", + "roi": [ + 22.095075607299805, + 300.4231872558594, + 42.957496643066406, + 358.2317199707031, + 0.9979743361473083 + ], + "score": 1.1067410707473755, + "correct": 0 + }, + { + "img": "s10323.jpg", + "roi": [ + 240.23631286621094, + 237.3770751953125, + 312.19512939453125, + 425.7946472167969, + 0.9993732571601868 + ], + "score": 1.0840023756027222, + "correct": 1 + }, + { + "img": "s11328.jpg", + "roi": [ + 266.8111572265625, + 241.63687133789062, + 329.41925048828125, + 433.1604309082031, + 0.9964711666107178 + ], + "score": 0.9726477265357971, + "correct": 0 + }, + { + "img": "s4791.jpg", + "roi": [ + 117.57502746582031, + 40.34403610229492, + 315.0556335449219, + 556.8665161132812, + 0.9997993111610413 + ], + "score": 0.9165809750556946, + "correct": 0 + }, + { + "img": "s4672.jpg", + "roi": [ + 385.7501220703125, + 268.5950927734375, + 404.3456726074219, + 325.77972412109375, + 0.9902295470237732 + ], + "score": 0.9136576652526855, + "correct": 0 + }, + { + "img": "s5211.jpg", + "roi": [ + 228.12066650390625, + 425.9737243652344, + 301.8941955566406, + 627.5289916992188, + 0.9995998740196228 + ], + "score": 0.9079745411872864, + "correct": 0 + }, + { + "img": "s9658.jpg", + "roi": [ + 226.27659606933594, + 90.0421371459961, + 257.07952880859375, + 192.53692626953125, + 0.9978420734405518 + ], + "score": 0.8962008953094482, + "correct": 0 + }, + { + "img": "s17512.jpg", + "roi": [ + 72.22391510009766, + 172.75181579589844, + 132.8544921875, + 349.0014953613281, + 0.999288022518158 + ], + "score": 0.8739975690841675, + "correct": 0 + }, + { + "img": "s11328.jpg", + "roi": [ + 247.9894561767578, + 230.82940673828125, + 290.4811096191406, + 360.6130065917969, + 0.9981459379196167 + ], + "score": 0.8493698239326477, + "correct": 0 + }, + { + "img": "s10285.jpg", + "roi": [ + 292.32379150390625, + 115.46568298339844, + 317.02618408203125, + 181.77511596679688, + 0.998532772064209 + ], + "score": 0.8135749697685242, + "correct": 0 + } + ] + }, + { + "query_img": "s7499.jpg", + "query_roi": [ + 371.0, + 161.0, + 468.0, + 448.0 + ], + "query_gt": [ + { + "img": "s7500.jpg", + "roi": [ + 344.0, + 114.0, + 461.0, + 449.0 + ] + } + ], + "gallery": [ + { + "img": "s7500.jpg", + "roi": [ + 302.9269714355469, + 105.06044006347656, + 399.79473876953125, + 443.8475646972656, + 0.9984332919120789 + ], + "score": 1.420584797859192, + "correct": 0 + }, + { + "img": "s7500.jpg", + "roi": [ + 356.3381042480469, + 109.7490005493164, + 459.35394287109375, + 447.3091125488281, + 0.9996322393417358 + ], + "score": 1.4105162620544434, + "correct": 1 + }, + { + "img": "s7500.jpg", + "roi": [ + 123.0229721069336, + 151.0869140625, + 216.1238555908203, + 440.54608154296875, + 0.9997774958610535 + ], + "score": 0.9897527098655701, + "correct": 0 + }, + { + "img": "s262.jpg", + "roi": [ + 319.49383544921875, + 204.5614471435547, + 356.9264831542969, + 329.6416015625, + 0.9993471503257751 + ], + "score": 0.775531530380249, + "correct": 0 + }, + { + "img": "s262.jpg", + "roi": [ + 386.4067077636719, + 207.64517211914062, + 429.54083251953125, + 341.8569030761719, + 0.9953859448432922 + ], + "score": 0.7413476705551147, + "correct": 0 + }, + { + "img": "s14383.jpg", + "roi": [ + 297.5337829589844, + 214.90980529785156, + 352.5622253417969, + 365.59368896484375, + 0.9988465309143066 + ], + "score": 0.7140383124351501, + "correct": 0 + }, + { + "img": "s7500.jpg", + "roi": [ + 640.5711669921875, + 166.63121032714844, + 655.8807983398438, + 214.2135772705078, + 0.9896570444107056 + ], + "score": 0.6997638940811157, + "correct": 0 + }, + { + "img": "s1678.jpg", + "roi": [ + 158.5013885498047, + 191.18858337402344, + 218.3086395263672, + 383.2275390625, + 0.9971545934677124 + ], + "score": 0.662422239780426, + "correct": 0 + }, + { + "img": "s7500.jpg", + "roi": [ + 273.32073974609375, + 159.32569885253906, + 319.8118896484375, + 338.02740478515625, + 0.9974174499511719 + ], + "score": 0.6610145568847656, + "correct": 0 + }, + { + "img": "s1928.jpg", + "roi": [ + 95.9815673828125, + 173.83251953125, + 188.28057861328125, + 448.6799011230469, + 0.9996073842048645 + ], + "score": 0.6608131527900696, + "correct": 0 + } + ] + }, + { + "query_img": "s6267.jpg", + "query_roi": [ + 353.0, + 271.0, + 384.0, + 355.0 + ], + "query_gt": [ + { + "img": "s6268.jpg", + "roi": [ + 273.0, + 187.0, + 303.0, + 269.0 + ] + } + ], + "gallery": [ + { + "img": "s6268.jpg", + "roi": [ + 191.42135620117188, + 181.9994354248047, + 224.1274871826172, + 272.1471862792969, + 0.9994174242019653 + ], + "score": 1.118600845336914, + "correct": 0 + }, + { + "img": "s208.jpg", + "roi": [ + 169.9260711669922, + 242.30577087402344, + 222.2524871826172, + 407.0181884765625, + 0.9987622499465942 + ], + "score": 0.994975745677948, + "correct": 0 + }, + { + "img": "s243.jpg", + "roi": [ + 98.35845184326172, + 418.04254150390625, + 168.44203186035156, + 613.1982421875, + 0.9992546439170837 + ], + "score": 0.947058379650116, + "correct": 0 + }, + { + "img": "s6268.jpg", + "roi": [ + 275.23065185546875, + 185.5438232421875, + 304.0521545410156, + 271.2808837890625, + 0.9993125200271606 + ], + "score": 0.9199808239936829, + "correct": 1 + }, + { + "img": "s7171.jpg", + "roi": [ + 11.388846397399902, + 98.72752380371094, + 34.887386322021484, + 166.01988220214844, + 0.9924773573875427 + ], + "score": 0.8789620995521545, + "correct": 0 + }, + { + "img": "s9764.jpg", + "roi": [ + 422.761474609375, + 153.7439422607422, + 477.515869140625, + 299.22637939453125, + 0.9995865225791931 + ], + "score": 0.8716186285018921, + "correct": 0 + }, + { + "img": "s4870.jpg", + "roi": [ + 519.449462890625, + 214.15476989746094, + 556.6878662109375, + 307.7003479003906, + 0.9991705417633057 + ], + "score": 0.8664634227752686, + "correct": 0 + }, + { + "img": "s4351.jpg", + "roi": [ + 262.70556640625, + 215.6267547607422, + 335.21185302734375, + 397.8576354980469, + 0.9995803236961365 + ], + "score": 0.8524119257926941, + "correct": 0 + }, + { + "img": "s2032.jpg", + "roi": [ + 373.4027099609375, + 167.56539916992188, + 422.5724792480469, + 304.48883056640625, + 0.9997140765190125 + ], + "score": 0.8401076197624207, + "correct": 0 + }, + { + "img": "s5807.jpg", + "roi": [ + 177.40155029296875, + 162.78916931152344, + 199.83428955078125, + 236.83938598632812, + 0.9982845187187195 + ], + "score": 0.8318834900856018, + "correct": 0 + } + ] + }, + { + "query_img": "s10098.jpg", + "query_roi": [ + 292.0, + 204.0, + 313.0, + 262.0 + ], + "query_gt": [ + { + "img": "s10099.jpg", + "roi": [ + 178.0, + 286.0, + 219.0, + 393.0 + ] + }, + { + "img": "s10100.jpg", + "roi": [ + 117.0, + 337.0, + 178.0, + 501.0 + ] + } + ], + "gallery": [ + { + "img": "s10099.jpg", + "roi": [ + 392.8105163574219, + 64.80743408203125, + 407.9383544921875, + 107.64388275146484, + 0.9934259653091431 + ], + "score": 1.3346519470214844, + "correct": 0 + }, + { + "img": "s10099.jpg", + "roi": [ + 178.99615478515625, + 287.4718017578125, + 216.75926208496094, + 395.3366394042969, + 0.9989022016525269 + ], + "score": 1.2118579149246216, + "correct": 1 + }, + { + "img": "s10100.jpg", + "roi": [ + 111.21731567382812, + 337.91925048828125, + 172.98757934570312, + 502.8975830078125, + 0.9989527463912964 + ], + "score": 1.0898401737213135, + "correct": 1 + }, + { + "img": "s2779.jpg", + "roi": [ + 314.1485900878906, + 228.3350067138672, + 330.7823791503906, + 278.5898132324219, + 0.9893223643302917 + ], + "score": 0.9039950370788574, + "correct": 0 + }, + { + "img": "s10047.jpg", + "roi": [ + 107.74193572998047, + 233.615234375, + 126.63610076904297, + 285.627197265625, + 0.9944860339164734 + ], + "score": 0.8988553285598755, + "correct": 0 + }, + { + "img": "s12298.jpg", + "roi": [ + 336.5704650878906, + 277.013427734375, + 354.7897033691406, + 330.7867431640625, + 0.9880906343460083 + ], + "score": 0.8894281387329102, + "correct": 0 + }, + { + "img": "s12074.jpg", + "roi": [ + 417.9775390625, + 242.78018188476562, + 430.476806640625, + 278.0398254394531, + 0.9789777994155884 + ], + "score": 0.8706174492835999, + "correct": 0 + }, + { + "img": "s16533.jpg", + "roi": [ + 546.6822509765625, + 322.5357360839844, + 558.9552001953125, + 358.0662841796875, + 0.9702221751213074 + ], + "score": 0.8457686305046082, + "correct": 0 + }, + { + "img": "s16453.jpg", + "roi": [ + 378.17919921875, + 161.22047424316406, + 399.443115234375, + 222.81134033203125, + 0.996907651424408 + ], + "score": 0.8260880708694458, + "correct": 0 + }, + { + "img": "s5943.jpg", + "roi": [ + 562.5455322265625, + 150.20761108398438, + 584.405517578125, + 218.0380096435547, + 0.9846238493919373 + ], + "score": 0.7986686825752258, + "correct": 0 + } + ] + }, + { + "query_img": "s9114.jpg", + "query_roi": [ + 147.0, + 216.0, + 288.0, + 646.0 + ], + "query_gt": [ + { + "img": "s9115.jpg", + "roi": [ + 188.0, + 230.0, + 285.0, + 517.0 + ] + }, + { + "img": "s9116.jpg", + "roi": [ + 172.0, + 233.0, + 263.0, + 484.0 + ] + }, + { + "img": "s9117.jpg", + "roi": [ + 500.0, + 265.0, + 542.0, + 379.0 + ] + } + ], + "gallery": [ + { + "img": "s2581.jpg", + "roi": [ + 139.04055786132812, + 204.9264373779297, + 258.373291015625, + 594.75048828125, + 0.9972291588783264 + ], + "score": 1.0148372650146484, + "correct": 0 + }, + { + "img": "s9115.jpg", + "roi": [ + 197.23287963867188, + 218.8217010498047, + 285.6562194824219, + 513.4779052734375, + 0.9983997941017151 + ], + "score": 0.9999952912330627, + "correct": 1 + }, + { + "img": "s9116.jpg", + "roi": [ + 186.64990234375, + 218.0435791015625, + 268.2383728027344, + 473.99298095703125, + 0.9981504082679749 + ], + "score": 0.8772134184837341, + "correct": 1 + }, + { + "img": "s9117.jpg", + "roi": [ + 499.7281494140625, + 263.423095703125, + 541.726806640625, + 381.8606872558594, + 0.9979337453842163 + ], + "score": 0.8111144304275513, + "correct": 1 + }, + { + "img": "s9115.jpg", + "roi": [ + 181.1239471435547, + 234.80343627929688, + 245.33480834960938, + 410.8698425292969, + 0.7088821530342102 + ], + "score": 0.7879086136817932, + "correct": 0 + }, + { + "img": "s7677.jpg", + "roi": [ + 284.9375, + 128.64695739746094, + 384.75885009765625, + 445.1956481933594, + 0.999640703201294 + ], + "score": 0.7707353234291077, + "correct": 0 + }, + { + "img": "s9678.jpg", + "roi": [ + 26.708450317382812, + 166.2432098388672, + 93.7561264038086, + 358.7230224609375, + 0.9976139068603516 + ], + "score": 0.7291467785835266, + "correct": 0 + }, + { + "img": "s11146.jpg", + "roi": [ + 121.84989166259766, + 290.17755126953125, + 165.13970947265625, + 421.8374938964844, + 0.9959830045700073 + ], + "score": 0.7117822766304016, + "correct": 0 + }, + { + "img": "s18160.jpg", + "roi": [ + 192.4570770263672, + 212.595947265625, + 236.0161895751953, + 365.1314392089844, + 0.9933037161827087 + ], + "score": 0.7045825123786926, + "correct": 0 + }, + { + "img": "s7875.jpg", + "roi": [ + 411.350830078125, + 126.095458984375, + 501.9585266113281, + 369.76275634765625, + 0.9995007514953613 + ], + "score": 0.6622093915939331, + "correct": 0 + } + ] + }, + { + "query_img": "s6364.jpg", + "query_roi": [ + 305.0, + 367.0, + 327.0, + 426.0 + ], + "query_gt": [ + { + "img": "s6363.jpg", + "roi": [ + 118.0, + 268.0, + 168.0, + 401.0 + ] + } + ], + "gallery": [ + { + "img": "s6363.jpg", + "roi": [ + 75.50323486328125, + 237.30706787109375, + 133.37705993652344, + 401.43438720703125, + 0.9997562766075134 + ], + "score": 1.1245282888412476, + "correct": 0 + }, + { + "img": "s6363.jpg", + "roi": [ + 119.80412292480469, + 262.7427978515625, + 166.57275390625, + 403.4036865234375, + 0.998979389667511 + ], + "score": 0.9696569442749023, + "correct": 1 + }, + { + "img": "s15881.jpg", + "roi": [ + 448.81427001953125, + 138.71975708007812, + 480.0675354003906, + 218.22421264648438, + 0.9961154460906982 + ], + "score": 0.8444520831108093, + "correct": 0 + }, + { + "img": "s15814.jpg", + "roi": [ + 391.43505859375, + 163.7534942626953, + 436.90802001953125, + 300.07489013671875, + 0.9989100694656372 + ], + "score": 0.8001959323883057, + "correct": 0 + }, + { + "img": "s6817.jpg", + "roi": [ + 361.0481872558594, + 295.5208740234375, + 378.52410888671875, + 344.3074951171875, + 0.9976257681846619 + ], + "score": 0.7687779664993286, + "correct": 0 + }, + { + "img": "s13727.jpg", + "roi": [ + 439.4078369140625, + 180.45692443847656, + 498.9366149902344, + 323.5207824707031, + 0.9979851245880127 + ], + "score": 0.7591937780380249, + "correct": 0 + }, + { + "img": "s9219.jpg", + "roi": [ + 157.01416015625, + 227.8275146484375, + 190.90133666992188, + 321.62493896484375, + 0.9985564351081848 + ], + "score": 0.716694712638855, + "correct": 0 + }, + { + "img": "s15799.jpg", + "roi": [ + 3.5434632301330566, + 146.39056396484375, + 45.50678253173828, + 285.2420349121094, + 0.9578021168708801 + ], + "score": 0.6945604085922241, + "correct": 0 + }, + { + "img": "s9219.jpg", + "roi": [ + 228.28330993652344, + 224.81236267089844, + 261.49615478515625, + 315.696044921875, + 0.9997252821922302 + ], + "score": 0.6929946541786194, + "correct": 0 + }, + { + "img": "s8829.jpg", + "roi": [ + 419.63006591796875, + 344.59326171875, + 462.460693359375, + 469.25, + 0.9994595646858215 + ], + "score": 0.6687328815460205, + "correct": 0 + } + ] + }, + { + "query_img": "s43.jpg", + "query_roi": [ + 379.0, + 407.0, + 455.0, + 583.0 + ], + "query_gt": [ + { + "img": "s44.jpg", + "roi": [ + 297.0, + 327.0, + 396.0, + 526.0 + ] + } + ], + "gallery": [ + { + "img": "s9925.jpg", + "roi": [ + 433.0147399902344, + 266.8620300292969, + 462.56561279296875, + 357.9793701171875, + 0.9981328845024109 + ], + "score": 1.1368937492370605, + "correct": 0 + }, + { + "img": "s1596.jpg", + "roi": [ + 477.90313720703125, + 241.87765502929688, + 513.1544189453125, + 344.6015319824219, + 0.9980911612510681 + ], + "score": 1.1223969459533691, + "correct": 0 + }, + { + "img": "s44.jpg", + "roi": [ + 304.6094970703125, + 331.6675720214844, + 384.9762878417969, + 527.166015625, + 0.9997050166130066 + ], + "score": 1.0759724378585815, + "correct": 1 + }, + { + "img": "s5935.jpg", + "roi": [ + 43.032745361328125, + 166.98849487304688, + 82.23838806152344, + 292.67401123046875, + 0.9892587065696716 + ], + "score": 0.9405534863471985, + "correct": 0 + }, + { + "img": "s9061.jpg", + "roi": [ + 179.88705444335938, + 322.0597229003906, + 217.3837890625, + 415.88690185546875, + 0.9984966516494751 + ], + "score": 0.9036174416542053, + "correct": 0 + }, + { + "img": "s9925.jpg", + "roi": [ + 56.1267204284668, + 273.35821533203125, + 123.73078918457031, + 444.1784362792969, + 0.9995649456977844 + ], + "score": 0.8946775794029236, + "correct": 0 + }, + { + "img": "s9778.jpg", + "roi": [ + 271.386474609375, + 183.25250244140625, + 311.4610595703125, + 294.6990966796875, + 0.9990330934524536 + ], + "score": 0.8723806738853455, + "correct": 0 + }, + { + "img": "s230.jpg", + "roi": [ + 411.9718933105469, + 77.96092224121094, + 439.0364990234375, + 159.04905700683594, + 0.9971718192100525 + ], + "score": 0.8673154711723328, + "correct": 0 + }, + { + "img": "s9096.jpg", + "roi": [ + 224.41268920898438, + 262.48663330078125, + 308.2043151855469, + 509.7024841308594, + 0.9993457198143005 + ], + "score": 0.8478143811225891, + "correct": 0 + }, + { + "img": "s1156.jpg", + "roi": [ + 316.8926696777344, + 123.75149536132812, + 405.6783142089844, + 357.0528564453125, + 0.9997261166572571 + ], + "score": 0.7924637794494629, + "correct": 0 + } + ] + }, + { + "query_img": "s8431.jpg", + "query_roi": [ + 200.0, + 227.0, + 265.0, + 402.0 + ], + "query_gt": [ + { + "img": "s8429.jpg", + "roi": [ + 88.0, + 189.0, + 314.0, + 792.0 + ] + }, + { + "img": "s8430.jpg", + "roi": [ + 24.0, + 150.0, + 266.0, + 796.0 + ] + } + ], + "gallery": [ + { + "img": "s1500.jpg", + "roi": [ + 127.40847778320312, + 82.36428833007812, + 235.7307586669922, + 373.5093994140625, + 0.9998282194137573 + ], + "score": 1.0784615278244019, + "correct": 0 + }, + { + "img": "s9614.jpg", + "roi": [ + 6.401891231536865, + 136.69235229492188, + 89.56925964355469, + 371.09881591796875, + 0.9998449087142944 + ], + "score": 1.0427428483963013, + "correct": 0 + }, + { + "img": "s8429.jpg", + "roi": [ + 100.93704223632812, + 188.34542846679688, + 313.3390808105469, + 784.3058471679688, + 0.9968509078025818 + ], + "score": 1.0105066299438477, + "correct": 1 + }, + { + "img": "s8430.jpg", + "roi": [ + 19.140789031982422, + 147.48899841308594, + 255.4276580810547, + 800.0, + 0.9994649291038513 + ], + "score": 1.0087140798568726, + "correct": 1 + }, + { + "img": "s9926.jpg", + "roi": [ + 292.437255859375, + 194.9691162109375, + 321.20770263671875, + 290.09442138671875, + 0.9962698221206665 + ], + "score": 0.912687361240387, + "correct": 0 + }, + { + "img": "s4402.jpg", + "roi": [ + 163.62725830078125, + 58.05638885498047, + 259.956298828125, + 322.9551696777344, + 0.9996999502182007 + ], + "score": 0.8886957168579102, + "correct": 0 + }, + { + "img": "s7350.jpg", + "roi": [ + 142.66143798828125, + 46.33190155029297, + 237.3840789794922, + 336.5851745605469, + 0.9994524121284485 + ], + "score": 0.8739355802536011, + "correct": 0 + }, + { + "img": "s7687.jpg", + "roi": [ + 157.08973693847656, + 115.35417938232422, + 259.3672180175781, + 431.9016418457031, + 0.9995036125183105 + ], + "score": 0.8668819665908813, + "correct": 0 + }, + { + "img": "s9614.jpg", + "roi": [ + 113.35478973388672, + 165.42117309570312, + 134.34317016601562, + 230.16441345214844, + 0.9981803894042969 + ], + "score": 0.8195725083351135, + "correct": 0 + }, + { + "img": "s3804.jpg", + "roi": [ + 131.22666931152344, + 204.70480346679688, + 217.30154418945312, + 428.6960144042969, + 0.9995172023773193 + ], + "score": 0.8009052872657776, + "correct": 0 + } + ] + }, + { + "query_img": "s5043.jpg", + "query_roi": [ + 314.0, + 195.0, + 363.0, + 341.0 + ], + "query_gt": [ + { + "img": "s5042.jpg", + "roi": [ + 538.0, + 221.0, + 592.0, + 362.0 + ] + } + ], + "gallery": [ + { + "img": "s10413.jpg", + "roi": [ + 421.8135681152344, + 394.6817626953125, + 446.1565856933594, + 466.8261413574219, + 0.9933122992515564 + ], + "score": 0.9026108980178833, + "correct": 0 + }, + { + "img": "s9372.jpg", + "roi": [ + 89.21206665039062, + 128.1476287841797, + 106.22844696044922, + 174.7212371826172, + 0.9795198440551758 + ], + "score": 0.8922002911567688, + "correct": 0 + }, + { + "img": "s10474.jpg", + "roi": [ + 19.287654876708984, + 213.03684997558594, + 41.58347702026367, + 282.9416809082031, + 0.9906863570213318 + ], + "score": 0.8715754747390747, + "correct": 0 + }, + { + "img": "s5042.jpg", + "roi": [ + 539.6815795898438, + 220.8626708984375, + 591.323974609375, + 362.2281494140625, + 0.9994662404060364 + ], + "score": 0.866386353969574, + "correct": 1 + }, + { + "img": "s9031.jpg", + "roi": [ + 356.7104187011719, + 338.34259033203125, + 387.11822509765625, + 414.57965087890625, + 0.9937602877616882 + ], + "score": 0.8470069169998169, + "correct": 0 + }, + { + "img": "s9031.jpg", + "roi": [ + 506.0760192871094, + 330.0081787109375, + 535.492431640625, + 410.8118896484375, + 0.9961647987365723 + ], + "score": 0.8418833613395691, + "correct": 0 + }, + { + "img": "s9952.jpg", + "roi": [ + 297.64337158203125, + 185.75888061523438, + 346.20098876953125, + 317.0496520996094, + 0.9995633959770203 + ], + "score": 0.839868426322937, + "correct": 0 + }, + { + "img": "s5081.jpg", + "roi": [ + 170.0848388671875, + 136.8479461669922, + 204.3448944091797, + 236.62060546875, + 0.9988548755645752 + ], + "score": 0.8357048034667969, + "correct": 0 + }, + { + "img": "s2733.jpg", + "roi": [ + 753.7357177734375, + 153.44461059570312, + 787.1630859375, + 263.779052734375, + 0.9985498785972595 + ], + "score": 0.8114221096038818, + "correct": 0 + }, + { + "img": "s9031.jpg", + "roi": [ + 546.67822265625, + 349.9742431640625, + 563.9146728515625, + 402.6955261230469, + 0.8913291692733765 + ], + "score": 0.801132082939148, + "correct": 0 + } + ] + }, + { + "query_img": "s2927.jpg", + "query_roi": [ + 233.0, + 199.0, + 275.0, + 311.0 + ], + "query_gt": [ + { + "img": "s2928.jpg", + "roi": [ + 210.0, + 157.0, + 277.0, + 337.0 + ] + } + ], + "gallery": [ + { + "img": "s2928.jpg", + "roi": [ + 293.87176513671875, + 152.79144287109375, + 356.37811279296875, + 348.79034423828125, + 0.9994984865188599 + ], + "score": 1.3179124593734741, + "correct": 0 + }, + { + "img": "s2928.jpg", + "roi": [ + 212.06735229492188, + 157.004638671875, + 271.9510498046875, + 340.3123779296875, + 0.9993956089019775 + ], + "score": 1.1895945072174072, + "correct": 1 + }, + { + "img": "s5378.jpg", + "roi": [ + 545.3046875, + 91.45085144042969, + 597.8680419921875, + 288.5905456542969, + 0.9995778203010559 + ], + "score": 1.0844086408615112, + "correct": 0 + }, + { + "img": "s6536.jpg", + "roi": [ + 290.5749206542969, + 317.72601318359375, + 318.8363037109375, + 411.02703857421875, + 0.9974687099456787 + ], + "score": 0.9993565082550049, + "correct": 0 + }, + { + "img": "s2894.jpg", + "roi": [ + 54.72549057006836, + 160.33583068847656, + 144.72998046875, + 373.8026123046875, + 0.9980471134185791 + ], + "score": 0.9753254055976868, + "correct": 0 + }, + { + "img": "s6536.jpg", + "roi": [ + 334.6729431152344, + 316.7545166015625, + 361.8863220214844, + 410.4451599121094, + 0.9970768690109253 + ], + "score": 0.9516493082046509, + "correct": 0 + }, + { + "img": "s2125.jpg", + "roi": [ + 180.32125854492188, + 179.162353515625, + 264.55596923828125, + 406.7350769042969, + 0.9996715784072876 + ], + "score": 0.9432233572006226, + "correct": 0 + }, + { + "img": "s6536.jpg", + "roi": [ + 201.46018981933594, + 306.9788513183594, + 236.84385681152344, + 408.5037536621094, + 0.9980254173278809 + ], + "score": 0.9404270648956299, + "correct": 0 + }, + { + "img": "s2894.jpg", + "roi": [ + 183.0629119873047, + 164.82562255859375, + 284.5455017089844, + 444.7325134277344, + 0.9996846914291382 + ], + "score": 0.9384312629699707, + "correct": 0 + }, + { + "img": "s5378.jpg", + "roi": [ + 324.50213623046875, + 38.593475341796875, + 425.9285583496094, + 319.5865173339844, + 0.9998652935028076 + ], + "score": 0.9120050668716431, + "correct": 0 + } + ] + }, + { + "query_img": "s6254.jpg", + "query_roi": [ + 329.0, + 189.0, + 388.0, + 347.0 + ], + "query_gt": [ + { + "img": "s6252.jpg", + "roi": [ + 336.0, + 217.0, + 410.0, + 414.0 + ] + } + ], + "gallery": [ + { + "img": "s9784.jpg", + "roi": [ + 420.0069274902344, + 225.60275268554688, + 477.267333984375, + 383.26544189453125, + 0.99979168176651 + ], + "score": 1.1264691352844238, + "correct": 0 + }, + { + "img": "s6252.jpg", + "roi": [ + 337.148193359375, + 217.26217651367188, + 406.57879638671875, + 419.982421875, + 0.9993435740470886 + ], + "score": 0.9554347395896912, + "correct": 1 + }, + { + "img": "s15788.jpg", + "roi": [ + 343.0582580566406, + 93.24665832519531, + 404.8036193847656, + 288.755615234375, + 0.9993201494216919 + ], + "score": 0.8377190828323364, + "correct": 0 + }, + { + "img": "s9784.jpg", + "roi": [ + 293.4014892578125, + 223.52847290039062, + 351.62359619140625, + 387.6010437011719, + 0.9993720650672913 + ], + "score": 0.8143020272254944, + "correct": 0 + }, + { + "img": "s9367.jpg", + "roi": [ + 305.71942138671875, + 104.72618103027344, + 328.2645263671875, + 176.06382751464844, + 0.9935077428817749 + ], + "score": 0.8124386668205261, + "correct": 0 + }, + { + "img": "s10362.jpg", + "roi": [ + 464.010009765625, + 200.7233123779297, + 507.9956970214844, + 328.1255798339844, + 0.9994082450866699 + ], + "score": 0.7692235112190247, + "correct": 0 + }, + { + "img": "s9324.jpg", + "roi": [ + 474.3104248046875, + 415.00628662109375, + 504.4910888671875, + 506.787353515625, + 0.9493842124938965 + ], + "score": 0.748056173324585, + "correct": 0 + }, + { + "img": "s5123.jpg", + "roi": [ + 60.961669921875, + 87.63195037841797, + 143.79051208496094, + 309.44378662109375, + 0.9979070425033569 + ], + "score": 0.7304887175559998, + "correct": 0 + }, + { + "img": "s5123.jpg", + "roi": [ + 501.59246826171875, + 133.69578552246094, + 578.814697265625, + 338.54071044921875, + 0.9991163611412048 + ], + "score": 0.7207231521606445, + "correct": 0 + }, + { + "img": "s2715.jpg", + "roi": [ + 28.414352416992188, + 185.8064422607422, + 59.19037628173828, + 292.448974609375, + 0.9985542893409729 + ], + "score": 0.7187076210975647, + "correct": 0 + } + ] + }, + { + "query_img": "s8798.jpg", + "query_roi": [ + 160.0, + 154.0, + 376.0, + 742.0 + ], + "query_gt": [ + { + "img": "s8797.jpg", + "roi": [ + 111.0, + 199.0, + 334.0, + 795.0 + ] + } + ], + "gallery": [ + { + "img": "s8164.jpg", + "roi": [ + 3.554197311401367, + 211.94097900390625, + 131.74636840820312, + 718.2813110351562, + 0.9961459636688232 + ], + "score": 1.1647523641586304, + "correct": 0 + }, + { + "img": "s8797.jpg", + "roi": [ + 115.04955291748047, + 99.5481185913086, + 318.9980163574219, + 701.7401123046875, + 0.9972857236862183 + ], + "score": 1.0304511785507202, + "correct": 1 + }, + { + "img": "s17557.jpg", + "roi": [ + 321.80560302734375, + 52.38731384277344, + 375.74951171875, + 267.88238525390625, + 0.9603425860404968 + ], + "score": 0.8762992024421692, + "correct": 0 + }, + { + "img": "s8797.jpg", + "roi": [ + 32.18212127685547, + 1.9975078105926514, + 165.87020874023438, + 340.2817077636719, + 0.8068119883537292 + ], + "score": 0.8436738848686218, + "correct": 0 + }, + { + "img": "s17557.jpg", + "roi": [ + 613.1043090820312, + 85.3790283203125, + 693.5315551757812, + 391.55401611328125, + 0.9983781576156616 + ], + "score": 0.8145282864570618, + "correct": 0 + }, + { + "img": "s9742.jpg", + "roi": [ + 276.7470703125, + 195.5886688232422, + 338.03057861328125, + 389.9835205078125, + 0.9978972673416138 + ], + "score": 0.8129317760467529, + "correct": 0 + }, + { + "img": "s9580.jpg", + "roi": [ + 4.305661678314209, + 0.4574025571346283, + 47.00483322143555, + 158.50234985351562, + 0.9751313924789429 + ], + "score": 0.7687628269195557, + "correct": 0 + }, + { + "img": "s2696.jpg", + "roi": [ + 395.93731689453125, + 204.28790283203125, + 460.68341064453125, + 415.305419921875, + 0.9858245849609375 + ], + "score": 0.741646945476532, + "correct": 0 + }, + { + "img": "s17557.jpg", + "roi": [ + 422.1646423339844, + 89.16004180908203, + 492.78424072265625, + 365.1174621582031, + 0.9993247985839844 + ], + "score": 0.7372496128082275, + "correct": 0 + }, + { + "img": "s17709.jpg", + "roi": [ + 753.557861328125, + 118.1861572265625, + 795.706787109375, + 276.1062927246094, + 0.9994500279426575 + ], + "score": 0.7157474756240845, + "correct": 0 + } + ] + }, + { + "query_img": "s8644.jpg", + "query_roi": [ + 323.0, + 235.0, + 406.0, + 457.0 + ], + "query_gt": [ + { + "img": "s8645.jpg", + "roi": [ + 150.0, + 310.0, + 235.0, + 536.0 + ] + } + ], + "gallery": [ + { + "img": "s8645.jpg", + "roi": [ + 383.6065673828125, + 319.18487548828125, + 501.5258483886719, + 674.9869384765625, + 0.9997113347053528 + ], + "score": 1.1105464696884155, + "correct": 0 + }, + { + "img": "s9435.jpg", + "roi": [ + 368.3343200683594, + 271.1903991699219, + 401.85247802734375, + 368.42041015625, + 0.9980536699295044 + ], + "score": 0.965651273727417, + "correct": 0 + }, + { + "img": "s8775.jpg", + "roi": [ + 440.5806884765625, + 311.27374267578125, + 581.6912841796875, + 716.185791015625, + 0.9997040629386902 + ], + "score": 0.9471589922904968, + "correct": 0 + }, + { + "img": "s4954.jpg", + "roi": [ + 217.423095703125, + 249.88858032226562, + 280.713134765625, + 453.70306396484375, + 0.99934321641922 + ], + "score": 0.8593255281448364, + "correct": 0 + }, + { + "img": "s8734.jpg", + "roi": [ + 342.92718505859375, + 44.62847900390625, + 531.27783203125, + 629.914794921875, + 0.9979056119918823 + ], + "score": 0.830969512462616, + "correct": 0 + }, + { + "img": "s5828.jpg", + "roi": [ + 459.96612548828125, + 166.55165100097656, + 504.79010009765625, + 309.8011169433594, + 0.9975074529647827 + ], + "score": 0.8139691948890686, + "correct": 0 + }, + { + "img": "s8645.jpg", + "roi": [ + 151.27871704101562, + 309.50238037109375, + 243.88180541992188, + 550.981201171875, + 0.9991833567619324 + ], + "score": 0.8129370808601379, + "correct": 1 + }, + { + "img": "s8645.jpg", + "roi": [ + 202.637451171875, + 243.69873046875, + 333.4563903808594, + 586.9950561523438, + 0.9967053532600403 + ], + "score": 0.7981201410293579, + "correct": 0 + }, + { + "img": "s8571.jpg", + "roi": [ + 260.5369567871094, + 202.66799926757812, + 414.70245361328125, + 605.4864501953125, + 0.9879734516143799 + ], + "score": 0.7596271634101868, + "correct": 0 + }, + { + "img": "s2642.jpg", + "roi": [ + 160.683837890625, + 120.62242889404297, + 243.37655639648438, + 400.5431823730469, + 0.9994900226593018 + ], + "score": 0.7575703859329224, + "correct": 0 + } + ] + }, + { + "query_img": "s4665.jpg", + "query_roi": [ + 279.0, + 329.0, + 304.0, + 396.0 + ], + "query_gt": [ + { + "img": "s4664.jpg", + "roi": [ + 469.0, + 343.0, + 486.0, + 388.0 + ] + } + ], + "gallery": [ + { + "img": "s10330.jpg", + "roi": [ + 327.3327941894531, + 263.5491027832031, + 349.500732421875, + 323.9542236328125, + 0.9932209253311157 + ], + "score": 0.9819253087043762, + "correct": 0 + }, + { + "img": "s7779.jpg", + "roi": [ + 458.251708984375, + 281.95941162109375, + 503.9244384765625, + 398.6916809082031, + 0.9983910918235779 + ], + "score": 0.917309582233429, + "correct": 0 + }, + { + "img": "s4664.jpg", + "roi": [ + 470.1618347167969, + 342.91131591796875, + 486.3674011230469, + 387.1585388183594, + 0.9863031506538391 + ], + "score": 0.910079300403595, + "correct": 1 + }, + { + "img": "s12062.jpg", + "roi": [ + 205.2324676513672, + 338.6241760253906, + 223.4117889404297, + 393.9698791503906, + 0.9863893389701843 + ], + "score": 0.86954665184021, + "correct": 0 + }, + { + "img": "s10330.jpg", + "roi": [ + 241.36668395996094, + 83.10285949707031, + 257.8899230957031, + 129.6966094970703, + 0.9974629878997803 + ], + "score": 0.8146573305130005, + "correct": 0 + }, + { + "img": "s12062.jpg", + "roi": [ + 26.60179901123047, + 371.0710754394531, + 39.12916564941406, + 406.75689697265625, + 0.9352554082870483 + ], + "score": 0.8113822937011719, + "correct": 0 + }, + { + "img": "s4742.jpg", + "roi": [ + 490.86944580078125, + 227.29061889648438, + 570.7192993164062, + 448.6947021484375, + 0.9997015595436096 + ], + "score": 0.8086452484130859, + "correct": 0 + }, + { + "img": "s4664.jpg", + "roi": [ + 455.47454833984375, + 343.3757019042969, + 470.79541015625, + 388.5626220703125, + 0.9612423181533813 + ], + "score": 0.8066821694374084, + "correct": 0 + }, + { + "img": "s6855.jpg", + "roi": [ + 244.33901977539062, + 431.737548828125, + 298.93231201171875, + 582.18798828125, + 0.9996852874755859 + ], + "score": 0.7805784344673157, + "correct": 0 + }, + { + "img": "s3888.jpg", + "roi": [ + 552.4944458007812, + 305.6932678222656, + 576.0166015625, + 373.1583251953125, + 0.9471846222877502 + ], + "score": 0.7717713713645935, + "correct": 0 + } + ] + }, + { + "query_img": "s9686.jpg", + "query_roi": [ + 314.0, + 179.0, + 374.0, + 340.0 + ], + "query_gt": [ + { + "img": "s9685.jpg", + "roi": [ + 281.0, + 207.0, + 347.0, + 384.0 + ] + } + ], + "gallery": [ + { + "img": "s9685.jpg", + "roi": [ + 94.12158203125, + 209.64012145996094, + 152.7888641357422, + 375.6666259765625, + 0.9995174407958984 + ], + "score": 1.0341174602508545, + "correct": 0 + }, + { + "img": "s3353.jpg", + "roi": [ + 276.7649841308594, + 147.0451202392578, + 352.1502685546875, + 352.247314453125, + 0.999758780002594 + ], + "score": 0.9188094735145569, + "correct": 0 + }, + { + "img": "s10872.jpg", + "roi": [ + 162.52700805664062, + 102.88907623291016, + 204.1563720703125, + 264.1081237792969, + 0.9973917007446289 + ], + "score": 0.8554767966270447, + "correct": 0 + }, + { + "img": "s3927.jpg", + "roi": [ + 676.3544311523438, + 129.36949157714844, + 718.563232421875, + 266.4571533203125, + 0.9897729754447937 + ], + "score": 0.8134967088699341, + "correct": 0 + }, + { + "img": "s3321.jpg", + "roi": [ + 163.030029296875, + 112.77250671386719, + 248.82101440429688, + 329.29718017578125, + 0.9997608065605164 + ], + "score": 0.8073619604110718, + "correct": 0 + }, + { + "img": "s5935.jpg", + "roi": [ + 466.347412109375, + 156.6554718017578, + 502.381103515625, + 280.8953552246094, + 0.9923382997512817 + ], + "score": 0.7947862148284912, + "correct": 0 + }, + { + "img": "s3927.jpg", + "roi": [ + 706.1991577148438, + 122.8261947631836, + 760.7706298828125, + 289.5621643066406, + 0.9996991157531738 + ], + "score": 0.7748864889144897, + "correct": 0 + }, + { + "img": "s9685.jpg", + "roi": [ + 353.243896484375, + 211.85879516601562, + 399.3759765625, + 367.2537536621094, + 0.9991862177848816 + ], + "score": 0.7519443035125732, + "correct": 0 + }, + { + "img": "s5808.jpg", + "roi": [ + 538.4739990234375, + 116.97576904296875, + 586.9146728515625, + 272.3623352050781, + 0.9989022016525269 + ], + "score": 0.7414122223854065, + "correct": 0 + }, + { + "img": "s9116.jpg", + "roi": [ + 284.2481384277344, + 248.55999755859375, + 327.6694030761719, + 393.2034912109375, + 0.9762638807296753 + ], + "score": 0.7378971576690674, + "correct": 0 + } + ] + }, + { + "query_img": "s6817.jpg", + "query_roi": [ + 460.0, + 299.0, + 495.0, + 394.0 + ], + "query_gt": [ + { + "img": "s6818.jpg", + "roi": [ + 201.0, + 167.0, + 232.0, + 257.0 + ] + } + ], + "gallery": [ + { + "img": "s4282.jpg", + "roi": [ + 586.6946411132812, + 238.0306396484375, + 604.752685546875, + 290.28424072265625, + 0.9978857636451721 + ], + "score": 0.9998556971549988, + "correct": 0 + }, + { + "img": "s4006.jpg", + "roi": [ + 242.93077087402344, + 291.8009033203125, + 261.2584533691406, + 340.2220153808594, + 0.9933278560638428 + ], + "score": 0.9388213157653809, + "correct": 0 + }, + { + "img": "s3748.jpg", + "roi": [ + 660.4139404296875, + 195.8495330810547, + 678.9485473632812, + 248.5117645263672, + 0.9898607730865479 + ], + "score": 0.9169926643371582, + "correct": 0 + }, + { + "img": "s6818.jpg", + "roi": [ + 200.663818359375, + 167.43417358398438, + 234.046875, + 256.686767578125, + 0.9989829659461975 + ], + "score": 0.9041715860366821, + "correct": 1 + }, + { + "img": "s4769.jpg", + "roi": [ + 313.6552734375, + 214.10784912109375, + 377.8665466308594, + 384.813232421875, + 0.9996615648269653 + ], + "score": 0.9016164541244507, + "correct": 0 + }, + { + "img": "s10506.jpg", + "roi": [ + 158.6002960205078, + 279.30694580078125, + 186.37815856933594, + 369.0975036621094, + 0.9976654052734375 + ], + "score": 0.899971604347229, + "correct": 0 + }, + { + "img": "s10670.jpg", + "roi": [ + 368.7718200683594, + 308.49359130859375, + 398.37542724609375, + 403.88494873046875, + 0.9986552000045776 + ], + "score": 0.8725301027297974, + "correct": 0 + }, + { + "img": "s12061.jpg", + "roi": [ + 25.052261352539062, + 355.20928955078125, + 48.221275329589844, + 418.45513916015625, + 0.9900387525558472 + ], + "score": 0.8467581272125244, + "correct": 0 + }, + { + "img": "s10670.jpg", + "roi": [ + 0.0, + 278.54522705078125, + 79.52870178222656, + 646.4010009765625, + 0.9989387392997742 + ], + "score": 0.8459761738777161, + "correct": 0 + }, + { + "img": "s10918.jpg", + "roi": [ + 15.874248504638672, + 225.4235076904297, + 48.052738189697266, + 318.808349609375, + 0.9993682503700256 + ], + "score": 0.8065957427024841, + "correct": 0 + } + ] + }, + { + "query_img": "s3047.jpg", + "query_roi": [ + 381.0, + 128.0, + 468.0, + 348.0 + ], + "query_gt": [ + { + "img": "s3046.jpg", + "roi": [ + 142.0, + 163.0, + 239.0, + 396.0 + ] + } + ], + "gallery": [ + { + "img": "s4216.jpg", + "roi": [ + 408.65301513671875, + 262.3280029296875, + 473.5491638183594, + 451.5540771484375, + 0.9995241165161133 + ], + "score": 1.0901193618774414, + "correct": 0 + }, + { + "img": "s4216.jpg", + "roi": [ + 281.1955261230469, + 250.01126098632812, + 352.82220458984375, + 468.23211669921875, + 0.9992606043815613 + ], + "score": 1.0496530532836914, + "correct": 0 + }, + { + "img": "s3046.jpg", + "roi": [ + 148.385498046875, + 162.0778045654297, + 232.84359741210938, + 399.72662353515625, + 0.9997032284736633 + ], + "score": 1.0228102207183838, + "correct": 1 + }, + { + "img": "s9002.jpg", + "roi": [ + 98.30943298339844, + 178.2228240966797, + 190.43597412109375, + 474.61871337890625, + 0.9996364116668701 + ], + "score": 0.826900839805603, + "correct": 0 + }, + { + "img": "s10063.jpg", + "roi": [ + 512.1217651367188, + 173.14952087402344, + 560.0404663085938, + 308.525390625, + 0.9997029900550842 + ], + "score": 0.8127329349517822, + "correct": 0 + }, + { + "img": "s824.jpg", + "roi": [ + 216.33151245117188, + 103.036865234375, + 352.560546875, + 484.5108642578125, + 0.9996706247329712 + ], + "score": 0.7947750091552734, + "correct": 0 + }, + { + "img": "s9927.jpg", + "roi": [ + 486.20556640625, + 269.8847351074219, + 553.0748901367188, + 461.12384033203125, + 0.9984716773033142 + ], + "score": 0.7761074304580688, + "correct": 0 + }, + { + "img": "s7344.jpg", + "roi": [ + 68.67802429199219, + 62.989158630371094, + 147.85702514648438, + 312.5897216796875, + 0.9993995428085327 + ], + "score": 0.7448266744613647, + "correct": 0 + }, + { + "img": "s9435.jpg", + "roi": [ + 270.43798828125, + 233.22927856445312, + 300.5445556640625, + 326.27880859375, + 0.9892958998680115 + ], + "score": 0.7205424904823303, + "correct": 0 + }, + { + "img": "s5790.jpg", + "roi": [ + 404.9222412109375, + 28.33083152770996, + 544.6795043945312, + 392.17572021484375, + 0.9991955161094666 + ], + "score": 0.7065831422805786, + "correct": 0 + } + ] + }, + { + "query_img": "s3639.jpg", + "query_roi": [ + 407.0, + 293.0, + 458.0, + 430.0 + ], + "query_gt": [ + { + "img": "s3638.jpg", + "roi": [ + 400.0, + 147.0, + 486.0, + 376.0 + ] + } + ], + "gallery": [ + { + "img": "s3638.jpg", + "roi": [ + 204.9202880859375, + 330.44317626953125, + 303.79132080078125, + 596.556640625, + 0.997636079788208 + ], + "score": 1.041731834411621, + "correct": 0 + }, + { + "img": "s3638.jpg", + "roi": [ + 311.9722900390625, + 148.895751953125, + 390.23736572265625, + 375.84130859375, + 0.9982855916023254 + ], + "score": 1.011728286743164, + "correct": 0 + }, + { + "img": "s11976.jpg", + "roi": [ + 226.12994384765625, + 231.9021759033203, + 242.60086059570312, + 280.0946044921875, + 0.9985511898994446 + ], + "score": 0.8921512961387634, + "correct": 0 + }, + { + "img": "s9291.jpg", + "roi": [ + 321.6903381347656, + 343.272705078125, + 345.2428894042969, + 418.4599609375, + 0.9966992735862732 + ], + "score": 0.8019112944602966, + "correct": 0 + }, + { + "img": "s9289.jpg", + "roi": [ + 77.97932434082031, + 527.85498046875, + 131.18719482421875, + 667.59423828125, + 0.9887092709541321 + ], + "score": 0.8000546097755432, + "correct": 0 + }, + { + "img": "s170.jpg", + "roi": [ + 3.0066680908203125, + 270.25225830078125, + 64.50126647949219, + 474.79437255859375, + 0.9996916055679321 + ], + "score": 0.7744402885437012, + "correct": 0 + }, + { + "img": "s13571.jpg", + "roi": [ + 370.4560546875, + 97.83465576171875, + 441.034423828125, + 323.8190612792969, + 0.9993622899055481 + ], + "score": 0.7586634159088135, + "correct": 0 + }, + { + "img": "s170.jpg", + "roi": [ + 327.6103820800781, + 404.03271484375, + 402.0389099121094, + 611.8021240234375, + 0.9991612434387207 + ], + "score": 0.7203453779220581, + "correct": 0 + }, + { + "img": "s9291.jpg", + "roi": [ + 326.1423645019531, + 129.89178466796875, + 346.8211364746094, + 191.65240478515625, + 0.9962822794914246 + ], + "score": 0.6945837736129761, + "correct": 0 + }, + { + "img": "s9289.jpg", + "roi": [ + 92.64073181152344, + 599.8192138671875, + 128.6905975341797, + 701.9735107421875, + 0.8511336445808411 + ], + "score": 0.6729229688644409, + "correct": 0 + } + ] + }, + { + "query_img": "s3591.jpg", + "query_roi": [ + 278.0, + 236.0, + 337.0, + 393.0 + ], + "query_gt": [ + { + "img": "s3590.jpg", + "roi": [ + 648.0, + 246.0, + 731.0, + 468.0 + ] + } + ], + "gallery": [ + { + "img": "s3079.jpg", + "roi": [ + 337.6416015625, + 72.1229248046875, + 426.22027587890625, + 356.37677001953125, + 0.999146580696106 + ], + "score": 0.610458493232727, + "correct": 0 + }, + { + "img": "s6489.jpg", + "roi": [ + 2.9789886474609375, + 122.53257751464844, + 95.48405456542969, + 416.2181091308594, + 0.9995618462562561 + ], + "score": 0.5412518382072449, + "correct": 0 + }, + { + "img": "s16338.jpg", + "roi": [ + 34.71333694458008, + 262.2477111816406, + 77.80396270751953, + 420.70269775390625, + 0.9717731475830078 + ], + "score": 0.4714493751525879, + "correct": 0 + }, + { + "img": "s2136.jpg", + "roi": [ + 46.916664123535156, + 183.869140625, + 142.6633758544922, + 471.9876403808594, + 0.9978713989257812 + ], + "score": 0.46677619218826294, + "correct": 0 + }, + { + "img": "s6673.jpg", + "roi": [ + 695.4835205078125, + 240.98446655273438, + 787.161376953125, + 529.4151611328125, + 0.9711140990257263 + ], + "score": 0.4607304334640503, + "correct": 0 + }, + { + "img": "s16347.jpg", + "roi": [ + 78.94538116455078, + 147.47410583496094, + 141.95571899414062, + 348.6304016113281, + 0.9633954763412476 + ], + "score": 0.45870721340179443, + "correct": 0 + }, + { + "img": "s3079.jpg", + "roi": [ + 134.91653442382812, + 109.78883361816406, + 208.58438110351562, + 341.05938720703125, + 0.9991562366485596 + ], + "score": 0.456444650888443, + "correct": 0 + }, + { + "img": "s10751.jpg", + "roi": [ + 404.11334228515625, + 280.8818054199219, + 462.98565673828125, + 446.60382080078125, + 0.9815148711204529 + ], + "score": 0.45102542638778687, + "correct": 0 + }, + { + "img": "s16998.jpg", + "roi": [ + 235.59632873535156, + 109.5657958984375, + 306.7934875488281, + 339.7875671386719, + 0.9966394901275635 + ], + "score": 0.4353446066379547, + "correct": 0 + }, + { + "img": "s6489.jpg", + "roi": [ + 261.740234375, + 146.34059143066406, + 352.5892333984375, + 393.2391357421875, + 0.9994854927062988 + ], + "score": 0.4329083263874054, + "correct": 0 + } + ] + }, + { + "query_img": "s11633.jpg", + "query_roi": [ + 166.0, + 432.0, + 200.0, + 523.0 + ], + "query_gt": [ + { + "img": "s11632.jpg", + "roi": [ + 233.0, + 413.0, + 264.0, + 497.0 + ] + }, + { + "img": "s11631.jpg", + "roi": [ + 175.0, + 405.0, + 204.0, + 482.0 + ] + } + ], + "gallery": [ + { + "img": "s12201.jpg", + "roi": [ + 256.19610595703125, + 336.1322326660156, + 282.2684020996094, + 409.99298095703125, + 0.9988473653793335 + ], + "score": 0.9379321336746216, + "correct": 0 + }, + { + "img": "s12201.jpg", + "roi": [ + 286.5722351074219, + 343.9776306152344, + 302.69073486328125, + 390.235107421875, + 0.9984111785888672 + ], + "score": 0.9294665455818176, + "correct": 0 + }, + { + "img": "s117.jpg", + "roi": [ + 306.08892822265625, + 372.275390625, + 383.0829772949219, + 571.8505859375, + 0.999573290348053 + ], + "score": 0.8711472153663635, + "correct": 0 + }, + { + "img": "s11632.jpg", + "roi": [ + 236.4092254638672, + 412.39117431640625, + 257.1939392089844, + 479.1041259765625, + 0.9721847772598267 + ], + "score": 0.8631865978240967, + "correct": 1 + }, + { + "img": "s11832.jpg", + "roi": [ + 227.1488494873047, + 399.75323486328125, + 239.785888671875, + 436.27178955078125, + 0.997876763343811 + ], + "score": 0.8517500162124634, + "correct": 0 + }, + { + "img": "s4559.jpg", + "roi": [ + 437.21087646484375, + 225.66966247558594, + 488.16253662109375, + 361.395263671875, + 0.9994801878929138 + ], + "score": 0.830784022808075, + "correct": 0 + }, + { + "img": "s2727.jpg", + "roi": [ + 193.69940185546875, + 106.62191009521484, + 222.05816650390625, + 195.92340087890625, + 0.9986950755119324 + ], + "score": 0.7939022183418274, + "correct": 0 + }, + { + "img": "s11832.jpg", + "roi": [ + 241.5268096923828, + 399.2526550292969, + 252.9043426513672, + 431.69171142578125, + 0.9875872731208801 + ], + "score": 0.7928789258003235, + "correct": 0 + }, + { + "img": "s4106.jpg", + "roi": [ + 389.96258544921875, + 260.5660400390625, + 442.55828857421875, + 400.439697265625, + 0.9997538924217224 + ], + "score": 0.7836596965789795, + "correct": 0 + }, + { + "img": "s12438.jpg", + "roi": [ + 188.29251098632812, + 305.7784118652344, + 214.40650939941406, + 375.8792419433594, + 0.9971764087677002 + ], + "score": 0.7834898233413696, + "correct": 0 + } + ] + }, + { + "query_img": "s11736.jpg", + "query_roi": [ + 96.0, + 238.0, + 140.0, + 356.0 + ], + "query_gt": [ + { + "img": "s11738.jpg", + "roi": [ + 98.0, + 288.0, + 163.0, + 462.0 + ] + } + ], + "gallery": [ + { + "img": "s12532.jpg", + "roi": [ + 270.16424560546875, + 144.71221923828125, + 315.89068603515625, + 285.5367431640625, + 0.9994294047355652 + ], + "score": 1.1374220848083496, + "correct": 0 + }, + { + "img": "s9289.jpg", + "roi": [ + 62.825599670410156, + 123.3821029663086, + 86.80961608886719, + 197.5552215576172, + 0.9953324198722839 + ], + "score": 1.0576940774917603, + "correct": 0 + }, + { + "img": "s17408.jpg", + "roi": [ + 599.8953857421875, + 34.860137939453125, + 628.64306640625, + 126.84954833984375, + 0.950592041015625 + ], + "score": 0.941974401473999, + "correct": 0 + }, + { + "img": "s1713.jpg", + "roi": [ + 678.9462280273438, + 153.25320434570312, + 705.5328369140625, + 238.08575439453125, + 0.9648987650871277 + ], + "score": 0.9262516498565674, + "correct": 0 + }, + { + "img": "s9289.jpg", + "roi": [ + 32.09128189086914, + 113.22575378417969, + 63.706809997558594, + 211.20372009277344, + 0.994445264339447 + ], + "score": 0.8715476393699646, + "correct": 0 + }, + { + "img": "s9289.jpg", + "roi": [ + 153.7269744873047, + 131.3159637451172, + 178.4609832763672, + 201.37960815429688, + 0.9935423135757446 + ], + "score": 0.866972804069519, + "correct": 0 + }, + { + "img": "s2468.jpg", + "roi": [ + 210.4759521484375, + 220.95785522460938, + 263.8184509277344, + 377.1279296875, + 0.9994869232177734 + ], + "score": 0.8586589097976685, + "correct": 0 + }, + { + "img": "s11711.jpg", + "roi": [ + 361.6520690917969, + 243.31124877929688, + 420.8807373046875, + 460.1563720703125, + 0.9963698387145996 + ], + "score": 0.8369832038879395, + "correct": 0 + }, + { + "img": "s14658.jpg", + "roi": [ + 111.26191711425781, + 46.63362121582031, + 230.04763793945312, + 368.176025390625, + 0.9992632269859314 + ], + "score": 0.8365092873573303, + "correct": 0 + }, + { + "img": "s9776.jpg", + "roi": [ + 567.6283569335938, + 208.47398376464844, + 597.528564453125, + 311.2532043457031, + 0.9970134496688843 + ], + "score": 0.7955345511436462, + "correct": 0 + } + ] + }, + { + "query_img": "s7434.jpg", + "query_roi": [ + 82.0, + 85.0, + 194.0, + 384.0 + ], + "query_gt": [ + { + "img": "s7435.jpg", + "roi": [ + 536.0, + 127.0, + 670.0, + 449.0 + ] + } + ], + "gallery": [ + { + "img": "s2892.jpg", + "roi": [ + 707.2428588867188, + 119.4468002319336, + 776.0164794921875, + 283.9289855957031, + 0.9988012313842773 + ], + "score": 1.2827966213226318, + "correct": 0 + }, + { + "img": "s7435.jpg", + "roi": [ + 545.5209350585938, + 126.3661117553711, + 665.4622192382812, + 445.5879821777344, + 0.9997556805610657 + ], + "score": 1.2155927419662476, + "correct": 1 + }, + { + "img": "s987.jpg", + "roi": [ + 24.752788543701172, + 181.46041870117188, + 100.12948608398438, + 385.5784606933594, + 0.9967149496078491 + ], + "score": 0.8478642702102661, + "correct": 0 + }, + { + "img": "s6490.jpg", + "roi": [ + 1.3027013540267944, + 173.3188934326172, + 71.58287811279297, + 386.67535400390625, + 0.9992337226867676 + ], + "score": 0.827286958694458, + "correct": 0 + }, + { + "img": "s14537.jpg", + "roi": [ + 435.0202941894531, + 180.20668029785156, + 494.1583251953125, + 360.78253173828125, + 0.9995808005332947 + ], + "score": 0.8254775404930115, + "correct": 0 + }, + { + "img": "s7435.jpg", + "roi": [ + 273.36126708984375, + 148.58242797851562, + 343.7933044433594, + 346.6827697753906, + 0.999203622341156 + ], + "score": 0.8235796689987183, + "correct": 0 + }, + { + "img": "s2453.jpg", + "roi": [ + 437.01629638671875, + 164.55267333984375, + 472.05804443359375, + 281.9680480957031, + 0.9960798621177673 + ], + "score": 0.7999812364578247, + "correct": 0 + }, + { + "img": "s7979.jpg", + "roi": [ + 430.96923828125, + 128.1892547607422, + 521.3006591796875, + 438.3356628417969, + 0.9997888207435608 + ], + "score": 0.798125147819519, + "correct": 0 + }, + { + "img": "s8947.jpg", + "roi": [ + 30.670654296875, + 158.87139892578125, + 218.4032440185547, + 621.462158203125, + 0.9984604120254517 + ], + "score": 0.7667997479438782, + "correct": 0 + }, + { + "img": "s2156.jpg", + "roi": [ + 108.72017669677734, + 227.26316833496094, + 141.21469116210938, + 330.36322021484375, + 0.9990122318267822 + ], + "score": 0.765385627746582, + "correct": 0 + } + ] + }, + { + "query_img": "s46.jpg", + "query_roi": [ + 279.0, + 277.0, + 362.0, + 528.0 + ], + "query_gt": [ + { + "img": "s45.jpg", + "roi": [ + 274.0, + 375.0, + 352.0, + 593.0 + ] + } + ], + "gallery": [ + { + "img": "s9785.jpg", + "roi": [ + 274.6146545410156, + 223.80233764648438, + 325.28790283203125, + 371.09002685546875, + 0.9994081258773804 + ], + "score": 0.9476329684257507, + "correct": 0 + }, + { + "img": "s8839.jpg", + "roi": [ + 151.90220642089844, + 254.91354370117188, + 191.99490356445312, + 364.3327331542969, + 0.9995937943458557 + ], + "score": 0.932550311088562, + "correct": 0 + }, + { + "img": "s45.jpg", + "roi": [ + 282.13134765625, + 372.26025390625, + 350.36053466796875, + 595.4580078125, + 0.9933626651763916 + ], + "score": 0.8813108801841736, + "correct": 1 + }, + { + "img": "s1980.jpg", + "roi": [ + 133.4319305419922, + 171.20748901367188, + 185.5823974609375, + 338.26788330078125, + 0.999451220035553 + ], + "score": 0.8012091517448425, + "correct": 0 + }, + { + "img": "s2490.jpg", + "roi": [ + 351.29827880859375, + 284.3726501464844, + 404.8899841308594, + 449.65252685546875, + 0.9996920824050903 + ], + "score": 0.7173184752464294, + "correct": 0 + }, + { + "img": "s157.jpg", + "roi": [ + 242.97056579589844, + 86.90480041503906, + 291.06866455078125, + 225.67098999023438, + 0.9993577599525452 + ], + "score": 0.7129927277565002, + "correct": 0 + }, + { + "img": "s1548.jpg", + "roi": [ + 392.6126708984375, + 267.82147216796875, + 503.8056335449219, + 602.4365234375, + 0.9994476437568665 + ], + "score": 0.7034176588058472, + "correct": 0 + }, + { + "img": "s5124.jpg", + "roi": [ + 208.58099365234375, + 93.46168518066406, + 302.5267333984375, + 366.02349853515625, + 0.9993088245391846 + ], + "score": 0.7009919881820679, + "correct": 0 + }, + { + "img": "s7701.jpg", + "roi": [ + 155.56488037109375, + 230.13951110839844, + 188.87869262695312, + 329.72833251953125, + 0.999036431312561 + ], + "score": 0.662285566329956, + "correct": 0 + }, + { + "img": "s3943.jpg", + "roi": [ + 216.9917449951172, + 213.59146118164062, + 252.1768798828125, + 307.0748596191406, + 0.9970820546150208 + ], + "score": 0.6529308557510376, + "correct": 0 + } + ] + }, + { + "query_img": "s6269.jpg", + "query_roi": [ + 336.0, + 327.0, + 428.0, + 575.0 + ], + "query_gt": [ + { + "img": "s6231.jpg", + "roi": [ + 131.0, + 282.0, + 193.0, + 447.0 + ] + } + ], + "gallery": [ + { + "img": "s11668.jpg", + "roi": [ + 60.89949417114258, + 228.17774963378906, + 178.1727294921875, + 561.8701171875, + 0.9997005462646484 + ], + "score": 1.1917567253112793, + "correct": 0 + }, + { + "img": "s6231.jpg", + "roi": [ + 137.30511474609375, + 279.5205383300781, + 194.2891082763672, + 446.44305419921875, + 0.9979174733161926 + ], + "score": 0.9676144123077393, + "correct": 1 + }, + { + "img": "s10899.jpg", + "roi": [ + 438.5422058105469, + 126.44097137451172, + 534.44091796875, + 444.271728515625, + 0.9996576309204102 + ], + "score": 0.8265337347984314, + "correct": 0 + }, + { + "img": "s2162.jpg", + "roi": [ + 203.3966064453125, + 133.486328125, + 307.3858642578125, + 416.41632080078125, + 0.9996724128723145 + ], + "score": 0.749297022819519, + "correct": 0 + }, + { + "img": "s7927.jpg", + "roi": [ + 396.1114501953125, + 33.18610763549805, + 487.78912353515625, + 352.32159423828125, + 0.9995536208152771 + ], + "score": 0.7487391829490662, + "correct": 0 + }, + { + "img": "s4526.jpg", + "roi": [ + 106.01985168457031, + 187.96287536621094, + 168.5445098876953, + 349.9178466796875, + 0.9993246793746948 + ], + "score": 0.7397807836532593, + "correct": 0 + }, + { + "img": "s2441.jpg", + "roi": [ + 478.746337890625, + 240.54562377929688, + 546.0272827148438, + 417.8373718261719, + 0.9987781643867493 + ], + "score": 0.7257941961288452, + "correct": 0 + }, + { + "img": "s2438.jpg", + "roi": [ + 494.9398193359375, + 259.3401794433594, + 550.4080810546875, + 414.3704528808594, + 0.9991059899330139 + ], + "score": 0.6680710315704346, + "correct": 0 + }, + { + "img": "s7028.jpg", + "roi": [ + 186.2696533203125, + 63.597373962402344, + 244.031005859375, + 235.29605102539062, + 0.9991170763969421 + ], + "score": 0.6341806054115295, + "correct": 0 + }, + { + "img": "s2695.jpg", + "roi": [ + 20.00417709350586, + 133.56275939941406, + 67.27142333984375, + 249.563720703125, + 0.9992688298225403 + ], + "score": 0.6073974370956421, + "correct": 0 + } + ] + }, + { + "query_img": "s12445.jpg", + "query_roi": [ + 48.0, + 445.0, + 107.0, + 603.0 + ], + "query_gt": [ + { + "img": "s12444.jpg", + "roi": [ + 162.0, + 359.0, + 197.0, + 453.0 + ] + } + ], + "gallery": [ + { + "img": "s6895.jpg", + "roi": [ + 219.5648193359375, + 96.83641052246094, + 267.322021484375, + 215.8260955810547, + 0.9873433113098145 + ], + "score": 0.9211540222167969, + "correct": 0 + }, + { + "img": "s11330.jpg", + "roi": [ + 359.86572265625, + 336.821533203125, + 395.801513671875, + 435.8064270019531, + 0.9976039528846741 + ], + "score": 0.9054797887802124, + "correct": 0 + }, + { + "img": "s3690.jpg", + "roi": [ + 590.0445556640625, + 0.0, + 654.833740234375, + 165.8341522216797, + 0.9992949962615967 + ], + "score": 0.9054631590843201, + "correct": 0 + }, + { + "img": "s158.jpg", + "roi": [ + 316.32781982421875, + 299.67974853515625, + 359.8108825683594, + 421.75299072265625, + 0.8988110423088074 + ], + "score": 0.8798316717147827, + "correct": 0 + }, + { + "img": "s15546.jpg", + "roi": [ + 217.9297637939453, + 207.8229217529297, + 263.019775390625, + 357.38714599609375, + 0.9249523878097534 + ], + "score": 0.8549134731292725, + "correct": 0 + }, + { + "img": "s10401.jpg", + "roi": [ + 221.1856689453125, + 390.80511474609375, + 287.38128662109375, + 571.8677978515625, + 0.9974648952484131 + ], + "score": 0.8481386303901672, + "correct": 0 + }, + { + "img": "s6547.jpg", + "roi": [ + 450.7676696777344, + 409.59210205078125, + 474.07830810546875, + 482.5690612792969, + 0.9851387143135071 + ], + "score": 0.8332571983337402, + "correct": 0 + }, + { + "img": "s1371.jpg", + "roi": [ + 238.92892456054688, + 72.47256469726562, + 269.57537841796875, + 171.46824645996094, + 0.9851573705673218 + ], + "score": 0.7819997668266296, + "correct": 0 + }, + { + "img": "s6547.jpg", + "roi": [ + 514.6409912109375, + 354.031005859375, + 557.6622314453125, + 476.448486328125, + 0.9976453185081482 + ], + "score": 0.7763929963111877, + "correct": 0 + }, + { + "img": "s71.jpg", + "roi": [ + 217.51885986328125, + 208.61032104492188, + 252.45579528808594, + 305.1883544921875, + 0.9994339346885681 + ], + "score": 0.7682617902755737, + "correct": 0 + } + ] + }, + { + "query_img": "s10532.jpg", + "query_roi": [ + 144.0, + 203.0, + 192.0, + 338.0 + ], + "query_gt": [ + { + "img": "s10529.jpg", + "roi": [ + 262.0, + 269.0, + 305.0, + 389.0 + ] + }, + { + "img": "s10530.jpg", + "roi": [ + 319.0, + 216.0, + 386.0, + 396.0 + ] + }, + { + "img": "s10531.jpg", + "roi": [ + 162.0, + 166.0, + 226.0, + 337.0 + ] + } + ], + "gallery": [ + { + "img": "s10531.jpg", + "roi": [ + 234.19700622558594, + 160.14671325683594, + 295.3951721191406, + 329.79022216796875, + 0.9992983341217041 + ], + "score": 1.5826183557510376, + "correct": 0 + }, + { + "img": "s10531.jpg", + "roi": [ + 197.6400604248047, + 167.53695678710938, + 252.947021484375, + 330.9296875, + 0.9921270608901978 + ], + "score": 1.3400499820709229, + "correct": 0 + }, + { + "img": "s3831.jpg", + "roi": [ + 170.27752685546875, + 91.1717758178711, + 221.46817016601562, + 232.52847290039062, + 0.9990677237510681 + ], + "score": 1.092988133430481, + "correct": 0 + }, + { + "img": "s9436.jpg", + "roi": [ + 462.8988037109375, + 292.4891357421875, + 486.4508056640625, + 368.581298828125, + 0.9978070855140686 + ], + "score": 1.0839377641677856, + "correct": 0 + }, + { + "img": "s10531.jpg", + "roi": [ + 159.29623413085938, + 167.44277954101562, + 221.8779296875, + 334.97320556640625, + 0.9991468191146851 + ], + "score": 1.0833661556243896, + "correct": 1 + }, + { + "img": "s10529.jpg", + "roi": [ + 264.7801513671875, + 271.02606201171875, + 301.6418762207031, + 384.79779052734375, + 0.9985591769218445 + ], + "score": 1.0272397994995117, + "correct": 1 + }, + { + "img": "s10530.jpg", + "roi": [ + 355.9716796875, + 218.96664428710938, + 407.726318359375, + 383.8006286621094, + 0.998609185218811 + ], + "score": 1.004538893699646, + "correct": 0 + }, + { + "img": "s10529.jpg", + "roi": [ + 251.62738037109375, + 270.5870361328125, + 284.8798828125, + 384.5792236328125, + 0.9938948750495911 + ], + "score": 1.0011118650436401, + "correct": 0 + }, + { + "img": "s9554.jpg", + "roi": [ + 185.50421142578125, + 87.53724670410156, + 224.13499450683594, + 199.3759002685547, + 0.9981740713119507 + ], + "score": 0.9839342832565308, + "correct": 0 + }, + { + "img": "s461.jpg", + "roi": [ + 138.4365997314453, + 150.4700927734375, + 241.2867889404297, + 435.2501220703125, + 0.9994264841079712 + ], + "score": 0.9119036793708801, + "correct": 0 + } + ] + }, + { + "query_img": "s3611.jpg", + "query_roi": [ + 92.0, + 171.0, + 152.0, + 332.0 + ], + "query_gt": [ + { + "img": "s3612.jpg", + "roi": [ + 299.0, + 256.0, + 388.0, + 494.0 + ] + } + ], + "gallery": [ + { + "img": "s3612.jpg", + "roi": [ + 611.6600952148438, + 196.43516540527344, + 691.8243408203125, + 441.894287109375, + 0.9984768033027649 + ], + "score": 1.1395188570022583, + "correct": 0 + }, + { + "img": "s3612.jpg", + "roi": [ + 43.474151611328125, + 1.1591594219207764, + 128.08572387695312, + 212.91757202148438, + 0.9996621608734131 + ], + "score": 1.0660512447357178, + "correct": 0 + }, + { + "img": "s1675.jpg", + "roi": [ + 279.88751220703125, + 245.63609313964844, + 331.33758544921875, + 399.77996826171875, + 0.9987480640411377 + ], + "score": 1.0254876613616943, + "correct": 0 + }, + { + "img": "s6913.jpg", + "roi": [ + 610.5496826171875, + 207.03819274902344, + 652.151123046875, + 304.9786682128906, + 0.9938206076622009 + ], + "score": 1.0217843055725098, + "correct": 0 + }, + { + "img": "s3612.jpg", + "roi": [ + 291.4282531738281, + 179.832763671875, + 392.1219482421875, + 482.4765319824219, + 0.9991450309753418 + ], + "score": 0.9038794040679932, + "correct": 1 + }, + { + "img": "s9555.jpg", + "roi": [ + 410.5482177734375, + 351.38201904296875, + 467.50762939453125, + 500.108154296875, + 0.9969078898429871 + ], + "score": 0.8895747661590576, + "correct": 0 + }, + { + "img": "s3612.jpg", + "roi": [ + 640.8975830078125, + 346.97772216796875, + 736.4117431640625, + 590.388427734375, + 0.9946039319038391 + ], + "score": 0.8786349892616272, + "correct": 0 + }, + { + "img": "s9555.jpg", + "roi": [ + 106.91169738769531, + 192.11093139648438, + 143.96009826660156, + 295.12896728515625, + 0.9980308413505554 + ], + "score": 0.8689117431640625, + "correct": 0 + }, + { + "img": "s9555.jpg", + "roi": [ + 239.00286865234375, + 197.65994262695312, + 281.0649719238281, + 332.13018798828125, + 0.9915159940719604 + ], + "score": 0.8397595882415771, + "correct": 0 + }, + { + "img": "s9555.jpg", + "roi": [ + 397.87213134765625, + 206.8846893310547, + 429.7196960449219, + 305.3390808105469, + 0.9669725894927979 + ], + "score": 0.8346853256225586, + "correct": 0 + } + ] + }, + { + "query_img": "s3579.jpg", + "query_roi": [ + 389.0, + 215.0, + 406.0, + 260.0 + ], + "query_gt": [ + { + "img": "s3578.jpg", + "roi": [ + 303.0, + 278.0, + 364.0, + 441.0 + ] + }, + { + "img": "s3580.jpg", + "roi": [ + 650.0, + 242.0, + 683.0, + 339.0 + ] + } + ], + "gallery": [ + { + "img": "s3580.jpg", + "roi": [ + 113.30914306640625, + 238.04052734375, + 152.50680541992188, + 340.21893310546875, + 0.9989711046218872 + ], + "score": 1.2910873889923096, + "correct": 0 + }, + { + "img": "s3578.jpg", + "roi": [ + 301.841064453125, + 277.83270263671875, + 364.6426696777344, + 440.9781188964844, + 0.9994966983795166 + ], + "score": 1.018742322921753, + "correct": 1 + }, + { + "img": "s6896.jpg", + "roi": [ + 256.46954345703125, + 152.84573364257812, + 301.5579833984375, + 267.5550537109375, + 0.9985098242759705 + ], + "score": 0.8621617555618286, + "correct": 0 + }, + { + "img": "s3580.jpg", + "roi": [ + 756.161376953125, + 243.0411834716797, + 772.5216064453125, + 288.5703125, + 0.9972358345985413 + ], + "score": 0.8278152942657471, + "correct": 0 + }, + { + "img": "s6896.jpg", + "roi": [ + 708.3803100585938, + 352.9205017089844, + 768.7071533203125, + 513.7769775390625, + 0.9974279999732971 + ], + "score": 0.8018664717674255, + "correct": 0 + }, + { + "img": "s3580.jpg", + "roi": [ + 679.0020751953125, + 241.58566284179688, + 718.3829345703125, + 356.02703857421875, + 0.9994354844093323 + ], + "score": 0.5823370218276978, + "correct": 0 + }, + { + "img": "s10112.jpg", + "roi": [ + 170.37181091308594, + 96.16210174560547, + 215.11863708496094, + 230.7979736328125, + 0.9993641972541809 + ], + "score": 0.5644896030426025, + "correct": 0 + }, + { + "img": "s5809.jpg", + "roi": [ + 4.1917877197265625, + 189.20529174804688, + 57.77776336669922, + 352.752685546875, + 0.999438464641571 + ], + "score": 0.5530099272727966, + "correct": 0 + }, + { + "img": "s6896.jpg", + "roi": [ + 188.1288299560547, + 63.61144256591797, + 231.3734130859375, + 170.04165649414062, + 0.9996589422225952 + ], + "score": 0.5449235439300537, + "correct": 0 + }, + { + "img": "s10108.jpg", + "roi": [ + 27.871871948242188, + 154.3385009765625, + 97.53511810302734, + 329.66015625, + 0.9994237422943115 + ], + "score": 0.5316190719604492, + "correct": 0 + } + ] + }, + { + "query_img": "s7714.jpg", + "query_roi": [ + 165.0, + 84.0, + 309.0, + 469.0 + ], + "query_gt": [ + { + "img": "s7711.jpg", + "roi": [ + 490.0, + 114.0, + 579.0, + 354.0 + ] + }, + { + "img": "s7712.jpg", + "roi": [ + 343.0, + 171.0, + 428.0, + 397.0 + ] + }, + { + "img": "s7713.jpg", + "roi": [ + 277.0, + 176.0, + 348.0, + 319.0 + ] + } + ], + "gallery": [ + { + "img": "s6637.jpg", + "roi": [ + 366.5406494140625, + 169.33804321289062, + 503.1078796386719, + 538.18212890625, + 0.9992689490318298 + ], + "score": 1.1058318614959717, + "correct": 0 + }, + { + "img": "s7711.jpg", + "roi": [ + 495.96075439453125, + 111.12059020996094, + 581.5918579101562, + 357.2465515136719, + 0.9998568296432495 + ], + "score": 1.1003947257995605, + "correct": 1 + }, + { + "img": "s7712.jpg", + "roi": [ + 343.3729553222656, + 171.19618225097656, + 433.4452209472656, + 404.7701110839844, + 0.9997355341911316 + ], + "score": 0.9837508797645569, + "correct": 1 + }, + { + "img": "s4425.jpg", + "roi": [ + 343.4410400390625, + 198.09503173828125, + 396.64849853515625, + 340.314208984375, + 0.9994614720344543 + ], + "score": 0.9705835580825806, + "correct": 0 + }, + { + "img": "s5787.jpg", + "roi": [ + 131.7717742919922, + 39.255767822265625, + 209.10455322265625, + 243.14730834960938, + 0.9995341300964355 + ], + "score": 0.8716675639152527, + "correct": 0 + }, + { + "img": "s5364.jpg", + "roi": [ + 439.1630554199219, + 124.94290161132812, + 467.7233581542969, + 212.8939208984375, + 0.9987842440605164 + ], + "score": 0.8491435050964355, + "correct": 0 + }, + { + "img": "s4026.jpg", + "roi": [ + 514.8136596679688, + 289.7306213378906, + 588.6521606445312, + 480.3152160644531, + 0.9996644258499146 + ], + "score": 0.8311170935630798, + "correct": 0 + }, + { + "img": "s1104.jpg", + "roi": [ + 541.65234375, + 140.70574951171875, + 558.4144897460938, + 190.1510467529297, + 0.9961144924163818 + ], + "score": 0.8156364560127258, + "correct": 0 + }, + { + "img": "s10323.jpg", + "roi": [ + 387.0408935546875, + 193.586181640625, + 444.5671081542969, + 365.7865905761719, + 0.9995608925819397 + ], + "score": 0.7617962956428528, + "correct": 0 + }, + { + "img": "s4131.jpg", + "roi": [ + 385.5489501953125, + 139.09523010253906, + 465.46856689453125, + 339.8899841308594, + 0.9891180396080017 + ], + "score": 0.7471352219581604, + "correct": 0 + } + ] + }, + { + "query_img": "s9801.jpg", + "query_roi": [ + 305.0, + 113.0, + 371.0, + 291.0 + ], + "query_gt": [ + { + "img": "s9799.jpg", + "roi": [ + 180.0, + 69.0, + 272.0, + 317.0 + ] + }, + { + "img": "s9800.jpg", + "roi": [ + 225.0, + 137.0, + 276.0, + 275.0 + ] + } + ], + "gallery": [ + { + "img": "s9799.jpg", + "roi": [ + 496.9971923828125, + 161.2399444580078, + 553.5027465820312, + 295.5762939453125, + 0.9876934885978699 + ], + "score": 1.3000842332839966, + "correct": 0 + }, + { + "img": "s9872.jpg", + "roi": [ + 218.6067352294922, + 100.8297348022461, + 461.1620788574219, + 741.4850463867188, + 0.9971795082092285 + ], + "score": 1.0382884740829468, + "correct": 0 + }, + { + "img": "s6800.jpg", + "roi": [ + 127.27535247802734, + 209.78062438964844, + 183.09280395507812, + 362.1612243652344, + 0.9995296001434326 + ], + "score": 0.9108845591545105, + "correct": 0 + }, + { + "img": "s10510.jpg", + "roi": [ + 175.0606689453125, + 163.4573974609375, + 239.3009033203125, + 322.921142578125, + 0.999434769153595 + ], + "score": 0.8740476965904236, + "correct": 0 + }, + { + "img": "s2772.jpg", + "roi": [ + 204.6749267578125, + 55.63230514526367, + 299.718017578125, + 324.57501220703125, + 0.999203622341156 + ], + "score": 0.8008072972297668, + "correct": 0 + }, + { + "img": "s4427.jpg", + "roi": [ + 265.9061279296875, + 87.08566284179688, + 335.5849304199219, + 273.27947998046875, + 0.9981094598770142 + ], + "score": 0.7931690216064453, + "correct": 0 + }, + { + "img": "s2637.jpg", + "roi": [ + 513.479248046875, + 94.98664855957031, + 573.9901733398438, + 289.82952880859375, + 0.9759933352470398 + ], + "score": 0.7850448489189148, + "correct": 0 + }, + { + "img": "s2665.jpg", + "roi": [ + 118.54595184326172, + 156.01019287109375, + 176.46543884277344, + 313.46490478515625, + 0.9991594552993774 + ], + "score": 0.7550196051597595, + "correct": 0 + }, + { + "img": "s11724.jpg", + "roi": [ + 68.30570983886719, + 231.801025390625, + 132.6732635498047, + 432.486572265625, + 0.9997095465660095 + ], + "score": 0.7497751712799072, + "correct": 0 + }, + { + "img": "s9800.jpg", + "roi": [ + 428.55548095703125, + 123.11045837402344, + 525.62646484375, + 364.6670837402344, + 0.9995372295379639 + ], + "score": 0.7218895554542542, + "correct": 0 + } + ] + }, + { + "query_img": "s3593.jpg", + "query_roi": [ + 402.0, + 221.0, + 433.0, + 304.0 + ], + "query_gt": [ + { + "img": "s3594.jpg", + "roi": [ + 331.0, + 214.0, + 387.0, + 364.0 + ] + } + ], + "gallery": [ + { + "img": "s2517.jpg", + "roi": [ + 497.69305419921875, + 149.832763671875, + 532.9525146484375, + 255.2901611328125, + 0.9993828535079956 + ], + "score": 0.9025286436080933, + "correct": 0 + }, + { + "img": "s7030.jpg", + "roi": [ + 139.10971069335938, + 70.92073822021484, + 265.44073486328125, + 456.6829833984375, + 0.9991951584815979 + ], + "score": 0.8228426575660706, + "correct": 0 + }, + { + "img": "s35.jpg", + "roi": [ + 269.350341796875, + 164.98751831054688, + 347.4277038574219, + 390.3553161621094, + 0.9997542500495911 + ], + "score": 0.8034039735794067, + "correct": 0 + }, + { + "img": "s156.jpg", + "roi": [ + 307.64886474609375, + 328.4884033203125, + 365.6488037109375, + 496.397216796875, + 0.9994012117385864 + ], + "score": 0.7150816321372986, + "correct": 0 + }, + { + "img": "s3594.jpg", + "roi": [ + 407.3835144042969, + 217.7810516357422, + 461.32135009765625, + 365.216064453125, + 0.9993896484375 + ], + "score": 0.6454702019691467, + "correct": 0 + }, + { + "img": "s3594.jpg", + "roi": [ + 478.8930358886719, + 219.93771362304688, + 531.8614501953125, + 356.8796081542969, + 0.9995412826538086 + ], + "score": 0.6368811130523682, + "correct": 0 + }, + { + "img": "s156.jpg", + "roi": [ + 244.5336151123047, + 454.4417419433594, + 311.00738525390625, + 642.0785522460938, + 0.9993700385093689 + ], + "score": 0.6148435473442078, + "correct": 0 + }, + { + "img": "s7518.jpg", + "roi": [ + 600.9861450195312, + 267.1872253417969, + 686.739013671875, + 446.22320556640625, + 0.9522973299026489 + ], + "score": 0.6014783382415771, + "correct": 0 + }, + { + "img": "s156.jpg", + "roi": [ + 14.440000534057617, + 477.339599609375, + 83.50689697265625, + 675.6149291992188, + 0.9990978240966797 + ], + "score": 0.5897706747055054, + "correct": 0 + }, + { + "img": "s1307.jpg", + "roi": [ + 456.18707275390625, + 199.06039428710938, + 522.2174072265625, + 377.67022705078125, + 0.990029513835907 + ], + "score": 0.5867276191711426, + "correct": 0 + } + ] + }, + { + "query_img": "s2890.jpg", + "query_roi": [ + 202.0, + 131.0, + 258.0, + 282.0 + ], + "query_gt": [ + { + "img": "s2893.jpg", + "roi": [ + 455.0, + 198.0, + 542.0, + 477.0 + ] + } + ], + "gallery": [ + { + "img": "s2636.jpg", + "roi": [ + 299.2992858886719, + 111.99464416503906, + 358.6100769042969, + 289.1361999511719, + 0.9990205764770508 + ], + "score": 1.272074580192566, + "correct": 0 + }, + { + "img": "s2893.jpg", + "roi": [ + 449.5096130371094, + 194.8594970703125, + 542.3448486328125, + 473.0811462402344, + 0.9991374015808105 + ], + "score": 1.2581619024276733, + "correct": 1 + }, + { + "img": "s2636.jpg", + "roi": [ + 336.278076171875, + 136.9705047607422, + 370.66741943359375, + 244.23580932617188, + 0.9795140027999878 + ], + "score": 1.185858964920044, + "correct": 0 + }, + { + "img": "s2624.jpg", + "roi": [ + 42.71831512451172, + 112.10148620605469, + 109.9234619140625, + 318.24267578125, + 0.9996457099914551 + ], + "score": 1.111382246017456, + "correct": 0 + }, + { + "img": "s3921.jpg", + "roi": [ + 630.1370239257812, + 130.5227508544922, + 663.5344848632812, + 213.38644409179688, + 0.9974542260169983 + ], + "score": 0.891808807849884, + "correct": 0 + }, + { + "img": "s2893.jpg", + "roi": [ + 281.24365234375, + 173.0496826171875, + 316.15631103515625, + 283.7758483886719, + 0.9916175007820129 + ], + "score": 0.8091341257095337, + "correct": 0 + }, + { + "img": "s2636.jpg", + "roi": [ + 2.3430583477020264, + 65.42240905761719, + 113.0400390625, + 477.7596435546875, + 0.9999563694000244 + ], + "score": 0.7909474968910217, + "correct": 0 + }, + { + "img": "s937.jpg", + "roi": [ + 504.723876953125, + 239.37472534179688, + 571.825927734375, + 421.188232421875, + 0.9985136389732361 + ], + "score": 0.7853307723999023, + "correct": 0 + }, + { + "img": "s8988.jpg", + "roi": [ + 292.51446533203125, + 216.2528076171875, + 336.95623779296875, + 357.63507080078125, + 0.9883434176445007 + ], + "score": 0.7771400213241577, + "correct": 0 + }, + { + "img": "s3082.jpg", + "roi": [ + 256.1757507324219, + 145.2308349609375, + 376.1490478515625, + 478.76519775390625, + 0.9990711212158203 + ], + "score": 0.7730221152305603, + "correct": 0 + } + ] + }, + { + "query_img": "s4013.jpg", + "query_roi": [ + 401.0, + 263.0, + 455.0, + 407.0 + ], + "query_gt": [ + { + "img": "s4014.jpg", + "roi": [ + 313.0, + 199.0, + 441.0, + 540.0 + ] + } + ], + "gallery": [ + { + "img": "s10687.jpg", + "roi": [ + 460.3504333496094, + 359.759033203125, + 508.8982849121094, + 506.6673278808594, + 0.9971959590911865 + ], + "score": 1.1130962371826172, + "correct": 0 + }, + { + "img": "s5096.jpg", + "roi": [ + 279.9530029296875, + 128.74057006835938, + 332.8484802246094, + 288.2591247558594, + 0.9996645450592041 + ], + "score": 1.1010133028030396, + "correct": 0 + }, + { + "img": "s262.jpg", + "roi": [ + 319.49383544921875, + 204.5614471435547, + 356.9264831542969, + 329.6416015625, + 0.9993471503257751 + ], + "score": 0.9875341057777405, + "correct": 0 + }, + { + "img": "s10494.jpg", + "roi": [ + 283.5621337890625, + 245.37863159179688, + 320.044189453125, + 350.4686279296875, + 0.9992237091064453 + ], + "score": 0.9766675233840942, + "correct": 0 + }, + { + "img": "s4014.jpg", + "roi": [ + 333.5078125, + 193.210205078125, + 421.443603515625, + 473.33184814453125, + 0.9855980277061462 + ], + "score": 0.9721962213516235, + "correct": 1 + }, + { + "img": "s7038.jpg", + "roi": [ + 370.0133972167969, + 107.39712524414062, + 495.6994323730469, + 430.1044616699219, + 0.9998067021369934 + ], + "score": 0.9694362282752991, + "correct": 0 + }, + { + "img": "s10494.jpg", + "roi": [ + 319.56634521484375, + 244.35203552246094, + 354.0528259277344, + 350.1988220214844, + 0.9979209303855896 + ], + "score": 0.9315003156661987, + "correct": 0 + }, + { + "img": "s11439.jpg", + "roi": [ + 205.31610107421875, + 221.71563720703125, + 259.0443115234375, + 394.1293029785156, + 0.9992986917495728 + ], + "score": 0.9202356934547424, + "correct": 0 + }, + { + "img": "s2216.jpg", + "roi": [ + 227.84658813476562, + 96.04550170898438, + 318.90252685546875, + 360.2956237792969, + 0.9994004964828491 + ], + "score": 0.9182844161987305, + "correct": 0 + }, + { + "img": "s7252.jpg", + "roi": [ + 474.0792236328125, + 27.272045135498047, + 585.3980712890625, + 357.6768493652344, + 0.999640703201294 + ], + "score": 0.9067649841308594, + "correct": 0 + } + ] + }, + { + "query_img": "s4266.jpg", + "query_roi": [ + 154.0, + 148.0, + 277.0, + 476.0 + ], + "query_gt": [ + { + "img": "s4263.jpg", + "roi": [ + 214.0, + 178.0, + 294.0, + 392.0 + ] + } + ], + "gallery": [ + { + "img": "s1750.jpg", + "roi": [ + 228.838623046875, + 186.15438842773438, + 285.8909912109375, + 361.0376892089844, + 0.9973210692405701 + ], + "score": 0.9899727702140808, + "correct": 0 + }, + { + "img": "s4263.jpg", + "roi": [ + 220.4792938232422, + 176.99703979492188, + 288.1441345214844, + 389.48565673828125, + 0.992007851600647 + ], + "score": 0.895473301410675, + "correct": 1 + }, + { + "img": "s10652.jpg", + "roi": [ + 58.42600631713867, + 292.71209716796875, + 77.82870483398438, + 348.42156982421875, + 0.9976196885108948 + ], + "score": 0.8823049664497375, + "correct": 0 + }, + { + "img": "s10652.jpg", + "roi": [ + 32.53933334350586, + 297.71905517578125, + 50.86566162109375, + 346.4187927246094, + 0.995854914188385 + ], + "score": 0.7297244071960449, + "correct": 0 + }, + { + "img": "s4069.jpg", + "roi": [ + 320.4931640625, + 258.47100830078125, + 415.286865234375, + 508.1728515625, + 0.9998422861099243 + ], + "score": 0.7147091627120972, + "correct": 0 + }, + { + "img": "s1750.jpg", + "roi": [ + 545.7525024414062, + 192.2410888671875, + 600.2423095703125, + 344.30621337890625, + 0.9996299743652344 + ], + "score": 0.7019081115722656, + "correct": 0 + }, + { + "img": "s10652.jpg", + "roi": [ + 22.793777465820312, + 296.0827331542969, + 39.93037414550781, + 345.5797119140625, + 0.924819827079773 + ], + "score": 0.6992050409317017, + "correct": 0 + }, + { + "img": "s1750.jpg", + "roi": [ + 726.193115234375, + 197.6477508544922, + 765.5250244140625, + 308.5904541015625, + 0.9948963522911072 + ], + "score": 0.6626460552215576, + "correct": 0 + }, + { + "img": "s9846.jpg", + "roi": [ + 205.24642944335938, + 107.7810287475586, + 355.50872802734375, + 466.36004638671875, + 0.9991928935050964 + ], + "score": 0.6489495635032654, + "correct": 0 + }, + { + "img": "s9287.jpg", + "roi": [ + 441.415283203125, + 357.68878173828125, + 469.978515625, + 438.71392822265625, + 0.9934497475624084 + ], + "score": 0.6467244029045105, + "correct": 0 + } + ] + }, + { + "query_img": "s11617.jpg", + "query_roi": [ + 172.0, + 425.0, + 209.0, + 524.0 + ], + "query_gt": [ + { + "img": "s11618.jpg", + "roi": [ + 183.0, + 450.0, + 219.0, + 548.0 + ] + } + ], + "gallery": [ + { + "img": "s11618.jpg", + "roi": [ + 214.7048797607422, + 457.4321594238281, + 246.4215087890625, + 548.604248046875, + 0.9996596574783325 + ], + "score": 1.1562936305999756, + "correct": 0 + }, + { + "img": "s11618.jpg", + "roi": [ + 185.3524169921875, + 447.821044921875, + 218.95448303222656, + 545.1024780273438, + 0.9995427131652832 + ], + "score": 1.0890480279922485, + "correct": 1 + }, + { + "img": "s12295.jpg", + "roi": [ + 129.2564239501953, + 317.9552917480469, + 162.11111450195312, + 408.8729248046875, + 0.9996558427810669 + ], + "score": 1.044208288192749, + "correct": 0 + }, + { + "img": "s11816.jpg", + "roi": [ + 105.61390686035156, + 393.00299072265625, + 134.6938934326172, + 467.8092346191406, + 0.9993957281112671 + ], + "score": 1.0046167373657227, + "correct": 0 + }, + { + "img": "s3086.jpg", + "roi": [ + 408.32232666015625, + 181.81402587890625, + 456.9882507324219, + 328.2352600097656, + 0.9992769360542297 + ], + "score": 0.8705386519432068, + "correct": 0 + }, + { + "img": "s11330.jpg", + "roi": [ + 359.86572265625, + 336.821533203125, + 395.801513671875, + 435.8064270019531, + 0.9976039528846741 + ], + "score": 0.8528363108634949, + "correct": 0 + }, + { + "img": "s10364.jpg", + "roi": [ + 4.03568172454834, + 230.9471893310547, + 45.71332931518555, + 333.0999450683594, + 0.996604323387146 + ], + "score": 0.7762024402618408, + "correct": 0 + }, + { + "img": "s2242.jpg", + "roi": [ + 121.18194580078125, + 102.46403503417969, + 253.74705505371094, + 534.9663696289062, + 0.9985677003860474 + ], + "score": 0.7756906747817993, + "correct": 0 + }, + { + "img": "s11330.jpg", + "roi": [ + 74.5817642211914, + 389.8908996582031, + 109.07180786132812, + 482.1982727050781, + 0.9979596138000488 + ], + "score": 0.7680614590644836, + "correct": 0 + }, + { + "img": "s7644.jpg", + "roi": [ + 503.6193542480469, + 198.7943572998047, + 537.716064453125, + 300.8838806152344, + 0.9965164661407471 + ], + "score": 0.7613925337791443, + "correct": 0 + } + ] + }, + { + "query_img": "s6563.jpg", + "query_roi": [ + 235.0, + 268.0, + 263.0, + 344.0 + ], + "query_gt": [ + { + "img": "s6564.jpg", + "roi": [ + 265.0, + 222.0, + 351.0, + 452.0 + ] + } + ], + "gallery": [ + { + "img": "s5851.jpg", + "roi": [ + 229.73162841796875, + 88.62236022949219, + 255.58743286132812, + 181.44554138183594, + 0.9952390193939209 + ], + "score": 1.0495601892471313, + "correct": 0 + }, + { + "img": "s9532.jpg", + "roi": [ + 485.6812438964844, + 248.2141571044922, + 510.06005859375, + 322.5579528808594, + 0.985304057598114 + ], + "score": 0.9682641625404358, + "correct": 0 + }, + { + "img": "s6564.jpg", + "roi": [ + 268.2808532714844, + 221.20947265625, + 346.05657958984375, + 457.1496276855469, + 0.9992509484291077 + ], + "score": 0.9677755832672119, + "correct": 1 + }, + { + "img": "s5379.jpg", + "roi": [ + 24.598121643066406, + 126.35588836669922, + 42.15925598144531, + 182.1068115234375, + 0.9769595861434937 + ], + "score": 0.9051116108894348, + "correct": 0 + }, + { + "img": "s6718.jpg", + "roi": [ + 289.90594482421875, + 222.4921112060547, + 333.64141845703125, + 341.12103271484375, + 0.9988232254981995 + ], + "score": 0.868810772895813, + "correct": 0 + }, + { + "img": "s9532.jpg", + "roi": [ + 330.79815673828125, + 8.216217041015625, + 359.4879150390625, + 100.31210327148438, + 0.9942867159843445 + ], + "score": 0.85698002576828, + "correct": 0 + }, + { + "img": "s5851.jpg", + "roi": [ + 505.53741455078125, + 82.95353698730469, + 524.8489379882812, + 141.57589721679688, + 0.9986106157302856 + ], + "score": 0.8200862407684326, + "correct": 0 + }, + { + "img": "s5379.jpg", + "roi": [ + 416.06494140625, + 113.50099182128906, + 438.70355224609375, + 193.081298828125, + 0.992065966129303 + ], + "score": 0.7884573936462402, + "correct": 0 + }, + { + "img": "s5949.jpg", + "roi": [ + 153.30308532714844, + 142.87515258789062, + 177.99876403808594, + 226.49697875976562, + 0.9845497608184814 + ], + "score": 0.7744989991188049, + "correct": 0 + }, + { + "img": "s6718.jpg", + "roi": [ + 168.03643798828125, + 235.1503143310547, + 193.4959716796875, + 319.3901062011719, + 0.9882508516311646 + ], + "score": 0.7609840035438538, + "correct": 0 + } + ] + }, + { + "query_img": "s11622.jpg", + "query_roi": [ + 138.0, + 473.0, + 199.0, + 638.0 + ], + "query_gt": [ + { + "img": "s11621.jpg", + "roi": [ + 258.0, + 452.0, + 287.0, + 530.0 + ] + } + ], + "gallery": [ + { + "img": "s15838.jpg", + "roi": [ + 312.4197692871094, + 184.46475219726562, + 364.1626281738281, + 350.4346618652344, + 0.9960926175117493 + ], + "score": 0.9667837023735046, + "correct": 0 + }, + { + "img": "s10188.jpg", + "roi": [ + 152.13233947753906, + 375.07879638671875, + 170.96237182617188, + 429.15496826171875, + 0.9951026439666748 + ], + "score": 0.9376495480537415, + "correct": 0 + }, + { + "img": "s6906.jpg", + "roi": [ + 306.320068359375, + 184.7884521484375, + 352.78338623046875, + 297.27569580078125, + 0.9987574815750122 + ], + "score": 0.8418903946876526, + "correct": 0 + }, + { + "img": "s11621.jpg", + "roi": [ + 259.5630798339844, + 450.50506591796875, + 284.71142578125, + 520.5751342773438, + 0.9974209070205688 + ], + "score": 0.8304688930511475, + "correct": 1 + }, + { + "img": "s9710.jpg", + "roi": [ + 409.530517578125, + 132.05593872070312, + 441.438720703125, + 219.09820556640625, + 0.9989973902702332 + ], + "score": 0.8124215602874756, + "correct": 0 + }, + { + "img": "s14448.jpg", + "roi": [ + 275.19378662109375, + 119.5678939819336, + 348.2068786621094, + 408.80938720703125, + 0.9984433054924011 + ], + "score": 0.7971754670143127, + "correct": 0 + }, + { + "img": "s10184.jpg", + "roi": [ + 78.34065246582031, + 310.7213134765625, + 98.93670654296875, + 368.581787109375, + 0.9921746850013733 + ], + "score": 0.7971292734146118, + "correct": 0 + }, + { + "img": "s15902.jpg", + "roi": [ + 262.5671081542969, + 44.665279388427734, + 352.7655334472656, + 306.51849365234375, + 0.999685525894165 + ], + "score": 0.7656534314155579, + "correct": 0 + }, + { + "img": "s6862.jpg", + "roi": [ + 401.9776611328125, + 182.65792846679688, + 426.2110595703125, + 252.18637084960938, + 0.8821023106575012 + ], + "score": 0.747497022151947, + "correct": 0 + }, + { + "img": "s15902.jpg", + "roi": [ + 413.9590759277344, + 58.172393798828125, + 436.43902587890625, + 117.19500732421875, + 0.9982585310935974 + ], + "score": 0.7197361588478088, + "correct": 0 + } + ] + }, + { + "query_img": "s4511.jpg", + "query_roi": [ + 661.0, + 177.0, + 732.0, + 368.0 + ], + "query_gt": [ + { + "img": "s4512.jpg", + "roi": [ + 343.0, + 117.0, + 435.0, + 364.0 + ] + } + ], + "gallery": [ + { + "img": "s4512.jpg", + "roi": [ + 276.451171875, + 120.29488372802734, + 365.2344665527344, + 377.2630310058594, + 0.9997535347938538 + ], + "score": 1.4704082012176514, + "correct": 0 + }, + { + "img": "s7226.jpg", + "roi": [ + 397.4290466308594, + 138.30599975585938, + 565.478759765625, + 608.5299072265625, + 0.9997541308403015 + ], + "score": 1.1119520664215088, + "correct": 0 + }, + { + "img": "s10841.jpg", + "roi": [ + 281.56402587890625, + 171.63429260253906, + 311.7621765136719, + 260.9698181152344, + 0.9989570379257202 + ], + "score": 1.0379570722579956, + "correct": 0 + }, + { + "img": "s10509.jpg", + "roi": [ + 149.94662475585938, + 112.4444580078125, + 239.119140625, + 345.21209716796875, + 0.9998179078102112 + ], + "score": 1.0277069807052612, + "correct": 0 + }, + { + "img": "s88.jpg", + "roi": [ + 474.2299499511719, + 201.81773376464844, + 493.68365478515625, + 257.4488525390625, + 0.9975571632385254 + ], + "score": 0.9241406917572021, + "correct": 0 + }, + { + "img": "s9865.jpg", + "roi": [ + 246.94039916992188, + 128.76515197753906, + 305.4526062011719, + 303.7671813964844, + 0.9979999661445618 + ], + "score": 0.9009180665016174, + "correct": 0 + }, + { + "img": "s7226.jpg", + "roi": [ + 338.05145263671875, + 182.6749725341797, + 411.99822998046875, + 383.2693786621094, + 0.9989446997642517 + ], + "score": 0.8953236937522888, + "correct": 0 + }, + { + "img": "s11621.jpg", + "roi": [ + 259.5630798339844, + 450.50506591796875, + 284.71142578125, + 520.5751342773438, + 0.9974209070205688 + ], + "score": 0.8910642266273499, + "correct": 0 + }, + { + "img": "s4012.jpg", + "roi": [ + 717.9030151367188, + 168.022705078125, + 731.9523315429688, + 215.4025115966797, + 0.9803370833396912 + ], + "score": 0.8856707811355591, + "correct": 0 + }, + { + "img": "s10213.jpg", + "roi": [ + 473.9124450683594, + 273.3558349609375, + 504.9502868652344, + 359.75177001953125, + 0.9987454414367676 + ], + "score": 0.8548473715782166, + "correct": 0 + } + ] + }, + { + "query_img": "s6427.jpg", + "query_roi": [ + 352.0, + 376.0, + 393.0, + 486.0 + ], + "query_gt": [ + { + "img": "s6426.jpg", + "roi": [ + 463.0, + 241.0, + 497.0, + 332.0 + ] + } + ], + "gallery": [ + { + "img": "s6426.jpg", + "roi": [ + 726.2797241210938, + 283.0633239746094, + 762.7799072265625, + 394.5075378417969, + 0.9842304587364197 + ], + "score": 1.2215230464935303, + "correct": 0 + }, + { + "img": "s6426.jpg", + "roi": [ + 349.97442626953125, + 390.09722900390625, + 387.5826416015625, + 486.8315124511719, + 0.9828273057937622 + ], + "score": 1.0304490327835083, + "correct": 0 + }, + { + "img": "s9674.jpg", + "roi": [ + 65.44902038574219, + 133.46078491210938, + 102.56105041503906, + 236.9027099609375, + 0.9126521944999695 + ], + "score": 1.0014877319335938, + "correct": 0 + }, + { + "img": "s6426.jpg", + "roi": [ + 260.17608642578125, + 222.8340301513672, + 287.62750244140625, + 298.2979431152344, + 0.9849321246147156 + ], + "score": 0.9152176976203918, + "correct": 0 + }, + { + "img": "s6426.jpg", + "roi": [ + 463.6759033203125, + 240.7554931640625, + 496.4971923828125, + 332.851318359375, + 0.9994879961013794 + ], + "score": 0.8721083402633667, + "correct": 1 + }, + { + "img": "s6426.jpg", + "roi": [ + 307.36322021484375, + 373.7740173339844, + 350.84698486328125, + 479.8506774902344, + 0.9969362020492554 + ], + "score": 0.8622412085533142, + "correct": 0 + }, + { + "img": "s10704.jpg", + "roi": [ + 339.31890869140625, + 143.27749633789062, + 362.3074951171875, + 206.00448608398438, + 0.996263325214386 + ], + "score": 0.8131358027458191, + "correct": 0 + }, + { + "img": "s10704.jpg", + "roi": [ + 390.661865234375, + 269.45660400390625, + 438.1695251464844, + 386.1119079589844, + 0.9996013045310974 + ], + "score": 0.8121103048324585, + "correct": 0 + }, + { + "img": "s6426.jpg", + "roi": [ + 696.931884765625, + 332.97344970703125, + 730.449951171875, + 428.9207763671875, + 0.9967082738876343 + ], + "score": 0.7803195714950562, + "correct": 0 + }, + { + "img": "s12025.jpg", + "roi": [ + 290.0045166015625, + 289.2895202636719, + 324.6236877441406, + 392.9591979980469, + 0.999125063419342 + ], + "score": 0.7768498659133911, + "correct": 0 + } + ] + }, + { + "query_img": "s5027.jpg", + "query_roi": [ + 272.0, + 162.0, + 419.0, + 634.0 + ], + "query_gt": [ + { + "img": "s5033.jpg", + "roi": [ + 115.0, + 139.0, + 162.0, + 265.0 + ] + } + ], + "gallery": [ + { + "img": "s10117.jpg", + "roi": [ + 518.349853515625, + 91.04092407226562, + 569.5748291015625, + 231.12265014648438, + 0.999546229839325 + ], + "score": 1.009786605834961, + "correct": 0 + }, + { + "img": "s5033.jpg", + "roi": [ + 113.36299896240234, + 137.720458984375, + 159.29080200195312, + 262.34832763671875, + 0.9981180429458618 + ], + "score": 0.8221405744552612, + "correct": 1 + }, + { + "img": "s10773.jpg", + "roi": [ + 200.6588592529297, + 166.24185180664062, + 290.89373779296875, + 445.7216796875, + 0.9989007711410522 + ], + "score": 0.7862473726272583, + "correct": 0 + }, + { + "img": "s4747.jpg", + "roi": [ + 330.03369140625, + 151.57437133789062, + 408.1846618652344, + 366.0081481933594, + 0.9996153116226196 + ], + "score": 0.7120102047920227, + "correct": 0 + }, + { + "img": "s4471.jpg", + "roi": [ + 455.10736083984375, + 274.9039306640625, + 544.119140625, + 515.5810546875, + 0.9997791647911072 + ], + "score": 0.7001282572746277, + "correct": 0 + }, + { + "img": "s4295.jpg", + "roi": [ + 352.79388427734375, + 86.78607177734375, + 443.48651123046875, + 343.562255859375, + 0.9994988441467285 + ], + "score": 0.6801665425300598, + "correct": 0 + }, + { + "img": "s10114.jpg", + "roi": [ + 358.0038757324219, + 104.39990234375, + 479.0136413574219, + 467.35296630859375, + 0.9975696206092834 + ], + "score": 0.6223422884941101, + "correct": 0 + }, + { + "img": "s9927.jpg", + "roi": [ + 57.405208587646484, + 308.43572998046875, + 102.37923431396484, + 433.73114013671875, + 0.9994707703590393 + ], + "score": 0.6048352718353271, + "correct": 0 + }, + { + "img": "s4057.jpg", + "roi": [ + 557.3982543945312, + 430.7499084472656, + 589.2406616210938, + 523.2761840820312, + 0.998717188835144 + ], + "score": 0.5723142027854919, + "correct": 0 + }, + { + "img": "s2000.jpg", + "roi": [ + 394.0729675292969, + 97.59944915771484, + 538.8040771484375, + 436.7018737792969, + 0.9998289346694946 + ], + "score": 0.5717883110046387, + "correct": 0 + } + ] + }, + { + "query_img": "s4625.jpg", + "query_roi": [ + 431.0, + 331.0, + 452.0, + 388.0 + ], + "query_gt": [ + { + "img": "s4235.jpg", + "roi": [ + 665.0, + 207.0, + 716.0, + 344.0 + ] + } + ], + "gallery": [ + { + "img": "s1671.jpg", + "roi": [ + 365.4759521484375, + 201.2789306640625, + 381.59063720703125, + 243.928955078125, + 0.9964854717254639 + ], + "score": 1.2327485084533691, + "correct": 0 + }, + { + "img": "s10692.jpg", + "roi": [ + 19.659940719604492, + 360.7237243652344, + 35.98344421386719, + 407.4169921875, + 0.992669939994812 + ], + "score": 1.0794999599456787, + "correct": 0 + }, + { + "img": "s12434.jpg", + "roi": [ + 265.0368347167969, + 256.8895263671875, + 279.6590881347656, + 298.1036071777344, + 0.9956744313240051 + ], + "score": 0.991209089756012, + "correct": 0 + }, + { + "img": "s10033.jpg", + "roi": [ + 183.05001831054688, + 145.55755615234375, + 221.78280639648438, + 247.79241943359375, + 0.9995019435882568 + ], + "score": 0.9903215169906616, + "correct": 0 + }, + { + "img": "s4919.jpg", + "roi": [ + 145.28314208984375, + 215.8408660888672, + 174.62625122070312, + 302.7122802734375, + 0.9977820515632629 + ], + "score": 0.8842744827270508, + "correct": 0 + }, + { + "img": "s10692.jpg", + "roi": [ + 0.7284774780273438, + 360.1084899902344, + 16.992542266845703, + 408.23944091796875, + 0.9865633249282837 + ], + "score": 0.8466299772262573, + "correct": 0 + }, + { + "img": "s995.jpg", + "roi": [ + 42.191505432128906, + 199.5478515625, + 70.16131591796875, + 283.46600341796875, + 0.9974186420440674 + ], + "score": 0.8326100707054138, + "correct": 0 + }, + { + "img": "s10033.jpg", + "roi": [ + 375.1415710449219, + 143.3843536376953, + 394.5692138671875, + 200.9689178466797, + 0.9962061643600464 + ], + "score": 0.8126810789108276, + "correct": 0 + }, + { + "img": "s4919.jpg", + "roi": [ + 123.10986328125, + 219.8789520263672, + 157.19131469726562, + 308.59552001953125, + 0.9938194155693054 + ], + "score": 0.810240626335144, + "correct": 0 + }, + { + "img": "s12434.jpg", + "roi": [ + 181.20481872558594, + 277.9949951171875, + 206.28955078125, + 341.5853576660156, + 0.9988254904747009 + ], + "score": 0.7902467250823975, + "correct": 0 + } + ] + }, + { + "query_img": "s10086.jpg", + "query_roi": [ + 415.0, + 180.0, + 444.0, + 259.0 + ], + "query_gt": [ + { + "img": "s10088.jpg", + "roi": [ + 303.0, + 189.0, + 340.0, + 290.0 + ] + } + ], + "gallery": [ + { + "img": "s5086.jpg", + "roi": [ + 376.88385009765625, + 185.8588104248047, + 422.34967041015625, + 313.10589599609375, + 0.9997178912162781 + ], + "score": 1.2893619537353516, + "correct": 0 + }, + { + "img": "s10088.jpg", + "roi": [ + 305.22259521484375, + 186.34121704101562, + 337.19195556640625, + 291.5076904296875, + 0.9986365437507629 + ], + "score": 1.021693468093872, + "correct": 1 + }, + { + "img": "s6406.jpg", + "roi": [ + 308.6877136230469, + 315.8128967285156, + 331.07708740234375, + 385.90673828125, + 0.9943443536758423 + ], + "score": 0.9883406162261963, + "correct": 0 + }, + { + "img": "s6406.jpg", + "roi": [ + 347.628662109375, + 302.43817138671875, + 368.63427734375, + 371.2586669921875, + 0.9984026551246643 + ], + "score": 0.9064558744430542, + "correct": 0 + }, + { + "img": "s1751.jpg", + "roi": [ + 431.1383056640625, + 214.5062713623047, + 451.69097900390625, + 269.8837890625, + 0.9957838654518127 + ], + "score": 0.8654206991195679, + "correct": 0 + }, + { + "img": "s5839.jpg", + "roi": [ + 569.5537719726562, + 149.6492156982422, + 595.049560546875, + 236.4427490234375, + 0.9991331696510315 + ], + "score": 0.8591381311416626, + "correct": 0 + }, + { + "img": "s5096.jpg", + "roi": [ + 279.9530029296875, + 128.74057006835938, + 332.8484802246094, + 288.2591247558594, + 0.9996645450592041 + ], + "score": 0.8200851678848267, + "correct": 0 + }, + { + "img": "s1085.jpg", + "roi": [ + 93.5262680053711, + 167.54879760742188, + 174.46859741210938, + 380.0844421386719, + 0.9998229146003723 + ], + "score": 0.7821645736694336, + "correct": 0 + }, + { + "img": "s6802.jpg", + "roi": [ + 370.34088134765625, + 206.34136962890625, + 473.90289306640625, + 518.0908203125, + 0.999680757522583 + ], + "score": 0.7713894844055176, + "correct": 0 + }, + { + "img": "s5900.jpg", + "roi": [ + 130.32945251464844, + 142.74925231933594, + 165.05711364746094, + 259.42724609375, + 0.9942618608474731 + ], + "score": 0.7640288472175598, + "correct": 0 + } + ] + }, + { + "query_img": "s4788.jpg", + "query_roi": [ + 583.0, + 300.0, + 646.0, + 479.0 + ], + "query_gt": [ + { + "img": "s4787.jpg", + "roi": [ + 188.0, + 229.0, + 273.0, + 478.0 + ] + } + ], + "gallery": [ + { + "img": "s6962.jpg", + "roi": [ + 208.22190856933594, + 188.6693572998047, + 266.3201904296875, + 354.3896179199219, + 0.9992621541023254 + ], + "score": 1.2122935056686401, + "correct": 0 + }, + { + "img": "s4787.jpg", + "roi": [ + 184.12442016601562, + 228.608154296875, + 277.50958251953125, + 480.7127380371094, + 0.9993096590042114 + ], + "score": 1.1545180082321167, + "correct": 1 + }, + { + "img": "s10287.jpg", + "roi": [ + 207.86044311523438, + 136.61724853515625, + 318.4059753417969, + 441.2929382324219, + 0.9998123049736023 + ], + "score": 1.0442019701004028, + "correct": 0 + }, + { + "img": "s2890.jpg", + "roi": [ + 42.42225646972656, + 133.10736083984375, + 66.8394775390625, + 203.340087890625, + 0.9845376014709473 + ], + "score": 0.8431980013847351, + "correct": 0 + }, + { + "img": "s10068.jpg", + "roi": [ + 316.8184814453125, + 221.445068359375, + 334.147216796875, + 281.5269775390625, + 0.9920178651809692 + ], + "score": 0.8344226479530334, + "correct": 0 + }, + { + "img": "s17339.jpg", + "roi": [ + 412.3479919433594, + 249.79690551757812, + 454.46826171875, + 370.1456604003906, + 0.9995728135108948 + ], + "score": 0.8300454616546631, + "correct": 0 + }, + { + "img": "s4594.jpg", + "roi": [ + 556.8558959960938, + 179.7827606201172, + 623.2958984375, + 344.53326416015625, + 0.9997965693473816 + ], + "score": 0.8274376392364502, + "correct": 0 + }, + { + "img": "s1668.jpg", + "roi": [ + 250.50381469726562, + 186.1400146484375, + 299.4498291015625, + 345.13671875, + 0.9994924068450928 + ], + "score": 0.7333744764328003, + "correct": 0 + }, + { + "img": "s12347.jpg", + "roi": [ + 17.899255752563477, + 210.79714965820312, + 50.0540885925293, + 321.0520935058594, + 0.9987413287162781 + ], + "score": 0.7274432182312012, + "correct": 0 + }, + { + "img": "s15521.jpg", + "roi": [ + 396.9262390136719, + 245.06536865234375, + 436.1712646484375, + 367.14453125, + 0.9975965619087219 + ], + "score": 0.7243782877922058, + "correct": 0 + } + ] + }, + { + "query_img": "s4104.jpg", + "query_roi": [ + 525.0, + 279.0, + 565.0, + 386.0 + ], + "query_gt": [ + { + "img": "s4106.jpg", + "roi": [ + 390.0, + 262.0, + 442.0, + 401.0 + ] + }, + { + "img": "s4105.jpg", + "roi": [ + 321.0, + 263.0, + 368.0, + 389.0 + ] + } + ], + "gallery": [ + { + "img": "s4105.jpg", + "roi": [ + 396.92108154296875, + 270.4400634765625, + 442.9534606933594, + 392.76513671875, + 0.9996323585510254 + ], + "score": 1.1978263854980469, + "correct": 0 + }, + { + "img": "s5098.jpg", + "roi": [ + 312.45989990234375, + 130.97198486328125, + 390.185546875, + 341.70318603515625, + 0.9996176958084106 + ], + "score": 1.0691297054290771, + "correct": 0 + }, + { + "img": "s4367.jpg", + "roi": [ + 263.34600830078125, + 216.9160614013672, + 340.5532531738281, + 409.4613037109375, + 0.9998080134391785 + ], + "score": 0.9414011836051941, + "correct": 0 + }, + { + "img": "s3704.jpg", + "roi": [ + 213.42727661132812, + 229.2410888671875, + 229.55711364746094, + 276.3807067871094, + 0.9977839589118958 + ], + "score": 0.9316211938858032, + "correct": 0 + }, + { + "img": "s2465.jpg", + "roi": [ + 499.40679931640625, + 234.283203125, + 525.7916259765625, + 306.517822265625, + 0.9948461055755615 + ], + "score": 0.9237661957740784, + "correct": 0 + }, + { + "img": "s2281.jpg", + "roi": [ + 386.99560546875, + 163.56520080566406, + 422.3592224121094, + 272.70172119140625, + 0.9904465675354004 + ], + "score": 0.8884543180465698, + "correct": 0 + }, + { + "img": "s2095.jpg", + "roi": [ + 257.15606689453125, + 270.86566162109375, + 290.9371643066406, + 376.1563415527344, + 0.9978660941123962 + ], + "score": 0.8842475414276123, + "correct": 0 + }, + { + "img": "s4746.jpg", + "roi": [ + 717.615478515625, + 153.943359375, + 731.144287109375, + 192.66497802734375, + 0.993306577205658 + ], + "score": 0.8509295582771301, + "correct": 0 + }, + { + "img": "s4746.jpg", + "roi": [ + 698.409912109375, + 155.7066650390625, + 711.8436889648438, + 192.99560546875, + 0.995170533657074 + ], + "score": 0.8355998992919922, + "correct": 0 + }, + { + "img": "s10486.jpg", + "roi": [ + 423.3202819824219, + 200.60635375976562, + 462.6829833984375, + 321.50457763671875, + 0.9982629418373108 + ], + "score": 0.8248635530471802, + "correct": 0 + } + ] + }, + { + "query_img": "s7756.jpg", + "query_roi": [ + 437.0, + 166.0, + 517.0, + 380.0 + ], + "query_gt": [ + { + "img": "s7757.jpg", + "roi": [ + 177.0, + 110.0, + 266.0, + 382.0 + ] + } + ], + "gallery": [ + { + "img": "s10700.jpg", + "roi": [ + 358.0672302246094, + 109.61997985839844, + 394.875, + 207.40335083007812, + 0.9965718984603882 + ], + "score": 0.8825985789299011, + "correct": 0 + }, + { + "img": "s12067.jpg", + "roi": [ + 30.905790328979492, + 426.0055236816406, + 99.79315185546875, + 636.3405151367188, + 0.9983510971069336 + ], + "score": 0.8374385237693787, + "correct": 0 + }, + { + "img": "s4874.jpg", + "roi": [ + 298.3442077636719, + 137.67193603515625, + 334.0831298828125, + 242.67559814453125, + 0.9985626339912415 + ], + "score": 0.8093515038490295, + "correct": 0 + }, + { + "img": "s10700.jpg", + "roi": [ + 236.82861328125, + 117.28770446777344, + 264.08819580078125, + 196.38433837890625, + 0.9948886036872864 + ], + "score": 0.780632734298706, + "correct": 0 + }, + { + "img": "s10700.jpg", + "roi": [ + 426.1573181152344, + 113.20289611816406, + 457.899658203125, + 200.34274291992188, + 0.983646035194397 + ], + "score": 0.7753269672393799, + "correct": 0 + }, + { + "img": "s7757.jpg", + "roi": [ + 175.36944580078125, + 108.21937561035156, + 263.69879150390625, + 373.9608154296875, + 0.9997872710227966 + ], + "score": 0.7561196684837341, + "correct": 1 + }, + { + "img": "s11779.jpg", + "roi": [ + 332.31597900390625, + 381.0210876464844, + 353.4314270019531, + 445.38787841796875, + 0.9987810254096985 + ], + "score": 0.7541891932487488, + "correct": 0 + }, + { + "img": "s10774.jpg", + "roi": [ + 1.846571683883667, + 170.5597381591797, + 24.470718383789062, + 246.4911346435547, + 0.9823562502861023 + ], + "score": 0.6887273788452148, + "correct": 0 + }, + { + "img": "s14441.jpg", + "roi": [ + 298.6983337402344, + 197.69122314453125, + 344.06109619140625, + 320.5484619140625, + 0.996737539768219 + ], + "score": 0.6711759567260742, + "correct": 0 + }, + { + "img": "s10129.jpg", + "roi": [ + 93.14395141601562, + 235.50881958007812, + 202.41806030273438, + 523.0037841796875, + 0.9996838569641113 + ], + "score": 0.6576070189476013, + "correct": 0 + } + ] + }, + { + "query_img": "s3945.jpg", + "query_roi": [ + 360.0, + 196.0, + 403.0, + 312.0 + ], + "query_gt": [ + { + "img": "s3944.jpg", + "roi": [ + 354.0, + 32.0, + 495.0, + 408.0 + ] + } + ], + "gallery": [ + { + "img": "s1653.jpg", + "roi": [ + 253.5288543701172, + 94.33041381835938, + 316.3660583496094, + 266.55230712890625, + 0.9994840621948242 + ], + "score": 1.0818562507629395, + "correct": 0 + }, + { + "img": "s3944.jpg", + "roi": [ + 362.2064208984375, + 31.16497802734375, + 486.97491455078125, + 405.18328857421875, + 0.9993995428085327 + ], + "score": 1.040085792541504, + "correct": 1 + }, + { + "img": "s1558.jpg", + "roi": [ + 46.41987228393555, + 198.302490234375, + 95.1963119506836, + 333.0846862792969, + 0.9993347525596619 + ], + "score": 0.9492617249488831, + "correct": 0 + }, + { + "img": "s1558.jpg", + "roi": [ + 99.83853149414062, + 214.06674194335938, + 127.12338256835938, + 297.9429626464844, + 0.9980721473693848 + ], + "score": 0.9403181672096252, + "correct": 0 + }, + { + "img": "s5066.jpg", + "roi": [ + 306.6605224609375, + 266.55267333984375, + 350.7462158203125, + 403.3649597167969, + 0.9991521835327148 + ], + "score": 0.9371220469474792, + "correct": 0 + }, + { + "img": "s9079.jpg", + "roi": [ + 1.6252059936523438, + 322.8814697265625, + 31.127897262573242, + 422.9332275390625, + 0.9969210624694824 + ], + "score": 0.9367136359214783, + "correct": 0 + }, + { + "img": "s1558.jpg", + "roi": [ + 442.35003662109375, + 210.81494140625, + 518.52001953125, + 419.72430419921875, + 0.9997101426124573 + ], + "score": 0.8793728351593018, + "correct": 0 + }, + { + "img": "s2244.jpg", + "roi": [ + 415.1876220703125, + 225.30258178710938, + 457.0545654296875, + 358.3958435058594, + 0.9979220032691956 + ], + "score": 0.8652791976928711, + "correct": 0 + }, + { + "img": "s1944.jpg", + "roi": [ + 417.9543151855469, + 174.7092742919922, + 447.4313659667969, + 270.4678649902344, + 0.998808741569519 + ], + "score": 0.826203465461731, + "correct": 0 + }, + { + "img": "s5947.jpg", + "roi": [ + 467.6446533203125, + 151.87728881835938, + 491.1287841796875, + 228.37261962890625, + 0.9958620071411133 + ], + "score": 0.8171972632408142, + "correct": 0 + } + ] + }, + { + "query_img": "s11578.jpg", + "query_roi": [ + 266.0, + 300.0, + 299.0, + 390.0 + ], + "query_gt": [ + { + "img": "s11579.jpg", + "roi": [ + 156.0, + 263.0, + 186.0, + 343.0 + ] + } + ], + "gallery": [ + { + "img": "s12018.jpg", + "roi": [ + 266.747314453125, + 336.64056396484375, + 315.74908447265625, + 467.7715759277344, + 0.9997040629386902 + ], + "score": 1.0195485353469849, + "correct": 0 + }, + { + "img": "s12291.jpg", + "roi": [ + 181.07034301757812, + 292.0124206542969, + 201.0074005126953, + 349.52252197265625, + 0.9974341988563538 + ], + "score": 1.0004459619522095, + "correct": 0 + }, + { + "img": "s11579.jpg", + "roi": [ + 161.84356689453125, + 262.67041015625, + 187.75328063964844, + 340.6905517578125, + 0.9821301102638245 + ], + "score": 0.9321246147155762, + "correct": 1 + }, + { + "img": "s11312.jpg", + "roi": [ + 206.91217041015625, + 250.350830078125, + 250.987060546875, + 374.3471984863281, + 0.9993371367454529 + ], + "score": 0.9237587451934814, + "correct": 0 + }, + { + "img": "s2164.jpg", + "roi": [ + 79.78765106201172, + 195.85421752929688, + 106.96345520019531, + 282.773193359375, + 0.9989346861839294 + ], + "score": 0.8973885178565979, + "correct": 0 + }, + { + "img": "s12018.jpg", + "roi": [ + 137.2010498046875, + 250.8621826171875, + 164.8462371826172, + 333.2930603027344, + 0.9979315996170044 + ], + "score": 0.854019820690155, + "correct": 0 + }, + { + "img": "s691.jpg", + "roi": [ + 149.46568298339844, + 90.6511459350586, + 254.50405883789062, + 383.73114013671875, + 0.9991733431816101 + ], + "score": 0.8404378294944763, + "correct": 0 + }, + { + "img": "s10530.jpg", + "roi": [ + 430.06787109375, + 255.86904907226562, + 454.418701171875, + 331.28326416015625, + 0.9963703155517578 + ], + "score": 0.826265811920166, + "correct": 0 + }, + { + "img": "s3528.jpg", + "roi": [ + 254.0970916748047, + 186.92901611328125, + 275.2491455078125, + 249.98855590820312, + 0.9943345785140991 + ], + "score": 0.7834321856498718, + "correct": 0 + }, + { + "img": "s12291.jpg", + "roi": [ + 226.5751495361328, + 289.33734130859375, + 245.65602111816406, + 340.5534973144531, + 0.9958751797676086 + ], + "score": 0.7766909599304199, + "correct": 0 + } + ] + }, + { + "query_img": "s1259.jpg", + "query_roi": [ + 248.0, + 134.0, + 332.0, + 380.0 + ], + "query_gt": [ + { + "img": "s1260.jpg", + "roi": [ + 169.0, + 103.0, + 248.0, + 344.0 + ] + } + ], + "gallery": [ + { + "img": "s7443.jpg", + "roi": [ + 213.74424743652344, + 216.77748107910156, + 282.4447021484375, + 393.9511413574219, + 0.9998313188552856 + ], + "score": 0.796083927154541, + "correct": 0 + }, + { + "img": "s1260.jpg", + "roi": [ + 180.93441772460938, + 104.93321228027344, + 274.3276062011719, + 359.639892578125, + 0.998835027217865 + ], + "score": 0.7855003476142883, + "correct": 1 + }, + { + "img": "s2095.jpg", + "roi": [ + 194.023193359375, + 264.51788330078125, + 242.08578491210938, + 399.54290771484375, + 0.9997182488441467 + ], + "score": 0.7833001613616943, + "correct": 0 + }, + { + "img": "s1598.jpg", + "roi": [ + 169.7287139892578, + 204.97201538085938, + 215.6229705810547, + 336.81292724609375, + 0.998760461807251 + ], + "score": 0.7815341949462891, + "correct": 0 + }, + { + "img": "s3617.jpg", + "roi": [ + 15.809408187866211, + 115.26858520507812, + 76.48844909667969, + 286.9152526855469, + 0.9977177381515503 + ], + "score": 0.7780255079269409, + "correct": 0 + }, + { + "img": "s3617.jpg", + "roi": [ + 71.95277404785156, + 27.23297119140625, + 131.71441650390625, + 210.89956665039062, + 0.9914268255233765 + ], + "score": 0.7228697538375854, + "correct": 0 + }, + { + "img": "s10803.jpg", + "roi": [ + 303.6259765625, + 175.36611938476562, + 383.2294006347656, + 393.642578125, + 0.9995118379592896 + ], + "score": 0.690178632736206, + "correct": 0 + }, + { + "img": "s5737.jpg", + "roi": [ + 140.59141540527344, + 98.11491394042969, + 206.78997802734375, + 286.88189697265625, + 0.9996492862701416 + ], + "score": 0.6828004121780396, + "correct": 0 + }, + { + "img": "s6550.jpg", + "roi": [ + 154.5542449951172, + 334.0591735839844, + 206.45065307617188, + 479.26751708984375, + 0.9996671676635742 + ], + "score": 0.6784123778343201, + "correct": 0 + }, + { + "img": "s1584.jpg", + "roi": [ + 476.6498718261719, + 236.5089111328125, + 565.8232421875, + 520.3250732421875, + 0.9997090697288513 + ], + "score": 0.6765352487564087, + "correct": 0 + } + ] + }, + { + "query_img": "s9347.jpg", + "query_roi": [ + 433.0, + 231.0, + 501.0, + 412.0 + ], + "query_gt": [ + { + "img": "s9348.jpg", + "roi": [ + 327.0, + 248.0, + 405.0, + 457.0 + ] + } + ], + "gallery": [ + { + "img": "s1807.jpg", + "roi": [ + 219.28475952148438, + 111.96074676513672, + 333.025390625, + 433.2489929199219, + 0.9997861981391907 + ], + "score": 0.8812143802642822, + "correct": 0 + }, + { + "img": "s9348.jpg", + "roi": [ + 335.7362060546875, + 245.2145233154297, + 402.47247314453125, + 440.8196716308594, + 0.9980399012565613 + ], + "score": 0.8419422507286072, + "correct": 1 + }, + { + "img": "s9348.jpg", + "roi": [ + 500.5022888183594, + 234.88824462890625, + 588.1263427734375, + 516.368896484375, + 0.9989598989486694 + ], + "score": 0.8100096583366394, + "correct": 0 + }, + { + "img": "s726.jpg", + "roi": [ + 101.71208190917969, + 158.00390625, + 186.64163208007812, + 407.2579345703125, + 0.9941072463989258 + ], + "score": 0.7013976573944092, + "correct": 0 + }, + { + "img": "s9653.jpg", + "roi": [ + 287.37225341796875, + 195.59939575195312, + 371.857666015625, + 497.44476318359375, + 0.9869258403778076 + ], + "score": 0.6896854043006897, + "correct": 0 + }, + { + "img": "s1978.jpg", + "roi": [ + 88.53610229492188, + 88.26298522949219, + 272.3917236328125, + 551.6277465820312, + 0.9994188547134399 + ], + "score": 0.6713209748268127, + "correct": 0 + }, + { + "img": "s9784.jpg", + "roi": [ + 480.45550537109375, + 237.836181640625, + 538.186767578125, + 385.82232666015625, + 0.9995365142822266 + ], + "score": 0.6568797826766968, + "correct": 0 + }, + { + "img": "s2876.jpg", + "roi": [ + 711.209228515625, + 231.46682739257812, + 796.350830078125, + 510.02490234375, + 0.9995982050895691 + ], + "score": 0.6322274208068848, + "correct": 0 + }, + { + "img": "s2745.jpg", + "roi": [ + 182.544921875, + 81.17479705810547, + 275.55706787109375, + 344.13470458984375, + 0.9981517195701599 + ], + "score": 0.6090726256370544, + "correct": 0 + }, + { + "img": "s1807.jpg", + "roi": [ + 493.3675231933594, + 131.19061279296875, + 565.9111328125, + 316.20111083984375, + 0.9996044039726257 + ], + "score": 0.6048178672790527, + "correct": 0 + } + ] + }, + { + "query_img": "s4296.jpg", + "query_roi": [ + 434.0, + 362.0, + 477.0, + 476.0 + ], + "query_gt": [ + { + "img": "s4295.jpg", + "roi": [ + 564.0, + 104.0, + 647.0, + 325.0 + ] + } + ], + "gallery": [ + { + "img": "s10749.jpg", + "roi": [ + 345.8984069824219, + 168.85409545898438, + 380.13531494140625, + 264.99114990234375, + 0.9997130036354065 + ], + "score": 0.9394023418426514, + "correct": 0 + }, + { + "img": "s3723.jpg", + "roi": [ + 188.9915771484375, + 216.94454956054688, + 278.6761474609375, + 469.9963073730469, + 0.9988852143287659 + ], + "score": 0.8873200416564941, + "correct": 0 + }, + { + "img": "s10749.jpg", + "roi": [ + 303.0814514160156, + 167.22792053222656, + 339.5350341796875, + 270.3210144042969, + 0.9977086782455444 + ], + "score": 0.8239853978157043, + "correct": 0 + }, + { + "img": "s6011.jpg", + "roi": [ + 557.3136596679688, + 222.00967407226562, + 596.7581787109375, + 379.28802490234375, + 0.9996703863143921 + ], + "score": 0.8132051825523376, + "correct": 0 + }, + { + "img": "s6011.jpg", + "roi": [ + 450.23272705078125, + 241.96041870117188, + 487.9616394042969, + 352.65667724609375, + 0.9992621541023254 + ], + "score": 0.7612394094467163, + "correct": 0 + }, + { + "img": "s1343.jpg", + "roi": [ + 353.0099792480469, + 136.39117431640625, + 446.65826416015625, + 492.40057373046875, + 0.9876754283905029 + ], + "score": 0.758698046207428, + "correct": 0 + }, + { + "img": "s9686.jpg", + "roi": [ + 227.2293701171875, + 183.3790740966797, + 269.25274658203125, + 316.94427490234375, + 0.9994845390319824 + ], + "score": 0.7392821907997131, + "correct": 0 + }, + { + "img": "s10749.jpg", + "roi": [ + 423.06451416015625, + 159.42544555664062, + 469.70343017578125, + 298.0386047363281, + 0.9990072846412659 + ], + "score": 0.7308537364006042, + "correct": 0 + }, + { + "img": "s10910.jpg", + "roi": [ + 556.1251220703125, + 196.73757934570312, + 592.8799438476562, + 311.1068420410156, + 0.9970996379852295 + ], + "score": 0.7248654961585999, + "correct": 0 + }, + { + "img": "s7902.jpg", + "roi": [ + 539.7477416992188, + 124.81282806396484, + 602.775634765625, + 297.1273498535156, + 0.9854182004928589 + ], + "score": 0.7205564379692078, + "correct": 0 + } + ] + }, + { + "query_img": "s4867.jpg", + "query_roi": [ + 389.0, + 219.0, + 433.0, + 337.0 + ], + "query_gt": [ + { + "img": "s4868.jpg", + "roi": [ + 279.0, + 158.0, + 345.0, + 336.0 + ] + } + ], + "gallery": [ + { + "img": "s10708.jpg", + "roi": [ + 58.5538330078125, + 94.281494140625, + 94.88463592529297, + 194.6767578125, + 0.997262716293335 + ], + "score": 1.0388901233673096, + "correct": 0 + }, + { + "img": "s4868.jpg", + "roi": [ + 278.25897216796875, + 158.6302490234375, + 342.41802978515625, + 332.1844482421875, + 0.9989703893661499 + ], + "score": 1.0171456336975098, + "correct": 1 + }, + { + "img": "s4868.jpg", + "roi": [ + 348.26123046875, + 169.985595703125, + 411.1556091308594, + 340.92333984375, + 0.9991682767868042 + ], + "score": 0.9425963759422302, + "correct": 0 + }, + { + "img": "s10708.jpg", + "roi": [ + 353.93109130859375, + 46.548744201660156, + 384.3262634277344, + 130.32510375976562, + 0.9971321821212769 + ], + "score": 0.9096953868865967, + "correct": 0 + }, + { + "img": "s43.jpg", + "roi": [ + 261.2142333984375, + 399.88909912109375, + 273.1265563964844, + 434.48773193359375, + 0.9854052662849426 + ], + "score": 0.9041861295700073, + "correct": 0 + }, + { + "img": "s11889.jpg", + "roi": [ + 382.4136047363281, + 456.23712158203125, + 403.05108642578125, + 518.4581298828125, + 0.9875807762145996 + ], + "score": 0.8552060127258301, + "correct": 0 + }, + { + "img": "s4788.jpg", + "roi": [ + 582.7646484375, + 299.31414794921875, + 641.6017456054688, + 476.8797302246094, + 0.997187077999115 + ], + "score": 0.8476754426956177, + "correct": 0 + }, + { + "img": "s4511.jpg", + "roi": [ + 479.448974609375, + 185.78683471679688, + 500.5772399902344, + 248.8529052734375, + 0.9966005682945251 + ], + "score": 0.8149335980415344, + "correct": 0 + }, + { + "img": "s5348.jpg", + "roi": [ + 392.963134765625, + 131.39566040039062, + 451.1819763183594, + 293.6282958984375, + 0.9995095729827881 + ], + "score": 0.8057164549827576, + "correct": 0 + }, + { + "img": "s12180.jpg", + "roi": [ + 350.4662170410156, + 190.64515686035156, + 415.52056884765625, + 377.0102233886719, + 0.9994378685951233 + ], + "score": 0.8040170073509216, + "correct": 0 + } + ] + }, + { + "query_img": "s9790.jpg", + "query_roi": [ + 281.0, + 223.0, + 311.0, + 303.0 + ], + "query_gt": [ + { + "img": "s9791.jpg", + "roi": [ + 351.0, + 262.0, + 389.0, + 364.0 + ] + } + ], + "gallery": [ + { + "img": "s9791.jpg", + "roi": [ + 429.6378173828125, + 261.2591247558594, + 444.5997314453125, + 308.30633544921875, + 0.9617372751235962 + ], + "score": 1.166011095046997, + "correct": 0 + }, + { + "img": "s9002.jpg", + "roi": [ + 546.7846069335938, + 242.5206298828125, + 568.6596069335938, + 312.20648193359375, + 0.8803322911262512 + ], + "score": 1.0954532623291016, + "correct": 0 + }, + { + "img": "s9791.jpg", + "roi": [ + 353.23211669921875, + 261.51336669921875, + 385.758056640625, + 363.95501708984375, + 0.9992341995239258 + ], + "score": 1.0836851596832275, + "correct": 1 + }, + { + "img": "s8891.jpg", + "roi": [ + 402.68731689453125, + 221.7755584716797, + 425.39849853515625, + 302.3918151855469, + 0.9419690370559692 + ], + "score": 1.0725340843200684, + "correct": 0 + }, + { + "img": "s214.jpg", + "roi": [ + 434.7173767089844, + 266.24200439453125, + 456.23553466796875, + 330.55914306640625, + 0.9875400066375732 + ], + "score": 1.0401500463485718, + "correct": 0 + }, + { + "img": "s2245.jpg", + "roi": [ + 397.84515380859375, + 238.4149169921875, + 419.6753845214844, + 310.7041015625, + 0.9574447274208069 + ], + "score": 1.0155773162841797, + "correct": 0 + }, + { + "img": "s2222.jpg", + "roi": [ + 170.20933532714844, + 213.53106689453125, + 194.28497314453125, + 290.09649658203125, + 0.9797024130821228 + ], + "score": 1.0092328786849976, + "correct": 0 + }, + { + "img": "s10172.jpg", + "roi": [ + 236.0196533203125, + 136.13229370117188, + 299.5556335449219, + 314.0809326171875, + 0.9996079802513123 + ], + "score": 1.0016367435455322, + "correct": 0 + }, + { + "img": "s9791.jpg", + "roi": [ + 441.56329345703125, + 259.0923156738281, + 457.9408874511719, + 307.60845947265625, + 0.9341751337051392 + ], + "score": 0.998148500919342, + "correct": 0 + }, + { + "img": "s9791.jpg", + "roi": [ + 449.8059997558594, + 261.2821350097656, + 463.816650390625, + 306.24658203125, + 0.8840469121932983 + ], + "score": 0.9954736232757568, + "correct": 0 + } + ] + }, + { + "query_img": "s7758.jpg", + "query_roi": [ + 450.0, + 146.0, + 534.0, + 390.0 + ], + "query_gt": [ + { + "img": "s7759.jpg", + "roi": [ + 35.0, + 151.0, + 155.0, + 471.0 + ] + }, + { + "img": "s7760.jpg", + "roi": [ + 535.0, + 173.0, + 648.0, + 497.0 + ] + } + ], + "gallery": [ + { + "img": "s14811.jpg", + "roi": [ + 661.5692138671875, + 173.11663818359375, + 702.4119262695312, + 302.03118896484375, + 0.9985730648040771 + ], + "score": 0.9820308685302734, + "correct": 0 + }, + { + "img": "s14811.jpg", + "roi": [ + 619.3458862304688, + 168.6182403564453, + 671.2474365234375, + 322.4443664550781, + 0.9486048221588135 + ], + "score": 0.9063225388526917, + "correct": 0 + }, + { + "img": "s7759.jpg", + "roi": [ + 30.14011573791504, + 149.08497619628906, + 154.16726684570312, + 475.9976501464844, + 0.9997708201408386 + ], + "score": 0.903029203414917, + "correct": 1 + }, + { + "img": "s10946.jpg", + "roi": [ + 442.47491455078125, + 180.30003356933594, + 488.3864440917969, + 336.35662841796875, + 0.9921189546585083 + ], + "score": 0.7672256231307983, + "correct": 0 + }, + { + "img": "s4980.jpg", + "roi": [ + 167.37399291992188, + 211.0162353515625, + 204.23471069335938, + 324.9476318359375, + 0.9350327253341675 + ], + "score": 0.7230222225189209, + "correct": 0 + }, + { + "img": "s3916.jpg", + "roi": [ + 298.1780700683594, + 106.72967529296875, + 328.24859619140625, + 200.5427703857422, + 0.9937514662742615 + ], + "score": 0.7216481566429138, + "correct": 0 + }, + { + "img": "s2685.jpg", + "roi": [ + 340.10986328125, + 109.81106567382812, + 362.853759765625, + 187.3430633544922, + 0.9990217685699463 + ], + "score": 0.7192204594612122, + "correct": 0 + }, + { + "img": "s9935.jpg", + "roi": [ + 524.989501953125, + 115.06462097167969, + 572.146240234375, + 247.43283081054688, + 0.9991135001182556 + ], + "score": 0.705704927444458, + "correct": 0 + }, + { + "img": "s14811.jpg", + "roi": [ + 196.63037109375, + 140.35975646972656, + 232.35292053222656, + 253.38778686523438, + 0.9990332126617432 + ], + "score": 0.6936523914337158, + "correct": 0 + }, + { + "img": "s193.jpg", + "roi": [ + 508.82391357421875, + 640.0533447265625, + 573.8199462890625, + 800.0, + 0.9636503458023071 + ], + "score": 0.6864840388298035, + "correct": 0 + } + ] + }, + { + "query_img": "s5313.jpg", + "query_roi": [ + 408.0, + 214.0, + 426.0, + 263.0 + ], + "query_gt": [ + { + "img": "s5311.jpg", + "roi": [ + 412.0, + 189.0, + 449.0, + 288.0 + ] + }, + { + "img": "s5312.jpg", + "roi": [ + 445.0, + 164.0, + 498.0, + 305.0 + ] + } + ], + "gallery": [ + { + "img": "s10401.jpg", + "roi": [ + 430.3547058105469, + 255.02972412109375, + 446.3854675292969, + 295.583984375, + 0.9878836274147034 + ], + "score": 1.2264724969863892, + "correct": 0 + }, + { + "img": "s73.jpg", + "roi": [ + 105.20894622802734, + 233.85693359375, + 123.00199890136719, + 288.65972900390625, + 0.9982870221138 + ], + "score": 1.109407901763916, + "correct": 0 + }, + { + "img": "s10401.jpg", + "roi": [ + 449.9189453125, + 263.787841796875, + 462.8052673339844, + 299.4385681152344, + 0.9786139130592346 + ], + "score": 1.0572593212127686, + "correct": 0 + }, + { + "img": "s73.jpg", + "roi": [ + 251.23214721679688, + 237.38885498046875, + 272.944580078125, + 305.5952453613281, + 0.9742083549499512 + ], + "score": 1.0552947521209717, + "correct": 0 + }, + { + "img": "s5311.jpg", + "roi": [ + 415.1665954589844, + 189.3356170654297, + 449.6248474121094, + 288.76287841796875, + 0.9993871450424194 + ], + "score": 1.0357028245925903, + "correct": 1 + }, + { + "img": "s3953.jpg", + "roi": [ + 88.97950744628906, + 220.2691650390625, + 103.61293029785156, + 264.53729248046875, + 0.8708904981613159 + ], + "score": 1.0338610410690308, + "correct": 0 + }, + { + "img": "s9573.jpg", + "roi": [ + 500.0297546386719, + 260.4990234375, + 528.0652465820312, + 347.2637939453125, + 0.9809964895248413 + ], + "score": 0.992851972579956, + "correct": 0 + }, + { + "img": "s5312.jpg", + "roi": [ + 446.4319763183594, + 165.2026824951172, + 497.749755859375, + 310.0302429199219, + 0.9996019005775452 + ], + "score": 0.990155816078186, + "correct": 1 + }, + { + "img": "s10652.jpg", + "roi": [ + 91.40367126464844, + 299.9359130859375, + 105.42955017089844, + 338.07708740234375, + 0.9694246649742126 + ], + "score": 0.9782115817070007, + "correct": 0 + }, + { + "img": "s10652.jpg", + "roi": [ + 32.53933334350586, + 297.71905517578125, + 50.86566162109375, + 346.4187927246094, + 0.995854914188385 + ], + "score": 0.965613603591919, + "correct": 0 + } + ] + }, + { + "query_img": "s5657.jpg", + "query_roi": [ + 271.0, + 53.0, + 307.0, + 154.0 + ], + "query_gt": [ + { + "img": "s5654.jpg", + "roi": [ + 193.0, + 49.0, + 403.0, + 671.0 + ] + }, + { + "img": "s5655.jpg", + "roi": [ + 239.0, + 170.0, + 356.0, + 520.0 + ] + }, + { + "img": "s5656.jpg", + "roi": [ + 284.0, + 132.0, + 323.0, + 254.0 + ] + } + ], + "gallery": [ + { + "img": "s5658.jpg", + "roi": [ + 383.20147705078125, + 102.52632141113281, + 416.58233642578125, + 199.51522827148438, + 0.998151957988739 + ], + "score": 1.6203280687332153, + "correct": 0 + }, + { + "img": "s5656.jpg", + "roi": [ + 283.8238525390625, + 131.23690795898438, + 327.70953369140625, + 254.119140625, + 0.9985408782958984 + ], + "score": 1.3827329874038696, + "correct": 1 + }, + { + "img": "s5655.jpg", + "roi": [ + 234.1089324951172, + 171.71273803710938, + 363.1946716308594, + 518.5888671875, + 0.999722421169281 + ], + "score": 1.2248655557632446, + "correct": 1 + }, + { + "img": "s15725.jpg", + "roi": [ + 277.73431396484375, + 137.85020446777344, + 320.01641845703125, + 293.42047119140625, + 0.9994726777076721 + ], + "score": 1.2036927938461304, + "correct": 0 + }, + { + "img": "s5654.jpg", + "roi": [ + 190.24142456054688, + 46.40679931640625, + 397.4718933105469, + 626.7056884765625, + 0.9988037347793579 + ], + "score": 1.138608694076538, + "correct": 1 + }, + { + "img": "s5658.jpg", + "roi": [ + 290.3798828125, + 75.62382507324219, + 364.44091796875, + 297.59344482421875, + 0.9985345602035522 + ], + "score": 1.0112907886505127, + "correct": 0 + }, + { + "img": "s11034.jpg", + "roi": [ + 207.32765197753906, + 246.15475463867188, + 226.58021545410156, + 297.3006591796875, + 0.9939985275268555 + ], + "score": 0.8964952230453491, + "correct": 0 + }, + { + "img": "s11034.jpg", + "roi": [ + 88.46676635742188, + 251.8389892578125, + 108.80781555175781, + 320.864990234375, + 0.9927253723144531 + ], + "score": 0.8717435002326965, + "correct": 0 + }, + { + "img": "s5658.jpg", + "roi": [ + 514.2088623046875, + 113.69287109375, + 537.5007934570312, + 182.63211059570312, + 0.9980155229568481 + ], + "score": 0.864126980304718, + "correct": 0 + }, + { + "img": "s15876.jpg", + "roi": [ + 314.09527587890625, + 100.93597412109375, + 346.5541076660156, + 201.37557983398438, + 0.9987152814865112 + ], + "score": 0.8504868149757385, + "correct": 0 + } + ] + }, + { + "query_img": "s12229.jpg", + "query_roi": [ + 194.0, + 355.0, + 233.0, + 459.0 + ], + "query_gt": [ + { + "img": "s12241.jpg", + "roi": [ + 275.0, + 230.0, + 307.0, + 316.0 + ] + }, + { + "img": "s12230.jpg", + "roi": [ + 218.0, + 355.0, + 277.0, + 512.0 + ] + }, + { + "img": "s12231.jpg", + "roi": [ + 304.0, + 362.0, + 370.0, + 540.0 + ] + } + ], + "gallery": [ + { + "img": "s12230.jpg", + "roi": [ + 71.16654205322266, + 424.33367919921875, + 163.49832153320312, + 659.5310668945312, + 0.9997274279594421 + ], + "score": 1.4140675067901611, + "correct": 0 + }, + { + "img": "s12231.jpg", + "roi": [ + 41.610260009765625, + 453.3955078125, + 138.364501953125, + 693.9422607421875, + 0.9991918206214905 + ], + "score": 1.3945435285568237, + "correct": 0 + }, + { + "img": "s12332.jpg", + "roi": [ + 208.28013610839844, + 305.3890075683594, + 244.46266174316406, + 409.70758056640625, + 0.9993746876716614 + ], + "score": 1.0438183546066284, + "correct": 0 + }, + { + "img": "s12241.jpg", + "roi": [ + 414.5714111328125, + 239.6280517578125, + 448.51220703125, + 347.3321838378906, + 0.9995680451393127 + ], + "score": 1.0177181959152222, + "correct": 0 + }, + { + "img": "s838.jpg", + "roi": [ + 520.2893676757812, + 378.9461669921875, + 539.0633544921875, + 432.6049499511719, + 0.9602741003036499 + ], + "score": 0.9528438448905945, + "correct": 0 + }, + { + "img": "s12230.jpg", + "roi": [ + 215.74571228027344, + 356.6828308105469, + 273.69000244140625, + 510.9513244628906, + 0.9997350573539734 + ], + "score": 0.9517542123794556, + "correct": 1 + }, + { + "img": "s838.jpg", + "roi": [ + 418.49725341796875, + 55.963226318359375, + 440.8134765625, + 127.71888732910156, + 0.9983111619949341 + ], + "score": 0.8918905854225159, + "correct": 0 + }, + { + "img": "s10668.jpg", + "roi": [ + 4.018483638763428, + 300.9727783203125, + 33.80777359008789, + 409.85443115234375, + 0.9774423837661743 + ], + "score": 0.8822007775306702, + "correct": 0 + }, + { + "img": "s12231.jpg", + "roi": [ + 304.8124694824219, + 365.8119201660156, + 373.4845275878906, + 541.1110229492188, + 0.9995135068893433 + ], + "score": 0.8768014311790466, + "correct": 1 + }, + { + "img": "s12171.jpg", + "roi": [ + 149.10147094726562, + 348.9484558105469, + 184.96115112304688, + 446.3778076171875, + 0.9995883107185364 + ], + "score": 0.8189280033111572, + "correct": 0 + } + ] + }, + { + "query_img": "s4316.jpg", + "query_roi": [ + 678.0, + 220.0, + 734.0, + 370.0 + ], + "query_gt": [ + { + "img": "s4317.jpg", + "roi": [ + 221.0, + 91.0, + 298.0, + 299.0 + ] + } + ], + "gallery": [ + { + "img": "s5081.jpg", + "roi": [ + 454.0660095214844, + 137.0068817138672, + 489.598388671875, + 238.9720458984375, + 0.9989136457443237 + ], + "score": 1.0400246381759644, + "correct": 0 + }, + { + "img": "s1749.jpg", + "roi": [ + 40.50463104248047, + 176.24673461914062, + 115.24858093261719, + 383.2991638183594, + 0.8320928812026978 + ], + "score": 0.8905062079429626, + "correct": 0 + }, + { + "img": "s9797.jpg", + "roi": [ + 549.8360595703125, + 192.942138671875, + 586.527587890625, + 308.48876953125, + 0.9792895317077637 + ], + "score": 0.8382062911987305, + "correct": 0 + }, + { + "img": "s7653.jpg", + "roi": [ + 555.2413330078125, + 163.29603576660156, + 628.3936767578125, + 362.970947265625, + 0.9995864033699036 + ], + "score": 0.8300125002861023, + "correct": 0 + }, + { + "img": "s9296.jpg", + "roi": [ + 223.37335205078125, + 183.47776794433594, + 267.0791015625, + 310.4785461425781, + 0.9995819926261902 + ], + "score": 0.8280532956123352, + "correct": 0 + }, + { + "img": "s10032.jpg", + "roi": [ + 477.56854248046875, + 176.8123016357422, + 501.9013671875, + 251.9130096435547, + 0.9970064759254456 + ], + "score": 0.8276419043540955, + "correct": 0 + }, + { + "img": "s1750.jpg", + "roi": [ + 228.838623046875, + 186.15438842773438, + 285.8909912109375, + 361.0376892089844, + 0.9973210692405701 + ], + "score": 0.8271294832229614, + "correct": 0 + }, + { + "img": "s4317.jpg", + "roi": [ + 233.23184204101562, + 94.39578247070312, + 304.007568359375, + 295.62384033203125, + 0.9560869932174683 + ], + "score": 0.8144252896308899, + "correct": 1 + }, + { + "img": "s10544.jpg", + "roi": [ + 494.18597412109375, + 122.63939666748047, + 551.0341796875, + 273.1302185058594, + 0.99973064661026 + ], + "score": 0.7657051086425781, + "correct": 0 + }, + { + "img": "s1749.jpg", + "roi": [ + 410.03338623046875, + 196.77157592773438, + 451.42425537109375, + 333.7428894042969, + 0.9967036843299866 + ], + "score": 0.7389100790023804, + "correct": 0 + } + ] + }, + { + "query_img": "s9652.jpg", + "query_roi": [ + 135.0, + 104.0, + 225.0, + 344.0 + ], + "query_gt": [ + { + "img": "s9653.jpg", + "roi": [ + 221.0, + 182.0, + 355.0, + 540.0 + ] + }, + { + "img": "s9654.jpg", + "roi": [ + 221.0, + 155.0, + 283.0, + 322.0 + ] + } + ], + "gallery": [ + { + "img": "s9356.jpg", + "roi": [ + 180.88925170898438, + 153.89483642578125, + 262.48236083984375, + 392.15185546875, + 0.9995267391204834 + ], + "score": 1.244589924812317, + "correct": 0 + }, + { + "img": "s9653.jpg", + "roi": [ + 231.39730834960938, + 182.6746063232422, + 350.48846435546875, + 527.8533325195312, + 0.9998154044151306 + ], + "score": 1.1946649551391602, + "correct": 1 + }, + { + "img": "s9654.jpg", + "roi": [ + 222.4366455078125, + 154.71258544921875, + 276.468994140625, + 321.7017822265625, + 0.9997057318687439 + ], + "score": 1.1631879806518555, + "correct": 1 + }, + { + "img": "s9356.jpg", + "roi": [ + 69.19136047363281, + 181.16331481933594, + 123.59573364257812, + 335.11767578125, + 0.9996598958969116 + ], + "score": 1.0311843156814575, + "correct": 0 + }, + { + "img": "s9654.jpg", + "roi": [ + 90.32640075683594, + 94.21966552734375, + 226.19107055664062, + 493.73876953125, + 0.9951862692832947 + ], + "score": 0.9550936222076416, + "correct": 0 + }, + { + "img": "s9327.jpg", + "roi": [ + 212.100341796875, + 132.0236358642578, + 328.73358154296875, + 455.541259765625, + 0.999305248260498 + ], + "score": 0.8963692784309387, + "correct": 0 + }, + { + "img": "s8409.jpg", + "roi": [ + 1.2922323942184448, + 167.23175048828125, + 57.330039978027344, + 403.6787109375, + 0.999601423740387 + ], + "score": 0.8750008344650269, + "correct": 0 + }, + { + "img": "s2718.jpg", + "roi": [ + 321.00762939453125, + 163.09657287597656, + 365.5267333984375, + 305.2857666015625, + 0.9991773962974548 + ], + "score": 0.8174499273300171, + "correct": 0 + }, + { + "img": "s9869.jpg", + "roi": [ + 280.46697998046875, + 141.52401733398438, + 331.87457275390625, + 295.2877197265625, + 0.9990555644035339 + ], + "score": 0.7981873750686646, + "correct": 0 + }, + { + "img": "s8409.jpg", + "roi": [ + 298.03594970703125, + 200.86585998535156, + 387.365478515625, + 448.4908142089844, + 0.9996280670166016 + ], + "score": 0.7418685555458069, + "correct": 0 + } + ] + }, + { + "query_img": "s6939.jpg", + "query_roi": [ + 438.0, + 107.0, + 498.0, + 283.0 + ], + "query_gt": [ + { + "img": "s6940.jpg", + "roi": [ + 378.0, + 137.0, + 565.0, + 596.0 + ] + } + ], + "gallery": [ + { + "img": "s1597.jpg", + "roi": [ + 671.7371826171875, + 235.08511352539062, + 724.0333862304688, + 387.758544921875, + 0.9983822107315063 + ], + "score": 1.018592119216919, + "correct": 0 + }, + { + "img": "s4775.jpg", + "roi": [ + 473.0159606933594, + 214.0491943359375, + 530.9740600585938, + 366.70263671875, + 0.9990515112876892 + ], + "score": 0.984857439994812, + "correct": 0 + }, + { + "img": "s6940.jpg", + "roi": [ + 370.2588806152344, + 225.12417602539062, + 484.395263671875, + 587.01904296875, + 0.8836178779602051 + ], + "score": 0.9759646654129028, + "correct": 0 + }, + { + "img": "s6940.jpg", + "roi": [ + 0.0, + 92.07527923583984, + 135.9109344482422, + 539.7601928710938, + 0.9996342658996582 + ], + "score": 0.9539559483528137, + "correct": 0 + }, + { + "img": "s6940.jpg", + "roi": [ + 418.50457763671875, + 131.75132751464844, + 585.9437255859375, + 571.7711791992188, + 0.9883430600166321 + ], + "score": 0.8825863599777222, + "correct": 1 + }, + { + "img": "s4799.jpg", + "roi": [ + 126.30376434326172, + 150.8890380859375, + 198.69955444335938, + 334.59722900390625, + 0.9998053908348083 + ], + "score": 0.7456258535385132, + "correct": 0 + }, + { + "img": "s5488.jpg", + "roi": [ + 354.67864990234375, + 102.29328918457031, + 377.84979248046875, + 170.8217010498047, + 0.9984993934631348 + ], + "score": 0.7313492298126221, + "correct": 0 + }, + { + "img": "s2893.jpg", + "roi": [ + 522.8536376953125, + 252.57363891601562, + 618.0003662109375, + 523.6949462890625, + 0.9990710020065308 + ], + "score": 0.7183504700660706, + "correct": 0 + }, + { + "img": "s9641.jpg", + "roi": [ + 553.1676635742188, + 95.15111541748047, + 599.76171875, + 277.6101989746094, + 0.999071478843689 + ], + "score": 0.690041720867157, + "correct": 0 + }, + { + "img": "s2531.jpg", + "roi": [ + 389.68963623046875, + 58.794822692871094, + 487.20257568359375, + 357.79364013671875, + 0.9996892213821411 + ], + "score": 0.6561609506607056, + "correct": 0 + } + ] + }, + { + "query_img": "s2552.jpg", + "query_roi": [ + 223.0, + 116.0, + 344.0, + 476.0 + ], + "query_gt": [ + { + "img": "s2551.jpg", + "roi": [ + 292.0, + 76.0, + 391.0, + 375.0 + ] + }, + { + "img": "s2553.jpg", + "roi": [ + 217.0, + 161.0, + 321.0, + 498.0 + ] + }, + { + "img": "s2554.jpg", + "roi": [ + 171.0, + 124.0, + 262.0, + 405.0 + ] + } + ], + "gallery": [ + { + "img": "s7240.jpg", + "roi": [ + 464.8546142578125, + 104.29190063476562, + 529.724853515625, + 302.7461853027344, + 0.9991311430931091 + ], + "score": 1.2218750715255737, + "correct": 0 + }, + { + "img": "s2551.jpg", + "roi": [ + 293.89532470703125, + 82.66917419433594, + 390.6698913574219, + 380.789794921875, + 0.9997079968452454 + ], + "score": 1.2165910005569458, + "correct": 1 + }, + { + "img": "s2554.jpg", + "roi": [ + 169.4320831298828, + 118.02330017089844, + 263.7655944824219, + 397.78778076171875, + 0.9989207983016968 + ], + "score": 1.1599782705307007, + "correct": 1 + }, + { + "img": "s2553.jpg", + "roi": [ + 221.087646484375, + 161.02398681640625, + 320.64691162109375, + 491.1996765136719, + 0.9995341300964355 + ], + "score": 1.1569161415100098, + "correct": 1 + }, + { + "img": "s2551.jpg", + "roi": [ + 22.41265869140625, + 154.73861694335938, + 241.48631286621094, + 783.86962890625, + 0.9671463966369629 + ], + "score": 1.0752865076065063, + "correct": 0 + }, + { + "img": "s2553.jpg", + "roi": [ + 135.36744689941406, + 157.66888427734375, + 271.5752868652344, + 568.8383178710938, + 0.9995070695877075 + ], + "score": 1.0048500299453735, + "correct": 0 + }, + { + "img": "s2696.jpg", + "roi": [ + 188.22845458984375, + 229.197265625, + 228.25018310546875, + 367.9075622558594, + 0.9990096092224121 + ], + "score": 0.98243248462677, + "correct": 0 + }, + { + "img": "s2554.jpg", + "roi": [ + 82.06553649902344, + 118.03459930419922, + 183.24432373046875, + 408.8506774902344, + 0.9996428489685059 + ], + "score": 0.9693952798843384, + "correct": 0 + }, + { + "img": "s2696.jpg", + "roi": [ + 3.87201189994812, + 232.3307342529297, + 60.955284118652344, + 448.85308837890625, + 0.9984325766563416 + ], + "score": 0.9239908456802368, + "correct": 0 + }, + { + "img": "s12607.jpg", + "roi": [ + 547.0211791992188, + 0.0, + 746.7525634765625, + 431.812744140625, + 0.9542665481567383 + ], + "score": 0.9002670049667358, + "correct": 0 + } + ] + }, + { + "query_img": "s4411.jpg", + "query_roi": [ + 465.0, + 182.0, + 498.0, + 270.0 + ], + "query_gt": [ + { + "img": "s4410.jpg", + "roi": [ + 418.0, + 184.0, + 468.0, + 320.0 + ] + } + ], + "gallery": [ + { + "img": "s6300.jpg", + "roi": [ + 318.3359680175781, + 229.68565368652344, + 357.2171630859375, + 322.0820617675781, + 0.998554527759552 + ], + "score": 1.2519103288650513, + "correct": 0 + }, + { + "img": "s4410.jpg", + "roi": [ + 416.79864501953125, + 185.284423828125, + 464.00128173828125, + 320.05712890625, + 0.9996104836463928 + ], + "score": 1.0668225288391113, + "correct": 1 + }, + { + "img": "s1525.jpg", + "roi": [ + 399.67620849609375, + 185.264404296875, + 489.72601318359375, + 414.0750732421875, + 0.9993883371353149 + ], + "score": 0.7867082357406616, + "correct": 0 + }, + { + "img": "s2252.jpg", + "roi": [ + 346.22796630859375, + 208.06626892089844, + 416.779541015625, + 396.8782653808594, + 0.9996562004089355 + ], + "score": 0.7411927580833435, + "correct": 0 + }, + { + "img": "s3175.jpg", + "roi": [ + 178.10899353027344, + 225.7074432373047, + 219.21682739257812, + 336.16741943359375, + 0.999575674533844 + ], + "score": 0.7301911115646362, + "correct": 0 + }, + { + "img": "s4410.jpg", + "roi": [ + 206.49862670898438, + 149.54525756835938, + 278.67724609375, + 342.24169921875, + 0.9987865090370178 + ], + "score": 0.7108198404312134, + "correct": 0 + }, + { + "img": "s5364.jpg", + "roi": [ + 203.88189697265625, + 155.96975708007812, + 238.33282470703125, + 253.54193115234375, + 0.9984136819839478 + ], + "score": 0.6962457299232483, + "correct": 0 + }, + { + "img": "s7021.jpg", + "roi": [ + 14.60116958618164, + 131.76866149902344, + 54.225624084472656, + 252.28765869140625, + 0.999092698097229 + ], + "score": 0.689940333366394, + "correct": 0 + }, + { + "img": "s10708.jpg", + "roi": [ + 58.5538330078125, + 94.281494140625, + 94.88463592529297, + 194.6767578125, + 0.997262716293335 + ], + "score": 0.6837208867073059, + "correct": 0 + }, + { + "img": "s88.jpg", + "roi": [ + 276.2838134765625, + 190.1124725341797, + 335.4521179199219, + 370.6815185546875, + 0.9977746605873108 + ], + "score": 0.6680214405059814, + "correct": 0 + } + ] + }, + { + "query_img": "s3569.jpg", + "query_roi": [ + 436.0, + 245.0, + 462.0, + 314.0 + ], + "query_gt": [ + { + "img": "s3568.jpg", + "roi": [ + 421.0, + 199.0, + 464.0, + 314.0 + ] + } + ], + "gallery": [ + { + "img": "s9685.jpg", + "roi": [ + 381.60565185546875, + 206.40774536132812, + 445.63128662109375, + 404.18994140625, + 0.9962387084960938 + ], + "score": 0.7232334017753601, + "correct": 0 + }, + { + "img": "s7296.jpg", + "roi": [ + 354.6591491699219, + 124.48611450195312, + 414.9229736328125, + 314.0688171386719, + 0.9974048733711243 + ], + "score": 0.6687403321266174, + "correct": 0 + }, + { + "img": "s845.jpg", + "roi": [ + 151.7878875732422, + 45.055023193359375, + 243.5631103515625, + 347.5438232421875, + 0.9998915195465088 + ], + "score": 0.6600254774093628, + "correct": 0 + }, + { + "img": "s9685.jpg", + "roi": [ + 353.243896484375, + 211.85879516601562, + 399.3759765625, + 367.2537536621094, + 0.9991862177848816 + ], + "score": 0.6085156798362732, + "correct": 0 + }, + { + "img": "s9685.jpg", + "roi": [ + 137.75013732910156, + 215.7931365966797, + 185.7357635498047, + 376.02703857421875, + 0.9995111227035522 + ], + "score": 0.5812551975250244, + "correct": 0 + }, + { + "img": "s9685.jpg", + "roi": [ + 406.9998779296875, + 215.2867431640625, + 440.3927917480469, + 337.1553955078125, + 0.8949964046478271 + ], + "score": 0.5780016779899597, + "correct": 0 + }, + { + "img": "s9324.jpg", + "roi": [ + 0.9481862783432007, + 291.49591064453125, + 38.99091339111328, + 485.4623718261719, + 0.9888895750045776 + ], + "score": 0.5709666013717651, + "correct": 0 + }, + { + "img": "s17317.jpg", + "roi": [ + 431.49822998046875, + 109.40027618408203, + 514.830078125, + 379.2607421875, + 0.9981282353401184 + ], + "score": 0.5687230825424194, + "correct": 0 + }, + { + "img": "s9685.jpg", + "roi": [ + 94.12158203125, + 209.64012145996094, + 152.7888641357422, + 375.6666259765625, + 0.9995174407958984 + ], + "score": 0.5351583361625671, + "correct": 0 + }, + { + "img": "s3197.jpg", + "roi": [ + 372.5440368652344, + 144.84622192382812, + 471.30364990234375, + 425.40301513671875, + 0.9995527863502502 + ], + "score": 0.5327349305152893, + "correct": 0 + } + ] + }, + { + "query_img": "s5860.jpg", + "query_roi": [ + 252.0, + 142.0, + 324.0, + 360.0 + ], + "query_gt": [ + { + "img": "s5859.jpg", + "roi": [ + 296.0, + 114.0, + 350.0, + 285.0 + ] + } + ], + "gallery": [ + { + "img": "s5859.jpg", + "roi": [ + 371.9024353027344, + 122.39622497558594, + 425.4637145996094, + 272.02069091796875, + 0.9991275668144226 + ], + "score": 1.388432502746582, + "correct": 0 + }, + { + "img": "s5859.jpg", + "roi": [ + 289.91363525390625, + 116.40450286865234, + 349.3951416015625, + 283.1998291015625, + 0.9988120794296265 + ], + "score": 1.3709079027175903, + "correct": 1 + }, + { + "img": "s3318.jpg", + "roi": [ + 196.643798828125, + 212.5533905029297, + 253.3917236328125, + 379.9039001464844, + 0.99981290102005 + ], + "score": 0.8964505791664124, + "correct": 0 + }, + { + "img": "s5881.jpg", + "roi": [ + 113.84127807617188, + 136.99627685546875, + 187.59341430664062, + 343.308349609375, + 0.9993762373924255 + ], + "score": 0.825938880443573, + "correct": 0 + }, + { + "img": "s4479.jpg", + "roi": [ + 373.420166015625, + 229.79563903808594, + 411.14105224609375, + 356.003173828125, + 0.9968782663345337 + ], + "score": 0.7805048823356628, + "correct": 0 + }, + { + "img": "s5839.jpg", + "roi": [ + 337.426025390625, + 160.03662109375, + 413.01507568359375, + 378.074462890625, + 0.9996899366378784 + ], + "score": 0.7317506074905396, + "correct": 0 + }, + { + "img": "s2777.jpg", + "roi": [ + 181.52224731445312, + 117.73739624023438, + 224.56265258789062, + 245.38400268554688, + 0.9990041851997375 + ], + "score": 0.7196388840675354, + "correct": 0 + }, + { + "img": "s11145.jpg", + "roi": [ + 370.74285888671875, + 278.2548522949219, + 399.57080078125, + 367.3666076660156, + 0.995253324508667 + ], + "score": 0.7137387990951538, + "correct": 0 + }, + { + "img": "s18191.jpg", + "roi": [ + 364.6237487792969, + 106.77351379394531, + 432.370361328125, + 316.0618896484375, + 0.9986371397972107 + ], + "score": 0.7113173604011536, + "correct": 0 + }, + { + "img": "s1196.jpg", + "roi": [ + 413.10223388671875, + 179.7501678466797, + 479.64178466796875, + 362.3556823730469, + 0.9996963739395142 + ], + "score": 0.6969893574714661, + "correct": 0 + } + ] + }, + { + "query_img": "s12374.jpg", + "query_roi": [ + 162.0, + 372.0, + 236.0, + 570.0 + ], + "query_gt": [ + { + "img": "s12372.jpg", + "roi": [ + 253.0, + 266.0, + 279.0, + 336.0 + ] + }, + { + "img": "s12373.jpg", + "roi": [ + 261.0, + 327.0, + 306.0, + 447.0 + ] + } + ], + "gallery": [ + { + "img": "s12238.jpg", + "roi": [ + 160.4683074951172, + 455.29779052734375, + 257.7157897949219, + 695.4384765625, + 0.9990541338920593 + ], + "score": 0.8319735527038574, + "correct": 0 + }, + { + "img": "s12373.jpg", + "roi": [ + 263.3170471191406, + 327.8094177246094, + 304.6505126953125, + 448.62139892578125, + 0.9995993971824646 + ], + "score": 0.7557868957519531, + "correct": 1 + }, + { + "img": "s12373.jpg", + "roi": [ + 77.61082458496094, + 363.1661682128906, + 145.46644592285156, + 548.3617553710938, + 0.999701201915741 + ], + "score": 0.7499377727508545, + "correct": 0 + }, + { + "img": "s11147.jpg", + "roi": [ + 6.3625593185424805, + 32.73777389526367, + 71.55331420898438, + 247.66722106933594, + 0.9681906700134277 + ], + "score": 0.7307763695716858, + "correct": 0 + }, + { + "img": "s7925.jpg", + "roi": [ + 763.7457885742188, + 126.2735366821289, + 800.0000610351562, + 259.2215881347656, + 0.9990022778511047 + ], + "score": 0.7049673795700073, + "correct": 0 + }, + { + "img": "s8468.jpg", + "roi": [ + 22.930044174194336, + 0.162628173828125, + 140.99209594726562, + 273.40618896484375, + 0.9986353516578674 + ], + "score": 0.6810664534568787, + "correct": 0 + }, + { + "img": "s8468.jpg", + "roi": [ + 337.55975341796875, + 491.5806579589844, + 449.36322021484375, + 790.170166015625, + 0.9936107993125916 + ], + "score": 0.6622099876403809, + "correct": 0 + }, + { + "img": "s12372.jpg", + "roi": [ + 59.33985900878906, + 316.6149597167969, + 99.03500366210938, + 426.2019958496094, + 0.9998200535774231 + ], + "score": 0.638909637928009, + "correct": 0 + }, + { + "img": "s13697.jpg", + "roi": [ + 239.1412353515625, + 122.79048919677734, + 298.3482360839844, + 295.0619201660156, + 0.9995310306549072 + ], + "score": 0.6351326704025269, + "correct": 0 + }, + { + "img": "s10864.jpg", + "roi": [ + 236.7283935546875, + 26.40435791015625, + 268.29833984375, + 120.08636474609375, + 0.9954050779342651 + ], + "score": 0.6313214898109436, + "correct": 0 + } + ] + }, + { + "query_img": "s5306.jpg", + "query_roi": [ + 257.0, + 186.0, + 276.0, + 234.0 + ], + "query_gt": [ + { + "img": "s5307.jpg", + "roi": [ + 231.0, + 134.0, + 270.0, + 239.0 + ] + } + ], + "gallery": [ + { + "img": "s15903.jpg", + "roi": [ + 579.4765014648438, + 148.9475860595703, + 594.9076538085938, + 194.09365844726562, + 0.9959264993667603 + ], + "score": 1.0627645254135132, + "correct": 0 + }, + { + "img": "s5307.jpg", + "roi": [ + 232.12789916992188, + 133.353759765625, + 268.23834228515625, + 237.66195678710938, + 0.9994755387306213 + ], + "score": 1.0478322505950928, + "correct": 1 + }, + { + "img": "s10190.jpg", + "roi": [ + 168.50045776367188, + 189.60728454589844, + 189.40403747558594, + 253.49551391601562, + 0.9942469596862793 + ], + "score": 1.0435458421707153, + "correct": 0 + }, + { + "img": "s7238.jpg", + "roi": [ + 437.4074401855469, + 156.41917419433594, + 451.77081298828125, + 199.27423095703125, + 0.9934908747673035 + ], + "score": 1.0317440032958984, + "correct": 0 + }, + { + "img": "s4238.jpg", + "roi": [ + 150.91551208496094, + 277.27105712890625, + 167.22911071777344, + 323.9067077636719, + 0.9863622784614563 + ], + "score": 0.8425860404968262, + "correct": 0 + }, + { + "img": "s1807.jpg", + "roi": [ + 441.0616455078125, + 150.50210571289062, + 463.11846923828125, + 213.82650756835938, + 0.9968339800834656 + ], + "score": 0.8411014676094055, + "correct": 0 + }, + { + "img": "s10105.jpg", + "roi": [ + 455.20098876953125, + 78.5291519165039, + 476.48980712890625, + 146.9185791015625, + 0.9893485307693481 + ], + "score": 0.8385866284370422, + "correct": 0 + }, + { + "img": "s7238.jpg", + "roi": [ + 56.219024658203125, + 146.82467651367188, + 84.69274139404297, + 231.692138671875, + 0.9976513981819153 + ], + "score": 0.8207181692123413, + "correct": 0 + }, + { + "img": "s4316.jpg", + "roi": [ + 748.560302734375, + 232.77227783203125, + 767.275634765625, + 290.6090393066406, + 0.9732417464256287 + ], + "score": 0.7910597324371338, + "correct": 0 + }, + { + "img": "s5107.jpg", + "roi": [ + 388.7192077636719, + 187.36837768554688, + 403.99127197265625, + 233.40625, + 0.9863213896751404 + ], + "score": 0.7760412096977234, + "correct": 0 + } + ] + }, + { + "query_img": "s5960.jpg", + "query_roi": [ + 280.0, + 134.0, + 374.0, + 409.0 + ], + "query_gt": [ + { + "img": "s5955.jpg", + "roi": [ + 422.0, + 156.0, + 481.0, + 324.0 + ] + }, + { + "img": "s5957.jpg", + "roi": [ + 171.0, + 130.0, + 260.0, + 390.0 + ] + }, + { + "img": "s5959.jpg", + "roi": [ + 162.0, + 102.0, + 286.0, + 471.0 + ] + }, + { + "img": "s5961.jpg", + "roi": [ + 529.0, + 98.0, + 596.0, + 295.0 + ] + }, + { + "img": "s5962.jpg", + "roi": [ + 449.0, + 126.0, + 515.0, + 325.0 + ] + }, + { + "img": "s5963.jpg", + "roi": [ + 248.0, + 102.0, + 318.0, + 291.0 + ] + }, + { + "img": "s5964.jpg", + "roi": [ + 143.0, + 76.0, + 209.0, + 263.0 + ] + } + ], + "gallery": [ + { + "img": "s5955.jpg", + "roi": [ + 3.611048460006714, + 124.46080780029297, + 94.64744567871094, + 401.16949462890625, + 0.9991363883018494 + ], + "score": 1.6493462324142456, + "correct": 0 + }, + { + "img": "s5963.jpg", + "roi": [ + 249.12454223632812, + 104.60348510742188, + 316.41357421875, + 292.65399169921875, + 0.9995927214622498 + ], + "score": 1.5852417945861816, + "correct": 1 + }, + { + "img": "s5959.jpg", + "roi": [ + 153.92755126953125, + 105.92061614990234, + 274.903564453125, + 465.6915283203125, + 0.999607264995575 + ], + "score": 1.5651273727416992, + "correct": 1 + }, + { + "img": "s5964.jpg", + "roi": [ + 149.83201599121094, + 78.35380554199219, + 205.71389770507812, + 265.33673095703125, + 0.9991782307624817 + ], + "score": 1.505282998085022, + "correct": 1 + }, + { + "img": "s5957.jpg", + "roi": [ + 177.32127380371094, + 131.34210205078125, + 267.67138671875, + 387.6951904296875, + 0.9993865489959717 + ], + "score": 1.4937995672225952, + "correct": 1 + }, + { + "img": "s5962.jpg", + "roi": [ + 446.31982421875, + 126.90441131591797, + 512.8848876953125, + 323.90399169921875, + 0.9997523427009583 + ], + "score": 1.4481691122055054, + "correct": 1 + }, + { + "img": "s5963.jpg", + "roi": [ + 358.53680419921875, + 104.17735290527344, + 409.58441162109375, + 267.463623046875, + 0.9995635151863098 + ], + "score": 1.339004635810852, + "correct": 0 + }, + { + "img": "s5961.jpg", + "roi": [ + 534.3925170898438, + 111.92561340332031, + 584.9996948242188, + 296.4742431640625, + 0.9980533123016357 + ], + "score": 1.300675392150879, + "correct": 1 + }, + { + "img": "s5955.jpg", + "roi": [ + 310.984130859375, + 132.3162841796875, + 377.2843017578125, + 335.71917724609375, + 0.9989801049232483 + ], + "score": 1.065312147140503, + "correct": 0 + }, + { + "img": "s6939.jpg", + "roi": [ + 224.5867919921875, + 65.10738372802734, + 349.206787109375, + 355.1916198730469, + 0.9957801103591919 + ], + "score": 0.9621057510375977, + "correct": 0 + } + ] + }, + { + "query_img": "s3644.jpg", + "query_roi": [ + 117.0, + 16.0, + 256.0, + 387.0 + ], + "query_gt": [ + { + "img": "s3645.jpg", + "roi": [ + 51.0, + 257.0, + 186.0, + 617.0 + ] + } + ], + "gallery": [ + { + "img": "s3645.jpg", + "roi": [ + 55.139461517333984, + 130.71774291992188, + 162.86839294433594, + 481.4112548828125, + 0.9945376515388489 + ], + "score": 1.1376127004623413, + "correct": 0 + }, + { + "img": "s10429.jpg", + "roi": [ + 0.8849996328353882, + 87.27696228027344, + 55.58251190185547, + 318.35906982421875, + 0.9992448091506958 + ], + "score": 0.8390380144119263, + "correct": 0 + }, + { + "img": "s6552.jpg", + "roi": [ + 42.1273307800293, + 295.38751220703125, + 91.51991271972656, + 447.53326416015625, + 0.9994164705276489 + ], + "score": 0.8330786824226379, + "correct": 0 + }, + { + "img": "s9282.jpg", + "roi": [ + 275.72760009765625, + 26.861562728881836, + 304.3941345214844, + 115.98155212402344, + 0.9898642897605896 + ], + "score": 0.8236494064331055, + "correct": 0 + }, + { + "img": "s6552.jpg", + "roi": [ + 311.0981140136719, + 312.5008544921875, + 347.09600830078125, + 419.04937744140625, + 0.9994366765022278 + ], + "score": 0.787709653377533, + "correct": 0 + }, + { + "img": "s1732.jpg", + "roi": [ + 190.40829467773438, + 163.18667602539062, + 303.0105895996094, + 510.77313232421875, + 0.9993085861206055 + ], + "score": 0.7773747444152832, + "correct": 0 + }, + { + "img": "s8459.jpg", + "roi": [ + 24.88067626953125, + 186.11221313476562, + 232.64732360839844, + 752.475341796875, + 0.997226893901825 + ], + "score": 0.7675924897193909, + "correct": 0 + }, + { + "img": "s6552.jpg", + "roi": [ + 74.42493438720703, + 311.833740234375, + 163.77696228027344, + 564.7890014648438, + 0.9997536540031433 + ], + "score": 0.7663302421569824, + "correct": 0 + }, + { + "img": "s9282.jpg", + "roi": [ + 534.229248046875, + 292.0406188964844, + 591.202392578125, + 431.9033203125, + 0.8551591038703918 + ], + "score": 0.7289392948150635, + "correct": 0 + }, + { + "img": "s9116.jpg", + "roi": [ + 499.218505859375, + 294.60858154296875, + 559.7377319335938, + 453.49310302734375, + 0.9994854927062988 + ], + "score": 0.7085040807723999, + "correct": 0 + } + ] + }, + { + "query_img": "s3567.jpg", + "query_roi": [ + 470.0, + 212.0, + 512.0, + 324.0 + ], + "query_gt": [ + { + "img": "s3566.jpg", + "roi": [ + 97.0, + 270.0, + 211.0, + 575.0 + ] + } + ], + "gallery": [ + { + "img": "s13626.jpg", + "roi": [ + 535.39794921875, + 251.84217834472656, + 564.2056884765625, + 337.6484069824219, + 0.9986951947212219 + ], + "score": 0.7233890295028687, + "correct": 0 + }, + { + "img": "s4776.jpg", + "roi": [ + 138.18968200683594, + 95.55818939208984, + 200.40695190429688, + 280.10736083984375, + 0.999560534954071 + ], + "score": 0.6356841921806335, + "correct": 0 + }, + { + "img": "s6713.jpg", + "roi": [ + 124.3347396850586, + 162.95201110839844, + 159.39505004882812, + 277.27880859375, + 0.9975433349609375 + ], + "score": 0.5970974564552307, + "correct": 0 + }, + { + "img": "s17141.jpg", + "roi": [ + 270.28472900390625, + 189.59922790527344, + 301.418701171875, + 289.1312561035156, + 0.9967905879020691 + ], + "score": 0.5532867312431335, + "correct": 0 + }, + { + "img": "s7125.jpg", + "roi": [ + 456.7874450683594, + 142.75567626953125, + 480.22314453125, + 212.4901123046875, + 0.8240687847137451 + ], + "score": 0.5508491396903992, + "correct": 0 + }, + { + "img": "s5346.jpg", + "roi": [ + 316.1600341796875, + 67.53166198730469, + 363.4537048339844, + 198.5562744140625, + 0.9974270462989807 + ], + "score": 0.5455430746078491, + "correct": 0 + }, + { + "img": "s17141.jpg", + "roi": [ + 479.5552673339844, + 178.69613647460938, + 515.9219360351562, + 298.47930908203125, + 0.9950981736183167 + ], + "score": 0.5356599688529968, + "correct": 0 + }, + { + "img": "s5900.jpg", + "roi": [ + 130.32945251464844, + 142.74925231933594, + 165.05711364746094, + 259.42724609375, + 0.9942618608474731 + ], + "score": 0.5356519818305969, + "correct": 0 + }, + { + "img": "s5912.jpg", + "roi": [ + 537.886474609375, + 162.22711181640625, + 569.8692626953125, + 261.0159912109375, + 0.9735910892486572 + ], + "score": 0.5296536087989807, + "correct": 0 + }, + { + "img": "s3566.jpg", + "roi": [ + 593.2713012695312, + 270.9313659667969, + 702.6697998046875, + 574.375244140625, + 0.9997716546058655 + ], + "score": 0.5220140814781189, + "correct": 0 + } + ] + }, + { + "query_img": "s483.jpg", + "query_roi": [ + 1.0, + 54.0, + 107.0, + 392.0 + ], + "query_gt": [ + { + "img": "s482.jpg", + "roi": [ + 101.0, + 120.0, + 170.0, + 306.0 + ] + } + ], + "gallery": [ + { + "img": "s9591.jpg", + "roi": [ + 473.5275573730469, + 45.54084777832031, + 528.1663818359375, + 205.36563110351562, + 0.9977635145187378 + ], + "score": 1.0054810047149658, + "correct": 0 + }, + { + "img": "s482.jpg", + "roi": [ + 98.78248596191406, + 125.69650268554688, + 161.83566284179688, + 323.3077392578125, + 0.9972353577613831 + ], + "score": 0.993411123752594, + "correct": 1 + }, + { + "img": "s2842.jpg", + "roi": [ + 199.8385009765625, + 155.04052734375, + 282.41156005859375, + 391.1192321777344, + 0.9995176792144775 + ], + "score": 0.8837020993232727, + "correct": 0 + }, + { + "img": "s10795.jpg", + "roi": [ + 160.57891845703125, + 209.95480346679688, + 245.20042419433594, + 444.1604919433594, + 0.9997124075889587 + ], + "score": 0.8656231164932251, + "correct": 0 + }, + { + "img": "s15027.jpg", + "roi": [ + 272.4898376464844, + 132.61643981933594, + 345.8941955566406, + 351.1124267578125, + 0.9866848587989807 + ], + "score": 0.8545957207679749, + "correct": 0 + }, + { + "img": "s7819.jpg", + "roi": [ + 412.0298767089844, + 145.49742126464844, + 461.4565734863281, + 283.4113464355469, + 0.999516487121582 + ], + "score": 0.8514857888221741, + "correct": 0 + }, + { + "img": "s8470.jpg", + "roi": [ + 236.72630310058594, + 2.0324912071228027, + 434.114013671875, + 528.2611083984375, + 0.9994947910308838 + ], + "score": 0.831642210483551, + "correct": 0 + }, + { + "img": "s1975.jpg", + "roi": [ + 191.410400390625, + 210.33554077148438, + 290.47393798828125, + 478.11328125, + 0.9992631077766418 + ], + "score": 0.8185862302780151, + "correct": 0 + }, + { + "img": "s1202.jpg", + "roi": [ + 337.2730712890625, + 265.3580322265625, + 425.4988708496094, + 477.52044677734375, + 0.9986842274665833 + ], + "score": 0.8125993013381958, + "correct": 0 + }, + { + "img": "s13456.jpg", + "roi": [ + 498.8450927734375, + 34.56193923950195, + 753.376220703125, + 450.0, + 0.9852500557899475 + ], + "score": 0.7893702387809753, + "correct": 0 + } + ] + }, + { + "query_img": "s6475.jpg", + "query_roi": [ + 344.0, + 215.0, + 398.0, + 360.0 + ], + "query_gt": [ + { + "img": "s6474.jpg", + "roi": [ + 250.0, + 273.0, + 286.0, + 371.0 + ] + }, + { + "img": "s6476.jpg", + "roi": [ + 255.0, + 169.0, + 357.0, + 442.0 + ] + } + ], + "gallery": [ + { + "img": "s6474.jpg", + "roi": [ + 445.56170654296875, + 276.9732971191406, + 491.54736328125, + 414.998046875, + 0.9989771842956543 + ], + "score": 1.1355301141738892, + "correct": 0 + }, + { + "img": "s3745.jpg", + "roi": [ + 483.54058837890625, + 117.22810363769531, + 576.9517211914062, + 362.27716064453125, + 0.9997290968894958 + ], + "score": 0.995966911315918, + "correct": 0 + }, + { + "img": "s6476.jpg", + "roi": [ + 259.9311828613281, + 168.00428771972656, + 357.9185485839844, + 439.00518798828125, + 0.9994402527809143 + ], + "score": 0.9803376197814941, + "correct": 1 + }, + { + "img": "s6474.jpg", + "roi": [ + 251.36514282226562, + 272.2685546875, + 283.2146301269531, + 368.76470947265625, + 0.9993014335632324 + ], + "score": 0.9714559316635132, + "correct": 1 + }, + { + "img": "s9176.jpg", + "roi": [ + 494.1904296875, + 294.7559814453125, + 537.4154052734375, + 417.22125244140625, + 0.9996432065963745 + ], + "score": 0.911812424659729, + "correct": 0 + }, + { + "img": "s2273.jpg", + "roi": [ + 109.52498626708984, + 207.80892944335938, + 134.88525390625, + 281.0625915527344, + 0.995058536529541 + ], + "score": 0.8159101009368896, + "correct": 0 + }, + { + "img": "s9176.jpg", + "roi": [ + 390.04833984375, + 302.8652648925781, + 421.7771911621094, + 393.8486328125, + 0.998630166053772 + ], + "score": 0.7983642816543579, + "correct": 0 + }, + { + "img": "s1599.jpg", + "roi": [ + 625.8936767578125, + 213.53854370117188, + 660.88330078125, + 319.64447021484375, + 0.9745582938194275 + ], + "score": 0.7982957363128662, + "correct": 0 + }, + { + "img": "s6141.jpg", + "roi": [ + 408.3427734375, + 77.70811462402344, + 469.22509765625, + 265.1816711425781, + 0.9995490908622742 + ], + "score": 0.7711077332496643, + "correct": 0 + }, + { + "img": "s2532.jpg", + "roi": [ + 453.6004333496094, + 95.45248413085938, + 515.4964599609375, + 289.885498046875, + 0.9993686079978943 + ], + "score": 0.7284329533576965, + "correct": 0 + } + ] + }, + { + "query_img": "s12439.jpg", + "query_roi": [ + 240.0, + 336.0, + 265.0, + 404.0 + ], + "query_gt": [ + { + "img": "s12438.jpg", + "roi": [ + 225.0, + 309.0, + 250.0, + 378.0 + ] + }, + { + "img": "s12440.jpg", + "roi": [ + 171.0, + 339.0, + 194.0, + 400.0 + ] + } + ], + "gallery": [ + { + "img": "s12438.jpg", + "roi": [ + 188.29251098632812, + 305.7784118652344, + 214.40650939941406, + 375.8792419433594, + 0.9971764087677002 + ], + "score": 1.4782592058181763, + "correct": 0 + }, + { + "img": "s12440.jpg", + "roi": [ + 175.98814392089844, + 339.6421813964844, + 196.63925170898438, + 396.1766662597656, + 0.9966004490852356 + ], + "score": 1.2509173154830933, + "correct": 1 + }, + { + "img": "s12438.jpg", + "roi": [ + 223.6897430419922, + 308.7008972167969, + 250.85289001464844, + 378.7430725097656, + 0.9994563460350037 + ], + "score": 1.1256288290023804, + "correct": 1 + }, + { + "img": "s12173.jpg", + "roi": [ + 138.08680725097656, + 375.28466796875, + 162.5727996826172, + 439.6679382324219, + 0.9982362985610962 + ], + "score": 1.0591570138931274, + "correct": 0 + }, + { + "img": "s12173.jpg", + "roi": [ + 188.90521240234375, + 378.92694091796875, + 211.63284301757812, + 445.6384582519531, + 0.9919679760932922 + ], + "score": 1.056674838066101, + "correct": 0 + }, + { + "img": "s10705.jpg", + "roi": [ + 239.8513641357422, + 424.326416015625, + 293.1895751953125, + 552.8173828125, + 0.9949362277984619 + ], + "score": 1.0221058130264282, + "correct": 0 + }, + { + "img": "s116.jpg", + "roi": [ + 504.9893493652344, + 143.8502655029297, + 539.7496337890625, + 241.0313720703125, + 0.9990365505218506 + ], + "score": 1.001617431640625, + "correct": 0 + }, + { + "img": "s12173.jpg", + "roi": [ + 181.30128479003906, + 373.3135681152344, + 200.73187255859375, + 429.5851745605469, + 0.980818510055542 + ], + "score": 0.9696840643882751, + "correct": 0 + }, + { + "img": "s12440.jpg", + "roi": [ + 148.0415496826172, + 330.0596618652344, + 170.03854370117188, + 394.8036804199219, + 0.9962813258171082 + ], + "score": 0.9276837110519409, + "correct": 0 + }, + { + "img": "s2727.jpg", + "roi": [ + 509.06781005859375, + 119.47314453125, + 558.9058837890625, + 261.718505859375, + 0.9997361302375793 + ], + "score": 0.9169127345085144, + "correct": 0 + } + ] + }, + { + "query_img": "s8499.jpg", + "query_roi": [ + 196.0, + 125.0, + 352.0, + 568.0 + ], + "query_gt": [ + { + "img": "s8500.jpg", + "roi": [ + 207.0, + 98.0, + 380.0, + 583.0 + ] + } + ], + "gallery": [ + { + "img": "s8500.jpg", + "roi": [ + 260.3418273925781, + 168.1746826171875, + 424.5567626953125, + 611.9983520507812, + 0.9992291927337646 + ], + "score": 1.1601433753967285, + "correct": 0 + }, + { + "img": "s3691.jpg", + "roi": [ + 141.34945678710938, + 0.0, + 276.8525085449219, + 370.64813232421875, + 0.9688229560852051 + ], + "score": 0.9111589193344116, + "correct": 0 + }, + { + "img": "s9312.jpg", + "roi": [ + 20.651840209960938, + 228.5933074951172, + 101.80802917480469, + 461.7990417480469, + 0.9991965889930725 + ], + "score": 0.7981812357902527, + "correct": 0 + }, + { + "img": "s8467.jpg", + "roi": [ + 161.23655700683594, + 347.91650390625, + 282.47607421875, + 701.9549560546875, + 0.9984537363052368 + ], + "score": 0.7571209073066711, + "correct": 0 + }, + { + "img": "s3691.jpg", + "roi": [ + 1.8818868398666382, + 223.39208984375, + 113.86074829101562, + 598.4777221679688, + 0.9996500015258789 + ], + "score": 0.7509846687316895, + "correct": 0 + }, + { + "img": "s10348.jpg", + "roi": [ + 520.4114990234375, + 406.02880859375, + 571.8111572265625, + 547.3109741210938, + 0.983106255531311 + ], + "score": 0.7280604839324951, + "correct": 0 + }, + { + "img": "s8696.jpg", + "roi": [ + 211.01023864746094, + 79.4200439453125, + 416.4222106933594, + 621.807373046875, + 0.9998407363891602 + ], + "score": 0.7096853256225586, + "correct": 0 + }, + { + "img": "s3691.jpg", + "roi": [ + 188.67645263671875, + 191.5925750732422, + 278.77471923828125, + 480.6668701171875, + 0.9671486020088196 + ], + "score": 0.649934709072113, + "correct": 0 + }, + { + "img": "s9371.jpg", + "roi": [ + 348.9114990234375, + 137.7880096435547, + 395.8140869140625, + 287.2381286621094, + 0.9983677268028259 + ], + "score": 0.6470655202865601, + "correct": 0 + }, + { + "img": "s3691.jpg", + "roi": [ + 106.40580749511719, + 173.1458740234375, + 215.74871826171875, + 479.5652770996094, + 0.9962518811225891 + ], + "score": 0.6327289938926697, + "correct": 0 + } + ] + }, + { + "query_img": "s4428.jpg", + "query_roi": [ + 763.0, + 185.0, + 795.0, + 272.0 + ], + "query_gt": [ + { + "img": "s4635.jpg", + "roi": [ + 1.0, + 218.0, + 71.0, + 436.0 + ] + } + ], + "gallery": [ + { + "img": "s4808.jpg", + "roi": [ + 386.7713623046875, + 262.59283447265625, + 422.7424011230469, + 367.86572265625, + 0.9944061040878296 + ], + "score": 1.2229478359222412, + "correct": 0 + }, + { + "img": "s4635.jpg", + "roi": [ + 2.8812739849090576, + 219.89596557617188, + 71.63406372070312, + 437.05230712890625, + 0.9991395473480225 + ], + "score": 1.1548559665679932, + "correct": 1 + }, + { + "img": "s7241.jpg", + "roi": [ + 273.2607727050781, + 198.177978515625, + 292.96307373046875, + 260.4342956542969, + 0.9853183031082153 + ], + "score": 0.9807149171829224, + "correct": 0 + }, + { + "img": "s1057.jpg", + "roi": [ + 283.194580078125, + 126.75355529785156, + 359.96240234375, + 332.2681884765625, + 0.9997757077217102 + ], + "score": 0.8888811469078064, + "correct": 0 + }, + { + "img": "s4808.jpg", + "roi": [ + 132.82061767578125, + 290.6658020019531, + 157.0298309326172, + 354.963623046875, + 0.998450517654419 + ], + "score": 0.838941216468811, + "correct": 0 + }, + { + "img": "s4684.jpg", + "roi": [ + 360.1206970214844, + 285.4278259277344, + 377.19598388671875, + 332.1884460449219, + 0.9002410173416138 + ], + "score": 0.8118190169334412, + "correct": 0 + }, + { + "img": "s220.jpg", + "roi": [ + 5.237218379974365, + 314.7614440917969, + 23.772918701171875, + 373.8852233886719, + 0.9945618510246277 + ], + "score": 0.7896942496299744, + "correct": 0 + }, + { + "img": "s1750.jpg", + "roi": [ + 706.0736694335938, + 209.58209228515625, + 720.555908203125, + 257.32818603515625, + 0.8763139247894287 + ], + "score": 0.7407839298248291, + "correct": 0 + }, + { + "img": "s10203.jpg", + "roi": [ + 415.6278991699219, + 148.91049194335938, + 434.1605224609375, + 212.7731170654297, + 0.99085533618927 + ], + "score": 0.7309548258781433, + "correct": 0 + }, + { + "img": "s220.jpg", + "roi": [ + 187.9868621826172, + 305.62298583984375, + 204.539794921875, + 355.0487976074219, + 0.9953007698059082 + ], + "score": 0.7246111035346985, + "correct": 0 + } + ] + }, + { + "query_img": "s9262.jpg", + "query_roi": [ + 341.0, + 266.0, + 458.0, + 580.0 + ], + "query_gt": [ + { + "img": "s9261.jpg", + "roi": [ + 243.0, + 52.0, + 315.0, + 246.0 + ] + } + ], + "gallery": [ + { + "img": "s9313.jpg", + "roi": [ + 17.772483825683594, + 298.4456481933594, + 60.0655517578125, + 414.423828125, + 0.9994834661483765 + ], + "score": 0.9395634531974792, + "correct": 0 + }, + { + "img": "s13367.jpg", + "roi": [ + 337.7291564941406, + 158.89425659179688, + 417.94244384765625, + 395.5559387207031, + 0.9992656111717224 + ], + "score": 0.824152946472168, + "correct": 0 + }, + { + "img": "s462.jpg", + "roi": [ + 13.30591869354248, + 44.4401969909668, + 102.84569549560547, + 332.1735534667969, + 0.9973145127296448 + ], + "score": 0.6991172432899475, + "correct": 0 + }, + { + "img": "s6412.jpg", + "roi": [ + 524.5047607421875, + 226.64682006835938, + 573.2279052734375, + 368.6007995605469, + 0.9994101524353027 + ], + "score": 0.6808700561523438, + "correct": 0 + }, + { + "img": "s17669.jpg", + "roi": [ + 161.4506378173828, + 94.89459991455078, + 222.51100158691406, + 333.5198669433594, + 0.9985567927360535 + ], + "score": 0.6655239462852478, + "correct": 0 + }, + { + "img": "s17669.jpg", + "roi": [ + 622.9976806640625, + 65.73750305175781, + 704.6826171875, + 367.697021484375, + 0.9993875026702881 + ], + "score": 0.6595230102539062, + "correct": 0 + }, + { + "img": "s16222.jpg", + "roi": [ + 174.10543823242188, + 170.88699340820312, + 204.7238006591797, + 271.9310607910156, + 0.9984061121940613 + ], + "score": 0.6571813821792603, + "correct": 0 + }, + { + "img": "s17669.jpg", + "roi": [ + 200.38536071777344, + 126.18878173828125, + 275.18792724609375, + 374.0615234375, + 0.9993067979812622 + ], + "score": 0.6502479910850525, + "correct": 0 + }, + { + "img": "s2711.jpg", + "roi": [ + 269.00726318359375, + 237.15975952148438, + 298.8147888183594, + 334.94842529296875, + 0.9590254426002502 + ], + "score": 0.6130642294883728, + "correct": 0 + }, + { + "img": "s2303.jpg", + "roi": [ + 393.2498779296875, + 177.68096923828125, + 502.8302917480469, + 476.6546325683594, + 0.9996140599250793 + ], + "score": 0.6104271411895752, + "correct": 0 + } + ] + }, + { + "query_img": "s7808.jpg", + "query_roi": [ + 434.0, + 135.0, + 524.0, + 406.0 + ], + "query_gt": [ + { + "img": "s7806.jpg", + "roi": [ + 257.0, + 35.0, + 471.0, + 531.0 + ] + } + ], + "gallery": [ + { + "img": "s3354.jpg", + "roi": [ + 267.41094970703125, + 130.5172882080078, + 359.09991455078125, + 375.0023193359375, + 0.9998601675033569 + ], + "score": 0.9579201936721802, + "correct": 0 + }, + { + "img": "s10858.jpg", + "roi": [ + 221.85269165039062, + 80.70297241210938, + 268.26708984375, + 222.1631317138672, + 0.9996503591537476 + ], + "score": 0.9093328714370728, + "correct": 0 + }, + { + "img": "s10488.jpg", + "roi": [ + 374.5922546386719, + 252.68235778808594, + 394.4643249511719, + 315.8080139160156, + 0.9958329796791077 + ], + "score": 0.8358316421508789, + "correct": 0 + }, + { + "img": "s4974.jpg", + "roi": [ + 124.0380859375, + 246.85671997070312, + 153.9906463623047, + 341.9278564453125, + 0.9979475140571594 + ], + "score": 0.7619897723197937, + "correct": 0 + }, + { + "img": "s1678.jpg", + "roi": [ + 454.9205017089844, + 198.33477783203125, + 477.7659606933594, + 271.688720703125, + 0.9972111582756042 + ], + "score": 0.7606897354125977, + "correct": 0 + }, + { + "img": "s7993.jpg", + "roi": [ + 469.5245056152344, + 73.1326675415039, + 536.7985229492188, + 286.1520690917969, + 0.9993707537651062 + ], + "score": 0.7430469393730164, + "correct": 0 + }, + { + "img": "s2373.jpg", + "roi": [ + 46.63361358642578, + 181.55313110351562, + 173.29794311523438, + 543.092529296875, + 0.9996047616004944 + ], + "score": 0.7134512066841125, + "correct": 0 + }, + { + "img": "s17508.jpg", + "roi": [ + 496.8258056640625, + 27.70180320739746, + 623.0721435546875, + 442.4852294921875, + 0.9990707039833069 + ], + "score": 0.7121294736862183, + "correct": 0 + }, + { + "img": "s6963.jpg", + "roi": [ + 131.55081176757812, + 178.45675659179688, + 180.61911010742188, + 313.986083984375, + 0.9993219375610352 + ], + "score": 0.7107224464416504, + "correct": 0 + }, + { + "img": "s2114.jpg", + "roi": [ + 325.6341552734375, + 156.49099731445312, + 349.9311218261719, + 229.77391052246094, + 0.9980529546737671 + ], + "score": 0.6807147860527039, + "correct": 0 + } + ] + }, + { + "query_img": "s12336.jpg", + "query_roi": [ + 238.0, + 130.0, + 349.0, + 427.0 + ], + "query_gt": [ + { + "img": "s12337.jpg", + "roi": [ + 216.0, + 230.0, + 252.0, + 326.0 + ] + } + ], + "gallery": [ + { + "img": "s12099.jpg", + "roi": [ + 110.00094604492188, + 210.99801635742188, + 213.1917266845703, + 526.5330810546875, + 0.9987123012542725 + ], + "score": 0.9023829102516174, + "correct": 0 + }, + { + "img": "s4809.jpg", + "roi": [ + 65.93736267089844, + 121.62932586669922, + 160.67416381835938, + 389.1485595703125, + 0.9997673630714417 + ], + "score": 0.8554211854934692, + "correct": 0 + }, + { + "img": "s12099.jpg", + "roi": [ + 175.8184814453125, + 246.3674774169922, + 283.0524597167969, + 590.9994506835938, + 0.9969786405563354 + ], + "score": 0.8476569652557373, + "correct": 0 + }, + { + "img": "s4809.jpg", + "roi": [ + 453.5538330078125, + 114.78875732421875, + 613.5660400390625, + 600.0, + 0.9993083477020264 + ], + "score": 0.8425962924957275, + "correct": 0 + }, + { + "img": "s8039.jpg", + "roi": [ + 682.48779296875, + 106.3354263305664, + 748.3916015625, + 292.7419128417969, + 0.9997329115867615 + ], + "score": 0.7896305918693542, + "correct": 0 + }, + { + "img": "s4037.jpg", + "roi": [ + 145.02957153320312, + 313.40570068359375, + 193.707275390625, + 449.0954284667969, + 0.9991260170936584 + ], + "score": 0.7732076644897461, + "correct": 0 + }, + { + "img": "s4722.jpg", + "roi": [ + 243.64085388183594, + 73.61834716796875, + 380.1171875, + 460.98291015625, + 0.9998633861541748 + ], + "score": 0.7619391679763794, + "correct": 0 + }, + { + "img": "s4868.jpg", + "roi": [ + 259.9705505371094, + 175.57699584960938, + 272.6240234375, + 212.4653778076172, + 0.9807455539703369 + ], + "score": 0.7523121237754822, + "correct": 0 + }, + { + "img": "s17863.jpg", + "roi": [ + 545.5790405273438, + 124.27781677246094, + 625.2222900390625, + 359.9553527832031, + 0.9995604157447815 + ], + "score": 0.7097436189651489, + "correct": 0 + }, + { + "img": "s9936.jpg", + "roi": [ + 174.49754333496094, + 132.76220703125, + 225.67491149902344, + 278.8128356933594, + 0.9984790682792664 + ], + "score": 0.6953920722007751, + "correct": 0 + } + ] + }, + { + "query_img": "s8192.jpg", + "query_roi": [ + 178.0, + 264.0, + 297.0, + 581.0 + ], + "query_gt": [ + { + "img": "s8193.jpg", + "roi": [ + 288.0, + 192.0, + 382.0, + 475.0 + ] + } + ], + "gallery": [ + { + "img": "s9594.jpg", + "roi": [ + 349.01800537109375, + 389.44769287109375, + 395.46087646484375, + 532.1866455078125, + 0.9829015731811523 + ], + "score": 0.769903302192688, + "correct": 0 + }, + { + "img": "s8218.jpg", + "roi": [ + 71.80513763427734, + 37.69285583496094, + 178.7901611328125, + 366.8371276855469, + 0.9959701299667358 + ], + "score": 0.7691099047660828, + "correct": 0 + }, + { + "img": "s7864.jpg", + "roi": [ + 470.4232482910156, + 213.90415954589844, + 558.4708251953125, + 437.3059997558594, + 0.9893475770950317 + ], + "score": 0.7438219785690308, + "correct": 0 + }, + { + "img": "s8184.jpg", + "roi": [ + 221.56423950195312, + 4.447116374969482, + 328.98443603515625, + 248.29722595214844, + 0.969654381275177 + ], + "score": 0.7343504428863525, + "correct": 0 + }, + { + "img": "s8184.jpg", + "roi": [ + 303.3797302246094, + 223.21243286132812, + 447.04608154296875, + 634.2688598632812, + 0.9994361996650696 + ], + "score": 0.7311590313911438, + "correct": 0 + }, + { + "img": "s15158.jpg", + "roi": [ + 397.8592834472656, + 156.25119018554688, + 454.4292907714844, + 356.47381591796875, + 0.999387264251709 + ], + "score": 0.7273345589637756, + "correct": 0 + }, + { + "img": "s8218.jpg", + "roi": [ + 374.263427734375, + 179.02139282226562, + 517.4727172851562, + 614.93212890625, + 0.9992678761482239 + ], + "score": 0.7025724053382874, + "correct": 0 + }, + { + "img": "s5745.jpg", + "roi": [ + 438.3282165527344, + 39.325828552246094, + 498.66400146484375, + 247.65066528320312, + 0.9997361302375793 + ], + "score": 0.6766042113304138, + "correct": 0 + }, + { + "img": "s4969.jpg", + "roi": [ + 78.91144561767578, + 58.577266693115234, + 96.31613159179688, + 111.337646484375, + 0.8740332126617432 + ], + "score": 0.6742067337036133, + "correct": 0 + }, + { + "img": "s7955.jpg", + "roi": [ + 500.5792236328125, + 160.72024536132812, + 522.7861938476562, + 220.55747985839844, + 0.8985676765441895 + ], + "score": 0.6715750694274902, + "correct": 0 + } + ] + }, + { + "query_img": "s11328.jpg", + "query_roi": [ + 133.0, + 270.0, + 180.0, + 396.0 + ], + "query_gt": [ + { + "img": "s11327.jpg", + "roi": [ + 21.0, + 131.0, + 70.0, + 264.0 + ] + } + ], + "gallery": [ + { + "img": "s11787.jpg", + "roi": [ + 236.0621337890625, + 425.9630432128906, + 259.5540466308594, + 496.8739929199219, + 0.9804095029830933 + ], + "score": 0.9156152009963989, + "correct": 0 + }, + { + "img": "s10700.jpg", + "roi": [ + 80.38980102539062, + 110.36455535888672, + 109.00686645507812, + 193.41842651367188, + 0.9753867387771606 + ], + "score": 0.8602120280265808, + "correct": 0 + }, + { + "img": "s10700.jpg", + "roi": [ + 117.33169555664062, + 93.18064880371094, + 145.41249084472656, + 179.77825927734375, + 0.9639444351196289 + ], + "score": 0.8526031970977783, + "correct": 0 + }, + { + "img": "s4317.jpg", + "roi": [ + 269.9698486328125, + 89.44137573242188, + 330.8974609375, + 283.0153503417969, + 0.9753630757331848 + ], + "score": 0.8201321363449097, + "correct": 0 + }, + { + "img": "s2707.jpg", + "roi": [ + 184.26486206054688, + 138.3778839111328, + 224.7374725341797, + 263.7472839355469, + 0.9866113662719727 + ], + "score": 0.8131734728813171, + "correct": 0 + }, + { + "img": "s7191.jpg", + "roi": [ + 433.2898864746094, + 63.64988708496094, + 445.3133239746094, + 98.61936950683594, + 0.8217213153839111 + ], + "score": 0.8049211502075195, + "correct": 0 + }, + { + "img": "s4431.jpg", + "roi": [ + 757.1693115234375, + 232.8896484375, + 774.0929565429688, + 278.50762939453125, + 0.98232102394104 + ], + "score": 0.7954819798469543, + "correct": 0 + }, + { + "img": "s15522.jpg", + "roi": [ + 760.2390747070312, + 196.52728271484375, + 794.7914428710938, + 309.12872314453125, + 0.9753947854042053 + ], + "score": 0.7804802656173706, + "correct": 0 + }, + { + "img": "s12340.jpg", + "roi": [ + 231.33265686035156, + 172.9205322265625, + 264.6340026855469, + 281.9779052734375, + 0.9921520352363586 + ], + "score": 0.7781596183776855, + "correct": 0 + }, + { + "img": "s2852.jpg", + "roi": [ + 42.200843811035156, + 83.85787963867188, + 79.58419799804688, + 183.7854461669922, + 0.9915404915809631 + ], + "score": 0.7742958664894104, + "correct": 0 + } + ] + }, + { + "query_img": "s11790.jpg", + "query_roi": [ + 117.0, + 389.0, + 145.0, + 464.0 + ], + "query_gt": [ + { + "img": "s11791.jpg", + "roi": [ + 60.0, + 475.0, + 100.0, + 582.0 + ] + } + ], + "gallery": [ + { + "img": "s11755.jpg", + "roi": [ + 140.4815673828125, + 277.7635498046875, + 159.21763610839844, + 331.9982604980469, + 0.9988501071929932 + ], + "score": 1.0273011922836304, + "correct": 0 + }, + { + "img": "s3853.jpg", + "roi": [ + 725.2062377929688, + 239.8651580810547, + 772.15087890625, + 380.4505615234375, + 0.9951620697975159 + ], + "score": 0.9337360262870789, + "correct": 0 + }, + { + "img": "s15188.jpg", + "roi": [ + 339.9947509765625, + 111.29852294921875, + 423.9136962890625, + 413.5307312011719, + 0.9921869039535522 + ], + "score": 0.8526145815849304, + "correct": 0 + }, + { + "img": "s13534.jpg", + "roi": [ + 225.09152221679688, + 105.8733139038086, + 261.3451232910156, + 220.7801971435547, + 0.9500876665115356 + ], + "score": 0.8468288779258728, + "correct": 0 + }, + { + "img": "s2297.jpg", + "roi": [ + 352.01275634765625, + 161.06393432617188, + 383.6918640136719, + 259.55279541015625, + 0.9029595255851746 + ], + "score": 0.8246572017669678, + "correct": 0 + }, + { + "img": "s11791.jpg", + "roi": [ + 58.72323989868164, + 474.53106689453125, + 101.11046600341797, + 582.4954833984375, + 0.9998335838317871 + ], + "score": 0.8078905344009399, + "correct": 1 + }, + { + "img": "s1277.jpg", + "roi": [ + 528.383544921875, + 258.88812255859375, + 554.6494140625, + 343.86138916015625, + 0.9875282645225525 + ], + "score": 0.7914764285087585, + "correct": 0 + }, + { + "img": "s10172.jpg", + "roi": [ + 534.6527099609375, + 115.9759750366211, + 551.606201171875, + 164.9477996826172, + 0.9947088956832886 + ], + "score": 0.7883737087249756, + "correct": 0 + }, + { + "img": "s17674.jpg", + "roi": [ + 429.3690185546875, + 39.0080451965332, + 478.8554382324219, + 203.07228088378906, + 0.9977697134017944 + ], + "score": 0.7861652970314026, + "correct": 0 + }, + { + "img": "s10181.jpg", + "roi": [ + 454.8040466308594, + 178.72769165039062, + 497.54803466796875, + 300.52752685546875, + 0.9996548891067505 + ], + "score": 0.7594108581542969, + "correct": 0 + } + ] + }, + { + "query_img": "s12273.jpg", + "query_roi": [ + 91.0, + 307.0, + 134.0, + 421.0 + ], + "query_gt": [ + { + "img": "s12274.jpg", + "roi": [ + 32.0, + 331.0, + 102.0, + 519.0 + ] + } + ], + "gallery": [ + { + "img": "s11040.jpg", + "roi": [ + 720.8399047851562, + 200.20408630371094, + 736.6875610351562, + 249.29336547851562, + 0.9484298825263977 + ], + "score": 1.0260322093963623, + "correct": 0 + }, + { + "img": "s10870.jpg", + "roi": [ + 326.77618408203125, + 47.18672180175781, + 355.11279296875, + 141.70167541503906, + 0.9887489080429077 + ], + "score": 0.9182080626487732, + "correct": 0 + }, + { + "img": "s664.jpg", + "roi": [ + 312.5894470214844, + 77.14399719238281, + 340.501220703125, + 164.43975830078125, + 0.9893031120300293 + ], + "score": 0.9103193283081055, + "correct": 0 + }, + { + "img": "s11435.jpg", + "roi": [ + 276.9586181640625, + 318.4249572753906, + 296.98773193359375, + 379.8232116699219, + 0.9258671402931213 + ], + "score": 0.8661205768585205, + "correct": 0 + }, + { + "img": "s11785.jpg", + "roi": [ + 199.8614959716797, + 418.24676513671875, + 221.53575134277344, + 487.0841979980469, + 0.9816299676895142 + ], + "score": 0.8479632139205933, + "correct": 0 + }, + { + "img": "s9709.jpg", + "roi": [ + 145.5301971435547, + 291.041015625, + 168.09005737304688, + 359.41473388671875, + 0.862162172794342 + ], + "score": 0.7996678352355957, + "correct": 0 + }, + { + "img": "s11435.jpg", + "roi": [ + 3.536231279373169, + 361.02105712890625, + 29.542869567871094, + 441.6568603515625, + 0.9995927214622498 + ], + "score": 0.793632984161377, + "correct": 0 + }, + { + "img": "s2177.jpg", + "roi": [ + 353.51934814453125, + 193.75982666015625, + 379.5617370605469, + 271.37274169921875, + 0.991981565952301 + ], + "score": 0.7869887351989746, + "correct": 0 + }, + { + "img": "s2646.jpg", + "roi": [ + 171.69302368164062, + 185.77734375, + 196.69244384765625, + 271.8875732421875, + 0.8426819443702698 + ], + "score": 0.765230655670166, + "correct": 0 + }, + { + "img": "s11040.jpg", + "roi": [ + 732.1611328125, + 200.17320251464844, + 756.2867431640625, + 281.0247497558594, + 0.9974104762077332 + ], + "score": 0.7560424208641052, + "correct": 0 + } + ] + }, + { + "query_img": "s1327.jpg", + "query_roi": [ + 359.0, + 145.0, + 486.0, + 484.0 + ], + "query_gt": [ + { + "img": "s1326.jpg", + "roi": [ + 368.0, + 216.0, + 472.0, + 515.0 + ] + }, + { + "img": "s1328.jpg", + "roi": [ + 470.0, + 237.0, + 579.0, + 591.0 + ] + } + ], + "gallery": [ + { + "img": "s1326.jpg", + "roi": [ + 144.117431640625, + 283.7510681152344, + 265.6399841308594, + 600.30810546875, + 0.9998049139976501 + ], + "score": 1.359604835510254, + "correct": 0 + }, + { + "img": "s1326.jpg", + "roi": [ + 367.3638610839844, + 217.3912353515625, + 471.46875, + 515.8840942382812, + 0.9582692980766296 + ], + "score": 1.2216966152191162, + "correct": 1 + }, + { + "img": "s1328.jpg", + "roi": [ + 473.1141357421875, + 279.2871398925781, + 586.251220703125, + 649.6723022460938, + 0.9991129040718079 + ], + "score": 1.1468160152435303, + "correct": 1 + }, + { + "img": "s3508.jpg", + "roi": [ + 317.53369140625, + 162.77825927734375, + 385.8201904296875, + 370.27191162109375, + 0.9992521405220032 + ], + "score": 0.7428824305534363, + "correct": 0 + }, + { + "img": "s9917.jpg", + "roi": [ + 408.86956787109375, + 82.9367904663086, + 544.6532592773438, + 455.05194091796875, + 0.9996258020401001 + ], + "score": 0.7165917754173279, + "correct": 0 + }, + { + "img": "s1055.jpg", + "roi": [ + 189.53660583496094, + 193.30062866210938, + 251.23406982421875, + 347.795654296875, + 0.9998550415039062 + ], + "score": 0.7136064171791077, + "correct": 0 + }, + { + "img": "s1328.jpg", + "roi": [ + 323.73309326171875, + 193.21041870117188, + 432.71624755859375, + 498.0892333984375, + 0.9981406927108765 + ], + "score": 0.7115724086761475, + "correct": 0 + }, + { + "img": "s10748.jpg", + "roi": [ + 159.482421875, + 176.494873046875, + 283.2917175292969, + 538.122314453125, + 0.9998223185539246 + ], + "score": 0.687500536441803, + "correct": 0 + }, + { + "img": "s12018.jpg", + "roi": [ + 266.747314453125, + 336.64056396484375, + 315.74908447265625, + 467.7715759277344, + 0.9997040629386902 + ], + "score": 0.6409904360771179, + "correct": 0 + }, + { + "img": "s5814.jpg", + "roi": [ + 189.2991180419922, + 53.076927185058594, + 374.550537109375, + 505.75634765625, + 0.999058187007904 + ], + "score": 0.6393170952796936, + "correct": 0 + } + ] + }, + { + "query_img": "s2246.jpg", + "query_roi": [ + 149.0, + 136.0, + 247.0, + 411.0 + ], + "query_gt": [ + { + "img": "s2247.jpg", + "roi": [ + 237.0, + 128.0, + 366.0, + 489.0 + ] + }, + { + "img": "s2248.jpg", + "roi": [ + 308.0, + 206.0, + 353.0, + 326.0 + ] + } + ], + "gallery": [ + { + "img": "s49.jpg", + "roi": [ + 52.86894989013672, + 142.87008666992188, + 239.6162567138672, + 676.39599609375, + 0.9991341233253479 + ], + "score": 1.0963436365127563, + "correct": 0 + }, + { + "img": "s2247.jpg", + "roi": [ + 233.6118621826172, + 128.64614868164062, + 366.40020751953125, + 492.7120056152344, + 0.9997861981391907 + ], + "score": 0.9360136389732361, + "correct": 1 + }, + { + "img": "s3033.jpg", + "roi": [ + 441.40899658203125, + 181.6182861328125, + 497.4400634765625, + 336.03497314453125, + 0.9997617602348328 + ], + "score": 0.874630331993103, + "correct": 0 + }, + { + "img": "s2247.jpg", + "roi": [ + 313.1677551269531, + 158.2227020263672, + 379.783203125, + 366.20745849609375, + 0.9975005984306335 + ], + "score": 0.8662164211273193, + "correct": 0 + }, + { + "img": "s9120.jpg", + "roi": [ + 0.0, + 202.71568298339844, + 172.9228973388672, + 761.406494140625, + 0.9995916485786438 + ], + "score": 0.8267197012901306, + "correct": 0 + }, + { + "img": "s9250.jpg", + "roi": [ + 107.96607971191406, + 261.16485595703125, + 174.13775634765625, + 451.05645751953125, + 0.9982523322105408 + ], + "score": 0.7942377328872681, + "correct": 0 + }, + { + "img": "s2248.jpg", + "roi": [ + 215.54010009765625, + 210.46432495117188, + 253.40191650390625, + 327.8760986328125, + 0.9993282556533813 + ], + "score": 0.7817618250846863, + "correct": 0 + }, + { + "img": "s4729.jpg", + "roi": [ + 0.0, + 110.88751220703125, + 140.03915405273438, + 597.9689331054688, + 0.999734103679657 + ], + "score": 0.7512099742889404, + "correct": 0 + }, + { + "img": "s2248.jpg", + "roi": [ + 311.2716064453125, + 205.74583435058594, + 349.95086669921875, + 327.034423828125, + 0.9994615912437439 + ], + "score": 0.7276197075843811, + "correct": 1 + }, + { + "img": "s9801.jpg", + "roi": [ + 249.1332244873047, + 110.39613342285156, + 310.305419921875, + 285.1698913574219, + 0.9992517828941345 + ], + "score": 0.6925584673881531, + "correct": 0 + } + ] + }, + { + "query_img": "s6212.jpg", + "query_roi": [ + 347.0, + 101.0, + 378.0, + 185.0 + ], + "query_gt": [ + { + "img": "s6213.jpg", + "roi": [ + 201.0, + 62.0, + 332.0, + 448.0 + ] + } + ], + "gallery": [ + { + "img": "s1569.jpg", + "roi": [ + 339.3411560058594, + 89.13838958740234, + 368.634521484375, + 185.33653259277344, + 0.9730058908462524 + ], + "score": 0.8630526065826416, + "correct": 0 + }, + { + "img": "s5097.jpg", + "roi": [ + 488.3963623046875, + 152.214599609375, + 511.2745361328125, + 219.4823455810547, + 0.9491281509399414 + ], + "score": 0.7932902574539185, + "correct": 0 + }, + { + "img": "s9143.jpg", + "roi": [ + 579.4234008789062, + 219.11117553710938, + 598.64208984375, + 285.9085388183594, + 0.9961665272712708 + ], + "score": 0.7691517472267151, + "correct": 0 + }, + { + "img": "s6213.jpg", + "roi": [ + 209.90435791015625, + 59.620018005371094, + 320.9571838378906, + 427.123779296875, + 0.9976135492324829 + ], + "score": 0.7521194219589233, + "correct": 1 + }, + { + "img": "s4800.jpg", + "roi": [ + 736.1132202148438, + 251.09286499023438, + 755.6412353515625, + 305.5733337402344, + 0.9163068532943726 + ], + "score": 0.7395856976509094, + "correct": 0 + }, + { + "img": "s15883.jpg", + "roi": [ + 557.75, + 152.05601501464844, + 577.1793212890625, + 217.63497924804688, + 0.9683554768562317 + ], + "score": 0.7352638244628906, + "correct": 0 + }, + { + "img": "s10395.jpg", + "roi": [ + 572.783935546875, + 223.62646484375, + 596.4007568359375, + 316.18695068359375, + 0.9447354078292847 + ], + "score": 0.7309982180595398, + "correct": 0 + }, + { + "img": "s7882.jpg", + "roi": [ + 773.6439208984375, + 205.28541564941406, + 793.1394653320312, + 265.3293151855469, + 0.9662005305290222 + ], + "score": 0.7250751256942749, + "correct": 0 + }, + { + "img": "s17982.jpg", + "roi": [ + 281.6769714355469, + 66.63026428222656, + 310.1201477050781, + 149.37144470214844, + 0.9969538450241089 + ], + "score": 0.722218930721283, + "correct": 0 + }, + { + "img": "s15883.jpg", + "roi": [ + 615.4310913085938, + 163.49380493164062, + 635.0680541992188, + 220.92343139648438, + 0.9950597882270813 + ], + "score": 0.7219009399414062, + "correct": 0 + } + ] + }, + { + "query_img": "s5002.jpg", + "query_roi": [ + 433.0, + 89.0, + 477.0, + 208.0 + ], + "query_gt": [ + { + "img": "s5014.jpg", + "roi": [ + 399.0, + 158.0, + 509.0, + 453.0 + ] + } + ], + "gallery": [ + { + "img": "s13533.jpg", + "roi": [ + 634.6566772460938, + 183.53433227539062, + 674.4100341796875, + 292.1528625488281, + 0.9973813891410828 + ], + "score": 0.8759096264839172, + "correct": 0 + }, + { + "img": "s9892.jpg", + "roi": [ + 152.63865661621094, + 104.12248992919922, + 244.02386474609375, + 362.641845703125, + 0.9992399215698242 + ], + "score": 0.8740329146385193, + "correct": 0 + }, + { + "img": "s5014.jpg", + "roi": [ + 403.9419860839844, + 160.864013671875, + 504.69818115234375, + 454.26177978515625, + 0.9997442364692688 + ], + "score": 0.8618007302284241, + "correct": 1 + }, + { + "img": "s10106.jpg", + "roi": [ + 291.08868408203125, + 92.28338623046875, + 314.7701721191406, + 167.32077026367188, + 0.9970422387123108 + ], + "score": 0.8285335302352905, + "correct": 0 + }, + { + "img": "s17538.jpg", + "roi": [ + 521.641357421875, + 107.50039672851562, + 580.352294921875, + 312.5426940917969, + 0.9995606541633606 + ], + "score": 0.8011096119880676, + "correct": 0 + }, + { + "img": "s10267.jpg", + "roi": [ + 396.30975341796875, + 264.5640869140625, + 422.50970458984375, + 341.21875, + 0.9946079254150391 + ], + "score": 0.7832563519477844, + "correct": 0 + }, + { + "img": "s10502.jpg", + "roi": [ + 248.6136932373047, + 305.71771240234375, + 264.03155517578125, + 350.48577880859375, + 0.9951569437980652 + ], + "score": 0.776054322719574, + "correct": 0 + }, + { + "img": "s10106.jpg", + "roi": [ + 310.9786376953125, + 92.11470031738281, + 335.5474853515625, + 169.14906311035156, + 0.9484129548072815 + ], + "score": 0.7486551403999329, + "correct": 0 + }, + { + "img": "s3882.jpg", + "roi": [ + 211.42320251464844, + 143.23666381835938, + 238.60638427734375, + 224.0128631591797, + 0.998274564743042 + ], + "score": 0.7412025332450867, + "correct": 0 + }, + { + "img": "s9892.jpg", + "roi": [ + 210.10398864746094, + 96.79489135742188, + 321.33990478515625, + 397.77252197265625, + 0.9998477697372437 + ], + "score": 0.7270128726959229, + "correct": 0 + } + ] + }, + { + "query_img": "s7715.jpg", + "query_roi": [ + 213.0, + 158.0, + 336.0, + 385.0 + ], + "query_gt": [ + { + "img": "s7716.jpg", + "roi": [ + 306.0, + 105.0, + 413.0, + 401.0 + ] + } + ], + "gallery": [ + { + "img": "s1231.jpg", + "roi": [ + 443.46221923828125, + 375.6006774902344, + 575.1641845703125, + 740.0299072265625, + 0.9996398687362671 + ], + "score": 1.2807633876800537, + "correct": 0 + }, + { + "img": "s7716.jpg", + "roi": [ + 303.3979187011719, + 104.72183227539062, + 412.99261474609375, + 405.6813659667969, + 0.9998548030853271 + ], + "score": 1.2738330364227295, + "correct": 1 + }, + { + "img": "s8899.jpg", + "roi": [ + 322.933349609375, + 231.5654296875, + 498.19232177734375, + 733.3077392578125, + 0.9989637136459351 + ], + "score": 1.1975502967834473, + "correct": 0 + }, + { + "img": "s8899.jpg", + "roi": [ + 212.427490234375, + 250.17904663085938, + 348.30169677734375, + 652.556396484375, + 0.9953210949897766 + ], + "score": 0.9811244010925293, + "correct": 0 + }, + { + "img": "s10544.jpg", + "roi": [ + 458.25555419921875, + 142.38092041015625, + 491.92822265625, + 248.68292236328125, + 0.9964214563369751 + ], + "score": 0.9116053581237793, + "correct": 0 + }, + { + "img": "s6647.jpg", + "roi": [ + 230.9675750732422, + 443.39569091796875, + 291.44842529296875, + 593.6839599609375, + 0.9910824298858643 + ], + "score": 0.8533653616905212, + "correct": 0 + }, + { + "img": "s8899.jpg", + "roi": [ + 212.57144165039062, + 165.13925170898438, + 324.79779052734375, + 474.95953369140625, + 0.986081600189209 + ], + "score": 0.8164792060852051, + "correct": 0 + }, + { + "img": "s7486.jpg", + "roi": [ + 114.56354522705078, + 111.34754180908203, + 165.62823486328125, + 257.2293701171875, + 0.9996548891067505 + ], + "score": 0.8106458187103271, + "correct": 0 + }, + { + "img": "s7484.jpg", + "roi": [ + 564.7521362304688, + 107.63134765625, + 676.846923828125, + 446.58673095703125, + 0.9997504353523254 + ], + "score": 0.7928852438926697, + "correct": 0 + }, + { + "img": "s11976.jpg", + "roi": [ + 276.4522705078125, + 318.451904296875, + 310.789306640625, + 410.50860595703125, + 0.9997280240058899 + ], + "score": 0.7550995945930481, + "correct": 0 + } + ] + }, + { + "query_img": "s633.jpg", + "query_roi": [ + 223.0, + 9.0, + 389.0, + 538.0 + ], + "query_gt": [ + { + "img": "s632.jpg", + "roi": [ + 164.0, + 5.0, + 367.0, + 631.0 + ] + } + ], + "gallery": [ + { + "img": "s9639.jpg", + "roi": [ + 429.8488464355469, + 143.5390167236328, + 511.3648681640625, + 369.9644775390625, + 0.9995720982551575 + ], + "score": 1.143351674079895, + "correct": 0 + }, + { + "img": "s785.jpg", + "roi": [ + 127.04668426513672, + 2.4558513164520264, + 357.12823486328125, + 584.4920654296875, + 0.9990777969360352 + ], + "score": 1.1298637390136719, + "correct": 0 + }, + { + "img": "s632.jpg", + "roi": [ + 166.52964782714844, + 0.0, + 353.45623779296875, + 586.1089477539062, + 0.9990966320037842 + ], + "score": 1.0988479852676392, + "correct": 1 + }, + { + "img": "s683.jpg", + "roi": [ + 64.022705078125, + 77.169921875, + 309.87890625, + 687.2025756835938, + 0.9991569519042969 + ], + "score": 1.0945844650268555, + "correct": 0 + }, + { + "img": "s6540.jpg", + "roi": [ + 323.256591796875, + 321.9399108886719, + 374.6980895996094, + 472.4971923828125, + 0.9991742968559265 + ], + "score": 1.0583823919296265, + "correct": 0 + }, + { + "img": "s5968.jpg", + "roi": [ + 375.04791259765625, + 63.625244140625, + 484.4740905761719, + 369.566650390625, + 0.9948828220367432 + ], + "score": 1.0080153942108154, + "correct": 0 + }, + { + "img": "s23.jpg", + "roi": [ + 180.48052978515625, + 268.5145263671875, + 269.4147033691406, + 543.935302734375, + 0.9995003938674927 + ], + "score": 0.9665240049362183, + "correct": 0 + }, + { + "img": "s6718.jpg", + "roi": [ + 487.00262451171875, + 166.1630859375, + 594.9010009765625, + 485.20367431640625, + 0.9996488094329834 + ], + "score": 0.9648659229278564, + "correct": 0 + }, + { + "img": "s7307.jpg", + "roi": [ + 33.29338836669922, + 115.86376953125, + 72.68531799316406, + 244.94369506835938, + 0.9986951947212219 + ], + "score": 0.9511048793792725, + "correct": 0 + }, + { + "img": "s5968.jpg", + "roi": [ + 113.28952026367188, + 52.100982666015625, + 221.4806365966797, + 360.8450927734375, + 0.9994888305664062 + ], + "score": 0.9299867749214172, + "correct": 0 + } + ] + }, + { + "query_img": "s4411.jpg", + "query_roi": [ + 437.0, + 143.0, + 485.0, + 272.0 + ], + "query_gt": [ + { + "img": "s4410.jpg", + "roi": [ + 482.0, + 128.0, + 555.0, + 323.0 + ] + } + ], + "gallery": [ + { + "img": "s7722.jpg", + "roi": [ + 105.05206298828125, + 108.97212982177734, + 140.03684997558594, + 221.2311553955078, + 0.9958966970443726 + ], + "score": 0.8381931185722351, + "correct": 0 + }, + { + "img": "s5122.jpg", + "roi": [ + 46.98536682128906, + 140.562744140625, + 71.49356842041016, + 213.23643493652344, + 0.9976058006286621 + ], + "score": 0.8171918988227844, + "correct": 0 + }, + { + "img": "s10326.jpg", + "roi": [ + 286.1903076171875, + 193.0666961669922, + 311.238037109375, + 260.7457275390625, + 0.9988382458686829 + ], + "score": 0.809349536895752, + "correct": 0 + }, + { + "img": "s9777.jpg", + "roi": [ + 381.4571228027344, + 196.42637634277344, + 410.4532165527344, + 284.1474609375, + 0.9990070462226868 + ], + "score": 0.7319664359092712, + "correct": 0 + }, + { + "img": "s10842.jpg", + "roi": [ + 308.2719421386719, + 57.33369064331055, + 334.68780517578125, + 141.25233459472656, + 0.9982750415802002 + ], + "score": 0.692085862159729, + "correct": 0 + }, + { + "img": "s2149.jpg", + "roi": [ + 25.23139190673828, + 233.72903442382812, + 68.22885131835938, + 352.79364013671875, + 0.9962097406387329 + ], + "score": 0.67448490858078, + "correct": 0 + }, + { + "img": "s4526.jpg", + "roi": [ + 648.6920776367188, + 238.86410522460938, + 730.3663940429688, + 436.1745300292969, + 0.9996090531349182 + ], + "score": 0.6610025763511658, + "correct": 0 + }, + { + "img": "s4410.jpg", + "roi": [ + 416.79864501953125, + 185.284423828125, + 464.00128173828125, + 320.05712890625, + 0.9996104836463928 + ], + "score": 0.6539091467857361, + "correct": 0 + }, + { + "img": "s4526.jpg", + "roi": [ + 426.19158935546875, + 210.84100341796875, + 484.15283203125, + 373.8257751464844, + 0.9995065927505493 + ], + "score": 0.6487703323364258, + "correct": 0 + }, + { + "img": "s4410.jpg", + "roi": [ + 336.04791259765625, + 93.77198791503906, + 419.38525390625, + 313.8217468261719, + 0.9997931122779846 + ], + "score": 0.6356706619262695, + "correct": 0 + } + ] + }, + { + "query_img": "s9510.jpg", + "query_roi": [ + 262.0, + 123.0, + 329.0, + 303.0 + ], + "query_gt": [ + { + "img": "s9509.jpg", + "roi": [ + 154.0, + 125.0, + 223.0, + 312.0 + ] + } + ], + "gallery": [ + { + "img": "s3615.jpg", + "roi": [ + 194.75621032714844, + 14.354899406433105, + 269.2413330078125, + 200.4080810546875, + 0.9991552829742432 + ], + "score": 1.0686813592910767, + "correct": 0 + }, + { + "img": "s2180.jpg", + "roi": [ + 304.8443298339844, + 167.28530883789062, + 367.0403747558594, + 388.21649169921875, + 0.9990355968475342 + ], + "score": 0.9792851805686951, + "correct": 0 + }, + { + "img": "s9509.jpg", + "roi": [ + 38.16484069824219, + 151.1789093017578, + 81.76905822753906, + 264.3748779296875, + 0.9983124732971191 + ], + "score": 0.8322131037712097, + "correct": 0 + }, + { + "img": "s9360.jpg", + "roi": [ + 164.91140747070312, + 179.29415893554688, + 192.25303649902344, + 271.8964538574219, + 0.9895941019058228 + ], + "score": 0.8017091155052185, + "correct": 0 + }, + { + "img": "s1246.jpg", + "roi": [ + 1.8740336894989014, + 121.068603515625, + 95.61637878417969, + 492.9488220214844, + 0.9990140199661255 + ], + "score": 0.787550151348114, + "correct": 0 + }, + { + "img": "s9390.jpg", + "roi": [ + 366.24749755859375, + 180.3436279296875, + 446.7207946777344, + 408.678466796875, + 0.9997637867927551 + ], + "score": 0.7868750095367432, + "correct": 0 + }, + { + "img": "s9360.jpg", + "roi": [ + 279.9881286621094, + 184.2427978515625, + 304.8738708496094, + 258.4998474121094, + 0.9986166954040527 + ], + "score": 0.7852283120155334, + "correct": 0 + }, + { + "img": "s489.jpg", + "roi": [ + 19.34521484375, + 115.02587127685547, + 87.06808471679688, + 309.03802490234375, + 0.9988071918487549 + ], + "score": 0.7305238842964172, + "correct": 0 + }, + { + "img": "s489.jpg", + "roi": [ + 226.95468139648438, + 146.33258056640625, + 313.98388671875, + 385.8118591308594, + 0.9998304843902588 + ], + "score": 0.715785801410675, + "correct": 0 + }, + { + "img": "s6412.jpg", + "roi": [ + 473.2701110839844, + 238.04832458496094, + 514.0101928710938, + 358.51043701171875, + 0.9993798732757568 + ], + "score": 0.6972232460975647, + "correct": 0 + } + ] + }, + { + "query_img": "s4594.jpg", + "query_roi": [ + 191.0, + 191.0, + 229.0, + 294.0 + ], + "query_gt": [ + { + "img": "s4010.jpg", + "roi": [ + 231.0, + 92.0, + 303.0, + 285.0 + ] + } + ], + "gallery": [ + { + "img": "s3991.jpg", + "roi": [ + 323.754150390625, + 190.6444091796875, + 393.32733154296875, + 376.71514892578125, + 0.9997106194496155 + ], + "score": 1.2763475179672241, + "correct": 0 + }, + { + "img": "s4010.jpg", + "roi": [ + 229.803466796875, + 92.29983520507812, + 304.1869812011719, + 284.3800964355469, + 0.9998099207878113 + ], + "score": 1.2402042150497437, + "correct": 1 + }, + { + "img": "s6563.jpg", + "roi": [ + 199.58372497558594, + 265.68231201171875, + 228.6855926513672, + 346.3399963378906, + 0.9988059997558594 + ], + "score": 0.945561408996582, + "correct": 0 + }, + { + "img": "s6563.jpg", + "roi": [ + 237.11093139648438, + 267.5454406738281, + 264.5469055175781, + 343.3680419921875, + 0.9982415437698364 + ], + "score": 0.8423383235931396, + "correct": 0 + }, + { + "img": "s3925.jpg", + "roi": [ + 587.457763671875, + 161.97018432617188, + 610.6676635742188, + 226.7346649169922, + 0.9901956915855408 + ], + "score": 0.8316622376441956, + "correct": 0 + }, + { + "img": "s3901.jpg", + "roi": [ + 729.3126831054688, + 134.1029510498047, + 764.3444213867188, + 242.60107421875, + 0.9966300129890442 + ], + "score": 0.8247459530830383, + "correct": 0 + }, + { + "img": "s12435.jpg", + "roi": [ + 357.4465026855469, + 299.4073486328125, + 382.4347229003906, + 367.5259094238281, + 0.9994157552719116 + ], + "score": 0.8173529505729675, + "correct": 0 + }, + { + "img": "s4625.jpg", + "roi": [ + 410.2938232421875, + 324.78961181640625, + 432.7450866699219, + 389.8183288574219, + 0.9981685876846313 + ], + "score": 0.8020573854446411, + "correct": 0 + }, + { + "img": "s17428.jpg", + "roi": [ + 476.98760986328125, + 110.0581283569336, + 559.0567626953125, + 415.2837219238281, + 0.9992862343788147 + ], + "score": 0.7930448651313782, + "correct": 0 + }, + { + "img": "s3106.jpg", + "roi": [ + 237.15118408203125, + 172.0029296875, + 301.4791259765625, + 347.69805908203125, + 0.9997488856315613 + ], + "score": 0.7681182026863098, + "correct": 0 + } + ] + }, + { + "query_img": "s8271.jpg", + "query_roi": [ + 307.0, + 168.0, + 406.0, + 434.0 + ], + "query_gt": [ + { + "img": "s8272.jpg", + "roi": [ + 314.0, + 171.0, + 421.0, + 459.0 + ] + } + ], + "gallery": [ + { + "img": "s8897.jpg", + "roi": [ + 117.17585754394531, + 292.658447265625, + 190.23739624023438, + 505.25244140625, + 0.999210000038147 + ], + "score": 0.8175275325775146, + "correct": 0 + }, + { + "img": "s2133.jpg", + "roi": [ + 190.98779296875, + 202.2724609375, + 251.1482391357422, + 378.61346435546875, + 0.9996668100357056 + ], + "score": 0.7327349185943604, + "correct": 0 + }, + { + "img": "s8897.jpg", + "roi": [ + 232.48291015625, + 292.5702819824219, + 308.8704528808594, + 511.40631103515625, + 0.9993632435798645 + ], + "score": 0.7288532257080078, + "correct": 0 + }, + { + "img": "s461.jpg", + "roi": [ + 138.4365997314453, + 150.4700927734375, + 241.2867889404297, + 435.2501220703125, + 0.9994264841079712 + ], + "score": 0.7179096937179565, + "correct": 0 + }, + { + "img": "s8897.jpg", + "roi": [ + 316.886474609375, + 476.9364013671875, + 400.94573974609375, + 733.510986328125, + 0.999622106552124 + ], + "score": 0.7013048529624939, + "correct": 0 + }, + { + "img": "s2133.jpg", + "roi": [ + 389.86810302734375, + 195.466552734375, + 469.532958984375, + 413.6463623046875, + 0.999487042427063 + ], + "score": 0.6990742683410645, + "correct": 0 + }, + { + "img": "s9709.jpg", + "roi": [ + 220.504150390625, + 77.64046478271484, + 335.40631103515625, + 422.76690673828125, + 0.9997546076774597 + ], + "score": 0.6724894642829895, + "correct": 0 + }, + { + "img": "s2018.jpg", + "roi": [ + 154.86561584472656, + 240.47555541992188, + 203.65386962890625, + 386.2344970703125, + 0.9988351464271545 + ], + "score": 0.6591169834136963, + "correct": 0 + }, + { + "img": "s12941.jpg", + "roi": [ + 395.5285949707031, + 64.01373291015625, + 510.0507507324219, + 393.4457092285156, + 0.9993318915367126 + ], + "score": 0.6543688178062439, + "correct": 0 + }, + { + "img": "s1583.jpg", + "roi": [ + 311.0325927734375, + 204.28701782226562, + 453.6268310546875, + 596.765625, + 0.999541163444519 + ], + "score": 0.6426094770431519, + "correct": 0 + } + ] + }, + { + "query_img": "s3979.jpg", + "query_roi": [ + 309.0, + 187.0, + 420.0, + 505.0 + ], + "query_gt": [ + { + "img": "s3980.jpg", + "roi": [ + 177.0, + 128.0, + 285.0, + 416.0 + ] + } + ], + "gallery": [ + { + "img": "s5085.jpg", + "roi": [ + 492.74481201171875, + 167.3445281982422, + 555.8849487304688, + 336.96942138671875, + 0.9997637867927551 + ], + "score": 0.9742652177810669, + "correct": 0 + }, + { + "img": "s3471.jpg", + "roi": [ + 211.8506317138672, + 239.0874481201172, + 303.87579345703125, + 482.0750732421875, + 0.9998326301574707 + ], + "score": 0.8901152014732361, + "correct": 0 + }, + { + "img": "s3980.jpg", + "roi": [ + 292.935546875, + 146.1436767578125, + 342.7080078125, + 282.13873291015625, + 0.9995816349983215 + ], + "score": 0.8501903414726257, + "correct": 0 + }, + { + "img": "s15797.jpg", + "roi": [ + 381.7863464355469, + 115.66709899902344, + 444.8970947265625, + 278.8880920410156, + 0.9992509484291077 + ], + "score": 0.7826700806617737, + "correct": 0 + }, + { + "img": "s329.jpg", + "roi": [ + 265.8536376953125, + 152.2283935546875, + 404.09063720703125, + 521.4966430664062, + 0.9994889497756958 + ], + "score": 0.7660907506942749, + "correct": 0 + }, + { + "img": "s10946.jpg", + "roi": [ + 380.4472961425781, + 158.90048217773438, + 470.50750732421875, + 441.7019348144531, + 0.9930539727210999 + ], + "score": 0.746414303779602, + "correct": 0 + }, + { + "img": "s594.jpg", + "roi": [ + 263.239501953125, + 121.00546264648438, + 373.7989501953125, + 413.1171875, + 0.9998530149459839 + ], + "score": 0.7333857417106628, + "correct": 0 + }, + { + "img": "s11754.jpg", + "roi": [ + 130.988525390625, + 294.25103759765625, + 154.72171020507812, + 366.5874328613281, + 0.9974921941757202 + ], + "score": 0.719691812992096, + "correct": 0 + }, + { + "img": "s4119.jpg", + "roi": [ + 586.1592407226562, + 259.2033996582031, + 653.8883056640625, + 432.469970703125, + 0.998869001865387 + ], + "score": 0.7043900489807129, + "correct": 0 + }, + { + "img": "s824.jpg", + "roi": [ + 51.09055709838867, + 118.96820068359375, + 70.70184326171875, + 186.04733276367188, + 0.9724680781364441 + ], + "score": 0.6816043853759766, + "correct": 0 + } + ] + }, + { + "query_img": "s5257.jpg", + "query_roi": [ + 370.0, + 102.0, + 435.0, + 277.0 + ], + "query_gt": [ + { + "img": "s5256.jpg", + "roi": [ + 332.0, + 93.0, + 375.0, + 210.0 + ] + }, + { + "img": "s5258.jpg", + "roi": [ + 259.0, + 120.0, + 407.0, + 520.0 + ] + } + ], + "gallery": [ + { + "img": "s88.jpg", + "roi": [ + 94.8647689819336, + 199.38975524902344, + 153.864501953125, + 361.9880065917969, + 0.9995867609977722 + ], + "score": 1.412628412246704, + "correct": 0 + }, + { + "img": "s5258.jpg", + "roi": [ + 259.18572998046875, + 122.4342041015625, + 409.9235534667969, + 510.6982116699219, + 0.9981321692466736 + ], + "score": 1.4062360525131226, + "correct": 1 + }, + { + "img": "s5256.jpg", + "roi": [ + 335.3258972167969, + 94.44427490234375, + 375.3590087890625, + 207.52879333496094, + 0.9992520213127136 + ], + "score": 1.3120434284210205, + "correct": 1 + }, + { + "img": "s10786.jpg", + "roi": [ + 223.6248016357422, + 288.5758361816406, + 347.83843994140625, + 608.107666015625, + 0.9997920393943787 + ], + "score": 1.1418395042419434, + "correct": 0 + }, + { + "img": "s10800.jpg", + "roi": [ + 19.629329681396484, + 240.41354370117188, + 61.326385498046875, + 363.5465087890625, + 0.9988512992858887 + ], + "score": 0.9331125020980835, + "correct": 0 + }, + { + "img": "s12112.jpg", + "roi": [ + 137.84056091308594, + 371.9674377441406, + 206.2499237060547, + 552.323486328125, + 0.9998071789741516 + ], + "score": 0.8943129777908325, + "correct": 0 + }, + { + "img": "s9227.jpg", + "roi": [ + 678.81787109375, + 253.35202026367188, + 708.7489013671875, + 343.2528076171875, + 0.9985740184783936 + ], + "score": 0.8316056728363037, + "correct": 0 + }, + { + "img": "s218.jpg", + "roi": [ + 471.2515869140625, + 298.7249755859375, + 485.59039306640625, + 337.1543884277344, + 0.9672811031341553 + ], + "score": 0.7899056673049927, + "correct": 0 + }, + { + "img": "s5900.jpg", + "roi": [ + 385.37109375, + 134.34146118164062, + 430.01654052734375, + 296.504150390625, + 0.9986646175384521 + ], + "score": 0.7833826541900635, + "correct": 0 + }, + { + "img": "s4836.jpg", + "roi": [ + 122.48594665527344, + 250.7006072998047, + 153.22764587402344, + 337.6590576171875, + 0.9969382286071777 + ], + "score": 0.7695896029472351, + "correct": 0 + } + ] + }, + { + "query_img": "s232.jpg", + "query_roi": [ + 252.0, + 192.0, + 344.0, + 498.0 + ], + "query_gt": [ + { + "img": "s229.jpg", + "roi": [ + 105.0, + 128.0, + 186.0, + 429.0 + ] + }, + { + "img": "s230.jpg", + "roi": [ + 240.0, + 153.0, + 410.0, + 615.0 + ] + } + ], + "gallery": [ + { + "img": "s229.jpg", + "roi": [ + 39.477752685546875, + 155.7779083251953, + 124.65437316894531, + 420.7462158203125, + 0.9994518160820007 + ], + "score": 1.2987509965896606, + "correct": 0 + }, + { + "img": "s230.jpg", + "roi": [ + 141.38348388671875, + 181.17869567871094, + 294.987060546875, + 645.2957763671875, + 0.9999076128005981 + ], + "score": 1.2614163160324097, + "correct": 0 + }, + { + "img": "s230.jpg", + "roi": [ + 231.43260192871094, + 149.32029724121094, + 392.458251953125, + 639.1141357421875, + 0.9993966817855835 + ], + "score": 1.098451018333435, + "correct": 1 + }, + { + "img": "s9794.jpg", + "roi": [ + 385.2708435058594, + 215.7130126953125, + 436.57830810546875, + 364.130126953125, + 0.9983742237091064 + ], + "score": 0.910271942615509, + "correct": 0 + }, + { + "img": "s6415.jpg", + "roi": [ + 304.7286376953125, + 227.94378662109375, + 402.298095703125, + 502.18817138671875, + 0.9994937181472778 + ], + "score": 0.8486686944961548, + "correct": 0 + }, + { + "img": "s5704.jpg", + "roi": [ + 242.8607177734375, + 49.04417037963867, + 423.36895751953125, + 571.2343139648438, + 0.9998984336853027 + ], + "score": 0.7998012900352478, + "correct": 0 + }, + { + "img": "s229.jpg", + "roi": [ + 94.21359252929688, + 128.92662048339844, + 198.688232421875, + 431.76654052734375, + 0.9998284578323364 + ], + "score": 0.7723857164382935, + "correct": 1 + }, + { + "img": "s2114.jpg", + "roi": [ + 369.2985534667969, + 158.28221130371094, + 433.1851806640625, + 370.10296630859375, + 0.9979404807090759 + ], + "score": 0.7353084683418274, + "correct": 0 + }, + { + "img": "s6469.jpg", + "roi": [ + 336.572998046875, + 216.00633239746094, + 370.77215576171875, + 329.5892639160156, + 0.9954857230186462 + ], + "score": 0.7084585428237915, + "correct": 0 + }, + { + "img": "s6469.jpg", + "roi": [ + 304.6368103027344, + 225.7271728515625, + 356.9368591308594, + 401.51220703125, + 0.9968897700309753 + ], + "score": 0.6812519431114197, + "correct": 0 + } + ] + }, + { + "query_img": "s3945.jpg", + "query_roi": [ + 337.0, + 208.0, + 377.0, + 316.0 + ], + "query_gt": [ + { + "img": "s3944.jpg", + "roi": [ + 447.0, + 82.0, + 570.0, + 411.0 + ] + } + ], + "gallery": [ + { + "img": "s9061.jpg", + "roi": [ + 179.88705444335938, + 322.0597229003906, + 217.3837890625, + 415.88690185546875, + 0.9984966516494751 + ], + "score": 1.0114259719848633, + "correct": 0 + }, + { + "img": "s9358.jpg", + "roi": [ + 273.11602783203125, + 214.12112426757812, + 297.260986328125, + 293.1484375, + 0.9934689998626709 + ], + "score": 0.9542129039764404, + "correct": 0 + }, + { + "img": "s9061.jpg", + "roi": [ + 388.6929931640625, + 312.0986022949219, + 429.89215087890625, + 435.7292175292969, + 0.9994596838951111 + ], + "score": 0.9378663897514343, + "correct": 0 + }, + { + "img": "s9655.jpg", + "roi": [ + 551.648193359375, + 445.20379638671875, + 575.1986694335938, + 516.0863037109375, + 0.976115882396698 + ], + "score": 0.9029213786125183, + "correct": 0 + }, + { + "img": "s2454.jpg", + "roi": [ + 397.8228454589844, + 247.8268280029297, + 411.46087646484375, + 292.50860595703125, + 0.8971186280250549 + ], + "score": 0.8562574982643127, + "correct": 0 + }, + { + "img": "s9655.jpg", + "roi": [ + 405.47747802734375, + 146.6621551513672, + 430.722412109375, + 235.4376678466797, + 0.9952510595321655 + ], + "score": 0.8560092449188232, + "correct": 0 + }, + { + "img": "s2454.jpg", + "roi": [ + 389.21612548828125, + 249.13937377929688, + 402.67095947265625, + 292.16552734375, + 0.97258061170578 + ], + "score": 0.8461918234825134, + "correct": 0 + }, + { + "img": "s5257.jpg", + "roi": [ + 376.6815185546875, + 101.0477523803711, + 434.71148681640625, + 272.75128173828125, + 0.9996391534805298 + ], + "score": 0.8378964066505432, + "correct": 0 + }, + { + "img": "s9541.jpg", + "roi": [ + 244.72015380859375, + 315.9446716308594, + 272.6368713378906, + 415.3086853027344, + 0.9760067462921143 + ], + "score": 0.8364381194114685, + "correct": 0 + }, + { + "img": "s2280.jpg", + "roi": [ + 332.3031005859375, + 173.026123046875, + 359.8149108886719, + 269.2405700683594, + 0.910877525806427 + ], + "score": 0.8277385830879211, + "correct": 0 + } + ] + }, + { + "query_img": "s865.jpg", + "query_roi": [ + 356.0, + 67.0, + 462.0, + 410.0 + ], + "query_gt": [ + { + "img": "s866.jpg", + "roi": [ + 366.0, + 67.0, + 493.0, + 576.0 + ] + } + ], + "gallery": [ + { + "img": "s866.jpg", + "roi": [ + 267.1806335449219, + 65.5008544921875, + 444.49981689453125, + 553.1358642578125, + 0.9991639852523804 + ], + "score": 1.3074272871017456, + "correct": 0 + }, + { + "img": "s4057.jpg", + "roi": [ + 405.4322509765625, + 416.11993408203125, + 486.5836486816406, + 644.0125122070312, + 0.9994613528251648 + ], + "score": 0.8793368339538574, + "correct": 0 + }, + { + "img": "s9483.jpg", + "roi": [ + 200.4803924560547, + 100.96099090576172, + 311.1653747558594, + 409.8234558105469, + 0.9997584223747253 + ], + "score": 0.7332836389541626, + "correct": 0 + }, + { + "img": "s5182.jpg", + "roi": [ + 463.7734069824219, + 100.5230712890625, + 600.0, + 663.4270629882812, + 0.9980650544166565 + ], + "score": 0.6472694873809814, + "correct": 0 + }, + { + "img": "s3067.jpg", + "roi": [ + 18.19246482849121, + 57.085872650146484, + 62.70713424682617, + 195.31640625, + 0.9980292916297913 + ], + "score": 0.6249074935913086, + "correct": 0 + }, + { + "img": "s924.jpg", + "roi": [ + 215.8778533935547, + 51.27642822265625, + 397.7021484375, + 514.1417236328125, + 0.999795138835907 + ], + "score": 0.6193863749504089, + "correct": 0 + }, + { + "img": "s1613.jpg", + "roi": [ + 314.97998046875, + 188.2066650390625, + 408.13812255859375, + 432.2214050292969, + 0.9998433589935303 + ], + "score": 0.6112057566642761, + "correct": 0 + }, + { + "img": "s9577.jpg", + "roi": [ + 27.956119537353516, + 41.2451171875, + 83.57615661621094, + 225.38623046875, + 0.9632351994514465 + ], + "score": 0.5837991833686829, + "correct": 0 + }, + { + "img": "s9483.jpg", + "roi": [ + 466.7247314453125, + 115.74334716796875, + 552.0377197265625, + 365.98040771484375, + 0.999813973903656 + ], + "score": 0.5829144716262817, + "correct": 0 + }, + { + "img": "s9296.jpg", + "roi": [ + 522.1697387695312, + 197.64781188964844, + 557.8310546875, + 306.650146484375, + 0.9971639513969421 + ], + "score": 0.5671635270118713, + "correct": 0 + } + ] + }, + { + "query_img": "s4579.jpg", + "query_roi": [ + 708.0, + 263.0, + 744.0, + 361.0 + ], + "query_gt": [ + { + "img": "s4578.jpg", + "roi": [ + 634.0, + 286.0, + 675.0, + 395.0 + ] + } + ], + "gallery": [ + { + "img": "s2201.jpg", + "roi": [ + 520.5897827148438, + 184.65402221679688, + 560.4227905273438, + 314.8953857421875, + 0.9966829419136047 + ], + "score": 0.8549618124961853, + "correct": 0 + }, + { + "img": "s4578.jpg", + "roi": [ + 16.456600189208984, + 345.3682556152344, + 52.86881637573242, + 447.34051513671875, + 0.9984211921691895 + ], + "score": 0.8514918684959412, + "correct": 0 + }, + { + "img": "s2893.jpg", + "roi": [ + 764.1112060546875, + 345.65179443359375, + 784.5986328125, + 404.6121520996094, + 0.971954882144928 + ], + "score": 0.7908415794372559, + "correct": 0 + }, + { + "img": "s2893.jpg", + "roi": [ + 628.6531982421875, + 175.8744354248047, + 647.1001586914062, + 227.2305145263672, + 0.9859181642532349 + ], + "score": 0.7907307147979736, + "correct": 0 + }, + { + "img": "s7314.jpg", + "roi": [ + 232.56649780273438, + 133.5518798828125, + 285.88482666015625, + 327.1344909667969, + 0.9912508726119995 + ], + "score": 0.7688579559326172, + "correct": 0 + }, + { + "img": "s9372.jpg", + "roi": [ + 63.66276168823242, + 111.20543670654297, + 86.05785369873047, + 176.81431579589844, + 0.9948754906654358 + ], + "score": 0.7532860040664673, + "correct": 0 + }, + { + "img": "s13211.jpg", + "roi": [ + 282.0643310546875, + 152.00418090820312, + 317.4539794921875, + 276.31414794921875, + 0.9782894253730774 + ], + "score": 0.748253345489502, + "correct": 0 + }, + { + "img": "s9117.jpg", + "roi": [ + 476.6236572265625, + 270.9082336425781, + 497.6536865234375, + 342.7763671875, + 0.989024817943573 + ], + "score": 0.7463358640670776, + "correct": 0 + }, + { + "img": "s2009.jpg", + "roi": [ + 225.36228942871094, + 207.32627868652344, + 245.01846313476562, + 265.2117919921875, + 0.9220021367073059 + ], + "score": 0.742692232131958, + "correct": 0 + }, + { + "img": "s2696.jpg", + "roi": [ + 455.74371337890625, + 205.0963592529297, + 489.46856689453125, + 322.0914306640625, + 0.9810030460357666 + ], + "score": 0.7135198712348938, + "correct": 0 + } + ] + }, + { + "query_img": "s3593.jpg", + "query_roi": [ + 373.0, + 212.0, + 411.0, + 314.0 + ], + "query_gt": [ + { + "img": "s3592.jpg", + "roi": [ + 393.0, + 219.0, + 428.0, + 313.0 + ] + } + ], + "gallery": [ + { + "img": "s2074.jpg", + "roi": [ + 89.8431396484375, + 357.14111328125, + 145.14669799804688, + 513.960205078125, + 0.9992877840995789 + ], + "score": 0.9815204739570618, + "correct": 0 + }, + { + "img": "s5246.jpg", + "roi": [ + 462.4111022949219, + 155.80404663085938, + 502.5790710449219, + 264.07940673828125, + 0.9997138381004333 + ], + "score": 0.9511340856552124, + "correct": 0 + }, + { + "img": "s3592.jpg", + "roi": [ + 371.3072204589844, + 218.70574951171875, + 404.74237060546875, + 314.1960754394531, + 0.9975413084030151 + ], + "score": 0.8578668236732483, + "correct": 0 + }, + { + "img": "s6829.jpg", + "roi": [ + 353.1014404296875, + 502.8172607421875, + 424.3409423828125, + 680.9758911132812, + 0.9989461302757263 + ], + "score": 0.8284382224082947, + "correct": 0 + }, + { + "img": "s2782.jpg", + "roi": [ + 211.1763153076172, + 266.9818115234375, + 232.15219116210938, + 330.1149597167969, + 0.9907930493354797 + ], + "score": 0.8158612847328186, + "correct": 0 + }, + { + "img": "s2561.jpg", + "roi": [ + 396.1346130371094, + 176.71238708496094, + 434.1468200683594, + 292.80535888671875, + 0.9644997119903564 + ], + "score": 0.8110232949256897, + "correct": 0 + }, + { + "img": "s220.jpg", + "roi": [ + 340.370849609375, + 308.22735595703125, + 353.9007263183594, + 346.7736511230469, + 0.9886237382888794 + ], + "score": 0.8047494888305664, + "correct": 0 + }, + { + "img": "s6638.jpg", + "roi": [ + 142.57728576660156, + 100.65888977050781, + 237.8603973388672, + 356.0614013671875, + 0.9985184073448181 + ], + "score": 0.8024981617927551, + "correct": 0 + }, + { + "img": "s6621.jpg", + "roi": [ + 403.09429931640625, + 359.094970703125, + 491.32696533203125, + 586.7091674804688, + 0.9994315505027771 + ], + "score": 0.7968029379844666, + "correct": 0 + }, + { + "img": "s220.jpg", + "roi": [ + 361.0343933105469, + 303.0810546875, + 378.6711120605469, + 359.281982421875, + 0.9937499165534973 + ], + "score": 0.7858277559280396, + "correct": 0 + } + ] + }, + { + "query_img": "s11579.jpg", + "query_roi": [ + 38.0, + 262.0, + 73.0, + 355.0 + ], + "query_gt": [ + { + "img": "s11578.jpg", + "roi": [ + 175.0, + 293.0, + 204.0, + 371.0 + ] + } + ], + "gallery": [ + { + "img": "s7105.jpg", + "roi": [ + 448.6680908203125, + 128.1604766845703, + 546.9785766601562, + 395.90338134765625, + 0.9996753931045532 + ], + "score": 1.0593678951263428, + "correct": 0 + }, + { + "img": "s2721.jpg", + "roi": [ + 96.18657684326172, + 116.05979919433594, + 125.32555389404297, + 202.32408142089844, + 0.9974019527435303 + ], + "score": 1.042844295501709, + "correct": 0 + }, + { + "img": "s12507.jpg", + "roi": [ + 298.0879211425781, + 289.8109130859375, + 318.6189880371094, + 346.8016662597656, + 0.999197781085968 + ], + "score": 0.9712591767311096, + "correct": 0 + }, + { + "img": "s7105.jpg", + "roi": [ + 134.8631591796875, + 130.86865234375, + 192.01129150390625, + 292.5397644042969, + 0.9996225833892822 + ], + "score": 0.9060330986976624, + "correct": 0 + }, + { + "img": "s11578.jpg", + "roi": [ + 180.0137176513672, + 294.235595703125, + 201.1750030517578, + 358.07147216796875, + 0.9853841662406921 + ], + "score": 0.9052989482879639, + "correct": 1 + }, + { + "img": "s11954.jpg", + "roi": [ + 267.7655029296875, + 216.60556030273438, + 302.65069580078125, + 342.47698974609375, + 0.9992557168006897 + ], + "score": 0.8754554986953735, + "correct": 0 + }, + { + "img": "s5256.jpg", + "roi": [ + 250.36654663085938, + 107.93624114990234, + 287.17919921875, + 221.39596557617188, + 0.9930711388587952 + ], + "score": 0.843586266040802, + "correct": 0 + }, + { + "img": "s3923.jpg", + "roi": [ + 57.68711471557617, + 35.170082092285156, + 112.91258239746094, + 194.8658447265625, + 0.9981521964073181 + ], + "score": 0.8370363116264343, + "correct": 0 + }, + { + "img": "s7105.jpg", + "roi": [ + 384.6805419921875, + 91.69413757324219, + 474.6562194824219, + 399.0445556640625, + 0.9961987137794495 + ], + "score": 0.8279901146888733, + "correct": 0 + }, + { + "img": "s13727.jpg", + "roi": [ + 127.05652618408203, + 136.45245361328125, + 149.79933166503906, + 196.47052001953125, + 0.9412463903427124 + ], + "score": 0.8061947226524353, + "correct": 0 + } + ] + }, + { + "query_img": "s12437.jpg", + "query_roi": [ + 185.0, + 399.0, + 228.0, + 514.0 + ], + "query_gt": [ + { + "img": "s12436.jpg", + "roi": [ + 265.0, + 374.0, + 304.0, + 480.0 + ] + } + ], + "gallery": [ + { + "img": "s10843.jpg", + "roi": [ + 306.71759033203125, + 66.81892395019531, + 330.60736083984375, + 145.51332092285156, + 0.9967052340507507 + ], + "score": 0.8686433434486389, + "correct": 0 + }, + { + "img": "s10990.jpg", + "roi": [ + 588.2838134765625, + 189.39974975585938, + 605.0047607421875, + 234.67593383789062, + 0.8587291240692139 + ], + "score": 0.7139784097671509, + "correct": 0 + }, + { + "img": "s11745.jpg", + "roi": [ + 200.09461975097656, + 277.69464111328125, + 248.95347595214844, + 408.7591552734375, + 0.9994462132453918 + ], + "score": 0.708946168422699, + "correct": 0 + }, + { + "img": "s10908.jpg", + "roi": [ + 290.6938171386719, + 194.0406036376953, + 367.9804992675781, + 438.4859313964844, + 0.9994955062866211 + ], + "score": 0.7033756375312805, + "correct": 0 + }, + { + "img": "s10049.jpg", + "roi": [ + 440.04046630859375, + 186.8641815185547, + 468.3924255371094, + 276.85498046875, + 0.996364414691925 + ], + "score": 0.6937963366508484, + "correct": 0 + }, + { + "img": "s11241.jpg", + "roi": [ + 546.9171142578125, + 142.63015747070312, + 597.3836059570312, + 313.7942199707031, + 0.9992901086807251 + ], + "score": 0.6843379735946655, + "correct": 0 + }, + { + "img": "s10908.jpg", + "roi": [ + 594.534423828125, + 176.1549072265625, + 639.5057373046875, + 309.5779113769531, + 0.982353925704956 + ], + "score": 0.6818337440490723, + "correct": 0 + }, + { + "img": "s10370.jpg", + "roi": [ + 375.364501953125, + 253.10092163085938, + 434.7073669433594, + 420.795654296875, + 0.9994021654129028 + ], + "score": 0.6677980422973633, + "correct": 0 + }, + { + "img": "s7048.jpg", + "roi": [ + 517.500732421875, + 137.3181610107422, + 551.9331665039062, + 227.51806640625, + 0.9969250559806824 + ], + "score": 0.6460965275764465, + "correct": 0 + }, + { + "img": "s12132.jpg", + "roi": [ + 153.53041076660156, + 433.2358093261719, + 222.1822509765625, + 617.876220703125, + 0.9997846484184265 + ], + "score": 0.6428513526916504, + "correct": 0 + } + ] + }, + { + "query_img": "s6513.jpg", + "query_roi": [ + 180.0, + 299.0, + 225.0, + 421.0 + ], + "query_gt": [ + { + "img": "s6512.jpg", + "roi": [ + 271.0, + 287.0, + 309.0, + 390.0 + ] + } + ], + "gallery": [ + { + "img": "s6512.jpg", + "roi": [ + 185.86569213867188, + 284.0435485839844, + 208.4891815185547, + 365.8511962890625, + 0.9959521293640137 + ], + "score": 1.0098888874053955, + "correct": 0 + }, + { + "img": "s6512.jpg", + "roi": [ + 276.1377868652344, + 287.4747314453125, + 306.7591552734375, + 386.88995361328125, + 0.9957326054573059 + ], + "score": 1.007575511932373, + "correct": 1 + }, + { + "img": "s6512.jpg", + "roi": [ + 161.31802368164062, + 281.42059326171875, + 187.87046813964844, + 365.5435791015625, + 0.9979439377784729 + ], + "score": 0.9790947437286377, + "correct": 0 + }, + { + "img": "s6825.jpg", + "roi": [ + 179.3836669921875, + 313.3065185546875, + 231.90988159179688, + 447.5131530761719, + 0.9916139841079712 + ], + "score": 0.9370847344398499, + "correct": 0 + }, + { + "img": "s6512.jpg", + "roi": [ + 260.4213562011719, + 285.434814453125, + 284.14056396484375, + 363.95697021484375, + 0.9942299127578735 + ], + "score": 0.8802809119224548, + "correct": 0 + }, + { + "img": "s1960.jpg", + "roi": [ + 47.962886810302734, + 161.5791473388672, + 98.87715911865234, + 325.32464599609375, + 0.9777830243110657 + ], + "score": 0.812947154045105, + "correct": 0 + }, + { + "img": "s6512.jpg", + "roi": [ + 302.2495422363281, + 280.23138427734375, + 319.44671630859375, + 336.3772888183594, + 0.930370569229126 + ], + "score": 0.8070135712623596, + "correct": 0 + }, + { + "img": "s5962.jpg", + "roi": [ + 336.8274841308594, + 134.9246826171875, + 438.0132751464844, + 408.7070007324219, + 0.9996404647827148 + ], + "score": 0.7929242253303528, + "correct": 0 + }, + { + "img": "s6512.jpg", + "roi": [ + 201.86892700195312, + 276.2181396484375, + 228.36453247070312, + 366.5557556152344, + 0.9964281916618347 + ], + "score": 0.7704745531082153, + "correct": 0 + }, + { + "img": "s2136.jpg", + "roi": [ + 357.6805114746094, + 183.37841796875, + 400.544677734375, + 313.5022888183594, + 0.9986178874969482 + ], + "score": 0.7702836990356445, + "correct": 0 + } + ] + }, + { + "query_img": "s4804.jpg", + "query_roi": [ + 297.0, + 103.0, + 435.0, + 471.0 + ], + "query_gt": [ + { + "img": "s4803.jpg", + "roi": [ + 209.0, + 204.0, + 268.0, + 362.0 + ] + } + ], + "gallery": [ + { + "img": "s4803.jpg", + "roi": [ + 258.45880126953125, + 209.25396728515625, + 311.7811279296875, + 351.9143981933594, + 0.9991123080253601 + ], + "score": 1.0916935205459595, + "correct": 0 + }, + { + "img": "s2108.jpg", + "roi": [ + 191.2894287109375, + 238.29722595214844, + 228.143798828125, + 339.93133544921875, + 0.9994845390319824 + ], + "score": 0.8901126384735107, + "correct": 0 + }, + { + "img": "s9863.jpg", + "roi": [ + 334.69012451171875, + 164.82115173339844, + 366.0322265625, + 255.82318115234375, + 0.9976377487182617 + ], + "score": 0.8792781233787537, + "correct": 0 + }, + { + "img": "s10638.jpg", + "roi": [ + 213.92747497558594, + 164.15171813964844, + 302.47332763671875, + 388.4832458496094, + 0.9989038705825806 + ], + "score": 0.8503975868225098, + "correct": 0 + }, + { + "img": "s10348.jpg", + "roi": [ + 337.0762634277344, + 229.07778930664062, + 364.99359130859375, + 308.3763732910156, + 0.9913709163665771 + ], + "score": 0.824012279510498, + "correct": 0 + }, + { + "img": "s4803.jpg", + "roi": [ + 210.8673553466797, + 204.4437255859375, + 267.3125, + 361.6366882324219, + 0.9954578876495361 + ], + "score": 0.8167080283164978, + "correct": 1 + }, + { + "img": "s15881.jpg", + "roi": [ + 283.4754638671875, + 103.66405487060547, + 342.2828369140625, + 271.00299072265625, + 0.9991838335990906 + ], + "score": 0.7167544364929199, + "correct": 0 + }, + { + "img": "s1519.jpg", + "roi": [ + 35.81266784667969, + 121.03244018554688, + 95.44427490234375, + 298.81585693359375, + 0.997849702835083 + ], + "score": 0.6927300691604614, + "correct": 0 + }, + { + "img": "s10348.jpg", + "roi": [ + 177.6254119873047, + 282.7149353027344, + 213.65283203125, + 381.14337158203125, + 0.9994076490402222 + ], + "score": 0.6826762557029724, + "correct": 0 + }, + { + "img": "s10066.jpg", + "roi": [ + 99.85353088378906, + 239.35064697265625, + 145.47914123535156, + 362.04949951171875, + 0.9968959093093872 + ], + "score": 0.6818075180053711, + "correct": 0 + } + ] + }, + { + "query_img": "s5145.jpg", + "query_roi": [ + 354.0, + 184.0, + 584.0, + 800.0 + ], + "query_gt": [ + { + "img": "s5146.jpg", + "roi": [ + 225.0, + 202.0, + 353.0, + 572.0 + ] + } + ], + "gallery": [ + { + "img": "s858.jpg", + "roi": [ + 72.4785385131836, + 0.0, + 265.0872497558594, + 594.8917846679688, + 0.9995076656341553 + ], + "score": 1.0152108669281006, + "correct": 0 + }, + { + "img": "s5146.jpg", + "roi": [ + 227.78733825683594, + 199.0194091796875, + 354.3606872558594, + 565.2861328125, + 0.998426079750061 + ], + "score": 0.9925869107246399, + "correct": 1 + }, + { + "img": "s5084.jpg", + "roi": [ + 17.745864868164062, + 147.74346923828125, + 84.11483764648438, + 336.4036865234375, + 0.9991477727890015 + ], + "score": 0.7897464036941528, + "correct": 0 + }, + { + "img": "s9657.jpg", + "roi": [ + 193.48577880859375, + 124.57710266113281, + 260.74481201171875, + 317.5736083984375, + 0.9996672868728638 + ], + "score": 0.7338382601737976, + "correct": 0 + }, + { + "img": "s453.jpg", + "roi": [ + 3.7425715923309326, + 104.15869140625, + 61.83953857421875, + 341.460693359375, + 0.9952951073646545 + ], + "score": 0.7257562875747681, + "correct": 0 + }, + { + "img": "s7401.jpg", + "roi": [ + 644.3558349609375, + 146.06082153320312, + 686.3024291992188, + 281.7032470703125, + 0.9957888722419739 + ], + "score": 0.7016324400901794, + "correct": 0 + }, + { + "img": "s2718.jpg", + "roi": [ + 173.76937866210938, + 140.2103271484375, + 248.466064453125, + 362.9892578125, + 0.9994988441467285 + ], + "score": 0.6948723196983337, + "correct": 0 + }, + { + "img": "s5490.jpg", + "roi": [ + 279.1629333496094, + 177.99237060546875, + 465.55560302734375, + 690.7982788085938, + 0.9997171759605408 + ], + "score": 0.6794018149375916, + "correct": 0 + }, + { + "img": "s8360.jpg", + "roi": [ + 512.0606689453125, + 0.919455349445343, + 588.0331420898438, + 233.69522094726562, + 0.9995837807655334 + ], + "score": 0.6733354926109314, + "correct": 0 + }, + { + "img": "s2718.jpg", + "roi": [ + 321.00762939453125, + 163.09657287597656, + 365.5267333984375, + 305.2857666015625, + 0.9991773962974548 + ], + "score": 0.6611056327819824, + "correct": 0 + } + ] + }, + { + "query_img": "s4596.jpg", + "query_roi": [ + 175.0, + 147.0, + 251.0, + 351.0 + ], + "query_gt": [ + { + "img": "s4679.jpg", + "roi": [ + 434.0, + 274.0, + 467.0, + 363.0 + ] + } + ], + "gallery": [ + { + "img": "s7134.jpg", + "roi": [ + 384.8321533203125, + 179.0397186279297, + 436.3109130859375, + 332.539306640625, + 0.9982436895370483 + ], + "score": 0.83823561668396, + "correct": 0 + }, + { + "img": "s9792.jpg", + "roi": [ + 259.3902282714844, + 190.28457641601562, + 311.6869812011719, + 338.007568359375, + 0.9993851184844971 + ], + "score": 0.8248474597930908, + "correct": 0 + }, + { + "img": "s12378.jpg", + "roi": [ + 34.28107452392578, + 285.537353515625, + 63.19437789916992, + 370.47869873046875, + 0.998479425907135 + ], + "score": 0.7915262579917908, + "correct": 0 + }, + { + "img": "s4679.jpg", + "roi": [ + 359.08258056640625, + 271.94488525390625, + 392.6088562011719, + 372.55364990234375, + 0.9993394017219543 + ], + "score": 0.7671185731887817, + "correct": 0 + }, + { + "img": "s4793.jpg", + "roi": [ + 40.7103385925293, + 110.03306579589844, + 133.85610961914062, + 368.2217712402344, + 0.9992092251777649 + ], + "score": 0.7594617009162903, + "correct": 0 + }, + { + "img": "s4521.jpg", + "roi": [ + 199.2646942138672, + 252.04527282714844, + 253.5286865234375, + 408.5922546386719, + 0.9996637105941772 + ], + "score": 0.7166914343833923, + "correct": 0 + }, + { + "img": "s6864.jpg", + "roi": [ + 355.0237731933594, + 261.14654541015625, + 400.22259521484375, + 384.7080993652344, + 0.999424934387207 + ], + "score": 0.6876877546310425, + "correct": 0 + }, + { + "img": "s17980.jpg", + "roi": [ + 566.9059448242188, + 91.45800018310547, + 610.5057983398438, + 233.04026794433594, + 0.9993821382522583 + ], + "score": 0.6869526505470276, + "correct": 0 + }, + { + "img": "s9792.jpg", + "roi": [ + 1.2241694927215576, + 168.80567932128906, + 84.90020751953125, + 438.672607421875, + 0.9996765851974487 + ], + "score": 0.6855123043060303, + "correct": 0 + }, + { + "img": "s4793.jpg", + "roi": [ + 669.814208984375, + 130.79501342773438, + 702.578857421875, + 235.6839599609375, + 0.9977120161056519 + ], + "score": 0.6843610405921936, + "correct": 0 + } + ] + }, + { + "query_img": "s10400.jpg", + "query_roi": [ + 301.0, + 254.0, + 316.0, + 296.0 + ], + "query_gt": [ + { + "img": "s10401.jpg", + "roi": [ + 226.0, + 392.0, + 289.0, + 572.0 + ] + }, + { + "img": "s10402.jpg", + "roi": [ + 182.0, + 316.0, + 290.0, + 604.0 + ] + }, + { + "img": "s10403.jpg", + "roi": [ + 229.0, + 110.0, + 402.0, + 581.0 + ] + }, + { + "img": "s10404.jpg", + "roi": [ + 220.0, + 212.0, + 305.0, + 438.0 + ] + }, + { + "img": "s10405.jpg", + "roi": [ + 267.0, + 207.0, + 311.0, + 326.0 + ] + } + ], + "gallery": [ + { + "img": "s3478.jpg", + "roi": [ + 344.90533447265625, + 193.0203857421875, + 362.78497314453125, + 242.1468963623047, + 0.9958533048629761 + ], + "score": 1.249606728553772, + "correct": 0 + }, + { + "img": "s10184.jpg", + "roi": [ + 78.34065246582031, + 310.7213134765625, + 98.93670654296875, + 368.581787109375, + 0.9921746850013733 + ], + "score": 1.0672812461853027, + "correct": 0 + }, + { + "img": "s12377.jpg", + "roi": [ + 38.13224411010742, + 314.7932434082031, + 50.68717575073242, + 349.4796447753906, + 0.9965331554412842 + ], + "score": 1.0527777671813965, + "correct": 0 + }, + { + "img": "s10402.jpg", + "roi": [ + 49.44975280761719, + 327.6309509277344, + 74.12478637695312, + 393.30804443359375, + 0.9936360120773315 + ], + "score": 1.0197237730026245, + "correct": 0 + }, + { + "img": "s10401.jpg", + "roi": [ + 430.3547058105469, + 255.02972412109375, + 446.3854675292969, + 295.583984375, + 0.9878836274147034 + ], + "score": 0.9925798773765564, + "correct": 0 + }, + { + "img": "s10405.jpg", + "roi": [ + 270.54656982421875, + 203.8838348388672, + 309.5733337402344, + 325.88079833984375, + 0.9992859959602356 + ], + "score": 0.9712077379226685, + "correct": 1 + }, + { + "img": "s10404.jpg", + "roi": [ + 429.12847900390625, + 204.44879150390625, + 442.12042236328125, + 239.17803955078125, + 0.986451268196106 + ], + "score": 0.9660530090332031, + "correct": 0 + }, + { + "img": "s10404.jpg", + "roi": [ + 321.4483947753906, + 206.7972412109375, + 336.3205871582031, + 248.1229248046875, + 0.9885317087173462 + ], + "score": 0.9371945261955261, + "correct": 0 + }, + { + "img": "s10402.jpg", + "roi": [ + 181.14024353027344, + 317.9631042480469, + 287.6081848144531, + 597.1319580078125, + 0.9998148083686829 + ], + "score": 0.9228498339653015, + "correct": 1 + }, + { + "img": "s11816.jpg", + "roi": [ + 175.73919677734375, + 381.22869873046875, + 198.01885986328125, + 443.6636047363281, + 0.9981244206428528 + ], + "score": 0.9123464226722717, + "correct": 0 + } + ] + }, + { + "query_img": "s4495.jpg", + "query_roi": [ + 312.0, + 229.0, + 405.0, + 478.0 + ], + "query_gt": [ + { + "img": "s4496.jpg", + "roi": [ + 251.0, + 162.0, + 357.0, + 445.0 + ] + } + ], + "gallery": [ + { + "img": "s3741.jpg", + "roi": [ + 147.77639770507812, + 102.52388763427734, + 241.2931365966797, + 332.47540283203125, + 0.9997708201408386 + ], + "score": 0.9000755548477173, + "correct": 0 + }, + { + "img": "s14873.jpg", + "roi": [ + 218.43307495117188, + 95.20658874511719, + 304.944091796875, + 359.3166809082031, + 0.9939649701118469 + ], + "score": 0.7623454332351685, + "correct": 0 + }, + { + "img": "s9795.jpg", + "roi": [ + 227.25010681152344, + 170.45835876464844, + 251.09368896484375, + 242.36892700195312, + 0.9935896396636963 + ], + "score": 0.7398943305015564, + "correct": 0 + }, + { + "img": "s12029.jpg", + "roi": [ + 350.25469970703125, + 280.2154235839844, + 396.8749084472656, + 403.2945861816406, + 0.9995386600494385 + ], + "score": 0.718919038772583, + "correct": 0 + }, + { + "img": "s4788.jpg", + "roi": [ + 100.67486572265625, + 301.461669921875, + 140.14352416992188, + 411.73626708984375, + 0.9995805621147156 + ], + "score": 0.6955774426460266, + "correct": 0 + }, + { + "img": "s4496.jpg", + "roi": [ + 253.2913055419922, + 163.4151611328125, + 346.8427734375, + 438.6934814453125, + 0.9154231548309326 + ], + "score": 0.6528956890106201, + "correct": 1 + }, + { + "img": "s4781.jpg", + "roi": [ + 199.2637939453125, + 139.68878173828125, + 334.2607421875, + 488.4695739746094, + 0.9998109936714172 + ], + "score": 0.6525076031684875, + "correct": 0 + }, + { + "img": "s11127.jpg", + "roi": [ + 74.28568267822266, + 92.4621353149414, + 118.06836700439453, + 215.35955810546875, + 0.9991496801376343 + ], + "score": 0.6387219429016113, + "correct": 0 + }, + { + "img": "s15162.jpg", + "roi": [ + 250.25201416015625, + 100.90951538085938, + 365.35711669921875, + 440.0713195800781, + 0.9997610449790955 + ], + "score": 0.6382454037666321, + "correct": 0 + }, + { + "img": "s12524.jpg", + "roi": [ + 519.6436157226562, + 189.60682678222656, + 571.0682373046875, + 350.40655517578125, + 0.9997828602790833 + ], + "score": 0.6347891688346863, + "correct": 0 + } + ] + }, + { + "query_img": "s2019.jpg", + "query_roi": [ + 183.0, + 190.0, + 244.0, + 369.0 + ], + "query_gt": [ + { + "img": "s2018.jpg", + "roi": [ + 20.0, + 207.0, + 149.0, + 583.0 + ] + } + ], + "gallery": [ + { + "img": "s2823.jpg", + "roi": [ + 388.6396484375, + 150.6812744140625, + 426.2933044433594, + 257.066162109375, + 0.9993865489959717 + ], + "score": 1.1377944946289062, + "correct": 0 + }, + { + "img": "s2018.jpg", + "roi": [ + 22.364482879638672, + 208.15159606933594, + 155.77212524414062, + 574.24853515625, + 0.9998281002044678 + ], + "score": 1.10927152633667, + "correct": 1 + }, + { + "img": "s16043.jpg", + "roi": [ + 466.7746276855469, + 132.7199249267578, + 551.322021484375, + 391.73388671875, + 0.9998669624328613 + ], + "score": 1.0313994884490967, + "correct": 0 + }, + { + "img": "s2244.jpg", + "roi": [ + 554.4780883789062, + 244.43023681640625, + 595.553955078125, + 359.19134521484375, + 0.9990308284759521 + ], + "score": 1.0009864568710327, + "correct": 0 + }, + { + "img": "s7419.jpg", + "roi": [ + 440.4707946777344, + 122.70539093017578, + 509.59027099609375, + 312.48077392578125, + 0.9996021389961243 + ], + "score": 0.8692384958267212, + "correct": 0 + }, + { + "img": "s2696.jpg", + "roi": [ + 699.1943359375, + 182.8504638671875, + 781.4005737304688, + 434.4735107421875, + 0.9991605281829834 + ], + "score": 0.8438774347305298, + "correct": 0 + }, + { + "img": "s2150.jpg", + "roi": [ + 127.58831024169922, + 172.7142791748047, + 185.3640594482422, + 359.01080322265625, + 0.9977236390113831 + ], + "score": 0.8430956602096558, + "correct": 0 + }, + { + "img": "s13147.jpg", + "roi": [ + 365.82049560546875, + 74.76971435546875, + 464.69451904296875, + 405.6900939941406, + 0.9992058873176575 + ], + "score": 0.8214057683944702, + "correct": 0 + }, + { + "img": "s16052.jpg", + "roi": [ + 282.4310302734375, + 139.93247985839844, + 358.3807067871094, + 379.72894287109375, + 0.9995051622390747 + ], + "score": 0.8187729120254517, + "correct": 0 + }, + { + "img": "s7411.jpg", + "roi": [ + 417.99554443359375, + 146.70492553710938, + 448.9778137207031, + 246.02052307128906, + 0.9988549947738647 + ], + "score": 0.753603458404541, + "correct": 0 + } + ] + }, + { + "query_img": "s9273.jpg", + "query_roi": [ + 310.0, + 269.0, + 351.0, + 379.0 + ], + "query_gt": [ + { + "img": "s9274.jpg", + "roi": [ + 513.0, + 226.0, + 567.0, + 371.0 + ] + } + ], + "gallery": [ + { + "img": "s9274.jpg", + "roi": [ + 49.95808410644531, + 76.12320709228516, + 70.86312866210938, + 144.21885681152344, + 0.9462853074073792 + ], + "score": 1.2275649309158325, + "correct": 0 + }, + { + "img": "s9274.jpg", + "roi": [ + 229.72991943359375, + 166.38604736328125, + 270.0838623046875, + 293.7348937988281, + 0.998256504535675 + ], + "score": 1.0360746383666992, + "correct": 0 + }, + { + "img": "s9274.jpg", + "roi": [ + 58.362831115722656, + 44.741722106933594, + 92.11042785644531, + 145.07070922851562, + 0.9877661466598511 + ], + "score": 1.0127744674682617, + "correct": 0 + }, + { + "img": "s9274.jpg", + "roi": [ + 123.0361328125, + 106.01305389404297, + 156.04202270507812, + 210.94247436523438, + 0.9983154535293579 + ], + "score": 0.9913880825042725, + "correct": 0 + }, + { + "img": "s9274.jpg", + "roi": [ + 513.6259765625, + 226.90625, + 566.3970336914062, + 372.77471923828125, + 0.9993733763694763 + ], + "score": 0.9170363545417786, + "correct": 1 + }, + { + "img": "s6621.jpg", + "roi": [ + 226.95840454101562, + 208.25732421875, + 323.17938232421875, + 494.0784606933594, + 0.9998249411582947 + ], + "score": 0.8762392401695251, + "correct": 0 + }, + { + "img": "s827.jpg", + "roi": [ + 85.76188659667969, + 334.38507080078125, + 99.52793884277344, + 373.1412048339844, + 0.9257877469062805 + ], + "score": 0.8501656651496887, + "correct": 0 + }, + { + "img": "s9274.jpg", + "roi": [ + 3.6079025268554688, + 51.60968780517578, + 27.40536117553711, + 129.23855590820312, + 0.9725655913352966 + ], + "score": 0.8397025465965271, + "correct": 0 + }, + { + "img": "s4722.jpg", + "roi": [ + 442.21234130859375, + 223.67510986328125, + 464.9087829589844, + 290.64837646484375, + 0.9990147352218628 + ], + "score": 0.8392404913902283, + "correct": 0 + }, + { + "img": "s12350.jpg", + "roi": [ + 120.15473937988281, + 208.62765502929688, + 191.17129516601562, + 420.8132019042969, + 0.99955815076828 + ], + "score": 0.8227611184120178, + "correct": 0 + } + ] + }, + { + "query_img": "s6946.jpg", + "query_roi": [ + 169.0, + 189.0, + 227.0, + 345.0 + ], + "query_gt": [ + { + "img": "s6945.jpg", + "roi": [ + 139.0, + 200.0, + 210.0, + 383.0 + ] + } + ], + "gallery": [ + { + "img": "s6437.jpg", + "roi": [ + 303.45050048828125, + 218.16415405273438, + 382.5453796386719, + 448.80804443359375, + 0.999562680721283 + ], + "score": 1.1286907196044922, + "correct": 0 + }, + { + "img": "s6945.jpg", + "roi": [ + 137.13290405273438, + 168.24462890625, + 213.580322265625, + 378.87237548828125, + 0.9992974996566772 + ], + "score": 0.9278544187545776, + "correct": 1 + }, + { + "img": "s12133.jpg", + "roi": [ + 150.4536590576172, + 474.0918273925781, + 229.01036071777344, + 684.8355712890625, + 0.9994795918464661 + ], + "score": 0.8823685646057129, + "correct": 0 + }, + { + "img": "s2886.jpg", + "roi": [ + 337.1423034667969, + 57.84259033203125, + 414.6376647949219, + 276.0299377441406, + 0.9995655417442322 + ], + "score": 0.8502607345581055, + "correct": 0 + }, + { + "img": "s3744.jpg", + "roi": [ + 198.94305419921875, + 144.65940856933594, + 255.50308227539062, + 303.48876953125, + 0.9980693459510803 + ], + "score": 0.8149458169937134, + "correct": 0 + }, + { + "img": "s5965.jpg", + "roi": [ + 365.8427734375, + 139.3778533935547, + 397.6270446777344, + 241.00106811523438, + 0.9981086254119873 + ], + "score": 0.7982292175292969, + "correct": 0 + }, + { + "img": "s6836.jpg", + "roi": [ + 285.76422119140625, + 88.44085693359375, + 320.7205810546875, + 180.116455078125, + 0.9965760111808777 + ], + "score": 0.7231379747390747, + "correct": 0 + }, + { + "img": "s6836.jpg", + "roi": [ + 222.72885131835938, + 63.883201599121094, + 250.7896728515625, + 149.1910858154297, + 0.9979583024978638 + ], + "score": 0.6832095384597778, + "correct": 0 + }, + { + "img": "s12339.jpg", + "roi": [ + 88.9603271484375, + 155.16287231445312, + 143.00050354003906, + 349.9190979003906, + 0.9984924793243408 + ], + "score": 0.6706892251968384, + "correct": 0 + }, + { + "img": "s11754.jpg", + "roi": [ + 149.31793212890625, + 292.89666748046875, + 168.4557647705078, + 352.375244140625, + 0.9973427653312683 + ], + "score": 0.6652491092681885, + "correct": 0 + } + ] + }, + { + "query_img": "s4859.jpg", + "query_roi": [ + 522.0, + 211.0, + 593.0, + 402.0 + ], + "query_gt": [ + { + "img": "s4860.jpg", + "roi": [ + 215.0, + 186.0, + 281.0, + 362.0 + ] + } + ], + "gallery": [ + { + "img": "s170.jpg", + "roi": [ + 327.6103820800781, + 404.03271484375, + 402.0389099121094, + 611.8021240234375, + 0.9991612434387207 + ], + "score": 1.0947456359863281, + "correct": 0 + }, + { + "img": "s4860.jpg", + "roi": [ + 222.04965209960938, + 186.58074951171875, + 279.7711181640625, + 355.7337341308594, + 0.9992145299911499 + ], + "score": 0.9482967257499695, + "correct": 1 + }, + { + "img": "s36.jpg", + "roi": [ + 275.789306640625, + 201.34201049804688, + 389.0691833496094, + 534.2708740234375, + 0.9989495873451233 + ], + "score": 0.8306801319122314, + "correct": 0 + }, + { + "img": "s170.jpg", + "roi": [ + 3.0066680908203125, + 270.25225830078125, + 64.50126647949219, + 474.79437255859375, + 0.9996916055679321 + ], + "score": 0.7899774312973022, + "correct": 0 + }, + { + "img": "s10322.jpg", + "roi": [ + 259.732177734375, + 102.13201141357422, + 294.4285583496094, + 198.315673828125, + 0.9992833733558655 + ], + "score": 0.7690607905387878, + "correct": 0 + }, + { + "img": "s14812.jpg", + "roi": [ + 194.09739685058594, + 131.86691284179688, + 231.1835174560547, + 248.93106079101562, + 0.9995158910751343 + ], + "score": 0.7508007287979126, + "correct": 0 + }, + { + "img": "s7255.jpg", + "roi": [ + 279.4708557128906, + 140.89535522460938, + 320.4190979003906, + 249.9051513671875, + 0.9996102452278137 + ], + "score": 0.7454031705856323, + "correct": 0 + }, + { + "img": "s170.jpg", + "roi": [ + 191.61001586914062, + 0.0, + 213.35618591308594, + 59.682735443115234, + 0.9933784604072571 + ], + "score": 0.7412423491477966, + "correct": 0 + }, + { + "img": "s6918.jpg", + "roi": [ + 305.7982482910156, + 49.74781799316406, + 332.70794677734375, + 137.30833435058594, + 0.9930210709571838 + ], + "score": 0.7367704510688782, + "correct": 0 + }, + { + "img": "s9224.jpg", + "roi": [ + 593.2844848632812, + 273.80767822265625, + 615.9239501953125, + 342.70318603515625, + 0.990216851234436 + ], + "score": 0.7343246340751648, + "correct": 0 + } + ] + }, + { + "query_img": "s9884.jpg", + "query_roi": [ + 289.0, + 213.0, + 346.0, + 365.0 + ], + "query_gt": [ + { + "img": "s9885.jpg", + "roi": [ + 319.0, + 51.0, + 437.0, + 365.0 + ] + }, + { + "img": "s9886.jpg", + "roi": [ + 222.0, + 110.0, + 337.0, + 418.0 + ] + }, + { + "img": "s9887.jpg", + "roi": [ + 197.0, + 89.0, + 256.0, + 247.0 + ] + } + ], + "gallery": [ + { + "img": "s9906.jpg", + "roi": [ + 233.67428588867188, + 204.384033203125, + 303.9269714355469, + 385.36700439453125, + 0.998258650302887 + ], + "score": 1.215133547782898, + "correct": 0 + }, + { + "img": "s9885.jpg", + "roi": [ + 314.6829833984375, + 54.12773895263672, + 427.7069091796875, + 361.80712890625, + 0.9996864795684814 + ], + "score": 1.1512138843536377, + "correct": 1 + }, + { + "img": "s9886.jpg", + "roi": [ + 210.03683471679688, + 108.52034759521484, + 328.7830505371094, + 416.65447998046875, + 0.9998205304145813 + ], + "score": 1.0651485919952393, + "correct": 1 + }, + { + "img": "s9906.jpg", + "roi": [ + 341.1675109863281, + 214.4291229248047, + 413.4068603515625, + 411.715576171875, + 0.9968083500862122 + ], + "score": 1.0077364444732666, + "correct": 0 + }, + { + "img": "s4837.jpg", + "roi": [ + 353.18072509765625, + 249.3255615234375, + 385.32550048828125, + 336.1922302246094, + 0.998600423336029 + ], + "score": 0.9392807483673096, + "correct": 0 + }, + { + "img": "s9907.jpg", + "roi": [ + 173.3274383544922, + 96.3807373046875, + 280.7635192871094, + 395.2630615234375, + 0.9994392991065979 + ], + "score": 0.9060122966766357, + "correct": 0 + }, + { + "img": "s9846.jpg", + "roi": [ + 205.24642944335938, + 107.7810287475586, + 355.50872802734375, + 466.36004638671875, + 0.9991928935050964 + ], + "score": 0.8766781091690063, + "correct": 0 + }, + { + "img": "s4837.jpg", + "roi": [ + 324.4390563964844, + 243.73477172851562, + 353.93817138671875, + 330.9217834472656, + 0.9993370175361633 + ], + "score": 0.8480101823806763, + "correct": 0 + }, + { + "img": "s11578.jpg", + "roi": [ + 122.66594696044922, + 287.076904296875, + 202.5191192626953, + 500.9410400390625, + 0.9996232986450195 + ], + "score": 0.8263030648231506, + "correct": 0 + }, + { + "img": "s2215.jpg", + "roi": [ + 367.837646484375, + 130.13523864746094, + 435.205810546875, + 309.34918212890625, + 0.9997252821922302 + ], + "score": 0.8150479793548584, + "correct": 0 + } + ] + }, + { + "query_img": "s9846.jpg", + "query_roi": [ + 216.0, + 113.0, + 346.0, + 462.0 + ], + "query_gt": [ + { + "img": "s9844.jpg", + "roi": [ + 288.0, + 210.0, + 321.0, + 298.0 + ] + }, + { + "img": "s9845.jpg", + "roi": [ + 299.0, + 207.0, + 338.0, + 313.0 + ] + }, + { + "img": "s9847.jpg", + "roi": [ + 156.0, + 78.0, + 217.0, + 247.0 + ] + } + ], + "gallery": [ + { + "img": "s9845.jpg", + "roi": [ + 264.04742431640625, + 219.69969177246094, + 299.1507568359375, + 309.3819885253906, + 0.9965639710426331 + ], + "score": 1.1384352445602417, + "correct": 0 + }, + { + "img": "s9847.jpg", + "roi": [ + 158.81138610839844, + 77.8768310546875, + 218.68215942382812, + 248.38731384277344, + 0.9996267557144165 + ], + "score": 1.1227221488952637, + "correct": 1 + }, + { + "img": "s9844.jpg", + "roi": [ + 267.3357849121094, + 213.89349365234375, + 294.64813232421875, + 290.5472412109375, + 0.9955633878707886 + ], + "score": 1.1172902584075928, + "correct": 0 + }, + { + "img": "s9845.jpg", + "roi": [ + 297.86029052734375, + 206.56198120117188, + 340.414794921875, + 318.4560241699219, + 0.9988760352134705 + ], + "score": 1.1149158477783203, + "correct": 1 + }, + { + "img": "s3064.jpg", + "roi": [ + 107.52400970458984, + 62.50284957885742, + 279.260009765625, + 520.912353515625, + 0.9999370574951172 + ], + "score": 1.009995460510254, + "correct": 0 + }, + { + "img": "s4683.jpg", + "roi": [ + 677.567626953125, + 254.30535888671875, + 733.567626953125, + 406.0516052246094, + 0.9992606043815613 + ], + "score": 0.8778696060180664, + "correct": 0 + }, + { + "img": "s6640.jpg", + "roi": [ + 41.526031494140625, + 108.83834075927734, + 93.57562255859375, + 258.0820007324219, + 0.9987433552742004 + ], + "score": 0.8765194416046143, + "correct": 0 + }, + { + "img": "s9844.jpg", + "roi": [ + 289.17510986328125, + 209.0623016357422, + 323.52410888671875, + 299.7320556640625, + 0.9981992840766907 + ], + "score": 0.8350188732147217, + "correct": 1 + }, + { + "img": "s4683.jpg", + "roi": [ + 591.9348754882812, + 288.36956787109375, + 628.970703125, + 389.5564880371094, + 0.9827494621276855 + ], + "score": 0.8052839040756226, + "correct": 0 + }, + { + "img": "s10380.jpg", + "roi": [ + 72.83300018310547, + 285.6757507324219, + 133.65585327148438, + 447.50177001953125, + 0.9972642660140991 + ], + "score": 0.8003839254379272, + "correct": 0 + } + ] + }, + { + "query_img": "s6690.jpg", + "query_roi": [ + 310.0, + 242.0, + 444.0, + 620.0 + ], + "query_gt": [ + { + "img": "s6692.jpg", + "roi": [ + 210.0, + 359.0, + 250.0, + 497.0 + ] + } + ], + "gallery": [ + { + "img": "s4078.jpg", + "roi": [ + 286.5577697753906, + 224.95504760742188, + 345.34906005859375, + 386.5379638671875, + 0.9996790885925293 + ], + "score": 0.9012395143508911, + "correct": 0 + }, + { + "img": "s5371.jpg", + "roi": [ + 83.91459655761719, + 124.6363525390625, + 112.22740173339844, + 209.5731658935547, + 0.9987595081329346 + ], + "score": 0.8030678629875183, + "correct": 0 + }, + { + "img": "s9893.jpg", + "roi": [ + 425.7972106933594, + 98.91182708740234, + 480.8826599121094, + 264.0445251464844, + 0.9996582269668579 + ], + "score": 0.7935372591018677, + "correct": 0 + }, + { + "img": "s679.jpg", + "roi": [ + 252.137939453125, + 12.132853507995605, + 536.7679443359375, + 653.6619873046875, + 0.9993576407432556 + ], + "score": 0.7884896993637085, + "correct": 0 + }, + { + "img": "s11579.jpg", + "roi": [ + 37.946163177490234, + 261.2664794921875, + 71.60814666748047, + 356.067138671875, + 0.9994832277297974 + ], + "score": 0.7610428333282471, + "correct": 0 + }, + { + "img": "s8163.jpg", + "roi": [ + 119.27593994140625, + 58.14888000488281, + 405.677001953125, + 723.1823120117188, + 0.9921302199363708 + ], + "score": 0.7565668821334839, + "correct": 0 + }, + { + "img": "s4714.jpg", + "roi": [ + 477.870361328125, + 338.16925048828125, + 570.3600463867188, + 580.0731201171875, + 0.9998809099197388 + ], + "score": 0.754844069480896, + "correct": 0 + }, + { + "img": "s3672.jpg", + "roi": [ + 258.91107177734375, + 191.7451629638672, + 359.73455810546875, + 519.9832763671875, + 0.9835540056228638 + ], + "score": 0.747733473777771, + "correct": 0 + }, + { + "img": "s6692.jpg", + "roi": [ + 210.3326416015625, + 364.02484130859375, + 251.86752319335938, + 486.99462890625, + 0.9952632188796997 + ], + "score": 0.7424209117889404, + "correct": 1 + }, + { + "img": "s3319.jpg", + "roi": [ + 217.60464477539062, + 118.2257080078125, + 297.18157958984375, + 343.57867431640625, + 0.9994774460792542 + ], + "score": 0.740190863609314, + "correct": 0 + } + ] + }, + { + "query_img": "s5274.jpg", + "query_roi": [ + 520.0, + 102.0, + 598.0, + 312.0 + ], + "query_gt": [ + { + "img": "s5272.jpg", + "roi": [ + 175.0, + 119.0, + 329.0, + 532.0 + ] + }, + { + "img": "s5269.jpg", + "roi": [ + 82.0, + 110.0, + 259.0, + 700.0 + ] + }, + { + "img": "s5273.jpg", + "roi": [ + 1.0, + 91.0, + 285.0, + 799.0 + ] + } + ], + "gallery": [ + { + "img": "s5269.jpg", + "roi": [ + 383.2057800292969, + 165.1654052734375, + 522.580322265625, + 528.5240478515625, + 0.9996528625488281 + ], + "score": 1.4156646728515625, + "correct": 0 + }, + { + "img": "s5272.jpg", + "roi": [ + 478.92401123046875, + 126.98980712890625, + 600.0, + 674.2338256835938, + 0.9932838678359985 + ], + "score": 1.3352316617965698, + "correct": 0 + }, + { + "img": "s7519.jpg", + "roi": [ + 47.96083068847656, + 162.41351318359375, + 124.32832336425781, + 383.36822509765625, + 0.9997277855873108 + ], + "score": 0.9881631731987, + "correct": 0 + }, + { + "img": "s7795.jpg", + "roi": [ + 238.56265258789062, + 176.8957061767578, + 343.48126220703125, + 488.19305419921875, + 0.9997939467430115 + ], + "score": 0.9033437967300415, + "correct": 0 + }, + { + "img": "s12342.jpg", + "roi": [ + 7.7174553871154785, + 212.55404663085938, + 85.17505645751953, + 449.86279296875, + 0.999750554561615 + ], + "score": 0.7852061986923218, + "correct": 0 + }, + { + "img": "s7795.jpg", + "roi": [ + 1.418866515159607, + 206.15675354003906, + 61.25284957885742, + 436.5318603515625, + 0.9994024038314819 + ], + "score": 0.7563937306404114, + "correct": 0 + }, + { + "img": "s5272.jpg", + "roi": [ + 181.09097290039062, + 121.1565170288086, + 328.0609130859375, + 535.046630859375, + 0.9993945360183716 + ], + "score": 0.7537254095077515, + "correct": 1 + }, + { + "img": "s15886.jpg", + "roi": [ + 421.597412109375, + 33.32274627685547, + 434.9349060058594, + 72.52204895019531, + 0.995790421962738 + ], + "score": 0.7427515983581543, + "correct": 0 + }, + { + "img": "s2302.jpg", + "roi": [ + 258.3632507324219, + 183.44017028808594, + 315.2957763671875, + 346.6602478027344, + 0.9996505975723267 + ], + "score": 0.715192437171936, + "correct": 0 + }, + { + "img": "s14882.jpg", + "roi": [ + 132.2022705078125, + 143.28097534179688, + 221.02914428710938, + 436.9408264160156, + 0.9992744326591492 + ], + "score": 0.7053315043449402, + "correct": 0 + } + ] + }, + { + "query_img": "s1747.jpg", + "query_roi": [ + 320.0, + 142.0, + 388.0, + 346.0 + ], + "query_gt": [ + { + "img": "s1745.jpg", + "roi": [ + 318.0, + 210.0, + 366.0, + 338.0 + ] + } + ], + "gallery": [ + { + "img": "s9538.jpg", + "roi": [ + 199.5189208984375, + 167.7789764404297, + 246.9837646484375, + 313.04010009765625, + 0.9989872574806213 + ], + "score": 1.074001669883728, + "correct": 0 + }, + { + "img": "s1745.jpg", + "roi": [ + 318.69024658203125, + 210.103271484375, + 368.0038757324219, + 337.96337890625, + 0.9992971420288086 + ], + "score": 1.0528819561004639, + "correct": 1 + }, + { + "img": "s2708.jpg", + "roi": [ + 643.302978515625, + 168.26913452148438, + 686.7728271484375, + 291.9290466308594, + 0.9974796175956726 + ], + "score": 1.0202076435089111, + "correct": 0 + }, + { + "img": "s2091.jpg", + "roi": [ + 190.28231811523438, + 212.49948120117188, + 278.9222106933594, + 456.43988037109375, + 0.9991740584373474 + ], + "score": 0.9271056056022644, + "correct": 0 + }, + { + "img": "s10506.jpg", + "roi": [ + 316.169189453125, + 276.1104431152344, + 349.75885009765625, + 380.4543151855469, + 0.997007429599762 + ], + "score": 0.8792822957038879, + "correct": 0 + }, + { + "img": "s4569.jpg", + "roi": [ + 306.2153015136719, + 82.47428894042969, + 339.15283203125, + 189.39340209960938, + 0.9993477463722229 + ], + "score": 0.8636050820350647, + "correct": 0 + }, + { + "img": "s6513.jpg", + "roi": [ + 185.47702026367188, + 296.51031494140625, + 224.15267944335938, + 424.58587646484375, + 0.9936026930809021 + ], + "score": 0.8613574504852295, + "correct": 0 + }, + { + "img": "s4569.jpg", + "roi": [ + 326.5428771972656, + 83.08590698242188, + 353.29559326171875, + 174.33074951171875, + 0.9907051920890808 + ], + "score": 0.8186202049255371, + "correct": 0 + }, + { + "img": "s5097.jpg", + "roi": [ + 225.6313934326172, + 126.22120666503906, + 308.2281188964844, + 371.162109375, + 0.9996769428253174 + ], + "score": 0.8184312582015991, + "correct": 0 + }, + { + "img": "s10506.jpg", + "roi": [ + 158.6002960205078, + 279.30694580078125, + 186.37815856933594, + 369.0975036621094, + 0.9976654052734375 + ], + "score": 0.807269811630249, + "correct": 0 + } + ] + }, + { + "query_img": "s6147.jpg", + "query_roi": [ + 271.0, + 116.0, + 340.0, + 301.0 + ], + "query_gt": [ + { + "img": "s6148.jpg", + "roi": [ + 341.0, + 64.0, + 379.0, + 167.0 + ] + } + ], + "gallery": [ + { + "img": "s11707.jpg", + "roi": [ + 266.04693603515625, + 280.2203674316406, + 322.966552734375, + 459.4010925292969, + 0.999200165271759 + ], + "score": 1.0948371887207031, + "correct": 0 + }, + { + "img": "s12417.jpg", + "roi": [ + 314.5763854980469, + 236.97378540039062, + 339.72796630859375, + 307.23980712890625, + 0.9988502264022827 + ], + "score": 0.8100273013114929, + "correct": 0 + }, + { + "img": "s1977.jpg", + "roi": [ + 27.09955406188965, + 149.6135711669922, + 119.2880859375, + 379.82586669921875, + 0.9998452663421631 + ], + "score": 0.8054206967353821, + "correct": 0 + }, + { + "img": "s1192.jpg", + "roi": [ + 483.24017333984375, + 81.22693634033203, + 539.4689331054688, + 237.81005859375, + 0.9994341731071472 + ], + "score": 0.7836961150169373, + "correct": 0 + }, + { + "img": "s6719.jpg", + "roi": [ + 47.3816032409668, + 244.40255737304688, + 135.57850646972656, + 526.6871337890625, + 0.9080906510353088 + ], + "score": 0.7797655463218689, + "correct": 0 + }, + { + "img": "s2645.jpg", + "roi": [ + 233.92813110351562, + 168.56747436523438, + 366.4000244140625, + 562.5629272460938, + 0.9995630383491516 + ], + "score": 0.6982277035713196, + "correct": 0 + }, + { + "img": "s14394.jpg", + "roi": [ + 328.8800048828125, + 189.3094024658203, + 357.88995361328125, + 267.0649108886719, + 0.9972579479217529 + ], + "score": 0.6823421716690063, + "correct": 0 + }, + { + "img": "s5623.jpg", + "roi": [ + 221.80917358398438, + 117.53795623779297, + 293.573974609375, + 317.6425476074219, + 0.9995618462562561 + ], + "score": 0.6711423993110657, + "correct": 0 + }, + { + "img": "s1977.jpg", + "roi": [ + 227.24461364746094, + 147.2953338623047, + 293.94921875, + 397.6380310058594, + 0.9984709620475769 + ], + "score": 0.6645167469978333, + "correct": 0 + }, + { + "img": "s2303.jpg", + "roi": [ + 393.2498779296875, + 177.68096923828125, + 502.8302917480469, + 476.6546325683594, + 0.9996140599250793 + ], + "score": 0.6624119281768799, + "correct": 0 + } + ] + }, + { + "query_img": "s9541.jpg", + "query_roi": [ + 422.0, + 298.0, + 463.0, + 409.0 + ], + "query_gt": [ + { + "img": "s9540.jpg", + "roi": [ + 486.0, + 351.0, + 522.0, + 449.0 + ] + } + ], + "gallery": [ + { + "img": "s9540.jpg", + "roi": [ + 131.9794921875, + 347.86370849609375, + 170.91741943359375, + 455.2820739746094, + 0.9977585077285767 + ], + "score": 1.2897955179214478, + "correct": 0 + }, + { + "img": "s9540.jpg", + "roi": [ + 488.913330078125, + 349.38995361328125, + 522.1546630859375, + 449.4776611328125, + 0.9962611794471741 + ], + "score": 1.2104713916778564, + "correct": 1 + }, + { + "img": "s9540.jpg", + "roi": [ + 567.4932861328125, + 293.64794921875, + 595.0582275390625, + 374.60772705078125, + 0.9968463778495789 + ], + "score": 1.0492427349090576, + "correct": 0 + }, + { + "img": "s378.jpg", + "roi": [ + 230.31338500976562, + 8.911184310913086, + 296.0902404785156, + 211.3115692138672, + 0.993107259273529 + ], + "score": 0.7912096381187439, + "correct": 0 + }, + { + "img": "s7570.jpg", + "roi": [ + 396.3932800292969, + 102.87249755859375, + 484.1629333496094, + 361.53424072265625, + 0.9998832941055298 + ], + "score": 0.7835431694984436, + "correct": 0 + }, + { + "img": "s7680.jpg", + "roi": [ + 84.25548553466797, + 151.13702392578125, + 108.59458923339844, + 237.90884399414062, + 0.9813684821128845 + ], + "score": 0.7469991445541382, + "correct": 0 + }, + { + "img": "s11446.jpg", + "roi": [ + 192.3397674560547, + 399.80389404296875, + 222.04129028320312, + 489.7124328613281, + 0.9865221381187439 + ], + "score": 0.7326282262802124, + "correct": 0 + }, + { + "img": "s9540.jpg", + "roi": [ + 526.5654296875, + 281.9921875, + 561.483154296875, + 366.7259521484375, + 0.9985805749893188 + ], + "score": 0.7211808562278748, + "correct": 0 + }, + { + "img": "s9475.jpg", + "roi": [ + 211.4146728515625, + 112.87750244140625, + 231.125244140625, + 167.64146423339844, + 0.9774462580680847 + ], + "score": 0.6936003565788269, + "correct": 0 + }, + { + "img": "s1465.jpg", + "roi": [ + 440.7332458496094, + 238.7329559326172, + 495.4483337402344, + 400.0227966308594, + 0.9988901019096375 + ], + "score": 0.6915473937988281, + "correct": 0 + } + ] + }, + { + "query_img": "s7569.jpg", + "query_roi": [ + 404.0, + 1.0, + 598.0, + 448.0 + ], + "query_gt": [ + { + "img": "s7566.jpg", + "roi": [ + 436.0, + 92.0, + 519.0, + 314.0 + ] + }, + { + "img": "s7567.jpg", + "roi": [ + 605.0, + 22.0, + 719.0, + 298.0 + ] + }, + { + "img": "s7568.jpg", + "roi": [ + 416.0, + 140.0, + 515.0, + 405.0 + ] + } + ], + "gallery": [ + { + "img": "s17159.jpg", + "roi": [ + 42.84724426269531, + 56.98564529418945, + 173.3828582763672, + 448.2937316894531, + 0.9995135068893433 + ], + "score": 1.1164023876190186, + "correct": 0 + }, + { + "img": "s17159.jpg", + "roi": [ + 158.15371704101562, + 76.75349426269531, + 259.63629150390625, + 416.0932312011719, + 0.9977388381958008 + ], + "score": 0.9977334141731262, + "correct": 0 + }, + { + "img": "s7568.jpg", + "roi": [ + 430.96978759765625, + 139.23736572265625, + 506.1322937011719, + 407.1580505371094, + 0.9995290040969849 + ], + "score": 0.9864486455917358, + "correct": 1 + }, + { + "img": "s17159.jpg", + "roi": [ + 439.86297607421875, + 71.22158813476562, + 555.639404296875, + 444.9461364746094, + 0.9965766072273254 + ], + "score": 0.9622902274131775, + "correct": 0 + }, + { + "img": "s11218.jpg", + "roi": [ + 434.2171325683594, + 90.80490112304688, + 565.2891845703125, + 447.0106201171875, + 0.9989709854125977 + ], + "score": 0.8978519439697266, + "correct": 0 + }, + { + "img": "s17687.jpg", + "roi": [ + 545.3657836914062, + 87.80990600585938, + 655.43701171875, + 446.7403259277344, + 0.9994414448738098 + ], + "score": 0.8513257503509521, + "correct": 0 + }, + { + "img": "s16092.jpg", + "roi": [ + 684.6448364257812, + 188.86178588867188, + 785.74755859375, + 442.7751159667969, + 0.9972879886627197 + ], + "score": 0.8448161482810974, + "correct": 0 + }, + { + "img": "s13008.jpg", + "roi": [ + 387.7644348144531, + 43.657344818115234, + 513.1264038085938, + 447.36907958984375, + 0.9994908571243286 + ], + "score": 0.82574063539505, + "correct": 0 + }, + { + "img": "s5105.jpg", + "roi": [ + 529.72705078125, + 180.710693359375, + 597.1517333984375, + 373.24261474609375, + 0.9998161196708679 + ], + "score": 0.8249701261520386, + "correct": 0 + }, + { + "img": "s14598.jpg", + "roi": [ + 356.7027282714844, + 77.02796936035156, + 496.5277404785156, + 441.45343017578125, + 0.9998077750205994 + ], + "score": 0.8044754862785339, + "correct": 0 + } + ] + }, + { + "query_img": "s10359.jpg", + "query_roi": [ + 391.0, + 236.0, + 430.0, + 341.0 + ], + "query_gt": [ + { + "img": "s10360.jpg", + "roi": [ + 408.0, + 221.0, + 464.0, + 372.0 + ] + } + ], + "gallery": [ + { + "img": "s11139.jpg", + "roi": [ + 765.8682861328125, + 284.0418701171875, + 787.853271484375, + 339.9811096191406, + 0.9926525354385376 + ], + "score": 1.0032029151916504, + "correct": 0 + }, + { + "img": "s156.jpg", + "roi": [ + 189.4332275390625, + 241.85162353515625, + 235.3291473388672, + 379.7044372558594, + 0.9991011619567871 + ], + "score": 0.9240682125091553, + "correct": 0 + }, + { + "img": "s11139.jpg", + "roi": [ + 688.7999877929688, + 276.5571594238281, + 705.4899291992188, + 322.15875244140625, + 0.9921700358390808 + ], + "score": 0.9128500819206238, + "correct": 0 + }, + { + "img": "s3805.jpg", + "roi": [ + 409.931396484375, + 211.49069213867188, + 437.59906005859375, + 289.1867370605469, + 0.9989914298057556 + ], + "score": 0.884110689163208, + "correct": 0 + }, + { + "img": "s6923.jpg", + "roi": [ + 320.5308532714844, + 242.7891845703125, + 365.87493896484375, + 356.53363037109375, + 0.9986007809638977 + ], + "score": 0.8782517910003662, + "correct": 0 + }, + { + "img": "s4119.jpg", + "roi": [ + 485.0036315917969, + 249.793701171875, + 548.9754028320312, + 402.16357421875, + 0.9990851879119873 + ], + "score": 0.8375605344772339, + "correct": 0 + }, + { + "img": "s4041.jpg", + "roi": [ + 461.1534729003906, + 375.38079833984375, + 509.5057067871094, + 504.4757995605469, + 0.9991405010223389 + ], + "score": 0.8271456360816956, + "correct": 0 + }, + { + "img": "s11136.jpg", + "roi": [ + 699.58251953125, + 339.577880859375, + 728.8028564453125, + 424.5731506347656, + 0.998421311378479 + ], + "score": 0.8076847195625305, + "correct": 0 + }, + { + "img": "s4119.jpg", + "roi": [ + 400.67431640625, + 238.22512817382812, + 445.13153076171875, + 355.9556579589844, + 0.9994233846664429 + ], + "score": 0.8000314235687256, + "correct": 0 + }, + { + "img": "s12054.jpg", + "roi": [ + 145.18212890625, + 379.20147705078125, + 170.7882537841797, + 450.60845947265625, + 0.9984519481658936 + ], + "score": 0.7970516681671143, + "correct": 0 + } + ] + }, + { + "query_img": "s7661.jpg", + "query_roi": [ + 568.0, + 129.0, + 669.0, + 437.0 + ], + "query_gt": [ + { + "img": "s7660.jpg", + "roi": [ + 464.0, + 147.0, + 573.0, + 478.0 + ] + } + ], + "gallery": [ + { + "img": "s7660.jpg", + "roi": [ + 607.258056640625, + 139.79298400878906, + 719.63525390625, + 468.6040954589844, + 0.9997422099113464 + ], + "score": 0.9696828722953796, + "correct": 0 + }, + { + "img": "s5622.jpg", + "roi": [ + 206.16839599609375, + 93.01912689208984, + 299.3037109375, + 339.7469177246094, + 0.9998750686645508 + ], + "score": 0.9141978621482849, + "correct": 0 + }, + { + "img": "s5928.jpg", + "roi": [ + 79.17375946044922, + 42.7826042175293, + 178.1751708984375, + 319.9775085449219, + 0.9988596439361572 + ], + "score": 0.8820441961288452, + "correct": 0 + }, + { + "img": "s1961.jpg", + "roi": [ + 280.42523193359375, + 187.94053649902344, + 330.7165832519531, + 351.41961669921875, + 0.9991939663887024 + ], + "score": 0.8685377836227417, + "correct": 0 + }, + { + "img": "s1025.jpg", + "roi": [ + 187.07077026367188, + 83.91571044921875, + 301.0031433105469, + 378.59002685546875, + 0.9997888207435608 + ], + "score": 0.867796003818512, + "correct": 0 + }, + { + "img": "s9900.jpg", + "roi": [ + 356.91497802734375, + 151.4700164794922, + 394.67352294921875, + 263.8912353515625, + 0.9954082369804382 + ], + "score": 0.8578817248344421, + "correct": 0 + }, + { + "img": "s7660.jpg", + "roi": [ + 526.23974609375, + 116.19978332519531, + 629.2635498046875, + 453.079833984375, + 0.9994106292724609 + ], + "score": 0.8391178846359253, + "correct": 0 + }, + { + "img": "s11522.jpg", + "roi": [ + 264.0664367675781, + 291.2831115722656, + 336.4933776855469, + 479.5036315917969, + 0.9998394250869751 + ], + "score": 0.8385437726974487, + "correct": 0 + }, + { + "img": "s2700.jpg", + "roi": [ + 126.06288146972656, + 171.9633026123047, + 167.86019897460938, + 293.18597412109375, + 0.9986478686332703 + ], + "score": 0.8246121406555176, + "correct": 0 + }, + { + "img": "s2085.jpg", + "roi": [ + 206.59939575195312, + 312.1448974609375, + 254.36859130859375, + 435.9762878417969, + 0.9996901750564575 + ], + "score": 0.8224939107894897, + "correct": 0 + } + ] + } + ] +} \ No newline at end of file