diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 0000000000000000000000000000000000000000..6a268df6947f41fdcd655b4aa086d8244396b692
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,34 @@
+
+# Installation
+
+## Requirements
+- Linux or macOS with Python ≥ 3.8
+- PyTorch ≥ 1.8 and [torchvision](https://github.com/pytorch/vision/) that matches the PyTorch installation.
+ Install them together at [pytorch.org](https://pytorch.org) to make sure of this.
+ Note, please check PyTorch version matches that is required by Detectron2.
+- Detectron2: follow Detectron2 installation instructions.
+- OpenCV ≥ 4.6 is needed by demo and visualization.
+
+## Example conda environment setup
+
+```bash
+conda create --name cutler python=3.8 -y
+conda activate cutler
+conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 -c pytorch
+pip install git+https://github.com/lucasb-eyer/pydensecrf.git
+
+# under your working directory
+git clone git@github.com:facebookresearch/detectron2.git
+cd detectron2
+pip install -e .
+pip install git+https://github.com/cocodataset/panopticapi.git
+pip install git+https://github.com/mcordts/cityscapesScripts.git
+
+cd ..
+git clone --recursive git@github.com:facebookresearch/CutLER.git
+cd CutLER
+pip install -r requirements.txt
+```
+
+## datasets
+If you want to train/evaluate on the datasets, please see [datasets/README.md](datasets/README.md) to see how we prepare datasets for this project.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..1b7da88eaf0b6df93a18a9d44d361bfcd9fdbcd8
--- /dev/null
+++ b/README.md
@@ -0,0 +1,405 @@
+# Cut and Learn for Unsupervised Image & Video Object Detection and Instance Segmentation
+
+**Cut**-and-**LE**a**R**n (**CutLER**) is a simple approach for training object detection and instance segmentation models without human annotations.
+It outperforms previous SOTA by **2.7 times** for AP50 and **2.6 times** for AR on **11 benchmarks**.
+
+
+
+> [**Cut and Learn for Unsupervised Object Detection and Instance Segmentation**](http://people.eecs.berkeley.edu/~xdwang/projects/CutLER/)
+> [Xudong Wang](https://people.eecs.berkeley.edu/~xdwang/), [Rohit Girdhar](https://rohitgirdhar.github.io/), [Stella X. Yu](https://www1.icsi.berkeley.edu/~stellayu/), [Ishan Misra](https://imisra.github.io/)
+> FAIR, Meta AI; UC Berkeley
+> CVPR 2023
+
+[[`project page`](http://people.eecs.berkeley.edu/~xdwang/projects/CutLER/)] [[`arxiv`](https://arxiv.org/abs/2301.11320)] [[`colab`](https://colab.research.google.com/drive/1NgEyFHvOfuA2MZZnfNPWg1w5gSr3HOBb?usp=sharing)] [[`bibtex`](#citation)]
+
+Unsupervised video instance segmentation (**VideoCutLER**) is also supported. ***We demonstrate that video instance segmentation models can be learned without using any human annotations, without relying on natural videos (ImageNet data alone is sufficient), and even without motion estimations!*** The code is available [here](videocutler).
+
+
+
+
+
+> [**VideoCutLER: Surprisingly Simple Unsupervised Video Instance Segmentation**](https://people.eecs.berkeley.edu/~xdwang/projects/VideoCutLER/videocutler.pdf)
+> [Xudong Wang](https://people.eecs.berkeley.edu/~xdwang/), [Ishan Misra](https://imisra.github.io/), Ziyun Zeng, [Rohit Girdhar](https://rohitgirdhar.github.io/), [Trevor Darrell](https://people.eecs.berkeley.edu/~trevor/)
+> UC Berkeley; FAIR, Meta AI
+> CVPR 2024
+
+[[`code`](videocutler/README.md)] [[`PDF`](https://people.eecs.berkeley.edu/~xdwang/projects/VideoCutLER/videocutler.pdf)] [[`arxiv`](https://arxiv.org/abs/2308.14710)] [[`bibtex`](#citation)]
+
+## Features
+- We propose MaskCut approach to generate pseudo-masks for multiple objects in an image.
+- CutLER can learn unsupervised object detectors and instance segmentors solely on ImageNet-1K.
+- CutLER exhibits strong robustness to domain shifts when evaluated on 11 different benchmarks across domains like natural images, video frames, paintings, sketches, etc.
+- CutLER can serve as a pretrained model for fully/semi-supervised detection and segmentation tasks.
+- We also propose VideoCutLER, a surprisingly simple unsupervised video instance segmentation (UVIS) method without relying on optical flows. ImaegNet-1K is all we need for training a SOTA UVIS model!
+
+## Installation
+See [installation instructions](INSTALL.md).
+
+## Dataset Preparation
+See [Preparing Datasets for CutLER](datasets/README.md).
+
+## Method Overview
+
+
+
+Cut-and-Learn has two stages: 1) generating pseudo-masks with MaskCut and 2) learning unsupervised detectors from pseudo-masks of unlabeled data.
+
+### 1. MaskCut
+
+MaskCut can be used to provide segmentation masks for multiple instances of each image.
+
+
+
+
+### MaskCut Demo
+
+Try out the MaskCut demo using Colab (no GPU needed): [](https://colab.research.google.com/drive/1X05lKL_IBRvZB7q6n6pb4w00_tIYjGlf?usp=sharing)
+
+Try out the web demo: [](https://huggingface.co/spaces/facebook/MaskCut) (thanks to [@hysts](https://github.com/hysts)!)
+
+
+
+
+If you want to run MaskCut locally, we provide `demo.py` that is able to visualize the pseudo-masks produced by MaskCut.
+Run it with:
+```
+cd maskcut
+python demo.py --img-path imgs/demo2.jpg \
+ --N 3 --tau 0.15 --vit-arch base --patch-size 8 \
+ [--other-options]
+```
+We give a few demo images in maskcut/imgs/. If you want to run demo.py with cpu, simply add "--cpu" when running the demo script.
+For imgs/demo4.jpg, you need to use "--N 6" to segment all six instances in the image.
+Following, we give some visualizations of the pseudo-masks on the demo images.
+
+
+
+
+### Generating Annotations for ImageNet-1K with MaskCut
+To generate pseudo-masks for ImageNet-1K using MaskCut, first set up the ImageNet-1K dataset according to the instructions in [datasets/README.md](datasets/README.md), then execute the following command:
+```
+cd maskcut
+python maskcut.py \
+--vit-arch base --patch-size 8 \
+--tau 0.15 --fixed_size 480 --N 3 \
+--num-folder-per-job 1000 --job-index 0 \
+--dataset-path /path/to/dataset/traindir \
+--out-dir /path/to/save/annotations \
+```
+As the process of generating pseudo-masks for all 1.3 million images in 1,000 folders takes a significant amount of time, it is recommended to use multiple runs. Each run should process the pseudo-mask generation for a smaller number of image folders by setting "--num-folder-per-job" and "--job-index". Once all runs are completed, you can merge all the resulting json files by using the following command:
+```
+python merge_jsons.py \
+--base-dir /path/to/save/annotations \
+--num-folder-per-job 2 --fixed-size 480 \
+--tau 0.15 --N 3 \
+--save-path imagenet_train_fixsize480_tau0.15_N3.json
+```
+The "--num-folder-per-job", "--fixed-size", "--tau" and "--N" of merge_jsons.py should match the ones used to run maskcut.py.
+
+We also provide a submitit script to launch the pseudo-mask generation process with multiple nodes.
+```
+cd maskcut
+bash run_maskcut_with_submitit.sh
+```
+After that, you can use "merge_jsons.py" to merge all these json files as described above.
+
+### 2. CutLER
+
+### Inference Demo for CutLER with Pre-trained Models
+Try out the CutLER demo using Colab (no GPU needed): [](https://colab.research.google.com/drive/1NgEyFHvOfuA2MZZnfNPWg1w5gSr3HOBb?usp=sharing)
+
+Try out the web demo: [](https://huggingface.co/spaces/facebook/CutLER) (thanks to [@hysts](https://github.com/hysts)!)
+
+
+Try out Replicate demo and the API: [](https://replicate.com/cjwbw/cutler)
+
+
+If you want to run CutLER demos locally,
+1. Pick a model and its config file from [model zoo](#model-zoo),
+ for example, `model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml`.
+2. We provide `demo.py` that is able to demo builtin configs. Run it with:
+```
+cd cutler
+python demo/demo.py --config-file model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN_demo.yaml \
+ --input demo/imgs/*.jpg \
+ [--other-options]
+ --opts MODEL.WEIGHTS /path/to/cutler_w_cascade_checkpoint
+```
+The configs are made for training, therefore we need to specify `MODEL.WEIGHTS` to a model from model zoo for evaluation.
+This command will run the inference and show visualizations in an OpenCV window.
+
+* To run __on cpu__, add `MODEL.DEVICE cpu` after `--opts`.
+* To save outputs to a directory (for images) or a file (for webcam or video), use `--output`.
+
+Following, we give some visualizations of the model predictions on the demo images.
+
+
+
+
+### Unsupervised Model Learning
+Before training the detector, it is necessary to use MaskCut to generate pseudo-masks for all ImageNet data.
+You can either use the pre-generated json file directly by downloading it from [here](http://dl.fbaipublicfiles.com/cutler/maskcut/imagenet_train_fixsize480_tau0.15_N3.json) and placing it under "DETECTRON2_DATASETS/imagenet/annotations/", or generate your own pseudo-masks by following the instructions in [MaskCut](#1-maskcut).
+
+We provide a script `train_net.py`, that is made to train all the configs provided in CutLER.
+To train a model with "train_net.py", first setup the ImageNet-1K dataset following [datasets/README.md](datasets/README.md), then run:
+```
+cd cutler
+export DETECTRON2_DATASETS=/path/to/DETECTRON2_DATASETS/
+python train_net.py --num-gpus 8 \
+ --config-file model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml
+```
+
+If you want to train a model using multiple nodes, you may need to adjust [some model parameters](https://arxiv.org/abs/1706.02677) and some SBATCH command options in "tools/train-1node.sh" and "tools/single-node_run.sh", then run:
+```
+cd cutler
+sbatch tools/train-1node.sh \
+ --config-file model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml \
+ MODEL.WEIGHTS /path/to/dino/d2format/model \
+ OUTPUT_DIR output/
+```
+You can also convert a pre-trained DINO model to detectron2's format by yourself following [this link](https://github.com/facebookresearch/moco/tree/main/detection).
+
+### Self-training
+We further improve performance by self-training the model on its predictions.
+
+Firstly, we can get model predictions on ImageNet via running:
+```
+python train_net.py --num-gpus 8 \
+ --config-file model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml \
+ --test-dataset imagenet_train \
+ --eval-only TEST.DETECTIONS_PER_IMAGE 30 \
+ MODEL.WEIGHTS output/model_final.pth \ # load previous stage/round checkpoints
+ OUTPUT_DIR output/ # path to save model predictions
+```
+Secondly, we can run the following command to generate the json file for the first round of self-training:
+```
+python tools/get_self_training_ann.py \
+ --new-pred output/inference/coco_instances_results.json \ # load model predictions
+ --prev-ann DETECTRON2_DATASETS/imagenet/annotations/imagenet_train_fixsize480_tau0.15_N3.json \ # path to the old annotation file.
+ --save-path DETECTRON2_DATASETS/imagenet/annotations/cutler_imagenet1k_train_r1.json \ # path to save a new annotation file.
+ --threshold 0.7
+```
+Finally, place "cutler_imagenet1k_train_r1.json" under "DETECTRON2_DATASETS/imagenet/annotations/", then launch the self-training process:
+```
+python train_net.py --num-gpus 8 \
+ --config-file model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN_self_train.yaml \
+ --train-dataset imagenet_train_r1 \
+ MODEL.WEIGHTS output/model_final.pth \ # load previous stage/round checkpoints
+ OUTPUT_DIR output/self-train-r1/ # path to save checkpoints
+```
+
+You can repeat the steps above to perform multiple rounds of self-training and adjust some arguments as needed (e.g., "--threshold" for round 1 and 2 can be set to 0.7 and 0.65, respectively; "--train-dataset" for round 1 and 2 can be set to "imagenet_train_r1" and "imagenet_train_r2", respectively; MODEL.WEIGHTS for round 1 and 2 should point to the previous stage/round checkpoints). Ensure that all annotation files are placed under DETECTRON2_DATASETS/imagenet/annotations/.
+Please ensure that "--train-dataset", json file names and locations match the ones specified in "cutler/data/datasets/builtin.py".
+Please refer to this [instruction](https://detectron2.readthedocs.io/en/latest/tutorials/datasets.html) for guidance on using custom datasets.
+
+You can also directly download the MODEL.WEIGHTS and annotations used for each round of self-training:
+
+
+### Unsupervised Zero-shot Evaluation
+To evaluate a model's performance on 11 different datasets, please refer to [datasets/README.md](datasets/README.md) for instructions on preparing the datasets. Next, select a model from the model zoo, specify the "model_weights", "config_file" and the path to "DETECTRON2_DATASETS" in `tools/eval.sh`, then run the script.
+```
+bash tools/eval.sh
+```
+
+### Model Zoo
+We show zero-shot unsupervised object detection performance (AP50 | AR) on 11 different datasets spanning a variety of domains. ^: CutLER using Mask R-CNN as a detector; *: CutLER using Cascade Mask R-CNN as a detector.
+
+
+
+| Methods |
+Models |
+COCO |
+COCO20K |
+VOC |
+LVIS |
+UVO |
+Clipart |
+Comic |
+Watercolor |
+KITTI |
+Objects365 |
+OpenImages |
+
+
+| Prev. SOTA |
+- |
+9.6 | 12.6 |
+9.7 | 12.6 |
+15.9 | 21.3 |
+3.8 | 6.4 |
+10.0 | 14.2 |
+7.9 | 15.1 |
+9.9 | 16.3 |
+6.7 | 16.2 |
+7.7 | 7.1 |
+8.1 | 10.2 |
+9.9 | 14.9 |
+
+
+
+| CutLER^ |
+download |
+21.1 | 29.6 |
+21.6 | 30.0 |
+36.6 | 41.0 |
+7.7 | 18.7 |
+29.8 | 38.4 |
+20.9 | 38.5 |
+31.2 | 37.1 |
+37.3 | 39.9 |
+15.3 | 25.4 |
+19.5 | 30.0 |
+17.1 | 26.4 |
+
+
+
+| CutLER* |
+download |
+21.9 | 32.7 |
+22.4 | 33.1 |
+36.9 | 44.3 |
+8.4 | 21.8 |
+31.7 | 42.8 |
+21.1 | 41.3 |
+30.4 | 38.6 |
+37.5 | 44.6 |
+18.4 | 27.5 |
+21.6 | 34.2 |
+17.3 | 29.6 |
+
+
+
+## Semi-supervised and Fully-supervised Learning
+CutLER can also serve as a pretrained model for training fully supervised object detection and instance segmentation models and improves performance on COCO, including on few-shot benchmarks.
+
+### Training & Evaluation in Command Line
+You can find all the semi-supervised and fully-supervised learning configs provided in CutLER under `model_zoo/configs/COCO-Semisupervised`.
+
+To train a model using K% labels with `train_net.py`, first set up the COCO dataset according to [datasets/README.md](datasets/README.md) and specify K value in the config file, then run:
+```
+python train_net.py --num-gpus 8 \
+ --config-file model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_{K}perc.yaml \
+ MODEL.WEIGHTS /path/to/cutler_pretrained_model
+```
+
+You can find all config files used to train supervised models under `model_zoo/configs/COCO-Semisupervised`.
+The configs are made for 8-GPU training. To train on 1 GPU, you may need to [change some parameters](https://arxiv.org/abs/1706.02677), e.g. number of GPUs (num-gpus your_num_gpus), learning rates (SOLVER.BASE_LR your_base_lr) and batch size (SOLVER.IMS_PER_BATCH your_batch_size).
+
+### Evaluation
+To evaluate a model's performance, use
+```
+python train_net.py \
+ --config-file model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_{K}perc.yaml \
+ --eval-only MODEL.WEIGHTS /path/to/checkpoint_file
+```
+For more options, see `python train_net.py -h`.
+
+### Model Zoo
+We fine-tune a Cascade R-CNN model initialized with CutLER or MoCo-v2 on varying amounts of labeled COCO data, and show results (Box | Mask AP) on the val2017 split below:
+
+
+
+
+| % of labels |
+1% |
+2% |
+5% |
+10% |
+20% |
+30% |
+40% |
+50% |
+60% |
+80% |
+100% |
+
+
+| MoCo-v2 |
+11.8 | 10.0 |
+16.2 | 13.8 |
+20.5 | 17.8 |
+26.5 | 23.0 |
+32.5 | 28.2 |
+35.5 | 30.8 |
+37.3 | 32.3 |
+38.7 | 33.6 |
+39.9 | 34.6 |
+41.6 | 36.0 |
+42.8 | 37.0 |
+
+
+| CutLER |
+16.8 | 14.6 |
+21.6 | 18.9 |
+27.8 | 24.3 |
+32.2 | 28.1 |
+36.6 | 31.7 |
+38.2 | 33.3 |
+39.9 | 34.7 |
+41.5 | 35.9 |
+42.3 | 36.7 |
+43.8 | 37.9 |
+44.7 | 38.5 |
+
+
+| Download |
+model |
+model |
+model |
+model |
+model |
+model |
+model |
+model |
+model |
+model |
+model |
+
+
+
+Both MoCo-v2 and our CutLER are trained for the 1x schedule using Detectron2, except for extremely low-shot settings with 1% or 2% labels. When training with 1% or 2% labels, we train both MoCo-v2 and our model for 3,600 iterations with a batch size of 16.
+
+## License
+The majority of CutLER, Detectron2 and DINO are licensed under the [CC-BY-NC license](LICENSE), however portions of the project are available under separate license terms: TokenCut, Bilateral Solver and CRF are licensed under the MIT license; If you later add other third party code, please keep this license info updated, and please let us know if that component is licensed under something other than CC-BY-NC, MIT, or CC0.
+
+## Ethical Considerations
+CutLER's wide range of detection capabilities may introduce similar challenges to many other visual recognition methods.
+As the image can contain arbitrary instances, it may impact the model output.
+
+## How to get support from us?
+If you have any general questions, feel free to email us at [Xudong Wang](mailto:xdwang@eecs.berkeley.edu), [Ishan Misra](mailto:imisra@meta.com) and [Rohit Girdhar](mailto:rgirdhar@meta.com). If you have code or implementation-related questions, please feel free to send emails to us or open an issue in this codebase (We recommend that you open an issue in this codebase, because your questions may help others).
+
+## Citation
+If you find our work inspiring or use our codebase in your research, please consider giving a star ⭐ and a citation.
+```
+@inproceedings{wang2023cut,
+ title={Cut and learn for unsupervised object detection and instance segmentation},
+ author={Wang, Xudong and Girdhar, Rohit and Yu, Stella X and Misra, Ishan},
+ booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
+ pages={3124--3134},
+ year={2023}
+}
+```
+
+```
+@article{wang2023videocutler,
+ title={VideoCutLER: Surprisingly Simple Unsupervised Video Instance Segmentation},
+ author={Wang, Xudong and Misra, Ishan and Zeng, Ziyun and Girdhar, Rohit and Darrell, Trevor},
+ journal={arXiv preprint arXiv:2308.14710},
+ year={2023}
+}
+```
diff --git a/cog.yaml b/cog.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..185afeec9b7f23dcf15fc0f8299ace8f7085c1b0
--- /dev/null
+++ b/cog.yaml
@@ -0,0 +1,24 @@
+build:
+ gpu: true
+ cuda: "11.6"
+ python_version: "3.8"
+ python_packages:
+ - "torch==1.11.0"
+ - "torchvision==0.12.0"
+ - "faiss-gpu==1.7.2"
+ - "opencv-python==4.6.0.66"
+ - "scikit-image==0.19.2"
+ - "scikit-learn==1.1.1"
+ - "shapely==1.8.2"
+ - "timm==0.5.4"
+ - "pyyaml==6.0"
+ - "colored==1.4.4"
+ - "fvcore==0.1.5.post20220512"
+ - "gdown==4.5.4"
+ - "pycocotools==2.0.6"
+ - "numpy==1.20.0"
+
+ run:
+ - pip install git+https://github.com/lucasb-eyer/pydensecrf.git
+
+predict: "maskcut/predict.py:Predictor"
diff --git a/custom_CutLER b/custom_CutLER
deleted file mode 160000
index c47b5dfc84f4480ffb5fae65a3d618a5c0c14d3e..0000000000000000000000000000000000000000
--- a/custom_CutLER
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c47b5dfc84f4480ffb5fae65a3d618a5c0c14d3e
diff --git a/cutler/__init__.py b/cutler/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..b420f7c6835f5a349dfee73390f28c9093ed60a6
--- /dev/null
+++ b/cutler/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+import config
+import engine
+import modeling
+import structures
+import tools
+import demo
+
+# dataset loading
+from . import data # register all new datasets
+from data import datasets # register all new datasets
+from solver import *
+
+# from .data import register_all_imagenet
\ No newline at end of file
diff --git a/cutler/config/__init__.py b/cutler/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..4c181f3dfa1414d9ad590a997bce46d5ec53baea
--- /dev/null
+++ b/cutler/config/__init__.py
@@ -0,0 +1,3 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from .cutler_config import add_cutler_config
\ No newline at end of file
diff --git a/cutler/config/cutler_config.py b/cutler/config/cutler_config.py
new file mode 100644
index 0000000000000000000000000000000000000000..344ea05de6d647661c63a4e7ecee4c677e1ce7b0
--- /dev/null
+++ b/cutler/config/cutler_config.py
@@ -0,0 +1,19 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from detectron2.config import CfgNode as CN
+
+def add_cutler_config(cfg):
+ cfg.DATALOADER.COPY_PASTE = False
+ cfg.DATALOADER.COPY_PASTE_RATE = 0.0
+ cfg.DATALOADER.COPY_PASTE_MIN_RATIO = 0.5
+ cfg.DATALOADER.COPY_PASTE_MAX_RATIO = 1.0
+ cfg.DATALOADER.COPY_PASTE_RANDOM_NUM = True
+ cfg.DATALOADER.VISUALIZE_COPY_PASTE = False
+
+ cfg.MODEL.ROI_HEADS.USE_DROPLOSS = False
+ cfg.MODEL.ROI_HEADS.DROPLOSS_IOU_THRESH = 0.0
+
+ cfg.SOLVER.BASE_LR_MULTIPLIER = 1
+ cfg.SOLVER.BASE_LR_MULTIPLIER_NAMES = []
+
+ cfg.TEST.NO_SEGM = False
\ No newline at end of file
diff --git a/cutler/data/__init__.py b/cutler/data/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..522de8b9f4473212eb8ba75a6781dc2c4400a8d4
--- /dev/null
+++ b/cutler/data/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from . import datasets # ensure the builtin datasets are registered
+from .detection_utils import * # isort:skip
+from .build import (
+ build_batch_data_loader,
+ build_detection_train_loader,
+ build_detection_test_loader,
+ get_detection_dataset_dicts,
+ load_proposals_into_dataset,
+ print_instances_class_histogram,
+ )
+from detectron2.data.common import *
+
+__all__ = [k for k in globals().keys() if not k.startswith("_")]
\ No newline at end of file
diff --git a/cutler/data/build.py b/cutler/data/build.py
new file mode 100644
index 0000000000000000000000000000000000000000..5867c8dd5e2111aa01ff8bcef4198f419687cd1a
--- /dev/null
+++ b/cutler/data/build.py
@@ -0,0 +1,561 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/build.py
+
+import itertools
+import logging
+import numpy as np
+import operator
+import pickle
+from typing import Any, Callable, Dict, List, Optional, Union
+import torch
+import torch.utils.data as torchdata
+from tabulate import tabulate
+from termcolor import colored
+
+from detectron2.config import configurable
+from detectron2.structures import BoxMode
+from detectron2.utils.comm import get_world_size
+from detectron2.utils.env import seed_all_rng
+from detectron2.utils.file_io import PathManager
+from detectron2.utils.logger import _log_api_usage, log_first_n
+
+from detectron2.data.catalog import DatasetCatalog, MetadataCatalog
+from detectron2.data.common import AspectRatioGroupedDataset, DatasetFromList, MapDataset, ToIterableDataset
+from data.dataset_mapper import DatasetMapper
+from data.detection_utils import check_metadata_consistency
+from detectron2.data.samplers import (
+ InferenceSampler,
+ RandomSubsetTrainingSampler,
+ RepeatFactorTrainingSampler,
+ TrainingSampler,
+)
+
+"""
+This file contains the default logic to build a dataloader for training or testing.
+"""
+
+__all__ = [
+ "build_batch_data_loader",
+ "build_detection_train_loader",
+ "build_detection_test_loader",
+ "get_detection_dataset_dicts",
+ "load_proposals_into_dataset",
+ "print_instances_class_histogram",
+]
+
+
+def filter_images_with_only_crowd_annotations(dataset_dicts):
+ """
+ Filter out images with none annotations or only crowd annotations
+ (i.e., images without non-crowd annotations).
+ A common training-time preprocessing on COCO dataset.
+
+ Args:
+ dataset_dicts (list[dict]): annotations in Detectron2 Dataset format.
+
+ Returns:
+ list[dict]: the same format, but filtered.
+ """
+ num_before = len(dataset_dicts)
+
+ def valid(anns):
+ for ann in anns:
+ if ann.get("iscrowd", 0) == 0:
+ return True
+ return False
+
+ dataset_dicts = [x for x in dataset_dicts if valid(x["annotations"])]
+ num_after = len(dataset_dicts)
+ logger = logging.getLogger(__name__)
+ logger.info(
+ "Removed {} images with no usable annotations. {} images left.".format(
+ num_before - num_after, num_after
+ )
+ )
+ print("Removed {} images with no usable annotations. {} images left.".format(
+ num_before - num_after, num_after
+ ))
+ return dataset_dicts
+
+
+def filter_images_with_few_keypoints(dataset_dicts, min_keypoints_per_image):
+ """
+ Filter out images with too few number of keypoints.
+
+ Args:
+ dataset_dicts (list[dict]): annotations in Detectron2 Dataset format.
+
+ Returns:
+ list[dict]: the same format as dataset_dicts, but filtered.
+ """
+ num_before = len(dataset_dicts)
+
+ def visible_keypoints_in_image(dic):
+ # Each keypoints field has the format [x1, y1, v1, ...], where v is visibility
+ annotations = dic["annotations"]
+ return sum(
+ (np.array(ann["keypoints"][2::3]) > 0).sum()
+ for ann in annotations
+ if "keypoints" in ann
+ )
+
+ dataset_dicts = [
+ x for x in dataset_dicts if visible_keypoints_in_image(x) >= min_keypoints_per_image
+ ]
+ num_after = len(dataset_dicts)
+ logger = logging.getLogger(__name__)
+ logger.info(
+ "Removed {} images with fewer than {} keypoints.".format(
+ num_before - num_after, min_keypoints_per_image
+ )
+ )
+ return dataset_dicts
+
+
+def load_proposals_into_dataset(dataset_dicts, proposal_file):
+ """
+ Load precomputed object proposals into the dataset.
+
+ The proposal file should be a pickled dict with the following keys:
+
+ - "ids": list[int] or list[str], the image ids
+ - "boxes": list[np.ndarray], each is an Nx4 array of boxes corresponding to the image id
+ - "objectness_logits": list[np.ndarray], each is an N sized array of objectness scores
+ corresponding to the boxes.
+ - "bbox_mode": the BoxMode of the boxes array. Defaults to ``BoxMode.XYXY_ABS``.
+
+ Args:
+ dataset_dicts (list[dict]): annotations in Detectron2 Dataset format.
+ proposal_file (str): file path of pre-computed proposals, in pkl format.
+
+ Returns:
+ list[dict]: the same format as dataset_dicts, but added proposal field.
+ """
+ logger = logging.getLogger(__name__)
+ logger.info("Loading proposals from: {}".format(proposal_file))
+
+ with PathManager.open(proposal_file, "rb") as f:
+ proposals = pickle.load(f, encoding="latin1")
+
+ # Rename the key names in D1 proposal files
+ rename_keys = {"indexes": "ids", "scores": "objectness_logits"}
+ for key in rename_keys:
+ if key in proposals:
+ proposals[rename_keys[key]] = proposals.pop(key)
+
+ # Fetch the indexes of all proposals that are in the dataset
+ # Convert image_id to str since they could be int.
+ img_ids = set({str(record["image_id"]) for record in dataset_dicts})
+ id_to_index = {str(id): i for i, id in enumerate(proposals["ids"]) if str(id) in img_ids}
+
+ # Assuming default bbox_mode of precomputed proposals are 'XYXY_ABS'
+ bbox_mode = BoxMode(proposals["bbox_mode"]) if "bbox_mode" in proposals else BoxMode.XYXY_ABS
+
+ for record in dataset_dicts:
+ # Get the index of the proposal
+ i = id_to_index[str(record["image_id"])]
+
+ boxes = proposals["boxes"][i]
+ objectness_logits = proposals["objectness_logits"][i]
+ # Sort the proposals in descending order of the scores
+ inds = objectness_logits.argsort()[::-1]
+ record["proposal_boxes"] = boxes[inds]
+ record["proposal_objectness_logits"] = objectness_logits[inds]
+ record["proposal_bbox_mode"] = bbox_mode
+
+ return dataset_dicts
+
+
+def print_instances_class_histogram(dataset_dicts, class_names):
+ """
+ Args:
+ dataset_dicts (list[dict]): list of dataset dicts.
+ class_names (list[str]): list of class names (zero-indexed).
+ """
+ num_classes = len(class_names)
+ hist_bins = np.arange(num_classes + 1)
+ histogram = np.zeros((num_classes,), dtype=np.int)
+ for entry in dataset_dicts:
+ annos = entry["annotations"]
+ classes = np.asarray(
+ [x["category_id"] for x in annos if not x.get("iscrowd", 0)], dtype=np.int
+ )
+ if len(classes):
+ assert classes.min() >= 0, f"Got an invalid category_id={classes.min()}"
+ assert (
+ classes.max() < num_classes
+ ), f"Got an invalid category_id={classes.max()} for a dataset of {num_classes} classes"
+ histogram += np.histogram(classes, bins=hist_bins)[0]
+
+ N_COLS = min(6, len(class_names) * 2)
+
+ def short_name(x):
+ # make long class names shorter. useful for lvis
+ if len(x) > 13:
+ return x[:11] + ".."
+ return x
+
+ data = list(
+ itertools.chain(*[[short_name(class_names[i]), int(v)] for i, v in enumerate(histogram)])
+ )
+ total_num_instances = sum(data[1::2])
+ data.extend([None] * (N_COLS - (len(data) % N_COLS)))
+ if num_classes > 1:
+ data.extend(["total", total_num_instances])
+ data = itertools.zip_longest(*[data[i::N_COLS] for i in range(N_COLS)])
+ table = tabulate(
+ data,
+ headers=["category", "#instances"] * (N_COLS // 2),
+ tablefmt="pipe",
+ numalign="left",
+ stralign="center",
+ )
+ log_first_n(
+ logging.INFO,
+ "Distribution of instances among all {} categories:\n".format(num_classes)
+ + colored(table, "cyan"),
+ key="message",
+ )
+
+
+def get_detection_dataset_dicts(
+ names,
+ filter_empty=True,
+ min_keypoints=0,
+ proposal_files=None,
+ check_consistency=True,
+):
+ """
+ Load and prepare dataset dicts for instance detection/segmentation and semantic segmentation.
+
+ Args:
+ names (str or list[str]): a dataset name or a list of dataset names
+ filter_empty (bool): whether to filter out images without instance annotations
+ min_keypoints (int): filter out images with fewer keypoints than
+ `min_keypoints`. Set to 0 to do nothing.
+ proposal_files (list[str]): if given, a list of object proposal files
+ that match each dataset in `names`.
+ check_consistency (bool): whether to check if datasets have consistent metadata.
+
+ Returns:
+ list[dict]: a list of dicts following the standard dataset dict format.
+ """
+ if isinstance(names, str):
+ names = [names]
+ assert len(names), names
+ dataset_dicts = [DatasetCatalog.get(dataset_name) for dataset_name in names]
+
+ if isinstance(dataset_dicts[0], torchdata.Dataset):
+ if len(dataset_dicts) > 1:
+ # ConcatDataset does not work for iterable style dataset.
+ # We could support concat for iterable as well, but it's often
+ # not a good idea to concat iterables anyway.
+ return torchdata.ConcatDataset(dataset_dicts)
+ return dataset_dicts[0]
+
+ for dataset_name, dicts in zip(names, dataset_dicts):
+ assert len(dicts), "Dataset '{}' is empty!".format(dataset_name)
+
+ if proposal_files is not None:
+ assert len(names) == len(proposal_files)
+ # load precomputed proposals from proposal files
+ dataset_dicts = [
+ load_proposals_into_dataset(dataset_i_dicts, proposal_file)
+ for dataset_i_dicts, proposal_file in zip(dataset_dicts, proposal_files)
+ ]
+
+ dataset_dicts = list(itertools.chain.from_iterable(dataset_dicts))
+
+ has_instances = "annotations" in dataset_dicts[0]
+ if filter_empty and has_instances:
+ dataset_dicts = filter_images_with_only_crowd_annotations(dataset_dicts)
+ if min_keypoints > 0 and has_instances:
+ dataset_dicts = filter_images_with_few_keypoints(dataset_dicts, min_keypoints)
+
+ if check_consistency and has_instances:
+ try:
+ class_names = MetadataCatalog.get(names[0]).thing_classes
+ check_metadata_consistency("thing_classes", names)
+ print_instances_class_histogram(dataset_dicts, class_names)
+ except AttributeError: # class names are not available for this dataset
+ pass
+
+ assert len(dataset_dicts), "No valid data found in {}.".format(",".join(names))
+ return dataset_dicts
+
+
+def build_batch_data_loader(
+ dataset,
+ sampler,
+ total_batch_size,
+ *,
+ aspect_ratio_grouping=False,
+ num_workers=0,
+ collate_fn=None,
+):
+ """
+ Build a batched dataloader. The main differences from `torch.utils.data.DataLoader` are:
+ 1. support aspect ratio grouping options
+ 2. use no "batch collation", because this is common for detection training
+
+ Args:
+ dataset (torch.utils.data.Dataset): a pytorch map-style or iterable dataset.
+ sampler (torch.utils.data.sampler.Sampler or None): a sampler that produces indices.
+ Must be provided iff. ``dataset`` is a map-style dataset.
+ total_batch_size, aspect_ratio_grouping, num_workers, collate_fn: see
+ :func:`build_detection_train_loader`.
+
+ Returns:
+ iterable[list]. Length of each list is the batch size of the current
+ GPU. Each element in the list comes from the dataset.
+ """
+ world_size = get_world_size()
+ assert (
+ total_batch_size > 0 and total_batch_size % world_size == 0
+ ), "Total batch size ({}) must be divisible by the number of gpus ({}).".format(
+ total_batch_size, world_size
+ )
+ batch_size = total_batch_size // world_size
+
+ if isinstance(dataset, torchdata.IterableDataset):
+ assert sampler is None, "sampler must be None if dataset is IterableDataset"
+ else:
+ dataset = ToIterableDataset(dataset, sampler)
+
+ if aspect_ratio_grouping:
+ data_loader = torchdata.DataLoader(
+ dataset,
+ num_workers=num_workers,
+ collate_fn=operator.itemgetter(0), # don't batch, but yield individual elements
+ worker_init_fn=worker_init_reset_seed,
+ ) # yield individual mapped dict
+ data_loader = AspectRatioGroupedDataset(data_loader, batch_size)
+ if collate_fn is None:
+ return data_loader
+ return MapDataset(data_loader, collate_fn)
+ else:
+ return torchdata.DataLoader(
+ dataset,
+ batch_size=batch_size,
+ drop_last=True,
+ num_workers=num_workers,
+ collate_fn=trivial_batch_collator if collate_fn is None else collate_fn,
+ worker_init_fn=worker_init_reset_seed,
+ )
+
+
+def _train_loader_from_config(cfg, mapper=None, *, dataset=None, sampler=None):
+ if dataset is None:
+ dataset = get_detection_dataset_dicts(
+ cfg.DATASETS.TRAIN,
+ filter_empty=cfg.DATALOADER.FILTER_EMPTY_ANNOTATIONS,
+ min_keypoints=cfg.MODEL.ROI_KEYPOINT_HEAD.MIN_KEYPOINTS_PER_IMAGE
+ if cfg.MODEL.KEYPOINT_ON
+ else 0,
+ proposal_files=cfg.DATASETS.PROPOSAL_FILES_TRAIN if cfg.MODEL.LOAD_PROPOSALS else None,
+ )
+ _log_api_usage("dataset." + cfg.DATASETS.TRAIN[0])
+
+ if mapper is None:
+ mapper = DatasetMapper(cfg, True)
+
+ if sampler is None:
+ sampler_name = cfg.DATALOADER.SAMPLER_TRAIN
+ logger = logging.getLogger(__name__)
+ if isinstance(dataset, torchdata.IterableDataset):
+ logger.info("Not using any sampler since the dataset is IterableDataset.")
+ sampler = None
+ else:
+ logger.info("Using training sampler {}".format(sampler_name))
+ if sampler_name == "TrainingSampler":
+ sampler = TrainingSampler(len(dataset))
+ elif sampler_name == "RepeatFactorTrainingSampler":
+ repeat_factors = RepeatFactorTrainingSampler.repeat_factors_from_category_frequency(
+ dataset, cfg.DATALOADER.REPEAT_THRESHOLD
+ )
+ sampler = RepeatFactorTrainingSampler(repeat_factors)
+ elif sampler_name == "RandomSubsetTrainingSampler":
+ sampler = RandomSubsetTrainingSampler(
+ len(dataset), cfg.DATALOADER.RANDOM_SUBSET_RATIO
+ )
+ else:
+ raise ValueError("Unknown training sampler: {}".format(sampler_name))
+
+ return {
+ "dataset": dataset,
+ "sampler": sampler,
+ "mapper": mapper,
+ "total_batch_size": cfg.SOLVER.IMS_PER_BATCH,
+ "aspect_ratio_grouping": cfg.DATALOADER.ASPECT_RATIO_GROUPING,
+ "num_workers": cfg.DATALOADER.NUM_WORKERS,
+ }
+
+
+@configurable(from_config=_train_loader_from_config)
+def build_detection_train_loader(
+ dataset,
+ *,
+ mapper,
+ sampler=None,
+ total_batch_size,
+ aspect_ratio_grouping=True,
+ num_workers=0,
+ collate_fn=None,
+):
+ """
+ Build a dataloader for object detection with some default features.
+
+ Args:
+ dataset (list or torch.utils.data.Dataset): a list of dataset dicts,
+ or a pytorch dataset (either map-style or iterable). It can be obtained
+ by using :func:`DatasetCatalog.get` or :func:`get_detection_dataset_dicts`.
+ mapper (callable): a callable which takes a sample (dict) from dataset and
+ returns the format to be consumed by the model.
+ When using cfg, the default choice is ``DatasetMapper(cfg, is_train=True)``.
+ sampler (torch.utils.data.sampler.Sampler or None): a sampler that produces
+ indices to be applied on ``dataset``.
+ If ``dataset`` is map-style, the default sampler is a :class:`TrainingSampler`,
+ which coordinates an infinite random shuffle sequence across all workers.
+ Sampler must be None if ``dataset`` is iterable.
+ total_batch_size (int): total batch size across all workers.
+ aspect_ratio_grouping (bool): whether to group images with similar
+ aspect ratio for efficiency. When enabled, it requires each
+ element in dataset be a dict with keys "width" and "height".
+ num_workers (int): number of parallel data loading workers
+ collate_fn: a function that determines how to do batching, same as the argument of
+ `torch.utils.data.DataLoader`. Defaults to do no collation and return a list of
+ data. No collation is OK for small batch size and simple data structures.
+ If your batch size is large and each sample contains too many small tensors,
+ it's more efficient to collate them in data loader.
+
+ Returns:
+ torch.utils.data.DataLoader:
+ a dataloader. Each output from it is a ``list[mapped_element]`` of length
+ ``total_batch_size / num_workers``, where ``mapped_element`` is produced
+ by the ``mapper``.
+ """
+ if isinstance(dataset, list):
+ dataset = DatasetFromList(dataset, copy=False)
+ if mapper is not None:
+ dataset = MapDataset(dataset, mapper)
+
+ if isinstance(dataset, torchdata.IterableDataset):
+ assert sampler is None, "sampler must be None if dataset is IterableDataset"
+ else:
+ if sampler is None:
+ sampler = TrainingSampler(len(dataset))
+ assert isinstance(sampler, torchdata.Sampler), f"Expect a Sampler but got {type(sampler)}"
+ return build_batch_data_loader(
+ dataset,
+ sampler,
+ total_batch_size,
+ aspect_ratio_grouping=aspect_ratio_grouping,
+ num_workers=num_workers,
+ collate_fn=collate_fn,
+ )
+
+
+def _test_loader_from_config(cfg, dataset_name, mapper=None):
+ """
+ Uses the given `dataset_name` argument (instead of the names in cfg), because the
+ standard practice is to evaluate each test set individually (not combining them).
+ """
+ if isinstance(dataset_name, str):
+ dataset_name = [dataset_name]
+
+ dataset = get_detection_dataset_dicts(
+ dataset_name,
+ filter_empty=False,
+ proposal_files=[
+ cfg.DATASETS.PROPOSAL_FILES_TEST[list(cfg.DATASETS.TEST).index(x)] for x in dataset_name
+ ]
+ if cfg.MODEL.LOAD_PROPOSALS
+ else None,
+ )
+ if mapper is None:
+ mapper = DatasetMapper(cfg, False)
+ return {
+ "dataset": dataset,
+ "mapper": mapper,
+ "num_workers": cfg.DATALOADER.NUM_WORKERS,
+ "sampler": InferenceSampler(len(dataset))
+ if not isinstance(dataset, torchdata.IterableDataset)
+ else None,
+ }
+
+
+@configurable(from_config=_test_loader_from_config)
+def build_detection_test_loader(
+ dataset: Union[List[Any], torchdata.Dataset],
+ *,
+ mapper: Callable[[Dict[str, Any]], Any],
+ sampler: Optional[torchdata.Sampler] = None,
+ batch_size: int = 1,
+ num_workers: int = 0,
+ collate_fn: Optional[Callable[[List[Any]], Any]] = None,
+) -> torchdata.DataLoader:
+ """
+ Similar to `build_detection_train_loader`, with default batch size = 1,
+ and sampler = :class:`InferenceSampler`. This sampler coordinates all workers
+ to produce the exact set of all samples.
+
+ Args:
+ dataset: a list of dataset dicts,
+ or a pytorch dataset (either map-style or iterable). They can be obtained
+ by using :func:`DatasetCatalog.get` or :func:`get_detection_dataset_dicts`.
+ mapper: a callable which takes a sample (dict) from dataset
+ and returns the format to be consumed by the model.
+ When using cfg, the default choice is ``DatasetMapper(cfg, is_train=False)``.
+ sampler: a sampler that produces
+ indices to be applied on ``dataset``. Default to :class:`InferenceSampler`,
+ which splits the dataset across all workers. Sampler must be None
+ if `dataset` is iterable.
+ batch_size: the batch size of the data loader to be created.
+ Default to 1 image per worker since this is the standard when reporting
+ inference time in papers.
+ num_workers: number of parallel data loading workers
+ collate_fn: same as the argument of `torch.utils.data.DataLoader`.
+ Defaults to do no collation and return a list of data.
+
+ Returns:
+ DataLoader: a torch DataLoader, that loads the given detection
+ dataset, with test-time transformation and batching.
+
+ Examples:
+ ::
+ data_loader = build_detection_test_loader(
+ DatasetRegistry.get("my_test"),
+ mapper=DatasetMapper(...))
+
+ # or, instantiate with a CfgNode:
+ data_loader = build_detection_test_loader(cfg, "my_test")
+ """
+ if isinstance(dataset, list):
+ dataset = DatasetFromList(dataset, copy=False)
+ if mapper is not None:
+ dataset = MapDataset(dataset, mapper)
+ if isinstance(dataset, torchdata.IterableDataset):
+ assert sampler is None, "sampler must be None if dataset is IterableDataset"
+ else:
+ if sampler is None:
+ sampler = InferenceSampler(len(dataset))
+ return torchdata.DataLoader(
+ dataset,
+ batch_size=batch_size,
+ sampler=sampler,
+ drop_last=False,
+ num_workers=num_workers,
+ collate_fn=trivial_batch_collator if collate_fn is None else collate_fn,
+ )
+
+
+def trivial_batch_collator(batch):
+ """
+ A batch collator that does nothing.
+ """
+ return batch
+
+
+def worker_init_reset_seed(worker_id):
+ initial_seed = torch.initial_seed() % 2**31
+ seed_all_rng(initial_seed + worker_id)
diff --git a/cutler/data/dataset_mapper.py b/cutler/data/dataset_mapper.py
new file mode 100644
index 0000000000000000000000000000000000000000..02687c7c9491009159bfe6ab46307bb1b6e5d09c
--- /dev/null
+++ b/cutler/data/dataset_mapper.py
@@ -0,0 +1,193 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/dataset_mapper.py
+
+import copy
+import logging
+import numpy as np
+from typing import List, Optional, Union
+import torch
+
+from detectron2.config import configurable
+
+import data.detection_utils as utils
+import data.transforms as T
+
+"""
+This file contains the default mapping that's applied to "dataset dicts".
+"""
+
+__all__ = ["DatasetMapper"]
+
+
+class DatasetMapper:
+ """
+ A callable which takes a dataset dict in Detectron2 Dataset format,
+ and map it into a format used by the model.
+
+ This is the default callable to be used to map your dataset dict into training data.
+ You may need to follow it to implement your own one for customized logic,
+ such as a different way to read or transform images.
+ See :doc:`/tutorials/data_loading` for details.
+
+ The callable currently does the following:
+
+ 1. Read the image from "file_name"
+ 2. Applies cropping/geometric transforms to the image and annotations
+ 3. Prepare data and annotations to Tensor and :class:`Instances`
+ """
+
+ @configurable
+ def __init__(
+ self,
+ is_train: bool,
+ *,
+ augmentations: List[Union[T.Augmentation, T.Transform]],
+ image_format: str,
+ use_instance_mask: bool = False,
+ use_keypoint: bool = False,
+ instance_mask_format: str = "polygon",
+ keypoint_hflip_indices: Optional[np.ndarray] = None,
+ precomputed_proposal_topk: Optional[int] = None,
+ recompute_boxes: bool = False,
+ ):
+ """
+ NOTE: this interface is experimental.
+
+ Args:
+ is_train: whether it's used in training or inference
+ augmentations: a list of augmentations or deterministic transforms to apply
+ image_format: an image format supported by :func:`detection_utils.read_image`.
+ use_instance_mask: whether to process instance segmentation annotations, if available
+ use_keypoint: whether to process keypoint annotations if available
+ instance_mask_format: one of "polygon" or "bitmask". Process instance segmentation
+ masks into this format.
+ keypoint_hflip_indices: see :func:`detection_utils.create_keypoint_hflip_indices`
+ precomputed_proposal_topk: if given, will load pre-computed
+ proposals from dataset_dict and keep the top k proposals for each image.
+ recompute_boxes: whether to overwrite bounding box annotations
+ by computing tight bounding boxes from instance mask annotations.
+ """
+ if recompute_boxes:
+ assert use_instance_mask, "recompute_boxes requires instance masks"
+ # fmt: off
+ self.is_train = is_train
+ self.augmentations = T.AugmentationList(augmentations)
+ self.image_format = image_format
+ self.use_instance_mask = use_instance_mask
+ self.instance_mask_format = instance_mask_format
+ self.use_keypoint = use_keypoint
+ self.keypoint_hflip_indices = keypoint_hflip_indices
+ self.proposal_topk = precomputed_proposal_topk
+ self.recompute_boxes = recompute_boxes
+ # fmt: on
+ logger = logging.getLogger(__name__)
+ mode = "training" if is_train else "inference"
+ logger.info(f"[DatasetMapper] Augmentations used in {mode}: {augmentations}")
+
+ @classmethod
+ def from_config(cls, cfg, is_train: bool = True):
+ augs = utils.build_augmentation(cfg, is_train)
+ if cfg.INPUT.CROP.ENABLED and is_train:
+ augs.insert(0, T.RandomCrop(cfg.INPUT.CROP.TYPE, cfg.INPUT.CROP.SIZE))
+ recompute_boxes = cfg.MODEL.MASK_ON
+ else:
+ recompute_boxes = False
+
+ ret = {
+ "is_train": is_train,
+ "augmentations": augs,
+ "image_format": cfg.INPUT.FORMAT,
+ "use_instance_mask": cfg.MODEL.MASK_ON,
+ "instance_mask_format": cfg.INPUT.MASK_FORMAT,
+ "use_keypoint": cfg.MODEL.KEYPOINT_ON,
+ "recompute_boxes": recompute_boxes,
+ }
+
+ if cfg.MODEL.KEYPOINT_ON:
+ ret["keypoint_hflip_indices"] = utils.create_keypoint_hflip_indices(cfg.DATASETS.TRAIN)
+
+ if cfg.MODEL.LOAD_PROPOSALS:
+ ret["precomputed_proposal_topk"] = (
+ cfg.DATASETS.PRECOMPUTED_PROPOSAL_TOPK_TRAIN
+ if is_train
+ else cfg.DATASETS.PRECOMPUTED_PROPOSAL_TOPK_TEST
+ )
+ return ret
+
+ def _transform_annotations(self, dataset_dict, transforms, image_shape):
+ # USER: Modify this if you want to keep them for some reason.
+ for anno in dataset_dict["annotations"]:
+ if not self.use_instance_mask:
+ anno.pop("segmentation", None)
+ if not self.use_keypoint:
+ anno.pop("keypoints", None)
+
+ # USER: Implement additional transformations if you have other types of data
+ annos = [
+ utils.transform_instance_annotations(
+ obj, transforms, image_shape, keypoint_hflip_indices=self.keypoint_hflip_indices
+ )
+ for obj in dataset_dict.pop("annotations")
+ if obj.get("iscrowd", 0) == 0
+ ]
+ instances = utils.annotations_to_instances(
+ annos, image_shape, mask_format=self.instance_mask_format
+ )
+
+ # After transforms such as cropping are applied, the bounding box may no longer
+ # tightly bound the object. As an example, imagine a triangle object
+ # [(0,0), (2,0), (0,2)] cropped by a box [(1,0),(2,2)] (XYXY format). The tight
+ # bounding box of the cropped triangle should be [(1,0),(2,1)], which is not equal to
+ # the intersection of original bounding box and the cropping box.
+ if self.recompute_boxes:
+ instances.gt_boxes = instances.gt_masks.get_bounding_boxes()
+ dataset_dict["instances"] = utils.filter_empty_instances(instances)
+
+ def __call__(self, dataset_dict):
+ """
+ Args:
+ dataset_dict (dict): Metadata of one image, in Detectron2 Dataset format.
+
+ Returns:
+ dict: a format that builtin models in detectron2 accept
+ """
+ dataset_dict = copy.deepcopy(dataset_dict) # it will be modified by code below
+ # USER: Write your own image loading if it's not from a file
+ image = utils.read_image(dataset_dict["file_name"], format=self.image_format)
+ utils.check_image_size(dataset_dict, image)
+
+ # USER: Remove if you don't do semantic/panoptic segmentation.
+ if "sem_seg_file_name" in dataset_dict:
+ sem_seg_gt = utils.read_image(dataset_dict.pop("sem_seg_file_name"), "L").squeeze(2)
+ else:
+ sem_seg_gt = None
+
+ aug_input = T.AugInput(image, sem_seg=sem_seg_gt)
+ transforms = self.augmentations(aug_input)
+ image, sem_seg_gt = aug_input.image, aug_input.sem_seg
+
+ image_shape = image.shape[:2] # h, w
+ # Pytorch's dataloader is efficient on torch.Tensor due to shared-memory,
+ # but not efficient on large generic data structures due to the use of pickle & mp.Queue.
+ # Therefore it's important to use torch.Tensor.
+ dataset_dict["image"] = torch.as_tensor(np.ascontiguousarray(image.transpose(2, 0, 1)))
+ if sem_seg_gt is not None:
+ dataset_dict["sem_seg"] = torch.as_tensor(sem_seg_gt.astype("long"))
+
+ # USER: Remove if you don't use pre-computed proposals.
+ # Most users would not need this feature.
+ if self.proposal_topk is not None:
+ utils.transform_proposals(
+ dataset_dict, image_shape, transforms, proposal_topk=self.proposal_topk
+ )
+
+ if not self.is_train:
+ # USER: Modify this if you want to keep them for some reason.
+ dataset_dict.pop("annotations", None)
+ dataset_dict.pop("sem_seg_file_name", None)
+ return dataset_dict
+
+ if "annotations" in dataset_dict:
+ self._transform_annotations(dataset_dict, transforms, image_shape)
+
+ return dataset_dict
diff --git a/cutler/data/datasets/__init__.py b/cutler/data/datasets/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5f740d59c4cc48fd8663ba052cda92a2ba3e0727
--- /dev/null
+++ b/cutler/data/datasets/__init__.py
@@ -0,0 +1,16 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+from .coco import load_coco_json, load_sem_seg, register_coco_instances, convert_to_coco_json
+from .builtin import (
+ register_all_imagenet,
+ register_all_uvo,
+ register_all_coco_ca,
+ register_all_coco_semi,
+ register_all_lvis,
+ register_all_voc,
+ register_all_cross_domain,
+ register_all_kitti,
+ register_all_objects365,
+ register_all_openimages,
+ )
+
+__all__ = [k for k in globals().keys() if not k.startswith("_")]
\ No newline at end of file
diff --git a/cutler/data/datasets/builtin.py b/cutler/data/datasets/builtin.py
new file mode 100644
index 0000000000000000000000000000000000000000..0757829f02c3b29fdfabf49abeb3b0d4e77db3a9
--- /dev/null
+++ b/cutler/data/datasets/builtin.py
@@ -0,0 +1,216 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/datasets/builtin.py
+
+"""
+This file registers pre-defined datasets at hard-coded paths, and their metadata.
+
+We hard-code metadata for common datasets. This will enable:
+1. Consistency check when loading the datasets
+2. Use models on these standard datasets directly and run demos,
+ without having to download the dataset annotations
+
+We hard-code some paths to the dataset that's assumed to
+exist in "./datasets/".
+
+Users SHOULD NOT use this file to create new dataset / metadata for new dataset.
+To add new dataset, refer to the tutorial "docs/DATASETS.md".
+"""
+
+import os
+
+from .builtin_meta import _get_builtin_metadata
+from .coco import register_coco_instances
+
+# ==== Predefined datasets and splits for COCO ==========
+
+_PREDEFINED_SPLITS_COCO_SEMI = {}
+_PREDEFINED_SPLITS_COCO_SEMI["coco_semi"] = {
+ # we use seed 42 to be consistent with previous works on SSL detection and segmentation
+ "coco_semi_1perc": ("coco/train2017", "coco/annotations/1perc_instances_train2017.json"),
+ "coco_semi_2perc": ("coco/train2017", "coco/annotations/2perc_instances_train2017.json"),
+ "coco_semi_5perc": ("coco/train2017", "coco/annotations/5perc_instances_train2017.json"),
+ "coco_semi_10perc": ("coco/train2017", "coco/annotations/10perc_instances_train2017.json"),
+ "coco_semi_20perc": ("coco/train2017", "coco/annotations/20perc_instances_train2017.json"),
+ "coco_semi_30perc": ("coco/train2017", "coco/annotations/30perc_instances_train2017.json"),
+ "coco_semi_40perc": ("coco/train2017", "coco/annotations/40perc_instances_train2017.json"),
+ "coco_semi_50perc": ("coco/train2017", "coco/annotations/50perc_instances_train2017.json"),
+ "coco_semi_60perc": ("coco/train2017", "coco/annotations/60perc_instances_train2017.json"),
+ "coco_semi_80perc": ("coco/train2017", "coco/annotations/80perc_instances_train2017.json"),
+}
+
+_PREDEFINED_SPLITS_COCO_CA = {}
+_PREDEFINED_SPLITS_COCO_CA["coco_cls_agnostic"] = {
+ "cls_agnostic_coco": ("coco/val2017", "coco/annotations/coco_cls_agnostic_instances_val2017.json"),
+ "cls_agnostic_coco20k": ("coco/train2014", "coco/annotations/coco20k_trainval_gt.json"),
+}
+
+_PREDEFINED_SPLITS_IMAGENET = {}
+_PREDEFINED_SPLITS_IMAGENET["imagenet"] = {
+ # maskcut annotations
+ "imagenet_train": ("imagenet/train", "imagenet/annotations/imagenet_train_fixsize480_tau0.15_N3.json"),
+ # self-training round 1
+ "imagenet_train_r1": ("imagenet/train", "imagenet/annotations/cutler_imagenet1k_train_r1.json"),
+ # self-training round 2
+ "imagenet_train_r2": ("imagenet/train", "imagenet/annotations/cutler_imagenet1k_train_r2.json"),
+ # self-training round 3
+ "imagenet_train_r3": ("imagenet/train", "imagenet/annotations/cutler_imagenet1k_train_r3.json"),
+}
+
+_PREDEFINED_SPLITS_VOC = {}
+_PREDEFINED_SPLITS_VOC["voc"] = {
+ 'cls_agnostic_voc': ("voc/", "voc/annotations/trainvaltest_2007_cls_agnostic.json"),
+}
+
+_PREDEFINED_SPLITS_CROSSDOMAIN = {}
+_PREDEFINED_SPLITS_CROSSDOMAIN["cross_domain"] = {
+ 'cls_agnostic_clipart': ("clipart/", "clipart/annotations/traintest_cls_agnostic.json"),
+ 'cls_agnostic_watercolor': ("watercolor/", "watercolor/annotations/traintest_cls_agnostic.json"),
+ 'cls_agnostic_comic': ("comic/", "comic/annotations/traintest_cls_agnostic.json"),
+}
+
+_PREDEFINED_SPLITS_KITTI = {}
+_PREDEFINED_SPLITS_KITTI["kitti"] = {
+ 'cls_agnostic_kitti': ("kitti/", "kitti/annotations/trainval_cls_agnostic.json"),
+}
+
+_PREDEFINED_SPLITS_LVIS = {}
+_PREDEFINED_SPLITS_LVIS["lvis"] = {
+ "cls_agnostic_lvis": ("coco/", "coco/annotations/lvis1.0_cocofied_val_cls_agnostic.json"),
+}
+
+_PREDEFINED_SPLITS_OBJECTS365 = {}
+_PREDEFINED_SPLITS_OBJECTS365["objects365"] = {
+ 'cls_agnostic_objects365': ("objects365/val", "objects365/annotations/zhiyuan_objv2_val_cls_agnostic.json"),
+}
+
+_PREDEFINED_SPLITS_OpenImages = {}
+_PREDEFINED_SPLITS_OpenImages["openimages"] = {
+ 'cls_agnostic_openimages': ("openImages/validation", "openImages/annotations/openimages_val_cls_agnostic.json"),
+}
+
+_PREDEFINED_SPLITS_UVO = {}
+_PREDEFINED_SPLITS_UVO["uvo"] = {
+ "cls_agnostic_uvo": ("uvo/all_UVO_frames", "uvo/annotations/val_sparse_cleaned_cls_agnostic.json"),
+}
+
+def register_all_imagenet(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_IMAGENET.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_voc(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_VOC.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_cross_domain(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_CROSSDOMAIN.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_kitti(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_KITTI.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_objects365(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_OBJECTS365.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_openimages(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_OpenImages.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_lvis(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_LVIS.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_uvo(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_UVO.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_coco_semi(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_COCO_SEMI.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_coco_ca(root):
+ for dataset_name, splits_per_dataset in _PREDEFINED_SPLITS_COCO_CA.items():
+ for key, (image_root, json_file) in splits_per_dataset.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_builtin_metadata(dataset_name),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+_root = os.path.expanduser(os.getenv("DETECTRON2_DATASETS", "datasets"))
+register_all_coco_semi(_root)
+register_all_coco_ca(_root)
+register_all_imagenet(_root)
+register_all_uvo(_root)
+register_all_voc(_root)
+register_all_cross_domain(_root)
+register_all_kitti(_root)
+register_all_openimages(_root)
+register_all_objects365(_root)
+register_all_lvis(_root)
\ No newline at end of file
diff --git a/cutler/data/datasets/builtin_meta.py b/cutler/data/datasets/builtin_meta.py
new file mode 100644
index 0000000000000000000000000000000000000000..ec6c490b05d7c1a6a58d024700e0464389be117a
--- /dev/null
+++ b/cutler/data/datasets/builtin_meta.py
@@ -0,0 +1,389 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/datasets/builtin_meta.py
+
+"""
+Note:
+For your custom dataset, there is no need to hard-code metadata anywhere in the code.
+For example, for COCO-format dataset, metadata will be obtained automatically
+when calling `load_coco_json`. For other dataset, metadata may also be obtained in other ways
+during loading.
+
+However, we hard-coded metadata for a few common dataset here.
+The only goal is to allow users who don't have these dataset to use pre-trained models.
+Users don't have to download a COCO json (which contains metadata), in order to visualize a
+COCO model (with correct class names and colors).
+"""
+
+
+# All coco categories, together with their nice-looking visualization colors
+# It's from https://github.com/cocodataset/panopticapi/blob/master/panoptic_coco_categories.json
+COCO_CATEGORIES = [
+ {"color": [220, 20, 60], "isthing": 1, "id": 1, "name": "person"},
+ {"color": [119, 11, 32], "isthing": 1, "id": 2, "name": "bicycle"},
+ {"color": [0, 0, 142], "isthing": 1, "id": 3, "name": "car"},
+ {"color": [0, 0, 230], "isthing": 1, "id": 4, "name": "motorcycle"},
+ {"color": [106, 0, 228], "isthing": 1, "id": 5, "name": "airplane"},
+ {"color": [0, 60, 100], "isthing": 1, "id": 6, "name": "bus"},
+ {"color": [0, 80, 100], "isthing": 1, "id": 7, "name": "train"},
+ {"color": [0, 0, 70], "isthing": 1, "id": 8, "name": "truck"},
+ {"color": [0, 0, 192], "isthing": 1, "id": 9, "name": "boat"},
+ {"color": [250, 170, 30], "isthing": 1, "id": 10, "name": "traffic light"},
+ {"color": [100, 170, 30], "isthing": 1, "id": 11, "name": "fire hydrant"},
+ {"color": [220, 220, 0], "isthing": 1, "id": 13, "name": "stop sign"},
+ {"color": [175, 116, 175], "isthing": 1, "id": 14, "name": "parking meter"},
+ {"color": [250, 0, 30], "isthing": 1, "id": 15, "name": "bench"},
+ {"color": [165, 42, 42], "isthing": 1, "id": 16, "name": "bird"},
+ {"color": [255, 77, 255], "isthing": 1, "id": 17, "name": "cat"},
+ {"color": [0, 226, 252], "isthing": 1, "id": 18, "name": "dog"},
+ {"color": [182, 182, 255], "isthing": 1, "id": 19, "name": "horse"},
+ {"color": [0, 82, 0], "isthing": 1, "id": 20, "name": "sheep"},
+ {"color": [120, 166, 157], "isthing": 1, "id": 21, "name": "cow"},
+ {"color": [110, 76, 0], "isthing": 1, "id": 22, "name": "elephant"},
+ {"color": [174, 57, 255], "isthing": 1, "id": 23, "name": "bear"},
+ {"color": [199, 100, 0], "isthing": 1, "id": 24, "name": "zebra"},
+ {"color": [72, 0, 118], "isthing": 1, "id": 25, "name": "giraffe"},
+ {"color": [255, 179, 240], "isthing": 1, "id": 27, "name": "backpack"},
+ {"color": [0, 125, 92], "isthing": 1, "id": 28, "name": "umbrella"},
+ {"color": [209, 0, 151], "isthing": 1, "id": 31, "name": "handbag"},
+ {"color": [188, 208, 182], "isthing": 1, "id": 32, "name": "tie"},
+ {"color": [0, 220, 176], "isthing": 1, "id": 33, "name": "suitcase"},
+ {"color": [255, 99, 164], "isthing": 1, "id": 34, "name": "frisbee"},
+ {"color": [92, 0, 73], "isthing": 1, "id": 35, "name": "skis"},
+ {"color": [133, 129, 255], "isthing": 1, "id": 36, "name": "snowboard"},
+ {"color": [78, 180, 255], "isthing": 1, "id": 37, "name": "sports ball"},
+ {"color": [0, 228, 0], "isthing": 1, "id": 38, "name": "kite"},
+ {"color": [174, 255, 243], "isthing": 1, "id": 39, "name": "baseball bat"},
+ {"color": [45, 89, 255], "isthing": 1, "id": 40, "name": "baseball glove"},
+ {"color": [134, 134, 103], "isthing": 1, "id": 41, "name": "skateboard"},
+ {"color": [145, 148, 174], "isthing": 1, "id": 42, "name": "surfboard"},
+ {"color": [255, 208, 186], "isthing": 1, "id": 43, "name": "tennis racket"},
+ {"color": [197, 226, 255], "isthing": 1, "id": 44, "name": "bottle"},
+ {"color": [171, 134, 1], "isthing": 1, "id": 46, "name": "wine glass"},
+ {"color": [109, 63, 54], "isthing": 1, "id": 47, "name": "cup"},
+ {"color": [207, 138, 255], "isthing": 1, "id": 48, "name": "fork"},
+ {"color": [151, 0, 95], "isthing": 1, "id": 49, "name": "knife"},
+ {"color": [9, 80, 61], "isthing": 1, "id": 50, "name": "spoon"},
+ {"color": [84, 105, 51], "isthing": 1, "id": 51, "name": "bowl"},
+ {"color": [74, 65, 105], "isthing": 1, "id": 52, "name": "banana"},
+ {"color": [166, 196, 102], "isthing": 1, "id": 53, "name": "apple"},
+ {"color": [208, 195, 210], "isthing": 1, "id": 54, "name": "sandwich"},
+ {"color": [255, 109, 65], "isthing": 1, "id": 55, "name": "orange"},
+ {"color": [0, 143, 149], "isthing": 1, "id": 56, "name": "broccoli"},
+ {"color": [179, 0, 194], "isthing": 1, "id": 57, "name": "carrot"},
+ {"color": [209, 99, 106], "isthing": 1, "id": 58, "name": "hot dog"},
+ {"color": [5, 121, 0], "isthing": 1, "id": 59, "name": "pizza"},
+ {"color": [227, 255, 205], "isthing": 1, "id": 60, "name": "donut"},
+ {"color": [147, 186, 208], "isthing": 1, "id": 61, "name": "cake"},
+ {"color": [153, 69, 1], "isthing": 1, "id": 62, "name": "chair"},
+ {"color": [3, 95, 161], "isthing": 1, "id": 63, "name": "couch"},
+ {"color": [163, 255, 0], "isthing": 1, "id": 64, "name": "potted plant"},
+ {"color": [119, 0, 170], "isthing": 1, "id": 65, "name": "bed"},
+ {"color": [0, 182, 199], "isthing": 1, "id": 67, "name": "dining table"},
+ {"color": [0, 165, 120], "isthing": 1, "id": 70, "name": "toilet"},
+ {"color": [183, 130, 88], "isthing": 1, "id": 72, "name": "tv"},
+ {"color": [95, 32, 0], "isthing": 1, "id": 73, "name": "laptop"},
+ {"color": [130, 114, 135], "isthing": 1, "id": 74, "name": "mouse"},
+ {"color": [110, 129, 133], "isthing": 1, "id": 75, "name": "remote"},
+ {"color": [166, 74, 118], "isthing": 1, "id": 76, "name": "keyboard"},
+ {"color": [219, 142, 185], "isthing": 1, "id": 77, "name": "cell phone"},
+ {"color": [79, 210, 114], "isthing": 1, "id": 78, "name": "microwave"},
+ {"color": [178, 90, 62], "isthing": 1, "id": 79, "name": "oven"},
+ {"color": [65, 70, 15], "isthing": 1, "id": 80, "name": "toaster"},
+ {"color": [127, 167, 115], "isthing": 1, "id": 81, "name": "sink"},
+ {"color": [59, 105, 106], "isthing": 1, "id": 82, "name": "refrigerator"},
+ {"color": [142, 108, 45], "isthing": 1, "id": 84, "name": "book"},
+ {"color": [196, 172, 0], "isthing": 1, "id": 85, "name": "clock"},
+ {"color": [95, 54, 80], "isthing": 1, "id": 86, "name": "vase"},
+ {"color": [128, 76, 255], "isthing": 1, "id": 87, "name": "scissors"},
+ {"color": [201, 57, 1], "isthing": 1, "id": 88, "name": "teddy bear"},
+ {"color": [246, 0, 122], "isthing": 1, "id": 89, "name": "hair drier"},
+ {"color": [191, 162, 208], "isthing": 1, "id": 90, "name": "toothbrush"},
+ {"color": [255, 255, 128], "isthing": 0, "id": 92, "name": "banner"},
+ {"color": [147, 211, 203], "isthing": 0, "id": 93, "name": "blanket"},
+ {"color": [150, 100, 100], "isthing": 0, "id": 95, "name": "bridge"},
+ {"color": [168, 171, 172], "isthing": 0, "id": 100, "name": "cardboard"},
+ {"color": [146, 112, 198], "isthing": 0, "id": 107, "name": "counter"},
+ {"color": [210, 170, 100], "isthing": 0, "id": 109, "name": "curtain"},
+ {"color": [92, 136, 89], "isthing": 0, "id": 112, "name": "door-stuff"},
+ {"color": [218, 88, 184], "isthing": 0, "id": 118, "name": "floor-wood"},
+ {"color": [241, 129, 0], "isthing": 0, "id": 119, "name": "flower"},
+ {"color": [217, 17, 255], "isthing": 0, "id": 122, "name": "fruit"},
+ {"color": [124, 74, 181], "isthing": 0, "id": 125, "name": "gravel"},
+ {"color": [70, 70, 70], "isthing": 0, "id": 128, "name": "house"},
+ {"color": [255, 228, 255], "isthing": 0, "id": 130, "name": "light"},
+ {"color": [154, 208, 0], "isthing": 0, "id": 133, "name": "mirror-stuff"},
+ {"color": [193, 0, 92], "isthing": 0, "id": 138, "name": "net"},
+ {"color": [76, 91, 113], "isthing": 0, "id": 141, "name": "pillow"},
+ {"color": [255, 180, 195], "isthing": 0, "id": 144, "name": "platform"},
+ {"color": [106, 154, 176], "isthing": 0, "id": 145, "name": "playingfield"},
+ {"color": [230, 150, 140], "isthing": 0, "id": 147, "name": "railroad"},
+ {"color": [60, 143, 255], "isthing": 0, "id": 148, "name": "river"},
+ {"color": [128, 64, 128], "isthing": 0, "id": 149, "name": "road"},
+ {"color": [92, 82, 55], "isthing": 0, "id": 151, "name": "roof"},
+ {"color": [254, 212, 124], "isthing": 0, "id": 154, "name": "sand"},
+ {"color": [73, 77, 174], "isthing": 0, "id": 155, "name": "sea"},
+ {"color": [255, 160, 98], "isthing": 0, "id": 156, "name": "shelf"},
+ {"color": [255, 255, 255], "isthing": 0, "id": 159, "name": "snow"},
+ {"color": [104, 84, 109], "isthing": 0, "id": 161, "name": "stairs"},
+ {"color": [169, 164, 131], "isthing": 0, "id": 166, "name": "tent"},
+ {"color": [225, 199, 255], "isthing": 0, "id": 168, "name": "towel"},
+ {"color": [137, 54, 74], "isthing": 0, "id": 171, "name": "wall-brick"},
+ {"color": [135, 158, 223], "isthing": 0, "id": 175, "name": "wall-stone"},
+ {"color": [7, 246, 231], "isthing": 0, "id": 176, "name": "wall-tile"},
+ {"color": [107, 255, 200], "isthing": 0, "id": 177, "name": "wall-wood"},
+ {"color": [58, 41, 149], "isthing": 0, "id": 178, "name": "water-other"},
+ {"color": [183, 121, 142], "isthing": 0, "id": 180, "name": "window-blind"},
+ {"color": [255, 73, 97], "isthing": 0, "id": 181, "name": "window-other"},
+ {"color": [107, 142, 35], "isthing": 0, "id": 184, "name": "tree-merged"},
+ {"color": [190, 153, 153], "isthing": 0, "id": 185, "name": "fence-merged"},
+ {"color": [146, 139, 141], "isthing": 0, "id": 186, "name": "ceiling-merged"},
+ {"color": [70, 130, 180], "isthing": 0, "id": 187, "name": "sky-other-merged"},
+ {"color": [134, 199, 156], "isthing": 0, "id": 188, "name": "cabinet-merged"},
+ {"color": [209, 226, 140], "isthing": 0, "id": 189, "name": "table-merged"},
+ {"color": [96, 36, 108], "isthing": 0, "id": 190, "name": "floor-other-merged"},
+ {"color": [96, 96, 96], "isthing": 0, "id": 191, "name": "pavement-merged"},
+ {"color": [64, 170, 64], "isthing": 0, "id": 192, "name": "mountain-merged"},
+ {"color": [152, 251, 152], "isthing": 0, "id": 193, "name": "grass-merged"},
+ {"color": [208, 229, 228], "isthing": 0, "id": 194, "name": "dirt-merged"},
+ {"color": [206, 186, 171], "isthing": 0, "id": 195, "name": "paper-merged"},
+ {"color": [152, 161, 64], "isthing": 0, "id": 196, "name": "food-other-merged"},
+ {"color": [116, 112, 0], "isthing": 0, "id": 197, "name": "building-other-merged"},
+ {"color": [0, 114, 143], "isthing": 0, "id": 198, "name": "rock-merged"},
+ {"color": [102, 102, 156], "isthing": 0, "id": 199, "name": "wall-other-merged"},
+ {"color": [250, 141, 255], "isthing": 0, "id": 200, "name": "rug-merged"},
+]
+
+IMAGENET_CATEGORIES = [
+ {"color": [220, 20, 60], "isthing": 1, "id": 1, "name": "fg"},
+]
+
+UVO_CATEGORIES = [
+ {"color": [220, 20, 60], "isthing": 1, "id": 1, "name": "object"},
+]
+
+# fmt: off
+COCO_PERSON_KEYPOINT_NAMES = (
+ "nose",
+ "left_eye", "right_eye",
+ "left_ear", "right_ear",
+ "left_shoulder", "right_shoulder",
+ "left_elbow", "right_elbow",
+ "left_wrist", "right_wrist",
+ "left_hip", "right_hip",
+ "left_knee", "right_knee",
+ "left_ankle", "right_ankle",
+)
+# fmt: on
+
+# Pairs of keypoints that should be exchanged under horizontal flipping
+COCO_PERSON_KEYPOINT_FLIP_MAP = (
+ ("left_eye", "right_eye"),
+ ("left_ear", "right_ear"),
+ ("left_shoulder", "right_shoulder"),
+ ("left_elbow", "right_elbow"),
+ ("left_wrist", "right_wrist"),
+ ("left_hip", "right_hip"),
+ ("left_knee", "right_knee"),
+ ("left_ankle", "right_ankle"),
+)
+
+# rules for pairs of keypoints to draw a line between, and the line color to use.
+KEYPOINT_CONNECTION_RULES = [
+ # face
+ ("left_ear", "left_eye", (102, 204, 255)),
+ ("right_ear", "right_eye", (51, 153, 255)),
+ ("left_eye", "nose", (102, 0, 204)),
+ ("nose", "right_eye", (51, 102, 255)),
+ # upper-body
+ ("left_shoulder", "right_shoulder", (255, 128, 0)),
+ ("left_shoulder", "left_elbow", (153, 255, 204)),
+ ("right_shoulder", "right_elbow", (128, 229, 255)),
+ ("left_elbow", "left_wrist", (153, 255, 153)),
+ ("right_elbow", "right_wrist", (102, 255, 224)),
+ # lower-body
+ ("left_hip", "right_hip", (255, 102, 0)),
+ ("left_hip", "left_knee", (255, 255, 77)),
+ ("right_hip", "right_knee", (153, 255, 204)),
+ ("left_knee", "left_ankle", (191, 255, 128)),
+ ("right_knee", "right_ankle", (255, 195, 77)),
+]
+
+# All Cityscapes categories, together with their nice-looking visualization colors
+# It's from https://github.com/mcordts/cityscapesScripts/blob/master/cityscapesscripts/helpers/labels.py # noqa
+CITYSCAPES_CATEGORIES = [
+ {"color": (128, 64, 128), "isthing": 0, "id": 7, "trainId": 0, "name": "road"},
+ {"color": (244, 35, 232), "isthing": 0, "id": 8, "trainId": 1, "name": "sidewalk"},
+ {"color": (70, 70, 70), "isthing": 0, "id": 11, "trainId": 2, "name": "building"},
+ {"color": (102, 102, 156), "isthing": 0, "id": 12, "trainId": 3, "name": "wall"},
+ {"color": (190, 153, 153), "isthing": 0, "id": 13, "trainId": 4, "name": "fence"},
+ {"color": (153, 153, 153), "isthing": 0, "id": 17, "trainId": 5, "name": "pole"},
+ {"color": (250, 170, 30), "isthing": 0, "id": 19, "trainId": 6, "name": "traffic light"},
+ {"color": (220, 220, 0), "isthing": 0, "id": 20, "trainId": 7, "name": "traffic sign"},
+ {"color": (107, 142, 35), "isthing": 0, "id": 21, "trainId": 8, "name": "vegetation"},
+ {"color": (152, 251, 152), "isthing": 0, "id": 22, "trainId": 9, "name": "terrain"},
+ {"color": (70, 130, 180), "isthing": 0, "id": 23, "trainId": 10, "name": "sky"},
+ {"color": (220, 20, 60), "isthing": 1, "id": 24, "trainId": 11, "name": "person"},
+ {"color": (255, 0, 0), "isthing": 1, "id": 25, "trainId": 12, "name": "rider"},
+ {"color": (0, 0, 142), "isthing": 1, "id": 26, "trainId": 13, "name": "car"},
+ {"color": (0, 0, 70), "isthing": 1, "id": 27, "trainId": 14, "name": "truck"},
+ {"color": (0, 60, 100), "isthing": 1, "id": 28, "trainId": 15, "name": "bus"},
+ {"color": (0, 80, 100), "isthing": 1, "id": 31, "trainId": 16, "name": "train"},
+ {"color": (0, 0, 230), "isthing": 1, "id": 32, "trainId": 17, "name": "motorcycle"},
+ {"color": (119, 11, 32), "isthing": 1, "id": 33, "trainId": 18, "name": "bicycle"},
+]
+
+# fmt: off
+ADE20K_SEM_SEG_CATEGORIES = [
+ "wall", "building", "sky", "floor", "tree", "ceiling", "road, route", "bed", "window ", "grass", "cabinet", "sidewalk, pavement", "person", "earth, ground", "door", "table", "mountain, mount", "plant", "curtain", "chair", "car", "water", "painting, picture", "sofa", "shelf", "house", "sea", "mirror", "rug", "field", "armchair", "seat", "fence", "desk", "rock, stone", "wardrobe, closet, press", "lamp", "tub", "rail", "cushion", "base, pedestal, stand", "box", "column, pillar", "signboard, sign", "chest of drawers, chest, bureau, dresser", "counter", "sand", "sink", "skyscraper", "fireplace", "refrigerator, icebox", "grandstand, covered stand", "path", "stairs", "runway", "case, display case, showcase, vitrine", "pool table, billiard table, snooker table", "pillow", "screen door, screen", "stairway, staircase", "river", "bridge, span", "bookcase", "blind, screen", "coffee table", "toilet, can, commode, crapper, pot, potty, stool, throne", "flower", "book", "hill", "bench", "countertop", "stove", "palm, palm tree", "kitchen island", "computer", "swivel chair", "boat", "bar", "arcade machine", "hovel, hut, hutch, shack, shanty", "bus", "towel", "light", "truck", "tower", "chandelier", "awning, sunshade, sunblind", "street lamp", "booth", "tv", "plane", "dirt track", "clothes", "pole", "land, ground, soil", "bannister, banister, balustrade, balusters, handrail", "escalator, moving staircase, moving stairway", "ottoman, pouf, pouffe, puff, hassock", "bottle", "buffet, counter, sideboard", "poster, posting, placard, notice, bill, card", "stage", "van", "ship", "fountain", "conveyer belt, conveyor belt, conveyer, conveyor, transporter", "canopy", "washer, automatic washer, washing machine", "plaything, toy", "pool", "stool", "barrel, cask", "basket, handbasket", "falls", "tent", "bag", "minibike, motorbike", "cradle", "oven", "ball", "food, solid food", "step, stair", "tank, storage tank", "trade name", "microwave", "pot", "animal", "bicycle", "lake", "dishwasher", "screen", "blanket, cover", "sculpture", "hood, exhaust hood", "sconce", "vase", "traffic light", "tray", "trash can", "fan", "pier", "crt screen", "plate", "monitor", "bulletin board", "shower", "radiator", "glass, drinking glass", "clock", "flag", # noqa
+]
+# After processed by `prepare_ade20k_sem_seg.py`, id 255 means ignore
+# fmt: on
+
+
+def _get_coco_instances_meta():
+ thing_ids = [k["id"] for k in COCO_CATEGORIES if k["isthing"] == 1]
+ thing_colors = [k["color"] for k in COCO_CATEGORIES if k["isthing"] == 1]
+ assert len(thing_ids) == 80, len(thing_ids)
+ # Mapping from the incontiguous COCO category id to an id in [0, 79]
+ thing_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(thing_ids)}
+ thing_classes = [k["name"] for k in COCO_CATEGORIES if k["isthing"] == 1]
+ ret = {
+ "thing_dataset_id_to_contiguous_id": thing_dataset_id_to_contiguous_id,
+ "thing_classes": thing_classes,
+ "thing_colors": thing_colors,
+ }
+ return ret
+
+def _get_imagenet_instances_meta():
+ thing_ids = [k["id"] for k in IMAGENET_CATEGORIES if k["isthing"] == 1]
+ thing_colors = [k["color"] for k in IMAGENET_CATEGORIES if k["isthing"] == 1]
+ assert len(thing_ids) == 1, len(thing_ids)
+ thing_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(thing_ids)}
+ thing_classes = [k["name"] for k in IMAGENET_CATEGORIES if k["isthing"] == 1]
+ ret = {
+ "thing_dataset_id_to_contiguous_id": thing_dataset_id_to_contiguous_id,
+ "thing_classes": thing_classes,
+ "thing_colors": thing_colors,
+ "class_image_count": [{'id': 1, 'image_count': 116986}]
+ }
+ return ret
+
+def _get_UVO_instances_meta():
+ thing_ids = [k["id"] for k in UVO_CATEGORIES if k["isthing"] == 1]
+ thing_colors = [k["color"] for k in UVO_CATEGORIES if k["isthing"] == 1]
+ assert len(thing_ids) == 1, len(thing_ids)
+ thing_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(thing_ids)}
+ thing_classes = [k["name"] for k in UVO_CATEGORIES if k["isthing"] == 1]
+ ret = {
+ "thing_dataset_id_to_contiguous_id": thing_dataset_id_to_contiguous_id,
+ "thing_classes": thing_classes,
+ "thing_colors": thing_colors,
+ "class_image_count": [{'id': 1, 'image_count': 116986}]
+ }
+ return ret
+
+def _get_coco_panoptic_separated_meta():
+ """
+ Returns metadata for "separated" version of the panoptic segmentation dataset.
+ """
+ stuff_ids = [k["id"] for k in COCO_CATEGORIES if k["isthing"] == 0]
+ assert len(stuff_ids) == 53, len(stuff_ids)
+
+ # For semantic segmentation, this mapping maps from contiguous stuff id
+ # (in [0, 53], used in models) to ids in the dataset (used for processing results)
+ # The id 0 is mapped to an extra category "thing".
+ stuff_dataset_id_to_contiguous_id = {k: i + 1 for i, k in enumerate(stuff_ids)}
+ # When converting COCO panoptic annotations to semantic annotations
+ # We label the "thing" category to 0
+ stuff_dataset_id_to_contiguous_id[0] = 0
+
+ # 54 names for COCO stuff categories (including "things")
+ stuff_classes = ["things"] + [
+ k["name"].replace("-other", "").replace("-merged", "")
+ for k in COCO_CATEGORIES
+ if k["isthing"] == 0
+ ]
+
+ # NOTE: I randomly picked a color for things
+ stuff_colors = [[82, 18, 128]] + [k["color"] for k in COCO_CATEGORIES if k["isthing"] == 0]
+ ret = {
+ "stuff_dataset_id_to_contiguous_id": stuff_dataset_id_to_contiguous_id,
+ "stuff_classes": stuff_classes,
+ "stuff_colors": stuff_colors,
+ }
+ ret.update(_get_coco_instances_meta())
+ return ret
+
+
+def _get_builtin_metadata(dataset_name):
+ if dataset_name in ["coco", "coco_semi"]:
+ return _get_coco_instances_meta()
+ if dataset_name == "coco_panoptic_separated":
+ return _get_coco_panoptic_separated_meta()
+ elif dataset_name in ["imagenet", "kitti", "cross_domain", "lvis", "voc", "coco_cls_agnostic", "objects365", 'openimages']:
+ return _get_imagenet_instances_meta()
+ elif dataset_name == "uvo":
+ return _get_UVO_instances_meta()
+ elif dataset_name == "coco_panoptic_standard":
+ meta = {}
+ # The following metadata maps contiguous id from [0, #thing categories +
+ # #stuff categories) to their names and colors. We have to replica of the
+ # same name and color under "thing_*" and "stuff_*" because the current
+ # visualization function in D2 handles thing and class classes differently
+ # due to some heuristic used in Panoptic FPN. We keep the same naming to
+ # enable reusing existing visualization functions.
+ thing_classes = [k["name"] for k in COCO_CATEGORIES]
+ thing_colors = [k["color"] for k in COCO_CATEGORIES]
+ stuff_classes = [k["name"] for k in COCO_CATEGORIES]
+ stuff_colors = [k["color"] for k in COCO_CATEGORIES]
+
+ meta["thing_classes"] = thing_classes
+ meta["thing_colors"] = thing_colors
+ meta["stuff_classes"] = stuff_classes
+ meta["stuff_colors"] = stuff_colors
+
+ # Convert category id for training:
+ # category id: like semantic segmentation, it is the class id for each
+ # pixel. Since there are some classes not used in evaluation, the category
+ # id is not always contiguous and thus we have two set of category ids:
+ # - original category id: category id in the original dataset, mainly
+ # used for evaluation.
+ # - contiguous category id: [0, #classes), in order to train the linear
+ # softmax classifier.
+ thing_dataset_id_to_contiguous_id = {}
+ stuff_dataset_id_to_contiguous_id = {}
+
+ for i, cat in enumerate(COCO_CATEGORIES):
+ if cat["isthing"]:
+ thing_dataset_id_to_contiguous_id[cat["id"]] = i
+ else:
+ stuff_dataset_id_to_contiguous_id[cat["id"]] = i
+
+ meta["thing_dataset_id_to_contiguous_id"] = thing_dataset_id_to_contiguous_id
+ meta["stuff_dataset_id_to_contiguous_id"] = stuff_dataset_id_to_contiguous_id
+
+ return meta
+ elif dataset_name == "coco_person":
+ return {
+ "thing_classes": ["person"],
+ "keypoint_names": COCO_PERSON_KEYPOINT_NAMES,
+ "keypoint_flip_map": COCO_PERSON_KEYPOINT_FLIP_MAP,
+ "keypoint_connection_rules": KEYPOINT_CONNECTION_RULES,
+ }
+ elif dataset_name == "cityscapes":
+ # fmt: off
+ CITYSCAPES_THING_CLASSES = [
+ "person", "rider", "car", "truck",
+ "bus", "train", "motorcycle", "bicycle",
+ ]
+ CITYSCAPES_STUFF_CLASSES = [
+ "road", "sidewalk", "building", "wall", "fence", "pole", "traffic light",
+ "traffic sign", "vegetation", "terrain", "sky", "person", "rider", "car",
+ "truck", "bus", "train", "motorcycle", "bicycle",
+ ]
+ # fmt: on
+ return {
+ "thing_classes": CITYSCAPES_THING_CLASSES,
+ "stuff_classes": CITYSCAPES_STUFF_CLASSES,
+ }
+ raise KeyError("No built-in metadata for dataset {}".format(dataset_name))
diff --git a/cutler/data/datasets/coco.py b/cutler/data/datasets/coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..472e15c2fc85928daadd211470fadab47728e91e
--- /dev/null
+++ b/cutler/data/datasets/coco.py
@@ -0,0 +1,544 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/datasets/coco.py
+
+import contextlib
+import datetime
+import io
+import json
+import logging
+import numpy as np
+import os
+import shutil
+import pycocotools.mask as mask_util
+from fvcore.common.timer import Timer
+from iopath.common.file_io import file_lock
+from PIL import Image
+
+from detectron2.structures import Boxes, BoxMode, PolygonMasks, RotatedBoxes
+from detectron2.utils.file_io import PathManager
+
+from detectron2.data import DatasetCatalog, MetadataCatalog
+
+"""
+This file contains functions to parse COCO-format annotations into dicts in "Detectron2 format".
+"""
+
+
+logger = logging.getLogger(__name__)
+
+__all__ = ["load_coco_json", "load_sem_seg", "convert_to_coco_json", "register_coco_instances"]
+
+
+def load_coco_json(json_file, image_root, dataset_name=None, extra_annotation_keys=None):
+ """
+ Load a json file with COCO's instances annotation format.
+ Currently supports instance detection, instance segmentation,
+ and person keypoints annotations.
+
+ Args:
+ json_file (str): full path to the json file in COCO instances annotation format.
+ image_root (str or path-like): the directory where the images in this json file exists.
+ dataset_name (str or None): the name of the dataset (e.g., coco_2017_train).
+ When provided, this function will also do the following:
+
+ * Put "thing_classes" into the metadata associated with this dataset.
+ * Map the category ids into a contiguous range (needed by standard dataset format),
+ and add "thing_dataset_id_to_contiguous_id" to the metadata associated
+ with this dataset.
+
+ This option should usually be provided, unless users need to load
+ the original json content and apply more processing manually.
+ extra_annotation_keys (list[str]): list of per-annotation keys that should also be
+ loaded into the dataset dict (besides "iscrowd", "bbox", "keypoints",
+ "category_id", "segmentation"). The values for these keys will be returned as-is.
+ For example, the densepose annotations are loaded in this way.
+
+ Returns:
+ list[dict]: a list of dicts in Detectron2 standard dataset dicts format (See
+ `Using Custom Datasets `_ ) when `dataset_name` is not None.
+ If `dataset_name` is None, the returned `category_ids` may be
+ incontiguous and may not conform to the Detectron2 standard format.
+
+ Notes:
+ 1. This function does not read the image files.
+ The results do not have the "image" field.
+ """
+ from pycocotools.coco import COCO
+
+ timer = Timer()
+ json_file = PathManager.get_local_path(json_file)
+ with contextlib.redirect_stdout(io.StringIO()):
+ coco_api = COCO(json_file)
+ if timer.seconds() > 1:
+ logger.info("Loading {} takes {:.2f} seconds.".format(json_file, timer.seconds()))
+
+ id_map = None
+ if dataset_name is not None:
+ meta = MetadataCatalog.get(dataset_name)
+ cat_ids = sorted(coco_api.getCatIds())
+ cats = coco_api.loadCats(cat_ids)
+ # The categories in a custom json file may not be sorted.
+ thing_classes = [c["name"] for c in sorted(cats, key=lambda x: x["id"])]
+ if "imagenet" not in dataset_name and "cls_agnostic" not in dataset_name:
+ meta.thing_classes = thing_classes
+
+ # In COCO, certain category ids are artificially removed,
+ # and by convention they are always ignored.
+ # We deal with COCO's id issue and translate
+ # the category ids to contiguous ids in [0, 80).
+
+ # It works by looking at the "categories" field in the json, therefore
+ # if users' own json also have incontiguous ids, we'll
+ # apply this mapping as well but print a warning.
+ if not (min(cat_ids) == 1 and max(cat_ids) == len(cat_ids)):
+ if "coco" not in dataset_name:
+ logger.warning(
+ """
+ Category ids in annotations are not in [1, #categories]! We'll apply a mapping for you.
+ """
+ )
+ id_map = {v: i for i, v in enumerate(cat_ids)}
+ meta.thing_dataset_id_to_contiguous_id = id_map
+ else:
+ id_map = meta.thing_dataset_id_to_contiguous_id
+
+ # sort indices for reproducible results
+ img_ids = sorted(coco_api.imgs.keys())
+ # imgs is a list of dicts, each looks something like:
+ # {'license': 4,
+ # 'url': 'http://farm6.staticflickr.com/5454/9413846304_881d5e5c3b_z.jpg',
+ # 'file_name': 'COCO_val2014_000000001268.jpg',
+ # 'height': 427,
+ # 'width': 640,
+ # 'date_captured': '2013-11-17 05:57:24',
+ # 'id': 1268}
+ imgs = coco_api.loadImgs(img_ids)
+ # anns is a list[list[dict]], where each dict is an annotation
+ # record for an object. The inner list enumerates the objects in an image
+ # and the outer list enumerates over images. Example of anns[0]:
+ # [{'segmentation': [[192.81,
+ # 247.09,
+ # ...
+ # 219.03,
+ # 249.06]],
+ # 'area': 1035.749,
+ # 'iscrowd': 0,
+ # 'image_id': 1268,
+ # 'bbox': [192.81, 224.8, 74.73, 33.43],
+ # 'category_id': 16,
+ # 'id': 42986},
+ # ...]
+ anns = [coco_api.imgToAnns[img_id] for img_id in img_ids]
+ total_num_valid_anns = sum([len(x) for x in anns])
+ total_num_anns = len(coco_api.anns)
+ if total_num_valid_anns < total_num_anns:
+ logger.warning(
+ f"{json_file} contains {total_num_anns} annotations, but only "
+ f"{total_num_valid_anns} of them match to images in the file."
+ )
+
+ if "minival" not in json_file:
+ # The popular valminusminival & minival annotations for COCO2014 contain this bug.
+ # However the ratio of buggy annotations there is tiny and does not affect accuracy.
+ # Therefore we explicitly white-list them.
+ ann_ids = [ann["id"] for anns_per_image in anns for ann in anns_per_image]
+ assert len(set(ann_ids)) == len(ann_ids), "Annotation ids in '{}' are not unique!".format(
+ json_file
+ )
+
+ imgs_anns = list(zip(imgs, anns))
+ logger.info("Loaded {} images in COCO format from {}".format(len(imgs_anns), json_file))
+
+ dataset_dicts = []
+
+ ann_keys = ["iscrowd", "bbox", "keypoints", "category_id"] + (extra_annotation_keys or [])
+
+ num_instances_without_valid_segmentation = 0
+
+ for (img_dict, anno_dict_list) in imgs_anns:
+ record = {}
+ record["file_name"] = os.path.join(image_root, img_dict["file_name"])
+ record["height"] = img_dict["height"]
+ record["width"] = img_dict["width"]
+ image_id = record["image_id"] = img_dict["id"]
+
+ objs = []
+ for anno in anno_dict_list:
+ # Check that the image_id in this annotation is the same as
+ # the image_id we're looking at.
+ # This fails only when the data parsing logic or the annotation file is buggy.
+
+ # The original COCO valminusminival2014 & minival2014 annotation files
+ # actually contains bugs that, together with certain ways of using COCO API,
+ # can trigger this assertion.
+ assert anno["image_id"] == image_id
+
+ assert anno.get("ignore", 0) == 0, '"ignore" in COCO json file is not supported.'
+
+ obj = {key: anno[key] for key in ann_keys if key in anno}
+ if "bbox" in obj and len(obj["bbox"]) == 0:
+ raise ValueError(
+ f"One annotation of image {image_id} contains empty 'bbox' value! "
+ "This json does not have valid COCO format."
+ )
+
+ segm = anno.get("segmentation", None)
+ if segm: # either list[list[float]] or dict(RLE)
+ if isinstance(segm, dict):
+ if isinstance(segm["counts"], list):
+ # convert to compressed RLE
+ segm = mask_util.frPyObjects(segm, *segm["size"])
+ else:
+ # filter out invalid polygons (< 3 points)
+ segm = [poly for poly in segm if len(poly) % 2 == 0 and len(poly) >= 6]
+ if len(segm) == 0:
+ num_instances_without_valid_segmentation += 1
+ continue # ignore this instance
+ obj["segmentation"] = segm
+
+ keypts = anno.get("keypoints", None)
+ if keypts: # list[int]
+ for idx, v in enumerate(keypts):
+ if idx % 3 != 2:
+ # COCO's segmentation coordinates are floating points in [0, H or W],
+ # but keypoint coordinates are integers in [0, H-1 or W-1]
+ # Therefore we assume the coordinates are "pixel indices" and
+ # add 0.5 to convert to floating point coordinates.
+ keypts[idx] = v + 0.5
+ obj["keypoints"] = keypts
+
+ obj["bbox_mode"] = BoxMode.XYWH_ABS
+ if id_map:
+ annotation_category_id = obj["category_id"]
+ try:
+ obj["category_id"] = id_map[annotation_category_id]
+ except KeyError as e:
+ raise KeyError(
+ f"Encountered category_id={annotation_category_id} "
+ "but this id does not exist in 'categories' of the json file."
+ ) from e
+ objs.append(obj)
+ record["annotations"] = objs
+ dataset_dicts.append(record)
+
+ if num_instances_without_valid_segmentation > 0:
+ logger.warning(
+ "Filtered out {} instances without valid segmentation. ".format(
+ num_instances_without_valid_segmentation
+ )
+ + "There might be issues in your dataset generation process. Please "
+ "check https://detectron2.readthedocs.io/en/latest/tutorials/datasets.html carefully"
+ )
+ return dataset_dicts
+
+
+def load_sem_seg(gt_root, image_root, gt_ext="png", image_ext="jpg"):
+ """
+ Load semantic segmentation datasets. All files under "gt_root" with "gt_ext" extension are
+ treated as ground truth annotations and all files under "image_root" with "image_ext" extension
+ as input images. Ground truth and input images are matched using file paths relative to
+ "gt_root" and "image_root" respectively without taking into account file extensions.
+ This works for COCO as well as some other datasets.
+
+ Args:
+ gt_root (str): full path to ground truth semantic segmentation files. Semantic segmentation
+ annotations are stored as images with integer values in pixels that represent
+ corresponding semantic labels.
+ image_root (str): the directory where the input images are.
+ gt_ext (str): file extension for ground truth annotations.
+ image_ext (str): file extension for input images.
+
+ Returns:
+ list[dict]:
+ a list of dicts in detectron2 standard format without instance-level
+ annotation.
+
+ Notes:
+ 1. This function does not read the image and ground truth files.
+ The results do not have the "image" and "sem_seg" fields.
+ """
+
+ # We match input images with ground truth based on their relative filepaths (without file
+ # extensions) starting from 'image_root' and 'gt_root' respectively.
+ def file2id(folder_path, file_path):
+ # extract relative path starting from `folder_path`
+ image_id = os.path.normpath(os.path.relpath(file_path, start=folder_path))
+ # remove file extension
+ image_id = os.path.splitext(image_id)[0]
+ return image_id
+
+ input_files = sorted(
+ (os.path.join(image_root, f) for f in PathManager.ls(image_root) if f.endswith(image_ext)),
+ key=lambda file_path: file2id(image_root, file_path),
+ )
+ gt_files = sorted(
+ (os.path.join(gt_root, f) for f in PathManager.ls(gt_root) if f.endswith(gt_ext)),
+ key=lambda file_path: file2id(gt_root, file_path),
+ )
+
+ assert len(gt_files) > 0, "No annotations found in {}.".format(gt_root)
+
+ # Use the intersection, so that val2017_100 annotations can run smoothly with val2017 images
+ if len(input_files) != len(gt_files):
+ logger.warn(
+ "Directory {} and {} has {} and {} files, respectively.".format(
+ image_root, gt_root, len(input_files), len(gt_files)
+ )
+ )
+ input_basenames = [os.path.basename(f)[: -len(image_ext)] for f in input_files]
+ gt_basenames = [os.path.basename(f)[: -len(gt_ext)] for f in gt_files]
+ intersect = list(set(input_basenames) & set(gt_basenames))
+ # sort, otherwise each worker may obtain a list[dict] in different order
+ intersect = sorted(intersect)
+ logger.warn("Will use their intersection of {} files.".format(len(intersect)))
+ input_files = [os.path.join(image_root, f + image_ext) for f in intersect]
+ gt_files = [os.path.join(gt_root, f + gt_ext) for f in intersect]
+
+ logger.info(
+ "Loaded {} images with semantic segmentation from {}".format(len(input_files), image_root)
+ )
+
+ dataset_dicts = []
+ for (img_path, gt_path) in zip(input_files, gt_files):
+ record = {}
+ record["file_name"] = img_path
+ record["sem_seg_file_name"] = gt_path
+ dataset_dicts.append(record)
+
+ return dataset_dicts
+
+
+def convert_to_coco_dict(dataset_name):
+ """
+ Convert an instance detection/segmentation or keypoint detection dataset
+ in detectron2's standard format into COCO json format.
+
+ Generic dataset description can be found here:
+ https://detectron2.readthedocs.io/tutorials/datasets.html#register-a-dataset
+
+ COCO data format description can be found here:
+ http://cocodataset.org/#format-data
+
+ Args:
+ dataset_name (str):
+ name of the source dataset
+ Must be registered in DatastCatalog and in detectron2's standard format.
+ Must have corresponding metadata "thing_classes"
+ Returns:
+ coco_dict: serializable dict in COCO json format
+ """
+
+ dataset_dicts = DatasetCatalog.get(dataset_name)
+ metadata = MetadataCatalog.get(dataset_name)
+
+ # unmap the category mapping ids for COCO
+ if hasattr(metadata, "thing_dataset_id_to_contiguous_id"):
+ reverse_id_mapping = {v: k for k, v in metadata.thing_dataset_id_to_contiguous_id.items()}
+ reverse_id_mapper = lambda contiguous_id: reverse_id_mapping[contiguous_id] # noqa
+ else:
+ reverse_id_mapper = lambda contiguous_id: contiguous_id # noqa
+
+ categories = [
+ {"id": reverse_id_mapper(id), "name": name}
+ for id, name in enumerate(metadata.thing_classes)
+ ]
+
+ logger.info("Converting dataset dicts into COCO format")
+ coco_images = []
+ coco_annotations = []
+
+ for image_id, image_dict in enumerate(dataset_dicts):
+ coco_image = {
+ "id": image_dict.get("image_id", image_id),
+ "width": int(image_dict["width"]),
+ "height": int(image_dict["height"]),
+ "file_name": str(image_dict["file_name"]),
+ }
+ coco_images.append(coco_image)
+
+ anns_per_image = image_dict.get("annotations", [])
+ for annotation in anns_per_image:
+ # create a new dict with only COCO fields
+ coco_annotation = {}
+
+ # COCO requirement: XYWH box format for axis-align and XYWHA for rotated
+ bbox = annotation["bbox"]
+ if isinstance(bbox, np.ndarray):
+ if bbox.ndim != 1:
+ raise ValueError(f"bbox has to be 1-dimensional. Got shape={bbox.shape}.")
+ bbox = bbox.tolist()
+ if len(bbox) not in [4, 5]:
+ raise ValueError(f"bbox has to has length 4 or 5. Got {bbox}.")
+ from_bbox_mode = annotation["bbox_mode"]
+ to_bbox_mode = BoxMode.XYWH_ABS if len(bbox) == 4 else BoxMode.XYWHA_ABS
+ bbox = BoxMode.convert(bbox, from_bbox_mode, to_bbox_mode)
+
+ # COCO requirement: instance area
+ if "segmentation" in annotation:
+ # Computing areas for instances by counting the pixels
+ segmentation = annotation["segmentation"]
+ # TODO: check segmentation type: RLE, BinaryMask or Polygon
+ if isinstance(segmentation, list):
+ polygons = PolygonMasks([segmentation])
+ area = polygons.area()[0].item()
+ elif isinstance(segmentation, dict): # RLE
+ area = mask_util.area(segmentation).item()
+ else:
+ raise TypeError(f"Unknown segmentation type {type(segmentation)}!")
+ else:
+ # Computing areas using bounding boxes
+ if to_bbox_mode == BoxMode.XYWH_ABS:
+ bbox_xy = BoxMode.convert(bbox, to_bbox_mode, BoxMode.XYXY_ABS)
+ area = Boxes([bbox_xy]).area()[0].item()
+ else:
+ area = RotatedBoxes([bbox]).area()[0].item()
+
+ if "keypoints" in annotation:
+ keypoints = annotation["keypoints"] # list[int]
+ for idx, v in enumerate(keypoints):
+ if idx % 3 != 2:
+ # COCO's segmentation coordinates are floating points in [0, H or W],
+ # but keypoint coordinates are integers in [0, H-1 or W-1]
+ # For COCO format consistency we substract 0.5
+ # https://github.com/facebookresearch/detectron2/pull/175#issuecomment-551202163
+ keypoints[idx] = v - 0.5
+ if "num_keypoints" in annotation:
+ num_keypoints = annotation["num_keypoints"]
+ else:
+ num_keypoints = sum(kp > 0 for kp in keypoints[2::3])
+
+ # COCO requirement:
+ # linking annotations to images
+ # "id" field must start with 1
+ coco_annotation["id"] = len(coco_annotations) + 1
+ coco_annotation["image_id"] = coco_image["id"]
+ coco_annotation["bbox"] = [round(float(x), 3) for x in bbox]
+ coco_annotation["area"] = float(area)
+ coco_annotation["iscrowd"] = int(annotation.get("iscrowd", 0))
+ coco_annotation["category_id"] = int(reverse_id_mapper(annotation["category_id"]))
+
+ # Add optional fields
+ if "keypoints" in annotation:
+ coco_annotation["keypoints"] = keypoints
+ coco_annotation["num_keypoints"] = num_keypoints
+
+ if "segmentation" in annotation:
+ seg = coco_annotation["segmentation"] = annotation["segmentation"]
+ if isinstance(seg, dict): # RLE
+ counts = seg["counts"]
+ if not isinstance(counts, str):
+ # make it json-serializable
+ seg["counts"] = counts.decode("ascii")
+
+ coco_annotations.append(coco_annotation)
+
+ logger.info(
+ "Conversion finished, "
+ f"#images: {len(coco_images)}, #annotations: {len(coco_annotations)}"
+ )
+
+ info = {
+ "date_created": str(datetime.datetime.now()),
+ "description": "Automatically generated COCO json file for Detectron2.",
+ }
+ coco_dict = {"info": info, "images": coco_images, "categories": categories, "licenses": None}
+ if len(coco_annotations) > 0:
+ coco_dict["annotations"] = coco_annotations
+ return coco_dict
+
+
+def convert_to_coco_json(dataset_name, output_file, allow_cached=True):
+ """
+ Converts dataset into COCO format and saves it to a json file.
+ dataset_name must be registered in DatasetCatalog and in detectron2's standard format.
+
+ Args:
+ dataset_name:
+ reference from the config file to the catalogs
+ must be registered in DatasetCatalog and in detectron2's standard format
+ output_file: path of json file that will be saved to
+ allow_cached: if json file is already present then skip conversion
+ """
+
+ # TODO: The dataset or the conversion script *may* change,
+ # a checksum would be useful for validating the cached data
+
+ PathManager.mkdirs(os.path.dirname(output_file))
+ with file_lock(output_file):
+ if PathManager.exists(output_file) and allow_cached:
+ logger.warning(
+ f"Using previously cached COCO format annotations at '{output_file}'. "
+ "You need to clear the cache file if your dataset has been modified."
+ )
+ else:
+ logger.info(f"Converting annotations of dataset '{dataset_name}' to COCO format ...)")
+ coco_dict = convert_to_coco_dict(dataset_name)
+
+ logger.info(f"Caching COCO format annotations at '{output_file}' ...")
+ tmp_file = output_file + ".tmp"
+ with PathManager.open(tmp_file, "w") as f:
+ json.dump(coco_dict, f)
+ shutil.move(tmp_file, output_file)
+
+
+def register_coco_instances(name, metadata, json_file, image_root):
+ """
+ Register a dataset in COCO's json annotation format for
+ instance detection, instance segmentation and keypoint detection.
+ (i.e., Type 1 and 2 in http://cocodataset.org/#format-data.
+ `instances*.json` and `person_keypoints*.json` in the dataset).
+
+ This is an example of how to register a new dataset.
+ You can do something similar to this function, to register new datasets.
+
+ Args:
+ name (str): the name that identifies a dataset, e.g. "coco_2014_train".
+ metadata (dict): extra metadata associated with this dataset. You can
+ leave it as an empty dict.
+ json_file (str): path to the json instance annotation file.
+ image_root (str or path-like): directory which contains all the images.
+ """
+ assert isinstance(name, str), name
+ assert isinstance(json_file, (str, os.PathLike)), json_file
+ assert isinstance(image_root, (str, os.PathLike)), image_root
+ # 1. register a function which returns dicts
+ DatasetCatalog.register(name, lambda: load_coco_json(json_file, image_root, name))
+
+ # 2. Optionally, add metadata about this dataset,
+ # since they might be useful in evaluation, visualization or logging
+ MetadataCatalog.get(name).set(
+ json_file=json_file, image_root=image_root, evaluator_type="coco", **metadata
+ )
+
+
+if __name__ == "__main__":
+ """
+ Test the COCO json dataset loader.
+
+ Usage:
+ python -m detectron2.data.datasets.coco \
+ path/to/json path/to/image_root dataset_name
+
+ "dataset_name" can be "coco_2014_minival_100", or other
+ pre-registered ones
+ """
+ from detectron2.utils.logger import setup_logger
+ from detectron2.utils.visualizer import Visualizer
+ import detectron2.data.datasets # noqa # add pre-defined metadata
+ import sys
+
+ logger = setup_logger(name=__name__)
+ assert sys.argv[3] in DatasetCatalog.list()
+ meta = MetadataCatalog.get(sys.argv[3])
+
+ dicts = load_coco_json(sys.argv[1], sys.argv[2], sys.argv[3])
+ logger.info("Done loading {} samples.".format(len(dicts)))
+
+ dirname = "coco-data-vis"
+ os.makedirs(dirname, exist_ok=True)
+ for d in dicts:
+ img = np.array(Image.open(d["file_name"]))
+ visualizer = Visualizer(img, metadata=meta)
+ vis = visualizer.draw_dataset_dict(d)
+ fpath = os.path.join(dirname, os.path.basename(d["file_name"]))
+ vis.save(fpath)
diff --git a/cutler/data/detection_utils.py b/cutler/data/detection_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..19f4c8996514470b3af372a68c10f29da7c6d980
--- /dev/null
+++ b/cutler/data/detection_utils.py
@@ -0,0 +1,650 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/detection_utils.py
+
+"""
+Common data processing utilities that are used in a
+typical object detection data pipeline.
+"""
+import logging
+import numpy as np
+from typing import List, Union
+import pycocotools.mask as mask_util
+import torch
+from PIL import Image
+
+from detectron2.structures import (
+ Boxes,
+ BoxMode,
+ BitMasks,
+ Instances,
+ Keypoints,
+ PolygonMasks,
+ RotatedBoxes,
+ polygons_to_bitmask,
+)
+
+from detectron2.utils.file_io import PathManager
+
+from data import transforms as T
+from detectron2.data.catalog import MetadataCatalog
+
+__all__ = [
+ "SizeMismatchError",
+ "convert_image_to_rgb",
+ "check_image_size",
+ "transform_proposals",
+ "transform_instance_annotations",
+ "annotations_to_instances",
+ "annotations_to_instances_rotated",
+ "build_augmentation",
+ "build_transform_gen",
+ "create_keypoint_hflip_indices",
+ "filter_empty_instances",
+ "read_image",
+]
+
+
+class SizeMismatchError(ValueError):
+ """
+ When loaded image has difference width/height compared with annotation.
+ """
+
+
+# https://en.wikipedia.org/wiki/YUV#SDTV_with_BT.601
+_M_RGB2YUV = [[0.299, 0.587, 0.114], [-0.14713, -0.28886, 0.436], [0.615, -0.51499, -0.10001]]
+_M_YUV2RGB = [[1.0, 0.0, 1.13983], [1.0, -0.39465, -0.58060], [1.0, 2.03211, 0.0]]
+
+# https://www.exiv2.org/tags.html
+_EXIF_ORIENT = 274 # exif 'Orientation' tag
+
+
+def convert_PIL_to_numpy(image, format):
+ """
+ Convert PIL image to numpy array of target format.
+
+ Args:
+ image (PIL.Image): a PIL image
+ format (str): the format of output image
+
+ Returns:
+ (np.ndarray): also see `read_image`
+ """
+ if format is not None:
+ # PIL only supports RGB, so convert to RGB and flip channels over below
+ conversion_format = format
+ if format in ["BGR", "YUV-BT.601"]:
+ conversion_format = "RGB"
+ image = image.convert(conversion_format)
+ image = np.asarray(image)
+ # PIL squeezes out the channel dimension for "L", so make it HWC
+ if format == "L":
+ image = np.expand_dims(image, -1)
+
+ # handle formats not supported by PIL
+ elif format == "BGR":
+ # flip channels if needed
+ image = image[:, :, ::-1]
+ elif format == "YUV-BT.601":
+ image = image / 255.0
+ image = np.dot(image, np.array(_M_RGB2YUV).T)
+
+ return image
+
+
+def convert_image_to_rgb(image, format):
+ """
+ Convert an image from given format to RGB.
+
+ Args:
+ image (np.ndarray or Tensor): an HWC image
+ format (str): the format of input image, also see `read_image`
+
+ Returns:
+ (np.ndarray): (H,W,3) RGB image in 0-255 range, can be either float or uint8
+ """
+ if isinstance(image, torch.Tensor):
+ image = image.cpu().numpy()
+ if format == "BGR":
+ image = image[:, :, [2, 1, 0]]
+ elif format == "YUV-BT.601":
+ image = np.dot(image, np.array(_M_YUV2RGB).T)
+ image = image * 255.0
+ else:
+ if format == "L":
+ image = image[:, :, 0]
+ image = image.astype(np.uint8)
+ image = np.asarray(Image.fromarray(image, mode=format).convert("RGB"))
+ return image
+
+
+def _apply_exif_orientation(image):
+ """
+ Applies the exif orientation correctly.
+
+ This code exists per the bug:
+ https://github.com/python-pillow/Pillow/issues/3973
+ with the function `ImageOps.exif_transpose`. The Pillow source raises errors with
+ various methods, especially `tobytes`
+
+ Function based on:
+ https://github.com/wkentaro/labelme/blob/v4.5.4/labelme/utils/image.py#L59
+ https://github.com/python-pillow/Pillow/blob/7.1.2/src/PIL/ImageOps.py#L527
+
+ Args:
+ image (PIL.Image): a PIL image
+
+ Returns:
+ (PIL.Image): the PIL image with exif orientation applied, if applicable
+ """
+ if not hasattr(image, "getexif"):
+ return image
+
+ try:
+ exif = image.getexif()
+ except Exception: # https://github.com/facebookresearch/detectron2/issues/1885
+ exif = None
+
+ if exif is None:
+ return image
+
+ orientation = exif.get(_EXIF_ORIENT)
+
+ method = {
+ 2: Image.FLIP_LEFT_RIGHT,
+ 3: Image.ROTATE_180,
+ 4: Image.FLIP_TOP_BOTTOM,
+ 5: Image.TRANSPOSE,
+ 6: Image.ROTATE_270,
+ 7: Image.TRANSVERSE,
+ 8: Image.ROTATE_90,
+ }.get(orientation)
+
+ if method is not None:
+ return image.transpose(method)
+ return image
+
+
+def read_image(file_name, format=None):
+ """
+ Read an image into the given format.
+ Will apply rotation and flipping if the image has such exif information.
+
+ Args:
+ file_name (str): image file path
+ format (str): one of the supported image modes in PIL, or "BGR" or "YUV-BT.601".
+
+ Returns:
+ image (np.ndarray):
+ an HWC image in the given format, which is 0-255, uint8 for
+ supported image modes in PIL or "BGR"; float (0-1 for Y) for YUV-BT.601.
+ """
+ with PathManager.open(file_name, "rb") as f:
+ image = Image.open(f)
+
+ # work around this bug: https://github.com/python-pillow/Pillow/issues/3973
+ image = _apply_exif_orientation(image)
+ return convert_PIL_to_numpy(image, format)
+
+
+def check_image_size(dataset_dict, image):
+ """
+ Raise an error if the image does not match the size specified in the dict.
+ """
+ if "width" in dataset_dict or "height" in dataset_dict:
+ image_wh = (image.shape[1], image.shape[0])
+ expected_wh = (dataset_dict["width"], dataset_dict["height"])
+ if not image_wh == expected_wh:
+ expected_wh = (dataset_dict["height"], dataset_dict["width"])
+ dataset_dict["height"], dataset_dict["width"] = dataset_dict["width"], dataset_dict["height"]
+ if image_wh != expected_wh:
+ raise SizeMismatchError(
+ "Mismatched image shape{}, got {}, expect {}.".format(
+ " for image " + dataset_dict["file_name"]
+ if "file_name" in dataset_dict
+ else "",
+ image_wh,
+ expected_wh,
+ )
+ + " Please check the width/height in your annotation."
+ )
+
+ # To ensure bbox always remap to original image size
+ if "width" not in dataset_dict:
+ dataset_dict["width"] = image.shape[1]
+ if "height" not in dataset_dict:
+ dataset_dict["height"] = image.shape[0]
+
+
+def transform_proposals(dataset_dict, image_shape, transforms, *, proposal_topk, min_box_size=0):
+ """
+ Apply transformations to the proposals in dataset_dict, if any.
+
+ Args:
+ dataset_dict (dict): a dict read from the dataset, possibly
+ contains fields "proposal_boxes", "proposal_objectness_logits", "proposal_bbox_mode"
+ image_shape (tuple): height, width
+ transforms (TransformList):
+ proposal_topk (int): only keep top-K scoring proposals
+ min_box_size (int): proposals with either side smaller than this
+ threshold are removed
+
+ The input dict is modified in-place, with abovementioned keys removed. A new
+ key "proposals" will be added. Its value is an `Instances`
+ object which contains the transformed proposals in its field
+ "proposal_boxes" and "objectness_logits".
+ """
+ if "proposal_boxes" in dataset_dict:
+ # Transform proposal boxes
+ boxes = transforms.apply_box(
+ BoxMode.convert(
+ dataset_dict.pop("proposal_boxes"),
+ dataset_dict.pop("proposal_bbox_mode"),
+ BoxMode.XYXY_ABS,
+ )
+ )
+ boxes = Boxes(boxes)
+ objectness_logits = torch.as_tensor(
+ dataset_dict.pop("proposal_objectness_logits").astype("float32")
+ )
+
+ boxes.clip(image_shape)
+ keep = boxes.nonempty(threshold=min_box_size)
+ boxes = boxes[keep]
+ objectness_logits = objectness_logits[keep]
+
+ proposals = Instances(image_shape)
+ proposals.proposal_boxes = boxes[:proposal_topk]
+ proposals.objectness_logits = objectness_logits[:proposal_topk]
+ dataset_dict["proposals"] = proposals
+
+
+def transform_instance_annotations(
+ annotation, transforms, image_size, *, keypoint_hflip_indices=None
+):
+ """
+ Apply transforms to box, segmentation and keypoints annotations of a single instance.
+
+ It will use `transforms.apply_box` for the box, and
+ `transforms.apply_coords` for segmentation polygons & keypoints.
+ If you need anything more specially designed for each data structure,
+ you'll need to implement your own version of this function or the transforms.
+
+ Args:
+ annotation (dict): dict of instance annotations for a single instance.
+ It will be modified in-place.
+ transforms (TransformList or list[Transform]):
+ image_size (tuple): the height, width of the transformed image
+ keypoint_hflip_indices (ndarray[int]): see `create_keypoint_hflip_indices`.
+
+ Returns:
+ dict:
+ the same input dict with fields "bbox", "segmentation", "keypoints"
+ transformed according to `transforms`.
+ The "bbox_mode" field will be set to XYXY_ABS.
+ """
+ if isinstance(transforms, (tuple, list)):
+ transforms = T.TransformList(transforms)
+ # bbox is 1d (per-instance bounding box)
+ bbox = BoxMode.convert(annotation["bbox"], annotation["bbox_mode"], BoxMode.XYXY_ABS)
+ # clip transformed bbox to image size
+ bbox = transforms.apply_box(np.array([bbox]))[0].clip(min=0)
+ annotation["bbox"] = np.minimum(bbox, list(image_size + image_size)[::-1])
+ annotation["bbox_mode"] = BoxMode.XYXY_ABS
+
+ if "segmentation" in annotation:
+ # each instance contains 1 or more polygons
+ segm = annotation["segmentation"]
+ if isinstance(segm, list):
+ # polygons
+ polygons = [np.asarray(p).reshape(-1, 2) for p in segm]
+ annotation["segmentation"] = [
+ p.reshape(-1) for p in transforms.apply_polygons(polygons)
+ ]
+ elif isinstance(segm, dict):
+ # RLE
+ mask = mask_util.decode(segm)
+ mask = transforms.apply_segmentation(mask)
+ assert tuple(mask.shape[:2]) == image_size
+ annotation["segmentation"] = mask
+ else:
+ raise ValueError(
+ "Cannot transform segmentation of type '{}'!"
+ "Supported types are: polygons as list[list[float] or ndarray],"
+ " COCO-style RLE as a dict.".format(type(segm))
+ )
+
+ if "keypoints" in annotation:
+ keypoints = transform_keypoint_annotations(
+ annotation["keypoints"], transforms, image_size, keypoint_hflip_indices
+ )
+ annotation["keypoints"] = keypoints
+
+ return annotation
+
+
+def transform_keypoint_annotations(keypoints, transforms, image_size, keypoint_hflip_indices=None):
+ """
+ Transform keypoint annotations of an image.
+ If a keypoint is transformed out of image boundary, it will be marked "unlabeled" (visibility=0)
+
+ Args:
+ keypoints (list[float]): Nx3 float in Detectron2's Dataset format.
+ Each point is represented by (x, y, visibility).
+ transforms (TransformList):
+ image_size (tuple): the height, width of the transformed image
+ keypoint_hflip_indices (ndarray[int]): see `create_keypoint_hflip_indices`.
+ When `transforms` includes horizontal flip, will use the index
+ mapping to flip keypoints.
+ """
+ # (N*3,) -> (N, 3)
+ keypoints = np.asarray(keypoints, dtype="float64").reshape(-1, 3)
+ keypoints_xy = transforms.apply_coords(keypoints[:, :2])
+
+ # Set all out-of-boundary points to "unlabeled"
+ inside = (keypoints_xy >= np.array([0, 0])) & (keypoints_xy <= np.array(image_size[::-1]))
+ inside = inside.all(axis=1)
+ keypoints[:, :2] = keypoints_xy
+ keypoints[:, 2][~inside] = 0
+
+ # This assumes that HorizFlipTransform is the only one that does flip
+ do_hflip = sum(isinstance(t, T.HFlipTransform) for t in transforms.transforms) % 2 == 1
+
+ # Alternative way: check if probe points was horizontally flipped.
+ # probe = np.asarray([[0.0, 0.0], [image_width, 0.0]])
+ # probe_aug = transforms.apply_coords(probe.copy())
+ # do_hflip = np.sign(probe[1][0] - probe[0][0]) != np.sign(probe_aug[1][0] - probe_aug[0][0]) # noqa
+
+ # If flipped, swap each keypoint with its opposite-handed equivalent
+ if do_hflip:
+ if keypoint_hflip_indices is None:
+ raise ValueError("Cannot flip keypoints without providing flip indices!")
+ if len(keypoints) != len(keypoint_hflip_indices):
+ raise ValueError(
+ "Keypoint data has {} points, but metadata "
+ "contains {} points!".format(len(keypoints), len(keypoint_hflip_indices))
+ )
+ keypoints = keypoints[np.asarray(keypoint_hflip_indices, dtype=np.int32), :]
+
+ # Maintain COCO convention that if visibility == 0 (unlabeled), then x, y = 0
+ keypoints[keypoints[:, 2] == 0] = 0
+ return keypoints
+
+
+def annotations_to_instances(annos, image_size, mask_format="polygon"):
+ """
+ Create an :class:`Instances` object used by the models,
+ from instance annotations in the dataset dict.
+
+ Args:
+ annos (list[dict]): a list of instance annotations in one image, each
+ element for one instance.
+ image_size (tuple): height, width
+
+ Returns:
+ Instances:
+ It will contain fields "gt_boxes", "gt_classes",
+ "gt_masks", "gt_keypoints", if they can be obtained from `annos`.
+ This is the format that builtin models expect.
+ """
+ boxes = (
+ np.stack(
+ [BoxMode.convert(obj["bbox"], obj["bbox_mode"], BoxMode.XYXY_ABS) for obj in annos]
+ )
+ if len(annos)
+ else np.zeros((0, 4))
+ )
+ target = Instances(image_size)
+ target.gt_boxes = Boxes(boxes)
+
+ classes = [int(obj["category_id"]) for obj in annos]
+ classes = torch.tensor(classes, dtype=torch.int64)
+ target.gt_classes = classes
+
+ if len(annos) and "segmentation" in annos[0]:
+ segms = [obj["segmentation"] for obj in annos]
+ if mask_format == "polygon":
+ try:
+ masks = PolygonMasks(segms)
+ except ValueError as e:
+ raise ValueError(
+ "Failed to use mask_format=='polygon' from the given annotations!"
+ ) from e
+ else:
+ assert mask_format == "bitmask", mask_format
+ masks = []
+ for segm in segms:
+ if isinstance(segm, list):
+ # polygon
+ masks.append(polygons_to_bitmask(segm, *image_size))
+ elif isinstance(segm, dict):
+ # COCO RLE
+ masks.append(mask_util.decode(segm))
+ elif isinstance(segm, np.ndarray):
+ assert segm.ndim == 2, "Expect segmentation of 2 dimensions, got {}.".format(
+ segm.ndim
+ )
+ # mask array
+ masks.append(segm)
+ else:
+ raise ValueError(
+ "Cannot convert segmentation of type '{}' to BitMasks!"
+ "Supported types are: polygons as list[list[float] or ndarray],"
+ " COCO-style RLE as a dict, or a binary segmentation mask "
+ " in a 2D numpy array of shape HxW.".format(type(segm))
+ )
+ # torch.from_numpy does not support array with negative stride.
+ masks = BitMasks(
+ torch.stack([torch.from_numpy(np.ascontiguousarray(x)) for x in masks])
+ )
+ target.gt_masks = masks
+
+ if len(annos) and "keypoints" in annos[0]:
+ kpts = [obj.get("keypoints", []) for obj in annos]
+ target.gt_keypoints = Keypoints(kpts)
+
+ return target
+
+
+def annotations_to_instances_rotated(annos, image_size):
+ """
+ Create an :class:`Instances` object used by the models,
+ from instance annotations in the dataset dict.
+ Compared to `annotations_to_instances`, this function is for rotated boxes only
+
+ Args:
+ annos (list[dict]): a list of instance annotations in one image, each
+ element for one instance.
+ image_size (tuple): height, width
+
+ Returns:
+ Instances:
+ Containing fields "gt_boxes", "gt_classes",
+ if they can be obtained from `annos`.
+ This is the format that builtin models expect.
+ """
+ boxes = [obj["bbox"] for obj in annos]
+ target = Instances(image_size)
+ boxes = target.gt_boxes = RotatedBoxes(boxes)
+ boxes.clip(image_size)
+
+ classes = [obj["category_id"] for obj in annos]
+ classes = torch.tensor(classes, dtype=torch.int64)
+ target.gt_classes = classes
+
+ return target
+
+
+def filter_empty_instances(
+ instances, by_box=True, by_mask=True, box_threshold=1e-5, return_mask=False
+):
+ """
+ Filter out empty instances in an `Instances` object.
+
+ Args:
+ instances (Instances):
+ by_box (bool): whether to filter out instances with empty boxes
+ by_mask (bool): whether to filter out instances with empty masks
+ box_threshold (float): minimum width and height to be considered non-empty
+ return_mask (bool): whether to return boolean mask of filtered instances
+
+ Returns:
+ Instances: the filtered instances.
+ tensor[bool], optional: boolean mask of filtered instances
+ """
+ assert by_box or by_mask
+ r = []
+ if by_box:
+ r.append(instances.gt_boxes.nonempty(threshold=box_threshold))
+ if instances.has("gt_masks") and by_mask:
+ r.append(instances.gt_masks.nonempty())
+
+ # TODO: can also filter visible keypoints
+
+ if not r:
+ return instances
+ m = r[0]
+ for x in r[1:]:
+ m = m & x
+ if return_mask:
+ return instances[m], m
+ return instances[m]
+
+
+def create_keypoint_hflip_indices(dataset_names: Union[str, List[str]]) -> List[int]:
+ """
+ Args:
+ dataset_names: list of dataset names
+
+ Returns:
+ list[int]: a list of size=#keypoints, storing the
+ horizontally-flipped keypoint indices.
+ """
+ if isinstance(dataset_names, str):
+ dataset_names = [dataset_names]
+
+ check_metadata_consistency("keypoint_names", dataset_names)
+ check_metadata_consistency("keypoint_flip_map", dataset_names)
+
+ meta = MetadataCatalog.get(dataset_names[0])
+ names = meta.keypoint_names
+ # TODO flip -> hflip
+ flip_map = dict(meta.keypoint_flip_map)
+ flip_map.update({v: k for k, v in flip_map.items()})
+ flipped_names = [i if i not in flip_map else flip_map[i] for i in names]
+ flip_indices = [names.index(i) for i in flipped_names]
+ return flip_indices
+
+
+def get_fed_loss_cls_weights(dataset_names: Union[str, List[str]], freq_weight_power=1.0):
+ """
+ Get frequency weight for each class sorted by class id.
+ We now calcualte freqency weight using image_count to the power freq_weight_power.
+
+ Args:
+ dataset_names: list of dataset names
+ freq_weight_power: power value
+ """
+ if isinstance(dataset_names, str):
+ dataset_names = [dataset_names]
+
+ check_metadata_consistency("class_image_count", dataset_names)
+
+ meta = MetadataCatalog.get(dataset_names[0])
+ class_freq_meta = meta.class_image_count
+ class_freq = torch.tensor(
+ [c["image_count"] for c in sorted(class_freq_meta, key=lambda x: x["id"])]
+ )
+ class_freq_weight = class_freq.float() ** freq_weight_power
+ return class_freq_weight
+
+
+def gen_crop_transform_with_instance(crop_size, image_size, instance):
+ """
+ Generate a CropTransform so that the cropping region contains
+ the center of the given instance.
+
+ Args:
+ crop_size (tuple): h, w in pixels
+ image_size (tuple): h, w
+ instance (dict): an annotation dict of one instance, in Detectron2's
+ dataset format.
+ """
+ crop_size = np.asarray(crop_size, dtype=np.int32)
+ bbox = BoxMode.convert(instance["bbox"], instance["bbox_mode"], BoxMode.XYXY_ABS)
+ center_yx = (bbox[1] + bbox[3]) * 0.5, (bbox[0] + bbox[2]) * 0.5
+ assert (
+ image_size[0] >= center_yx[0] and image_size[1] >= center_yx[1]
+ ), "The annotation bounding box is outside of the image!"
+ assert (
+ image_size[0] >= crop_size[0] and image_size[1] >= crop_size[1]
+ ), "Crop size is larger than image size!"
+
+ min_yx = np.maximum(np.floor(center_yx).astype(np.int32) - crop_size, 0)
+ max_yx = np.maximum(np.asarray(image_size, dtype=np.int32) - crop_size, 0)
+ max_yx = np.minimum(max_yx, np.ceil(center_yx).astype(np.int32))
+
+ y0 = np.random.randint(min_yx[0], max_yx[0] + 1)
+ x0 = np.random.randint(min_yx[1], max_yx[1] + 1)
+ return T.CropTransform(x0, y0, crop_size[1], crop_size[0])
+
+
+def check_metadata_consistency(key, dataset_names):
+ """
+ Check that the datasets have consistent metadata.
+
+ Args:
+ key (str): a metadata key
+ dataset_names (list[str]): a list of dataset names
+
+ Raises:
+ AttributeError: if the key does not exist in the metadata
+ ValueError: if the given datasets do not have the same metadata values defined by key
+ """
+ if len(dataset_names) == 0:
+ return
+ logger = logging.getLogger(__name__)
+ entries_per_dataset = [getattr(MetadataCatalog.get(d), key) for d in dataset_names]
+ for idx, entry in enumerate(entries_per_dataset):
+ if entry != entries_per_dataset[0]:
+ logger.error(
+ "Metadata '{}' for dataset '{}' is '{}'".format(key, dataset_names[idx], str(entry))
+ )
+ logger.error(
+ "Metadata '{}' for dataset '{}' is '{}'".format(
+ key, dataset_names[0], str(entries_per_dataset[0])
+ )
+ )
+ raise ValueError("Datasets have different metadata '{}'!".format(key))
+
+
+def build_augmentation(cfg, is_train):
+ """
+ Create a list of default :class:`Augmentation` from config.
+ Now it includes resizing and flipping.
+
+ Returns:
+ list[Augmentation]
+ """
+ if is_train:
+ min_size = cfg.INPUT.MIN_SIZE_TRAIN
+ max_size = cfg.INPUT.MAX_SIZE_TRAIN
+ sample_style = cfg.INPUT.MIN_SIZE_TRAIN_SAMPLING
+ else:
+ min_size = cfg.INPUT.MIN_SIZE_TEST
+ max_size = cfg.INPUT.MAX_SIZE_TEST
+ sample_style = "choice"
+ augmentation = [T.ResizeShortestEdge(min_size, max_size, sample_style)]
+ if is_train and cfg.INPUT.RANDOM_FLIP != "none":
+ augmentation.append(
+ T.RandomFlip(
+ horizontal=cfg.INPUT.RANDOM_FLIP == "horizontal",
+ vertical=cfg.INPUT.RANDOM_FLIP == "vertical",
+ )
+ )
+ return augmentation
+
+
+build_transform_gen = build_augmentation
+"""
+Alias for backward-compatibility.
+"""
diff --git a/cutler/data/transforms/__init__.py b/cutler/data/transforms/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..168241d5faa88ed97124a961b948f51e5be61ab8
--- /dev/null
+++ b/cutler/data/transforms/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/transforms/__init__.py
+
+from fvcore.transforms.transform import *
+from .transform import *
+from detectron2.data.transforms.augmentation import *
+from .augmentation_impl import *
+
+__all__ = [k for k in globals().keys() if not k.startswith("_")]
+
+
+from detectron2.utils.env import fixup_module_metadata
+
+fixup_module_metadata(__name__, globals(), __all__)
+del fixup_module_metadata
\ No newline at end of file
diff --git a/cutler/data/transforms/augmentation_impl.py b/cutler/data/transforms/augmentation_impl.py
new file mode 100644
index 0000000000000000000000000000000000000000..b62f918c510805902313e73828cbcb6dab84dbcd
--- /dev/null
+++ b/cutler/data/transforms/augmentation_impl.py
@@ -0,0 +1,616 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/transforms/augmentation_impl.py
+
+"""
+Implement many useful :class:`Augmentation`.
+"""
+import numpy as np
+import sys
+from typing import Tuple
+import torch
+from fvcore.transforms.transform import (
+ BlendTransform,
+ CropTransform,
+ HFlipTransform,
+ NoOpTransform,
+ PadTransform,
+ Transform,
+ TransformList,
+ VFlipTransform,
+)
+from PIL import Image
+
+from detectron2.data.transforms.augmentation import Augmentation, _transform_to_aug
+from .transform import ExtentTransform, ResizeTransform, RotationTransform
+
+__all__ = [
+ "FixedSizeCrop",
+ "RandomApply",
+ "RandomBrightness",
+ "RandomContrast",
+ "RandomCrop",
+ "RandomExtent",
+ "RandomFlip",
+ "RandomSaturation",
+ "RandomLighting",
+ "RandomRotation",
+ "Resize",
+ "ResizeScale",
+ "ResizeShortestEdge",
+ "RandomCrop_CategoryAreaConstraint",
+]
+
+
+class RandomApply(Augmentation):
+ """
+ Randomly apply an augmentation with a given probability.
+ """
+
+ def __init__(self, tfm_or_aug, prob=0.5):
+ """
+ Args:
+ tfm_or_aug (Transform, Augmentation): the transform or augmentation
+ to be applied. It can either be a `Transform` or `Augmentation`
+ instance.
+ prob (float): probability between 0.0 and 1.0 that
+ the wrapper transformation is applied
+ """
+ super().__init__()
+ self.aug = _transform_to_aug(tfm_or_aug)
+ assert 0.0 <= prob <= 1.0, f"Probablity must be between 0.0 and 1.0 (given: {prob})"
+ self.prob = prob
+
+ def get_transform(self, *args):
+ do = self._rand_range() < self.prob
+ if do:
+ return self.aug.get_transform(*args)
+ else:
+ return NoOpTransform()
+
+ def __call__(self, aug_input):
+ do = self._rand_range() < self.prob
+ if do:
+ return self.aug(aug_input)
+ else:
+ return NoOpTransform()
+
+
+class RandomFlip(Augmentation):
+ """
+ Flip the image horizontally or vertically with the given probability.
+ """
+
+ def __init__(self, prob=0.5, *, horizontal=True, vertical=False):
+ """
+ Args:
+ prob (float): probability of flip.
+ horizontal (boolean): whether to apply horizontal flipping
+ vertical (boolean): whether to apply vertical flipping
+ """
+ super().__init__()
+
+ if horizontal and vertical:
+ raise ValueError("Cannot do both horiz and vert. Please use two Flip instead.")
+ if not horizontal and not vertical:
+ raise ValueError("At least one of horiz or vert has to be True!")
+ self._init(locals())
+
+ def get_transform(self, image):
+ h, w = image.shape[:2]
+ do = self._rand_range() < self.prob
+ if do:
+ if self.horizontal:
+ return HFlipTransform(w)
+ elif self.vertical:
+ return VFlipTransform(h)
+ else:
+ return NoOpTransform()
+
+
+class Resize(Augmentation):
+ """Resize image to a fixed target size"""
+
+ def __init__(self, shape, interp=Image.BILINEAR):
+ """
+ Args:
+ shape: (h, w) tuple or a int
+ interp: PIL interpolation method
+ """
+ if isinstance(shape, int):
+ shape = (shape, shape)
+ shape = tuple(shape)
+ self._init(locals())
+
+ def get_transform(self, image):
+ return ResizeTransform(
+ image.shape[0], image.shape[1], self.shape[0], self.shape[1], self.interp
+ )
+
+
+class ResizeShortestEdge(Augmentation):
+ """
+ Resize the image while keeping the aspect ratio unchanged.
+ It attempts to scale the shorter edge to the given `short_edge_length`,
+ as long as the longer edge does not exceed `max_size`.
+ If `max_size` is reached, then downscale so that the longer edge does not exceed max_size.
+ """
+
+ @torch.jit.unused
+ def __init__(
+ self, short_edge_length, max_size=sys.maxsize, sample_style="range", interp=Image.BILINEAR
+ ):
+ """
+ Args:
+ short_edge_length (list[int]): If ``sample_style=="range"``,
+ a [min, max] interval from which to sample the shortest edge length.
+ If ``sample_style=="choice"``, a list of shortest edge lengths to sample from.
+ max_size (int): maximum allowed longest edge length.
+ sample_style (str): either "range" or "choice".
+ """
+ super().__init__()
+ assert sample_style in ["range", "choice"], sample_style
+
+ self.is_range = sample_style == "range"
+ if isinstance(short_edge_length, int):
+ short_edge_length = (short_edge_length, short_edge_length)
+ if self.is_range:
+ assert len(short_edge_length) == 2, (
+ "short_edge_length must be two values using 'range' sample style."
+ f" Got {short_edge_length}!"
+ )
+ self._init(locals())
+
+ @torch.jit.unused
+ def get_transform(self, image):
+ h, w = image.shape[:2]
+ if self.is_range:
+ size = np.random.randint(self.short_edge_length[0], self.short_edge_length[1] + 1)
+ else:
+ size = np.random.choice(self.short_edge_length)
+ if size == 0:
+ return NoOpTransform()
+
+ newh, neww = ResizeShortestEdge.get_output_shape(h, w, size, self.max_size)
+ return ResizeTransform(h, w, newh, neww, self.interp)
+
+ @staticmethod
+ def get_output_shape(
+ oldh: int, oldw: int, short_edge_length: int, max_size: int
+ ) -> Tuple[int, int]:
+ """
+ Compute the output size given input size and target short edge length.
+ """
+ h, w = oldh, oldw
+ size = short_edge_length * 1.0
+ scale = size / min(h, w)
+ if h < w:
+ newh, neww = size, scale * w
+ else:
+ newh, neww = scale * h, size
+ if max(newh, neww) > max_size:
+ scale = max_size * 1.0 / max(newh, neww)
+ newh = newh * scale
+ neww = neww * scale
+ neww = int(neww + 0.5)
+ newh = int(newh + 0.5)
+ return (newh, neww)
+
+
+class ResizeScale(Augmentation):
+ """
+ Takes target size as input and randomly scales the given target size between `min_scale`
+ and `max_scale`. It then scales the input image such that it fits inside the scaled target
+ box, keeping the aspect ratio constant.
+ This implements the resize part of the Google's 'resize_and_crop' data augmentation:
+ https://github.com/tensorflow/tpu/blob/master/models/official/detection/utils/input_utils.py#L127
+ """
+
+ def __init__(
+ self,
+ min_scale: float,
+ max_scale: float,
+ target_height: int,
+ target_width: int,
+ interp: int = Image.BILINEAR,
+ ):
+ """
+ Args:
+ min_scale: minimum image scale range.
+ max_scale: maximum image scale range.
+ target_height: target image height.
+ target_width: target image width.
+ interp: image interpolation method.
+ """
+ super().__init__()
+ self._init(locals())
+
+ def _get_resize(self, image: np.ndarray, scale: float) -> Transform:
+ input_size = image.shape[:2]
+
+ # Compute new target size given a scale.
+ target_size = (self.target_height, self.target_width)
+ target_scale_size = np.multiply(target_size, scale)
+
+ # Compute actual rescaling applied to input image and output size.
+ output_scale = np.minimum(
+ target_scale_size[0] / input_size[0], target_scale_size[1] / input_size[1]
+ )
+ output_size = np.round(np.multiply(input_size, output_scale)).astype(int)
+
+ return ResizeTransform(
+ input_size[0], input_size[1], output_size[0], output_size[1], self.interp
+ )
+
+ def get_transform(self, image: np.ndarray) -> Transform:
+ random_scale = np.random.uniform(self.min_scale, self.max_scale)
+ return self._get_resize(image, random_scale)
+
+
+class RandomRotation(Augmentation):
+ """
+ This method returns a copy of this image, rotated the given
+ number of degrees counter clockwise around the given center.
+ """
+
+ def __init__(self, angle, expand=True, center=None, sample_style="range", interp=None):
+ """
+ Args:
+ angle (list[float]): If ``sample_style=="range"``,
+ a [min, max] interval from which to sample the angle (in degrees).
+ If ``sample_style=="choice"``, a list of angles to sample from
+ expand (bool): choose if the image should be resized to fit the whole
+ rotated image (default), or simply cropped
+ center (list[[float, float]]): If ``sample_style=="range"``,
+ a [[minx, miny], [maxx, maxy]] relative interval from which to sample the center,
+ [0, 0] being the top left of the image and [1, 1] the bottom right.
+ If ``sample_style=="choice"``, a list of centers to sample from
+ Default: None, which means that the center of rotation is the center of the image
+ center has no effect if expand=True because it only affects shifting
+ """
+ super().__init__()
+ assert sample_style in ["range", "choice"], sample_style
+ self.is_range = sample_style == "range"
+ if isinstance(angle, (float, int)):
+ angle = (angle, angle)
+ if center is not None and isinstance(center[0], (float, int)):
+ center = (center, center)
+ self._init(locals())
+
+ def get_transform(self, image):
+ h, w = image.shape[:2]
+ center = None
+ if self.is_range:
+ angle = np.random.uniform(self.angle[0], self.angle[1])
+ if self.center is not None:
+ center = (
+ np.random.uniform(self.center[0][0], self.center[1][0]),
+ np.random.uniform(self.center[0][1], self.center[1][1]),
+ )
+ else:
+ angle = np.random.choice(self.angle)
+ if self.center is not None:
+ center = np.random.choice(self.center)
+
+ if center is not None:
+ center = (w * center[0], h * center[1]) # Convert to absolute coordinates
+
+ if angle % 360 == 0:
+ return NoOpTransform()
+
+ return RotationTransform(h, w, angle, expand=self.expand, center=center, interp=self.interp)
+
+
+class FixedSizeCrop(Augmentation):
+ """
+ If `crop_size` is smaller than the input image size, then it uses a random crop of
+ the crop size. If `crop_size` is larger than the input image size, then it pads
+ the right and the bottom of the image to the crop size if `pad` is True, otherwise
+ it returns the smaller image.
+ """
+
+ def __init__(self, crop_size: Tuple[int], pad: bool = True, pad_value: float = 128.0):
+ """
+ Args:
+ crop_size: target image (height, width).
+ pad: if True, will pad images smaller than `crop_size` up to `crop_size`
+ pad_value: the padding value.
+ """
+ super().__init__()
+ self._init(locals())
+
+ def _get_crop(self, image: np.ndarray) -> Transform:
+ # Compute the image scale and scaled size.
+ input_size = image.shape[:2]
+ output_size = self.crop_size
+
+ # Add random crop if the image is scaled up.
+ max_offset = np.subtract(input_size, output_size)
+ max_offset = np.maximum(max_offset, 0)
+ offset = np.multiply(max_offset, np.random.uniform(0.0, 1.0))
+ offset = np.round(offset).astype(int)
+ return CropTransform(
+ offset[1], offset[0], output_size[1], output_size[0], input_size[1], input_size[0]
+ )
+
+ def _get_pad(self, image: np.ndarray) -> Transform:
+ # Compute the image scale and scaled size.
+ input_size = image.shape[:2]
+ output_size = self.crop_size
+
+ # Add padding if the image is scaled down.
+ pad_size = np.subtract(output_size, input_size)
+ pad_size = np.maximum(pad_size, 0)
+ original_size = np.minimum(input_size, output_size)
+ return PadTransform(
+ 0, 0, pad_size[1], pad_size[0], original_size[1], original_size[0], self.pad_value
+ )
+
+ def get_transform(self, image: np.ndarray) -> TransformList:
+ transforms = [self._get_crop(image)]
+ if self.pad:
+ transforms.append(self._get_pad(image))
+ return TransformList(transforms)
+
+
+class RandomCrop(Augmentation):
+ """
+ Randomly crop a rectangle region out of an image.
+ """
+
+ def __init__(self, crop_type: str, crop_size):
+ """
+ Args:
+ crop_type (str): one of "relative_range", "relative", "absolute", "absolute_range".
+ crop_size (tuple[float, float]): two floats, explained below.
+
+ - "relative": crop a (H * crop_size[0], W * crop_size[1]) region from an input image of
+ size (H, W). crop size should be in (0, 1]
+ - "relative_range": uniformly sample two values from [crop_size[0], 1]
+ and [crop_size[1]], 1], and use them as in "relative" crop type.
+ - "absolute" crop a (crop_size[0], crop_size[1]) region from input image.
+ crop_size must be smaller than the input image size.
+ - "absolute_range", for an input of size (H, W), uniformly sample H_crop in
+ [crop_size[0], min(H, crop_size[1])] and W_crop in [crop_size[0], min(W, crop_size[1])].
+ Then crop a region (H_crop, W_crop).
+ """
+ # TODO style of relative_range and absolute_range are not consistent:
+ # one takes (h, w) but another takes (min, max)
+ super().__init__()
+ assert crop_type in ["relative_range", "relative", "absolute", "absolute_range"]
+ self._init(locals())
+
+ def get_transform(self, image):
+ h, w = image.shape[:2]
+ croph, cropw = self.get_crop_size((h, w))
+ assert h >= croph and w >= cropw, "Shape computation in {} has bugs.".format(self)
+ h0 = np.random.randint(h - croph + 1)
+ w0 = np.random.randint(w - cropw + 1)
+ return CropTransform(w0, h0, cropw, croph)
+
+ def get_crop_size(self, image_size):
+ """
+ Args:
+ image_size (tuple): height, width
+
+ Returns:
+ crop_size (tuple): height, width in absolute pixels
+ """
+ h, w = image_size
+ if self.crop_type == "relative":
+ ch, cw = self.crop_size
+ return int(h * ch + 0.5), int(w * cw + 0.5)
+ elif self.crop_type == "relative_range":
+ crop_size = np.asarray(self.crop_size, dtype=np.float32)
+ ch, cw = crop_size + np.random.rand(2) * (1 - crop_size)
+ return int(h * ch + 0.5), int(w * cw + 0.5)
+ elif self.crop_type == "absolute":
+ return (min(self.crop_size[0], h), min(self.crop_size[1], w))
+ elif self.crop_type == "absolute_range":
+ assert self.crop_size[0] <= self.crop_size[1]
+ ch = np.random.randint(min(h, self.crop_size[0]), min(h, self.crop_size[1]) + 1)
+ cw = np.random.randint(min(w, self.crop_size[0]), min(w, self.crop_size[1]) + 1)
+ return ch, cw
+ else:
+ raise NotImplementedError("Unknown crop type {}".format(self.crop_type))
+
+
+class RandomCrop_CategoryAreaConstraint(Augmentation):
+ """
+ Similar to :class:`RandomCrop`, but find a cropping window such that no single category
+ occupies a ratio of more than `single_category_max_area` in semantic segmentation ground
+ truth, which can cause unstability in training. The function attempts to find such a valid
+ cropping window for at most 10 times.
+ """
+
+ def __init__(
+ self,
+ crop_type: str,
+ crop_size,
+ single_category_max_area: float = 1.0,
+ ignored_category: int = None,
+ ):
+ """
+ Args:
+ crop_type, crop_size: same as in :class:`RandomCrop`
+ single_category_max_area: the maximum allowed area ratio of a
+ category. Set to 1.0 to disable
+ ignored_category: allow this category in the semantic segmentation
+ ground truth to exceed the area ratio. Usually set to the category
+ that's ignored in training.
+ """
+ self.crop_aug = RandomCrop(crop_type, crop_size)
+ self._init(locals())
+
+ def get_transform(self, image, sem_seg):
+ if self.single_category_max_area >= 1.0:
+ return self.crop_aug.get_transform(image)
+ else:
+ h, w = sem_seg.shape
+ for _ in range(10):
+ crop_size = self.crop_aug.get_crop_size((h, w))
+ y0 = np.random.randint(h - crop_size[0] + 1)
+ x0 = np.random.randint(w - crop_size[1] + 1)
+ sem_seg_temp = sem_seg[y0 : y0 + crop_size[0], x0 : x0 + crop_size[1]]
+ labels, cnt = np.unique(sem_seg_temp, return_counts=True)
+ if self.ignored_category is not None:
+ cnt = cnt[labels != self.ignored_category]
+ if len(cnt) > 1 and np.max(cnt) < np.sum(cnt) * self.single_category_max_area:
+ break
+ crop_tfm = CropTransform(x0, y0, crop_size[1], crop_size[0])
+ return crop_tfm
+
+
+class RandomExtent(Augmentation):
+ """
+ Outputs an image by cropping a random "subrect" of the source image.
+
+ The subrect can be parameterized to include pixels outside the source image,
+ in which case they will be set to zeros (i.e. black). The size of the output
+ image will vary with the size of the random subrect.
+ """
+
+ def __init__(self, scale_range, shift_range):
+ """
+ Args:
+ output_size (h, w): Dimensions of output image
+ scale_range (l, h): Range of input-to-output size scaling factor
+ shift_range (x, y): Range of shifts of the cropped subrect. The rect
+ is shifted by [w / 2 * Uniform(-x, x), h / 2 * Uniform(-y, y)],
+ where (w, h) is the (width, height) of the input image. Set each
+ component to zero to crop at the image's center.
+ """
+ super().__init__()
+ self._init(locals())
+
+ def get_transform(self, image):
+ img_h, img_w = image.shape[:2]
+
+ # Initialize src_rect to fit the input image.
+ src_rect = np.array([-0.5 * img_w, -0.5 * img_h, 0.5 * img_w, 0.5 * img_h])
+
+ # Apply a random scaling to the src_rect.
+ src_rect *= np.random.uniform(self.scale_range[0], self.scale_range[1])
+
+ # Apply a random shift to the coordinates origin.
+ src_rect[0::2] += self.shift_range[0] * img_w * (np.random.rand() - 0.5)
+ src_rect[1::2] += self.shift_range[1] * img_h * (np.random.rand() - 0.5)
+
+ # Map src_rect coordinates into image coordinates (center at corner).
+ src_rect[0::2] += 0.5 * img_w
+ src_rect[1::2] += 0.5 * img_h
+
+ return ExtentTransform(
+ src_rect=(src_rect[0], src_rect[1], src_rect[2], src_rect[3]),
+ output_size=(int(src_rect[3] - src_rect[1]), int(src_rect[2] - src_rect[0])),
+ )
+
+
+class RandomContrast(Augmentation):
+ """
+ Randomly transforms image contrast.
+
+ Contrast intensity is uniformly sampled in (intensity_min, intensity_max).
+ - intensity < 1 will reduce contrast
+ - intensity = 1 will preserve the input image
+ - intensity > 1 will increase contrast
+
+ See: https://pillow.readthedocs.io/en/3.0.x/reference/ImageEnhance.html
+ """
+
+ def __init__(self, intensity_min, intensity_max):
+ """
+ Args:
+ intensity_min (float): Minimum augmentation
+ intensity_max (float): Maximum augmentation
+ """
+ super().__init__()
+ self._init(locals())
+
+ def get_transform(self, image):
+ w = np.random.uniform(self.intensity_min, self.intensity_max)
+ return BlendTransform(src_image=image.mean(), src_weight=1 - w, dst_weight=w)
+
+
+class RandomBrightness(Augmentation):
+ """
+ Randomly transforms image brightness.
+
+ Brightness intensity is uniformly sampled in (intensity_min, intensity_max).
+ - intensity < 1 will reduce brightness
+ - intensity = 1 will preserve the input image
+ - intensity > 1 will increase brightness
+
+ See: https://pillow.readthedocs.io/en/3.0.x/reference/ImageEnhance.html
+ """
+
+ def __init__(self, intensity_min, intensity_max):
+ """
+ Args:
+ intensity_min (float): Minimum augmentation
+ intensity_max (float): Maximum augmentation
+ """
+ super().__init__()
+ self._init(locals())
+
+ def get_transform(self, image):
+ w = np.random.uniform(self.intensity_min, self.intensity_max)
+ return BlendTransform(src_image=0, src_weight=1 - w, dst_weight=w)
+
+
+class RandomSaturation(Augmentation):
+ """
+ Randomly transforms saturation of an RGB image.
+ Input images are assumed to have 'RGB' channel order.
+
+ Saturation intensity is uniformly sampled in (intensity_min, intensity_max).
+ - intensity < 1 will reduce saturation (make the image more grayscale)
+ - intensity = 1 will preserve the input image
+ - intensity > 1 will increase saturation
+
+ See: https://pillow.readthedocs.io/en/3.0.x/reference/ImageEnhance.html
+ """
+
+ def __init__(self, intensity_min, intensity_max):
+ """
+ Args:
+ intensity_min (float): Minimum augmentation (1 preserves input).
+ intensity_max (float): Maximum augmentation (1 preserves input).
+ """
+ super().__init__()
+ self._init(locals())
+
+ def get_transform(self, image):
+ assert image.shape[-1] == 3, "RandomSaturation only works on RGB images"
+ w = np.random.uniform(self.intensity_min, self.intensity_max)
+ grayscale = image.dot([0.299, 0.587, 0.114])[:, :, np.newaxis]
+ return BlendTransform(src_image=grayscale, src_weight=1 - w, dst_weight=w)
+
+
+class RandomLighting(Augmentation):
+ """
+ The "lighting" augmentation described in AlexNet, using fixed PCA over ImageNet.
+ Input images are assumed to have 'RGB' channel order.
+
+ The degree of color jittering is randomly sampled via a normal distribution,
+ with standard deviation given by the scale parameter.
+ """
+
+ def __init__(self, scale):
+ """
+ Args:
+ scale (float): Standard deviation of principal component weighting.
+ """
+ super().__init__()
+ self._init(locals())
+ self.eigen_vecs = np.array(
+ [[-0.5675, 0.7192, 0.4009], [-0.5808, -0.0045, -0.8140], [-0.5836, -0.6948, 0.4203]]
+ )
+ self.eigen_vals = np.array([0.2175, 0.0188, 0.0045])
+
+ def get_transform(self, image):
+ assert image.shape[-1] == 3, "RandomLighting only works on RGB images"
+ weights = np.random.normal(scale=self.scale, size=3)
+ return BlendTransform(
+ src_image=self.eigen_vecs.dot(weights * self.eigen_vals), src_weight=1.0, dst_weight=1.0
+ )
diff --git a/cutler/data/transforms/transform.py b/cutler/data/transforms/transform.py
new file mode 100644
index 0000000000000000000000000000000000000000..3be4fd53ba7bffcf5be5806043ef0d02bb1b5ba0
--- /dev/null
+++ b/cutler/data/transforms/transform.py
@@ -0,0 +1,355 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/transforms/transform.py
+
+"""
+See "Data Augmentation" tutorial for an overview of the system:
+https://detectron2.readthedocs.io/tutorials/augmentation.html
+"""
+
+import numpy as np
+import torch
+import torch.nn.functional as F
+from fvcore.transforms.transform import (
+ CropTransform,
+ HFlipTransform,
+ NoOpTransform,
+ Transform,
+ TransformList,
+)
+from PIL import Image
+
+try:
+ import cv2 # noqa
+except ImportError:
+ # OpenCV is an optional dependency at the moment
+ pass
+
+__all__ = [
+ "ExtentTransform",
+ "ResizeTransform",
+ "RotationTransform",
+ "ColorTransform",
+ "PILColorTransform",
+]
+
+
+class ExtentTransform(Transform):
+ """
+ Extracts a subregion from the source image and scales it to the output size.
+
+ The fill color is used to map pixels from the source rect that fall outside
+ the source image.
+
+ See: https://pillow.readthedocs.io/en/latest/PIL.html#PIL.ImageTransform.ExtentTransform
+ """
+
+ def __init__(self, src_rect, output_size, interp=Image.LINEAR, fill=0):
+ """
+ Args:
+ src_rect (x0, y0, x1, y1): src coordinates
+ output_size (h, w): dst image size
+ interp: PIL interpolation methods
+ fill: Fill color used when src_rect extends outside image
+ """
+ super().__init__()
+ self._set_attributes(locals())
+
+ def apply_image(self, img, interp=None):
+ h, w = self.output_size
+ if len(img.shape) > 2 and img.shape[2] == 1:
+ pil_image = Image.fromarray(img[:, :, 0], mode="L")
+ else:
+ pil_image = Image.fromarray(img)
+ pil_image = pil_image.transform(
+ size=(w, h),
+ method=Image.EXTENT,
+ data=self.src_rect,
+ resample=interp if interp else self.interp,
+ fill=self.fill,
+ )
+ ret = np.asarray(pil_image)
+ if len(img.shape) > 2 and img.shape[2] == 1:
+ ret = np.expand_dims(ret, -1)
+ return ret
+
+ def apply_coords(self, coords):
+ # Transform image center from source coordinates into output coordinates
+ # and then map the new origin to the corner of the output image.
+ h, w = self.output_size
+ x0, y0, x1, y1 = self.src_rect
+ new_coords = coords.astype(np.float32)
+ new_coords[:, 0] -= 0.5 * (x0 + x1)
+ new_coords[:, 1] -= 0.5 * (y0 + y1)
+ new_coords[:, 0] *= w / (x1 - x0)
+ new_coords[:, 1] *= h / (y1 - y0)
+ new_coords[:, 0] += 0.5 * w
+ new_coords[:, 1] += 0.5 * h
+ return new_coords
+
+ def apply_segmentation(self, segmentation):
+ segmentation = self.apply_image(segmentation, interp=Image.NEAREST)
+ return segmentation
+
+
+class ResizeTransform(Transform):
+ """
+ Resize the image to a target size.
+ """
+
+ def __init__(self, h, w, new_h, new_w, interp=None):
+ """
+ Args:
+ h, w (int): original image size
+ new_h, new_w (int): new image size
+ interp: PIL interpolation methods, defaults to bilinear.
+ """
+ # TODO decide on PIL vs opencv
+ super().__init__()
+ if interp is None:
+ interp = Image.BILINEAR
+ self._set_attributes(locals())
+
+ def apply_image(self, img, interp=None):
+ try:
+ img.shape[:2] == (self.h, self.w)
+ except:
+ (self.h, self.w) = (self.w, self.h)
+ assert img.shape[:2] == (self.h, self.w)
+ assert len(img.shape) <= 4
+ interp_method = interp if interp is not None else self.interp
+
+ if img.dtype == np.uint8:
+ if len(img.shape) > 2 and img.shape[2] == 1:
+ pil_image = Image.fromarray(img[:, :, 0], mode="L")
+ else:
+ pil_image = Image.fromarray(img)
+ pil_image = pil_image.resize((self.new_w, self.new_h), interp_method)
+ ret = np.asarray(pil_image)
+ if len(img.shape) > 2 and img.shape[2] == 1:
+ ret = np.expand_dims(ret, -1)
+ else:
+ # PIL only supports uint8
+ if any(x < 0 for x in img.strides):
+ img = np.ascontiguousarray(img)
+ img = torch.from_numpy(img)
+ shape = list(img.shape)
+ shape_4d = shape[:2] + [1] * (4 - len(shape)) + shape[2:]
+ img = img.view(shape_4d).permute(2, 3, 0, 1) # hw(c) -> nchw
+ _PIL_RESIZE_TO_INTERPOLATE_MODE = {
+ Image.NEAREST: "nearest",
+ Image.BILINEAR: "bilinear",
+ Image.BICUBIC: "bicubic",
+ }
+ mode = _PIL_RESIZE_TO_INTERPOLATE_MODE[interp_method]
+ align_corners = None if mode == "nearest" else False
+ img = F.interpolate(
+ img, (self.new_h, self.new_w), mode=mode, align_corners=align_corners
+ )
+ shape[:2] = (self.new_h, self.new_w)
+ ret = img.permute(2, 3, 0, 1).view(shape).numpy() # nchw -> hw(c)
+
+ return ret
+
+ def apply_coords(self, coords):
+ coords[:, 0] = coords[:, 0] * (self.new_w * 1.0 / self.w)
+ coords[:, 1] = coords[:, 1] * (self.new_h * 1.0 / self.h)
+ return coords
+
+ def apply_segmentation(self, segmentation):
+ segmentation = self.apply_image(segmentation, interp=Image.NEAREST)
+ return segmentation
+
+ def inverse(self):
+ return ResizeTransform(self.new_h, self.new_w, self.h, self.w, self.interp)
+
+
+class RotationTransform(Transform):
+ """
+ This method returns a copy of this image, rotated the given
+ number of degrees counter clockwise around its center.
+ """
+
+ def __init__(self, h, w, angle, expand=True, center=None, interp=None):
+ """
+ Args:
+ h, w (int): original image size
+ angle (float): degrees for rotation
+ expand (bool): choose if the image should be resized to fit the whole
+ rotated image (default), or simply cropped
+ center (tuple (width, height)): coordinates of the rotation center
+ if left to None, the center will be fit to the center of each image
+ center has no effect if expand=True because it only affects shifting
+ interp: cv2 interpolation method, default cv2.INTER_LINEAR
+ """
+ super().__init__()
+ image_center = np.array((w / 2, h / 2))
+ if center is None:
+ center = image_center
+ if interp is None:
+ interp = cv2.INTER_LINEAR
+ abs_cos, abs_sin = (abs(np.cos(np.deg2rad(angle))), abs(np.sin(np.deg2rad(angle))))
+ if expand:
+ # find the new width and height bounds
+ bound_w, bound_h = np.rint(
+ [h * abs_sin + w * abs_cos, h * abs_cos + w * abs_sin]
+ ).astype(int)
+ else:
+ bound_w, bound_h = w, h
+
+ self._set_attributes(locals())
+ self.rm_coords = self.create_rotation_matrix()
+ # Needed because of this problem https://github.com/opencv/opencv/issues/11784
+ self.rm_image = self.create_rotation_matrix(offset=-0.5)
+
+ def apply_image(self, img, interp=None):
+ """
+ img should be a numpy array, formatted as Height * Width * Nchannels
+ """
+ if len(img) == 0 or self.angle % 360 == 0:
+ return img
+ assert img.shape[:2] == (self.h, self.w)
+ interp = interp if interp is not None else self.interp
+ return cv2.warpAffine(img, self.rm_image, (self.bound_w, self.bound_h), flags=interp)
+
+ def apply_coords(self, coords):
+ """
+ coords should be a N * 2 array-like, containing N couples of (x, y) points
+ """
+ coords = np.asarray(coords, dtype=float)
+ if len(coords) == 0 or self.angle % 360 == 0:
+ return coords
+ return cv2.transform(coords[:, np.newaxis, :], self.rm_coords)[:, 0, :]
+
+ def apply_segmentation(self, segmentation):
+ segmentation = self.apply_image(segmentation, interp=cv2.INTER_NEAREST)
+ return segmentation
+
+ def create_rotation_matrix(self, offset=0):
+ center = (self.center[0] + offset, self.center[1] + offset)
+ rm = cv2.getRotationMatrix2D(tuple(center), self.angle, 1)
+ if self.expand:
+ # Find the coordinates of the center of rotation in the new image
+ # The only point for which we know the future coordinates is the center of the image
+ rot_im_center = cv2.transform(self.image_center[None, None, :] + offset, rm)[0, 0, :]
+ new_center = np.array([self.bound_w / 2, self.bound_h / 2]) + offset - rot_im_center
+ # shift the rotation center to the new coordinates
+ rm[:, 2] += new_center
+ return rm
+
+ def inverse(self):
+ """
+ The inverse is to rotate it back with expand, and crop to get the original shape.
+ """
+ if not self.expand: # Not possible to inverse if a part of the image is lost
+ raise NotImplementedError()
+ rotation = RotationTransform(
+ self.bound_h, self.bound_w, -self.angle, True, None, self.interp
+ )
+ crop = CropTransform(
+ (rotation.bound_w - self.w) // 2, (rotation.bound_h - self.h) // 2, self.w, self.h
+ )
+ return TransformList([rotation, crop])
+
+
+class ColorTransform(Transform):
+ """
+ Generic wrapper for any photometric transforms.
+ These transformations should only affect the color space and
+ not the coordinate space of the image (e.g. annotation
+ coordinates such as bounding boxes should not be changed)
+ """
+
+ def __init__(self, op):
+ """
+ Args:
+ op (Callable): operation to be applied to the image,
+ which takes in an ndarray and returns an ndarray.
+ """
+ if not callable(op):
+ raise ValueError("op parameter should be callable")
+ super().__init__()
+ self._set_attributes(locals())
+
+ def apply_image(self, img):
+ return self.op(img)
+
+ def apply_coords(self, coords):
+ return coords
+
+ def inverse(self):
+ return NoOpTransform()
+
+ def apply_segmentation(self, segmentation):
+ return segmentation
+
+
+class PILColorTransform(ColorTransform):
+ """
+ Generic wrapper for PIL Photometric image transforms,
+ which affect the color space and not the coordinate
+ space of the image
+ """
+
+ def __init__(self, op):
+ """
+ Args:
+ op (Callable): operation to be applied to the image,
+ which takes in a PIL Image and returns a transformed
+ PIL Image.
+ For reference on possible operations see:
+ - https://pillow.readthedocs.io/en/stable/
+ """
+ if not callable(op):
+ raise ValueError("op parameter should be callable")
+ super().__init__(op)
+
+ def apply_image(self, img):
+ img = Image.fromarray(img)
+ return np.asarray(super().apply_image(img))
+
+
+def HFlip_rotated_box(transform, rotated_boxes):
+ """
+ Apply the horizontal flip transform on rotated boxes.
+
+ Args:
+ rotated_boxes (ndarray): Nx5 floating point array of
+ (x_center, y_center, width, height, angle_degrees) format
+ in absolute coordinates.
+ """
+ # Transform x_center
+ rotated_boxes[:, 0] = transform.width - rotated_boxes[:, 0]
+ # Transform angle
+ rotated_boxes[:, 4] = -rotated_boxes[:, 4]
+ return rotated_boxes
+
+
+def Resize_rotated_box(transform, rotated_boxes):
+ """
+ Apply the resizing transform on rotated boxes. For details of how these (approximation)
+ formulas are derived, please refer to :meth:`RotatedBoxes.scale`.
+
+ Args:
+ rotated_boxes (ndarray): Nx5 floating point array of
+ (x_center, y_center, width, height, angle_degrees) format
+ in absolute coordinates.
+ """
+ scale_factor_x = transform.new_w * 1.0 / transform.w
+ scale_factor_y = transform.new_h * 1.0 / transform.h
+ rotated_boxes[:, 0] *= scale_factor_x
+ rotated_boxes[:, 1] *= scale_factor_y
+ theta = rotated_boxes[:, 4] * np.pi / 180.0
+ c = np.cos(theta)
+ s = np.sin(theta)
+ rotated_boxes[:, 2] *= np.sqrt(np.square(scale_factor_x * c) + np.square(scale_factor_y * s))
+ rotated_boxes[:, 3] *= np.sqrt(np.square(scale_factor_x * s) + np.square(scale_factor_y * c))
+ rotated_boxes[:, 4] = np.arctan2(scale_factor_x * s, scale_factor_y * c) * 180 / np.pi
+
+ return rotated_boxes
+
+
+HFlipTransform.register_type("rotated_box", HFlip_rotated_box)
+ResizeTransform.register_type("rotated_box", Resize_rotated_box)
+
+# not necessary any more with latest fvcore
+NoOpTransform.register_type("rotated_box", lambda t, x: x)
diff --git a/cutler/demo/__init__.py b/cutler/demo/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..2c79f1f75095f35ffb3f32eb96fbb105444ca27d
--- /dev/null
+++ b/cutler/demo/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+from demo import *
+from predictor import *
+
+__all__ = [k for k in globals().keys() if not k.startswith("_")]
\ No newline at end of file
diff --git a/cutler/demo/demo.py b/cutler/demo/demo.py
new file mode 100644
index 0000000000000000000000000000000000000000..9e4017a7b4c08f034d529c40e384166becff24e1
--- /dev/null
+++ b/cutler/demo/demo.py
@@ -0,0 +1,197 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/demo/demo.py
+
+import argparse
+import glob
+import multiprocessing as mp
+import numpy as np
+import os
+import tempfile
+import time
+import warnings
+import cv2
+import tqdm
+
+from detectron2.config import get_cfg
+from detectron2.data.detection_utils import read_image
+from detectron2.utils.logger import setup_logger
+import sys
+sys.path.append('./')
+sys.path.append('../')
+from config import add_cutler_config
+
+from predictor import VisualizationDemo
+
+# constants
+WINDOW_NAME = "CutLER detections"
+
+
+def setup_cfg(args):
+ # load config from file and command-line arguments
+ cfg = get_cfg()
+ add_cutler_config(cfg)
+ cfg.merge_from_file(args.config_file)
+ cfg.merge_from_list(args.opts)
+ # Disable the use of SyncBN normalization when running on a CPU
+ # SyncBN is not supported on CPU and can cause errors, so we switch to BN instead
+ if cfg.MODEL.DEVICE == 'cpu' and cfg.MODEL.RESNETS.NORM == 'SyncBN':
+ cfg.MODEL.RESNETS.NORM = "BN"
+ cfg.MODEL.FPN.NORM = "BN"
+ # Set score_threshold for builtin models
+ cfg.MODEL.RETINANET.SCORE_THRESH_TEST = args.confidence_threshold
+ cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = args.confidence_threshold
+ cfg.MODEL.PANOPTIC_FPN.COMBINE.INSTANCES_CONFIDENCE_THRESH = args.confidence_threshold
+ cfg.freeze()
+ return cfg
+
+
+def get_parser():
+ parser = argparse.ArgumentParser(description="Detectron2 demo for builtin configs")
+ parser.add_argument(
+ "--config-file",
+ default="model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml",
+ metavar="FILE",
+ help="path to config file",
+ )
+ parser.add_argument("--webcam", action="store_true", help="Take inputs from webcam.")
+ parser.add_argument("--video-input", help="Path to video file.")
+ parser.add_argument(
+ "--input",
+ nargs="+",
+ help="A list of space separated input images; "
+ "or a single glob pattern such as 'directory/*.jpg'",
+ )
+ parser.add_argument(
+ "--output",
+ help="A file or directory to save output visualizations. "
+ "If not given, will show output in an OpenCV window.",
+ )
+
+ parser.add_argument(
+ "--confidence-threshold",
+ type=float,
+ default=0.35,
+ help="Minimum score for instance predictions to be shown",
+ )
+ parser.add_argument(
+ "--opts",
+ help="Modify config options using the command-line 'KEY VALUE' pairs",
+ default=[],
+ nargs=argparse.REMAINDER,
+ )
+ return parser
+
+
+def test_opencv_video_format(codec, file_ext):
+ with tempfile.TemporaryDirectory(prefix="video_format_test") as dir:
+ filename = os.path.join(dir, "test_file" + file_ext)
+ writer = cv2.VideoWriter(
+ filename=filename,
+ fourcc=cv2.VideoWriter_fourcc(*codec),
+ fps=float(30),
+ frameSize=(10, 10),
+ isColor=True,
+ )
+ [writer.write(np.zeros((10, 10, 3), np.uint8)) for _ in range(30)]
+ writer.release()
+ if os.path.isfile(filename):
+ return True
+ return False
+
+
+if __name__ == "__main__":
+ mp.set_start_method("spawn", force=True)
+ args = get_parser().parse_args()
+ setup_logger(name="fvcore")
+ logger = setup_logger()
+ logger.info("Arguments: " + str(args))
+
+ cfg = setup_cfg(args)
+
+ demo = VisualizationDemo(cfg)
+
+ if args.input:
+ if len(args.input) == 1:
+ args.input = glob.glob(os.path.expanduser(args.input[0]))
+ assert args.input, "The input path(s) was not found"
+ for path in tqdm.tqdm(args.input, disable=not args.output):
+ # use PIL, to be consistent with evaluation
+ img = read_image(path, format="BGR")
+ start_time = time.time()
+ predictions, visualized_output = demo.run_on_image(img)
+ logger.info(
+ "{}: {} in {:.2f}s".format(
+ path,
+ "detected {} instances".format(len(predictions["instances"]))
+ if "instances" in predictions
+ else "finished",
+ time.time() - start_time,
+ )
+ )
+
+ if args.output:
+ if os.path.isdir(args.output):
+ assert os.path.isdir(args.output), args.output
+ out_filename = os.path.join(args.output, os.path.basename(path))
+ else:
+ assert len(args.input) == 1, "Please specify a directory with args.output"
+ out_filename = args.output
+ visualized_output.save(out_filename)
+ else:
+ cv2.namedWindow(WINDOW_NAME, cv2.WINDOW_NORMAL)
+ cv2.imshow(WINDOW_NAME, visualized_output.get_image()[:, :, ::-1])
+ if cv2.waitKey(0) == 27:
+ break # esc to quit
+ elif args.webcam:
+ assert args.input is None, "Cannot have both --input and --webcam!"
+ assert args.output is None, "output not yet supported with --webcam!"
+ cam = cv2.VideoCapture(0)
+ for vis in tqdm.tqdm(demo.run_on_video(cam)):
+ cv2.namedWindow(WINDOW_NAME, cv2.WINDOW_NORMAL)
+ cv2.imshow(WINDOW_NAME, vis)
+ if cv2.waitKey(1) == 27:
+ break # esc to quit
+ cam.release()
+ cv2.destroyAllWindows()
+ elif args.video_input:
+ video = cv2.VideoCapture(args.video_input)
+ width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
+ height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
+ frames_per_second = video.get(cv2.CAP_PROP_FPS)
+ num_frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
+ basename = os.path.basename(args.video_input)
+ codec, file_ext = (
+ ("x264", ".mkv") if test_opencv_video_format("x264", ".mkv") else ("mp4v", ".mp4")
+ )
+ if codec == ".mp4v":
+ warnings.warn("x264 codec not available, switching to mp4v")
+ if args.output:
+ if os.path.isdir(args.output):
+ output_fname = os.path.join(args.output, basename)
+ output_fname = os.path.splitext(output_fname)[0] + file_ext
+ else:
+ output_fname = args.output
+ assert not os.path.isfile(output_fname), output_fname
+ output_file = cv2.VideoWriter(
+ filename=output_fname,
+ # some installation of opencv may not support x264 (due to its license),
+ # you can try other format (e.g. MPEG)
+ fourcc=cv2.VideoWriter_fourcc(*codec),
+ fps=float(frames_per_second),
+ frameSize=(width, height),
+ isColor=True,
+ )
+ assert os.path.isfile(args.video_input)
+ for vis_frame in tqdm.tqdm(demo.run_on_video(video), total=num_frames):
+ if args.output:
+ output_file.write(vis_frame)
+ else:
+ cv2.namedWindow(basename, cv2.WINDOW_NORMAL)
+ cv2.imshow(basename, vis_frame)
+ if cv2.waitKey(1) == 27:
+ break # esc to quit
+ video.release()
+ if args.output:
+ output_file.release()
+ else:
+ cv2.destroyAllWindows()
\ No newline at end of file
diff --git a/cutler/demo/predictor.py b/cutler/demo/predictor.py
new file mode 100644
index 0000000000000000000000000000000000000000..0920159d2de32428fbb25ecbf00839e9a56de044
--- /dev/null
+++ b/cutler/demo/predictor.py
@@ -0,0 +1,219 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+import atexit
+import bisect
+import multiprocessing as mp
+from collections import deque
+import cv2
+import torch
+
+from detectron2.data import MetadataCatalog
+import sys
+sys.path.append('./')
+from engine.defaults import DefaultPredictor
+from detectron2.utils.video_visualizer import VideoVisualizer
+from detectron2.utils.visualizer import ColorMode, Visualizer
+
+
+class VisualizationDemo(object):
+ def __init__(self, cfg, instance_mode=ColorMode.IMAGE, parallel=False):
+ """
+ Args:
+ cfg (CfgNode):
+ instance_mode (ColorMode):
+ parallel (bool): whether to run the model in different processes from visualization.
+ Useful since the visualization logic can be slow.
+ """
+ self.metadata = MetadataCatalog.get(
+ cfg.DATASETS.TEST[0] if len(cfg.DATASETS.TEST) else "__unused"
+ )
+ self.cpu_device = torch.device("cpu")
+ self.instance_mode = instance_mode
+
+ self.parallel = parallel
+ if parallel:
+ num_gpu = torch.cuda.device_count()
+ self.predictor = AsyncPredictor(cfg, num_gpus=num_gpu)
+ else:
+ self.predictor = DefaultPredictor(cfg)
+
+ def run_on_image(self, image):
+ """
+ Args:
+ image (np.ndarray): an image of shape (H, W, C) (in BGR order).
+ This is the format used by OpenCV.
+ Returns:
+ predictions (dict): the output of the model.
+ vis_output (VisImage): the visualized image output.
+ """
+ vis_output = None
+ predictions = self.predictor(image)
+ # Convert image from OpenCV BGR format to Matplotlib RGB format.
+ image = image[:, :, ::-1]
+ visualizer = Visualizer(image, self.metadata, instance_mode=self.instance_mode)
+ if "panoptic_seg" in predictions:
+ panoptic_seg, segments_info = predictions["panoptic_seg"]
+ vis_output = visualizer.draw_panoptic_seg_predictions(
+ panoptic_seg.to(self.cpu_device), segments_info
+ )
+ else:
+ if "sem_seg" in predictions:
+ vis_output = visualizer.draw_sem_seg(
+ predictions["sem_seg"].argmax(dim=0).to(self.cpu_device)
+ )
+ if "instances" in predictions:
+ instances = predictions["instances"].to(self.cpu_device)
+ vis_output = visualizer.draw_instance_predictions(predictions=instances)
+
+ return predictions, vis_output
+
+ def _frame_from_video(self, video):
+ while video.isOpened():
+ success, frame = video.read()
+ if success:
+ yield frame
+ else:
+ break
+
+ def run_on_video(self, video):
+ """
+ Visualizes predictions on frames of the input video.
+ Args:
+ video (cv2.VideoCapture): a :class:`VideoCapture` object, whose source can be
+ either a webcam or a video file.
+ Yields:
+ ndarray: BGR visualizations of each video frame.
+ """
+ video_visualizer = VideoVisualizer(self.metadata, self.instance_mode)
+
+ def process_predictions(frame, predictions):
+ frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
+ if "panoptic_seg" in predictions:
+ panoptic_seg, segments_info = predictions["panoptic_seg"]
+ vis_frame = video_visualizer.draw_panoptic_seg_predictions(
+ frame, panoptic_seg.to(self.cpu_device), segments_info
+ )
+ elif "instances" in predictions:
+ predictions = predictions["instances"].to(self.cpu_device)
+ vis_frame = video_visualizer.draw_instance_predictions(frame, predictions)
+ elif "sem_seg" in predictions:
+ vis_frame = video_visualizer.draw_sem_seg(
+ frame, predictions["sem_seg"].argmax(dim=0).to(self.cpu_device)
+ )
+
+ # Converts Matplotlib RGB format to OpenCV BGR format
+ vis_frame = cv2.cvtColor(vis_frame.get_image(), cv2.COLOR_RGB2BGR)
+ return vis_frame
+
+ frame_gen = self._frame_from_video(video)
+ if self.parallel:
+ buffer_size = self.predictor.default_buffer_size
+
+ frame_data = deque()
+
+ for cnt, frame in enumerate(frame_gen):
+ frame_data.append(frame)
+ self.predictor.put(frame)
+
+ if cnt >= buffer_size:
+ frame = frame_data.popleft()
+ predictions = self.predictor.get()
+ yield process_predictions(frame, predictions)
+
+ while len(frame_data):
+ frame = frame_data.popleft()
+ predictions = self.predictor.get()
+ yield process_predictions(frame, predictions)
+ else:
+ for frame in frame_gen:
+ yield process_predictions(frame, self.predictor(frame))
+
+
+class AsyncPredictor:
+ """
+ A predictor that runs the model asynchronously, possibly on >1 GPUs.
+ Because rendering the visualization takes considerably amount of time,
+ this helps improve throughput a little bit when rendering videos.
+ """
+
+ class _StopToken:
+ pass
+
+ class _PredictWorker(mp.Process):
+ def __init__(self, cfg, task_queue, result_queue):
+ self.cfg = cfg
+ self.task_queue = task_queue
+ self.result_queue = result_queue
+ super().__init__()
+
+ def run(self):
+ predictor = DefaultPredictor(self.cfg)
+
+ while True:
+ task = self.task_queue.get()
+ if isinstance(task, AsyncPredictor._StopToken):
+ break
+ idx, data = task
+ result = predictor(data)
+ self.result_queue.put((idx, result))
+
+ def __init__(self, cfg, num_gpus: int = 1):
+ """
+ Args:
+ cfg (CfgNode):
+ num_gpus (int): if 0, will run on CPU
+ """
+ num_workers = max(num_gpus, 1)
+ self.task_queue = mp.Queue(maxsize=num_workers * 3)
+ self.result_queue = mp.Queue(maxsize=num_workers * 3)
+ self.procs = []
+ for gpuid in range(max(num_gpus, 1)):
+ cfg = cfg.clone()
+ cfg.defrost()
+ cfg.MODEL.DEVICE = "cuda:{}".format(gpuid) if num_gpus > 0 else "cpu"
+ self.procs.append(
+ AsyncPredictor._PredictWorker(cfg, self.task_queue, self.result_queue)
+ )
+
+ self.put_idx = 0
+ self.get_idx = 0
+ self.result_rank = []
+ self.result_data = []
+
+ for p in self.procs:
+ p.start()
+ atexit.register(self.shutdown)
+
+ def put(self, image):
+ self.put_idx += 1
+ self.task_queue.put((self.put_idx, image))
+
+ def get(self):
+ self.get_idx += 1 # the index needed for this request
+ if len(self.result_rank) and self.result_rank[0] == self.get_idx:
+ res = self.result_data[0]
+ del self.result_data[0], self.result_rank[0]
+ return res
+
+ while True:
+ # make sure the results are returned in the correct order
+ idx, res = self.result_queue.get()
+ if idx == self.get_idx:
+ return res
+ insert = bisect.bisect(self.result_rank, idx)
+ self.result_rank.insert(insert, idx)
+ self.result_data.insert(insert, res)
+
+ def __len__(self):
+ return self.put_idx - self.get_idx
+
+ def __call__(self, image):
+ self.put(image)
+ return self.get()
+
+ def shutdown(self):
+ for _ in self.procs:
+ self.task_queue.put(AsyncPredictor._StopToken())
+
+ @property
+ def default_buffer_size(self):
+ return len(self.procs) * 5
\ No newline at end of file
diff --git a/cutler/engine/__init__.py b/cutler/engine/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..02b5fa56466a1b5ee44fd5adeda393ef0c73d8ba
--- /dev/null
+++ b/cutler/engine/__init__.py
@@ -0,0 +1,7 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from .train_loop import *
+
+__all__ = [k for k in globals().keys() if not k.startswith("_")]
+
+from .defaults import *
\ No newline at end of file
diff --git a/cutler/engine/defaults.py b/cutler/engine/defaults.py
new file mode 100644
index 0000000000000000000000000000000000000000..c41baba899c8dcd90c84b59feb626d528b5f9549
--- /dev/null
+++ b/cutler/engine/defaults.py
@@ -0,0 +1,726 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/engine/defaults.py
+
+"""
+This file contains components with some default boilerplate logic user may need
+in training / testing. They will not work for everyone, but many users may find them useful.
+
+The behavior of functions/classes in this file is subject to change,
+since they are meant to represent the "common default behavior" people need in their projects.
+"""
+
+import argparse
+import logging
+import os
+import sys
+import weakref
+from collections import OrderedDict
+from typing import Optional
+import torch
+from fvcore.nn.precise_bn import get_bn_modules
+from omegaconf import OmegaConf
+from torch.nn.parallel import DistributedDataParallel
+
+import data.transforms as T
+from detectron2.checkpoint import DetectionCheckpointer
+from detectron2.config import CfgNode, LazyConfig
+from detectron2.data import (
+ MetadataCatalog,
+)
+from data import (
+ build_detection_test_loader,
+ build_detection_train_loader,
+)
+from detectron2.evaluation import (
+ DatasetEvaluator,
+ inference_on_dataset,
+ print_csv_format,
+ verify_results,
+)
+from modeling import build_model
+from solver import build_lr_scheduler, build_optimizer
+from detectron2.utils import comm
+from detectron2.utils.collect_env import collect_env_info
+from detectron2.utils.env import seed_all_rng
+from detectron2.utils.events import CommonMetricPrinter, JSONWriter, TensorboardXWriter
+from detectron2.utils.file_io import PathManager
+from detectron2.utils.logger import setup_logger
+
+from detectron2.engine import hooks
+from detectron2.engine import TrainerBase
+from .train_loop import CustomAMPTrainer, CustomSimpleTrainer
+
+__all__ = [
+ "create_ddp_model",
+ "default_argument_parser",
+ "default_setup",
+ "default_writers",
+ "DefaultPredictor",
+ "DefaultTrainer",
+]
+
+
+def create_ddp_model(model, *, fp16_compression=False, **kwargs):
+ """
+ Create a DistributedDataParallel model if there are >1 processes.
+
+ Args:
+ model: a torch.nn.Module
+ fp16_compression: add fp16 compression hooks to the ddp object.
+ See more at https://pytorch.org/docs/stable/ddp_comm_hooks.html#torch.distributed.algorithms.ddp_comm_hooks.default_hooks.fp16_compress_hook
+ kwargs: other arguments of :module:`torch.nn.parallel.DistributedDataParallel`.
+ """ # noqa
+ if comm.get_world_size() == 1:
+ return model
+ if "device_ids" not in kwargs:
+ kwargs["device_ids"] = [comm.get_local_rank()]
+ ddp = DistributedDataParallel(model, **kwargs)
+ if fp16_compression:
+ from torch.distributed.algorithms.ddp_comm_hooks import default as comm_hooks
+
+ ddp.register_comm_hook(state=None, hook=comm_hooks.fp16_compress_hook)
+ return ddp
+
+
+def default_argument_parser(epilog=None):
+ """
+ Create a parser with some common arguments used by detectron2 users.
+
+ Args:
+ epilog (str): epilog passed to ArgumentParser describing the usage.
+
+ Returns:
+ argparse.ArgumentParser:
+ """
+ parser = argparse.ArgumentParser(
+ epilog=epilog
+ or f"""
+Examples:
+
+Run on single machine:
+ $ {sys.argv[0]} --num-gpus 8 --config-file cfg.yaml
+
+Change some config options:
+ $ {sys.argv[0]} --config-file cfg.yaml MODEL.WEIGHTS /path/to/weight.pth SOLVER.BASE_LR 0.001
+
+Run on multiple machines:
+ (machine0)$ {sys.argv[0]} --machine-rank 0 --num-machines 2 --dist-url [--other-flags]
+ (machine1)$ {sys.argv[0]} --machine-rank 1 --num-machines 2 --dist-url [--other-flags]
+""",
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ )
+ parser.add_argument("--config-file", default="", metavar="FILE", help="path to config file")
+ parser.add_argument(
+ "--resume",
+ action="store_true",
+ help="Whether to attempt to resume from the checkpoint directory. "
+ "See documentation of `DefaultTrainer.resume_or_load()` for what it means.",
+ )
+ parser.add_argument("--eval-only", action="store_true", help="perform evaluation only")
+ parser.add_argument("--num-gpus", type=int, default=1, help="number of gpus *per machine*")
+ parser.add_argument("--num-machines", type=int, default=1, help="total number of machines")
+ parser.add_argument(
+ "--machine-rank", type=int, default=0, help="the rank of this machine (unique per machine)"
+ )
+ parser.add_argument(
+ "--test-dataset", type=str, default="", help="the dataset used for evaluation"
+ )
+ parser.add_argument(
+ "--train-dataset", type=str, default="", help="the dataset used for training"
+ )
+ parser.add_argument("--no-segm", action="store_true", help="perform evaluation on detection only")
+ # PyTorch still may leave orphan processes in multi-gpu training.
+ # Therefore we use a deterministic way to obtain port,
+ # so that users are aware of orphan processes by seeing the port occupied.
+ port = 2**15 + 2**14 + hash(os.getuid() if sys.platform != "win32" else 1) % 2**14
+ parser.add_argument(
+ "--dist-url",
+ default="tcp://127.0.0.1:{}".format(port),
+ help="initialization URL for pytorch distributed backend. See "
+ "https://pytorch.org/docs/stable/distributed.html for details.",
+ )
+ parser.add_argument(
+ "opts",
+ help="""
+Modify config options at the end of the command. For Yacs configs, use
+space-separated "PATH.KEY VALUE" pairs.
+For python-based LazyConfig, use "path.key=value".
+ """.strip(),
+ default=None,
+ nargs=argparse.REMAINDER,
+ )
+ return parser
+
+
+def _try_get_key(cfg, *keys, default=None):
+ """
+ Try select keys from cfg until the first key that exists. Otherwise return default.
+ """
+ if isinstance(cfg, CfgNode):
+ cfg = OmegaConf.create(cfg.dump())
+ for k in keys:
+ none = object()
+ p = OmegaConf.select(cfg, k, default=none)
+ if p is not none:
+ return p
+ return default
+
+
+def _highlight(code, filename):
+ try:
+ import pygments
+ except ImportError:
+ return code
+
+ from pygments.lexers import Python3Lexer, YamlLexer
+ from pygments.formatters import Terminal256Formatter
+
+ lexer = Python3Lexer() if filename.endswith(".py") else YamlLexer()
+ code = pygments.highlight(code, lexer, Terminal256Formatter(style="monokai"))
+ return code
+
+
+def default_setup(cfg, args):
+ """
+ Perform some basic common setups at the beginning of a job, including:
+
+ 1. Set up the detectron2 logger
+ 2. Log basic information about environment, cmdline arguments, and config
+ 3. Backup the config to the output directory
+
+ Args:
+ cfg (CfgNode or omegaconf.DictConfig): the full config to be used
+ args (argparse.NameSpace): the command line arguments to be logged
+ """
+ output_dir = _try_get_key(cfg, "OUTPUT_DIR", "output_dir", "train.output_dir")
+ if comm.is_main_process() and output_dir:
+ PathManager.mkdirs(output_dir)
+
+ rank = comm.get_rank()
+ setup_logger(output_dir, distributed_rank=rank, name="fvcore")
+ logger = setup_logger(output_dir, distributed_rank=rank)
+
+ logger.info("Rank of current process: {}. World size: {}".format(rank, comm.get_world_size()))
+ logger.info("Environment info:\n" + collect_env_info())
+
+ logger.info("Command line arguments: " + str(args))
+ if hasattr(args, "config_file") and args.config_file != "":
+ logger.info(
+ "Contents of args.config_file={}:\n{}".format(
+ args.config_file,
+ _highlight(PathManager.open(args.config_file, "r").read(), args.config_file),
+ )
+ )
+
+ if comm.is_main_process() and output_dir:
+ # Note: some of our scripts may expect the existence of
+ # config.yaml in output directory
+ path = os.path.join(output_dir, "config.yaml")
+ if isinstance(cfg, CfgNode):
+ logger.info("Running with full config:\n{}".format(_highlight(cfg.dump(), ".yaml")))
+ with PathManager.open(path, "w") as f:
+ f.write(cfg.dump())
+ else:
+ LazyConfig.save(cfg, path)
+ logger.info("Full config saved to {}".format(path))
+
+ # make sure each worker has a different, yet deterministic seed if specified
+ seed = _try_get_key(cfg, "SEED", "train.seed", default=-1)
+ seed_all_rng(None if seed < 0 else seed + rank)
+
+ # cudnn benchmark has large overhead. It shouldn't be used considering the small size of
+ # typical validation set.
+ if not (hasattr(args, "eval_only") and args.eval_only):
+ torch.backends.cudnn.benchmark = _try_get_key(
+ cfg, "CUDNN_BENCHMARK", "train.cudnn_benchmark", default=False
+ )
+
+
+def default_writers(output_dir: str, max_iter: Optional[int] = None):
+ """
+ Build a list of :class:`EventWriter` to be used.
+ It now consists of a :class:`CommonMetricPrinter`,
+ :class:`TensorboardXWriter` and :class:`JSONWriter`.
+
+ Args:
+ output_dir: directory to store JSON metrics and tensorboard events
+ max_iter: the total number of iterations
+
+ Returns:
+ list[EventWriter]: a list of :class:`EventWriter` objects.
+ """
+ PathManager.mkdirs(output_dir)
+ return [
+ # It may not always print what you want to see, since it prints "common" metrics only.
+ CommonMetricPrinter(max_iter),
+ JSONWriter(os.path.join(output_dir, "metrics.json")),
+ TensorboardXWriter(output_dir),
+ ]
+
+
+class DefaultPredictor:
+ """
+ Create a simple end-to-end predictor with the given config that runs on
+ single device for a single input image.
+
+ Compared to using the model directly, this class does the following additions:
+
+ 1. Load checkpoint from `cfg.MODEL.WEIGHTS`.
+ 2. Always take BGR image as the input and apply conversion defined by `cfg.INPUT.FORMAT`.
+ 3. Apply resizing defined by `cfg.INPUT.{MIN,MAX}_SIZE_TEST`.
+ 4. Take one input image and produce a single output, instead of a batch.
+
+ This is meant for simple demo purposes, so it does the above steps automatically.
+ This is not meant for benchmarks or running complicated inference logic.
+ If you'd like to do anything more complicated, please refer to its source code as
+ examples to build and use the model manually.
+
+ Attributes:
+ metadata (Metadata): the metadata of the underlying dataset, obtained from
+ cfg.DATASETS.TEST.
+
+ Examples:
+ ::
+ pred = DefaultPredictor(cfg)
+ inputs = cv2.imread("input.jpg")
+ outputs = pred(inputs)
+ """
+
+ def __init__(self, cfg):
+ self.cfg = cfg.clone() # cfg can be modified by model
+ self.model = build_model(self.cfg)
+ self.model.eval()
+ if len(cfg.DATASETS.TEST):
+ self.metadata = MetadataCatalog.get(cfg.DATASETS.TEST[0])
+
+ checkpointer = DetectionCheckpointer(self.model)
+ checkpointer.load(cfg.MODEL.WEIGHTS)
+
+ self.aug = T.ResizeShortestEdge(
+ [cfg.INPUT.MIN_SIZE_TEST, cfg.INPUT.MIN_SIZE_TEST], cfg.INPUT.MAX_SIZE_TEST
+ )
+
+ self.input_format = cfg.INPUT.FORMAT
+ assert self.input_format in ["RGB", "BGR"], self.input_format
+
+ def __call__(self, original_image):
+ """
+ Args:
+ original_image (np.ndarray): an image of shape (H, W, C) (in BGR order).
+
+ Returns:
+ predictions (dict):
+ the output of the model for one image only.
+ See :doc:`/tutorials/models` for details about the format.
+ """
+ with torch.no_grad(): # https://github.com/sphinx-doc/sphinx/issues/4258
+ # Apply pre-processing to image.
+ if self.input_format == "RGB":
+ # whether the model expects BGR inputs or RGB
+ original_image = original_image[:, :, ::-1]
+ height, width = original_image.shape[:2]
+ image = self.aug.get_transform(original_image).apply_image(original_image)
+ image = torch.as_tensor(image.astype("float32").transpose(2, 0, 1))
+
+ inputs = {"image": image, "height": height, "width": width}
+ predictions = self.model([inputs])[0]
+ return predictions
+
+
+class DefaultTrainer(TrainerBase):
+ """
+ A trainer with default training logic. It does the following:
+
+ 1. Create a :class:`SimpleTrainer` using model, optimizer, dataloader
+ defined by the given config. Create a LR scheduler defined by the config.
+ 2. Load the last checkpoint or `cfg.MODEL.WEIGHTS`, if exists, when
+ `resume_or_load` is called.
+ 3. Register a few common hooks defined by the config.
+
+ It is created to simplify the **standard model training workflow** and reduce code boilerplate
+ for users who only need the standard training workflow, with standard features.
+ It means this class makes *many assumptions* about your training logic that
+ may easily become invalid in a new research. In fact, any assumptions beyond those made in the
+ :class:`SimpleTrainer` are too much for research.
+
+ The code of this class has been annotated about restrictive assumptions it makes.
+ When they do not work for you, you're encouraged to:
+
+ 1. Overwrite methods of this class, OR:
+ 2. Use :class:`SimpleTrainer`, which only does minimal SGD training and
+ nothing else. You can then add your own hooks if needed. OR:
+ 3. Write your own training loop similar to `tools/plain_train_net.py`.
+
+ See the :doc:`/tutorials/training` tutorials for more details.
+
+ Note that the behavior of this class, like other functions/classes in
+ this file, is not stable, since it is meant to represent the "common default behavior".
+ It is only guaranteed to work well with the standard models and training workflow in detectron2.
+ To obtain more stable behavior, write your own training logic with other public APIs.
+
+ Examples:
+ ::
+ trainer = DefaultTrainer(cfg)
+ trainer.resume_or_load() # load last checkpoint or MODEL.WEIGHTS
+ trainer.train()
+
+ Attributes:
+ scheduler:
+ checkpointer (DetectionCheckpointer):
+ cfg (CfgNode):
+ """
+
+ def __init__(self, cfg):
+ """
+ Args:
+ cfg (CfgNode):
+ """
+ super().__init__()
+ logger = logging.getLogger("detectron2")
+ if not logger.isEnabledFor(logging.INFO): # setup_logger is not called for d2
+ setup_logger()
+ cfg = DefaultTrainer.auto_scale_workers(cfg, comm.get_world_size())
+
+ # Assume these objects must be constructed in this order.
+ model = self.build_model(cfg)
+ optimizer = self.build_optimizer(cfg, model)
+ data_loader = self.build_train_loader(cfg)
+
+ model = create_ddp_model(model, broadcast_buffers=False)
+ if cfg.SOLVER.AMP.ENABLED:
+ self._trainer = CustomAMPTrainer(model, data_loader, optimizer, cfg=cfg)
+ else:
+ self._trainer = CustomSimpleTrainer(model, data_loader, optimizer, cfg=cfg)
+
+ self.scheduler = self.build_lr_scheduler(cfg, optimizer)
+ self.checkpointer = DetectionCheckpointer(
+ # Assume you want to save checkpoints together with logs/statistics
+ model,
+ cfg.OUTPUT_DIR,
+ trainer=weakref.proxy(self),
+ )
+ self.start_iter = 0
+ self.max_iter = cfg.SOLVER.MAX_ITER
+ self.cfg = cfg
+
+ self.register_hooks(self.build_hooks())
+
+ def resume_or_load(self, resume=True):
+ """
+ If `resume==True` and `cfg.OUTPUT_DIR` contains the last checkpoint (defined by
+ a `last_checkpoint` file), resume from the file. Resuming means loading all
+ available states (eg. optimizer and scheduler) and update iteration counter
+ from the checkpoint. ``cfg.MODEL.WEIGHTS`` will not be used.
+
+ Otherwise, this is considered as an independent training. The method will load model
+ weights from the file `cfg.MODEL.WEIGHTS` (but will not load other states) and start
+ from iteration 0.
+
+ Args:
+ resume (bool): whether to do resume or not
+ """
+ self.checkpointer.resume_or_load(self.cfg.MODEL.WEIGHTS, resume=resume)
+ if resume and self.checkpointer.has_checkpoint():
+ # The checkpoint stores the training iteration that just finished, thus we start
+ # at the next iteration
+ self.start_iter = self.iter + 1
+
+ def build_hooks(self):
+ """
+ Build a list of default hooks, including timing, evaluation,
+ checkpointing, lr scheduling, precise BN, writing events.
+
+ Returns:
+ list[HookBase]:
+ """
+ cfg = self.cfg.clone()
+ cfg.defrost()
+ cfg.DATALOADER.NUM_WORKERS = 0 # save some memory and time for PreciseBN
+
+ ret = [
+ hooks.IterationTimer(),
+ hooks.LRScheduler(),
+ hooks.PreciseBN(
+ # Run at the same freq as (but before) evaluation.
+ cfg.TEST.EVAL_PERIOD,
+ self.model,
+ # Build a new data loader to not affect training
+ self.build_train_loader(cfg),
+ cfg.TEST.PRECISE_BN.NUM_ITER,
+ )
+ if cfg.TEST.PRECISE_BN.ENABLED and get_bn_modules(self.model)
+ else None,
+ ]
+
+ # Do PreciseBN before checkpointer, because it updates the model and need to
+ # be saved by checkpointer.
+ # This is not always the best: if checkpointing has a different frequency,
+ # some checkpoints may have more precise statistics than others.
+ if comm.is_main_process():
+ ret.append(hooks.PeriodicCheckpointer(self.checkpointer, cfg.SOLVER.CHECKPOINT_PERIOD))
+
+ def test_and_save_results():
+ self._last_eval_results = self.test(self.cfg, self.model)
+ return self._last_eval_results
+
+ # Do evaluation after checkpointer, because then if it fails,
+ # we can use the saved checkpoint to debug.
+ ret.append(hooks.EvalHook(cfg.TEST.EVAL_PERIOD, test_and_save_results))
+
+ if comm.is_main_process():
+ # Here the default print/log frequency of each writer is used.
+ # run writers in the end, so that evaluation metrics are written
+ ret.append(hooks.PeriodicWriter(self.build_writers(), period=20))
+ return ret
+
+ def build_writers(self):
+ """
+ Build a list of writers to be used using :func:`default_writers()`.
+ If you'd like a different list of writers, you can overwrite it in
+ your trainer.
+
+ Returns:
+ list[EventWriter]: a list of :class:`EventWriter` objects.
+ """
+ return default_writers(self.cfg.OUTPUT_DIR, self.max_iter)
+
+ def train(self):
+ """
+ Run training.
+
+ Returns:
+ OrderedDict of results, if evaluation is enabled. Otherwise None.
+ """
+ super().train(self.start_iter, self.max_iter)
+ if len(self.cfg.TEST.EXPECTED_RESULTS) and comm.is_main_process():
+ assert hasattr(
+ self, "_last_eval_results"
+ ), "No evaluation results obtained during training!"
+ verify_results(self.cfg, self._last_eval_results)
+ return self._last_eval_results
+
+ def run_step(self):
+ self._trainer.iter = self.iter
+ self._trainer.run_step()
+
+ def state_dict(self):
+ ret = super().state_dict()
+ ret["_trainer"] = self._trainer.state_dict()
+ return ret
+
+ def load_state_dict(self, state_dict):
+ super().load_state_dict(state_dict)
+ self._trainer.load_state_dict(state_dict["_trainer"])
+
+ @classmethod
+ def build_model(cls, cfg):
+ """
+ Returns:
+ torch.nn.Module:
+
+ It now calls :func:`detectron2.modeling.build_model`.
+ Overwrite it if you'd like a different model.
+ """
+ model = build_model(cfg)
+ logger = logging.getLogger(__name__)
+ logger.info("Model:\n{}".format(model))
+ return model
+
+ @classmethod
+ def build_optimizer(cls, cfg, model):
+ """
+ Returns:
+ torch.optim.Optimizer:
+
+ It now calls :func:`detectron2.solver.build_optimizer`.
+ Overwrite it if you'd like a different optimizer.
+ """
+ return build_optimizer(cfg, model)
+
+ @classmethod
+ def build_lr_scheduler(cls, cfg, optimizer):
+ """
+ It now calls :func:`detectron2.solver.build_lr_scheduler`.
+ Overwrite it if you'd like a different scheduler.
+ """
+ return build_lr_scheduler(cfg, optimizer)
+
+ @classmethod
+ def build_train_loader(cls, cfg):
+ """
+ Returns:
+ iterable
+
+ It now calls :func:`detectron2.data.build_detection_train_loader`.
+ Overwrite it if you'd like a different data loader.
+ """
+ return build_detection_train_loader(cfg)
+
+ @classmethod
+ def build_test_loader(cls, cfg, dataset_name):
+ """
+ Returns:
+ iterable
+
+ It now calls :func:`detectron2.data.build_detection_test_loader`.
+ Overwrite it if you'd like a different data loader.
+ """
+ return build_detection_test_loader(cfg, dataset_name)
+
+ @classmethod
+ def build_evaluator(cls, cfg, dataset_name):
+ """
+ Returns:
+ DatasetEvaluator or None
+
+ It is not implemented by default.
+ """
+ raise NotImplementedError(
+ """
+If you want DefaultTrainer to automatically run evaluation,
+please implement `build_evaluator()` in subclasses (see train_net.py for example).
+Alternatively, you can call evaluation functions yourself (see Colab balloon tutorial for example).
+"""
+ )
+
+ @classmethod
+ def test(cls, cfg, model, evaluators=None):
+ """
+ Evaluate the given model. The given model is expected to already contain
+ weights to evaluate.
+
+ Args:
+ cfg (CfgNode):
+ model (nn.Module):
+ evaluators (list[DatasetEvaluator] or None): if None, will call
+ :meth:`build_evaluator`. Otherwise, must have the same length as
+ ``cfg.DATASETS.TEST``.
+
+ Returns:
+ dict: a dict of result metrics
+ """
+ logger = logging.getLogger(__name__)
+ if isinstance(evaluators, DatasetEvaluator):
+ evaluators = [evaluators]
+ if evaluators is not None:
+ assert len(cfg.DATASETS.TEST) == len(evaluators), "{} != {}".format(
+ len(cfg.DATASETS.TEST), len(evaluators)
+ )
+
+ results = OrderedDict()
+ for idx, dataset_name in enumerate(cfg.DATASETS.TEST):
+ data_loader = cls.build_test_loader(cfg, dataset_name)
+ # When evaluators are passed in as arguments,
+ # implicitly assume that evaluators can be created before data_loader.
+ if evaluators is not None:
+ evaluator = evaluators[idx]
+ else:
+ try:
+ evaluator = cls.build_evaluator(cfg, dataset_name)
+ except NotImplementedError:
+ logger.warn(
+ "No evaluator found. Use `DefaultTrainer.test(evaluators=)`, "
+ "or implement its `build_evaluator` method."
+ )
+ results[dataset_name] = {}
+ continue
+ results_i = inference_on_dataset(model, data_loader, evaluator)
+ results[dataset_name] = results_i
+ if comm.is_main_process():
+ assert isinstance(
+ results_i, dict
+ ), "Evaluator must return a dict on the main process. Got {} instead.".format(
+ results_i
+ )
+ logger.info("Evaluation results for {} in csv format:".format(dataset_name))
+ print_csv_format(results_i)
+
+ if len(results) == 1:
+ results = list(results.values())[0]
+ return results
+
+ @staticmethod
+ def auto_scale_workers(cfg, num_workers: int):
+ """
+ When the config is defined for certain number of workers (according to
+ ``cfg.SOLVER.REFERENCE_WORLD_SIZE``) that's different from the number of
+ workers currently in use, returns a new cfg where the total batch size
+ is scaled so that the per-GPU batch size stays the same as the
+ original ``IMS_PER_BATCH // REFERENCE_WORLD_SIZE``.
+
+ Other config options are also scaled accordingly:
+ * training steps and warmup steps are scaled inverse proportionally.
+ * learning rate are scaled proportionally, following :paper:`ImageNet in 1h`.
+
+ For example, with the original config like the following:
+
+ .. code-block:: yaml
+
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.1
+ REFERENCE_WORLD_SIZE: 8
+ MAX_ITER: 5000
+ STEPS: (4000,)
+ CHECKPOINT_PERIOD: 1000
+
+ When this config is used on 16 GPUs instead of the reference number 8,
+ calling this method will return a new config with:
+
+ .. code-block:: yaml
+
+ IMS_PER_BATCH: 32
+ BASE_LR: 0.2
+ REFERENCE_WORLD_SIZE: 16
+ MAX_ITER: 2500
+ STEPS: (2000,)
+ CHECKPOINT_PERIOD: 500
+
+ Note that both the original config and this new config can be trained on 16 GPUs.
+ It's up to user whether to enable this feature (by setting ``REFERENCE_WORLD_SIZE``).
+
+ Returns:
+ CfgNode: a new config. Same as original if ``cfg.SOLVER.REFERENCE_WORLD_SIZE==0``.
+ """
+ old_world_size = cfg.SOLVER.REFERENCE_WORLD_SIZE
+ if old_world_size == 0 or old_world_size == num_workers:
+ return cfg
+ cfg = cfg.clone()
+ frozen = cfg.is_frozen()
+ cfg.defrost()
+
+ assert (
+ cfg.SOLVER.IMS_PER_BATCH % old_world_size == 0
+ ), "Invalid REFERENCE_WORLD_SIZE in config!"
+ scale = num_workers / old_world_size
+ bs = cfg.SOLVER.IMS_PER_BATCH = int(round(cfg.SOLVER.IMS_PER_BATCH * scale))
+ lr = cfg.SOLVER.BASE_LR = cfg.SOLVER.BASE_LR * scale
+ max_iter = cfg.SOLVER.MAX_ITER = int(round(cfg.SOLVER.MAX_ITER / scale))
+ warmup_iter = cfg.SOLVER.WARMUP_ITERS = int(round(cfg.SOLVER.WARMUP_ITERS / scale))
+ cfg.SOLVER.STEPS = tuple(int(round(s / scale)) for s in cfg.SOLVER.STEPS)
+ cfg.TEST.EVAL_PERIOD = int(round(cfg.TEST.EVAL_PERIOD / scale))
+ cfg.SOLVER.CHECKPOINT_PERIOD = int(round(cfg.SOLVER.CHECKPOINT_PERIOD / scale))
+ cfg.SOLVER.REFERENCE_WORLD_SIZE = num_workers # maintain invariant
+ logger = logging.getLogger(__name__)
+ logger.info(
+ f"Auto-scaling the config to batch_size={bs}, learning_rate={lr}, "
+ f"max_iter={max_iter}, warmup={warmup_iter}."
+ )
+
+ if frozen:
+ cfg.freeze()
+ return cfg
+
+
+# Access basic attributes from the underlying trainer
+for _attr in ["model", "data_loader", "optimizer"]:
+ setattr(
+ DefaultTrainer,
+ _attr,
+ property(
+ # getter
+ lambda self, x=_attr: getattr(self._trainer, x),
+ # setter
+ lambda self, value, x=_attr: setattr(self._trainer, x, value),
+ ),
+ )
diff --git a/cutler/engine/train_loop.py b/cutler/engine/train_loop.py
new file mode 100644
index 0000000000000000000000000000000000000000..53cc24724659e292e17a5001f57348aed45f26c8
--- /dev/null
+++ b/cutler/engine/train_loop.py
@@ -0,0 +1,360 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/engine/train_loop.py and https://github.com/NVlabs/FreeSOLO/tree/main/freesolo/engine/trainer.py
+
+import torch
+from torch.nn.parallel import DataParallel, DistributedDataParallel
+
+import numpy as np
+import time
+import torch
+from torch.nn.parallel import DataParallel, DistributedDataParallel
+import copy
+import random
+import torch.nn.functional as F
+from detectron2.structures.instances import Instances
+from detectron2.structures import BitMasks
+
+from detectron2.engine import SimpleTrainer
+
+__all__ = ["CustomSimpleTrainer", "CustomAMPTrainer"]
+
+class CustomSimpleTrainer(SimpleTrainer):
+ """
+ A simple trainer for the most common type of task:
+ single-cost single-optimizer single-data-source iterative optimization,
+ optionally using data-parallelism.
+ It assumes that every step, you:
+
+ 1. Compute the loss with a data from the data_loader.
+ 2. Compute the gradients with the above loss.
+ 3. Update the model with the optimizer.
+
+ All other tasks during training (checkpointing, logging, evaluation, LR schedule)
+ are maintained by hooks, which can be registered by :meth:`TrainerBase.register_hooks`.
+
+ If you want to do anything fancier than this,
+ either subclass TrainerBase and implement your own `run_step`,
+ or write your own training loop.
+ """
+
+ def __init__(self, model, data_loader, optimizer, cfg=None, use_copy_paste=False,
+ copy_paste_rate=-1, copy_paste_random_num=None, copy_paste_min_ratio=-1,
+ copy_paste_max_ratio=-1, visualize_copy_paste=False):
+ """
+ Args:
+ model: a torch Module. Takes a data from data_loader and returns a
+ dict of losses.
+ data_loader: an iterable. Contains data to be used to call model.
+ optimizer: a torch optimizer.
+ """
+ super().__init__(model, data_loader, optimizer)
+
+ """
+ We set the model to training mode in the trainer.
+ However it's valid to train a model that's in eval mode.
+ If you want your model (or a submodule of it) to behave
+ like evaluation during training, you can overwrite its train() method.
+ """
+ self.cfg = cfg
+ # model.train()
+
+ # self.model = model
+ # self.data_loader = data_loader
+ # to access the data loader iterator, call `self._data_loader_iter`
+ # self._data_loader_iter_obj = None
+ # self.optimizer = optimizer
+
+ self.use_copy_paste = use_copy_paste if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE
+ self.cfg_COPY_PASTE_RATE = copy_paste_rate if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE_RATE
+ self.cfg_COPY_PASTE_RANDOM_NUM = copy_paste_random_num if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE_RANDOM_NUM
+ self.cfg_COPY_PASTE_MIN_RATIO = copy_paste_min_ratio if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE_MIN_RATIO
+ self.cfg_COPY_PASTE_MAX_RATIO = copy_paste_max_ratio if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE_MAX_RATIO
+ self.cfg_VISUALIZE_COPY_PASTE = visualize_copy_paste if self.cfg is None else self.cfg.DATALOADER.VISUALIZE_COPY_PASTE
+
+ def IoU(self, mask1, mask2): # only work when the batch size is 1
+ mask1, mask2 = (mask1>0.5).to(torch.bool), (mask2>0.5).to(torch.bool)
+ intersection = torch.sum(mask1 * (mask1 == mask2), dim=[-1, -2]).squeeze()
+ union = torch.sum(mask1 + mask2, dim=[-1, -2]).squeeze()
+ return (intersection.to(torch.float) / union).mean().view(1, -1)
+
+ def IoY(self, mask1, mask2): # only work when the batch size is 1
+ # print(mask1.size(), mask2.size())
+ mask1, mask2 = mask1.squeeze(), mask2.squeeze()
+ mask1, mask2 = (mask1>0.5).to(torch.bool), (mask2>0.5).to(torch.bool)
+ intersection = torch.sum(mask1 * (mask1 == mask2), dim=[-1, -2]).squeeze()
+ union = torch.sum(mask2, dim=[-1, -2]).squeeze()
+ return (intersection.to(torch.float) / union).mean().view(1, -1)
+
+ def copy_and_paste(self, labeled_data, unlabeled_data):
+ new_unlabeled_data = []
+ def mask_iou_matrix(x, y, mode='iou'):
+ x = x.reshape(x.shape[0], -1).float()
+ y = y.reshape(y.shape[0], -1).float()
+ inter_matrix = x @ y.transpose(1, 0) # n1xn2
+ sum_x = x.sum(1)[:, None].expand(x.shape[0], y.shape[0])
+ sum_y = y.sum(1)[None, :].expand(x.shape[0], y.shape[0])
+ if mode == 'ioy':
+ iou_matrix = inter_matrix / (sum_y) # [1, 1]
+ else:
+ iou_matrix = inter_matrix / (sum_x + sum_y - inter_matrix) # [1, 1]
+ return iou_matrix
+
+ def visualize_data(data, save_path = './sample.jpg'):
+ from data import detection_utils as utils
+ from detectron2.data import DatasetCatalog, MetadataCatalog
+ from detectron2.utils.visualizer import Visualizer
+ data["instances"] = data["instances"].to(device='cpu')
+ img = data["image"].permute(1, 2, 0).cpu().detach().numpy()
+ img = utils.convert_image_to_rgb(img, 'RGB')
+ metadata = MetadataCatalog.get('imagenet_train_tau0.15')
+ visualizer = Visualizer(img, metadata=metadata, scale=1.0)
+ target_fields = data["instances"].get_fields()
+ labels = [metadata.thing_classes[i] for i in target_fields["gt_classes"]]
+ vis = visualizer.overlay_instances(
+ labels=labels,
+ boxes=target_fields.get("gt_boxes"), # ("gt_boxes", None),
+ masks=target_fields.get("gt_masks"), # ("gt_masks", None),
+ keypoints=target_fields.get("gt_keypoints", None),
+ )
+ print("Saving to {} ...".format(save_path))
+ vis.save(save_path)
+
+ for cur_labeled_data, cur_unlabeled_data in zip(labeled_data, unlabeled_data):
+ cur_labeled_instances = cur_labeled_data["instances"]
+ cur_labeled_image = cur_labeled_data["image"]
+ cur_unlabeled_instances = cur_unlabeled_data["instances"]
+ cur_unlabeled_image = cur_unlabeled_data["image"]
+
+ num_labeled_instances = len(cur_labeled_instances)
+ copy_paste_rate = random.random()
+
+ if self.cfg_COPY_PASTE_RATE >= copy_paste_rate and num_labeled_instances > 0:
+ if self.cfg_COPY_PASTE_RANDOM_NUM:
+ num_copy = 1 if num_labeled_instances == 1 else np.random.randint(1, max(1, num_labeled_instances))
+ else:
+ num_copy = num_labeled_instances
+ else:
+ num_copy = 0
+ if num_labeled_instances == 0 or num_copy == 0:
+ new_unlabeled_data.append(cur_unlabeled_data)
+ else:
+ # print("num_labeled_instances, num_copy: ", num_labeled_instances, num_copy)
+ choice = np.random.choice(num_labeled_instances, num_copy, replace=False)
+ copied_instances = cur_labeled_instances[choice].to(device=cur_unlabeled_instances.gt_boxes.device)
+ copied_masks = copied_instances.gt_masks
+ copied_boxes = copied_instances.gt_boxes
+ _, labeled_h, labeled_w = cur_labeled_image.shape
+ _, unlabeled_h, unlabeled_w = cur_unlabeled_image.shape
+
+ # rescale the labeled image to align with unlabeled one.
+ if isinstance(copied_masks, torch.Tensor):
+ masks_new = copied_masks[None, ...].float()
+ else:
+ masks_new = copied_masks.tensor[None, ...].float()
+ # resize the masks with a random ratio from 0.5 to 1.0
+ resize_ratio = random.uniform(self.cfg_COPY_PASTE_MIN_RATIO, self.cfg_COPY_PASTE_MAX_RATIO)
+ w_new = int(resize_ratio * unlabeled_w)
+ h_new = int(resize_ratio * unlabeled_h)
+
+ w_shift = random.randint(0, unlabeled_w - w_new)
+ h_shift = random.randint(0, unlabeled_h - h_new)
+
+ cur_labeled_image_new = F.interpolate(cur_labeled_image[None, ...].float(), size=(h_new, w_new), mode="bilinear", align_corners=False).byte().squeeze(0)
+ if isinstance(copied_masks, torch.Tensor):
+ masks_new = F.interpolate(copied_masks[None, ...].float(), size=(h_new, w_new), mode="bilinear", align_corners=False).bool().squeeze(0)
+ else:
+ masks_new = F.interpolate(copied_masks.tensor[None, ...].float(), size=(h_new, w_new), mode="bilinear", align_corners=False).bool().squeeze(0)
+ copied_boxes.scale(1. * unlabeled_w / labeled_w * resize_ratio, 1. * unlabeled_h / labeled_h * resize_ratio)
+
+ if isinstance(cur_unlabeled_instances.gt_masks, torch.Tensor):
+ _, mask_w, mask_h = cur_unlabeled_instances.gt_masks.size()
+ else:
+ _, mask_w, mask_h = cur_unlabeled_instances.gt_masks.tensor.size()
+ masks_new_all = torch.zeros(num_copy, mask_w, mask_h)
+ image_new_all = torch.zeros_like(cur_unlabeled_image)
+
+ image_new_all[:, h_shift:h_shift+h_new, w_shift:w_shift+w_new] += cur_labeled_image_new
+ masks_new_all[:, h_shift:h_shift+h_new, w_shift:w_shift+w_new] += masks_new
+
+ cur_labeled_image = image_new_all.byte() #.squeeze(0)
+ if isinstance(copied_masks, torch.Tensor):
+ copied_masks = masks_new_all.bool() #.squeeze(0)
+ else:
+ copied_masks.tensor = masks_new_all.bool() #.squeeze(0)
+ copied_boxes.tensor[:, 0] += h_shift
+ copied_boxes.tensor[:, 2] += h_shift
+ copied_boxes.tensor[:, 1] += w_shift
+ copied_boxes.tensor[:, 3] += w_shift
+
+ copied_instances.gt_masks = copied_masks
+ copied_instances.gt_boxes = copied_boxes
+ copied_instances._image_size = (unlabeled_h, unlabeled_w)
+ if len(cur_unlabeled_instances) == 0:
+ if isinstance(copied_instances.gt_masks, torch.Tensor):
+ alpha = copied_instances.gt_masks.sum(0) > 0
+ else:
+ alpha = copied_instances.gt_masks.tensor.sum(0) > 0
+ # merge image
+ alpha = alpha.cpu()
+ composited_image = (alpha * cur_labeled_image) + (~alpha * cur_unlabeled_image)
+ cur_unlabeled_data["image"] = composited_image
+ cur_unlabeled_data["instances"] = copied_instances
+ else:
+ # remove the copied object if iou greater than 0.5
+ if isinstance(copied_masks, torch.Tensor):
+ iou_matrix = mask_iou_matrix(copied_masks, cur_unlabeled_instances.gt_masks, mode='ioy') # nxN
+ else:
+ iou_matrix = mask_iou_matrix(copied_masks.tensor, cur_unlabeled_instances.gt_masks.tensor, mode='ioy') # nxN
+
+ keep = iou_matrix.max(1)[0] < 0.5
+ if keep.sum() == 0:
+ new_unlabeled_data.append(cur_unlabeled_data)
+ continue
+ copied_instances = copied_instances[keep]
+ # update existing instances in unlabeled image
+ if isinstance(copied_instances.gt_masks, torch.Tensor):
+ alpha = copied_instances.gt_masks.sum(0) > 0
+ cur_unlabeled_instances.gt_masks = ~alpha * cur_unlabeled_instances.gt_masks
+ areas_unlabeled = cur_unlabeled_instances.gt_masks.sum((1,2))
+ else:
+ alpha = copied_instances.gt_masks.tensor.sum(0) > 0
+ cur_unlabeled_instances.gt_masks.tensor = ~alpha * cur_unlabeled_instances.gt_masks.tensor
+ areas_unlabeled = cur_unlabeled_instances.gt_masks.tensor.sum((1,2))
+ # merge image
+ alpha = alpha.cpu()
+ composited_image = (alpha * cur_labeled_image) + (~alpha * cur_unlabeled_image)
+ # merge instances
+ merged_instances = Instances.cat([cur_unlabeled_instances[areas_unlabeled > 0], copied_instances])
+ # update boxes
+ if isinstance(merged_instances.gt_masks, torch.Tensor):
+ merged_instances.gt_boxes = BitMasks(merged_instances.gt_masks).get_bounding_boxes()
+ # merged_instances.gt_boxes = merged_instances.gt_masks.get_bounding_boxes()
+ else:
+ merged_instances.gt_boxes = merged_instances.gt_masks.get_bounding_boxes()
+
+ cur_unlabeled_data["image"] = composited_image
+ cur_unlabeled_data["instances"] = merged_instances
+ if self.cfg_VISUALIZE_COPY_PASTE:
+ visualize_data(cur_unlabeled_data, save_path = 'sample_{}.jpg'.format(np.random.randint(5)))
+ new_unlabeled_data.append(cur_unlabeled_data)
+ return new_unlabeled_data
+
+ def run_step(self):
+ """
+ Implement the standard training logic described above.
+ """
+ assert self.model.training, "[SimpleTrainer] model was changed to eval mode!"
+ start = time.perf_counter()
+ """
+ If you want to do something with the data, you can wrap the dataloader.
+ """
+ data = next(self._data_loader_iter)
+ # print(data, len(data))
+ if self.use_copy_paste:
+ # print('using copy paste')
+ data = self.copy_and_paste(copy.deepcopy(data[::-1]), data)
+ data_time = time.perf_counter() - start
+
+ """
+ If you want to do something with the losses, you can wrap the model.
+ """
+ loss_dict = self.model(data)
+ if isinstance(loss_dict, torch.Tensor):
+ losses = loss_dict
+ loss_dict = {"total_loss": loss_dict}
+ else:
+ losses = sum(loss_dict.values())
+
+ """
+ If you need to accumulate gradients or do something similar, you can
+ wrap the optimizer with your custom `zero_grad()` method.
+ """
+ if not torch.isnan(losses):
+ self.optimizer.zero_grad()
+ losses.backward()
+ else:
+ print('Nan loss. Skipped.')
+
+ self._write_metrics(loss_dict, data_time)
+
+ """
+ If you need gradient clipping/scaling or other processing, you can
+ wrap the optimizer with your custom `step()` method. But it is
+ suboptimal as explained in https://arxiv.org/abs/2006.15704 Sec 3.2.4
+ """
+ self.optimizer.step()
+
+
+class CustomAMPTrainer(CustomSimpleTrainer):
+ """
+ Like :class:`SimpleTrainer`, but uses PyTorch's native automatic mixed precision
+ in the training loop.
+ """
+
+ def __init__(self, model, data_loader, optimizer, cfg=None, grad_scaler=None, use_copy_paste=False,
+ copy_paste_rate=-1, copy_paste_random_num=None, copy_paste_min_ratio=-1,
+ copy_paste_max_ratio=-1, visualize_copy_paste=False):
+ """
+ Args:
+ model, data_loader, optimizer: same as in :class:`SimpleTrainer`.
+ grad_scaler: torch GradScaler to automatically scale gradients.
+ """
+ unsupported = "AMPTrainer does not support single-process multi-device training!"
+ if isinstance(model, DistributedDataParallel):
+ assert not (model.device_ids and len(model.device_ids) > 1), unsupported
+ assert not isinstance(model, DataParallel), unsupported
+
+ super().__init__(model, data_loader, optimizer, cfg=cfg, use_copy_paste=use_copy_paste, \
+ copy_paste_rate=copy_paste_rate, copy_paste_random_num=copy_paste_random_num, \
+ copy_paste_min_ratio=copy_paste_min_ratio, copy_paste_max_ratio=copy_paste_max_ratio, \
+ visualize_copy_paste=visualize_copy_paste)
+
+ if grad_scaler is None:
+ from torch.cuda.amp import GradScaler
+
+ grad_scaler = GradScaler()
+ self.grad_scaler = grad_scaler
+
+ def run_step(self):
+ """
+ Implement the AMP training logic.
+ """
+ assert self.model.training, "[AMPTrainer] model was changed to eval mode!"
+ assert torch.cuda.is_available(), "[AMPTrainer] CUDA is required for AMP training!"
+ from torch.cuda.amp import autocast
+
+ start = time.perf_counter()
+ data = next(self._data_loader_iter)
+ if self.use_copy_paste:
+ # print('using copy paste')
+ data = self.copy_and_paste(copy.deepcopy(data[::-1]), data)
+ data_time = time.perf_counter() - start
+
+ with autocast():
+ loss_dict = self.model(data)
+ if isinstance(loss_dict, torch.Tensor):
+ losses = loss_dict
+ loss_dict = {"total_loss": loss_dict}
+ else:
+ losses = sum(loss_dict.values())
+
+ if not torch.isnan(losses):
+ self.optimizer.zero_grad()
+ self.grad_scaler.scale(losses).backward()
+ else:
+ print('Nan loss.')
+
+ self._write_metrics(loss_dict, data_time)
+
+ self.grad_scaler.step(self.optimizer)
+ self.grad_scaler.update()
+
+ def state_dict(self):
+ ret = super().state_dict()
+ ret["grad_scaler"] = self.grad_scaler.state_dict()
+ return ret
+
+ def load_state_dict(self, state_dict):
+ super().load_state_dict(state_dict)
+ self.grad_scaler.load_state_dict(state_dict["grad_scaler"])
diff --git a/cutler/evaluation/__init__.py b/cutler/evaluation/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ef0b0b14686b2f8c85b6684ff979c1ae917b995
--- /dev/null
+++ b/cutler/evaluation/__init__.py
@@ -0,0 +1,3 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from .coco_evaluation import COCOEvaluator
\ No newline at end of file
diff --git a/cutler/evaluation/coco_evaluation.py b/cutler/evaluation/coco_evaluation.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff272096cebbcd7eee2df11e4eb8434ee0ee32c1
--- /dev/null
+++ b/cutler/evaluation/coco_evaluation.py
@@ -0,0 +1,727 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/evaluation/coco_evaluation.py
+# supports evaluation of object detection only, although the prediction contains both segmentation and detection results.
+
+import contextlib
+import copy
+import io
+import itertools
+import json
+import logging
+import numpy as np
+import os
+import pickle
+from collections import OrderedDict
+import pycocotools.mask as mask_util
+import torch
+from pycocotools.coco import COCO
+from pycocotools.cocoeval import COCOeval
+from tabulate import tabulate
+
+import detectron2.utils.comm as comm
+from detectron2.config import CfgNode
+from detectron2.data import MetadataCatalog
+from detectron2.data.datasets.coco import convert_to_coco_json
+from detectron2.structures import Boxes, BoxMode, pairwise_iou
+from detectron2.utils.file_io import PathManager
+from detectron2.utils.logger import create_small_table
+
+from detectron2.evaluation.evaluator import DatasetEvaluator
+
+try:
+ from detectron2.evaluation.fast_eval_api import COCOeval_opt
+except ImportError:
+ COCOeval_opt = COCOeval
+
+
+class COCOEvaluator(DatasetEvaluator):
+ """
+ Evaluate AR for object proposals, AP for instance detection/segmentation, AP
+ for keypoint detection outputs using COCO's metrics.
+ See http://cocodataset.org/#detection-eval and
+ http://cocodataset.org/#keypoints-eval to understand its metrics.
+ The metrics range from 0 to 100 (instead of 0 to 1), where a -1 or NaN means
+ the metric cannot be computed (e.g. due to no predictions made).
+
+ In addition to COCO, this evaluator is able to support any bounding box detection,
+ instance segmentation, or keypoint detection dataset.
+ """
+
+ def __init__(
+ self,
+ dataset_name,
+ tasks=None,
+ distributed=True,
+ output_dir=None,
+ *,
+ max_dets_per_image=None,
+ use_fast_impl=True,
+ kpt_oks_sigmas=(),
+ allow_cached_coco=True,
+ no_segm=False,
+ ):
+ """
+ Args:
+ dataset_name (str): name of the dataset to be evaluated.
+ It must have either the following corresponding metadata:
+
+ "json_file": the path to the COCO format annotation
+
+ Or it must be in detectron2's standard dataset format
+ so it can be converted to COCO format automatically.
+ tasks (tuple[str]): tasks that can be evaluated under the given
+ configuration. A task is one of "bbox", "segm", "keypoints".
+ By default, will infer this automatically from predictions.
+ distributed (True): if True, will collect results from all ranks and run evaluation
+ in the main process.
+ Otherwise, will only evaluate the results in the current process.
+ output_dir (str): optional, an output directory to dump all
+ results predicted on the dataset. The dump contains two files:
+
+ 1. "instances_predictions.pth" a file that can be loaded with `torch.load` and
+ contains all the results in the format they are produced by the model.
+ 2. "coco_instances_results.json" a json file in COCO's result format.
+ max_dets_per_image (int): limit on the maximum number of detections per image.
+ By default in COCO, this limit is to 100, but this can be customized
+ to be greater, as is needed in evaluation metrics AP fixed and AP pool
+ (see https://arxiv.org/pdf/2102.01066.pdf)
+ This doesn't affect keypoint evaluation.
+ use_fast_impl (bool): use a fast but **unofficial** implementation to compute AP.
+ Although the results should be very close to the official implementation in COCO
+ API, it is still recommended to compute results with the official API for use in
+ papers. The faster implementation also uses more RAM.
+ kpt_oks_sigmas (list[float]): The sigmas used to calculate keypoint OKS.
+ See http://cocodataset.org/#keypoints-eval
+ When empty, it will use the defaults in COCO.
+ Otherwise it should be the same length as ROI_KEYPOINT_HEAD.NUM_KEYPOINTS.
+ allow_cached_coco (bool): Whether to use cached coco json from previous validation
+ runs. You should set this to False if you need to use different validation data.
+ Defaults to True.
+ """
+ self._logger = logging.getLogger(__name__)
+ self._distributed = distributed
+ self._output_dir = output_dir
+ self.no_segm = no_segm
+
+ if use_fast_impl and (COCOeval_opt is COCOeval):
+ self._logger.info("Fast COCO eval is not built. Falling back to official COCO eval.")
+ use_fast_impl = False
+ self._use_fast_impl = use_fast_impl
+
+ # COCOeval requires the limit on the number of detections per image (maxDets) to be a list
+ # with at least 3 elements. The default maxDets in COCOeval is [1, 10, 100], in which the
+ # 3rd element (100) is used as the limit on the number of detections per image when
+ # evaluating AP. COCOEvaluator expects an integer for max_dets_per_image, so for COCOeval,
+ # we reformat max_dets_per_image into [1, 10, max_dets_per_image], based on the defaults.
+ if max_dets_per_image is None:
+ max_dets_per_image = [1, 10, 100]
+ else:
+ max_dets_per_image = [1, 10, max_dets_per_image]
+ self._max_dets_per_image = max_dets_per_image
+
+ if tasks is not None and isinstance(tasks, CfgNode):
+ kpt_oks_sigmas = (
+ tasks.TEST.KEYPOINT_OKS_SIGMAS if not kpt_oks_sigmas else kpt_oks_sigmas
+ )
+ self._logger.warn(
+ "COCO Evaluator instantiated using config, this is deprecated behavior."
+ " Please pass in explicit arguments instead."
+ )
+ self._tasks = None # Infering it from predictions should be better
+ else:
+ self._tasks = tasks
+
+ self._cpu_device = torch.device("cpu")
+
+ self._metadata = MetadataCatalog.get(dataset_name)
+ if not hasattr(self._metadata, "json_file"):
+ if output_dir is None:
+ raise ValueError(
+ "output_dir must be provided to COCOEvaluator "
+ "for datasets not in COCO format."
+ )
+ self._logger.info(f"Trying to convert '{dataset_name}' to COCO format ...")
+
+ cache_path = os.path.join(output_dir, f"{dataset_name}_coco_format.json")
+ self._metadata.json_file = cache_path
+ convert_to_coco_json(dataset_name, cache_path, allow_cached=allow_cached_coco)
+
+ json_file = PathManager.get_local_path(self._metadata.json_file)
+ with contextlib.redirect_stdout(io.StringIO()):
+ self._coco_api = COCO(json_file)
+
+ # Test set json files do not contain annotations (evaluation must be
+ # performed using the COCO evaluation server).
+ self._do_evaluation = "annotations" in self._coco_api.dataset
+ if self._do_evaluation:
+ self._kpt_oks_sigmas = kpt_oks_sigmas
+
+ def reset(self):
+ self._predictions = []
+
+ def process(self, inputs, outputs):
+ """
+ Args:
+ inputs: the inputs to a COCO model (e.g., GeneralizedRCNN).
+ It is a list of dict. Each dict corresponds to an image and
+ contains keys like "height", "width", "file_name", "image_id".
+ outputs: the outputs of a COCO model. It is a list of dicts with key
+ "instances" that contains :class:`Instances`.
+ """
+ for input, output in zip(inputs, outputs):
+ prediction = {"image_id": input["image_id"]}
+
+ if "instances" in output:
+ instances = output["instances"].to(self._cpu_device)
+ prediction["instances"] = instances_to_coco_json(instances, input["image_id"])
+ if "proposals" in output:
+ prediction["proposals"] = output["proposals"].to(self._cpu_device)
+ if len(prediction) > 1:
+ self._predictions.append(prediction)
+
+ def evaluate(self, img_ids=None):
+ """
+ Args:
+ img_ids: a list of image IDs to evaluate on. Default to None for the whole dataset
+ """
+ if self._distributed:
+ comm.synchronize()
+ predictions = comm.gather(self._predictions, dst=0)
+ predictions = list(itertools.chain(*predictions))
+
+ if not comm.is_main_process():
+ return {}
+ else:
+ predictions = self._predictions
+
+ if len(predictions) == 0:
+ self._logger.warning("[COCOEvaluator] Did not receive valid predictions.")
+ return {}
+
+ if self._output_dir:
+ PathManager.mkdirs(self._output_dir)
+ file_path = os.path.join(self._output_dir, "instances_predictions.pth")
+ with PathManager.open(file_path, "wb") as f:
+ torch.save(predictions, f)
+
+ self._results = OrderedDict()
+ if "proposals" in predictions[0]:
+ self._eval_box_proposals(predictions)
+ if "instances" in predictions[0]:
+ self._eval_predictions(predictions, img_ids=img_ids)
+ # Copy so the caller can do whatever with results
+ return copy.deepcopy(self._results)
+
+ def _tasks_from_predictions(self, predictions):
+ """
+ Get COCO API "tasks" (i.e. iou_type) from COCO-format predictions.
+ """
+ tasks = {"bbox"}
+ for pred in predictions:
+ if "segmentation" in pred and not self.no_segm:
+ tasks.add("segm")
+ if "keypoints" in pred:
+ tasks.add("keypoints")
+ return sorted(tasks)
+
+ def _eval_predictions(self, predictions, img_ids=None):
+ """
+ Evaluate predictions. Fill self._results with the metrics of the tasks.
+ """
+ self._logger.info("Preparing results for COCO format ...")
+ coco_results = list(itertools.chain(*[x["instances"] for x in predictions]))
+ tasks = self._tasks or self._tasks_from_predictions(coco_results)
+
+ # unmap the category ids for COCO
+ if hasattr(self._metadata, "thing_dataset_id_to_contiguous_id"):
+ dataset_id_to_contiguous_id = self._metadata.thing_dataset_id_to_contiguous_id
+ all_contiguous_ids = list(dataset_id_to_contiguous_id.values())
+ num_classes = len(all_contiguous_ids)
+ assert min(all_contiguous_ids) == 0 and max(all_contiguous_ids) == num_classes - 1
+
+ reverse_id_mapping = {v: k for k, v in dataset_id_to_contiguous_id.items()}
+ for result in coco_results:
+ category_id = result["category_id"]
+ assert category_id < num_classes, (
+ f"A prediction has class={category_id}, "
+ f"but the dataset only has {num_classes} classes and "
+ f"predicted class id should be in [0, {num_classes - 1}]."
+ )
+ result["category_id"] = reverse_id_mapping[category_id]
+
+ if self._output_dir:
+ file_path = os.path.join(self._output_dir, "coco_instances_results.json")
+ self._logger.info("Saving results to {}".format(file_path))
+ with PathManager.open(file_path, "w") as f:
+ f.write(json.dumps(coco_results))
+ f.flush()
+
+ if not self._do_evaluation:
+ self._logger.info("Annotations are not available for evaluation.")
+ return
+
+ self._logger.info(
+ "Evaluating predictions with {} COCO API...".format(
+ "unofficial" if self._use_fast_impl else "official"
+ )
+ )
+ for task in sorted(tasks):
+ assert task in {"bbox", "segm", "keypoints"}, f"Got unknown task: {task}!"
+ coco_eval = (
+ _evaluate_predictions_on_coco(
+ self._coco_api,
+ coco_results,
+ task,
+ kpt_oks_sigmas=self._kpt_oks_sigmas,
+ use_fast_impl=self._use_fast_impl,
+ img_ids=img_ids,
+ max_dets_per_image=self._max_dets_per_image,
+ )
+ if len(coco_results) > 0
+ else None # cocoapi does not handle empty results very well
+ )
+
+ res = self._derive_coco_results(
+ coco_eval, task, class_names=self._metadata.get("thing_classes")
+ )
+ self._results[task] = res
+
+ def _eval_box_proposals(self, predictions):
+ """
+ Evaluate the box proposals in predictions.
+ Fill self._results with the metrics for "box_proposals" task.
+ """
+ if self._output_dir:
+ # Saving generated box proposals to file.
+ # Predicted box_proposals are in XYXY_ABS mode.
+ bbox_mode = BoxMode.XYXY_ABS.value
+ ids, boxes, objectness_logits = [], [], []
+ for prediction in predictions:
+ ids.append(prediction["image_id"])
+ boxes.append(prediction["proposals"].proposal_boxes.tensor.numpy())
+ objectness_logits.append(prediction["proposals"].objectness_logits.numpy())
+
+ proposal_data = {
+ "boxes": boxes,
+ "objectness_logits": objectness_logits,
+ "ids": ids,
+ "bbox_mode": bbox_mode,
+ }
+ with PathManager.open(os.path.join(self._output_dir, "box_proposals.pkl"), "wb") as f:
+ pickle.dump(proposal_data, f)
+
+ if not self._do_evaluation:
+ self._logger.info("Annotations are not available for evaluation.")
+ return
+
+ self._logger.info("Evaluating bbox proposals ...")
+ res = {}
+ areas = {"all": "", "small": "s", "medium": "m", "large": "l"}
+ for limit in [100, 1000]:
+ for area, suffix in areas.items():
+ stats = _evaluate_box_proposals(predictions, self._coco_api, area=area, limit=limit)
+ key = "AR{}@{:d}".format(suffix, limit)
+ res[key] = float(stats["ar"].item() * 100)
+ self._logger.info("Proposal metrics: \n" + create_small_table(res))
+ self._results["box_proposals"] = res
+
+ def _derive_coco_results(self, coco_eval, iou_type, class_names=None):
+ """
+ Derive the desired score numbers from summarized COCOeval.
+
+ Args:
+ coco_eval (None or COCOEval): None represents no predictions from model.
+ iou_type (str):
+ class_names (None or list[str]): if provided, will use it to predict
+ per-category AP.
+
+ Returns:
+ a dict of {metric name: score}
+ """
+
+ metrics = {
+ "bbox": ["AP", "AP50", "AP75", "APs", "APm", "APl"],
+ "segm": ["AP", "AP50", "AP75", "APs", "APm", "APl"],
+ "keypoints": ["AP", "AP50", "AP75", "APm", "APl"],
+ }[iou_type]
+
+ if coco_eval is None:
+ self._logger.warn("No predictions from the model!")
+ return {metric: float("nan") for metric in metrics}
+
+ # the standard metrics
+ results = {
+ metric: float(coco_eval.stats[idx] * 100 if coco_eval.stats[idx] >= 0 else "nan")
+ for idx, metric in enumerate(metrics)
+ }
+ self._logger.info(
+ "Evaluation results for {}: \n".format(iou_type) + create_small_table(results)
+ )
+ if not np.isfinite(sum(results.values())):
+ self._logger.info("Some metrics cannot be computed and is shown as NaN.")
+
+ if class_names is None or len(class_names) <= 1:
+ return results
+ # Compute per-category AP
+ # from https://github.com/facebookresearch/Detectron/blob/a6a835f5b8208c45d0dce217ce9bbda915f44df7/detectron/datasets/json_dataset_evaluator.py#L222-L252 # noqa
+ precisions = coco_eval.eval["precision"]
+ # precision has dims (iou, recall, cls, area range, max dets)
+ assert len(class_names) == precisions.shape[2]
+
+ results_per_category = []
+ for idx, name in enumerate(class_names):
+ # area range index 0: all area ranges
+ # max dets index -1: typically 100 per image
+ precision = precisions[:, :, idx, 0, -1]
+ precision = precision[precision > -1]
+ ap = np.mean(precision) if precision.size else float("nan")
+ results_per_category.append(("{}".format(name), float(ap * 100)))
+
+ # tabulate it
+ N_COLS = min(6, len(results_per_category) * 2)
+ results_flatten = list(itertools.chain(*results_per_category))
+ results_2d = itertools.zip_longest(*[results_flatten[i::N_COLS] for i in range(N_COLS)])
+ table = tabulate(
+ results_2d,
+ tablefmt="pipe",
+ floatfmt=".3f",
+ headers=["category", "AP"] * (N_COLS // 2),
+ numalign="left",
+ )
+ self._logger.info("Per-category {} AP: \n".format(iou_type) + table)
+
+ results.update({"AP-" + name: ap for name, ap in results_per_category})
+ return results
+
+
+def instances_to_coco_json(instances, img_id):
+ """
+ Dump an "Instances" object to a COCO-format json that's used for evaluation.
+
+ Args:
+ instances (Instances):
+ img_id (int): the image id
+
+ Returns:
+ list[dict]: list of json annotations in COCO format.
+ """
+ num_instance = len(instances)
+ if num_instance == 0:
+ return []
+
+ boxes = instances.pred_boxes.tensor.numpy()
+ boxes = BoxMode.convert(boxes, BoxMode.XYXY_ABS, BoxMode.XYWH_ABS)
+ boxes = boxes.tolist()
+ scores = instances.scores.tolist()
+ classes = instances.pred_classes.tolist()
+
+ has_mask = instances.has("pred_masks")
+ if has_mask:
+ # use RLE to encode the masks, because they are too large and takes memory
+ # since this evaluator stores outputs of the entire dataset
+ rles = [
+ mask_util.encode(np.array(mask[:, :, None], order="F", dtype="uint8"))[0]
+ for mask in instances.pred_masks
+ ]
+ for rle in rles:
+ # "counts" is an array encoded by mask_util as a byte-stream. Python3's
+ # json writer which always produces strings cannot serialize a bytestream
+ # unless you decode it. Thankfully, utf-8 works out (which is also what
+ # the pycocotools/_mask.pyx does).
+ rle["counts"] = rle["counts"].decode("utf-8")
+
+ has_keypoints = instances.has("pred_keypoints")
+ if has_keypoints:
+ keypoints = instances.pred_keypoints
+
+ results = []
+ for k in range(num_instance):
+ result = {
+ "image_id": img_id,
+ "category_id": classes[k],
+ "bbox": boxes[k],
+ "score": scores[k],
+ }
+ if has_mask:
+ result["segmentation"] = rles[k]
+ if has_keypoints:
+ # In COCO annotations,
+ # keypoints coordinates are pixel indices.
+ # However our predictions are floating point coordinates.
+ # Therefore we subtract 0.5 to be consistent with the annotation format.
+ # This is the inverse of data loading logic in `datasets/coco.py`.
+ keypoints[k][:, :2] -= 0.5
+ result["keypoints"] = keypoints[k].flatten().tolist()
+ results.append(result)
+ return results
+
+
+# inspired from Detectron:
+# https://github.com/facebookresearch/Detectron/blob/a6a835f5b8208c45d0dce217ce9bbda915f44df7/detectron/datasets/json_dataset_evaluator.py#L255 # noqa
+def _evaluate_box_proposals(dataset_predictions, coco_api, thresholds=None, area="all", limit=None):
+ """
+ Evaluate detection proposal recall metrics. This function is a much
+ faster alternative to the official COCO API recall evaluation code. However,
+ it produces slightly different results.
+ """
+ # Record max overlap value for each gt box
+ # Return vector of overlap values
+ areas = {
+ "all": 0,
+ "small": 1,
+ "medium": 2,
+ "large": 3,
+ "96-128": 4,
+ "128-256": 5,
+ "256-512": 6,
+ "512-inf": 7,
+ }
+ area_ranges = [
+ [0**2, 1e5**2], # all
+ [0**2, 32**2], # small
+ [32**2, 96**2], # medium
+ [96**2, 1e5**2], # large
+ [96**2, 128**2], # 96-128
+ [128**2, 256**2], # 128-256
+ [256**2, 512**2], # 256-512
+ [512**2, 1e5**2],
+ ] # 512-inf
+ assert area in areas, "Unknown area range: {}".format(area)
+ area_range = area_ranges[areas[area]]
+ gt_overlaps = []
+ num_pos = 0
+
+ for prediction_dict in dataset_predictions:
+ predictions = prediction_dict["proposals"]
+
+ # sort predictions in descending order
+ # TODO maybe remove this and make it explicit in the documentation
+ inds = predictions.objectness_logits.sort(descending=True)[1]
+ predictions = predictions[inds]
+
+ ann_ids = coco_api.getAnnIds(imgIds=prediction_dict["image_id"])
+ anno = coco_api.loadAnns(ann_ids)
+ gt_boxes = [
+ BoxMode.convert(obj["bbox"], BoxMode.XYWH_ABS, BoxMode.XYXY_ABS)
+ for obj in anno
+ if obj["iscrowd"] == 0
+ ]
+ gt_boxes = torch.as_tensor(gt_boxes).reshape(-1, 4) # guard against no boxes
+ gt_boxes = Boxes(gt_boxes)
+ gt_areas = torch.as_tensor([obj["area"] for obj in anno if obj["iscrowd"] == 0])
+
+ if len(gt_boxes) == 0 or len(predictions) == 0:
+ continue
+
+ valid_gt_inds = (gt_areas >= area_range[0]) & (gt_areas <= area_range[1])
+ gt_boxes = gt_boxes[valid_gt_inds]
+
+ num_pos += len(gt_boxes)
+
+ if len(gt_boxes) == 0:
+ continue
+
+ if limit is not None and len(predictions) > limit:
+ predictions = predictions[:limit]
+
+ overlaps = pairwise_iou(predictions.proposal_boxes, gt_boxes)
+
+ _gt_overlaps = torch.zeros(len(gt_boxes))
+ for j in range(min(len(predictions), len(gt_boxes))):
+ # find which proposal box maximally covers each gt box
+ # and get the iou amount of coverage for each gt box
+ max_overlaps, argmax_overlaps = overlaps.max(dim=0)
+
+ # find which gt box is 'best' covered (i.e. 'best' = most iou)
+ gt_ovr, gt_ind = max_overlaps.max(dim=0)
+ assert gt_ovr >= 0
+ # find the proposal box that covers the best covered gt box
+ box_ind = argmax_overlaps[gt_ind]
+ # record the iou coverage of this gt box
+ _gt_overlaps[j] = overlaps[box_ind, gt_ind]
+ assert _gt_overlaps[j] == gt_ovr
+ # mark the proposal box and the gt box as used
+ overlaps[box_ind, :] = -1
+ overlaps[:, gt_ind] = -1
+
+ # append recorded iou coverage level
+ gt_overlaps.append(_gt_overlaps)
+ gt_overlaps = (
+ torch.cat(gt_overlaps, dim=0) if len(gt_overlaps) else torch.zeros(0, dtype=torch.float32)
+ )
+ gt_overlaps, _ = torch.sort(gt_overlaps)
+
+ if thresholds is None:
+ step = 0.05
+ thresholds = torch.arange(0.5, 0.95 + 1e-5, step, dtype=torch.float32)
+ recalls = torch.zeros_like(thresholds)
+ # compute recall for each iou threshold
+ for i, t in enumerate(thresholds):
+ recalls[i] = (gt_overlaps >= t).float().sum() / float(num_pos)
+ # ar = 2 * np.trapz(recalls, thresholds)
+ ar = recalls.mean()
+ return {
+ "ar": ar,
+ "recalls": recalls,
+ "thresholds": thresholds,
+ "gt_overlaps": gt_overlaps,
+ "num_pos": num_pos,
+ }
+
+
+def _evaluate_predictions_on_coco(
+ coco_gt,
+ coco_results,
+ iou_type,
+ kpt_oks_sigmas=None,
+ use_fast_impl=True,
+ img_ids=None,
+ max_dets_per_image=None,
+):
+ """
+ Evaluate the coco results using COCOEval API.
+ """
+ assert len(coco_results) > 0
+
+ if iou_type == "segm":
+ coco_results = copy.deepcopy(coco_results)
+ # When evaluating mask AP, if the results contain bbox, cocoapi will
+ # use the box area as the area of the instance, instead of the mask area.
+ # This leads to a different definition of small/medium/large.
+ # We remove the bbox field to let mask AP use mask area.
+ for c in coco_results:
+ c.pop("bbox", None)
+
+ coco_dt = coco_gt.loadRes(coco_results)
+ coco_eval = (COCOeval_opt if use_fast_impl else COCOeval)(coco_gt, coco_dt, iou_type)
+ # For COCO, the default max_dets_per_image is [1, 10, 100].
+ if max_dets_per_image is None:
+ max_dets_per_image = [1, 10, 100] # Default from COCOEval
+ else:
+ assert (
+ len(max_dets_per_image) >= 3
+ ), "COCOeval requires maxDets (and max_dets_per_image) to have length at least 3"
+ # In the case that user supplies a custom input for max_dets_per_image,
+ # apply COCOevalMaxDets to evaluate AP with the custom input.
+ if max_dets_per_image[2] != 100:
+ coco_eval = COCOevalMaxDets(coco_gt, coco_dt, iou_type)
+ if iou_type != "keypoints":
+ coco_eval.params.maxDets = max_dets_per_image
+
+ if img_ids is not None:
+ coco_eval.params.imgIds = img_ids
+
+ if iou_type == "keypoints":
+ # Use the COCO default keypoint OKS sigmas unless overrides are specified
+ if kpt_oks_sigmas:
+ assert hasattr(coco_eval.params, "kpt_oks_sigmas"), "pycocotools is too old!"
+ coco_eval.params.kpt_oks_sigmas = np.array(kpt_oks_sigmas)
+ # COCOAPI requires every detection and every gt to have keypoints, so
+ # we just take the first entry from both
+ num_keypoints_dt = len(coco_results[0]["keypoints"]) // 3
+ num_keypoints_gt = len(next(iter(coco_gt.anns.values()))["keypoints"]) // 3
+ num_keypoints_oks = len(coco_eval.params.kpt_oks_sigmas)
+ assert num_keypoints_oks == num_keypoints_dt == num_keypoints_gt, (
+ f"[COCOEvaluator] Prediction contain {num_keypoints_dt} keypoints. "
+ f"Ground truth contains {num_keypoints_gt} keypoints. "
+ f"The length of cfg.TEST.KEYPOINT_OKS_SIGMAS is {num_keypoints_oks}. "
+ "They have to agree with each other. For meaning of OKS, please refer to "
+ "http://cocodataset.org/#keypoints-eval."
+ )
+
+ coco_eval.evaluate()
+ coco_eval.accumulate()
+ coco_eval.summarize()
+
+ return coco_eval
+
+
+class COCOevalMaxDets(COCOeval):
+ """
+ Modified version of COCOeval for evaluating AP with a custom
+ maxDets (by default for COCO, maxDets is 100)
+ """
+
+ def summarize(self):
+ """
+ Compute and display summary metrics for evaluation results given
+ a custom value for max_dets_per_image
+ """
+
+ def _summarize(ap=1, iouThr=None, areaRng="all", maxDets=100):
+ p = self.params
+ iStr = " {:<18} {} @[ IoU={:<9} | area={:>6s} | maxDets={:>3d} ] = {:0.3f}"
+ titleStr = "Average Precision" if ap == 1 else "Average Recall"
+ typeStr = "(AP)" if ap == 1 else "(AR)"
+ iouStr = (
+ "{:0.2f}:{:0.2f}".format(p.iouThrs[0], p.iouThrs[-1])
+ if iouThr is None
+ else "{:0.2f}".format(iouThr)
+ )
+
+ aind = [i for i, aRng in enumerate(p.areaRngLbl) if aRng == areaRng]
+ mind = [i for i, mDet in enumerate(p.maxDets) if mDet == maxDets]
+ if ap == 1:
+ # dimension of precision: [TxRxKxAxM]
+ s = self.eval["precision"]
+ # IoU
+ if iouThr is not None:
+ t = np.where(iouThr == p.iouThrs)[0]
+ s = s[t]
+ s = s[:, :, :, aind, mind]
+ else:
+ # dimension of recall: [TxKxAxM]
+ s = self.eval["recall"]
+ if iouThr is not None:
+ t = np.where(iouThr == p.iouThrs)[0]
+ s = s[t]
+ s = s[:, :, aind, mind]
+ if len(s[s > -1]) == 0:
+ mean_s = -1
+ else:
+ mean_s = np.mean(s[s > -1])
+ print(iStr.format(titleStr, typeStr, iouStr, areaRng, maxDets, mean_s))
+ return mean_s
+
+ def _summarizeDets():
+ stats = np.zeros((12,))
+ # Evaluate AP using the custom limit on maximum detections per image
+ stats[0] = _summarize(1, maxDets=self.params.maxDets[2])
+ stats[1] = _summarize(1, iouThr=0.5, maxDets=self.params.maxDets[2])
+ stats[2] = _summarize(1, iouThr=0.75, maxDets=self.params.maxDets[2])
+ stats[3] = _summarize(1, areaRng="small", maxDets=self.params.maxDets[2])
+ stats[4] = _summarize(1, areaRng="medium", maxDets=self.params.maxDets[2])
+ stats[5] = _summarize(1, areaRng="large", maxDets=self.params.maxDets[2])
+ stats[6] = _summarize(0, maxDets=self.params.maxDets[0])
+ stats[7] = _summarize(0, maxDets=self.params.maxDets[1])
+ stats[8] = _summarize(0, maxDets=self.params.maxDets[2])
+ stats[9] = _summarize(0, areaRng="small", maxDets=self.params.maxDets[2])
+ stats[10] = _summarize(0, areaRng="medium", maxDets=self.params.maxDets[2])
+ stats[11] = _summarize(0, areaRng="large", maxDets=self.params.maxDets[2])
+ return stats
+
+ def _summarizeKps():
+ stats = np.zeros((10,))
+ stats[0] = _summarize(1, maxDets=20)
+ stats[1] = _summarize(1, maxDets=20, iouThr=0.5)
+ stats[2] = _summarize(1, maxDets=20, iouThr=0.75)
+ stats[3] = _summarize(1, maxDets=20, areaRng="medium")
+ stats[4] = _summarize(1, maxDets=20, areaRng="large")
+ stats[5] = _summarize(0, maxDets=20)
+ stats[6] = _summarize(0, maxDets=20, iouThr=0.5)
+ stats[7] = _summarize(0, maxDets=20, iouThr=0.75)
+ stats[8] = _summarize(0, maxDets=20, areaRng="medium")
+ stats[9] = _summarize(0, maxDets=20, areaRng="large")
+ return stats
+
+ if not self.eval:
+ raise Exception("Please run accumulate() first")
+ iouType = self.params.iouType
+ if iouType == "segm" or iouType == "bbox":
+ summarize = _summarizeDets
+ elif iouType == "keypoints":
+ summarize = _summarizeKps
+ self.stats = summarize()
+
+ def __str__(self):
+ self.summarize()
diff --git a/cutler/model_zoo/configs/Base-RCNN-FPN.yaml b/cutler/model_zoo/configs/Base-RCNN-FPN.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3e020f2e7b2f26765be317f907126a1556621abf
--- /dev/null
+++ b/cutler/model_zoo/configs/Base-RCNN-FPN.yaml
@@ -0,0 +1,42 @@
+MODEL:
+ META_ARCHITECTURE: "GeneralizedRCNN"
+ BACKBONE:
+ NAME: "build_resnet_fpn_backbone"
+ RESNETS:
+ OUT_FEATURES: ["res2", "res3", "res4", "res5"]
+ FPN:
+ IN_FEATURES: ["res2", "res3", "res4", "res5"]
+ ANCHOR_GENERATOR:
+ SIZES: [[32], [64], [128], [256], [512]] # One size for each in feature map
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]] # Three aspect ratios (same for all in feature maps)
+ RPN:
+ IN_FEATURES: ["p2", "p3", "p4", "p5", "p6"]
+ PRE_NMS_TOPK_TRAIN: 2000 # Per FPN level
+ PRE_NMS_TOPK_TEST: 1000 # Per FPN level
+ # Detectron1 uses 2000 proposals per-batch,
+ # (See "modeling/rpn/rpn_outputs.py" for details of this legacy issue)
+ # which is approximately 1000 proposals per-image since the default batch size for FPN is 2.
+ POST_NMS_TOPK_TRAIN: 1000
+ POST_NMS_TOPK_TEST: 1000
+ ROI_HEADS:
+ NAME: "StandardROIHeads"
+ IN_FEATURES: ["p2", "p3", "p4", "p5"]
+ ROI_BOX_HEAD:
+ NAME: "FastRCNNConvFCHead"
+ NUM_FC: 2
+ POOLER_RESOLUTION: 7
+ ROI_MASK_HEAD:
+ NAME: "MaskRCNNConvUpsampleHead"
+ NUM_CONV: 4
+ POOLER_RESOLUTION: 14
+DATASETS:
+ TRAIN: ("coco_2017_train",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.02
+ STEPS: (60000, 80000)
+ MAX_ITER: 90000
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+VERSION: 2
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_100perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_100perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..64d5329d7f74b80219edbe08a1519799931f91e6
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_100perc.yaml
@@ -0,0 +1,40 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_2017_train",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.02
+ STEPS: (60000, 80000)
+ MAX_ITER: 90000
+ BASE_LR_MULTIPLIER: 2
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/100perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_10perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_10perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..304d422d3004b35a141faf64e0248fbcd3ba9f87
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_10perc.yaml
@@ -0,0 +1,40 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_10perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.04
+ STEPS: (6000, 8000)
+ MAX_ITER: 9000
+ BASE_LR_MULTIPLIER: 4
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/10perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_1perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_1perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ca7a8298a096f65f7a564f691dfbd30f4f8f0aac
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_1perc.yaml
@@ -0,0 +1,42 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_1perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.04
+ STEPS: (2400, 3200)
+ MAX_ITER: 3600
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ BASE_LR_MULTIPLIER: 4
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/1perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_20perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_20perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f2cc00b1bb107b125a31c6fa8136d7d858344b49
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_20perc.yaml
@@ -0,0 +1,40 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_20perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.04
+ STEPS: (12000, 16000)
+ MAX_ITER: 18000
+ BASE_LR_MULTIPLIER: 4
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/20perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_2perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_2perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c2c9571b6c521ecb4b325df6806f08e986da5f4a
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_2perc.yaml
@@ -0,0 +1,42 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_2perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.04
+ STEPS: (2400, 3200)
+ MAX_ITER: 3600
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ BASE_LR_MULTIPLIER: 4
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/2perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_30perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_30perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..30c7bc1e800a5a66646cefd90a091a20dc6d157a
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_30perc.yaml
@@ -0,0 +1,40 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_30perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.04
+ STEPS: (18000, 24000)
+ MAX_ITER: 27000
+ BASE_LR_MULTIPLIER: 4
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/30perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_40perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_40perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7afe89406e4f062bfdd5c021da176a8872709731
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_40perc.yaml
@@ -0,0 +1,40 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_40perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.04
+ STEPS: (24000, 32000)
+ MAX_ITER: 36000
+ BASE_LR_MULTIPLIER: 4
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/40perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_50perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_50perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3f1872546190d4224f5e2b6a71abfd4181497236
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_50perc.yaml
@@ -0,0 +1,40 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_50perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.02
+ STEPS: (30000, 40000)
+ MAX_ITER: 45000
+ BASE_LR_MULTIPLIER: 2
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/50perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_5perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_5perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e8770f0926067e59d2c324845fa891148b478247
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_5perc.yaml
@@ -0,0 +1,42 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_5perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.04
+ STEPS: (3000, 4000)
+ MAX_ITER: 4500
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ BASE_LR_MULTIPLIER: 4
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/5perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_60perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_60perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..250a3c75d446cdb19c13452ed0b90733923379b2
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_60perc.yaml
@@ -0,0 +1,40 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_60perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.02
+ STEPS: (36000, 48000)
+ MAX_ITER: 54000
+ BASE_LR_MULTIPLIER: 2
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/60perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_80perc.yaml b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_80perc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0131dd6dd203adf0fe933ec333d7ea92ee3fa8e4
--- /dev/null
+++ b/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_80perc.yaml
@@ -0,0 +1,40 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: "http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ RPN:
+ POST_NMS_TOPK_TRAIN: 2000
+DATASETS:
+ TRAIN: ("coco_semi_80perc",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.02
+ STEPS: (48000, 64000)
+ MAX_ITER: 72000
+ BASE_LR_MULTIPLIER: 2
+ BASE_LR_MULTIPLIER_NAMES: ['roi_heads.mask_head.predictor', 'roi_heads.box_predictor.0.cls_score', 'roi_heads.box_predictor.0.bbox_pred', 'roi_heads.box_predictor.1.cls_score', 'roi_heads.box_predictor.1.bbox_pred', 'roi_heads.box_predictor.2.cls_score', 'roi_heads.box_predictor.2.bbox_pred']
+INPUT:
+ MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+OUTPUT_DIR: "output/80perc"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml b/cutler/model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..de425134256361c440bff4f46d42d526fa7696c0
--- /dev/null
+++ b/cutler/model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml
@@ -0,0 +1,61 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+DATALOADER:
+ COPY_PASTE: True
+ COPY_PASTE_RATE: 1.0
+ VISUALIZE_COPY_PASTE: False
+ COPY_PASTE_RANDOM_NUM: True
+ COPY_PASTE_MIN_RATIO: 0.3
+ COPY_PASTE_MAX_RATIO: 1.0
+ NUM_WORKERS: 0
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: 'http://dl.fbaipublicfiles.com/cutler/checkpoints/dino_RN50_pretrain_d2_format.pkl'
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ NUM_CLASSES: 1
+ SCORE_THRESH_TEST: 0.0
+ POSITIVE_FRACTION: 0.25
+ USE_DROPLOSS: True
+ DROPLOSS_IOU_THRESH: 0.01
+ RPN:
+ POST_NMS_TOPK_TRAIN: 4000
+ NMS_THRESH: 0.65
+DATASETS:
+ TRAIN: ("imagenet_train",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.01
+ WEIGHT_DECAY: 0.00005
+ STEPS: (80000,)
+ MAX_ITER: 160000
+ GAMMA: 0.02
+ CLIP_GRADIENTS:
+ CLIP_TYPE: norm
+ CLIP_VALUE: 1.0
+ ENABLED: true
+ NORM_TYPE: 2.0
+ AMP:
+ ENABLED: True
+INPUT:
+ MIN_SIZE_TRAIN: (240, 320, 480, 640, 672, 704, 736, 768, 800, 1024)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ NUM_ITER: 200
+ DETECTIONS_PER_IMAGE: 100
+OUTPUT_DIR: "output/"
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN_demo.yaml b/cutler/model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN_demo.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3d53504ad7ccc76e848c30f53d7b57c07c19bda4
--- /dev/null
+++ b/cutler/model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN_demo.yaml
@@ -0,0 +1,62 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+DATALOADER:
+ COPY_PASTE: True
+ COPY_PASTE_RATE: 1.0
+ VISUALIZE_COPY_PASTE: False
+ COPY_PASTE_RANDOM_NUM: True
+ COPY_PASTE_MIN_RATIO: 0.3
+ COPY_PASTE_MAX_RATIO: 1.0
+ NUM_WORKERS: 0
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: 'http://dl.fbaipublicfiles.com/cutler/checkpoints/dino_RN50_pretrain_d2_format.pkl'
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ NUM_CLASSES: 1
+ SCORE_THRESH_TEST: 0.0
+ POSITIVE_FRACTION: 0.25
+ USE_DROPLOSS: True
+ DROPLOSS_IOU_THRESH: 0.01
+ RPN:
+ POST_NMS_TOPK_TRAIN: 4000
+ NMS_THRESH: 0.65
+DATASETS:
+ TRAIN: ("imagenet_train",)
+ TEST: ("imagenet_train",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.01
+ WEIGHT_DECAY: 0.00005
+ STEPS: (80000,)
+ MAX_ITER: 160000
+ GAMMA: 0.02
+ CLIP_GRADIENTS:
+ CLIP_TYPE: norm
+ CLIP_VALUE: 1.0
+ ENABLED: true
+ NORM_TYPE: 2.0
+ AMP:
+ ENABLED: True
+INPUT:
+ MIN_SIZE_TRAIN: (240, 320, 480, 640, 672, 704, 736, 768, 800, 1024)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ NUM_ITER: 200
+ DETECTIONS_PER_IMAGE: 100
+OUTPUT_DIR: "output/"
diff --git a/cutler/model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN_self_train.yaml b/cutler/model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN_self_train.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e1903a368b3688111d437237e72c799522e600e2
--- /dev/null
+++ b/cutler/model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN_self_train.yaml
@@ -0,0 +1,60 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+DATALOADER:
+ COPY_PASTE: True
+ COPY_PASTE_RATE: 1.0
+ VISUALIZE_COPY_PASTE: False
+ COPY_PASTE_RANDOM_NUM: True
+ COPY_PASTE_MIN_RATIO: 0.5
+ COPY_PASTE_MAX_RATIO: 1.0
+ NUM_WORKERS: 2
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: 'http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_r1.pth' # round 1
+ # WEIGHTS: 'http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_r2.pth' # round 2
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_BOX_HEAD:
+ CLS_AGNOSTIC_BBOX_REG: True
+ ROI_HEADS:
+ NAME: CustomCascadeROIHeads
+ NUM_CLASSES: 1
+ SCORE_THRESH_TEST: 0.0
+ POSITIVE_FRACTION: 0.25
+ USE_DROPLOSS: False
+ DROPLOSS_IOU_THRESH: 0.01
+DATASETS:
+ TRAIN: ("imagenet_train_r1",) # round 1
+ # TRAIN: ("imagenet_train_r2",) # round 2
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.005
+ STEPS: (79999,)
+ MAX_ITER: 80000
+ GAMMA: 1.0
+ CLIP_GRADIENTS:
+ CLIP_TYPE: norm
+ CLIP_VALUE: 1.0
+ ENABLED: true
+ NORM_TYPE: 2.0
+ AMP:
+ ENABLED: True
+INPUT:
+ MIN_SIZE_TRAIN: (240, 320, 480, 640, 672, 704, 736, 768, 800, 1024)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ NUM_ITER: 200
+ DETECTIONS_PER_IMAGE: 100
+OUTPUT_DIR: "output/self-train-r1/" # round 1
+# OUTPUT_DIR: "output/self-train-r2/" # round 2
\ No newline at end of file
diff --git a/cutler/model_zoo/configs/CutLER-ImageNet/mask_rcnn_R_50_FPN.yaml b/cutler/model_zoo/configs/CutLER-ImageNet/mask_rcnn_R_50_FPN.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1843ac29975a9956128020a2f44caef3e3bb9c84
--- /dev/null
+++ b/cutler/model_zoo/configs/CutLER-ImageNet/mask_rcnn_R_50_FPN.yaml
@@ -0,0 +1,52 @@
+_BASE_: "../Base-RCNN-FPN.yaml"
+DATALOADER:
+ COPY_PASTE: True
+ COPY_PASTE_RATE: 1.0
+ VISUALIZE_COPY_PASTE: False
+ COPY_PASTE_RANDOM_NUM: True
+ COPY_PASTE_MIN_RATIO: 0.3
+ COPY_PASTE_MAX_RATIO: 1.0
+MODEL:
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ WEIGHTS: 'http://dl.fbaipublicfiles.com/cutler/checkpoints/dino_RN50_pretrain_d2_format.pkl'
+ MASK_ON: True
+ BACKBONE:
+ FREEZE_AT: 0
+ RESNETS:
+ DEPTH: 50
+ NORM: "SyncBN"
+ STRIDE_IN_1X1: False
+ FPN:
+ NORM: "SyncBN"
+ ROI_HEADS:
+ NAME: "CustomStandardROIHeads"
+ NUM_CLASSES: 1
+ SCORE_THRESH_TEST: 0.0
+ USE_DROPLOSS: True
+ DROPLOSS_IOU_THRESH: 0.01
+ RPN:
+ POST_NMS_TOPK_TRAIN: 4000
+ NMS_THRESH: 0.65
+DATASETS:
+ TRAIN: ("imagenet_train",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.01
+ WEIGHT_DECAY: 0.00005
+ STEPS: (80000,)
+ MAX_ITER: 160000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: norm
+ CLIP_VALUE: 1.0
+ ENABLED: true
+ NORM_TYPE: 2.0
+INPUT:
+ MIN_SIZE_TRAIN: (240, 320, 480, 640, 672, 704, 736, 768, 800, 1024)
+ MAX_SIZE_TRAIN: 1333
+ MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+OUTPUT_DIR: "output/"
\ No newline at end of file
diff --git a/cutler/modeling/__init__.py b/cutler/modeling/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..6348b05cdbdb7c9236a5fa1f8e47fcf4a56d25a3
--- /dev/null
+++ b/cutler/modeling/__init__.py
@@ -0,0 +1,16 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from .roi_heads import (
+ ROI_HEADS_REGISTRY,
+ ROIHeads,
+ CustomStandardROIHeads,
+ FastRCNNOutputLayers,
+ build_roi_heads,
+)
+from .roi_heads.custom_cascade_rcnn import CustomCascadeROIHeads
+from .roi_heads.fast_rcnn import FastRCNNOutputLayers
+from .meta_arch.rcnn import GeneralizedRCNN, ProposalNetwork
+from .meta_arch.build import build_model
+
+_EXCLUDE = {"ShapeSpec"}
+__all__ = [k for k in globals().keys() if k not in _EXCLUDE and not k.startswith("_")]
\ No newline at end of file
diff --git a/cutler/modeling/meta_arch/__init__.py b/cutler/modeling/meta_arch/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..301b618644875b914a3b2a436b40f886043e55b4
--- /dev/null
+++ b/cutler/modeling/meta_arch/__init__.py
@@ -0,0 +1,7 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/meta_arch/__init__.py
+
+from .build import META_ARCH_REGISTRY, build_model # isort:skip
+
+__all__ = list(globals().keys())
diff --git a/cutler/modeling/meta_arch/build.py b/cutler/modeling/meta_arch/build.py
new file mode 100644
index 0000000000000000000000000000000000000000..448301b67f439558567236a74e29b6822c160dc9
--- /dev/null
+++ b/cutler/modeling/meta_arch/build.py
@@ -0,0 +1,27 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/meta_arch/build.py
+
+import torch
+
+from detectron2.utils.logger import _log_api_usage
+from detectron2.utils.registry import Registry
+
+META_ARCH_REGISTRY = Registry("META_ARCH") # noqa F401 isort:skip
+META_ARCH_REGISTRY.__doc__ = """
+Registry for meta-architectures, i.e. the whole model.
+
+The registered object will be called with `obj(cfg)`
+and expected to return a `nn.Module` object.
+"""
+
+
+def build_model(cfg):
+ """
+ Build the whole model architecture, defined by ``cfg.MODEL.META_ARCHITECTURE``.
+ Note that it does not load any weights from ``cfg``.
+ """
+ meta_arch = cfg.MODEL.META_ARCHITECTURE
+ model = META_ARCH_REGISTRY.get(meta_arch)(cfg)
+ model.to(torch.device(cfg.MODEL.DEVICE))
+ _log_api_usage("modeling.meta_arch." + meta_arch)
+ return model
diff --git a/cutler/modeling/meta_arch/rcnn.py b/cutler/modeling/meta_arch/rcnn.py
new file mode 100644
index 0000000000000000000000000000000000000000..de9f4051000c213e476ef5cbe6c4d4ec352677e4
--- /dev/null
+++ b/cutler/modeling/meta_arch/rcnn.py
@@ -0,0 +1,344 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/meta_arch/rcnn.py
+
+import logging
+import numpy as np
+from typing import Dict, List, Optional, Tuple
+import torch
+from torch import nn
+
+from detectron2.config import configurable
+from detectron2.data.detection_utils import convert_image_to_rgb
+from detectron2.layers import move_device_like
+from detectron2.structures import ImageList, Instances
+from detectron2.utils.events import get_event_storage
+from detectron2.utils.logger import log_first_n
+
+from detectron2.modeling.backbone import Backbone, build_backbone
+from detectron2.modeling.postprocessing import detector_postprocess
+from detectron2.modeling.proposal_generator import build_proposal_generator
+from ..roi_heads import build_roi_heads
+from .build import META_ARCH_REGISTRY
+
+__all__ = ["GeneralizedRCNN", "ProposalNetwork"]
+
+
+@META_ARCH_REGISTRY.register()
+class GeneralizedRCNN(nn.Module):
+ """
+ Generalized R-CNN. Any models that contains the following three components:
+ 1. Per-image feature extraction (aka backbone)
+ 2. Region proposal generation
+ 3. Per-region feature extraction and prediction
+ """
+
+ @configurable
+ def __init__(
+ self,
+ *,
+ backbone: Backbone,
+ proposal_generator: nn.Module,
+ roi_heads: nn.Module,
+ pixel_mean: Tuple[float],
+ pixel_std: Tuple[float],
+ input_format: Optional[str] = None,
+ vis_period: int = 0,
+ ):
+ """
+ Args:
+ backbone: a backbone module, must follow detectron2's backbone interface
+ proposal_generator: a module that generates proposals using backbone features
+ roi_heads: a ROI head that performs per-region computation
+ pixel_mean, pixel_std: list or tuple with #channels element, representing
+ the per-channel mean and std to be used to normalize the input image
+ input_format: describe the meaning of channels of input. Needed by visualization
+ vis_period: the period to run visualization. Set to 0 to disable.
+ """
+ super().__init__()
+ self.backbone = backbone
+ self.proposal_generator = proposal_generator
+ self.roi_heads = roi_heads
+
+ self.input_format = input_format
+ self.vis_period = vis_period
+ if vis_period > 0:
+ assert input_format is not None, "input_format is required for visualization!"
+
+ self.register_buffer("pixel_mean", torch.tensor(pixel_mean).view(-1, 1, 1), False)
+ self.register_buffer("pixel_std", torch.tensor(pixel_std).view(-1, 1, 1), False)
+ assert (
+ self.pixel_mean.shape == self.pixel_std.shape
+ ), f"{self.pixel_mean} and {self.pixel_std} have different shapes!"
+
+ @classmethod
+ def from_config(cls, cfg):
+ backbone = build_backbone(cfg)
+ return {
+ "backbone": backbone,
+ "proposal_generator": build_proposal_generator(cfg, backbone.output_shape()),
+ "roi_heads": build_roi_heads(cfg, backbone.output_shape()),
+ "input_format": cfg.INPUT.FORMAT,
+ "vis_period": cfg.VIS_PERIOD,
+ "pixel_mean": cfg.MODEL.PIXEL_MEAN,
+ "pixel_std": cfg.MODEL.PIXEL_STD,
+ }
+
+ @property
+ def device(self):
+ return self.pixel_mean.device
+
+ def _move_to_current_device(self, x):
+ return move_device_like(x, self.pixel_mean)
+
+ def visualize_training(self, batched_inputs, proposals):
+ """
+ A function used to visualize images and proposals. It shows ground truth
+ bounding boxes on the original image and up to 20 top-scoring predicted
+ object proposals on the original image. Users can implement different
+ visualization functions for different models.
+
+ Args:
+ batched_inputs (list): a list that contains input to the model.
+ proposals (list): a list that contains predicted proposals. Both
+ batched_inputs and proposals should have the same length.
+ """
+ from detectron2.utils.visualizer import Visualizer
+
+ storage = get_event_storage()
+ max_vis_prop = 20
+
+ for input, prop in zip(batched_inputs, proposals):
+ img = input["image"]
+ img = convert_image_to_rgb(img.permute(1, 2, 0), self.input_format)
+ v_gt = Visualizer(img, None)
+ v_gt = v_gt.overlay_instances(boxes=input["instances"].gt_boxes)
+ anno_img = v_gt.get_image()
+ box_size = min(len(prop.proposal_boxes), max_vis_prop)
+ v_pred = Visualizer(img, None)
+ v_pred = v_pred.overlay_instances(
+ boxes=prop.proposal_boxes[0:box_size].tensor.cpu().numpy()
+ )
+ prop_img = v_pred.get_image()
+ vis_img = np.concatenate((anno_img, prop_img), axis=1)
+ vis_img = vis_img.transpose(2, 0, 1)
+ vis_name = "Left: GT bounding boxes; Right: Predicted proposals"
+ storage.put_image(vis_name, vis_img)
+ break # only visualize one image in a batch
+
+ def forward(self, batched_inputs: List[Dict[str, torch.Tensor]]):
+ """
+ Args:
+ batched_inputs: a list, batched outputs of :class:`DatasetMapper` .
+ Each item in the list contains the inputs for one image.
+ For now, each item in the list is a dict that contains:
+
+ * image: Tensor, image in (C, H, W) format.
+ * instances (optional): groundtruth :class:`Instances`
+ * proposals (optional): :class:`Instances`, precomputed proposals.
+
+ Other information that's included in the original dicts, such as:
+
+ * "height", "width" (int): the output resolution of the model, used in inference.
+ See :meth:`postprocess` for details.
+
+ Returns:
+ list[dict]:
+ Each dict is the output for one input image.
+ The dict contains one key "instances" whose value is a :class:`Instances`.
+ The :class:`Instances` object has the following keys:
+ "pred_boxes", "pred_classes", "scores", "pred_masks", "pred_keypoints"
+ """
+ if not self.training:
+ return self.inference(batched_inputs)
+
+ images = self.preprocess_image(batched_inputs)
+ if "instances" in batched_inputs[0]:
+ gt_instances = [x["instances"].to(self.device) for x in batched_inputs]
+ else:
+ gt_instances = None
+
+ features = self.backbone(images.tensor)
+
+ if self.proposal_generator is not None:
+ proposals, proposal_losses = self.proposal_generator(images, features, gt_instances)
+ else:
+ assert "proposals" in batched_inputs[0]
+ proposals = [x["proposals"].to(self.device) for x in batched_inputs]
+ proposal_losses = {}
+
+ _, detector_losses = self.roi_heads(images, features, proposals, gt_instances)
+ if self.vis_period > 0:
+ storage = get_event_storage()
+ if storage.iter % self.vis_period == 0:
+ self.visualize_training(batched_inputs, proposals)
+
+ losses = {}
+ losses.update(detector_losses)
+ losses.update(proposal_losses)
+ return losses
+
+ def inference(
+ self,
+ batched_inputs: List[Dict[str, torch.Tensor]],
+ detected_instances: Optional[List[Instances]] = None,
+ do_postprocess: bool = True,
+ ):
+ """
+ Run inference on the given inputs.
+
+ Args:
+ batched_inputs (list[dict]): same as in :meth:`forward`
+ detected_instances (None or list[Instances]): if not None, it
+ contains an `Instances` object per image. The `Instances`
+ object contains "pred_boxes" and "pred_classes" which are
+ known boxes in the image.
+ The inference will then skip the detection of bounding boxes,
+ and only predict other per-ROI outputs.
+ do_postprocess (bool): whether to apply post-processing on the outputs.
+
+ Returns:
+ When do_postprocess=True, same as in :meth:`forward`.
+ Otherwise, a list[Instances] containing raw network outputs.
+ """
+ assert not self.training
+
+ images = self.preprocess_image(batched_inputs)
+ features = self.backbone(images.tensor)
+
+ if detected_instances is None:
+ if self.proposal_generator is not None:
+ proposals, _ = self.proposal_generator(images, features, None)
+ else:
+ assert "proposals" in batched_inputs[0]
+ proposals = [x["proposals"].to(self.device) for x in batched_inputs]
+
+ results, _ = self.roi_heads(images, features, proposals, None)
+ else:
+ detected_instances = [x.to(self.device) for x in detected_instances]
+ results = self.roi_heads.forward_with_given_boxes(features, detected_instances)
+
+ if do_postprocess:
+ assert not torch.jit.is_scripting(), "Scripting is not supported for postprocess."
+ return GeneralizedRCNN._postprocess(results, batched_inputs, images.image_sizes)
+ else:
+ return results
+
+ def preprocess_image(self, batched_inputs: List[Dict[str, torch.Tensor]]):
+ """
+ Normalize, pad and batch the input images.
+ """
+ images = [self._move_to_current_device(x["image"]) for x in batched_inputs]
+ images = [(x - self.pixel_mean) / self.pixel_std for x in images]
+ images = ImageList.from_tensors(
+ images,
+ self.backbone.size_divisibility,
+ padding_constraints=self.backbone.padding_constraints,
+ )
+ return images
+
+ @staticmethod
+ def _postprocess(instances, batched_inputs: List[Dict[str, torch.Tensor]], image_sizes):
+ """
+ Rescale the output instances to the target size.
+ """
+ # note: private function; subject to changes
+ processed_results = []
+ for results_per_image, input_per_image, image_size in zip(
+ instances, batched_inputs, image_sizes
+ ):
+ height = input_per_image.get("height", image_size[0])
+ width = input_per_image.get("width", image_size[1])
+ r = detector_postprocess(results_per_image, height, width)
+ processed_results.append({"instances": r})
+ return processed_results
+
+
+@META_ARCH_REGISTRY.register()
+class ProposalNetwork(nn.Module):
+ """
+ A meta architecture that only predicts object proposals.
+ """
+
+ @configurable
+ def __init__(
+ self,
+ *,
+ backbone: Backbone,
+ proposal_generator: nn.Module,
+ pixel_mean: Tuple[float],
+ pixel_std: Tuple[float],
+ ):
+ """
+ Args:
+ backbone: a backbone module, must follow detectron2's backbone interface
+ proposal_generator: a module that generates proposals using backbone features
+ pixel_mean, pixel_std: list or tuple with #channels element, representing
+ the per-channel mean and std to be used to normalize the input image
+ """
+ super().__init__()
+ self.backbone = backbone
+ self.proposal_generator = proposal_generator
+ self.register_buffer("pixel_mean", torch.tensor(pixel_mean).view(-1, 1, 1), False)
+ self.register_buffer("pixel_std", torch.tensor(pixel_std).view(-1, 1, 1), False)
+
+ @classmethod
+ def from_config(cls, cfg):
+ backbone = build_backbone(cfg)
+ return {
+ "backbone": backbone,
+ "proposal_generator": build_proposal_generator(cfg, backbone.output_shape()),
+ "pixel_mean": cfg.MODEL.PIXEL_MEAN,
+ "pixel_std": cfg.MODEL.PIXEL_STD,
+ }
+
+ @property
+ def device(self):
+ return self.pixel_mean.device
+
+ def _move_to_current_device(self, x):
+ return move_device_like(x, self.pixel_mean)
+
+ def forward(self, batched_inputs):
+ """
+ Args:
+ Same as in :class:`GeneralizedRCNN.forward`
+
+ Returns:
+ list[dict]:
+ Each dict is the output for one input image.
+ The dict contains one key "proposals" whose value is a
+ :class:`Instances` with keys "proposal_boxes" and "objectness_logits".
+ """
+ images = [self._move_to_current_device(x["image"]) for x in batched_inputs]
+ images = [(x - self.pixel_mean) / self.pixel_std for x in images]
+ images = ImageList.from_tensors(
+ images,
+ self.backbone.size_divisibility,
+ padding_constraints=self.backbone.padding_constraints,
+ )
+ features = self.backbone(images.tensor)
+
+ if "instances" in batched_inputs[0]:
+ gt_instances = [x["instances"].to(self.device) for x in batched_inputs]
+ elif "targets" in batched_inputs[0]:
+ log_first_n(
+ logging.WARN, "'targets' in the model inputs is now renamed to 'instances'!", n=10
+ )
+ gt_instances = [x["targets"].to(self.device) for x in batched_inputs]
+ else:
+ gt_instances = None
+ proposals, proposal_losses = self.proposal_generator(images, features, gt_instances)
+ # In training, the proposals are not useful at all but we generate them anyway.
+ # This makes RPN-only models about 5% slower.
+ if self.training:
+ return proposal_losses
+
+ processed_results = []
+ for results_per_image, input_per_image, image_size in zip(
+ proposals, batched_inputs, images.image_sizes
+ ):
+ height = input_per_image.get("height", image_size[0])
+ width = input_per_image.get("width", image_size[1])
+ r = detector_postprocess(results_per_image, height, width)
+ processed_results.append({"proposals": r})
+ return processed_results
diff --git a/cutler/modeling/roi_heads/__init__.py b/cutler/modeling/roi_heads/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..8edbaef3fb02d5c157819ae62414337f75c7ead4
--- /dev/null
+++ b/cutler/modeling/roi_heads/__init__.py
@@ -0,0 +1,16 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from .roi_heads import (
+ ROI_HEADS_REGISTRY,
+ ROIHeads,
+ Res5ROIHeads,
+ CustomStandardROIHeads,
+ build_roi_heads,
+ select_foreground_proposals,
+)
+from .custom_cascade_rcnn import CustomCascadeROIHeads
+from .fast_rcnn import FastRCNNOutputLayers
+
+from . import custom_cascade_rcnn # isort:skip
+
+__all__ = list(globals().keys())
diff --git a/cutler/modeling/roi_heads/custom_cascade_rcnn.py b/cutler/modeling/roi_heads/custom_cascade_rcnn.py
new file mode 100644
index 0000000000000000000000000000000000000000..509249c918c3c05455535b8e17c4c591cbc3f25d
--- /dev/null
+++ b/cutler/modeling/roi_heads/custom_cascade_rcnn.py
@@ -0,0 +1,338 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/roi_heads/cascade_rcnn.py
+
+from typing import List
+import torch
+from torch import nn
+from torch.autograd.function import Function
+
+from detectron2.config import configurable
+from detectron2.layers import ShapeSpec
+from detectron2.structures import Boxes, pairwise_iou
+from structures import pairwise_iou_max_scores
+from detectron2.structures import Instances
+from detectron2.utils.events import get_event_storage
+
+from detectron2.modeling.box_regression import Box2BoxTransform
+from detectron2.modeling.matcher import Matcher
+from detectron2.modeling.poolers import ROIPooler
+from detectron2.modeling.roi_heads.box_head import build_box_head
+from .fast_rcnn import FastRCNNOutputLayers, fast_rcnn_inference
+from .roi_heads import ROI_HEADS_REGISTRY, CustomStandardROIHeads
+
+import torch.nn.functional as F
+
+class _ScaleGradient(Function):
+ @staticmethod
+ def forward(ctx, input, scale):
+ ctx.scale = scale
+ return input
+
+ @staticmethod
+ def backward(ctx, grad_output):
+ return grad_output * ctx.scale, None
+
+
+@ROI_HEADS_REGISTRY.register()
+class CustomCascadeROIHeads(CustomStandardROIHeads):
+ """
+ The ROI heads that implement :paper:`Cascade R-CNN`.
+ """
+
+ @configurable
+ def __init__(
+ self,
+ *,
+ box_in_features: List[str],
+ box_pooler: ROIPooler,
+ box_heads: List[nn.Module],
+ box_predictors: List[nn.Module],
+ proposal_matchers: List[Matcher],
+ **kwargs,
+ ):
+ """
+ NOTE: this interface is experimental.
+
+ Args:
+ box_pooler (ROIPooler): pooler that extracts region features from given boxes
+ box_heads (list[nn.Module]): box head for each cascade stage
+ box_predictors (list[nn.Module]): box predictor for each cascade stage
+ proposal_matchers (list[Matcher]): matcher with different IoU thresholds to
+ match boxes with ground truth for each stage. The first matcher matches
+ RPN proposals with ground truth, the other matchers use boxes predicted
+ by the previous stage as proposals and match them with ground truth.
+ """
+ assert "proposal_matcher" not in kwargs, (
+ "CustomCascadeROIHeads takes 'proposal_matchers=' for each stage instead "
+ "of one 'proposal_matcher='."
+ )
+ # The first matcher matches RPN proposals with ground truth, done in the base class
+ kwargs["proposal_matcher"] = proposal_matchers[0]
+ num_stages = self.num_cascade_stages = len(box_heads)
+ box_heads = nn.ModuleList(box_heads)
+ box_predictors = nn.ModuleList(box_predictors)
+ assert len(box_predictors) == num_stages, f"{len(box_predictors)} != {num_stages}!"
+ assert len(proposal_matchers) == num_stages, f"{len(proposal_matchers)} != {num_stages}!"
+ super().__init__(
+ box_in_features=box_in_features,
+ box_pooler=box_pooler,
+ box_head=box_heads,
+ box_predictor=box_predictors,
+ **kwargs,
+ )
+ self.proposal_matchers = proposal_matchers
+
+ @classmethod
+ def from_config(cls, cfg, input_shape):
+ ret = super().from_config(cfg, input_shape)
+ ret.pop("proposal_matcher")
+ return ret
+
+ @classmethod
+ def _init_box_head(cls, cfg, input_shape):
+ # fmt: off
+ in_features = cfg.MODEL.ROI_HEADS.IN_FEATURES
+ pooler_resolution = cfg.MODEL.ROI_BOX_HEAD.POOLER_RESOLUTION
+ pooler_scales = tuple(1.0 / input_shape[k].stride for k in in_features)
+ sampling_ratio = cfg.MODEL.ROI_BOX_HEAD.POOLER_SAMPLING_RATIO
+ pooler_type = cfg.MODEL.ROI_BOX_HEAD.POOLER_TYPE
+ cascade_bbox_reg_weights = cfg.MODEL.ROI_BOX_CASCADE_HEAD.BBOX_REG_WEIGHTS
+ cascade_ious = cfg.MODEL.ROI_BOX_CASCADE_HEAD.IOUS
+ assert len(cascade_bbox_reg_weights) == len(cascade_ious)
+ assert cfg.MODEL.ROI_BOX_HEAD.CLS_AGNOSTIC_BBOX_REG, \
+ "CustomCascadeROIHeads only support class-agnostic regression now!"
+ assert cascade_ious[0] == cfg.MODEL.ROI_HEADS.IOU_THRESHOLDS[0]
+ # fmt: on
+
+ in_channels = [input_shape[f].channels for f in in_features]
+ # Check all channel counts are equal
+ assert len(set(in_channels)) == 1, in_channels
+ in_channels = in_channels[0]
+
+ box_pooler = ROIPooler(
+ output_size=pooler_resolution,
+ scales=pooler_scales,
+ sampling_ratio=sampling_ratio,
+ pooler_type=pooler_type,
+ )
+ pooled_shape = ShapeSpec(
+ channels=in_channels, width=pooler_resolution, height=pooler_resolution
+ )
+
+ box_heads, box_predictors, proposal_matchers = [], [], []
+ for match_iou, bbox_reg_weights in zip(cascade_ious, cascade_bbox_reg_weights):
+ box_head = build_box_head(cfg, pooled_shape)
+ box_heads.append(box_head)
+ box_predictors.append(
+ FastRCNNOutputLayers(
+ cfg,
+ box_head.output_shape,
+ box2box_transform=Box2BoxTransform(weights=bbox_reg_weights),
+ )
+ )
+ proposal_matchers.append(Matcher([match_iou], [0, 1], allow_low_quality_matches=False))
+ return {
+ "box_in_features": in_features,
+ "box_pooler": box_pooler,
+ "box_heads": box_heads,
+ "box_predictors": box_predictors,
+ "proposal_matchers": proposal_matchers,
+ }
+
+ def forward(self, images, features, proposals, targets=None):
+ del images
+ if self.training:
+ proposals = self.label_and_sample_proposals(proposals, targets)
+
+ if self.training:
+ # Need targets to box head
+ losses = self._forward_box(features, proposals, targets)
+ losses.update(self._forward_mask(features, proposals))
+ losses.update(self._forward_keypoint(features, proposals))
+ return proposals, losses
+ else:
+ pred_instances = self._forward_box(features, proposals)
+ pred_instances = self.forward_with_given_boxes(features, pred_instances)
+ return pred_instances, {}
+
+ def _forward_box(self, features, proposals, targets=None):
+ """
+ Args:
+ features, targets: the same as in
+ Same as in :meth:`ROIHeads.forward`.
+ proposals (list[Instances]): the per-image object proposals with
+ their matching ground truth.
+ Each has fields "proposal_boxes", and "objectness_logits",
+ "gt_classes", "gt_boxes".
+ """
+ features = [features[f] for f in self.box_in_features]
+ head_outputs = [] # (predictor, predictions, proposals)
+ prev_pred_boxes = None
+ image_sizes = [x.image_size for x in proposals]
+ for k in range(self.num_cascade_stages):
+ if k > 0:
+ # The output boxes of the previous stage are used to create the input
+ # proposals of the next stage.
+ proposals = self._create_proposals_from_boxes(prev_pred_boxes, image_sizes)
+ if self.training:
+ proposals = self._match_and_label_boxes(proposals, k, targets)
+ predictions = self._run_stage(features, proposals, k)
+ prev_pred_boxes = self.box_predictor[k].predict_boxes(predictions, proposals)
+ head_outputs.append((self.box_predictor[k], predictions, proposals))
+
+ no_gt_found = False
+ if self.training:
+ losses = {}
+ storage = get_event_storage()
+ for stage, (predictor, predictions, proposals) in enumerate(head_outputs):
+ no_gt_found = False
+ with storage.name_scope("stage{}".format(stage)):
+ if self.use_droploss:
+ try:
+ box_num_list = [len(x.gt_boxes) for x in proposals]
+ gt_num_list = [torch.unique(x.gt_boxes.tensor[:100], dim=0).size()[0] for x in proposals]
+ except:
+ box_num_list = [0 for x in proposals]
+ gt_num_list = [0 for x in proposals]
+ no_gt_found = True
+
+ if not no_gt_found:
+ # NOTE: confidence score
+ prediction_score, predictions_delta = predictions[0], predictions[1]
+ prediction_score = F.softmax(prediction_score, dim=1)[:,0]
+
+ # NOTE: maximum overlapping with GT (IoU)
+ proposal_boxes = Boxes.cat([x.proposal_boxes for x in proposals])
+ predictions_bbox = predictor.box2box_transform.apply_deltas(predictions_delta, proposal_boxes.tensor)
+ idx_start = 0
+ iou_max_list = []
+ for idx, x in enumerate(proposals):
+ idx_end = idx_start + box_num_list[idx]
+ iou_max_list.append(pairwise_iou_max_scores(predictions_bbox[idx_start:idx_end], x.gt_boxes[:gt_num_list[idx]].tensor))
+ idx_start = idx_end
+ iou_max = torch.cat(iou_max_list, dim=0)
+
+ # NOTE: get the weight of each proposal
+ weights = iou_max.le(self.droploss_iou_thresh).float()
+ weights = 1 - weights.ge(1.0).float()
+ stage_losses = predictor.losses(predictions, proposals, weights=weights.detach())
+ else:
+ stage_losses = predictor.losses(predictions, proposals)
+ else:
+ stage_losses = predictor.losses(predictions, proposals)
+ losses.update({k + "_stage{}".format(stage): v for k, v in stage_losses.items()})
+ return losses
+ else:
+ # Each is a list[Tensor] of length #image. Each tensor is Ri x (K+1)
+ scores_per_stage = [h[0].predict_probs(h[1], h[2]) for h in head_outputs]
+
+ # Average the scores across heads
+ scores = [
+ sum(list(scores_per_image)) * (1.0 / self.num_cascade_stages)
+ for scores_per_image in zip(*scores_per_stage)
+ ]
+ # Use the boxes of the last head
+ predictor, predictions, proposals = head_outputs[-1]
+ boxes = predictor.predict_boxes(predictions, proposals)
+ pred_instances, _ = fast_rcnn_inference(
+ boxes,
+ scores,
+ image_sizes,
+ predictor.test_score_thresh,
+ predictor.test_nms_thresh,
+ predictor.test_topk_per_image,
+ )
+ return pred_instances
+
+ @torch.no_grad()
+ def _match_and_label_boxes(self, proposals, stage, targets):
+ """
+ Match proposals with groundtruth using the matcher at the given stage.
+ Label the proposals as foreground or background based on the match.
+
+ Args:
+ proposals (list[Instances]): One Instances for each image, with
+ the field "proposal_boxes".
+ stage (int): the current stage
+ targets (list[Instances]): the ground truth instances
+
+ Returns:
+ list[Instances]: the same proposals, but with fields "gt_classes" and "gt_boxes"
+ """
+ num_fg_samples, num_bg_samples = [], []
+ for proposals_per_image, targets_per_image in zip(proposals, targets):
+ match_quality_matrix = pairwise_iou(
+ targets_per_image.gt_boxes, proposals_per_image.proposal_boxes
+ )
+ # proposal_labels are 0 or 1
+ matched_idxs, proposal_labels = self.proposal_matchers[stage](match_quality_matrix)
+ if len(targets_per_image) > 0:
+ gt_classes = targets_per_image.gt_classes[matched_idxs]
+ # Label unmatched proposals (0 label from matcher) as background (label=num_classes)
+ gt_classes[proposal_labels == 0] = self.num_classes
+ gt_boxes = targets_per_image.gt_boxes[matched_idxs]
+ else:
+ gt_classes = torch.zeros_like(matched_idxs) + self.num_classes
+ gt_boxes = Boxes(
+ targets_per_image.gt_boxes.tensor.new_zeros((len(proposals_per_image), 4))
+ )
+ proposals_per_image.gt_classes = gt_classes
+ proposals_per_image.gt_boxes = gt_boxes
+
+ num_fg_samples.append((proposal_labels == 1).sum().item())
+ num_bg_samples.append(proposal_labels.numel() - num_fg_samples[-1])
+
+ # Log the number of fg/bg samples in each stage
+ storage = get_event_storage()
+ storage.put_scalar(
+ "stage{}/roi_head/num_fg_samples".format(stage),
+ sum(num_fg_samples) / len(num_fg_samples),
+ )
+ storage.put_scalar(
+ "stage{}/roi_head/num_bg_samples".format(stage),
+ sum(num_bg_samples) / len(num_bg_samples),
+ )
+ return proposals
+
+ def _run_stage(self, features, proposals, stage):
+ """
+ Args:
+ features (list[Tensor]): #lvl input features to ROIHeads
+ proposals (list[Instances]): #image Instances, with the field "proposal_boxes"
+ stage (int): the current stage
+
+ Returns:
+ Same output as `FastRCNNOutputLayers.forward()`.
+ """
+ box_features = self.box_pooler(features, [x.proposal_boxes for x in proposals])
+ # The original implementation averages the losses among heads,
+ # but scale up the parameter gradients of the heads.
+ # This is equivalent to adding the losses among heads,
+ # but scale down the gradients on features.
+ if self.training:
+ box_features = _ScaleGradient.apply(box_features, 1.0 / self.num_cascade_stages)
+ box_features = self.box_head[stage](box_features)
+ return self.box_predictor[stage](box_features)
+
+ def _create_proposals_from_boxes(self, boxes, image_sizes):
+ """
+ Args:
+ boxes (list[Tensor]): per-image predicted boxes, each of shape Ri x 4
+ image_sizes (list[tuple]): list of image shapes in (h, w)
+
+ Returns:
+ list[Instances]: per-image proposals with the given boxes.
+ """
+ # Just like RPN, the proposals should not have gradients
+ boxes = [Boxes(b.detach()) for b in boxes]
+ proposals = []
+ for boxes_per_image, image_size in zip(boxes, image_sizes):
+ boxes_per_image.clip(image_size)
+ if self.training:
+ # do not filter empty boxes at inference time,
+ # because the scores from each stage need to be aligned and added later
+ boxes_per_image = boxes_per_image[boxes_per_image.nonempty()]
+ prop = Instances(image_size)
+ prop.proposal_boxes = boxes_per_image
+ proposals.append(prop)
+ return proposals
diff --git a/cutler/modeling/roi_heads/fast_rcnn.py b/cutler/modeling/roi_heads/fast_rcnn.py
new file mode 100644
index 0000000000000000000000000000000000000000..5342d62808be05e1ad5a5800ba42e4d58fa1ffcd
--- /dev/null
+++ b/cutler/modeling/roi_heads/fast_rcnn.py
@@ -0,0 +1,587 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/roi_heads/fast_rcnn.py
+
+import logging
+from typing import Callable, Dict, List, Optional, Tuple, Union
+import torch
+from torch import nn
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.data.detection_utils import get_fed_loss_cls_weights
+from detectron2.layers import ShapeSpec, batched_nms, cat, cross_entropy, nonzero_tuple
+from detectron2.modeling.box_regression import Box2BoxTransform, _dense_box_regression_loss
+from detectron2.structures import Instances, Boxes
+from detectron2.utils.events import get_event_storage
+from torch.nn import Parameter
+import torch.nn.functional as F
+
+__all__ = ["fast_rcnn_inference", "FastRCNNOutputLayers"]
+
+
+logger = logging.getLogger(__name__)
+
+"""
+Shape shorthand in this module:
+
+ N: number of images in the minibatch
+ R: number of ROIs, combined over all images, in the minibatch
+ Ri: number of ROIs in image i
+ K: number of foreground classes. E.g.,there are 80 foreground classes in COCO.
+
+Naming convention:
+
+ deltas: refers to the 4-d (dx, dy, dw, dh) deltas that parameterize the box2box
+ transform (see :class:`box_regression.Box2BoxTransform`).
+
+ pred_class_logits: predicted class scores in [-inf, +inf]; use
+ softmax(pred_class_logits) to estimate P(class).
+
+ gt_classes: ground-truth classification labels in [0, K], where [0, K) represent
+ foreground object classes and K represents the background class.
+
+ pred_proposal_deltas: predicted box2box transform deltas for transforming proposals
+ to detection box predictions.
+
+ gt_proposal_deltas: ground-truth box2box transform deltas
+"""
+
+
+def fast_rcnn_inference(
+ boxes: List[torch.Tensor],
+ scores: List[torch.Tensor],
+ image_shapes: List[Tuple[int, int]],
+ score_thresh: float,
+ nms_thresh: float,
+ topk_per_image: int,
+):
+ """
+ Call `fast_rcnn_inference_single_image` for all images.
+
+ Args:
+ boxes (list[Tensor]): A list of Tensors of predicted class-specific or class-agnostic
+ boxes for each image. Element i has shape (Ri, K * 4) if doing
+ class-specific regression, or (Ri, 4) if doing class-agnostic
+ regression, where Ri is the number of predicted objects for image i.
+ This is compatible with the output of :meth:`FastRCNNOutputLayers.predict_boxes`.
+ scores (list[Tensor]): A list of Tensors of predicted class scores for each image.
+ Element i has shape (Ri, K + 1), where Ri is the number of predicted objects
+ for image i. Compatible with the output of :meth:`FastRCNNOutputLayers.predict_probs`.
+ image_shapes (list[tuple]): A list of (width, height) tuples for each image in the batch.
+ score_thresh (float): Only return detections with a confidence score exceeding this
+ threshold.
+ nms_thresh (float): The threshold to use for box non-maximum suppression. Value in [0, 1].
+ topk_per_image (int): The number of top scoring detections to return. Set < 0 to return
+ all detections.
+
+ Returns:
+ instances: (list[Instances]): A list of N instances, one for each image in the batch,
+ that stores the topk most confidence detections.
+ kept_indices: (list[Tensor]): A list of 1D tensor of length of N, each element indicates
+ the corresponding boxes/scores index in [0, Ri) from the input, for image i.
+ """
+ result_per_image = [
+ fast_rcnn_inference_single_image(
+ boxes_per_image, scores_per_image, image_shape, score_thresh, nms_thresh, topk_per_image
+ )
+ for scores_per_image, boxes_per_image, image_shape in zip(scores, boxes, image_shapes)
+ ]
+ return [x[0] for x in result_per_image], [x[1] for x in result_per_image]
+
+
+def _log_classification_stats(pred_logits, gt_classes, prefix="fast_rcnn"):
+ """
+ Log the classification metrics to EventStorage.
+
+ Args:
+ pred_logits: Rx(K+1) logits. The last column is for background class.
+ gt_classes: R labels
+ """
+ num_instances = gt_classes.numel()
+ if num_instances == 0:
+ return
+ pred_classes = pred_logits.argmax(dim=1)
+ bg_class_ind = pred_logits.shape[1] - 1
+
+ fg_inds = (gt_classes >= 0) & (gt_classes < bg_class_ind)
+ num_fg = fg_inds.nonzero().numel()
+ fg_gt_classes = gt_classes[fg_inds]
+ fg_pred_classes = pred_classes[fg_inds]
+
+ num_false_negative = (fg_pred_classes == bg_class_ind).nonzero().numel()
+ num_accurate = (pred_classes == gt_classes).nonzero().numel()
+ fg_num_accurate = (fg_pred_classes == fg_gt_classes).nonzero().numel()
+
+ storage = get_event_storage()
+ storage.put_scalar(f"{prefix}/cls_accuracy", num_accurate / num_instances)
+ if num_fg > 0:
+ storage.put_scalar(f"{prefix}/fg_cls_accuracy", fg_num_accurate / num_fg)
+ storage.put_scalar(f"{prefix}/false_negative", num_false_negative / num_fg)
+
+
+def fast_rcnn_inference_single_image(
+ boxes,
+ scores,
+ image_shape: Tuple[int, int],
+ score_thresh: float,
+ nms_thresh: float,
+ topk_per_image: int,
+):
+ """
+ Single-image inference. Return bounding-box detection results by thresholding
+ on scores and applying non-maximum suppression (NMS).
+
+ Args:
+ Same as `fast_rcnn_inference`, but with boxes, scores, and image shapes
+ per image.
+
+ Returns:
+ Same as `fast_rcnn_inference`, but for only one image.
+ """
+ valid_mask = torch.isfinite(boxes).all(dim=1) & torch.isfinite(scores).all(dim=1)
+ if not valid_mask.all():
+ boxes = boxes[valid_mask]
+ scores = scores[valid_mask]
+
+ scores = scores[:, :-1]
+ num_bbox_reg_classes = boxes.shape[1] // 4
+ # Convert to Boxes to use the `clip` function ...
+ boxes = Boxes(boxes.reshape(-1, 4))
+ boxes.clip(image_shape)
+ boxes = boxes.tensor.view(-1, num_bbox_reg_classes, 4) # R x C x 4
+
+ # 1. Filter results based on detection scores. It can make NMS more efficient
+ # by filtering out low-confidence detections.
+ filter_mask = scores > score_thresh # R x K
+ # R' x 2. First column contains indices of the R predictions;
+ # Second column contains indices of classes.
+ filter_inds = filter_mask.nonzero()
+ if num_bbox_reg_classes == 1:
+ boxes = boxes[filter_inds[:, 0], 0]
+ else:
+ boxes = boxes[filter_mask]
+ scores = scores[filter_mask]
+
+ # 2. Apply NMS for each class independently.
+ keep = batched_nms(boxes, scores, filter_inds[:, 1], nms_thresh)
+ if topk_per_image >= 0:
+ keep = keep[:topk_per_image]
+ boxes, scores, filter_inds = boxes[keep], scores[keep], filter_inds[keep]
+
+ result = Instances(image_shape)
+ result.pred_boxes = Boxes(boxes)
+ result.scores = scores
+ result.pred_classes = filter_inds[:, 1]
+ return result, filter_inds[:, 0]
+
+class NormedLinear(nn.Module):
+ def __init__(self, in_features, out_features):
+ super(NormedLinear, self).__init__()
+ self.weight = Parameter(torch.Tensor(in_features, out_features))
+ self.weight.data.uniform_(-1, 1).renorm_(2, 1, 1e-5).mul_(1e5)
+
+ def forward(self, x):
+ out = F.normalize(x, dim=1).mm(F.normalize(self.weight, dim=0))
+ return out
+
+class FastRCNNOutputLayers(nn.Module):
+ """
+ Two linear layers for predicting Fast R-CNN outputs:
+
+ 1. proposal-to-detection box regression deltas
+ 2. classification scores
+ """
+
+ @configurable
+ def __init__(
+ self,
+ input_shape: ShapeSpec,
+ *,
+ box2box_transform,
+ num_classes: int,
+ test_score_thresh: float = 0.0,
+ test_nms_thresh: float = 0.5,
+ test_topk_per_image: int = 100,
+ cls_agnostic_bbox_reg: bool = False,
+ smooth_l1_beta: float = 0.0,
+ box_reg_loss_type: str = "smooth_l1",
+ loss_weight: Union[float, Dict[str, float]] = 1.0,
+ use_fed_loss: bool = False,
+ use_sigmoid_ce: bool = False,
+ get_fed_loss_cls_weights: Optional[Callable] = None,
+ fed_loss_num_classes: int = 50,
+ ):
+ """
+ NOTE: this interface is experimental.
+
+ Args:
+ input_shape (ShapeSpec): shape of the input feature to this module
+ box2box_transform (Box2BoxTransform or Box2BoxTransformRotated):
+ num_classes (int): number of foreground classes
+ test_score_thresh (float): threshold to filter predictions results.
+ test_nms_thresh (float): NMS threshold for prediction results.
+ test_topk_per_image (int): number of top predictions to produce per image.
+ cls_agnostic_bbox_reg (bool): whether to use class agnostic for bbox regression
+ smooth_l1_beta (float): transition point from L1 to L2 loss. Only used if
+ `box_reg_loss_type` is "smooth_l1"
+ box_reg_loss_type (str): Box regression loss type. One of: "smooth_l1", "giou",
+ "diou", "ciou"
+ loss_weight (float|dict): weights to use for losses. Can be single float for weighting
+ all losses, or a dict of individual weightings. Valid dict keys are:
+ * "loss_cls": applied to classification loss
+ * "loss_box_reg": applied to box regression loss
+ use_fed_loss (bool): whether to use federated loss which samples additional negative
+ classes to calculate the loss
+ use_sigmoid_ce (bool): whether to calculate the loss using weighted average of binary
+ cross entropy with logits. This could be used together with federated loss
+ get_fed_loss_cls_weights (Callable): a callable which takes dataset name and frequency
+ weight power, and returns the probabilities to sample negative classes for
+ federated loss. The implementation can be found in
+ detectron2/data/detection_utils.py
+ fed_loss_num_classes (int): number of federated classes to keep in total
+ """
+ super().__init__()
+ if isinstance(input_shape, int): # some backward compatibility
+ input_shape = ShapeSpec(channels=input_shape)
+ self.num_classes = num_classes
+ input_size = input_shape.channels * (input_shape.width or 1) * (input_shape.height or 1)
+ # prediction layer for num_classes foreground classes and one background class (hence + 1)
+ self.cls_score = nn.Linear(input_size, num_classes + 1)
+ nn.init.normal_(self.cls_score.weight, std=0.01)
+ num_bbox_reg_classes = 1 if cls_agnostic_bbox_reg else num_classes
+ box_dim = len(box2box_transform.weights)
+ self.bbox_pred = nn.Linear(input_size, num_bbox_reg_classes * box_dim)
+
+ nn.init.normal_(self.bbox_pred.weight, std=0.001)
+ for l in [self.cls_score, self.bbox_pred]:
+ nn.init.constant_(l.bias, 0)
+
+ self.box2box_transform = box2box_transform
+ self.smooth_l1_beta = smooth_l1_beta
+ self.test_score_thresh = test_score_thresh
+ self.test_nms_thresh = test_nms_thresh
+ self.test_topk_per_image = test_topk_per_image
+ self.box_reg_loss_type = box_reg_loss_type
+ if isinstance(loss_weight, float):
+ loss_weight = {"loss_cls": loss_weight, "loss_box_reg": loss_weight}
+ self.loss_weight = loss_weight
+ self.use_fed_loss = use_fed_loss
+ self.use_sigmoid_ce = use_sigmoid_ce
+ self.fed_loss_num_classes = fed_loss_num_classes
+
+ if self.use_fed_loss:
+ assert self.use_sigmoid_ce, "Please use sigmoid cross entropy loss with federated loss"
+ fed_loss_cls_weights = get_fed_loss_cls_weights()
+ assert (
+ len(fed_loss_cls_weights) == self.num_classes
+ ), "Please check the provided fed_loss_cls_weights. Their size should match num_classes"
+ self.register_buffer("fed_loss_cls_weights", fed_loss_cls_weights)
+
+
+ @classmethod
+ def from_config(cls, cfg, input_shape):
+ return {
+ "input_shape": input_shape,
+ "box2box_transform": Box2BoxTransform(weights=cfg.MODEL.ROI_BOX_HEAD.BBOX_REG_WEIGHTS),
+ # fmt: off
+ "num_classes" : cfg.MODEL.ROI_HEADS.NUM_CLASSES,
+ "cls_agnostic_bbox_reg" : cfg.MODEL.ROI_BOX_HEAD.CLS_AGNOSTIC_BBOX_REG,
+ "smooth_l1_beta" : cfg.MODEL.ROI_BOX_HEAD.SMOOTH_L1_BETA,
+ "test_score_thresh" : cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST,
+ "test_nms_thresh" : cfg.MODEL.ROI_HEADS.NMS_THRESH_TEST,
+ "test_topk_per_image" : cfg.TEST.DETECTIONS_PER_IMAGE,
+ "box_reg_loss_type" : cfg.MODEL.ROI_BOX_HEAD.BBOX_REG_LOSS_TYPE,
+ "loss_weight" : {"loss_box_reg": cfg.MODEL.ROI_BOX_HEAD.BBOX_REG_LOSS_WEIGHT}, # noqa
+ "use_fed_loss" : cfg.MODEL.ROI_BOX_HEAD.USE_FED_LOSS,
+ "use_sigmoid_ce" : cfg.MODEL.ROI_BOX_HEAD.USE_SIGMOID_CE,
+ "get_fed_loss_cls_weights" : lambda: get_fed_loss_cls_weights(dataset_names=cfg.DATASETS.TRAIN, freq_weight_power=cfg.MODEL.ROI_BOX_HEAD.FED_LOSS_FREQ_WEIGHT_POWER), # noqa
+ "fed_loss_num_classes" : cfg.MODEL.ROI_BOX_HEAD.FED_LOSS_NUM_CLASSES,
+ # fmt: on
+ }
+
+ def forward(self, x):
+ """
+ Args:
+ x: per-region features of shape (N, ...) for N bounding boxes to predict.
+
+ Returns:
+ (Tensor, Tensor):
+ First tensor: shape (N,K+1), scores for each of the N box. Each row contains the
+ scores for K object categories and 1 background class.
+
+ Second tensor: bounding box regression deltas for each box. Shape is shape (N,Kx4),
+ or (N,4) for class-agnostic regression.
+ """
+ if x.dim() > 2:
+ x = torch.flatten(x, start_dim=1)
+ scores = self.cls_score(x)
+ proposal_deltas = self.bbox_pred(x)
+ return scores, proposal_deltas
+
+ def losses(self, predictions, proposals, weights=None):
+ """
+ Args:
+ predictions: return values of :meth:`forward()`.
+ proposals (list[Instances]): proposals that match the features that were used
+ to compute predictions. The fields ``proposal_boxes``, ``gt_boxes``,
+ ``gt_classes`` are expected.
+ weights: weights for reweighting the loss of each instance based on IoU
+
+ Returns:
+ Dict[str, Tensor]: dict of losses
+ """
+ scores, proposal_deltas = predictions
+
+ # parse classification outputs
+ gt_classes = (
+ cat([p.gt_classes for p in proposals], dim=0) if len(proposals) else torch.empty(0)
+ )
+ _log_classification_stats(scores, gt_classes)
+
+ # parse box regression outputs
+ if len(proposals):
+ proposal_boxes = cat([p.proposal_boxes.tensor for p in proposals], dim=0) # Nx4
+ assert not proposal_boxes.requires_grad, "Proposals should not require gradients!"
+ # If "gt_boxes" does not exist, the proposals must be all negative and
+ # should not be included in regression loss computation.
+ # Here we just use proposal_boxes as an arbitrary placeholder because its
+ # value won't be used in self.box_reg_loss().
+ gt_boxes = cat(
+ [(p.gt_boxes if p.has("gt_boxes") else p.proposal_boxes).tensor for p in proposals],
+ dim=0,
+ )
+ else:
+ proposal_boxes = gt_boxes = torch.empty((0, 4), device=proposal_deltas.device)
+
+ if self.use_sigmoid_ce:
+ loss_cls = self.sigmoid_cross_entropy_loss(scores, gt_classes)
+ else:
+ if weights != None:
+ loss_cls = (weights * cross_entropy(scores, gt_classes, reduction='none')).mean()
+ else:
+ loss_cls = cross_entropy(scores, gt_classes, reduction="mean")
+
+ losses = {
+ "loss_cls": loss_cls,
+ "loss_box_reg": self.box_reg_loss(
+ proposal_boxes, gt_boxes, proposal_deltas, gt_classes
+ ),
+ }
+ return {k: v * self.loss_weight.get(k, 1.0) for k, v in losses.items()}
+
+ # Implementation from https://github.com/xingyizhou/CenterNet2/blob/master/projects/CenterNet2/centernet/modeling/roi_heads/fed_loss.py # noqa
+ # with slight modifications
+ def get_fed_loss_classes(self, gt_classes, num_fed_loss_classes, num_classes, weight):
+ """
+ Args:
+ gt_classes: a long tensor of shape R that contains the gt class label of each proposal.
+ num_fed_loss_classes: minimum number of classes to keep when calculating federated loss.
+ Will sample negative classes if number of unique gt_classes is smaller than this value.
+ num_classes: number of foreground classes
+ weight: probabilities used to sample negative classes
+
+ Returns:
+ Tensor:
+ classes to keep when calculating the federated loss, including both unique gt
+ classes and sampled negative classes.
+ """
+ unique_gt_classes = torch.unique(gt_classes)
+ prob = unique_gt_classes.new_ones(num_classes + 1).float()
+ prob[-1] = 0
+ if len(unique_gt_classes) < num_fed_loss_classes:
+ prob[:num_classes] = weight.float().clone()
+ prob[unique_gt_classes] = 0
+ sampled_negative_classes = torch.multinomial(
+ prob, num_fed_loss_classes - len(unique_gt_classes), replacement=False
+ )
+ fed_loss_classes = torch.cat([unique_gt_classes, sampled_negative_classes])
+ else:
+ fed_loss_classes = unique_gt_classes
+ return fed_loss_classes
+
+ # Implementation from https://github.com/xingyizhou/CenterNet2/blob/master/projects/CenterNet2/centernet/modeling/roi_heads/custom_fast_rcnn.py#L113 # noqa
+ # with slight modifications
+ def sigmoid_cross_entropy_loss(self, pred_class_logits, gt_classes):
+ """
+ Args:
+ pred_class_logits: shape (N, K+1), scores for each of the N box. Each row contains the
+ scores for K object categories and 1 background class
+ gt_classes: a long tensor of shape R that contains the gt class label of each proposal.
+ """
+ if pred_class_logits.numel() == 0:
+ return pred_class_logits.new_zeros([1])[0]
+
+ N = pred_class_logits.shape[0]
+ K = pred_class_logits.shape[1] - 1
+
+ target = pred_class_logits.new_zeros(N, K + 1)
+ target[range(len(gt_classes)), gt_classes] = 1
+ target = target[:, :K]
+
+ cls_loss = F.binary_cross_entropy_with_logits(
+ pred_class_logits[:, :-1], target, reduction="none"
+ )
+
+ if self.use_fed_loss:
+ fed_loss_classes = self.get_fed_loss_classes(
+ gt_classes,
+ num_fed_loss_classes=self.fed_loss_num_classes,
+ num_classes=K,
+ weight=self.fed_loss_cls_weights,
+ )
+ fed_loss_classes_mask = fed_loss_classes.new_zeros(K + 1)
+ fed_loss_classes_mask[fed_loss_classes] = 1
+ fed_loss_classes_mask = fed_loss_classes_mask[:K]
+ weight = fed_loss_classes_mask.view(1, K).expand(N, K).float()
+ else:
+ weight = 1
+
+ loss = torch.sum(cls_loss * weight) / N
+ return loss
+
+ def box_reg_loss(self, proposal_boxes, gt_boxes, pred_deltas, gt_classes):
+ """
+ Args:
+ proposal_boxes/gt_boxes are tensors with the same shape (R, 4 or 5).
+ pred_deltas has shape (R, 4 or 5), or (R, num_classes * (4 or 5)).
+ gt_classes is a long tensor of shape R, the gt class label of each proposal.
+ R shall be the number of proposals.
+ """
+ box_dim = proposal_boxes.shape[1] # 4 or 5
+ # Regression loss is only computed for foreground proposals (those matched to a GT)
+ fg_inds = nonzero_tuple((gt_classes >= 0) & (gt_classes < self.num_classes))[0]
+ if pred_deltas.shape[1] == box_dim: # cls-agnostic regression
+ fg_pred_deltas = pred_deltas[fg_inds]
+ else:
+ fg_pred_deltas = pred_deltas.view(-1, self.num_classes, box_dim)[
+ fg_inds, gt_classes[fg_inds]
+ ]
+
+ loss_box_reg = _dense_box_regression_loss(
+ [proposal_boxes[fg_inds]],
+ self.box2box_transform,
+ [fg_pred_deltas.unsqueeze(0)],
+ [gt_boxes[fg_inds]],
+ ...,
+ self.box_reg_loss_type,
+ self.smooth_l1_beta,
+ )
+
+ # The reg loss is normalized using the total number of regions (R), not the number
+ # of foreground regions even though the box regression loss is only defined on
+ # foreground regions. Why? Because doing so gives equal training influence to
+ # each foreground example. To see how, consider two different minibatches:
+ # (1) Contains a single foreground region
+ # (2) Contains 100 foreground regions
+ # If we normalize by the number of foreground regions, the single example in
+ # minibatch (1) will be given 100 times as much influence as each foreground
+ # example in minibatch (2). Normalizing by the total number of regions, R,
+ # means that the single example in minibatch (1) and each of the 100 examples
+ # in minibatch (2) are given equal influence.
+ return loss_box_reg / max(gt_classes.numel(), 1.0) # return 0 if empty
+
+ def inference(self, predictions: Tuple[torch.Tensor, torch.Tensor], proposals: List[Instances]):
+ """
+ Args:
+ predictions: return values of :meth:`forward()`.
+ proposals (list[Instances]): proposals that match the features that were
+ used to compute predictions. The ``proposal_boxes`` field is expected.
+
+ Returns:
+ list[Instances]: same as `fast_rcnn_inference`.
+ list[Tensor]: same as `fast_rcnn_inference`.
+ """
+ boxes = self.predict_boxes(predictions, proposals)
+ scores = self.predict_probs(predictions, proposals)
+ image_shapes = [x.image_size for x in proposals]
+ return fast_rcnn_inference(
+ boxes,
+ scores,
+ image_shapes,
+ self.test_score_thresh,
+ self.test_nms_thresh,
+ self.test_topk_per_image,
+ )
+
+ def predict_boxes_for_gt_classes(self, predictions, proposals):
+ """
+ Args:
+ predictions: return values of :meth:`forward()`.
+ proposals (list[Instances]): proposals that match the features that were used
+ to compute predictions. The fields ``proposal_boxes``, ``gt_classes`` are expected.
+
+ Returns:
+ list[Tensor]:
+ A list of Tensors of predicted boxes for GT classes in case of
+ class-specific box head. Element i of the list has shape (Ri, B), where Ri is
+ the number of proposals for image i and B is the box dimension (4 or 5)
+ """
+ if not len(proposals):
+ return []
+ scores, proposal_deltas = predictions
+ proposal_boxes = cat([p.proposal_boxes.tensor for p in proposals], dim=0)
+ N, B = proposal_boxes.shape
+ predict_boxes = self.box2box_transform.apply_deltas(
+ proposal_deltas, proposal_boxes
+ ) # Nx(KxB)
+
+ K = predict_boxes.shape[1] // B
+ if K > 1:
+ gt_classes = torch.cat([p.gt_classes for p in proposals], dim=0)
+ # Some proposals are ignored or have a background class. Their gt_classes
+ # cannot be used as index.
+ gt_classes = gt_classes.clamp_(0, K - 1)
+
+ predict_boxes = predict_boxes.view(N, K, B)[
+ torch.arange(N, dtype=torch.long, device=predict_boxes.device), gt_classes
+ ]
+ num_prop_per_image = [len(p) for p in proposals]
+ return predict_boxes.split(num_prop_per_image)
+
+ def predict_boxes(
+ self, predictions: Tuple[torch.Tensor, torch.Tensor], proposals: List[Instances]
+ ):
+ """
+ Args:
+ predictions: return values of :meth:`forward()`.
+ proposals (list[Instances]): proposals that match the features that were
+ used to compute predictions. The ``proposal_boxes`` field is expected.
+
+ Returns:
+ list[Tensor]:
+ A list of Tensors of predicted class-specific or class-agnostic boxes
+ for each image. Element i has shape (Ri, K * B) or (Ri, B), where Ri is
+ the number of proposals for image i and B is the box dimension (4 or 5)
+ """
+ if not len(proposals):
+ return []
+ _, proposal_deltas = predictions
+ num_prop_per_image = [len(p) for p in proposals]
+ proposal_boxes = cat([p.proposal_boxes.tensor for p in proposals], dim=0)
+ predict_boxes = self.box2box_transform.apply_deltas(
+ proposal_deltas,
+ proposal_boxes,
+ ) # Nx(KxB)
+ return predict_boxes.split(num_prop_per_image)
+
+ def predict_probs(
+ self, predictions: Tuple[torch.Tensor, torch.Tensor], proposals: List[Instances]
+ ):
+ """
+ Args:
+ predictions: return values of :meth:`forward()`.
+ proposals (list[Instances]): proposals that match the features that were
+ used to compute predictions.
+
+ Returns:
+ list[Tensor]:
+ A list of Tensors of predicted class probabilities for each image.
+ Element i has shape (Ri, K + 1), where Ri is the number of proposals for image i.
+ """
+ scores, _ = predictions
+ num_inst_per_image = [len(p) for p in proposals]
+ if self.use_sigmoid_ce:
+ probs = scores.sigmoid()
+ else:
+ probs = F.softmax(scores, dim=-1)
+ return probs.split(num_inst_per_image, dim=0)
diff --git a/cutler/modeling/roi_heads/roi_heads.py b/cutler/modeling/roi_heads/roi_heads.py
new file mode 100644
index 0000000000000000000000000000000000000000..f3ed51b3afe957a818ca39032851d69820e6d4cf
--- /dev/null
+++ b/cutler/modeling/roi_heads/roi_heads.py
@@ -0,0 +1,926 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/roi_heads/roi_heads.py
+
+import inspect
+import logging
+import numpy as np
+from typing import Dict, List, Optional, Tuple
+import torch
+from torch import nn
+
+from detectron2.config import configurable
+from detectron2.layers import ShapeSpec, nonzero_tuple
+from detectron2.structures import Boxes, pairwise_iou
+from structures import pairwise_iou_max_scores
+from detectron2.structures import ImageList, Instances
+from detectron2.utils.events import get_event_storage
+from detectron2.utils.registry import Registry
+
+from detectron2.modeling.backbone.resnet import BottleneckBlock, ResNet
+from detectron2.modeling.matcher import Matcher
+from detectron2.modeling.poolers import ROIPooler
+from detectron2.modeling.proposal_generator.proposal_utils import add_ground_truth_to_proposals
+from detectron2.modeling.sampling import subsample_labels
+from detectron2.modeling.roi_heads.box_head import build_box_head
+from .fast_rcnn import FastRCNNOutputLayers
+from detectron2.modeling.roi_heads.keypoint_head import build_keypoint_head
+from detectron2.modeling.roi_heads.mask_head import build_mask_head
+
+from detectron2.modeling.box_regression import Box2BoxTransform
+import torch.nn.functional as F
+from colored import fg
+
+blue, red = fg('blue'), fg('red')
+
+ROI_HEADS_REGISTRY = Registry("ROI_HEADS")
+ROI_HEADS_REGISTRY.__doc__ = """
+Registry for ROI heads in a generalized R-CNN model.
+ROIHeads take feature maps and region proposals, and
+perform per-region computation.
+
+The registered object will be called with `obj(cfg, input_shape)`.
+The call is expected to return an :class:`ROIHeads`.
+"""
+
+logger = logging.getLogger(__name__)
+
+
+def build_roi_heads(cfg, input_shape):
+ """
+ Build ROIHeads defined by `cfg.MODEL.ROI_HEADS.NAME`.
+ """
+ name = cfg.MODEL.ROI_HEADS.NAME
+ return ROI_HEADS_REGISTRY.get(name)(cfg, input_shape)
+
+
+def select_foreground_proposals(
+ proposals: List[Instances], bg_label: int
+) -> Tuple[List[Instances], List[torch.Tensor]]:
+ """
+ Given a list of N Instances (for N images), each containing a `gt_classes` field,
+ return a list of Instances that contain only instances with `gt_classes != -1 &&
+ gt_classes != bg_label`.
+
+ Args:
+ proposals (list[Instances]): A list of N Instances, where N is the number of
+ images in the batch.
+ bg_label: label index of background class.
+
+ Returns:
+ list[Instances]: N Instances, each contains only the selected foreground instances.
+ list[Tensor]: N boolean vector, correspond to the selection mask of
+ each Instances object. True for selected instances.
+ """
+ assert isinstance(proposals, (list, tuple))
+ assert isinstance(proposals[0], Instances)
+ assert proposals[0].has("gt_classes")
+ fg_proposals = []
+ fg_selection_masks = []
+ for proposals_per_image in proposals:
+ gt_classes = proposals_per_image.gt_classes
+ fg_selection_mask = (gt_classes != -1) & (gt_classes != bg_label)
+ fg_idxs = fg_selection_mask.nonzero().squeeze(1)
+ fg_proposals.append(proposals_per_image[fg_idxs])
+ fg_selection_masks.append(fg_selection_mask)
+ return fg_proposals, fg_selection_masks
+
+
+def select_proposals_with_visible_keypoints(proposals: List[Instances]) -> List[Instances]:
+ """
+ Args:
+ proposals (list[Instances]): a list of N Instances, where N is the
+ number of images.
+
+ Returns:
+ proposals: only contains proposals with at least one visible keypoint.
+
+ Note that this is still slightly different from Detectron.
+ In Detectron, proposals for training keypoint head are re-sampled from
+ all the proposals with IOU>threshold & >=1 visible keypoint.
+
+ Here, the proposals are first sampled from all proposals with
+ IOU>threshold, then proposals with no visible keypoint are filtered out.
+ This strategy seems to make no difference on Detectron and is easier to implement.
+ """
+ ret = []
+ all_num_fg = []
+ for proposals_per_image in proposals:
+ # If empty/unannotated image (hard negatives), skip filtering for train
+ if len(proposals_per_image) == 0:
+ ret.append(proposals_per_image)
+ continue
+ gt_keypoints = proposals_per_image.gt_keypoints.tensor
+ # #fg x K x 3
+ vis_mask = gt_keypoints[:, :, 2] >= 1
+ xs, ys = gt_keypoints[:, :, 0], gt_keypoints[:, :, 1]
+ proposal_boxes = proposals_per_image.proposal_boxes.tensor.unsqueeze(dim=1) # #fg x 1 x 4
+ kp_in_box = (
+ (xs >= proposal_boxes[:, :, 0])
+ & (xs <= proposal_boxes[:, :, 2])
+ & (ys >= proposal_boxes[:, :, 1])
+ & (ys <= proposal_boxes[:, :, 3])
+ )
+ selection = (kp_in_box & vis_mask).any(dim=1)
+ selection_idxs = nonzero_tuple(selection)[0]
+ all_num_fg.append(selection_idxs.numel())
+ ret.append(proposals_per_image[selection_idxs])
+
+ storage = get_event_storage()
+ storage.put_scalar("keypoint_head/num_fg_samples", np.mean(all_num_fg))
+ return ret
+
+
+class ROIHeads(torch.nn.Module):
+ """
+ ROIHeads perform all per-region computation in an R-CNN.
+
+ It typically contains logic to
+
+ 1. (in training only) match proposals with ground truth and sample them
+ 2. crop the regions and extract per-region features using proposals
+ 3. make per-region predictions with different heads
+
+ It can have many variants, implemented as subclasses of this class.
+ This base class contains the logic to match/sample proposals.
+ But it is not necessary to inherit this class if the sampling logic is not needed.
+ """
+
+ @configurable
+ def __init__(
+ self,
+ *,
+ num_classes,
+ batch_size_per_image,
+ positive_fraction,
+ proposal_matcher,
+ proposal_append_gt=True,
+ ):
+ """
+ NOTE: this interface is experimental.
+
+ Args:
+ num_classes (int): number of foreground classes (i.e. background is not included)
+ batch_size_per_image (int): number of proposals to sample for training
+ positive_fraction (float): fraction of positive (foreground) proposals
+ to sample for training.
+ proposal_matcher (Matcher): matcher that matches proposals and ground truth
+ proposal_append_gt (bool): whether to include ground truth as proposals as well
+ """
+ super().__init__()
+ self.batch_size_per_image = batch_size_per_image
+ self.positive_fraction = positive_fraction
+ self.num_classes = num_classes
+ self.proposal_matcher = proposal_matcher
+ self.proposal_append_gt = proposal_append_gt
+
+ @classmethod
+ def from_config(cls, cfg):
+ return {
+ "batch_size_per_image": cfg.MODEL.ROI_HEADS.BATCH_SIZE_PER_IMAGE,
+ "positive_fraction": cfg.MODEL.ROI_HEADS.POSITIVE_FRACTION,
+ "num_classes": cfg.MODEL.ROI_HEADS.NUM_CLASSES,
+ "proposal_append_gt": cfg.MODEL.ROI_HEADS.PROPOSAL_APPEND_GT,
+ # Matcher to assign box proposals to gt boxes
+ "proposal_matcher": Matcher(
+ cfg.MODEL.ROI_HEADS.IOU_THRESHOLDS,
+ cfg.MODEL.ROI_HEADS.IOU_LABELS,
+ allow_low_quality_matches=False,
+ ),
+ }
+
+ def _sample_proposals(
+ self, matched_idxs: torch.Tensor, matched_labels: torch.Tensor, gt_classes: torch.Tensor
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """
+ Based on the matching between N proposals and M groundtruth,
+ sample the proposals and set their classification labels.
+
+ Args:
+ matched_idxs (Tensor): a vector of length N, each is the best-matched
+ gt index in [0, M) for each proposal.
+ matched_labels (Tensor): a vector of length N, the matcher's label
+ (one of cfg.MODEL.ROI_HEADS.IOU_LABELS) for each proposal.
+ gt_classes (Tensor): a vector of length M.
+
+ Returns:
+ Tensor: a vector of indices of sampled proposals. Each is in [0, N).
+ Tensor: a vector of the same length, the classification label for
+ each sampled proposal. Each sample is labeled as either a category in
+ [0, num_classes) or the background (num_classes).
+ """
+ has_gt = gt_classes.numel() > 0
+ # Get the corresponding GT for each proposal
+ if has_gt:
+ gt_classes = gt_classes[matched_idxs]
+ # Label unmatched proposals (0 label from matcher) as background (label=num_classes)
+ gt_classes[matched_labels == 0] = self.num_classes
+ # Label ignore proposals (-1 label)
+ gt_classes[matched_labels == -1] = -1
+ else:
+ gt_classes = torch.zeros_like(matched_idxs) + self.num_classes
+
+ sampled_fg_idxs, sampled_bg_idxs = subsample_labels(
+ gt_classes, self.batch_size_per_image, self.positive_fraction, self.num_classes
+ )
+
+ sampled_idxs = torch.cat([sampled_fg_idxs, sampled_bg_idxs], dim=0)
+ return sampled_idxs, gt_classes[sampled_idxs]
+
+ @torch.no_grad()
+ def label_and_sample_proposals(
+ self, proposals: List[Instances], targets: List[Instances]
+ ) -> List[Instances]:
+ """
+ Prepare some proposals to be used to train the ROI heads.
+ It performs box matching between `proposals` and `targets`, and assigns
+ training labels to the proposals.
+ It returns ``self.batch_size_per_image`` random samples from proposals and groundtruth
+ boxes, with a fraction of positives that is no larger than
+ ``self.positive_fraction``.
+
+ Args:
+ See :meth:`ROIHeads.forward`
+
+ Returns:
+ list[Instances]:
+ length `N` list of `Instances`s containing the proposals
+ sampled for training. Each `Instances` has the following fields:
+
+ - proposal_boxes: the proposal boxes
+ - gt_boxes: the ground-truth box that the proposal is assigned to
+ (this is only meaningful if the proposal has a label > 0; if label = 0
+ then the ground-truth box is random)
+
+ Other fields such as "gt_classes", "gt_masks", that's included in `targets`.
+ """
+ # Augment proposals with ground-truth boxes.
+ # In the case of learned proposals (e.g., RPN), when training starts
+ # the proposals will be low quality due to random initialization.
+ # It's possible that none of these initial
+ # proposals have high enough overlap with the gt objects to be used
+ # as positive examples for the second stage components (box head,
+ # cls head, mask head). Adding the gt boxes to the set of proposals
+ # ensures that the second stage components will have some positive
+ # examples from the start of training. For RPN, this augmentation improves
+ # convergence and empirically improves box AP on COCO by about 0.5
+ # points (under one tested configuration).
+ if self.proposal_append_gt:
+ proposals = add_ground_truth_to_proposals(targets, proposals)
+
+ proposals_with_gt = []
+
+ num_fg_samples = []
+ num_bg_samples = []
+ for proposals_per_image, targets_per_image in zip(proposals, targets):
+ has_gt = len(targets_per_image) > 0
+ match_quality_matrix = pairwise_iou(
+ targets_per_image.gt_boxes, proposals_per_image.proposal_boxes
+ )
+ matched_idxs, matched_labels = self.proposal_matcher(match_quality_matrix)
+ sampled_idxs, gt_classes = self._sample_proposals(
+ matched_idxs, matched_labels, targets_per_image.gt_classes
+ )
+
+ # Set target attributes of the sampled proposals:
+ proposals_per_image = proposals_per_image[sampled_idxs]
+ proposals_per_image.gt_classes = gt_classes
+
+ if has_gt:
+ sampled_targets = matched_idxs[sampled_idxs]
+ # We index all the attributes of targets that start with "gt_"
+ # and have not been added to proposals yet (="gt_classes").
+ # NOTE: here the indexing waste some compute, because heads
+ # like masks, keypoints, etc, will filter the proposals again,
+ # (by foreground/background, or number of keypoints in the image, etc)
+ # so we essentially index the data twice.
+ for (trg_name, trg_value) in targets_per_image.get_fields().items():
+ if trg_name.startswith("gt_") and not proposals_per_image.has(trg_name):
+ proposals_per_image.set(trg_name, trg_value[sampled_targets])
+ # If no GT is given in the image, we don't know what a dummy gt value can be.
+ # Therefore the returned proposals won't have any gt_* fields, except for a
+ # gt_classes full of background label.
+
+ num_bg_samples.append((gt_classes == self.num_classes).sum().item())
+ num_fg_samples.append(gt_classes.numel() - num_bg_samples[-1])
+ proposals_with_gt.append(proposals_per_image)
+
+ # Log the number of fg/bg samples that are selected for training ROI heads
+ storage = get_event_storage()
+ storage.put_scalar("roi_head/num_fg_samples", np.mean(num_fg_samples))
+ storage.put_scalar("roi_head/num_bg_samples", np.mean(num_bg_samples))
+
+ return proposals_with_gt
+
+ def forward(
+ self,
+ images: ImageList,
+ features: Dict[str, torch.Tensor],
+ proposals: List[Instances],
+ targets: Optional[List[Instances]] = None,
+ ) -> Tuple[List[Instances], Dict[str, torch.Tensor]]:
+ """
+ Args:
+ images (ImageList):
+ features (dict[str,Tensor]): input data as a mapping from feature
+ map name to tensor. Axis 0 represents the number of images `N` in
+ the input data; axes 1-3 are channels, height, and width, which may
+ vary between feature maps (e.g., if a feature pyramid is used).
+ proposals (list[Instances]): length `N` list of `Instances`. The i-th
+ `Instances` contains object proposals for the i-th input image,
+ with fields "proposal_boxes" and "objectness_logits".
+ targets (list[Instances], optional): length `N` list of `Instances`. The i-th
+ `Instances` contains the ground-truth per-instance annotations
+ for the i-th input image. Specify `targets` during training only.
+ It may have the following fields:
+
+ - gt_boxes: the bounding box of each instance.
+ - gt_classes: the label for each instance with a category ranging in [0, #class].
+ - gt_masks: PolygonMasks or BitMasks, the ground-truth masks of each instance.
+ - gt_keypoints: NxKx3, the groud-truth keypoints for each instance.
+
+ Returns:
+ list[Instances]: length `N` list of `Instances` containing the
+ detected instances. Returned during inference only; may be [] during training.
+
+ dict[str->Tensor]:
+ mapping from a named loss to a tensor storing the loss. Used during training only.
+ """
+ raise NotImplementedError()
+
+
+@ROI_HEADS_REGISTRY.register()
+class Res5ROIHeads(ROIHeads):
+ """
+ The ROIHeads in a typical "C4" R-CNN model, where
+ the box and mask head share the cropping and
+ the per-region feature computation by a Res5 block.
+ See :paper:`ResNet` Appendix A.
+ """
+
+ @configurable
+ def __init__(
+ self,
+ *,
+ in_features: List[str],
+ pooler: ROIPooler,
+ res5: nn.Module,
+ box_predictor: nn.Module,
+ mask_head: Optional[nn.Module] = None,
+ **kwargs,
+ ):
+ """
+ NOTE: this interface is experimental.
+
+ Args:
+ in_features (list[str]): list of backbone feature map names to use for
+ feature extraction
+ pooler (ROIPooler): pooler to extra region features from backbone
+ res5 (nn.Sequential): a CNN to compute per-region features, to be used by
+ ``box_predictor`` and ``mask_head``. Typically this is a "res5"
+ block from a ResNet.
+ box_predictor (nn.Module): make box predictions from the feature.
+ Should have the same interface as :class:`FastRCNNOutputLayers`.
+ mask_head (nn.Module): transform features to make mask predictions
+ """
+ super().__init__(**kwargs)
+ self.in_features = in_features
+ self.pooler = pooler
+ if isinstance(res5, (list, tuple)):
+ res5 = nn.Sequential(*res5)
+ self.res5 = res5
+ self.box_predictor = box_predictor
+ self.mask_on = mask_head is not None
+ if self.mask_on:
+ self.mask_head = mask_head
+
+ @classmethod
+ def from_config(cls, cfg, input_shape):
+ # fmt: off
+ ret = super().from_config(cfg)
+ in_features = ret["in_features"] = cfg.MODEL.ROI_HEADS.IN_FEATURES
+ pooler_resolution = cfg.MODEL.ROI_BOX_HEAD.POOLER_RESOLUTION
+ pooler_type = cfg.MODEL.ROI_BOX_HEAD.POOLER_TYPE
+ pooler_scales = (1.0 / input_shape[in_features[0]].stride, )
+ sampling_ratio = cfg.MODEL.ROI_BOX_HEAD.POOLER_SAMPLING_RATIO
+ mask_on = cfg.MODEL.MASK_ON
+ # fmt: on
+ assert not cfg.MODEL.KEYPOINT_ON
+ assert len(in_features) == 1
+
+ ret["pooler"] = ROIPooler(
+ output_size=pooler_resolution,
+ scales=pooler_scales,
+ sampling_ratio=sampling_ratio,
+ pooler_type=pooler_type,
+ )
+
+ # Compatbility with old moco code. Might be useful.
+ # See notes in StandardROIHeads.from_config
+ if not inspect.ismethod(cls._build_res5_block):
+ logger.warning(
+ "The behavior of _build_res5_block may change. "
+ "Please do not depend on private methods."
+ )
+ cls._build_res5_block = classmethod(cls._build_res5_block)
+
+ ret["res5"], out_channels = cls._build_res5_block(cfg)
+ ret["box_predictor"] = FastRCNNOutputLayers(
+ cfg, ShapeSpec(channels=out_channels, height=1, width=1)
+ )
+
+ if mask_on:
+ ret["mask_head"] = build_mask_head(
+ cfg,
+ ShapeSpec(channels=out_channels, width=pooler_resolution, height=pooler_resolution),
+ )
+ return ret
+
+ @classmethod
+ def _build_res5_block(cls, cfg):
+ # fmt: off
+ stage_channel_factor = 2 ** 3 # res5 is 8x res2
+ num_groups = cfg.MODEL.RESNETS.NUM_GROUPS
+ width_per_group = cfg.MODEL.RESNETS.WIDTH_PER_GROUP
+ bottleneck_channels = num_groups * width_per_group * stage_channel_factor
+ out_channels = cfg.MODEL.RESNETS.RES2_OUT_CHANNELS * stage_channel_factor
+ stride_in_1x1 = cfg.MODEL.RESNETS.STRIDE_IN_1X1
+ norm = cfg.MODEL.RESNETS.NORM
+ assert not cfg.MODEL.RESNETS.DEFORM_ON_PER_STAGE[-1], \
+ "Deformable conv is not yet supported in res5 head."
+ # fmt: on
+
+ blocks = ResNet.make_stage(
+ BottleneckBlock,
+ 3,
+ stride_per_block=[2, 1, 1],
+ in_channels=out_channels // 2,
+ bottleneck_channels=bottleneck_channels,
+ out_channels=out_channels,
+ num_groups=num_groups,
+ norm=norm,
+ stride_in_1x1=stride_in_1x1,
+ )
+ return nn.Sequential(*blocks), out_channels
+
+ def _shared_roi_transform(self, features: List[torch.Tensor], boxes: List[Boxes]):
+ x = self.pooler(features, boxes)
+ return self.res5(x)
+
+ def forward(
+ self,
+ images: ImageList,
+ features: Dict[str, torch.Tensor],
+ proposals: List[Instances],
+ targets: Optional[List[Instances]] = None,
+ ):
+ """
+ See :meth:`ROIHeads.forward`.
+ """
+ del images
+
+ if self.training:
+ assert targets
+ proposals = self.label_and_sample_proposals(proposals, targets)
+ del targets
+
+ proposal_boxes = [x.proposal_boxes for x in proposals]
+ box_features = self._shared_roi_transform(
+ [features[f] for f in self.in_features], proposal_boxes
+ )
+ predictions = self.box_predictor(box_features.mean(dim=[2, 3]))
+
+ if self.training:
+ del features
+ losses = self.box_predictor.losses(predictions, proposals)
+ if self.mask_on:
+ proposals, fg_selection_masks = select_foreground_proposals(
+ proposals, self.num_classes
+ )
+ # Since the ROI feature transform is shared between boxes and masks,
+ # we don't need to recompute features. The mask loss is only defined
+ # on foreground proposals, so we need to select out the foreground
+ # features.
+ mask_features = box_features[torch.cat(fg_selection_masks, dim=0)]
+ del box_features
+ losses.update(self.mask_head(mask_features, proposals))
+ return [], losses
+ else:
+ pred_instances, _ = self.box_predictor.inference(predictions, proposals)
+ pred_instances = self.forward_with_given_boxes(features, pred_instances)
+ return pred_instances, {}
+
+ def forward_with_given_boxes(
+ self, features: Dict[str, torch.Tensor], instances: List[Instances]
+ ) -> List[Instances]:
+ """
+ Use the given boxes in `instances` to produce other (non-box) per-ROI outputs.
+
+ Args:
+ features: same as in `forward()`
+ instances (list[Instances]): instances to predict other outputs. Expect the keys
+ "pred_boxes" and "pred_classes" to exist.
+
+ Returns:
+ instances (Instances):
+ the same `Instances` object, with extra
+ fields such as `pred_masks` or `pred_keypoints`.
+ """
+ assert not self.training
+ assert instances[0].has("pred_boxes") and instances[0].has("pred_classes")
+
+ if self.mask_on:
+ feature_list = [features[f] for f in self.in_features]
+ x = self._shared_roi_transform(feature_list, [x.pred_boxes for x in instances])
+ return self.mask_head(x, instances)
+ else:
+ return instances
+
+
+@ROI_HEADS_REGISTRY.register()
+class CustomStandardROIHeads(ROIHeads):
+ """
+ It's "standard" in a sense that there is no ROI transform sharing
+ or feature sharing between tasks.
+ Each head independently processes the input features by each head's
+ own pooler and head.
+
+ This class is used by most models, such as FPN and C5.
+ To implement more models, you can subclass it and implement a different
+ :meth:`forward()` or a head.
+ """
+
+ @configurable
+ def __init__(
+ self,
+ *,
+ box_in_features: List[str],
+ box_pooler: ROIPooler,
+ box_head: nn.Module,
+ box_predictor: nn.Module,
+ mask_in_features: Optional[List[str]] = None,
+ mask_pooler: Optional[ROIPooler] = None,
+ mask_head: Optional[nn.Module] = None,
+ keypoint_in_features: Optional[List[str]] = None,
+ keypoint_pooler: Optional[ROIPooler] = None,
+ keypoint_head: Optional[nn.Module] = None,
+ train_on_pred_boxes: bool = False,
+ box2box_transform = Box2BoxTransform,
+ use_droploss: bool = False,
+ droploss_iou_thresh: float = 1.0,
+ **kwargs,
+ ):
+ """
+ NOTE: this interface is experimental.
+
+ Args:
+ box_in_features (list[str]): list of feature names to use for the box head.
+ box_pooler (ROIPooler): pooler to extra region features for box head
+ box_head (nn.Module): transform features to make box predictions
+ box_predictor (nn.Module): make box predictions from the feature.
+ Should have the same interface as :class:`FastRCNNOutputLayers`.
+ mask_in_features (list[str]): list of feature names to use for the mask
+ pooler or mask head. None if not using mask head.
+ mask_pooler (ROIPooler): pooler to extract region features from image features.
+ The mask head will then take region features to make predictions.
+ If None, the mask head will directly take the dict of image features
+ defined by `mask_in_features`
+ mask_head (nn.Module): transform features to make mask predictions
+ keypoint_in_features, keypoint_pooler, keypoint_head: similar to ``mask_*``.
+ train_on_pred_boxes (bool): whether to use proposal boxes or
+ predicted boxes from the box head to train other heads.
+ """
+ super().__init__(**kwargs)
+ # keep self.in_features for backward compatibility
+ self.in_features = self.box_in_features = box_in_features
+ self.box_pooler = box_pooler
+ self.box_head = box_head
+ self.box_predictor = box_predictor
+
+ self.mask_on = mask_in_features is not None
+ if self.mask_on:
+ self.mask_in_features = mask_in_features
+ self.mask_pooler = mask_pooler
+ self.mask_head = mask_head
+
+ self.keypoint_on = keypoint_in_features is not None
+ if self.keypoint_on:
+ self.keypoint_in_features = keypoint_in_features
+ self.keypoint_pooler = keypoint_pooler
+ self.keypoint_head = keypoint_head
+
+ self.train_on_pred_boxes = train_on_pred_boxes
+ self.use_droploss = use_droploss
+ self.box2box_transform = box2box_transform
+ self.droploss_iou_thresh = droploss_iou_thresh
+
+ @classmethod
+ def from_config(cls, cfg, input_shape):
+ ret = super().from_config(cfg)
+ ret["train_on_pred_boxes"] = cfg.MODEL.ROI_BOX_HEAD.TRAIN_ON_PRED_BOXES
+ # Subclasses that have not been updated to use from_config style construction
+ # may have overridden _init_*_head methods. In this case, those overridden methods
+ # will not be classmethods and we need to avoid trying to call them here.
+ # We test for this with ismethod which only returns True for bound methods of cls.
+ # Such subclasses will need to handle calling their overridden _init_*_head methods.
+ if cfg.MODEL.ROI_HEADS.USE_DROPLOSS:
+ ret['use_droploss'] = True
+ ret['droploss_iou_thresh'] = cfg.MODEL.ROI_HEADS.DROPLOSS_IOU_THRESH
+ ret['box2box_transform'] = Box2BoxTransform(weights=cfg.MODEL.ROI_BOX_HEAD.BBOX_REG_WEIGHTS)
+ if inspect.ismethod(cls._init_box_head):
+ ret.update(cls._init_box_head(cfg, input_shape))
+ if inspect.ismethod(cls._init_mask_head):
+ ret.update(cls._init_mask_head(cfg, input_shape))
+ if inspect.ismethod(cls._init_keypoint_head):
+ ret.update(cls._init_keypoint_head(cfg, input_shape))
+ return ret
+
+ @classmethod
+ def _init_box_head(cls, cfg, input_shape):
+ # fmt: off
+ in_features = cfg.MODEL.ROI_HEADS.IN_FEATURES
+ pooler_resolution = cfg.MODEL.ROI_BOX_HEAD.POOLER_RESOLUTION
+ pooler_scales = tuple(1.0 / input_shape[k].stride for k in in_features)
+ sampling_ratio = cfg.MODEL.ROI_BOX_HEAD.POOLER_SAMPLING_RATIO
+ pooler_type = cfg.MODEL.ROI_BOX_HEAD.POOLER_TYPE
+ # fmt: on
+
+ # If CustomStandardROIHeads is applied on multiple feature maps (as in FPN),
+ # then we share the same predictors and therefore the channel counts must be the same
+ in_channels = [input_shape[f].channels for f in in_features]
+ # Check all channel counts are equal
+ assert len(set(in_channels)) == 1, in_channels
+ in_channels = in_channels[0]
+
+ box_pooler = ROIPooler(
+ output_size=pooler_resolution,
+ scales=pooler_scales,
+ sampling_ratio=sampling_ratio,
+ pooler_type=pooler_type,
+ )
+ # Here we split "box head" and "box predictor", which is mainly due to historical reasons.
+ # They are used together so the "box predictor" layers should be part of the "box head".
+ # New subclasses of ROIHeads do not need "box predictor"s.
+ box_head = build_box_head(
+ cfg, ShapeSpec(channels=in_channels, height=pooler_resolution, width=pooler_resolution)
+ )
+ box_predictor = FastRCNNOutputLayers(cfg, box_head.output_shape)
+ return {
+ "box_in_features": in_features,
+ "box_pooler": box_pooler,
+ "box_head": box_head,
+ "box_predictor": box_predictor,
+ }
+
+ @classmethod
+ def _init_mask_head(cls, cfg, input_shape):
+ if not cfg.MODEL.MASK_ON:
+ return {}
+ # fmt: off
+ in_features = cfg.MODEL.ROI_HEADS.IN_FEATURES
+ pooler_resolution = cfg.MODEL.ROI_MASK_HEAD.POOLER_RESOLUTION
+ pooler_scales = tuple(1.0 / input_shape[k].stride for k in in_features)
+ sampling_ratio = cfg.MODEL.ROI_MASK_HEAD.POOLER_SAMPLING_RATIO
+ pooler_type = cfg.MODEL.ROI_MASK_HEAD.POOLER_TYPE
+ # fmt: on
+
+ in_channels = [input_shape[f].channels for f in in_features][0]
+
+ ret = {"mask_in_features": in_features}
+ ret["mask_pooler"] = (
+ ROIPooler(
+ output_size=pooler_resolution,
+ scales=pooler_scales,
+ sampling_ratio=sampling_ratio,
+ pooler_type=pooler_type,
+ )
+ if pooler_type
+ else None
+ )
+ if pooler_type:
+ shape = ShapeSpec(
+ channels=in_channels, width=pooler_resolution, height=pooler_resolution
+ )
+ else:
+ shape = {f: input_shape[f] for f in in_features}
+ ret["mask_head"] = build_mask_head(cfg, shape)
+ return ret
+
+ @classmethod
+ def _init_keypoint_head(cls, cfg, input_shape):
+ if not cfg.MODEL.KEYPOINT_ON:
+ return {}
+ # fmt: off
+ in_features = cfg.MODEL.ROI_HEADS.IN_FEATURES
+ pooler_resolution = cfg.MODEL.ROI_KEYPOINT_HEAD.POOLER_RESOLUTION
+ pooler_scales = tuple(1.0 / input_shape[k].stride for k in in_features) # noqa
+ sampling_ratio = cfg.MODEL.ROI_KEYPOINT_HEAD.POOLER_SAMPLING_RATIO
+ pooler_type = cfg.MODEL.ROI_KEYPOINT_HEAD.POOLER_TYPE
+ # fmt: on
+
+ in_channels = [input_shape[f].channels for f in in_features][0]
+
+ ret = {"keypoint_in_features": in_features}
+ ret["keypoint_pooler"] = (
+ ROIPooler(
+ output_size=pooler_resolution,
+ scales=pooler_scales,
+ sampling_ratio=sampling_ratio,
+ pooler_type=pooler_type,
+ )
+ if pooler_type
+ else None
+ )
+ if pooler_type:
+ shape = ShapeSpec(
+ channels=in_channels, width=pooler_resolution, height=pooler_resolution
+ )
+ else:
+ shape = {f: input_shape[f] for f in in_features}
+ ret["keypoint_head"] = build_keypoint_head(cfg, shape)
+ return ret
+
+ def forward(
+ self,
+ images: ImageList,
+ features: Dict[str, torch.Tensor],
+ proposals: List[Instances],
+ targets: Optional[List[Instances]] = None,
+ ) -> Tuple[List[Instances], Dict[str, torch.Tensor]]:
+ """
+ See :class:`ROIHeads.forward`.
+ """
+ del images
+ if self.training:
+ assert targets, "'targets' argument is required during training"
+ proposals = self.label_and_sample_proposals(proposals, targets)
+ del targets
+
+ if self.training:
+ losses = self._forward_box(features, proposals)
+ # Usually the original proposals used by the box head are used by the mask, keypoint
+ # heads. But when `self.train_on_pred_boxes is True`, proposals will contain boxes
+ # predicted by the box head.
+ losses.update(self._forward_mask(features, proposals))
+ losses.update(self._forward_keypoint(features, proposals))
+ return proposals, losses
+ else:
+ pred_instances = self._forward_box(features, proposals)
+ # During inference cascaded prediction is used: the mask and keypoints heads are only
+ # applied to the top scoring box detections.
+ pred_instances = self.forward_with_given_boxes(features, pred_instances)
+ return pred_instances, {}
+
+ def forward_with_given_boxes(
+ self, features: Dict[str, torch.Tensor], instances: List[Instances]
+ ) -> List[Instances]:
+ """
+ Use the given boxes in `instances` to produce other (non-box) per-ROI outputs.
+
+ This is useful for downstream tasks where a box is known, but need to obtain
+ other attributes (outputs of other heads).
+ Test-time augmentation also uses this.
+
+ Args:
+ features: same as in `forward()`
+ instances (list[Instances]): instances to predict other outputs. Expect the keys
+ "pred_boxes" and "pred_classes" to exist.
+
+ Returns:
+ list[Instances]:
+ the same `Instances` objects, with extra
+ fields such as `pred_masks` or `pred_keypoints`.
+ """
+ assert not self.training
+ assert instances[0].has("pred_boxes") and instances[0].has("pred_classes")
+
+ instances = self._forward_mask(features, instances)
+ instances = self._forward_keypoint(features, instances)
+ return instances
+
+ def _forward_box(self, features: Dict[str, torch.Tensor], proposals: List[Instances]):
+ """
+ Forward logic of the box prediction branch. If `self.train_on_pred_boxes is True`,
+ the function puts predicted boxes in the `proposal_boxes` field of `proposals` argument.
+
+ Args:
+ features (dict[str, Tensor]): mapping from feature map names to tensor.
+ Same as in :meth:`ROIHeads.forward`.
+ proposals (list[Instances]): the per-image object proposals with
+ their matching ground truth.
+ Each has fields "proposal_boxes", and "objectness_logits",
+ "gt_classes", "gt_boxes".
+
+ Returns:
+ In training, a dict of losses.
+ In inference, a list of `Instances`, the predicted instances.
+ """
+ features = [features[f] for f in self.box_in_features]
+ box_features = self.box_pooler(features, [x.proposal_boxes for x in proposals]) # torch.Size([512 * batch_size, 256, 7, 7])
+ box_features = self.box_head(box_features) # torch.Size([512 * batch_size, 1024])
+ predictions = self.box_predictor(box_features) # [torch.Size([512 * batch_size, 2]), torch.Size([512 * batch_size, 4])]
+
+ no_gt_found = False
+ if self.use_droploss and self.training:
+ # the first K proposals are GT proposals
+ try:
+ box_num_list = [len(x.gt_boxes) for x in proposals]
+ gt_num_list = [torch.unique(x.gt_boxes.tensor[:100], dim=0).size()[0] for x in proposals]
+ except:
+ box_num_list = [0 for _ in proposals]
+ gt_num_list = [0 for _ in proposals]
+ no_gt_found = True
+
+ if self.use_droploss and self.training and not no_gt_found:
+ # NOTE: maximum overlapping with GT (IoU)
+ predictions_delta = predictions[1]
+ proposal_boxes = Boxes.cat([x.proposal_boxes for x in proposals])
+ predictions_bbox = self.box2box_transform.apply_deltas(predictions_delta, proposal_boxes.tensor)
+ idx_start = 0
+ iou_max_list = []
+ for idx, x in enumerate(proposals):
+ idx_end = idx_start + box_num_list[idx]
+ iou_max_list.append(pairwise_iou_max_scores(predictions_bbox[idx_start:idx_end], x.gt_boxes[:gt_num_list[idx]].tensor))
+ idx_start = idx_end
+ iou_max = torch.cat(iou_max_list, dim=0)
+
+ del box_features
+
+ if self.training:
+ if self.use_droploss and not no_gt_found:
+ weights = iou_max.le(self.droploss_iou_thresh).float()
+ weights = 1 - weights.ge(1.0).float()
+ losses = self.box_predictor.losses(predictions, proposals, weights=weights.detach())
+ else:
+ losses = self.box_predictor.losses(predictions, proposals)
+ if self.train_on_pred_boxes: # default is false
+ with torch.no_grad():
+ pred_boxes = self.box_predictor.predict_boxes_for_gt_classes(
+ predictions, proposals
+ )
+ for proposals_per_image, pred_boxes_per_image in zip(proposals, pred_boxes):
+ proposals_per_image.proposal_boxes = Boxes(pred_boxes_per_image)
+ return losses
+ else:
+ pred_instances, _ = self.box_predictor.inference(predictions, proposals)
+ return pred_instances
+
+ def _forward_mask(self, features: Dict[str, torch.Tensor], instances: List[Instances]):
+ """
+ Forward logic of the mask prediction branch.
+
+ Args:
+ features (dict[str, Tensor]): mapping from feature map names to tensor.
+ Same as in :meth:`ROIHeads.forward`.
+ instances (list[Instances]): the per-image instances to train/predict masks.
+ In training, they can be the proposals.
+ In inference, they can be the boxes predicted by R-CNN box head.
+
+ Returns:
+ In training, a dict of losses.
+ In inference, update `instances` with new fields "pred_masks" and return it.
+ """
+ if not self.mask_on:
+ return {} if self.training else instances
+
+ if self.training:
+ # head is only trained on positive proposals.
+ instances, _ = select_foreground_proposals(instances, self.num_classes)
+
+ if self.mask_pooler is not None:
+ features = [features[f] for f in self.mask_in_features]
+ boxes = [x.proposal_boxes if self.training else x.pred_boxes for x in instances]
+ features = self.mask_pooler(features, boxes)
+ else:
+ features = {f: features[f] for f in self.mask_in_features}
+ return self.mask_head(features, instances)
+
+ def _forward_keypoint(self, features: Dict[str, torch.Tensor], instances: List[Instances]):
+ """
+ Forward logic of the keypoint prediction branch.
+
+ Args:
+ features (dict[str, Tensor]): mapping from feature map names to tensor.
+ Same as in :meth:`ROIHeads.forward`.
+ instances (list[Instances]): the per-image instances to train/predict keypoints.
+ In training, they can be the proposals.
+ In inference, they can be the boxes predicted by R-CNN box head.
+
+ Returns:
+ In training, a dict of losses.
+ In inference, update `instances` with new fields "pred_keypoints" and return it.
+ """
+ if not self.keypoint_on:
+ return {} if self.training else instances
+
+ if self.training:
+ # head is only trained on positive proposals with >=1 visible keypoints.
+ instances, _ = select_foreground_proposals(instances, self.num_classes)
+ instances = select_proposals_with_visible_keypoints(instances)
+
+ if self.keypoint_pooler is not None:
+ features = [features[f] for f in self.keypoint_in_features]
+ boxes = [x.proposal_boxes if self.training else x.pred_boxes for x in instances]
+ features = self.keypoint_pooler(features, boxes)
+ else:
+ features = {f: features[f] for f in self.keypoint_in_features}
+ return self.keypoint_head(features, instances)
diff --git a/cutler/solver/__init__.py b/cutler/solver/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..a564c0b26b0f23cc8dd5dc7397b4ea376467927a
--- /dev/null
+++ b/cutler/solver/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from .build import build_lr_scheduler, build_optimizer, get_default_optimizer_params
+
+__all__ = [k for k in globals().keys() if not k.startswith("_")]
diff --git a/cutler/solver/build.py b/cutler/solver/build.py
new file mode 100644
index 0000000000000000000000000000000000000000..4d49a2afe23cb035c0107553ed69b04a8412ffe6
--- /dev/null
+++ b/cutler/solver/build.py
@@ -0,0 +1,305 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/solver/build.py
+
+import copy
+import itertools
+import logging
+from collections import defaultdict
+from enum import Enum
+from typing import Any, Callable, Dict, Iterable, List, Optional, Set, Type, Union
+import torch
+from fvcore.common.param_scheduler import CosineParamScheduler, MultiStepParamScheduler
+
+from detectron2.config import CfgNode
+
+from detectron2.solver.lr_scheduler import LRMultiplier, WarmupParamScheduler
+
+_GradientClipperInput = Union[torch.Tensor, Iterable[torch.Tensor]]
+_GradientClipper = Callable[[_GradientClipperInput], None]
+
+
+class GradientClipType(Enum):
+ VALUE = "value"
+ NORM = "norm"
+
+
+def _create_gradient_clipper(cfg: CfgNode) -> _GradientClipper:
+ """
+ Creates gradient clipping closure to clip by value or by norm,
+ according to the provided config.
+ """
+ cfg = copy.deepcopy(cfg)
+
+ def clip_grad_norm(p: _GradientClipperInput):
+ torch.nn.utils.clip_grad_norm_(p, cfg.CLIP_VALUE, cfg.NORM_TYPE)
+
+ def clip_grad_value(p: _GradientClipperInput):
+ torch.nn.utils.clip_grad_value_(p, cfg.CLIP_VALUE)
+
+ _GRADIENT_CLIP_TYPE_TO_CLIPPER = {
+ GradientClipType.VALUE: clip_grad_value,
+ GradientClipType.NORM: clip_grad_norm,
+ }
+ return _GRADIENT_CLIP_TYPE_TO_CLIPPER[GradientClipType(cfg.CLIP_TYPE)]
+
+
+def _generate_optimizer_class_with_gradient_clipping(
+ optimizer: Type[torch.optim.Optimizer],
+ *,
+ per_param_clipper: Optional[_GradientClipper] = None,
+ global_clipper: Optional[_GradientClipper] = None,
+) -> Type[torch.optim.Optimizer]:
+ """
+ Dynamically creates a new type that inherits the type of a given instance
+ and overrides the `step` method to add gradient clipping
+ """
+ assert (
+ per_param_clipper is None or global_clipper is None
+ ), "Not allowed to use both per-parameter clipping and global clipping"
+
+ def optimizer_wgc_step(self, closure=None):
+ if per_param_clipper is not None:
+ for group in self.param_groups:
+ for p in group["params"]:
+ per_param_clipper(p)
+ else:
+ # global clipper for future use with detr
+ # (https://github.com/facebookresearch/detr/pull/287)
+ all_params = itertools.chain(*[g["params"] for g in self.param_groups])
+ global_clipper(all_params)
+ super(type(self), self).step(closure)
+
+ OptimizerWithGradientClip = type(
+ optimizer.__name__ + "WithGradientClip",
+ (optimizer,),
+ {"step": optimizer_wgc_step},
+ )
+ return OptimizerWithGradientClip
+
+
+def maybe_add_gradient_clipping(
+ cfg: CfgNode, optimizer: Type[torch.optim.Optimizer]
+) -> Type[torch.optim.Optimizer]:
+ """
+ If gradient clipping is enabled through config options, wraps the existing
+ optimizer type to become a new dynamically created class OptimizerWithGradientClip
+ that inherits the given optimizer and overrides the `step` method to
+ include gradient clipping.
+
+ Args:
+ cfg: CfgNode, configuration options
+ optimizer: type. A subclass of torch.optim.Optimizer
+
+ Return:
+ type: either the input `optimizer` (if gradient clipping is disabled), or
+ a subclass of it with gradient clipping included in the `step` method.
+ """
+ if not cfg.SOLVER.CLIP_GRADIENTS.ENABLED:
+ return optimizer
+ if isinstance(optimizer, torch.optim.Optimizer):
+ optimizer_type = type(optimizer)
+ else:
+ assert issubclass(optimizer, torch.optim.Optimizer), optimizer
+ optimizer_type = optimizer
+
+ grad_clipper = _create_gradient_clipper(cfg.SOLVER.CLIP_GRADIENTS)
+ OptimizerWithGradientClip = _generate_optimizer_class_with_gradient_clipping(
+ optimizer_type, per_param_clipper=grad_clipper
+ )
+ if isinstance(optimizer, torch.optim.Optimizer):
+ optimizer.__class__ = OptimizerWithGradientClip # a bit hacky, not recommended
+ return optimizer
+ else:
+ return OptimizerWithGradientClip
+
+
+def build_optimizer(cfg: CfgNode, model: torch.nn.Module) -> torch.optim.Optimizer:
+ """
+ Build an optimizer from config.
+ """
+ params = get_default_optimizer_params(
+ model,
+ base_lr=cfg.SOLVER.BASE_LR,
+ base_lr_multiplier=cfg.SOLVER.BASE_LR_MULTIPLIER,
+ base_lr_multiplier_names=cfg.SOLVER.BASE_LR_MULTIPLIER_NAMES,
+ weight_decay_norm=cfg.SOLVER.WEIGHT_DECAY_NORM,
+ bias_lr_factor=cfg.SOLVER.BIAS_LR_FACTOR,
+ weight_decay_bias=cfg.SOLVER.WEIGHT_DECAY_BIAS,
+ )
+ return maybe_add_gradient_clipping(cfg, torch.optim.SGD)(
+ params,
+ lr=cfg.SOLVER.BASE_LR,
+ momentum=cfg.SOLVER.MOMENTUM,
+ nesterov=cfg.SOLVER.NESTEROV,
+ weight_decay=cfg.SOLVER.WEIGHT_DECAY,
+ )
+
+
+def get_default_optimizer_params(
+ model: torch.nn.Module,
+ base_lr: Optional[float] = None,
+ base_lr_multiplier: Optional[float] = 1.0,
+ base_lr_multiplier_names: Optional[List[str]] = [],
+ weight_decay: Optional[float] = None,
+ weight_decay_norm: Optional[float] = None,
+ bias_lr_factor: Optional[float] = 1.0,
+ weight_decay_bias: Optional[float] = None,
+ lr_factor_func: Optional[Callable] = None,
+ overrides: Optional[Dict[str, Dict[str, float]]] = None,
+) -> List[Dict[str, Any]]:
+ """
+ Get default param list for optimizer, with support for a few types of
+ overrides. If no overrides needed, this is equivalent to `model.parameters()`.
+
+ Args:
+ base_lr: lr for every group by default. Can be omitted to use the one in optimizer.
+ weight_decay: weight decay for every group by default. Can be omitted to use the one
+ in optimizer.
+ weight_decay_norm: override weight decay for params in normalization layers
+ bias_lr_factor: multiplier of lr for bias parameters.
+ weight_decay_bias: override weight decay for bias parameters.
+ lr_factor_func: function to calculate lr decay rate by mapping the parameter names to
+ corresponding lr decay rate. Note that setting this option requires
+ also setting ``base_lr``.
+ overrides: if not `None`, provides values for optimizer hyperparameters
+ (LR, weight decay) for module parameters with a given name; e.g.
+ ``{"embedding": {"lr": 0.01, "weight_decay": 0.1}}`` will set the LR and
+ weight decay values for all module parameters named `embedding`.
+
+ For common detection models, ``weight_decay_norm`` is the only option
+ needed to be set. ``bias_lr_factor,weight_decay_bias`` are legacy settings
+ from Detectron1 that are not found useful.
+
+ Example:
+ ::
+ torch.optim.SGD(get_default_optimizer_params(model, weight_decay_norm=0),
+ lr=0.01, weight_decay=1e-4, momentum=0.9)
+ """
+ if overrides is None:
+ overrides = {}
+ defaults = {}
+ if base_lr is not None:
+ defaults["lr"] = base_lr
+ if weight_decay is not None:
+ defaults["weight_decay"] = weight_decay
+ bias_overrides = {}
+ if bias_lr_factor is not None and bias_lr_factor != 1.0:
+ # NOTE: unlike Detectron v1, we now by default make bias hyperparameters
+ # exactly the same as regular weights.
+ if base_lr is None:
+ raise ValueError("bias_lr_factor requires base_lr")
+ bias_overrides["lr"] = base_lr * bias_lr_factor
+ if weight_decay_bias is not None:
+ bias_overrides["weight_decay"] = weight_decay_bias
+ if len(bias_overrides):
+ if "bias" in overrides:
+ raise ValueError("Conflicting overrides for 'bias'")
+ overrides["bias"] = bias_overrides
+ if lr_factor_func is not None:
+ if base_lr is None:
+ raise ValueError("lr_factor_func requires base_lr")
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ # NaiveSyncBatchNorm inherits from BatchNorm2d
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+ params: List[Dict[str, Any]] = []
+ memo: Set[torch.nn.parameter.Parameter] = set()
+ for module_name, module in model.named_modules():
+ for module_param_name, value in module.named_parameters(recurse=False):
+ if not value.requires_grad:
+ continue
+ # Avoid duplicating parameters
+ if value in memo:
+ continue
+ memo.add(value)
+
+ hyperparams = copy.copy(defaults)
+ if isinstance(module, norm_module_types) and weight_decay_norm is not None:
+ hyperparams["weight_decay"] = weight_decay_norm
+ if lr_factor_func is not None:
+ hyperparams["lr"] *= lr_factor_func(f"{module_name}.{module_param_name}")
+ hyperparams.update(overrides.get(module_param_name, {}))
+ if module_name in base_lr_multiplier_names:
+ hyperparams["lr"] *= base_lr_multiplier
+ # print(" Checked: ", module_name, hyperparams["lr"])
+
+ params.append({"params": [value], **hyperparams})
+ return reduce_param_groups(params)
+
+
+def _expand_param_groups(params: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
+ # Transform parameter groups into per-parameter structure.
+ # Later items in `params` can overwrite parameters set in previous items.
+ ret = defaultdict(dict)
+ for item in params:
+ assert "params" in item
+ cur_params = {x: y for x, y in item.items() if x != "params"}
+ for param in item["params"]:
+ ret[param].update({"params": [param], **cur_params})
+ return list(ret.values())
+
+
+def reduce_param_groups(params: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
+ # Reorganize the parameter groups and merge duplicated groups.
+ # The number of parameter groups needs to be as small as possible in order
+ # to efficiently use the PyTorch multi-tensor optimizer. Therefore instead
+ # of using a parameter_group per single parameter, we reorganize the
+ # parameter groups and merge duplicated groups. This approach speeds
+ # up multi-tensor optimizer significantly.
+ params = _expand_param_groups(params)
+ groups = defaultdict(list) # re-group all parameter groups by their hyperparams
+ for item in params:
+ cur_params = tuple((x, y) for x, y in item.items() if x != "params")
+ groups[cur_params].extend(item["params"])
+ ret = []
+ for param_keys, param_values in groups.items():
+ cur = {kv[0]: kv[1] for kv in param_keys}
+ cur["params"] = param_values
+ ret.append(cur)
+ return ret
+
+
+def build_lr_scheduler(
+ cfg: CfgNode, optimizer: torch.optim.Optimizer
+) -> torch.optim.lr_scheduler._LRScheduler:
+ """
+ Build a LR scheduler from config.
+ """
+ name = cfg.SOLVER.LR_SCHEDULER_NAME
+
+ if name == "WarmupMultiStepLR":
+ steps = [x for x in cfg.SOLVER.STEPS if x <= cfg.SOLVER.MAX_ITER]
+ if len(steps) != len(cfg.SOLVER.STEPS):
+ logger = logging.getLogger(__name__)
+ logger.warning(
+ "SOLVER.STEPS contains values larger than SOLVER.MAX_ITER. "
+ "These values will be ignored."
+ )
+ sched = MultiStepParamScheduler(
+ values=[cfg.SOLVER.GAMMA**k for k in range(len(steps) + 1)],
+ milestones=steps,
+ num_updates=cfg.SOLVER.MAX_ITER,
+ )
+ elif name == "WarmupCosineLR":
+ end_value = cfg.SOLVER.BASE_LR_END / cfg.SOLVER.BASE_LR
+ assert end_value >= 0.0 and end_value <= 1.0, end_value
+ sched = CosineParamScheduler(1, end_value)
+ else:
+ raise ValueError("Unknown LR scheduler: {}".format(name))
+
+ sched = WarmupParamScheduler(
+ sched,
+ cfg.SOLVER.WARMUP_FACTOR,
+ min(cfg.SOLVER.WARMUP_ITERS / cfg.SOLVER.MAX_ITER, 1.0),
+ cfg.SOLVER.WARMUP_METHOD,
+ )
+ return LRMultiplier(optimizer, multiplier=sched, max_iter=cfg.SOLVER.MAX_ITER)
diff --git a/cutler/structures/__init__.py b/cutler/structures/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..a273d815bcf74fc6d20863222da3e14af3308bd8
--- /dev/null
+++ b/cutler/structures/__init__.py
@@ -0,0 +1,11 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from .boxes import pairwise_iou_max_scores
+
+__all__ = [k for k in globals().keys() if not k.startswith("_")]
+
+
+from detectron2.utils.env import fixup_module_metadata
+
+fixup_module_metadata(__name__, globals(), __all__)
+del fixup_module_metadata
diff --git a/cutler/structures/boxes.py b/cutler/structures/boxes.py
new file mode 100644
index 0000000000000000000000000000000000000000..783181349ea7c4d81ee6ec7e7b1f1a1c05cc2bee
--- /dev/null
+++ b/cutler/structures/boxes.py
@@ -0,0 +1,35 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/structures/boxes.py
+
+import torch
+
+def pairwise_iou_max_scores(boxes1: torch.Tensor, boxes2: torch.Tensor) -> torch.Tensor:
+ """
+ Given two lists of boxes of size N and M, compute the IoU
+ (intersection over union) between **all** N x M pairs of boxes.
+ The box order must be (xmin, ymin, xmax, ymax).
+
+ Args:
+ boxes1,boxes2 (Boxes): two `Boxes`. Contains N & M boxes, respectively.
+
+ Returns:
+ Tensor: IoU, sized [N,M].
+ """
+ area1 = (boxes1[:, 2] - boxes1[:, 0]) * (boxes1[:, 3] - boxes1[:, 1]) # [N]
+ area2 = (boxes2[:, 2] - boxes2[:, 0]) * (boxes2[:, 3] - boxes2[:, 1]) # [M]
+
+ width_height = torch.min(boxes1[:, None, 2:], boxes2[:, 2:]) - torch.max(
+ boxes1[:, None, :2], boxes2[:, :2]
+ ) # [N,M,2]
+
+ width_height.clamp_(min=0) # [N,M,2]
+ inter = width_height.prod(dim=2) # [N,M]
+
+ # handle empty boxes
+ iou = torch.where(
+ inter > 0,
+ inter / (area1[:, None] + area2 - inter),
+ torch.zeros(1, dtype=inter.dtype, device=inter.device),
+ )
+ iou_max, _ = torch.max(iou, dim=1)
+ return iou_max
\ No newline at end of file
diff --git a/cutler/tools/eval.sh b/cutler/tools/eval.sh
new file mode 100644
index 0000000000000000000000000000000000000000..7bd7004205fb33a6d01071a1cdf104d211f4e5b1
--- /dev/null
+++ b/cutler/tools/eval.sh
@@ -0,0 +1,89 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+# link to the dataset folder, model weights and the config file.
+export DETECTRON2_DATASETS=/path/to/DETECTRON2_DATASETS/
+model_weights="http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth"
+config_file="model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml"
+num_gpus=2
+
+echo "========== start evaluating the model on all 11 datasets =========="
+
+test_dataset='cls_agnostic_clipart'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} --no-segm \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+test_dataset='cls_agnostic_watercolor'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} --no-segm \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+test_dataset='cls_agnostic_comic'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} --no-segm \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+test_dataset='cls_agnostic_voc'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} --no-segm \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+test_dataset='cls_agnostic_objects365'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} --no-segm \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+test_dataset='cls_agnostic_openimages'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} --no-segm \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+test_dataset='cls_agnostic_kitti'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} --no-segm \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+test_dataset='cls_agnostic_coco'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+test_dataset='cls_agnostic_coco20k'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+test_dataset='cls_agnostic_lvis'
+echo "========== evaluating ${test_dataset} =========="
+# LVIS should set TEST.DETECTIONS_PER_IMAGE=300
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} \
+ --eval-only MODEL.WEIGHTS ${model_weights} TEST.DETECTIONS_PER_IMAGE 300
+
+test_dataset='cls_agnostic_uvo'
+echo "========== evaluating ${test_dataset} =========="
+python train_net.py --num-gpus ${num_gpus} \
+ --config-file ${config_file} \
+ --test-dataset ${test_dataset} \
+ --eval-only MODEL.WEIGHTS ${model_weights}
+
+echo "========== evaluation is completed =========="
\ No newline at end of file
diff --git a/cutler/tools/get_self_training_ann.py b/cutler/tools/get_self_training_ann.py
new file mode 100644
index 0000000000000000000000000000000000000000..f2024d615a32e162d6e0f504e6b6a1eb9594c22b
--- /dev/null
+++ b/cutler/tools/get_self_training_ann.py
@@ -0,0 +1,194 @@
+#!/usr/bin/env python
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+import os
+import json
+import tqdm
+import torch
+import datetime
+import argparse
+import pycocotools.mask as cocomask
+from detectron2.utils.file_io import PathManager
+
+INFO = {
+ "description": "ImageNet-1K: Self-train",
+ "url": "",
+ "version": "1.0",
+ "year": 2022,
+ "contributor": "Xudong Wang",
+ "date_created": datetime.datetime.utcnow().isoformat(' ')
+}
+
+LICENSES = [
+ {
+ "id": 1,
+ "name": "Apache License",
+ "url": "https://github.com/facebookresearch/CutLER/blob/main/LICENSE"
+ }
+]
+
+CATEGORIES = [
+ {
+ 'id': 1,
+ 'name': 'fg',
+ 'supercategory': 'fg',
+ },
+]
+
+new_dict_filtered = {
+ "info": INFO,
+ "licenses": LICENSES,
+ "categories": CATEGORIES,
+ "images": [],
+ "annotations": []
+}
+
+category_info = {
+ "is_crowd": 0,
+ "id": 1
+}
+
+
+def segmToRLE(segm, h, w):
+ if isinstance(segm, list):
+ # polygon -- a single object might consist of multiple parts
+ # we merge all parts into one mask rle code
+ rles = cocomask.frPyObjects(segm, h, w)
+ rle = cocomask.merge(rles)
+ elif isinstance(segm["counts"], list):
+ # uncompressed RLE
+ rle = cocomask.frPyObjects(segm, h, w)
+ else:
+ # rle
+ rle = segm
+ return rle
+
+def rle2mask(rle, height, width):
+ if "counts" in rle and isinstance(rle["counts"], list):
+ # if compact RLE, ignore this conversion
+ # Magic RLE format handling painfully discovered by looking at the
+ # COCO API showAnns function.
+ rle = cocomask.frPyObjects(rle, height, width)
+ mask = cocomask.decode(rle)
+ return mask
+
+def cocosegm2mask(segm, h, w):
+ rle = segmToRLE(segm, h, w)
+ mask = rle2mask(rle, h, w)
+ return mask
+
+def BatchIoU(masks1, masks2):
+ n1, n2 = masks1.size()[0], masks2.size()[0]
+ masks1, masks2 = (masks1>0.5).to(torch.bool), (masks2>0.5).to(torch.bool)
+ masks1_ = masks1[:,None,:,:,].expand(-1, n2, -1, -1)
+ masks2_ = masks2[None,:,:,:,].expand(n1, -1, -1, -1)
+
+ intersection = torch.sum(masks1_ * (masks1_ == masks2_), dim=[-1, -2])
+ union = torch.sum(masks1_ + masks2_, dim=[-1, -2])
+ ious = intersection.to(torch.float) / union
+ return ious
+
+if __name__ == "__main__":
+ # load model arguments
+ parser = argparse.ArgumentParser(description='Generate json files for the self-training')
+ parser.add_argument('--new-pred', type=str,
+ default='output/inference/coco_instances_results.json',
+ help='Path to model predictions')
+ parser.add_argument('--prev-ann', type=str,
+ default='DETECTRON2_DATASETS/imagenet/annotations/cutler_imagenet1k_train.json',
+ help='Path to annotations in the previous round')
+ parser.add_argument('--save-path', type=str,
+ default='DETECTRON2_DATASETS/imagenet/annotations/cutler_imagenet1k_train_r1.json',
+ help='Path to save the generated annotation file')
+ # parser.add_argument('--n-rounds', type=int, default=1,
+ # help='N-th round of self-training')
+ parser.add_argument('--threshold', type=float, default=0.7,
+ help='Confidence score thresholds')
+ args = parser.parse_args()
+
+ # load model predictions
+ new_pred = args.new_pred
+ with PathManager.open(new_pred, "r") as f:
+ predictions = json.load(f)
+
+ # filter out low-confidence model predictions
+ THRESHOLD = args.threshold
+ pred_image_to_anns = {}
+ for id, ann in enumerate(predictions):
+ confidence_score = ann['score']
+ if confidence_score >= THRESHOLD:
+ if ann['image_id'] in pred_image_to_anns:
+ pred_image_to_anns[ann['image_id']].append(ann)
+ else:
+ pred_image_to_anns[ann['image_id']] = [ann]
+
+ # load psedu-masks used by the previous round
+ pseudo_ann_dict = json.load(open(args.prev_ann))
+ pseudo_image_list = pseudo_ann_dict['images']
+ pseudo_annotations = pseudo_ann_dict['annotations']
+
+ pseudo_image_to_anns = {}
+ for id, ann in enumerate(pseudo_annotations):
+ if ann['image_id'] in pseudo_image_to_anns:
+ pseudo_image_to_anns[ann['image_id']].append(ann)
+ else:
+ pseudo_image_to_anns[ann['image_id']] = [ann]
+
+ # merge model predictions and the json file used by the previous round.
+ merged_anns = []
+ num_preds, num_pseudo = 0, 0
+ for k, anns_pseudo in tqdm.tqdm(pseudo_image_to_anns.items()):
+ masks = []
+ for ann in anns_pseudo:
+ segm = ann['segmentation']
+ mask = cocosegm2mask(segm, segm['size'][0], segm['size'][1])
+ masks.append(torch.from_numpy(mask))
+ pseudo_masks = torch.stack(masks, dim=0).cuda()
+ del masks
+ num_pseudo += len(anns_pseudo)
+ try:
+ anns_pred = pred_image_to_anns[k]
+ except:
+ merged_anns += anns_pseudo
+ continue
+ masks = []
+ for ann in anns_pred:
+ segm = ann['segmentation']
+ mask = cocosegm2mask(segm, segm['size'][0], segm['size'][1])
+ masks.append(torch.from_numpy(mask))
+ pred_masks = torch.stack(masks, dim=0).cuda()
+ num_preds += len(anns_pred)
+ try:
+ ious = BatchIoU(pseudo_masks, pred_masks)
+ iou_max, _ = ious.max(dim=1)
+ selected_index = (iou_max < 0.5).nonzero()
+ selected_pseudo = [anns_pseudo[i] for i in selected_index]
+ merged_anns += anns_pred + selected_pseudo
+ # if num_preds % 200000 == 0:
+ # print(len(merged_anns), num_preds, num_pseudo)
+ except:
+ merged_anns += anns_pseudo
+
+ for key in pred_image_to_anns:
+ if key in pseudo_image_to_anns:
+ continue
+ else:
+ merged_anns += pred_image_to_anns[key]
+
+ # re-generate annotation id
+ ann_id = 1
+ for ann in merged_anns:
+ ann['id'] = ann_id
+ ann['area'] = ann['bbox'][-1] * ann['bbox'][-2]
+ ann['iscrowd'] = 0
+ ann['width'] = ann['segmentation']['size'][0]
+ ann['height'] = ann['segmentation']['size'][1]
+ ann_id += 1
+
+ new_dict_filtered['images'] = pseudo_image_list
+ new_dict_filtered['annotations'] = merged_anns
+
+ # save annotation file
+ # save_path = os.path.join(args.save_path, "cutler_imagenet1k_train_r{}.json".format(args.n_rounds))
+ json.dump(new_dict_filtered, open(args.save_path, 'w'))
+ print("Done: {} images; {} anns.".format(len(new_dict_filtered['images']), len(new_dict_filtered['annotations'])))
\ No newline at end of file
diff --git a/cutler/tools/run_with_submitit.sh b/cutler/tools/run_with_submitit.sh
new file mode 100644
index 0000000000000000000000000000000000000000..75aa4a43e440a0b144295042bdcd538aa6797084
--- /dev/null
+++ b/cutler/tools/run_with_submitit.sh
@@ -0,0 +1,4 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+sbatch tools/train-1node.sh \
+ --config-file model_zoo/configs/CutLER-ImageNet/cascade_mask_rcnn_R_50_FPN.yaml \
+ OUTPUT_DIR /path/to/output
\ No newline at end of file
diff --git a/cutler/tools/run_with_submitit_ssl.sh b/cutler/tools/run_with_submitit_ssl.sh
new file mode 100644
index 0000000000000000000000000000000000000000..16887af06e877901bca491cdc57c581f53f46e7b
--- /dev/null
+++ b/cutler/tools/run_with_submitit_ssl.sh
@@ -0,0 +1,3 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+sbatch tools/train-1node.sh \
+--config-file /private/home/xudongw/cutler-code-release/CutLER/cutler/model_zoo/configs/COCO-Semisupervised/cascade_mask_rcnn_R_50_FPN_50perc.yaml \
\ No newline at end of file
diff --git a/cutler/tools/single-node_run.sh b/cutler/tools/single-node_run.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a9834086b174e57a27ac5d9c5ba7dbacc5fd617e
--- /dev/null
+++ b/cutler/tools/single-node_run.sh
@@ -0,0 +1,9 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+#!/bin/bash
+export DETECTRON2_DATASETS=/path/to/DETECTRON2_DATASETS/
+MASTER_NODE=$(scontrol show hostname "$SLURM_NODELIST" | head -n1)
+DIST_URL="tcp://$MASTER_NODE:12399"
+SOCKET_NAME=$(ip r | grep default | awk '{print $5}')
+export GLOO_SOCKET_IFNAME=$SOCKET_NAME
+
+python -u train_net.py --num-gpus 8 --num-machines 1 --machine-rank "$SLURM_NODEID" --dist-url "$DIST_URL" "$@"
\ No newline at end of file
diff --git a/cutler/tools/train-1node.sh b/cutler/tools/train-1node.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a576eeb60a178b5f7679ddfd3ad22140081ffa85
--- /dev/null
+++ b/cutler/tools/train-1node.sh
@@ -0,0 +1,12 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+#!/bin/bash
+#SBATCH -p devlab
+#SBATCH --nodes=1
+#SBATCH --gres=gpu:8
+#SBATCH --gpus-per-node=8
+#SBATCH --cpus-per-task=80
+#SBATCH --mem=512G
+#SBATCH --time 2000
+#SBATCH -o "submitit/slurm-%j.out"
+
+srun tools/single-node_run.sh $@
\ No newline at end of file
diff --git a/cutler/train_net.py b/cutler/train_net.py
new file mode 100755
index 0000000000000000000000000000000000000000..732f6e9095ffbaee629562a6a03bd159997d5ad1
--- /dev/null
+++ b/cutler/train_net.py
@@ -0,0 +1,177 @@
+#!/usr/bin/env python
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/tools/train_net.py
+
+"""
+A main training script.
+
+This scripts reads a given config file and runs the training or evaluation.
+It is an entry point that is made to train standard models in detectron2.
+
+In order to let one script support training of many models,
+this script contains logic that are specific to these built-in models and therefore
+may not be suitable for your own project.
+For example, your research project perhaps only needs a single "evaluator".
+
+Therefore, we recommend you to use detectron2 as an library and take
+this file as an example of how to use the library.
+You may want to write your own script with your datasets and other customizations.
+"""
+
+import logging
+import os
+from collections import OrderedDict
+
+import detectron2.utils.comm as comm
+from detectron2.checkpoint import DetectionCheckpointer
+from detectron2.config import get_cfg
+from config import add_cutler_config
+from detectron2.data import MetadataCatalog
+from engine import DefaultTrainer, default_argument_parser, default_setup
+from detectron2.engine import hooks, launch
+from detectron2.evaluation import (
+ CityscapesInstanceEvaluator,
+ CityscapesSemSegEvaluator,
+ # COCOEvaluator,
+ COCOPanopticEvaluator,
+ DatasetEvaluators,
+ LVISEvaluator,
+ PascalVOCDetectionEvaluator,
+ SemSegEvaluator,
+ verify_results,
+)
+from evaluation import COCOEvaluator
+from detectron2.modeling import GeneralizedRCNNWithTTA
+import data # register new datasets
+import modeling.roi_heads
+
+def build_evaluator(cfg, dataset_name, output_folder=None):
+ """
+ Create evaluator(s) for a given dataset.
+ This uses the special metadata "evaluator_type" associated with each builtin dataset.
+ For your own dataset, you can simply create an evaluator manually in your
+ script and do not have to worry about the hacky if-else logic here.
+ """
+ if output_folder is None:
+ output_folder = os.path.join(cfg.OUTPUT_DIR, "inference")
+ evaluator_list = []
+ evaluator_type = MetadataCatalog.get(dataset_name).evaluator_type
+ if evaluator_type in ["sem_seg", "coco_panoptic_seg"]:
+ evaluator_list.append(
+ SemSegEvaluator(
+ dataset_name,
+ distributed=True,
+ output_dir=output_folder,
+ )
+ )
+ if evaluator_type in ["coco", "coco_panoptic_seg"]:
+ evaluator_list.append(COCOEvaluator(dataset_name, output_dir=output_folder, no_segm=cfg.TEST.NO_SEGM))
+ if evaluator_type == "coco_panoptic_seg":
+ evaluator_list.append(COCOPanopticEvaluator(dataset_name, output_folder))
+ if evaluator_type == "cityscapes_instance":
+ return CityscapesInstanceEvaluator(dataset_name)
+ if evaluator_type == "cityscapes_sem_seg":
+ return CityscapesSemSegEvaluator(dataset_name)
+ elif evaluator_type == "pascal_voc":
+ return PascalVOCDetectionEvaluator(dataset_name)
+ elif evaluator_type == "lvis":
+ return LVISEvaluator(dataset_name, output_dir=output_folder)
+ if len(evaluator_list) == 0:
+ raise NotImplementedError(
+ "no Evaluator for the dataset {} with the type {}".format(dataset_name, evaluator_type)
+ )
+ elif len(evaluator_list) == 1:
+ return evaluator_list[0]
+ return DatasetEvaluators(evaluator_list)
+
+class Trainer(DefaultTrainer):
+ """
+ We use the "DefaultTrainer" which contains pre-defined default logic for
+ standard training workflow. They may not work for you, especially if you
+ are working on a new research project. In that case you can write your
+ own training loop. You can use "tools/plain_train_net.py" as an example.
+ """
+
+ @classmethod
+ def build_evaluator(cls, cfg, dataset_name, output_folder=None):
+ return build_evaluator(cfg, dataset_name, output_folder)
+
+ @classmethod
+ def test_with_TTA(cls, cfg, model):
+ logger = logging.getLogger("detectron2.trainer")
+ # In the end of training, run an evaluation with TTA
+ # Only support some R-CNN models.
+ logger.info("Running inference with test-time augmentation ...")
+ model = GeneralizedRCNNWithTTA(cfg, model)
+ evaluators = [
+ cls.build_evaluator(
+ cfg, name, output_folder=os.path.join(cfg.OUTPUT_DIR, "inference_TTA")
+ )
+ for name in cfg.DATASETS.TEST
+ ]
+ res = cls.test(cfg, model, evaluators)
+ res = OrderedDict({k + "_TTA": v for k, v in res.items()})
+ return res
+
+
+def setup(args):
+ """
+ Create configs and perform basic setups.
+ """
+ cfg = get_cfg()
+ add_cutler_config(cfg)
+ cfg.merge_from_file(args.config_file)
+ cfg.merge_from_list(args.opts)
+ # FIXME: brute force changes to test datasets and evaluation tasks
+ if args.test_dataset != "": cfg.DATASETS.TEST = ((args.test_dataset),)
+ if args.train_dataset != "": cfg.DATASETS.TRAIN = ((args.train_dataset),)
+ cfg.TEST.NO_SEGM = args.no_segm
+ cfg.freeze()
+ default_setup(cfg, args)
+ return cfg
+
+
+def main(args):
+ cfg = setup(args)
+
+ if args.eval_only:
+ model = Trainer.build_model(cfg)
+ DetectionCheckpointer(model, save_dir=cfg.OUTPUT_DIR).resume_or_load(
+ cfg.MODEL.WEIGHTS, resume=args.resume
+ )
+ res = Trainer.test(cfg, model)
+ if cfg.TEST.AUG.ENABLED:
+ res.update(Trainer.test_with_TTA(cfg, model))
+ if comm.is_main_process():
+ verify_results(cfg, res)
+ return res
+
+ """
+ If you'd like to do anything fancier than the standard training logic,
+ consider writing your own training loop (see plain_train_net.py) or
+ subclassing the trainer.
+ """
+ trainer = Trainer(cfg)
+ trainer.resume_or_load(resume=args.resume)
+ if cfg.TEST.AUG.ENABLED:
+ trainer.register_hooks(
+ [hooks.EvalHook(0, lambda: trainer.test_with_TTA(cfg, trainer.model))]
+ )
+ return trainer.train()
+
+
+if __name__ == "__main__":
+ args = default_argument_parser().parse_args()
+ # print(args)
+ # args.opts = postprocess_args(args.opts)
+ # rint = random.randint(0, 10000)
+ # args.dist_url = args.dist_url.replace('12399', str(12399 + rint))
+ print("Command Line Args:", args)
+ launch(
+ main,
+ args.num_gpus,
+ num_machines=args.num_machines,
+ machine_rank=args.machine_rank,
+ dist_url=args.dist_url,
+ args=(args,),
+ )
diff --git a/datasets/README.md b/datasets/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..30799608cd6752c4f9fc4e5cbf30c1fdd042c260
--- /dev/null
+++ b/datasets/README.md
@@ -0,0 +1,146 @@
+# Prepare Datasets for Training and Evaluating CutLER
+
+A dataset can be used by accessing [DatasetCatalog](https://detectron2.readthedocs.io/modules/data.html#detectron2.data.DatasetCatalog)
+for its data, or [MetadataCatalog](https://detectron2.readthedocs.io/modules/data.html#detectron2.data.MetadataCatalog) for its metadata (class names, etc).
+This document explains how to setup the builtin datasets so they can be used by the above APIs. [Use Custom Datasets](https://detectron2.readthedocs.io/tutorials/datasets.html) gives a deeper dive on how to use `DatasetCatalog` and `MetadataCatalog`,
+and how to add new datasets to them.
+
+CutLER has builtin support for a few datasets. The datasets are assumed to exist in a directory specified by the environment variable `DETECTRON2_DATASETS`. Under this directory, detectron2 will look for datasets in the structure described below, if needed.
+```
+$DETECTRON2_DATASETS/
+ imagenet/
+ coco/
+ voc/
+ kitti/
+ ...
+```
+
+You can set the location for builtin datasets by `export DETECTRON2_DATASETS=/path/to/datasets`. If left unset, the default is `./datasets` relative to your current working directory.
+
+All dataset annotation files should be converted to the COCO format.
+
+## Expected dataset structure for [ImageNet](https://image-net.org/download.php):
+```
+imagenet/
+ train/
+ n01440764/*.JPEG
+ n01443537/*.JPEG
+ ...
+ annotations/
+ imagenet_train_fixsize480_tau0.15_N3.json # generated by MaskCut
+```
+
+The ImageNet-1K samples should be downloaded from [here](https://image-net.org/download.php) and the pre-generated json file can be directly download from [here](http://dl.fbaipublicfiles.com/cutler/maskcut/imagenet_train_fixsize480_tau0.15_N3.json).
+Or if you want to generate your own pseudo-masks, you can follow the instructions on [MaskCut](../README.md#1-maskcut).
+
+
+## Expected dataset structure for [COCO, COCO20K, LVIS](https://cocodataset.org/#download):
+```
+coco/
+ annotations/
+ instances_{train,val}2017.json
+ coco20k_trainval_gt.json
+ coco_cls_agnostic_instances_val2017.json
+ {1,2,5,10,20,30,40,50,60,80}perc_instances_train2017.json
+ lvis1.0_cocofied_val_cls_agnostic.json
+ {train,val}2017/
+ 000000000139.jpg
+ 000000000285.jpg
+ ...
+ train2014/
+ COCO_train2014_000000581921.jpg
+ COCO_train2014_000000581909.jpg
+ ...
+```
+
+Following previous work, we prepare annotations for semi-supervised learning by randomly sampling a subset of labeled images.
+You can download these annotation filess needed for COCO semi-supervised learning experiments and for evaluating the performance of the models on COCO, COCO20K and LVIS: [coco-semi](http://dl.fbaipublicfiles.com/cutler/coco-smi/annotations.zip), [coco](http://dl.fbaipublicfiles.com/cutler/coco/coco_cls_agnostic_instances_val2017.json), [lvis](http://dl.fbaipublicfiles.com/cutler/coco/lvis1.0_cocofied_val_cls_agnostic.json) and [coco20k](http://dl.fbaipublicfiles.com/cutler/coco/coco20k_trainval_gt.json).
+
+
+## Expected dataset structure for [VOC2007](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html#devkit):
+```
+voc/
+ annotations/
+ trainvaltest_2007_cls_agnostic.json
+ VOC2007/
+ JPEGImages/
+ 000001.jpg
+ ...
+```
+We provide pre-converted COCO-style annotation files [here](http://dl.fbaipublicfiles.com/cutler/voc/trainvaltest_2007_cls_agnostic.json)
+
+
+## Expected dataset structure for [Objects365-V2](https://www.objects365.org/download.html):
+```
+objects365/
+ annotations/
+ zhiyuan_objv2_val_cls_agnostic.json
+ val/
+ 000000000139.jpg
+ 000000000285.jpg
+ ...
+```
+You only need to download the validation set of Objects365 for evaluation.
+We provide pre-converted COCO-style annotation files [here](http://dl.fbaipublicfiles.com/cutler/objects365/zhiyuan_objv2_val_cls_agnostic.json)
+
+
+## Expected dataset structure for [OpenImages-V6](https://storage.googleapis.com/openimages/web/download_v6.html):
+```
+openImages/
+ annotations/
+ openimages_val_cls_agnostic.json
+ validation/
+ 47947b97662dc962.jpg
+ ...
+```
+You only need to download the validation set of OpenImages for evaluation.
+We provide pre-converted COCO-style annotation files [here](http://dl.fbaipublicfiles.com/cutler/openImages/openimages_val_cls_agnostic.json)
+
+## Expected dataset structure for [UVO](https://sites.google.com/view/unidentified-video-object/dataset):
+```
+uvo/
+ annotations/
+ val_sparse_cleaned_cls_agnostic.json
+ all_UVO_frames/
+ 000000000139.jpg
+ 000000000285.jpg
+ ...
+```
+You only need to download the validation set of UVO for evaluation.
+We provide pre-converted COCO-style annotation files [here](http://dl.fbaipublicfiles.com/cutler/uvo/val_sparse_cleaned_cls_agnostic.json)
+
+## Expected dataset structure for [KITTI](https://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=2d):
+```
+kitti/
+ annotations/
+ trainval_cls_agnostic.json
+ JPEGImages/
+ 001717.jpg
+ ...
+```
+We provide pre-converted COCO-style annotation files [here](https://dl.fbaipublicfiles.com/cutler/kitti/trainval_cls_agnostic.json)
+
+## Expected dataset structure for [Watercolor, Comic, Clipart](https://github.com/naoto0804/cross-domain-detection):
+```
+watercolor/
+ annotations/
+ traintest_cls_agnostic.json
+ JPEGImages/
+ 163330523.jpg
+ ...
+comic/
+ annotations/
+ traintest_cls_agnostic.json
+ JPEGImages/
+ 161067391.jpg
+ ...
+clipart/
+ annotations/
+ traintest_cls_agnostic.json
+ JPEGImages/
+ 375390294.jpg
+ ...
+```
+We provide pre-converted COCO-style annotation files here: [watercolor](http://dl.fbaipublicfiles.com/cutler/watercolor/traintest_cls_agnostic.json), [comic](http://dl.fbaipublicfiles.com/cutler/comic/traintest_cls_agnostic.json) and [clipart](http://dl.fbaipublicfiles.com/cutler/clipart/traintest_cls_agnostic.json).
+
+NOTE: ALL DATASETS FOLLOW THEIR ORIGINAL LICENSES.
\ No newline at end of file
diff --git a/maskcut/colormap.py b/maskcut/colormap.py
new file mode 100644
index 0000000000000000000000000000000000000000..c434b295103de461b987c81e153749366fde55ba
--- /dev/null
+++ b/maskcut/colormap.py
@@ -0,0 +1,156 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# copied from https://github.com/facebookresearch/detectron2/blob/main/detectron2/utils/colormap.py
+
+"""
+An awesome colormap for really neat visualizations.
+Copied from Detectron, and removed gray colors.
+"""
+
+import numpy as np
+import random
+
+__all__ = ["colormap", "random_color", "random_colors"]
+
+# fmt: off
+# RGB:
+_COLORS = np.array(
+ [
+ 0.000, 0.447, 0.741,
+ 0.850, 0.325, 0.098,
+ 0.929, 0.694, 0.125,
+ 0.494, 0.184, 0.556,
+ 0.466, 0.674, 0.188,
+ 0.301, 0.745, 0.933,
+ 0.635, 0.078, 0.184,
+ 0.300, 0.300, 0.300,
+ 0.600, 0.600, 0.600,
+ 1.000, 0.000, 0.000,
+ 1.000, 0.500, 0.000,
+ 0.749, 0.749, 0.000,
+ 0.000, 1.000, 0.000,
+ 0.000, 0.000, 1.000,
+ 0.667, 0.000, 1.000,
+ 0.333, 0.333, 0.000,
+ 0.333, 0.667, 0.000,
+ 0.333, 1.000, 0.000,
+ 0.667, 0.333, 0.000,
+ 0.667, 0.667, 0.000,
+ 0.667, 1.000, 0.000,
+ 1.000, 0.333, 0.000,
+ 1.000, 0.667, 0.000,
+ 1.000, 1.000, 0.000,
+ 0.000, 0.333, 0.500,
+ 0.000, 0.667, 0.500,
+ 0.000, 1.000, 0.500,
+ 0.333, 0.000, 0.500,
+ 0.333, 0.333, 0.500,
+ 0.333, 0.667, 0.500,
+ 0.333, 1.000, 0.500,
+ 0.667, 0.000, 0.500,
+ 0.667, 0.333, 0.500,
+ 0.667, 0.667, 0.500,
+ 0.667, 1.000, 0.500,
+ 1.000, 0.000, 0.500,
+ 1.000, 0.333, 0.500,
+ 1.000, 0.667, 0.500,
+ 1.000, 1.000, 0.500,
+ 0.000, 0.333, 1.000,
+ 0.000, 0.667, 1.000,
+ 0.000, 1.000, 1.000,
+ 0.333, 0.000, 1.000,
+ 0.333, 0.333, 1.000,
+ 0.333, 0.667, 1.000,
+ 0.333, 1.000, 1.000,
+ 0.667, 0.000, 1.000,
+ 0.667, 0.333, 1.000,
+ 0.667, 0.667, 1.000,
+ 0.667, 1.000, 1.000,
+ 1.000, 0.000, 1.000,
+ 1.000, 0.333, 1.000,
+ 1.000, 0.667, 1.000,
+ 0.333, 0.000, 0.000,
+ 0.500, 0.000, 0.000,
+ 0.667, 0.000, 0.000,
+ 0.833, 0.000, 0.000,
+ 1.000, 0.000, 0.000,
+ 0.000, 0.167, 0.000,
+ 0.000, 0.333, 0.000,
+ 0.000, 0.500, 0.000,
+ 0.000, 0.667, 0.000,
+ 0.000, 0.833, 0.000,
+ 0.000, 1.000, 0.000,
+ 0.000, 0.000, 0.167,
+ 0.000, 0.000, 0.333,
+ 0.000, 0.000, 0.500,
+ 0.000, 0.000, 0.667,
+ 0.000, 0.000, 0.833,
+ 0.000, 0.000, 1.000,
+ 0.000, 0.000, 0.000,
+ 0.143, 0.143, 0.143,
+ 0.857, 0.857, 0.857,
+ 1.000, 1.000, 1.000
+ ]
+).astype(np.float32).reshape(-1, 3)
+# fmt: on
+
+
+def colormap(rgb=False, maximum=255):
+ """
+ Args:
+ rgb (bool): whether to return RGB colors or BGR colors.
+ maximum (int): either 255 or 1
+ Returns:
+ ndarray: a float32 array of Nx3 colors, in range [0, 255] or [0, 1]
+ """
+ assert maximum in [255, 1], maximum
+ c = _COLORS * maximum
+ if not rgb:
+ c = c[:, ::-1]
+ return c
+
+
+def random_color(rgb=False, maximum=255):
+ """
+ Args:
+ rgb (bool): whether to return RGB colors or BGR colors.
+ maximum (int): either 255 or 1
+ Returns:
+ ndarray: a vector of 3 numbers
+ """
+ idx = np.random.randint(0, len(_COLORS))
+ ret = _COLORS[idx] * maximum
+ if not rgb:
+ ret = ret[::-1]
+ return ret
+
+
+def random_colors(N, rgb=False, maximum=255):
+ """
+ Args:
+ N (int): number of unique colors needed
+ rgb (bool): whether to return RGB colors or BGR colors.
+ maximum (int): either 255 or 1
+ Returns:
+ ndarray: a list of random_color
+ """
+ indices = random.sample(range(len(_COLORS)), N)
+ ret = [_COLORS[i] * maximum for i in indices]
+ if not rgb:
+ ret = [x[::-1] for x in ret]
+ return ret
+
+
+if __name__ == "__main__":
+ import cv2
+
+ size = 100
+ H, W = 10, 10
+ canvas = np.random.rand(H * size, W * size, 3).astype("float32")
+ for h in range(H):
+ for w in range(W):
+ idx = h * W + w
+ if idx >= len(_COLORS):
+ break
+ canvas[h * size : (h + 1) * size, w * size : (w + 1) * size] = _COLORS[idx]
+ cv2.imshow("a", canvas)
+ cv2.waitKey(0)
\ No newline at end of file
diff --git a/maskcut/crf.py b/maskcut/crf.py
new file mode 100644
index 0000000000000000000000000000000000000000..f8164298800ddb5b4f72d9219d03a2e65955448b
--- /dev/null
+++ b/maskcut/crf.py
@@ -0,0 +1,46 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# modfied by Xudong Wang based on https://github.com/lucasb-eyer/pydensecrf/blob/master/pydensecrf/tests/test_dcrf.py and third_party/TokenCut
+
+import numpy as np
+import pydensecrf.densecrf as dcrf
+import pydensecrf.utils as utils
+import torch
+import torch.nn.functional as F
+import torchvision.transforms.functional as VF
+
+MAX_ITER = 10
+POS_W = 7
+POS_XY_STD = 3
+Bi_W = 10
+Bi_XY_STD = 50
+Bi_RGB_STD = 5
+
+def densecrf(image, mask):
+ h, w = mask.shape
+ mask = mask.reshape(1, h, w)
+ fg = mask.astype(float)
+ bg = 1 - fg
+ output_logits = torch.from_numpy(np.concatenate((bg,fg), axis=0))
+
+ H, W = image.shape[:2]
+ image = np.ascontiguousarray(image)
+
+ output_logits = F.interpolate(output_logits.unsqueeze(0), size=(H, W), mode="bilinear").squeeze()
+ output_probs = F.softmax(output_logits, dim=0).cpu().numpy()
+
+ c = output_probs.shape[0]
+ h = output_probs.shape[1]
+ w = output_probs.shape[2]
+
+ U = utils.unary_from_softmax(output_probs)
+ U = np.ascontiguousarray(U)
+
+ d = dcrf.DenseCRF2D(w, h, c)
+ d.setUnaryEnergy(U)
+ d.addPairwiseGaussian(sxy=POS_XY_STD, compat=POS_W)
+ d.addPairwiseBilateral(sxy=Bi_XY_STD, srgb=Bi_RGB_STD, rgbim=image, compat=Bi_W)
+
+ Q = d.inference(MAX_ITER)
+ Q = np.array(Q).reshape((c, h, w))
+ MAP = np.argmax(Q, axis=0).reshape((h,w)).astype(np.float32)
+ return MAP
diff --git a/maskcut/demo.py b/maskcut/demo.py
new file mode 100644
index 0000000000000000000000000000000000000000..cf7604077037e7ecd97a469a8e4355ef017957ab
--- /dev/null
+++ b/maskcut/demo.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python3
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+import os
+import sys
+sys.path.append('../')
+import argparse
+import numpy as np
+import PIL.Image as Image
+import torch
+from torchvision import transforms
+from scipy import ndimage
+from detectron2.utils.colormap import random_color
+
+import dino # model
+from third_party.TokenCut.unsupervised_saliency_detection import metric
+from crf import densecrf
+from maskcut import maskcut
+
+# Image transformation applied to all images
+ToTensor = transforms.Compose([transforms.ToTensor(),
+ transforms.Normalize(
+ (0.485, 0.456, 0.406),
+ (0.229, 0.224, 0.225)),])
+
+def vis_mask(input, mask, mask_color) :
+ fg = mask > 0.5
+ rgb = np.copy(input)
+ rgb[fg] = (rgb[fg] * 0.3 + np.array(mask_color) * 0.7).astype(np.uint8)
+ return Image.fromarray(rgb)
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser('MaskCut Demo')
+ # default arguments
+ parser.add_argument('--out-dir', type=str, help='output directory')
+ parser.add_argument('--vit-arch', type=str, default='small', choices=['base', 'small'], help='which architecture')
+ parser.add_argument('--vit-feat', type=str, default='k', choices=['k', 'q', 'v', 'kqv'], help='which features')
+ parser.add_argument('--patch-size', type=int, default=8, choices=[16, 8], help='patch size')
+ parser.add_argument('--img-path', type=str, default=None, help='single image visualization')
+ parser.add_argument('--tau', type=float, default=0.15, help='threshold used for producing binary graph')
+
+ # additional arguments
+ parser.add_argument('--fixed_size', type=int, default=480, help='rescale the input images to a fixed size')
+ parser.add_argument('--pretrain_path', type=str, default=None, help='path to pretrained model')
+ parser.add_argument('--N', type=int, default=3, help='the maximum number of pseudo-masks per image')
+ parser.add_argument('--cpu', action='store_true', help='use cpu')
+ parser.add_argument('--output_path', type=str, default='', help='path to save outputs')
+
+ args = parser.parse_args()
+ print (args)
+
+ if args.pretrain_path is not None:
+ url = args.pretrain_path
+ if args.vit_arch == 'base' and args.patch_size == 8:
+ if args.pretrain_path is None:
+ url = "https://dl.fbaipublicfiles.com/dino/dino_vitbase8_pretrain/dino_vitbase8_pretrain.pth"
+ feat_dim = 768
+ elif args.vit_arch == 'small' and args.patch_size == 8:
+ if args.pretrain_path is None:
+ url = "https://dl.fbaipublicfiles.com/dino/dino_deitsmall8_300ep_pretrain/dino_deitsmall8_300ep_pretrain.pth"
+ feat_dim = 384
+
+ backbone = dino.ViTFeat(url, feat_dim, args.vit_arch, args.vit_feat, args.patch_size)
+
+ msg = 'Load {} pre-trained feature...'.format(args.vit_arch)
+ print (msg)
+ backbone.eval()
+ if not args.cpu:
+ backbone.cuda()
+
+ bipartitions, _, I_new = maskcut(args.img_path, backbone, args.patch_size, args.tau, \
+ N=args.N, fixed_size=args.fixed_size, cpu=args.cpu)
+
+ I = Image.open(args.img_path).convert('RGB')
+ width, height = I.size
+ pseudo_mask_list = []
+ for idx, bipartition in enumerate(bipartitions):
+ # post-process pesudo-masks with CRF
+ pseudo_mask = densecrf(np.array(I_new), bipartition)
+ pseudo_mask = ndimage.binary_fill_holes(pseudo_mask>=0.5)
+
+ # filter out the mask that have a very different pseudo-mask after the CRF
+ if not args.cpu:
+ mask1 = torch.from_numpy(bipartition).cuda()
+ mask2 = torch.from_numpy(pseudo_mask).cuda()
+ else:
+ mask1 = torch.from_numpy(bipartition)
+ mask2 = torch.from_numpy(pseudo_mask)
+ if metric.IoU(mask1, mask2) < 0.5:
+ pseudo_mask = pseudo_mask * -1
+
+ # construct binary pseudo-masks
+ pseudo_mask[pseudo_mask < 0] = 0
+ pseudo_mask = Image.fromarray(np.uint8(pseudo_mask*255))
+ pseudo_mask = np.asarray(pseudo_mask.resize((width, height)))
+
+ pseudo_mask = pseudo_mask.astype(np.uint8)
+ upper = np.max(pseudo_mask)
+ lower = np.min(pseudo_mask)
+ thresh = upper / 2.0
+ pseudo_mask[pseudo_mask > thresh] = upper
+ pseudo_mask[pseudo_mask <= thresh] = lower
+ pseudo_mask_list.append(pseudo_mask)
+
+ input = np.array(I)
+ for pseudo_mask in pseudo_mask_list:
+ input = vis_mask(input, pseudo_mask, random_color(rgb=True))
+ input.save(os.path.join(args.output_path, "demo.jpg"))
\ No newline at end of file
diff --git a/maskcut/dino.py b/maskcut/dino.py
new file mode 100644
index 0000000000000000000000000000000000000000..89d6e4ff52d554a3e4e4d6ade49670ae07c12264
--- /dev/null
+++ b/maskcut/dino.py
@@ -0,0 +1,346 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+"""
+Copied from Dino repo. https://github.com/facebookresearch/dino
+Mostly copy-paste from timm library.
+https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py
+"""
+import math
+from functools import partial
+
+import torch
+import torch.nn as nn
+
+def _no_grad_trunc_normal_(tensor, mean, std, a, b):
+ # Cut & paste from PyTorch official master until it's in a few official releases - RW
+ # Method based on https://people.sc.fsu.edu/~jburkardt/presentations/truncated_normal.pdf
+ def norm_cdf(x):
+ # Computes standard normal cumulative distribution function
+ return (1. + math.erf(x / math.sqrt(2.))) / 2.
+
+ if (mean < a - 2 * std) or (mean > b + 2 * std):
+ warnings.warn("mean is more than 2 std from [a, b] in nn.init.trunc_normal_. "
+ "The distribution of values may be incorrect.",
+ stacklevel=2)
+
+ with torch.no_grad():
+ # Values are generated by using a truncated uniform distribution and
+ # then using the inverse CDF for the normal distribution.
+ # Get upper and lower cdf values
+ l = norm_cdf((a - mean) / std)
+ u = norm_cdf((b - mean) / std)
+
+ # Uniformly fill tensor with values from [l, u], then translate to
+ # [2l-1, 2u-1].
+ tensor.uniform_(2 * l - 1, 2 * u - 1)
+
+ # Use inverse cdf transform for normal distribution to get truncated
+ # standard normal
+ tensor.erfinv_()
+
+ # Transform to proper mean, std
+ tensor.mul_(std * math.sqrt(2.))
+ tensor.add_(mean)
+
+ # Clamp to ensure it's in the proper range
+ tensor.clamp_(min=a, max=b)
+ return tensor
+
+
+def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.):
+ # type: (Tensor, float, float, float, float) -> Tensor
+ return _no_grad_trunc_normal_(tensor, mean, std, a, b)
+
+
+def drop_path(x, drop_prob: float = 0., training: bool = False):
+ if drop_prob == 0. or not training:
+ return x
+ keep_prob = 1 - drop_prob
+ shape = (x.shape[0],) + (1,) * (x.ndim - 1) # work with diff dim tensors, not just 2D ConvNets
+ random_tensor = keep_prob + torch.rand(shape, dtype=x.dtype, device=x.device)
+ random_tensor.floor_() # binarize
+ output = x.div(keep_prob) * random_tensor
+ return output
+
+
+class DropPath(nn.Module):
+ """Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).
+ """
+ def __init__(self, drop_prob=None):
+ super(DropPath, self).__init__()
+ self.drop_prob = drop_prob
+
+ def forward(self, x):
+ return drop_path(x, self.drop_prob, self.training)
+
+
+class Mlp(nn.Module):
+ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+
+ def forward(self, x):
+ x = self.fc1(x)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+class Attention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0.):
+ super().__init__()
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ def forward(self, x):
+ B, N, C = x.shape
+ qkv = self.qkv(x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ q, k, v = qkv[0], qkv[1], qkv[2]
+
+ attn = (q @ k.transpose(-2, -1)) * self.scale
+ attn = attn.softmax(dim=-1)
+ attn = self.attn_drop(attn)
+
+ x = (attn @ v).transpose(1, 2).reshape(B, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+ return x, attn
+
+
+class Block(nn.Module):
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm):
+ super().__init__()
+ self.norm1 = norm_layer(dim)
+ self.attn = Attention(
+ dim, num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale, attn_drop=attn_drop, proj_drop=drop)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop)
+
+ def forward(self, x, return_attention=False):
+ y, attn = self.attn(self.norm1(x))
+ if return_attention:
+ return attn
+ x = x + self.drop_path(y)
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+ return x
+
+
+class PatchEmbed(nn.Module):
+ """ Image to Patch Embedding
+ """
+ def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):
+ super().__init__()
+ num_patches = (img_size // patch_size) * (img_size // patch_size)
+ self.img_size = img_size
+ self.patch_size = patch_size
+ self.num_patches = num_patches
+
+ self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size)
+
+ def forward(self, x):
+ B, C, H, W = x.shape
+ x = self.proj(x).flatten(2).transpose(1, 2)
+ return x
+
+
+class VisionTransformer(nn.Module):
+ """ Vision Transformer """
+ def __init__(self, img_size=[224], patch_size=16, in_chans=3, num_classes=0, embed_dim=768, depth=12,
+ num_heads=12, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop_rate=0., attn_drop_rate=0.,
+ drop_path_rate=0., norm_layer=nn.LayerNorm, **kwargs):
+ super().__init__()
+ self.num_features = self.embed_dim = embed_dim
+
+ self.patch_embed = PatchEmbed(
+ img_size=img_size[0], patch_size=patch_size, in_chans=in_chans, embed_dim=embed_dim)
+ num_patches = self.patch_embed.num_patches
+
+ self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dim))
+ self.pos_embed = nn.Parameter(torch.zeros(1, num_patches + 1, embed_dim))
+ self.pos_drop = nn.Dropout(p=drop_rate)
+
+ dpr = [x.item() for x in torch.linspace(0, drop_path_rate, depth)] # stochastic depth decay rule
+ self.blocks = nn.ModuleList([
+ Block(
+ dim=embed_dim, num_heads=num_heads, mlp_ratio=mlp_ratio, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ drop=drop_rate, attn_drop=attn_drop_rate, drop_path=dpr[i], norm_layer=norm_layer)
+ for i in range(depth)])
+ self.norm = norm_layer(embed_dim)
+
+ # Classifier head
+ self.head = nn.Linear(embed_dim, num_classes) if num_classes > 0 else nn.Identity()
+
+ trunc_normal_(self.pos_embed, std=.02)
+ trunc_normal_(self.cls_token, std=.02)
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+
+ def interpolate_pos_encoding(self, x, w, h):
+ npatch = x.shape[1] - 1
+ N = self.pos_embed.shape[1] - 1
+ if npatch == N and w == h:
+ return self.pos_embed
+ class_pos_embed = self.pos_embed[:, 0]
+ patch_pos_embed = self.pos_embed[:, 1:]
+ dim = x.shape[-1]
+ w0 = w // self.patch_embed.patch_size
+ h0 = h // self.patch_embed.patch_size
+ # we add a small number to avoid floating point error in the interpolation
+ # see discussion at https://github.com/facebookresearch/dino/issues/8
+ w0, h0 = w0 + 0.1, h0 + 0.1
+ patch_pos_embed = nn.functional.interpolate(
+ patch_pos_embed.reshape(1, int(math.sqrt(N)), int(math.sqrt(N)), dim).permute(0, 3, 1, 2),
+ scale_factor=(w0 / math.sqrt(N), h0 / math.sqrt(N)),
+ mode='bicubic',
+ )
+ assert int(w0) == patch_pos_embed.shape[-2] and int(h0) == patch_pos_embed.shape[-1]
+ patch_pos_embed = patch_pos_embed.permute(0, 2, 3, 1).view(1, -1, dim)
+ return torch.cat((class_pos_embed.unsqueeze(0), patch_pos_embed), dim=1)
+
+ def prepare_tokens(self, x):
+ B, nc, w, h = x.shape
+ x = self.patch_embed(x) # patch linear embedding
+
+ # add the [CLS] token to the embed patch tokens
+ cls_tokens = self.cls_token.expand(B, -1, -1)
+ x = torch.cat((cls_tokens, x), dim=1)
+
+ # add positional encoding to each token
+ x = x + self.interpolate_pos_encoding(x, w, h)
+
+ return self.pos_drop(x)
+
+ def forward(self, x):
+ x = self.prepare_tokens(x)
+ for blk in self.blocks:
+ x = blk(x)
+ x = self.norm(x)
+ return x[:, 0]
+
+ def get_last_selfattention(self, x):
+ x = self.prepare_tokens(x)
+ for i, blk in enumerate(self.blocks):
+ if i < len(self.blocks) - 1:
+ x = blk(x)
+ else:
+ # return attention of the last block
+ return blk(x, return_attention=True)
+
+ def get_intermediate_layers(self, x, n=1):
+ x = self.prepare_tokens(x)
+ # we return the output tokens from the `n` last blocks
+ output = []
+ for i, blk in enumerate(self.blocks):
+ x = blk(x)
+ if len(self.blocks) - i <= n:
+ output.append(self.norm(x))
+ return output
+
+
+def vit_small(patch_size=16, **kwargs):
+ model = VisionTransformer(
+ patch_size=patch_size, embed_dim=384, depth=12, num_heads=6, mlp_ratio=4,
+ qkv_bias=True, norm_layer=partial(nn.LayerNorm, eps=1e-6), **kwargs)
+ return model
+
+
+def vit_base(patch_size=16, **kwargs):
+ model = VisionTransformer(
+ patch_size=patch_size, embed_dim=768, depth=12, num_heads=12, mlp_ratio=4,
+ qkv_bias=True, norm_layer=partial(nn.LayerNorm, eps=1e-6), **kwargs)
+ return model
+
+class ViTFeat(nn.Module):
+ """ Vision Transformer """
+ def __init__(self, pretrained_pth, feat_dim, vit_arch = 'base', vit_feat = 'k', patch_size=16):
+ super().__init__()
+ if vit_arch == 'base' :
+ self.model = vit_base(patch_size=patch_size, num_classes=0)
+
+ else :
+ self.model = vit_small(patch_size=patch_size, num_classes=0)
+
+ self.feat_dim = feat_dim
+ self.vit_feat = vit_feat
+ self.patch_size = patch_size
+
+# state_dict = torch.load(pretrained_pth, map_location="cpu")
+ state_dict = torch.hub.load_state_dict_from_url(pretrained_pth)
+ self.model.load_state_dict(state_dict, strict=True)
+ print('Loading weight from {}'.format(pretrained_pth))
+
+
+ def forward(self, img) :
+ feat_out = {}
+ def hook_fn_forward_qkv(module, input, output):
+ feat_out["qkv"] = output
+
+ self.model._modules["blocks"][-1]._modules["attn"]._modules["qkv"].register_forward_hook(hook_fn_forward_qkv)
+
+
+ # Forward pass in the model
+ with torch.no_grad() :
+ h, w = img.shape[2], img.shape[3]
+ feat_h, feat_w = h // self.patch_size, w // self.patch_size
+ attentions = self.model.get_last_selfattention(img)
+ bs, nb_head, nb_token = attentions.shape[0], attentions.shape[1], attentions.shape[2]
+ qkv = (
+ feat_out["qkv"]
+ .reshape(bs, nb_token, 3, nb_head, -1)
+ .permute(2, 0, 3, 1, 4)
+ )
+ q, k, v = qkv[0], qkv[1], qkv[2]
+
+ k = k.transpose(1, 2).reshape(bs, nb_token, -1)
+ q = q.transpose(1, 2).reshape(bs, nb_token, -1)
+ v = v.transpose(1, 2).reshape(bs, nb_token, -1)
+
+ # Modality selection
+ if self.vit_feat == "k":
+ feats = k[:, 1:].transpose(1, 2).reshape(bs, self.feat_dim, feat_h * feat_w)
+ elif self.vit_feat == "q":
+ feats = q[:, 1:].transpose(1, 2).reshape(bs, self.feat_dim, feat_h * feat_w)
+ elif self.vit_feat == "v":
+ feats = v[:, 1:].transpose(1, 2).reshape(bs, self.feat_dim, feat_h * feat_w)
+ elif self.vit_feat == "kqv":
+ k = k[:, 1:].transpose(1, 2).reshape(bs, self.feat_dim, feat_h * feat_w)
+ q = q[:, 1:].transpose(1, 2).reshape(bs, self.feat_dim, feat_h * feat_w)
+ v = v[:, 1:].transpose(1, 2).reshape(bs, self.feat_dim, feat_h * feat_w)
+ feats = torch.cat([k, q, v], dim=1)
+ return feats
+
+
+if __name__ == "__main__":
+ vit_arch = 'base'
+ vit_feat = 'k'
+
+ model = ViTFeat(vit_arch, vit_feat)
+ img = torch.cuda.FloatTensor(4, 3, 224, 224)
+ model.cuda()
+ # Forward pass in the model
+ feat = model(img)
+ print (feat.shape)
diff --git a/maskcut/maskcut.py b/maskcut/maskcut.py
new file mode 100644
index 0000000000000000000000000000000000000000..48b34d9d279543200ab37368b738ed03f7277645
--- /dev/null
+++ b/maskcut/maskcut.py
@@ -0,0 +1,416 @@
+#!/usr/bin/env python3
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+import os
+import sys
+sys.path.append('../')
+import argparse
+import numpy as np
+from tqdm import tqdm
+import re
+import datetime
+import PIL
+import PIL.Image as Image
+import torch
+import torch.nn.functional as F
+from torchvision import transforms
+from pycocotools import mask
+import pycocotools.mask as mask_util
+from scipy import ndimage
+from scipy.linalg import eigh
+import json
+
+import dino
+# modfied by Xudong Wang based on third_party/TokenCut
+sys.path.append('../')
+sys.path.append('../third_party')
+from TokenCut.unsupervised_saliency_detection import utils, metric
+from TokenCut.unsupervised_saliency_detection.object_discovery import detect_box
+# bilateral_solver codes are modfied based on https://github.com/poolio/bilateral_solver/blob/master/notebooks/bilateral_solver.ipynb
+# from TokenCut.unsupervised_saliency_detection.bilateral_solver import BilateralSolver, BilateralGrid
+# crf codes are are modfied based on https://github.com/lucasb-eyer/pydensecrf/blob/master/pydensecrf/tests/test_dcrf.py
+from crf import densecrf
+
+# Image transformation applied to all images
+ToTensor = transforms.Compose([transforms.ToTensor(),
+ transforms.Normalize(
+ (0.485, 0.456, 0.406),
+ (0.229, 0.224, 0.225)),])
+
+def get_affinity_matrix(feats, tau, eps=1e-5):
+ # get affinity matrix via measuring patch-wise cosine similarity
+ feats = F.normalize(feats, p=2, dim=0)
+ A = (feats.transpose(0,1) @ feats).cpu().numpy()
+ # convert the affinity matrix to a binary one.
+ A = A > tau
+ A = np.where(A.astype(float) == 0, eps, A)
+ d_i = np.sum(A, axis=1)
+ D = np.diag(d_i)
+ return A, D
+
+def second_smallest_eigenvector(A, D):
+ # get the second smallest eigenvector from affinity matrix
+ _, eigenvectors = eigh(D-A, D, subset_by_index=[1,2])
+ eigenvec = np.copy(eigenvectors[:, 0])
+ second_smallest_vec = eigenvectors[:, 0]
+ return eigenvec, second_smallest_vec
+
+def get_salient_areas(second_smallest_vec):
+ # get the area corresponding to salient objects.
+ avg = np.sum(second_smallest_vec) / len(second_smallest_vec)
+ bipartition = second_smallest_vec > avg
+ return bipartition
+
+def check_num_fg_corners(bipartition, dims):
+ # check number of corners belonging to the foreground
+ bipartition_ = bipartition.reshape(dims)
+ top_l, top_r, bottom_l, bottom_r = bipartition_[0][0], bipartition_[0][-1], bipartition_[-1][0], bipartition_[-1][-1]
+ nc = int(top_l) + int(top_r) + int(bottom_l) + int(bottom_r)
+ return nc
+
+def get_masked_affinity_matrix(painting, feats, mask, ps):
+ # mask out affinity matrix based on the painting matrix
+ dim, num_patch = feats.size()[0], feats.size()[1]
+ painting = painting + mask.unsqueeze(0)
+ painting[painting > 0] = 1
+ painting[painting <= 0] = 0
+ feats = feats.clone().view(dim, ps, ps)
+ feats = ((1 - painting) * feats).view(dim, num_patch)
+ return feats, painting
+
+def maskcut_forward(feats, dims, scales, init_image_size, tau=0, N=3, cpu=False):
+ """
+ Implementation of MaskCut.
+ Inputs
+ feats: the pixel/patche features of an image
+ dims: dimension of the map from which the features are used
+ scales: from image to map scale
+ init_image_size: size of the image
+ tau: thresold for graph construction
+ N: number of pseudo-masks per image.
+ """
+ bipartitions = []
+ eigvecs = []
+
+ for i in range(N):
+ if i == 0:
+ painting = torch.from_numpy(np.zeros(dims))
+ if not cpu: painting = painting.cuda()
+ else:
+ feats, painting = get_masked_affinity_matrix(painting, feats, current_mask, ps)
+
+ # construct the affinity matrix
+ A, D = get_affinity_matrix(feats, tau)
+ # get the second smallest eigenvector
+ eigenvec, second_smallest_vec = second_smallest_eigenvector(A, D)
+ # get salient area
+ bipartition = get_salient_areas(second_smallest_vec)
+
+ # check if we should reverse the partition based on:
+ # 1) peak of the 2nd smallest eigvec 2) object centric bias
+ seed = np.argmax(np.abs(second_smallest_vec))
+ nc = check_num_fg_corners(bipartition, dims)
+ if nc >= 3:
+ reverse = True
+ else:
+ reverse = bipartition[seed] != 1
+
+ if reverse:
+ # reverse bipartition, eigenvector and get new seed
+ eigenvec = eigenvec * -1
+ bipartition = np.logical_not(bipartition)
+ seed = np.argmax(eigenvec)
+ else:
+ seed = np.argmax(second_smallest_vec)
+
+ # get pxiels corresponding to the seed
+ bipartition = bipartition.reshape(dims).astype(float)
+ _, _, _, cc = detect_box(bipartition, seed, dims, scales=scales, initial_im_size=init_image_size)
+ pseudo_mask = np.zeros(dims)
+ pseudo_mask[cc[0],cc[1]] = 1
+ pseudo_mask = torch.from_numpy(pseudo_mask)
+ if not cpu: pseudo_mask = pseudo_mask.to('cuda')
+ ps = pseudo_mask.shape[0]
+
+ # check if the extra mask is heavily overlapped with the previous one or is too small.
+ if i >= 1:
+ ratio = torch.sum(pseudo_mask) / pseudo_mask.size()[0] / pseudo_mask.size()[1]
+ if metric.IoU(current_mask, pseudo_mask) > 0.5 or ratio <= 0.01:
+ pseudo_mask = np.zeros(dims)
+ pseudo_mask = torch.from_numpy(pseudo_mask)
+ if not cpu: pseudo_mask = pseudo_mask.to('cuda')
+ current_mask = pseudo_mask
+
+ # mask out foreground areas in previous stages
+ masked_out = 0 if len(bipartitions) == 0 else np.sum(bipartitions, axis=0)
+ bipartition = F.interpolate(pseudo_mask.unsqueeze(0).unsqueeze(0), size=init_image_size, mode='nearest').squeeze()
+ bipartition_masked = bipartition.cpu().numpy() - masked_out
+ bipartition_masked[bipartition_masked <= 0] = 0
+ bipartitions.append(bipartition_masked)
+
+ # unsample the eigenvec
+ eigvec = second_smallest_vec.reshape(dims)
+ eigvec = torch.from_numpy(eigvec)
+ if not cpu: eigvec = eigvec.to('cuda')
+ eigvec = F.interpolate(eigvec.unsqueeze(0).unsqueeze(0), size=init_image_size, mode='nearest').squeeze()
+ eigvecs.append(eigvec.cpu().numpy())
+
+ return seed, bipartitions, eigvecs
+
+def maskcut(img_path, backbone,patch_size, tau, N=1, fixed_size=480, cpu=False) :
+ I = Image.open(img_path).convert('RGB')
+ bipartitions, eigvecs = [], []
+
+ I_new = I.resize((int(fixed_size), int(fixed_size)), PIL.Image.LANCZOS)
+ I_resize, w, h, feat_w, feat_h = utils.resize_pil(I_new, patch_size)
+
+ tensor = ToTensor(I_resize).unsqueeze(0)
+ if not cpu: tensor = tensor.cuda()
+ feat = backbone(tensor)[0]
+
+ _, bipartition, eigvec = maskcut_forward(feat, [feat_h, feat_w], [patch_size, patch_size], [h,w], tau, N=N, cpu=cpu)
+
+ bipartitions += bipartition
+ eigvecs += eigvec
+
+ return bipartitions, eigvecs, I_new
+
+def resize_binary_mask(array, new_size):
+ image = Image.fromarray(array.astype(np.uint8)*255)
+ image = image.resize(new_size)
+ return np.asarray(image).astype(np.bool_)
+
+def close_contour(contour):
+ if not np.array_equal(contour[0], contour[-1]):
+ contour = np.vstack((contour, contour[0]))
+ return contour
+
+
+def create_image_info(image_id, file_name, image_size,
+ date_captured=datetime.datetime.utcnow().isoformat(' '),
+ license_id=1, coco_url="", flickr_url=""):
+ """Return image_info in COCO style
+ Args:
+ image_id: the image ID
+ file_name: the file name of each image
+ image_size: image size in the format of (width, height)
+ date_captured: the date this image info is created
+ license: license of this image
+ coco_url: url to COCO images if there is any
+ flickr_url: url to flickr if there is any
+ """
+ image_info = {
+ "id": image_id,
+ "file_name": file_name,
+ "width": image_size[0],
+ "height": image_size[1],
+ "date_captured": date_captured,
+ "license": license_id,
+ "coco_url": coco_url,
+ "flickr_url": flickr_url
+ }
+ return image_info
+
+
+def create_annotation_info(annotation_id, image_id, category_info, binary_mask,
+ image_size=None, bounding_box=None):
+ """Return annotation info in COCO style
+ Args:
+ annotation_id: the annotation ID
+ image_id: the image ID
+ category_info: the information on categories
+ binary_mask: a 2D binary numpy array where '1's represent the object
+ file_name: the file name of each image
+ image_size: image size in the format of (width, height)
+ bounding_box: the bounding box for detection task. If bounding_box is not provided,
+ we will generate one according to the binary mask.
+ """
+ upper = np.max(binary_mask)
+ lower = np.min(binary_mask)
+ thresh = upper / 2.0
+ binary_mask[binary_mask > thresh] = upper
+ binary_mask[binary_mask <= thresh] = lower
+ if image_size is not None:
+ binary_mask = resize_binary_mask(binary_mask.astype(np.uint8), image_size)
+
+ binary_mask_encoded = mask.encode(np.asfortranarray(binary_mask.astype(np.uint8)))
+
+ area = mask.area(binary_mask_encoded)
+ if area < 1:
+ return None
+
+ if bounding_box is None:
+ bounding_box = mask.toBbox(binary_mask_encoded)
+
+ rle = mask_util.encode(np.array(binary_mask[...,None], order="F", dtype="uint8"))[0]
+ rle['counts'] = rle['counts'].decode('ascii')
+ segmentation = rle
+
+ annotation_info = {
+ "id": annotation_id,
+ "image_id": image_id,
+ "category_id": category_info["id"],
+ "iscrowd": 0,
+ "area": area.tolist(),
+ "bbox": bounding_box.tolist(),
+ "segmentation": segmentation,
+ "width": binary_mask.shape[1],
+ "height": binary_mask.shape[0],
+ }
+
+ return annotation_info
+
+# necessay info used for coco style annotations
+INFO = {
+ "description": "ImageNet-1K: pseudo-masks with MaskCut",
+ "url": "https://github.com/facebookresearch/CutLER",
+ "version": "1.0",
+ "year": 2023,
+ "contributor": "Xudong Wang",
+ "date_created": datetime.datetime.utcnow().isoformat(' ')
+}
+
+LICENSES = [
+ {
+ "id": 1,
+ "name": "Apache License",
+ "url": "https://github.com/facebookresearch/CutLER/blob/main/LICENSE"
+ }
+]
+
+# only one class, i.e. foreground
+CATEGORIES = [
+ {
+ 'id': 1,
+ 'name': 'fg',
+ 'supercategory': 'fg',
+ },
+]
+
+convert = lambda text: int(text) if text.isdigit() else text.lower()
+natrual_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
+
+output = {
+ "info": INFO,
+ "licenses": LICENSES,
+ "categories": CATEGORIES,
+ "images": [],
+ "annotations": []}
+
+category_info = {
+ "is_crowd": 0,
+ "id": 1
+}
+
+if __name__ == "__main__":
+
+ parser = argparse.ArgumentParser('MaskCut script')
+ # default arguments
+ parser.add_argument('--out-dir', type=str, help='output directory')
+ parser.add_argument('--vit-arch', type=str, default='small', choices=['base', 'small'], help='which architecture')
+ parser.add_argument('--vit-feat', type=str, default='k', choices=['k', 'q', 'v', 'kqv'], help='which features')
+ parser.add_argument('--patch-size', type=int, default=16, choices=[16, 8], help='patch size')
+ parser.add_argument('--nb-vis', type=int, default=20, choices=[1, 200], help='nb of visualization')
+ parser.add_argument('--img-path', type=str, default=None, help='single image visualization')
+
+ # additional arguments
+ parser.add_argument('--dataset-path', type=str, default="imagenet/train/", help='path to the dataset')
+ parser.add_argument('--tau', type=float, default=0.2, help='threshold used for producing binary graph')
+ parser.add_argument('--num-folder-per-job', type=int, default=1, help='the number of folders each job processes')
+ parser.add_argument('--job-index', type=int, default=0, help='the index of the job (for imagenet: in the range of 0 to 1000/args.num_folder_per_job-1)')
+ parser.add_argument('--fixed_size', type=int, default=480, help='rescale the input images to a fixed size')
+ parser.add_argument('--pretrain_path', type=str, default=None, help='path to pretrained model')
+ parser.add_argument('--N', type=int, default=3, help='the maximum number of pseudo-masks per image')
+ parser.add_argument('--cpu', action='store_true', help='use cpu')
+
+ args = parser.parse_args()
+
+ if args.pretrain_path is not None:
+ url = args.pretrain_path
+ if args.vit_arch == 'base' and args.patch_size == 8:
+ if args.pretrain_path is None:
+ url = "https://dl.fbaipublicfiles.com/dino/dino_vitbase8_pretrain/dino_vitbase8_pretrain.pth"
+ feat_dim = 768
+ elif args.vit_arch == 'small' and args.patch_size == 8:
+ if args.pretrain_path is None:
+ url = "https://dl.fbaipublicfiles.com/dino/dino_deitsmall8_300ep_pretrain/dino_deitsmall8_300ep_pretrain.pth"
+ feat_dim = 384
+
+ backbone = dino.ViTFeat(url, feat_dim, args.vit_arch, args.vit_feat, args.patch_size)
+
+ msg = 'Load {} pre-trained feature...'.format(args.vit_arch)
+ print (msg)
+ backbone.eval()
+ if not args.cpu:
+ backbone.cuda()
+
+ img_folders = os.listdir(args.dataset_path)
+
+ if args.out_dir is not None and not os.path.exists(args.out_dir) :
+ os.mkdir(args.out_dir)
+
+ start_idx = max(args.job_index*args.num_folder_per_job, 0)
+ end_idx = min((args.job_index+1)*args.num_folder_per_job, len(img_folders))
+
+ image_id, segmentation_id = 1, 1
+ image_names = []
+ for img_folder in img_folders[start_idx:end_idx]:
+ args.img_dir = os.path.join(args.dataset_path, img_folder)
+ img_list = sorted(os.listdir(args.img_dir))
+
+ for img_name in tqdm(img_list) :
+ # get image path
+ img_path = os.path.join(args.img_dir, img_name)
+ # get pseudo-masks for each image using MaskCut
+ try:
+ bipartitions, _, I_new = maskcut(img_path, backbone, args.patch_size, \
+ args.tau, N=args.N, fixed_size=args.fixed_size, cpu=args.cpu)
+ except:
+ print(f'Skipping {img_name}')
+ continue
+
+ I = Image.open(img_path).convert('RGB')
+ width, height = I.size
+ for idx, bipartition in enumerate(bipartitions):
+ # post-process pesudo-masks with CRF
+ pseudo_mask = densecrf(np.array(I_new), bipartition)
+ pseudo_mask = ndimage.binary_fill_holes(pseudo_mask>=0.5)
+
+ # filter out the mask that have a very different pseudo-mask after the CRF
+ mask1 = torch.from_numpy(bipartition)
+ mask2 = torch.from_numpy(pseudo_mask)
+ if not args.cpu:
+ mask1 = mask1.cuda()
+ mask2 = mask2.cuda()
+ if metric.IoU(mask1, mask2) < 0.5:
+ pseudo_mask = pseudo_mask * -1
+
+ # construct binary pseudo-masks
+ pseudo_mask[pseudo_mask < 0] = 0
+ pseudo_mask = Image.fromarray(np.uint8(pseudo_mask*255))
+ pseudo_mask = np.asarray(pseudo_mask.resize((width, height)))
+
+ # create coco-style image info
+ if img_name not in image_names:
+ image_info = create_image_info(
+ image_id, "{}/{}".format(img_folder, img_name), (height, width, 3))
+ output["images"].append(image_info)
+ image_names.append(img_name)
+
+ # create coco-style annotation info
+ annotation_info = create_annotation_info(
+ segmentation_id, image_id, category_info, pseudo_mask.astype(np.uint8), None)
+ if annotation_info is not None:
+ output["annotations"].append(annotation_info)
+ segmentation_id += 1
+ image_id += 1
+
+ # save annotations
+ if len(img_folders) == args.num_folder_per_job and args.job_index == 0:
+ json_name = '{}/imagenet_train_fixsize{}_tau{}_N{}.json'.format(args.out_dir, args.fixed_size, args.tau, args.N)
+ else:
+ json_name = '{}/imagenet_train_fixsize{}_tau{}_N{}_{}_{}.json'.format(args.out_dir, args.fixed_size, args.tau, args.N, start_idx, end_idx)
+ with open(json_name, 'w') as output_json_file:
+ json.dump(output, output_json_file)
+ print(f'dumping {json_name}')
+ print("Done: {} images; {} anns.".format(len(output['images']), len(output['annotations'])))
\ No newline at end of file
diff --git a/maskcut/maskcut_with_submitit.py b/maskcut/maskcut_with_submitit.py
new file mode 100644
index 0000000000000000000000000000000000000000..85c8de2bd11ebb705632062e2f6cc79ae3f5a12f
--- /dev/null
+++ b/maskcut/maskcut_with_submitit.py
@@ -0,0 +1,405 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+#!/usr/bin/env python3
+import os
+import sys
+sys.path.append('../')
+import argparse
+import numpy as np
+from tqdm import tqdm
+import re
+import datetime
+import PIL
+import PIL.Image as Image
+import torch
+import torch.nn.functional as F
+from torchvision import transforms
+from itertools import groupby
+from pycocotools import mask
+import pycocotools.mask as mask_util
+from scipy import ndimage
+from scipy.linalg import eigh
+import json
+
+import dino # model
+from third_party.TokenCut.unsupervised_saliency_detection import utils, metric
+from third_party.TokenCut.unsupervised_saliency_detection.object_discovery import detect_box
+# Modified by XuDong Wang from third_party/TokenCut
+# bilateral_solver codes are modfied based on https://github.com/poolio/bilateral_solver/blob/master/notebooks/bilateral_solver.ipynb
+# from third_party.TokenCut.unsupervised_saliency_detection.bilateral_solver import BilateralSolver, BilateralGrid
+# crf codes are are modfied based on https://github.com/lucasb-eyer/pydensecrf/blob/master/pydensecrf/tests/test_dcrf.py
+from crf import densecrf
+
+# Image transformation applied to all images
+ToTensor = transforms.Compose([transforms.ToTensor(),
+ transforms.Normalize(
+ (0.485, 0.456, 0.406),
+ (0.229, 0.224, 0.225)),])
+
+def get_affinity_matrix(feats, tau, eps=1e-5):
+ # get affinity matrix via measuring patch-wise cosine similarity
+ feats = F.normalize(feats, p=2, dim=0)
+ A = (feats.transpose(0,1) @ feats).cpu().numpy()
+ # convert the affinity matrix to a binary one.
+ A = A > tau
+ A = np.where(A.astype(float) == 0, eps, A)
+ d_i = np.sum(A, axis=1)
+ D = np.diag(d_i)
+ return A, D
+
+def second_smallest_eigenvector(A, D):
+ # get the second smallest eigenvector from affinity matrix
+ _, eigenvectors = eigh(D-A, D, subset_by_index=[1,2])
+ eigenvec = np.copy(eigenvectors[:, 0])
+ second_smallest_vec = eigenvectors[:, 0]
+ return eigenvec, second_smallest_vec
+
+def get_salient_areas(second_smallest_vec):
+ # get the area corresponding to salient objects.
+ avg = np.sum(second_smallest_vec) / len(second_smallest_vec)
+ bipartition = second_smallest_vec > avg
+ return bipartition
+
+def check_num_fg_corners(bipartition, dims):
+ # check number of corners belonging to the foreground
+ bipartition_ = bipartition.reshape(dims)
+ top_l, top_r, bottom_l, bottom_r = bipartition_[0][0], bipartition_[0][-1], bipartition_[-1][0], bipartition_[-1][-1]
+ nc = int(top_l) + int(top_r) + int(bottom_l) + int(bottom_r)
+ return nc
+
+def get_masked_affinity_matrix(painting, feats, mask, ps):
+ # mask out affinity matrix based on the painting matrix
+ dim, num_patch = feats.size()[0], feats.size()[1]
+ painting = painting + mask.unsqueeze(0)
+ painting[painting > 0] = 1
+ painting[painting <= 0] = 0
+ feats = feats.clone().view(dim, ps, ps)
+ feats = ((1 - painting) * feats).view(dim, num_patch)
+ return feats, painting
+
+def maskcut_forward(feats, dims, scales, init_image_size, tau=0, N=3):
+ """
+ Implementation of MaskCut.
+ Inputs
+ feats: the pixel/patche features of an image
+ dims: dimension of the map from which the features are used
+ scales: from image to map scale
+ init_image_size: size of the image
+ tau: thresold for graph construction
+ N: number of pseudo-masks per image.
+ """
+ bipartitions = []
+ eigvecs = []
+
+ for i in range(N):
+ if i == 0:
+ painting = torch.from_numpy(np.zeros(dims)).cuda()
+ else:
+ feats, painting = get_masked_affinity_matrix(painting, feats, current_mask, ps)
+
+ # construct the affinity matrix
+ A, D = get_affinity_matrix(feats, tau)
+ # get the second smallest eigenvector
+ eigenvec, second_smallest_vec = second_smallest_eigenvector(A, D)
+ # get salient area
+ bipartition = get_salient_areas(second_smallest_vec)
+
+ # check if we should reverse the partition based on:
+ # 1) peak of the 2nd smallest eigvec 2) object centric bias
+ seed = np.argmax(np.abs(second_smallest_vec))
+ nc = check_num_fg_corners(bipartition, dims)
+ if nc >= 3:
+ reverse = True
+ else:
+ reverse = bipartition[seed] != 1
+
+ if reverse:
+ # reverse bipartition, eigenvector and get new seed
+ eigenvec = eigenvec * -1
+ bipartition = np.logical_not(bipartition)
+ seed = np.argmax(eigenvec)
+ else:
+ seed = np.argmax(second_smallest_vec)
+
+ # get pxiels corresponding to the seed
+ bipartition = bipartition.reshape(dims).astype(float)
+ _, _, _, cc = detect_box(bipartition, seed, dims, scales=scales, initial_im_size=init_image_size) ## We only extract the principal object BBox
+ pseudo_mask = np.zeros(dims)
+ pseudo_mask[cc[0],cc[1]] = 1
+ pseudo_mask = torch.from_numpy(pseudo_mask).to('cuda')
+ ps = pseudo_mask.shape[0]
+
+ # check if the extra mask is heavily overlapped with the previous one or is too small.
+ if i >= 1:
+ ratio = torch.sum(pseudo_mask) / pseudo_mask.size()[0] / pseudo_mask.size()[1]
+ if metric.IoU(current_mask, pseudo_mask) > 0.5 or ratio <= 0.01:
+ pseudo_mask = np.zeros(dims)
+ pseudo_mask = torch.from_numpy(pseudo_mask).to('cuda')
+ current_mask = pseudo_mask
+
+ # mask out foreground areas in previous stages
+ masked_out = 0 if len(bipartitions) == 0 else np.sum(bipartitions, axis=0)
+ bipartition = F.interpolate(pseudo_mask.unsqueeze(0).unsqueeze(0), size=init_image_size, mode='nearest').squeeze()
+ bipartition_masked = bipartition.cpu().numpy() - masked_out
+ bipartition_masked[bipartition_masked <= 0] = 0
+ bipartitions.append(bipartition_masked)
+
+ # unsample the eigenvec
+ eigvec = second_smallest_vec.reshape(dims)
+ eigvec = torch.from_numpy(eigvec).to('cuda')
+ eigvec = F.interpolate(eigvec.unsqueeze(0).unsqueeze(0), size=init_image_size, mode='nearest').squeeze()
+ eigvecs.append(eigvec.cpu().numpy())
+
+ return seed, bipartitions, eigvecs
+
+def maskcut(img_path, backbone,patch_size, tau, N=1, fixed_size=480) :
+ I = Image.open(img_path).convert('RGB')
+ bipartitions, eigvecs = [], []
+
+ I_new = I.resize((int(fixed_size), int(fixed_size)), PIL.Image.LANCZOS)
+ I_resize, w, h, feat_w, feat_h = utils.resize_pil(I_new, patch_size)
+
+ tensor = ToTensor(I_resize).unsqueeze(0).cuda()
+ feat = backbone(tensor)[0]
+
+ _, bipartition, eigvec = maskcut_forward(feat, [feat_h, feat_w], [patch_size, patch_size], [h,w], tau, N=N)
+
+ bipartitions += bipartition
+ eigvecs += eigvec
+
+ return bipartitions, eigvecs, I_new
+
+def resize_binary_mask(array, new_size):
+ image = Image.fromarray(array.astype(np.uint8)*255)
+ image = image.resize(new_size)
+ return np.asarray(image).astype(np.bool_)
+
+def close_contour(contour):
+ if not np.array_equal(contour[0], contour[-1]):
+ contour = np.vstack((contour, contour[0]))
+ return contour
+
+def create_image_info(image_id, file_name, image_size,
+ date_captured=datetime.datetime.utcnow().isoformat(' '),
+ license_id=1, coco_url="", flickr_url=""):
+ """Return image_info in COCO style
+ Args:
+ image_id: the image ID
+ file_name: the file name of each image
+ image_size: image size in the format of (width, height)
+ date_captured: the date this image info is created
+ license: license of this image
+ coco_url: url to COCO images if there is any
+ flickr_url: url to flickr if there is any
+ """
+ image_info = {
+ "id": image_id,
+ "file_name": file_name,
+ "width": image_size[0],
+ "height": image_size[1],
+ "date_captured": date_captured,
+ "license": license_id,
+ "coco_url": coco_url,
+ "flickr_url": flickr_url
+ }
+ return image_info
+
+
+def create_annotation_info(annotation_id, image_id, category_info, binary_mask,
+ image_size=None, bounding_box=None):
+ """Return annotation info in COCO style
+ Args:
+ annotation_id: the annotation ID
+ image_id: the image ID
+ category_info: the information on categories
+ binary_mask: a 2D binary numpy array where '1's represent the object
+ file_name: the file name of each image
+ image_size: image size in the format of (width, height)
+ bounding_box: the bounding box for detection task. If bounding_box is not provided,
+ we will generate one according to the binary mask.
+ """
+ upper = np.max(binary_mask)
+ lower = np.min(binary_mask)
+ thresh = upper / 2.0
+ binary_mask[binary_mask > thresh] = upper
+ binary_mask[binary_mask <= thresh] = lower
+ if image_size is not None:
+ binary_mask = resize_binary_mask(binary_mask.astype(np.uint8), image_size)
+
+ binary_mask_encoded = mask.encode(np.asfortranarray(binary_mask.astype(np.uint8)))
+
+ area = mask.area(binary_mask_encoded)
+ if area < 1:
+ return None
+
+ if bounding_box is None:
+ bounding_box = mask.toBbox(binary_mask_encoded)
+
+ rle = mask_util.encode(np.array(binary_mask[...,None], order="F", dtype="uint8"))[0]
+ rle['counts'] = rle['counts'].decode('ascii')
+ segmentation = rle
+
+ annotation_info = {
+ "id": annotation_id,
+ "image_id": image_id,
+ "category_id": category_info["id"],
+ "iscrowd": 0,
+ "area": area.tolist(),
+ "bbox": bounding_box.tolist(),
+ "segmentation": segmentation,
+ "width": binary_mask.shape[1],
+ "height": binary_mask.shape[0],
+ }
+
+ return annotation_info
+
+# necessay info used for coco style annotations
+INFO = {
+ "description": "ImageNet-1K: pseudo-masks with MaskCut",
+ "url": "https://github.com/facebookresearch/CutLER",
+ "version": "1.0",
+ "year": 2022,
+ "contributor": "Xudong Wang",
+ "date_created": datetime.datetime.utcnow().isoformat(' ')
+}
+
+LICENSES = [
+ {
+ "id": 1,
+ "name": "Apache License",
+ "url": "https://github.com/facebookresearch/CutLER/blob/main/LICENSE"
+ }
+]
+
+# only one class, i.e. foreground
+CATEGORIES = [
+ {
+ 'id': 1,
+ 'name': 'fg',
+ 'supercategory': 'fg',
+ },
+]
+
+convert = lambda text: int(text) if text.isdigit() else text.lower()
+natrual_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
+
+output = {
+ "info": INFO,
+ "licenses": LICENSES,
+ "categories": CATEGORIES,
+ "images": [],
+ "annotations": []}
+
+category_info = {
+ "is_crowd": 0,
+ "id": 1
+}
+
+def get_args_parser():
+ parser = argparse.ArgumentParser('MaskCut script', add_help=False)
+ # default arguments
+ parser.add_argument('--out-dir', type=str, help='output directory')
+ parser.add_argument('--vit-arch', type=str, default='small', choices=['base', 'small'], help='which architecture')
+ parser.add_argument('--vit-feat', type=str, default='k', choices=['k', 'q', 'v', 'kqv'], help='which features')
+ parser.add_argument('--patch-size', type=int, default=16, choices=[16, 8], help='patch size')
+ parser.add_argument('--nb-vis', type=int, default=20, choices=[1, 200], help='nb of visualization')
+ parser.add_argument('--img-path', type=str, default=None, help='single image visualization')
+
+ # additional arguments
+ parser.add_argument('--dataset-path', type=str, default="imagenet/train/", help='path to the dataset')
+ parser.add_argument('--tau', type=float, default=0.2, help='threshold used for producing binary graph')
+ parser.add_argument('--num-folder-per-job', type=int, default=1, help='the number of folders each job processes')
+ parser.add_argument('--job-index', type=int, default=0, help='the index of the job (for imagenet: in the range of 0 to 1000/args.num_folder_per_job-1)')
+ parser.add_argument('--fixed_size', type=int, default=480, help='rescale the input images to a fixed size')
+ parser.add_argument('--pretrain_path', type=str, default=None, help='path to pretrained model')
+ parser.add_argument('--N', type=int, default=3, help='the maximum number of pseudo-masks per image')
+ return parser
+
+## feature net
+def main(args):
+ if args.pretrain_path is not None:
+ url = args.pretrain_path
+ if args.vit_arch == 'base' and args.patch_size == 8:
+ if args.pretrain_path is None:
+ url = "https://dl.fbaipublicfiles.com/dino/dino_vitbase8_pretrain/dino_vitbase8_pretrain.pth"
+ feat_dim = 768
+ elif args.vit_arch == 'small' and args.patch_size == 8:
+ if args.pretrain_path is None:
+ url = "https://dl.fbaipublicfiles.com/dino/dino_deitsmall8_300ep_pretrain/dino_deitsmall8_300ep_pretrain.pth"
+ feat_dim = 384
+
+ backbone = dino.ViTFeat(url, feat_dim, args.vit_arch, args.vit_feat, args.patch_size)
+
+ msg = 'Load {} pre-trained feature...'.format(args.vit_arch)
+ print (msg)
+ backbone.eval()
+ backbone.cuda()
+
+ img_folders = os.listdir(args.dataset_path)
+
+ if args.out_dir is not None and not os.path.exists(args.out_dir) :
+ os.mkdir(args.out_dir)
+
+ start_idx = max(args.job_index*args.num_folder_per_job, 0)
+ end_idx = min((args.job_index+1)*args.num_folder_per_job, len(img_folders))
+
+ image_id, segmentation_id = 1, 1
+ image_names = []
+ for img_folder in img_folders[start_idx:end_idx]:
+ args.img_dir = os.path.join(args.dataset_path, img_folder)
+ img_list = sorted(os.listdir(args.img_dir))
+ for img_name in tqdm(img_list) :
+ if image_id >= 20:
+ break
+ # get image path
+ img_path = os.path.join(args.img_dir, img_name)
+ # get bipartitions for each image
+ try:
+ bipartitions, _, I_new = maskcut(img_path, backbone, args.patch_size, args.tau, \
+ N=args.N, fixed_size=args.fixed_size)
+ except:
+ print(f'Skipping {img_name}')
+ continue
+
+ I = Image.open(img_path).convert('RGB')
+ width, height = I.size
+ for idx, bipartition in enumerate(bipartitions):
+ # post-process pesudo-masks with CRF
+ pseudo_mask = densecrf(np.array(I_new), bipartition)
+ pseudo_mask = ndimage.binary_fill_holes(pseudo_mask>=0.5)
+
+ # filter out the mask that have a very different pseudo-mask after the CRF
+ mask1 = torch.from_numpy(bipartition).cuda()
+ mask2 = torch.from_numpy(pseudo_mask).cuda()
+ if metric.IoU(mask1, mask2) < 0.5:
+ pseudo_mask = pseudo_mask * -1
+
+ # construct binary pseudo-masks
+ pseudo_mask[pseudo_mask < 0] = 0
+ pseudo_mask = Image.fromarray(np.uint8(pseudo_mask*255))
+ pseudo_mask = np.asarray(pseudo_mask.resize((width, height)))
+
+ # create coco-style image info
+ if img_name not in image_names:
+ image_info = create_image_info(
+ image_id, "{}/{}".format(img_folder, img_name), (height, width, 3))
+ output["images"].append(image_info)
+ image_names.append(img_name)
+
+ # create coco-style annotation info
+ annotation_info = create_annotation_info(
+ segmentation_id, image_id, category_info, pseudo_mask.astype(np.uint8), None)
+ if annotation_info is not None:
+ output["annotations"].append(annotation_info)
+ segmentation_id += 1
+ image_id += 1
+
+ # dump annotations
+ if len(img_folders) == args.num_folder_per_job and args.job_index == 0:
+ json_name = '{}/imagenet_train_fixsize{}_tau{}_N{}.json'.format(args.out_dir, args.fixed_size, args.tau, args.N)
+ else:
+ json_name = '{}/imagenet_train_fixsize{}_tau{}_N{}_{}_{}.json'.format(args.out_dir, args.fixed_size, args.tau, args.N, start_idx, end_idx)
+ with open(json_name, 'w') as output_json_file:
+ json.dump(output, output_json_file)
+ print(f'dumping {json_name}')
+ print("Done: {} images; {} anns.".format(len(output['images']), len(output['annotations'])))
diff --git a/maskcut/merge_jsons.py b/maskcut/merge_jsons.py
new file mode 100644
index 0000000000000000000000000000000000000000..d50eaacc01e4ebb0e09d5a8d5dad4ed3df33702f
--- /dev/null
+++ b/maskcut/merge_jsons.py
@@ -0,0 +1,98 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# merge all ImageNet annotation files as a single one.
+
+import os
+import json
+import argparse
+
+if __name__ == "__main__":
+ # load model arguments
+ parser = argparse.ArgumentParser(description='Merge json files')
+ parser.add_argument('--base-dir', type=str,
+ default='annotations/',
+ help='Dir to the generated annotation files with MaskCut')
+ parser.add_argument('--save-path', type=str, default="imagenet_train_fixsize480_tau0.15_N3.json",
+ help='Path to save the merged annotation file')
+ # following arguments should be consistent with maskcut.py or maskcut_with_submitit.py (if use submitit)
+ parser.add_argument('--num-folder-per-job', type=int, default=1,
+ help='Number of folders per json file')
+ parser.add_argument('--fixed-size', type=int, default=480,
+ help='rescale the input images to a fixed size')
+ parser.add_argument('--tau', type=float, default=0.15, help='threshold used for producing binary graph')
+ parser.add_argument('--N', type=int, default=3, help='the maximum number of pseudo-masks per image')
+
+ args = parser.parse_args()
+
+ base_name = 'imagenet_train_fixsize{}_tau{}_N{}'.format(args.fixed_size, args.tau, args.N)
+
+ start_idx = 0
+ every_k = args.num_folder_per_job
+ missed_folders = []
+ tobe_merged_ann_dicts = []
+
+ # check if pseudo-masks for all 1000 ImageNet-1K folders are avaliable.
+ while start_idx < 1000:
+ end_idx = start_idx + every_k
+ filename = "{}_{}_{}.json".format(base_name, start_idx, end_idx)
+ tobe_merged = os.path.join(args.base_dir, filename)
+ if not os.path.isfile(tobe_merged):
+ end_idx = start_idx + 1
+ tobe_merged_ = "{}_{}_{}.json".format(base_name, start_idx, end_idx)
+ if not os.path.isfile(tobe_merged_):
+ missed_folders.append(start_idx)
+ start_idx += 1
+ continue
+ else:
+ tobe_merged = tobe_merged_
+ start_idx += 1
+ else:
+ start_idx += every_k
+ tobe_merged_ann_dict = json.load(open(tobe_merged))
+ tobe_merged_ann_dicts.append(tobe_merged_ann_dict)
+
+ print("Warning: these folders are not found: ", missed_folders)
+
+ # filter out repeated image info
+ for idx, ann_dict in enumerate(tobe_merged_ann_dicts):
+ images = []
+ images_ids = []
+ for image in ann_dict['images']:
+ if image['id'] in images_ids:
+ continue
+ else:
+ images.append(image)
+ images_ids.append(image['id'])
+ ann_dict['images'] = images
+
+ # re-generate image_id and segment_id, and combine annotation info and image info
+ # from all annotation files
+ base_ann_dict = tobe_merged_ann_dicts[0]
+ image_id = base_ann_dict['images'][-1]['id'] + 1
+ segment_id = base_ann_dict['annotations'][-1]['id'] + 1
+ segment_id_list = [ann['id'] for ann in base_ann_dict['annotations']]
+ for tobe_merged_ann_dict in tobe_merged_ann_dicts[1:]:
+ file_name_and_id = {}
+ for i, image in enumerate(tobe_merged_ann_dict['images']):
+ file_name_and_id[str(image['id'])] = image_id
+ image['id'] = image_id
+ base_ann_dict['images'].append(image)
+ image_id = image_id + 1
+
+ for i, annotation_info in enumerate(tobe_merged_ann_dict['annotations']):
+ annotation_info["image_id"] = file_name_and_id[str(annotation_info["image_id"])]
+ annotation_info["id"] = segment_id
+ annotation_info["iscrowd"] = 0
+ segment_id_list.append(segment_id)
+ base_ann_dict['annotations'].append(annotation_info)
+ segment_id = segment_id + 1
+
+ segment_id = 1
+ for ann in base_ann_dict['annotations']:
+ ann["id"] = segment_id
+ segment_id += 1
+
+ # save the final json file.
+ anns = [ann['id'] for ann in base_ann_dict['annotations']]
+ anns_image_id = [ann['image_id'] for ann in base_ann_dict['annotations']]
+ json.dump(base_ann_dict, open(args.save_path, 'w'))
+ print("Done: {} images; {} anns.".format(len(base_ann_dict['images']), len(base_ann_dict['annotations'])))
diff --git a/maskcut/predict.py b/maskcut/predict.py
new file mode 100644
index 0000000000000000000000000000000000000000..007432ba44476aef74d5d2ad5e93e12331b9eb40
--- /dev/null
+++ b/maskcut/predict.py
@@ -0,0 +1,133 @@
+"""
+download pretrained weights to ./weights
+wget https://dl.fbaipublicfiles.com/dino/dino_vitbase8_pretrain/dino_vitbase8_pretrain.pth
+wget https://dl.fbaipublicfiles.com/dino/dino_deitsmall8_300ep_pretrain/dino_deitsmall8_300ep_pretrain.pth
+"""
+
+import sys
+
+sys.path.append("maskcut")
+import numpy as np
+import PIL.Image as Image
+import torch
+from scipy import ndimage
+from colormap import random_color
+
+import dino
+from third_party.TokenCut.unsupervised_saliency_detection import metric
+from crf import densecrf
+from maskcut import maskcut
+
+from cog import BasePredictor, Input, Path
+
+
+class Predictor(BasePredictor):
+ def setup(self):
+ """Load the model into memory to make running multiple predictions efficient"""
+
+ # DINO pre-trained model
+ vit_features = "k"
+ self.patch_size = 8
+ # adapted dino.ViTFeat to load from local pretrained_path
+ self.backbone_base = dino.ViTFeat(
+ "weights/dino_vitbase8_pretrain.pth",
+ 768,
+ "base",
+ vit_features,
+ self.patch_size,
+ )
+
+ self.backbone_small = dino.ViTFeat(
+ "weights/dino_deitsmall8_300ep_pretrain.pth",
+ 384,
+ "small",
+ vit_features,
+ self.patch_size,
+ )
+ self.backbone_base.eval()
+ self.backbone_base.cuda()
+ self.backbone_small.eval()
+ self.backbone_small.cuda()
+
+ def predict(
+ self,
+ image: Path = Input(
+ description="Input image",
+ ),
+ model: str = Input(
+ description="Choose the model architecture",
+ default="base",
+ choices=["small", "base"]
+ ),
+ n_pseudo_masks: int = Input(
+ description="The maximum number of pseudo-masks per image",
+ default=3,
+ ),
+ tau: float = Input(
+ description="Threshold used for producing binary graph",
+ default=0.15,
+ ),
+ ) -> Path:
+ """Run a single prediction on the model"""
+
+ backbone = self.backbone_base if model == "base" else self.backbone_small
+
+ # MaskCut hyperparameters
+ fixed_size = 480
+
+ # get pesudo-masks with MaskCut
+ bipartitions, _, I_new = maskcut(
+ str(image),
+ backbone,
+ self.patch_size,
+ tau,
+ N=n_pseudo_masks,
+ fixed_size=fixed_size,
+ cpu=False,
+ )
+
+ I = Image.open(str(image)).convert("RGB")
+ width, height = I.size
+ pseudo_mask_list = []
+ for idx, bipartition in enumerate(bipartitions):
+ # post-process pesudo-masks with CRF
+ pseudo_mask = densecrf(np.array(I_new), bipartition)
+ pseudo_mask = ndimage.binary_fill_holes(pseudo_mask >= 0.5)
+
+ # filter out the mask that have a very different pseudo-mask after the CRF
+ mask1 = torch.from_numpy(bipartition).cuda()
+ mask2 = torch.from_numpy(pseudo_mask).cuda()
+
+ if metric.IoU(mask1, mask2) < 0.5:
+ pseudo_mask = pseudo_mask * -1
+
+ # construct binary pseudo-masks
+ pseudo_mask[pseudo_mask < 0] = 0
+ pseudo_mask = Image.fromarray(np.uint8(pseudo_mask * 255))
+ pseudo_mask = np.asarray(pseudo_mask.resize((width, height)))
+
+ pseudo_mask = pseudo_mask.astype(np.uint8)
+ upper = np.max(pseudo_mask)
+ lower = np.min(pseudo_mask)
+ thresh = upper / 2.0
+ pseudo_mask[pseudo_mask > thresh] = upper
+ pseudo_mask[pseudo_mask <= thresh] = lower
+ pseudo_mask_list.append(pseudo_mask)
+
+ out = np.array(I)
+ for pseudo_mask in pseudo_mask_list:
+
+ out = vis_mask(out, pseudo_mask, random_color(rgb=True))
+
+ output_path = f"/tmp/out.png"
+
+ out.save(str(output_path))
+
+ return Path(output_path)
+
+
+def vis_mask(input, mask, mask_color):
+ fg = mask > 0.5
+ rgb = np.copy(input)
+ rgb[fg] = (rgb[fg] * 0.3 + np.array(mask_color) * 0.7).astype(np.uint8)
+ return Image.fromarray(rgb)
diff --git a/maskcut/run_maskcut_with_submitit.sh b/maskcut/run_maskcut_with_submitit.sh
new file mode 100644
index 0000000000000000000000000000000000000000..fcc2fb912b479a88e9d43ab58e70871225b9e495
--- /dev/null
+++ b/maskcut/run_maskcut_with_submitit.sh
@@ -0,0 +1,15 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+python run_with_submitit_maskcut_array.py \
+--ngpus 1 \
+--nodes 1 \
+--timeout 1200 \
+--partition learnfair \
+--vit-arch base \
+--patch-size 8 \
+--dataset-path /path/to/imagenet/ \
+--tau 0.15 \
+--out-dir /path/to/save/annotations/ \
+--num-folder-per-job 2 \
+--job-index 0 \
+--fixed_size 480 \
+--N 3 \
diff --git a/maskcut/run_with_submitit_maskcut_array.py b/maskcut/run_with_submitit_maskcut_array.py
new file mode 100644
index 0000000000000000000000000000000000000000..410c13df183b024580a371af27b7e1f1106160e5
--- /dev/null
+++ b/maskcut/run_with_submitit_maskcut_array.py
@@ -0,0 +1,164 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+"""
+A script to run multinode training with submitit.
+"""
+
+import sys
+sys.path.append('./')
+sys.path.append('./MaskCut')
+sys.path.append('./third_party')
+
+import argparse
+import os
+import uuid
+from pathlib import Path
+
+import maskcut_with_submitit as main_func
+import submitit
+import copy
+
+def parse_args():
+ parent_parser = main_func.get_args_parser()
+ parser = argparse.ArgumentParser("Submitit for MaskCut", parents=[parent_parser])
+ parser.add_argument("--ngpus", default=1, type=int, help="Number of gpus to request on each node")
+ parser.add_argument("--nodes", default=1, type=int, help="Number of nodes to request")
+ parser.add_argument("--timeout", default=1400, type=int, help="Duration of the job")
+ parser.add_argument("--job_dir", default="", type=str, help="Job dir. Leave empty for automatic.")
+
+ parser.add_argument("--partition", default="learnfair", type=str, help="Partition where to submit")
+ parser.add_argument("--use_volta32", action='store_true', help="Big models? Use this")
+ parser.add_argument('--comment', default="", type=str,
+ help='Comment to pass to scheduler, e.g. priority message')
+
+ # Removed the followings if the main file has it already
+ # distributed training parameters
+ parser.add_argument('--world_size', default=1, type=int,
+ help='number of distributed processes')
+ parser.add_argument('--dist_url', default='env://', help='url used to set up distributed training')
+ parser.add_argument('--output_dir', default='',
+ help='path where to save, empty for no saving')
+ parser.add_argument('--device', default='cuda',
+ help='device to use for training / testing')
+ parser.add_argument('--seed', default=0, type=int)
+ parser.add_argument('--gpu', default=0, type=int)
+ parser.add_argument('--rank', default=0, type=int)
+ parser.add_argument('--resume', default='', help='resume from checkpoint')
+ parser.add_argument('--tolerance', default=1, type=int, help='tolerance for finding contours')
+
+ return parser.parse_args()
+
+
+def get_shared_folder() -> Path:
+ user = os.getenv("USER")
+ if Path("/checkpoint/").is_dir():
+ p = Path(f"/checkpoint/{user}/experiments/maskcut/")
+ p.mkdir(exist_ok=True)
+ return p
+ raise RuntimeError("No shared folder available")
+
+
+def get_init_file():
+ # Init file must not exist, but it's parent dir must exist.
+ os.makedirs(str(get_shared_folder()), exist_ok=True)
+ init_file = get_shared_folder() / f"{uuid.uuid4().hex}_init"
+ if init_file.exists():
+ os.remove(str(init_file))
+ return init_file
+
+# Using a for loop for getting the array job and submit all jobs in one single array
+class Trainer(object):
+ def __init__(self, args):
+ self.args = args
+
+ def __call__(self):
+
+ self._setup_gpu_args()
+ main_func.main(self.args)
+
+ def checkpoint(self):
+ import os
+ import submitit
+ from pathlib import Path
+
+ self.args.dist_url = get_init_file().as_uri()
+ checkpoint_file = os.path.join(self.args.output_dir, "checkpoint.pth")
+ if os.path.exists(checkpoint_file):
+ self.args.resume = checkpoint_file
+ print("Requeuing ", self.args)
+ empty_trainer = type(self)(self.args)
+ return submitit.helpers.DelayedSubmission(empty_trainer)
+
+ def _setup_gpu_args(self):
+ import submitit
+ from pathlib import Path
+
+ job_env = submitit.JobEnvironment()
+ self.args.output_dir = Path(str(self.args.output_dir).replace("%j", str(job_env.job_id)))
+ self.args.gpu = job_env.local_rank
+ self.args.rank = job_env.global_rank
+ self.args.world_size = job_env.num_tasks
+ print(f"Process group: {job_env.num_tasks} tasks, rank: {job_env.global_rank}")
+
+
+def main():
+ args = parse_args()
+ if args.job_dir == "":
+ args.job_dir = get_shared_folder() / "%j"
+
+ # Note that the folder will depend on the job_id, to easily track experiments
+ executor = submitit.AutoExecutor(folder=args.job_dir, slurm_max_num_timeout=30)
+
+ num_gpus_per_node = args.ngpus
+ nodes = args.nodes
+ timeout_min = args.timeout
+
+ partition = args.partition
+ kwargs = {}
+ if args.use_volta32:
+ kwargs['slurm_constraint'] = 'volta32gb'
+ if args.comment:
+ kwargs['slurm_comment'] = args.comment
+
+ executor.update_parameters(
+ mem_gb=40 * num_gpus_per_node, # 40
+ gpus_per_node=num_gpus_per_node,
+ tasks_per_node=num_gpus_per_node, # one task per GPU
+ cpus_per_task=8, # default 8
+ nodes=nodes,
+ timeout_min=timeout_min, # max is 60 * 72
+ # Below are cluster dependent parameters
+ slurm_partition=partition,
+ slurm_signal_delay_s=120,
+ **kwargs
+ )
+
+ executor.update_parameters(name="MaskCut")
+
+ # Since it is often necessary to submit over 100 jobs simutanously,
+ # using an array to submit these jobs is a more efficient way.
+ args.dist_url = get_init_file().as_uri()
+ args.output_dir = args.job_dir
+ print(args.output_dir)
+
+ # list_folders = list(range(0, 500))
+ end_idx = (1000 - args.job_index) // args.num_folder_per_job + 1
+ list_folders = list(range(args.job_index, end_idx))
+ jobs = []
+ args_list = []
+ for folder_index in list_folders:
+ args_copy = copy.deepcopy(args)
+ args_copy.job_index = folder_index
+ args_list.append(args_copy)
+
+ with executor.batch():
+ for args in args_list:
+ trainer = Trainer(args)
+ job = executor.submit(trainer)
+ jobs.append(job)
+ for job in jobs:
+ print("Submitted job_id:", job.job_id)
+
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7a73f57aec886e8fe5a5f5e6d4e28d8a1e2586dd
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,13 @@
+submitit
+# torch==1.8.1
+# torchvision==0.9.1
+faiss-gpu==1.7.2
+opencv-python==4.6.0.66
+scikit-image==0.19.2
+scikit-learn==1.1.1
+shapely==1.8.2
+timm==0.5.4
+pyyaml==6.0
+colored
+fvcore==0.1.5.post20220512
+gdown==4.5.4
\ No newline at end of file
diff --git a/videocutler/INSTALL.md b/videocutler/INSTALL.md
new file mode 100644
index 0000000000000000000000000000000000000000..0b41ae57faadc0612ed6802865714ac2e523e9dd
--- /dev/null
+++ b/videocutler/INSTALL.md
@@ -0,0 +1,49 @@
+## Installation
+
+### Requirements
+- Linux or macOS with Python ≥ 3.6
+- PyTorch ≥ 1.9 and [torchvision](https://github.com/pytorch/vision/) that matches the PyTorch installation.
+ Install them together at [pytorch.org](https://pytorch.org) to make sure of this. Note, please check
+ PyTorch version matches that is required by Detectron2.
+- Detectron2: follow [Detectron2 installation instructions](https://detectron2.readthedocs.io/tutorials/install.html).
+- OpenCV is optional but needed by demo and visualization
+- `pip install -r requirements.txt`
+
+### Example conda environment setup
+
+```bash
+conda create --name videocuter python=3.8 -y
+conda activate videocuter
+conda install pytorch==1.9.0 torchvision==0.10.0 cudatoolkit=11.1 -c pytorch -c nvidia
+pip install -U opencv-python
+
+# under your working directory
+git clone git@github.com:facebookresearch/detectron2.git
+cd detectron2
+pip install -e .
+pip install git+https://github.com/cocodataset/panopticapi.git
+pip install git+https://github.com/mcordts/cityscapesScripts.git
+```
+
+### CUDA kernel for MSDeformAttn
+After preparing the required environment, run the following command to compile CUDA kernel for MSDeformAttn:
+
+`CUDA_HOME` must be defined and points to the directory of the installed CUDA toolkit.
+```bash
+pip install -r videocutler/requirements.txt
+cd videocutler/mask2former/modeling/pixel_decoder/ops
+sh make.sh
+```
+
+#### Building on another system
+To build on a system that does not have a GPU device but provide the drivers:
+```bash
+TORCH_CUDA_ARCH_LIST='8.0' FORCE_CUDA=1 python setup.py build install
+```
+After preparing the required environment, run the following command to compile CUDA kernel for MSDeformAttn:
+
+`CUDA_HOME` must be defined and points to the directory of the installed CUDA toolkit.
+```bash
+cd videocutler/mask2former/modeling/pixel_decoder/ops
+sh make.sh
+```
diff --git a/videocutler/README.md b/videocutler/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..69b36fe216e086bbe3a3a44a55857bd3d9b5485f
--- /dev/null
+++ b/videocutler/README.md
@@ -0,0 +1,119 @@
+# VideoCutLER: Unsupervised Video Instance Segmentation
+
+VideoCutLER is a simple unsupervised video instance segmentation (UVIS) method. ***We demonstrate that video instance segmentation models can be learned without using any human annotations, without relying on natural videos (ImageNet data alone is sufficient), and even without motion estimations!***
+
+
+
+
+
+> [**VideoCutLER: Surprisingly Simple Unsupervised Video Instance Segmentation**](https://people.eecs.berkeley.edu/~xdwang/projects/VideoCutLER/videocutler.pdf)
+> [Xudong Wang](https://people.eecs.berkeley.edu/~xdwang/), [Ishan Misra](https://imisra.github.io/), Ziyun Zeng, [Rohit Girdhar](https://rohitgirdhar.github.io/), [Trevor Darrell](https://people.eecs.berkeley.edu/~trevor/)
+> UC Berkeley; FAIR, Meta AI
+> CVPR 2024
+
+[[`arxiv`](https://arxiv.org/abs/2308.14710)] [[`PDF`](https://people.eecs.berkeley.edu/~xdwang/projects/VideoCutLER/videocutler.pdf)] [[`bibtex`](#citation)]
+
+
+## Installation
+See [installation instructions](INSTALL.md).
+
+
+## Dataset Preparation
+See [Preparing Datasets for VideoCutLER](datasets/README.md).
+
+
+## Method Overview
+
+
+
+VideoCutLER has three main stages:
+1) Firstly, we generate pseudo-masks for multiple objects in an image using MaskCut.
+2) Then, we convert a random pair of images in the minibatch into a video with corresponding pseudo mask trajectories using ImageCut2Video.
+3) Finally, we train an unsupervised video instance segmentation model using these mask trajectories.
+
+
+## Inference Demo for VideoCutLER with Pre-trained Models
+
+We provide `demo_video/demo.py` that is able to demo builtin configs. Run it with:
+```
+cd videocutler
+python demo_video/demo.py \
+ --config-file configs/imagenet_video/video_mask2former_R50_cls_agnostic.yaml \
+ --input docs/demo-videos/99c6b1acf2/*.jpg \
+ --confidence-threshold 0.8 \
+ --output demos/ \
+ --opts MODEL.WEIGHTS videocutler_m2f_rn50.pth
+```
+Our trained VideoCutLER model on synthetic videos using ImageNet-1K can be obtained from [here](https://drive.google.com/file/d/11TACB8tOaAc-eXBo_i2arR_7qgGSeXRg/view?usp=drive_link). Then you should specify `MODEL.WEIGHTS` to the model checkpoint for evaluation.
+Above command will run the inference and show visualizations in an OpenCV window, and save the results in the mp4 format.
+For details of the command line arguments, see `demo.py -h` or look at its source code to understand its behavior. Some common arguments are:
+
+* To get a higher recall, use a smaller `--confidence-threshold`.
+* To save each frame's segmentation result, add `--save-frames True` before `--opts`.
+* To save each frame's segmentation masks, add `--save-masks True` before `--opts`.
+
+Following, we give some visualizations of the model predictions on the demo videos.
+
+
+
+
+
+### Unsupervised Model Learning
+We provide a script `train_net_video.py`, that is made to train all the configs provided in VideoCutLER.
+To train a model with "train_net_video.py", first setup the ImageNet-1K dataset following [datasets/README.md](../datasets/README.md).
+
+Before training the detector, it is necessary to use MaskCut to generate pseudo-masks for all ImageNet data.
+You can either use the pre-generated json file directly by downloading it from [here]() and placing it under "DETECTRON2_DATASETS/imagenet/annotations/", or generate your own pseudo-masks by following the instructions in [MaskCut](#1-maskcut).
+You should download the pre-trained CutLER model from this [link](https://drive.google.com/file/d/1YFP14mCHBGR3SbepGiTv-OMeUIrtTPc3/view?usp=sharing) and then place it in the "videocutler/pretrain" directory, then run:
+```
+cd videocutler
+export DETECTRON2_DATASETS=/path/to/DETECTRON2_DATASETS/
+python train_net_video.py \
+ --config-file configs/imagenet_video/video_mask2former_R50_cls_agnostic.yaml \
+ SOLVER.BASE_LR 0.000005 SOLVER.IMS_PER_BATCH 16 MODEL.MASK_FORMER.DROPOUT 0.3 \
+ OUTPUT_DIR OUTPUT-DIR/ \
+```
+For more options, see `python train_net_video.py -h`.
+
+If you want to train a model using multiple nodes, you may need to adjust [some model parameters](https://arxiv.org/abs/1706.02677) and some SBATCH command options in "train-1node.sh" and "single-node-video_run.sh", then run:
+```
+cd videocutler
+export DETECTRON2_DATASETS=/path/to/DETECTRON2_DATASETS/
+sbatch train-1node.sh \
+ --config-file configs/imagenet_video/video_mask2former_R50_cls_agnostic.yaml \
+ SOLVER.BASE_LR 0.000005 SOLVER.IMS_PER_BATCH 16 MODEL.MASK_FORMER.DROPOUT 0.3 \
+ OUTPUT_DIR OUTPUT-DIR/ \
+```
+
+
+### Unsupervised Zero-shot Evaluation
+To evaluate a model's performance on YouTubeVIS-2019 and YouTubeVIS-2021, please refer to [datasets/README.md](datasets/README.md) for instructions on preparing the datasets. Next, download the [model weights](https://drive.google.com/file/d/11TACB8tOaAc-eXBo_i2arR_7qgGSeXRg/view?usp=drive_link), specify the "model_weights", "config_file" and the path to "DETECTRON2_DATASETS", then run the following commands.
+```
+export DETECTRON2_DATASETS=/PATH/TO/DETECTRON2_DATASETS/
+CUDA_VISIBLE_DEVICES=0,1,2,3 python train_net_video.py --num-gpus 4 \
+ --config-file configs/imagenet_video/videocutler_eval_ytvis2019.yaml \
+ --eval-only MODEL.WEIGHTS videocutler_m2f_rn50.pth \
+ OUTPUT_DIR OUTPUT-DIR/ytvis_2019
+
+python eval_ytvis.py --dataset-path ${DETECTRON2_DATASETS} --dataset-name 'ytvis_2019' --result-path 'OUTPUT-DIR/ytvis_2019/'
+```
+
+
+## Ethical Considerations
+VideoCutLER's wide range of video instance segmentation capabilities may introduce similar challenges to many other visual recognition methods. As the video can contain arbitrary instances, it may impact the model output.
+
+
+## How to get support from us?
+If you have any general questions, feel free to email us at [Xudong Wang](mailto:xdwang@eecs.berkeley.edu). If you have code or implementation-related questions, please feel free to send emails to us or open an issue in this codebase (We recommend that you open an issue in this codebase, because your questions may help others).
+
+
+## Citation
+If you find our work inspiring or use our codebase in your research, please consider giving a star ⭐ and a citation.
+```
+@article{wang2023videocutler,
+ title={VideoCutLER: Surprisingly Simple Unsupervised Video Instance Segmentation},
+ author={Wang, Xudong and Misra, Ishan and Zeng, Ziyun and Girdhar, Rohit and Darrell, Trevor},
+ journal={arXiv preprint arXiv:2308.14710},
+ year={2023}
+}
+```
diff --git a/videocutler/configs/imagenet/instance-segmentation/Base-COCO-InstanceSegmentation.yaml b/videocutler/configs/imagenet/instance-segmentation/Base-COCO-InstanceSegmentation.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..98943d9cca85e7445e8fe4c8725e7749a3b0422e
--- /dev/null
+++ b/videocutler/configs/imagenet/instance-segmentation/Base-COCO-InstanceSegmentation.yaml
@@ -0,0 +1,47 @@
+MODEL:
+ BACKBONE:
+ FREEZE_AT: 0
+ NAME: "build_resnet_backbone"
+ WEIGHTS: "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ RESNETS:
+ DEPTH: 50
+ STEM_TYPE: "basic" # not used
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: False
+ OUT_FEATURES: ["res2", "res3", "res4", "res5"]
+ # NORM: "SyncBN"
+ RES5_MULTI_GRID: [1, 1, 1] # not used
+DATASETS:
+ TRAIN: ("coco_2017_train",)
+ TEST: ("coco_2017_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.0001
+ STEPS: (327778, 355092)
+ MAX_ITER: 368750
+ WARMUP_FACTOR: 1.0
+ WARMUP_ITERS: 10
+ WEIGHT_DECAY: 0.05
+ OPTIMIZER: "ADAMW"
+ BACKBONE_MULTIPLIER: 0.1
+ CLIP_GRADIENTS:
+ ENABLED: True
+ CLIP_TYPE: "full_model"
+ CLIP_VALUE: 0.01
+ NORM_TYPE: 2.0
+ AMP:
+ ENABLED: True
+INPUT:
+ IMAGE_SIZE: 1024
+ MIN_SCALE: 0.1
+ MAX_SCALE: 2.0
+ FORMAT: "RGB"
+ DATASET_MAPPER_NAME: "coco_instance_lsj"
+TEST:
+ EVAL_PERIOD: 5000
+DATALOADER:
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+VERSION: 2
diff --git a/videocutler/configs/imagenet/instance-segmentation/Base-imagenet-InstanceSegmentation.yaml b/videocutler/configs/imagenet/instance-segmentation/Base-imagenet-InstanceSegmentation.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..32824e57503e566d5e8e3749cfedc0797e848e42
--- /dev/null
+++ b/videocutler/configs/imagenet/instance-segmentation/Base-imagenet-InstanceSegmentation.yaml
@@ -0,0 +1,50 @@
+MODEL:
+ BACKBONE:
+ FREEZE_AT: 0
+ NAME: "build_resnet_backbone"
+ WEIGHTS: "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ RESNETS:
+ DEPTH: 50
+ STEM_TYPE: "basic" # not used
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: False
+ OUT_FEATURES: ["res2", "res3", "res4", "res5"]
+ # NORM: "SyncBN"
+ RES5_MULTI_GRID: [1, 1, 1] # not used
+DATASETS:
+ TRAIN: ("imagenet_train_tau0.15_fixsize480_w_painting3Inst_crf_centerprior_polygon",)
+ TEST: ("imagenet_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.0001
+ STEPS: (80000,)
+ MAX_ITER: 160000
+ WARMUP_FACTOR: 1.0
+ WARMUP_ITERS: 10
+ WEIGHT_DECAY: 0.05
+ OPTIMIZER: "ADAMW"
+ BACKBONE_MULTIPLIER: 0.1
+ CLIP_GRADIENTS:
+ ENABLED: True
+ CLIP_TYPE: "full_model"
+ CLIP_VALUE: 0.01
+ NORM_TYPE: 2.0
+ AMP:
+ ENABLED: True
+INPUT:
+ IMAGE_SIZE: 1024
+ MIN_SCALE: 0.1
+ MAX_SCALE: 2.0
+ # MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+ DATASET_MAPPER_NAME: "coco_instance_lsj"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 5000
+DATALOADER:
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+VERSION: 2
diff --git a/videocutler/configs/imagenet/instance-segmentation/mask2former_R50_imagenet.yaml b/videocutler/configs/imagenet/instance-segmentation/mask2former_R50_imagenet.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..19412ba7dd367a5ce387549548ccf9fd440696fc
--- /dev/null
+++ b/videocutler/configs/imagenet/instance-segmentation/mask2former_R50_imagenet.yaml
@@ -0,0 +1,87 @@
+_BASE_: Base-imagenet-InstanceSegmentation.yaml
+DATALOADER:
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 8
+ COPY_PASTE: True
+ COPY_PASTE_RATE: 1.0
+ VISUALIZE_COPY_PASTE: False
+ COPY_PASTE_RANDOM_NUM: True
+ COPY_PASTE_MIN_RATIO: 0.3
+ COPY_PASTE_MAX_RATIO: 1.0
+MODEL:
+ META_ARCHITECTURE: "MaskFormer"
+ SEM_SEG_HEAD:
+ NAME: "MaskFormerHead"
+ IGNORE_VALUE: 255
+ NUM_CLASSES: 1
+ LOSS_WEIGHT: 1.0
+ CONVS_DIM: 256
+ MASK_DIM: 256
+ NORM: "GN"
+ # pixel decoder
+ PIXEL_DECODER_NAME: "MSDeformAttnPixelDecoder"
+ IN_FEATURES: ["res2", "res3", "res4", "res5"]
+ DEFORMABLE_TRANSFORMER_ENCODER_IN_FEATURES: ["res3", "res4", "res5"]
+ COMMON_STRIDE: 4
+ TRANSFORMER_ENC_LAYERS: 6
+ WEIGHTS: 'http://dl.fbaipublicfiles.com/cutler/checkpoints/dino_RN50_pretrain_d2_format.pkl'
+ MASK_FORMER:
+ POSITIVE_BANK_IOU_THRESH: 0.0
+ TRANSFORMER_DECODER_NAME: "MultiScaleMaskedTransformerDecoder"
+ TRANSFORMER_IN_FEATURE: "multi_scale_pixel_decoder"
+ DEEP_SUPERVISION: True
+ NO_OBJECT_WEIGHT: 0.1
+ CLASS_WEIGHT: 2.0
+ MASK_WEIGHT: 5.0
+ DICE_WEIGHT: 5.0
+ HIDDEN_DIM: 256
+ NUM_OBJECT_QUERIES: 100
+ NHEADS: 8
+ DROPOUT: 0.3
+ DIM_FEEDFORWARD: 2048
+ ENC_LAYERS: 0
+ PRE_NORM: False
+ ENFORCE_INPUT_PROJ: False
+ SIZE_DIVISIBILITY: 32
+ DEC_LAYERS: 10 # 9 decoder layers, add one for the loss on learnable query
+ TRAIN_NUM_POINTS: 12544
+ OVERSAMPLE_RATIO: 3.0
+ IMPORTANCE_SAMPLE_RATIO: 0.75
+ TEST:
+ SEMANTIC_ON: False
+ INSTANCE_ON: True
+ PANOPTIC_ON: False
+ OVERLAP_THRESHOLD: 0.8
+ OBJECT_MASK_THRESHOLD: 0.8
+DATASETS:
+ TRAIN: ("imagenet_train",)
+INPUT:
+ IMAGE_SIZE: 896
+ MIN_SCALE: 0.1
+ MAX_SCALE: 2.0
+ # MASK_FORMAT: "bitmask"
+ FORMAT: "RGB"
+ DATASET_MAPPER_NAME: "coco_instance_lsj"
+TEST:
+ PRECISE_BN:
+ ENABLED: True
+ EVAL_PERIOD: 10000
+ DETECTIONS_PER_IMAGE: 100 # Test MS-COCO: 100; Test LVIS: 300
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.00002
+ STEPS: (80000,)
+ MAX_ITER: 160000
+ WARMUP_FACTOR: 1.0
+ WARMUP_ITERS: 10
+ WEIGHT_DECAY: 0.05
+ OPTIMIZER: "ADAMW"
+ BACKBONE_MULTIPLIER: 0.1
+ CLIP_GRADIENTS:
+ ENABLED: True
+ CLIP_TYPE: "full_model"
+ CLIP_VALUE: 0.01
+ NORM_TYPE: 2.0
+ AMP:
+ ENABLED: True
+OUTPUT_DIR: "OUTPUT"
\ No newline at end of file
diff --git a/videocutler/configs/imagenet_video/Base-YouTubeVIS-VideoInstanceSegmentation.yaml b/videocutler/configs/imagenet_video/Base-YouTubeVIS-VideoInstanceSegmentation.yaml
new file mode 100755
index 0000000000000000000000000000000000000000..76426ecb5236707ed71266d1b09908985d3f76f6
--- /dev/null
+++ b/videocutler/configs/imagenet_video/Base-YouTubeVIS-VideoInstanceSegmentation.yaml
@@ -0,0 +1,53 @@
+MODEL:
+ BACKBONE:
+ FREEZE_AT: 0
+ NAME: "build_resnet_backbone"
+ WEIGHTS: "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ MASK_ON: True
+ RESNETS:
+ DEPTH: 50
+ STEM_TYPE: "basic" # not used
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: False
+ OUT_FEATURES: ["res2", "res3", "res4", "res5"]
+ # NORM: "SyncBN"
+ RES5_MULTI_GRID: [1, 1, 1] # not used
+DATASETS:
+ TRAIN: ("ytvis_2019_train",)
+ TEST: ("ytvis_2019_val",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.0001
+ STEPS: (4000,)
+ MAX_ITER: 6000
+ WARMUP_FACTOR: 1.0
+ WARMUP_ITERS: 10
+ WEIGHT_DECAY: 0.05
+ OPTIMIZER: "ADAMW"
+ BACKBONE_MULTIPLIER: 0.1
+ CLIP_GRADIENTS:
+ ENABLED: True
+ CLIP_TYPE: "full_model"
+ CLIP_VALUE: 0.01
+ NORM_TYPE: 2.0
+ AMP:
+ ENABLED: True
+INPUT:
+ MIN_SIZE_TRAIN_SAMPLING: "choice_by_clip"
+ RANDOM_FLIP: "flip_by_clip"
+ AUGMENTATIONS: []
+ MIN_SIZE_TRAIN: (360, 480)
+ MIN_SIZE_TEST: 360
+ CROP:
+ ENABLED: False
+ TYPE: "absolute_range"
+ SIZE: (600, 720)
+ FORMAT: "RGB"
+TEST:
+ EVAL_PERIOD: 0
+DATALOADER:
+ FILTER_EMPTY_ANNOTATIONS: False
+ NUM_WORKERS: 4
+VERSION: 2
diff --git a/videocutler/configs/imagenet_video/video_mask2former_R50_cls_agnostic.yaml b/videocutler/configs/imagenet_video/video_mask2former_R50_cls_agnostic.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3dd82ded4d844c0945888b0a2e04bcfc68f4b441
--- /dev/null
+++ b/videocutler/configs/imagenet_video/video_mask2former_R50_cls_agnostic.yaml
@@ -0,0 +1,86 @@
+_BASE_: Base-YouTubeVIS-VideoInstanceSegmentation.yaml
+MODEL:
+ WEIGHTS: "pretrain/cutler_m2f_rn50.pth"
+ META_ARCHITECTURE: "VideoMaskFormer"
+ SEM_SEG_HEAD:
+ NAME: "MaskFormerHead"
+ IGNORE_VALUE: 255
+ NUM_CLASSES: 1 # class-agnostic
+ LOSS_WEIGHT: 1.0
+ CONVS_DIM: 256
+ MASK_DIM: 256
+ NORM: "GN"
+ # pixel decoder
+ PIXEL_DECODER_NAME: "MSDeformAttnPixelDecoder"
+ IN_FEATURES: ["res2", "res3", "res4", "res5"]
+ DEFORMABLE_TRANSFORMER_ENCODER_IN_FEATURES: ["res3", "res4", "res5"]
+ COMMON_STRIDE: 4
+ TRANSFORMER_ENC_LAYERS: 6
+ MASK_FORMER:
+ TRANSFORMER_DECODER_NAME: "VideoMultiScaleMaskedTransformerDecoder"
+ TRANSFORMER_IN_FEATURE: "multi_scale_pixel_decoder"
+ DEEP_SUPERVISION: True
+ NO_OBJECT_WEIGHT: 0.1
+ CLASS_WEIGHT: 2.0
+ MASK_WEIGHT: 5.0
+ DICE_WEIGHT: 5.0
+ HIDDEN_DIM: 256
+ NUM_OBJECT_QUERIES: 100
+ NHEADS: 8
+ DROPOUT: 0.3
+ DIM_FEEDFORWARD: 2048
+ ENC_LAYERS: 0
+ PRE_NORM: False
+ ENFORCE_INPUT_PROJ: False
+ SIZE_DIVISIBILITY: 32
+ DEC_LAYERS: 10 # 9 decoder layers, add one for the loss on learnable query
+ TRAIN_NUM_POINTS: 12544
+ OVERSAMPLE_RATIO: 3.0
+ IMPORTANCE_SAMPLE_RATIO: 0.75
+ TEST:
+ SEMANTIC_ON: False
+ INSTANCE_ON: True
+ PANOPTIC_ON: False
+ OVERLAP_THRESHOLD: 0.8
+ OBJECT_MASK_THRESHOLD: 0.8
+DATASETS:
+ TRAIN: ("imagenet_video_train_cls_agnostic",)
+ TEST: ("ytvis_2019_train",)
+SOLVER:
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.00002
+ STEPS: (79999,)
+ MAX_ITER: 80000
+ WARMUP_FACTOR: 1.0
+ WARMUP_ITERS: 10
+ WEIGHT_DECAY: 0.05
+ OPTIMIZER: "ADAMW"
+ BACKBONE_MULTIPLIER: 0.1
+ CLIP_GRADIENTS:
+ ENABLED: True
+ CLIP_TYPE: "full_model"
+ CLIP_VALUE: 0.01
+ NORM_TYPE: 2.0
+ AMP:
+ ENABLED: True
+DATALOADER:
+ FILTER_EMPTY_ANNOTATIONS: False
+ NUM_WORKERS: 0
+ COPY_PASTE: True
+ COPY_PASTE_RATE: 1.0
+ VISUALIZE_COPY_PASTE: False
+ COPY_PASTE_RANDOM_NUM: False
+ COPY_PASTE_MIN_RATIO: 0.8
+ COPY_PASTE_MAX_RATIO: 1.0
+INPUT:
+ SAMPLING_FRAME_NUM: 3
+ MIN_SIZE_TRAIN_SAMPLING: "choice_by_clip"
+ RANDOM_FLIP: "flip_by_clip"
+ AUGMENTATIONS: ['brightness', 'contrast', 'rotation']
+ MIN_SIZE_TRAIN: (360, 480)
+ MIN_SIZE_TEST: 360
+ CROP:
+ ENABLED: True
+ TYPE: "absolute_range"
+ SIZE: (600, 720)
+OUTPUT_DIR: "OUTPUT/"
\ No newline at end of file
diff --git a/videocutler/configs/imagenet_video/videocutler_eval_ytvis2019.yaml b/videocutler/configs/imagenet_video/videocutler_eval_ytvis2019.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a9fbf60738702b5eaee9184f3d773527956ce499
--- /dev/null
+++ b/videocutler/configs/imagenet_video/videocutler_eval_ytvis2019.yaml
@@ -0,0 +1,3 @@
+_BASE_: video_mask2former_R50_cls_agnostic.yaml
+DATASETS:
+ TEST: ("ytvis_2019_train",)
\ No newline at end of file
diff --git a/videocutler/configs/imagenet_video/videocutler_eval_ytvis2021.yaml b/videocutler/configs/imagenet_video/videocutler_eval_ytvis2021.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..00b5f5203b1f2c0ed5016371a96c2fde1e8701dd
--- /dev/null
+++ b/videocutler/configs/imagenet_video/videocutler_eval_ytvis2021.yaml
@@ -0,0 +1,3 @@
+_BASE_: video_mask2former_R50_cls_agnostic.yaml
+DATASETS:
+ TEST: ("ytvis_2021_train",)
\ No newline at end of file
diff --git a/videocutler/datasets/README.md b/videocutler/datasets/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..0c6e5d901370171330612002a262a8ff4f255911
--- /dev/null
+++ b/videocutler/datasets/README.md
@@ -0,0 +1,46 @@
+# Prepare Datasets for VideoCutLER
+
+A dataset can be used by accessing [DatasetCatalog](https://detectron2.readthedocs.io/modules/data.html#detectron2.data.DatasetCatalog)
+for its data, or [MetadataCatalog](https://detectron2.readthedocs.io/modules/data.html#detectron2.data.MetadataCatalog) for its metadata (class names, etc).
+This document explains how to setup the builtin datasets so they can be used by the above APIs.
+[Use Custom Datasets](https://detectron2.readthedocs.io/tutorials/datasets.html) gives a deeper dive on how to use `DatasetCatalog` and `MetadataCatalog`,
+and how to add new datasets to them.
+
+VideoCutLER has builtin support for a few datasets.
+The datasets are assumed to exist in a directory specified by the environment variable
+`DETECTRON2_DATASETS`.
+Under this directory, detectron2 will look for datasets in the structure described below, if needed.
+```
+$DETECTRON2_DATASETS/
+ imagenet/
+ ytvis_2019/
+ ytvis_2021/
+```
+
+You can set the location for builtin datasets by `export DETECTRON2_DATASETS=/path/to/datasets`.
+If left unset, the default is `./datasets` relative to your current working directory.
+
+Please check expected dataset structure for ImageNet-1K at [here](../../datasets/README.md). You can directly [download](https://drive.google.com/file/d/1gllHvrZQNVXphnk-IQxMcXh87Qs86ofT/view?usp=sharing) the pre-processed ImageNet-1K annotations produced by MaskCut in YouTubeVIS format and place it under the "imagenet/annotations/" directory.
+
+Alternatively, you can refer to the instructions on generating pseudo-masks using MaskCut at [here](../../README.md#generating-annotations-for-imagenet-1k-with-maskcut). You'll need to convert these annotations into the [YouTubeVIS](https://competitions.codalab.org/competitions/20128) format (MaskCut provides MSCOCO format annotations). This format conversion is a necessary step to ensure compatibility with the training process of VideoCutLER.
+
+
+## Expected dataset structure for [YouTubeVIS 2019](https://competitions.codalab.org/competitions/20128):
+
+```
+ytvis_2019/
+ {train,valid,test}.json
+ {train,valid,test}/
+ Annotations/
+ JPEGImages/
+```
+
+## Expected dataset structure for [YouTubeVIS 2021](https://competitions.codalab.org/competitions/28988):
+
+```
+ytvis_2021/
+ {train,valid,test}.json
+ {train,valid,test}/
+ Annotations/
+ JPEGImages/
+```
diff --git a/videocutler/datasets/ade20k_instance_catid_mapping.txt b/videocutler/datasets/ade20k_instance_catid_mapping.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ba388d09cc00fa92a733d2a605f7068dc2271f82
--- /dev/null
+++ b/videocutler/datasets/ade20k_instance_catid_mapping.txt
@@ -0,0 +1,104 @@
+Instacne100 SceneParse150 FullADE20K
+1 8 165
+2 9 3055
+3 11 350
+4 13 1831
+5 15 774
+5 15 783
+6 16 2684
+7 19 687
+8 20 471
+9 21 401
+10 23 1735
+11 24 2473
+12 25 2329
+13 28 1564
+14 31 57
+15 32 2272
+16 33 907
+17 34 724
+18 36 2985
+18 36 533
+19 37 1395
+20 38 155
+21 39 2053
+22 40 689
+23 42 266
+24 43 581
+25 44 2380
+26 45 491
+27 46 627
+28 48 2388
+29 50 943
+30 51 2096
+31 54 2530
+32 56 420
+33 57 1948
+34 58 1869
+35 59 2251
+36 63 239
+37 65 571
+38 66 2793
+39 67 978
+40 68 236
+41 70 181
+42 71 629
+43 72 2598
+44 73 1744
+45 74 1374
+46 75 591
+47 76 2679
+48 77 223
+49 79 47
+50 81 327
+51 82 2821
+52 83 1451
+53 84 2880
+54 86 480
+55 87 77
+56 88 2616
+57 89 246
+57 89 247
+58 90 2733
+59 91 14
+60 93 38
+61 94 1936
+62 96 120
+63 98 1702
+64 99 249
+65 103 2928
+66 104 2337
+67 105 1023
+68 108 2989
+69 109 1930
+70 111 2586
+71 112 131
+72 113 146
+73 116 95
+74 117 1563
+75 119 1708
+76 120 103
+77 121 1002
+78 122 2569
+79 124 2833
+80 125 1551
+81 126 1981
+82 127 29
+83 128 187
+84 130 747
+85 131 2254
+86 133 2262
+87 134 1260
+88 135 2243
+89 136 2932
+90 137 2836
+91 138 2850
+92 139 64
+93 140 894
+94 143 1919
+95 144 1583
+96 145 318
+97 147 2046
+98 148 1098
+99 149 530
+100 150 954
diff --git a/videocutler/datasets/ade20k_instance_imgCatIds.json b/videocutler/datasets/ade20k_instance_imgCatIds.json
new file mode 100644
index 0000000000000000000000000000000000000000..d142da440f6987d7be6d28a436f4322ef0d51ae5
--- /dev/null
+++ b/videocutler/datasets/ade20k_instance_imgCatIds.json
@@ -0,0 +1 @@
+{"images": [{"file_name": "ADE_train_00000001.jpg", "width": 683, "id": 0, "height": 512}, {"file_name": "ADE_train_00000002.jpg", "width": 711, "id": 1, "height": 512}, {"file_name": "ADE_train_00000003.jpg", "width": 683, "id": 2, "height": 512}, {"file_name": "ADE_train_00000004.jpg", "width": 384, "id": 3, "height": 251}, {"file_name": "ADE_train_00000005.jpg", "width": 683, "id": 4, "height": 512}, {"file_name": "ADE_train_00000006.jpg", "width": 512, "id": 5, "height": 973}, {"file_name": "ADE_train_00000007.jpg", "width": 512, "id": 6, "height": 735}, {"file_name": "ADE_train_00000008.jpg", "width": 538, "id": 7, "height": 512}, {"file_name": "ADE_train_00000009.jpg", "width": 683, "id": 8, "height": 512}, {"file_name": "ADE_train_00000010.jpg", "width": 512, "id": 9, "height": 764}, {"file_name": "ADE_train_00000011.jpg", "width": 356, "id": 10, "height": 247}, {"file_name": "ADE_train_00000012.jpg", "width": 512, "id": 11, "height": 683}, {"file_name": "ADE_train_00000013.jpg", "width": 683, "id": 12, "height": 512}, {"file_name": "ADE_train_00000014.jpg", "width": 683, "id": 13, "height": 512}, {"file_name": "ADE_train_00000015.jpg", "width": 637, "id": 14, "height": 512}, {"file_name": "ADE_train_00000016.jpg", "width": 683, "id": 15, "height": 512}, {"file_name": "ADE_train_00000017.jpg", "width": 512, "id": 16, "height": 683}, {"file_name": "ADE_train_00000018.jpg", "width": 770, "id": 17, "height": 512}, {"file_name": "ADE_train_00000019.jpg", "width": 640, "id": 18, "height": 431}, {"file_name": "ADE_train_00000020.jpg", "width": 512, "id": 19, "height": 517}, {"file_name": "ADE_train_00000021.jpg", "width": 233, "id": 20, "height": 311}, {"file_name": "ADE_train_00000022.jpg", "width": 200, "id": 21, "height": 303}, {"file_name": "ADE_train_00000023.jpg", "width": 512, "id": 22, "height": 708}, {"file_name": "ADE_train_00000024.jpg", "width": 512, "id": 23, "height": 753}, {"file_name": "ADE_train_00000025.jpg", "width": 512, "id": 24, "height": 769}, {"file_name": "ADE_train_00000026.jpg", "width": 657, "id": 25, "height": 512}, {"file_name": "ADE_train_00000027.jpg", "width": 512, "id": 26, "height": 683}, {"file_name": "ADE_train_00000028.jpg", "width": 512, "id": 27, "height": 683}, {"file_name": "ADE_train_00000029.jpg", "width": 512, "id": 28, "height": 683}, {"file_name": "ADE_train_00000030.jpg", "width": 512, "id": 29, "height": 683}, {"file_name": "ADE_train_00000031.jpg", "width": 512, "id": 30, "height": 589}, {"file_name": "ADE_train_00000032.jpg", "width": 512, "id": 31, "height": 717}, {"file_name": "ADE_train_00000033.jpg", "width": 683, "id": 32, "height": 512}, {"file_name": "ADE_train_00000034.jpg", "width": 683, "id": 33, "height": 512}, {"file_name": "ADE_train_00000035.jpg", "width": 512, "id": 34, "height": 683}, {"file_name": "ADE_train_00000036.jpg", "width": 336, "id": 35, "height": 225}, {"file_name": "ADE_train_00000037.jpg", "width": 546, "id": 36, "height": 512}, {"file_name": "ADE_train_00000038.jpg", "width": 640, "id": 37, "height": 480}, {"file_name": "ADE_train_00000039.jpg", "width": 640, "id": 38, "height": 512}, {"file_name": "ADE_train_00000040.jpg", "width": 512, "id": 39, "height": 683}, {"file_name": "ADE_train_00000041.jpg", "width": 512, "id": 40, "height": 683}, {"file_name": "ADE_train_00000042.jpg", "width": 402, "id": 41, "height": 536}, {"file_name": "ADE_train_00000043.jpg", "width": 512, "id": 42, "height": 683}, {"file_name": "ADE_train_00000044.jpg", "width": 400, "id": 43, "height": 510}, {"file_name": "ADE_train_00000045.jpg", "width": 500, "id": 44, "height": 327}, {"file_name": "ADE_train_00000046.jpg", "width": 768, "id": 45, "height": 512}, {"file_name": "ADE_train_00000047.jpg", "width": 512, "id": 46, "height": 683}, {"file_name": "ADE_train_00000048.jpg", "width": 512, "id": 47, "height": 690}, {"file_name": "ADE_train_00000049.jpg", "width": 512, "id": 48, "height": 681}, {"file_name": "ADE_train_00000050.jpg", "width": 1024, "id": 49, "height": 1024}, {"file_name": "ADE_train_00000051.jpg", "width": 653, "id": 50, "height": 512}, {"file_name": "ADE_train_00000052.jpg", "width": 512, "id": 51, "height": 683}, {"file_name": "ADE_train_00000053.jpg", "width": 512, "id": 52, "height": 683}, {"file_name": "ADE_train_00000054.jpg", "width": 683, "id": 53, "height": 512}, {"file_name": "ADE_train_00000055.jpg", "width": 683, "id": 54, "height": 512}, {"file_name": "ADE_train_00000056.jpg", "width": 768, "id": 55, "height": 512}, {"file_name": "ADE_train_00000057.jpg", "width": 766, "id": 56, "height": 512}, {"file_name": "ADE_train_00000058.jpg", "width": 735, "id": 57, "height": 512}, {"file_name": "ADE_train_00000059.jpg", "width": 683, "id": 58, "height": 512}, {"file_name": "ADE_train_00000060.jpg", "width": 738, "id": 59, "height": 512}, {"file_name": "ADE_train_00000061.jpg", "width": 768, "id": 60, "height": 512}, {"file_name": "ADE_train_00000062.jpg", "width": 1000, "id": 61, "height": 1000}, {"file_name": "ADE_train_00000063.jpg", "width": 512, "id": 62, "height": 683}, {"file_name": "ADE_train_00000064.jpg", "width": 512, "id": 63, "height": 672}, {"file_name": "ADE_train_00000065.jpg", "width": 624, "id": 64, "height": 512}, {"file_name": "ADE_train_00000066.jpg", "width": 768, "id": 65, "height": 512}, {"file_name": "ADE_train_00000067.jpg", "width": 512, "id": 66, "height": 683}, {"file_name": "ADE_train_00000068.jpg", "width": 683, "id": 67, "height": 512}, {"file_name": "ADE_train_00000069.jpg", "width": 683, "id": 68, "height": 512}, {"file_name": "ADE_train_00000070.jpg", "width": 745, "id": 69, "height": 512}, {"file_name": "ADE_train_00000071.jpg", "width": 770, "id": 70, "height": 512}, {"file_name": "ADE_train_00000072.jpg", "width": 761, "id": 71, "height": 512}, {"file_name": "ADE_train_00000073.jpg", "width": 716, "id": 72, "height": 512}, {"file_name": "ADE_train_00000074.jpg", "width": 683, "id": 73, "height": 512}, {"file_name": "ADE_train_00000075.jpg", "width": 648, "id": 74, "height": 512}, {"file_name": "ADE_train_00000076.jpg", "width": 512, "id": 75, "height": 683}, {"file_name": "ADE_train_00000077.jpg", "width": 683, "id": 76, "height": 512}, {"file_name": "ADE_train_00000078.jpg", "width": 512, "id": 77, "height": 683}, {"file_name": "ADE_train_00000079.jpg", "width": 512, "id": 78, "height": 768}, {"file_name": "ADE_train_00000080.jpg", "width": 516, "id": 79, "height": 512}, {"file_name": "ADE_train_00000081.jpg", "width": 512, "id": 80, "height": 768}, {"file_name": "ADE_train_00000082.jpg", "width": 979, "id": 81, "height": 979}, {"file_name": "ADE_train_00000083.jpg", "width": 680, "id": 82, "height": 512}, {"file_name": "ADE_train_00000084.jpg", "width": 683, "id": 83, "height": 512}, {"file_name": "ADE_train_00000085.jpg", "width": 683, "id": 84, "height": 512}, {"file_name": "ADE_train_00000086.jpg", "width": 683, "id": 85, "height": 512}, {"file_name": "ADE_train_00000087.jpg", "width": 640, "id": 86, "height": 480}, {"file_name": "ADE_train_00000088.jpg", "width": 512, "id": 87, "height": 768}, {"file_name": "ADE_train_00000089.jpg", "width": 683, "id": 88, "height": 512}, {"file_name": "ADE_train_00000090.jpg", "width": 512, "id": 89, "height": 683}, {"file_name": "ADE_train_00000091.jpg", "width": 639, "id": 90, "height": 512}, {"file_name": "ADE_train_00000092.jpg", "width": 701, "id": 91, "height": 512}, {"file_name": "ADE_train_00000093.jpg", "width": 512, "id": 92, "height": 682}, {"file_name": "ADE_train_00000094.jpg", "width": 512, "id": 93, "height": 683}, {"file_name": "ADE_train_00000095.jpg", "width": 768, "id": 94, "height": 512}, {"file_name": "ADE_train_00000096.jpg", "width": 512, "id": 95, "height": 683}, {"file_name": "ADE_train_00000097.jpg", "width": 512, "id": 96, "height": 683}, {"file_name": "ADE_train_00000098.jpg", "width": 683, "id": 97, "height": 512}, {"file_name": "ADE_train_00000099.jpg", "width": 300, "id": 98, "height": 300}, {"file_name": "ADE_train_00000100.jpg", "width": 512, "id": 99, "height": 683}, {"file_name": "ADE_train_00000101.jpg", "width": 677, "id": 100, "height": 512}, {"file_name": "ADE_train_00000102.jpg", "width": 683, "id": 101, "height": 512}, {"file_name": "ADE_train_00000103.jpg", "width": 683, "id": 102, "height": 512}, {"file_name": "ADE_train_00000104.jpg", "width": 512, "id": 103, "height": 683}, {"file_name": "ADE_train_00000105.jpg", "width": 512, "id": 104, "height": 683}, {"file_name": "ADE_train_00000106.jpg", "width": 682, "id": 105, "height": 512}, {"file_name": "ADE_train_00000107.jpg", "width": 777, "id": 106, "height": 512}, {"file_name": "ADE_train_00000108.jpg", "width": 773, "id": 107, "height": 512}, {"file_name": "ADE_train_00000109.jpg", "width": 640, "id": 108, "height": 512}, {"file_name": "ADE_train_00000110.jpg", "width": 512, "id": 109, "height": 683}, {"file_name": "ADE_train_00000111.jpg", "width": 768, "id": 110, "height": 512}, {"file_name": "ADE_train_00000112.jpg", "width": 765, "id": 111, "height": 512}, {"file_name": "ADE_train_00000113.jpg", "width": 512, "id": 112, "height": 682}, {"file_name": "ADE_train_00000114.jpg", "width": 512, "id": 113, "height": 683}, {"file_name": "ADE_train_00000115.jpg", "width": 512, "id": 114, "height": 633}, {"file_name": "ADE_train_00000116.jpg", "width": 512, "id": 115, "height": 768}, {"file_name": "ADE_train_00000117.jpg", "width": 765, "id": 116, "height": 512}, {"file_name": "ADE_train_00000118.jpg", "width": 512, "id": 117, "height": 683}, {"file_name": "ADE_train_00000119.jpg", "width": 819, "id": 118, "height": 512}, {"file_name": "ADE_train_00000120.jpg", "width": 512, "id": 119, "height": 682}, {"file_name": "ADE_train_00000121.jpg", "width": 512, "id": 120, "height": 683}, {"file_name": "ADE_train_00000122.jpg", "width": 683, "id": 121, "height": 512}, {"file_name": "ADE_train_00000123.jpg", "width": 768, "id": 122, "height": 512}, {"file_name": "ADE_train_00000124.jpg", "width": 683, "id": 123, "height": 512}, {"file_name": "ADE_train_00000125.jpg", "width": 512, "id": 124, "height": 683}, {"file_name": "ADE_train_00000126.jpg", "width": 512, "id": 125, "height": 675}, {"file_name": "ADE_train_00000127.jpg", "width": 683, "id": 126, "height": 512}, {"file_name": "ADE_train_00000128.jpg", "width": 512, "id": 127, "height": 771}, {"file_name": "ADE_train_00000129.jpg", "width": 512, "id": 128, "height": 780}, {"file_name": "ADE_train_00000130.jpg", "width": 751, "id": 129, "height": 512}, {"file_name": "ADE_train_00000131.jpg", "width": 683, "id": 130, "height": 512}, {"file_name": "ADE_train_00000132.jpg", "width": 773, "id": 131, "height": 512}, {"file_name": "ADE_train_00000133.jpg", "width": 768, "id": 132, "height": 512}, {"file_name": "ADE_train_00000134.jpg", "width": 513, "id": 133, "height": 512}, {"file_name": "ADE_train_00000135.jpg", "width": 683, "id": 134, "height": 512}, {"file_name": "ADE_train_00000136.jpg", "width": 768, "id": 135, "height": 512}, {"file_name": "ADE_train_00000137.jpg", "width": 1000, "id": 136, "height": 1000}, {"file_name": "ADE_train_00000138.jpg", "width": 683, "id": 137, "height": 512}, {"file_name": "ADE_train_00000139.jpg", "width": 512, "id": 138, "height": 683}, {"file_name": "ADE_train_00000140.jpg", "width": 512, "id": 139, "height": 770}, {"file_name": "ADE_train_00000141.jpg", "width": 683, "id": 140, "height": 512}, {"file_name": "ADE_train_00000142.jpg", "width": 768, "id": 141, "height": 512}, {"file_name": "ADE_train_00000143.jpg", "width": 683, "id": 142, "height": 512}, {"file_name": "ADE_train_00000144.jpg", "width": 512, "id": 143, "height": 683}, {"file_name": "ADE_train_00000145.jpg", "width": 740, "id": 144, "height": 512}, {"file_name": "ADE_train_00000146.jpg", "width": 512, "id": 145, "height": 683}, {"file_name": "ADE_train_00000147.jpg", "width": 683, "id": 146, "height": 512}, {"file_name": "ADE_train_00000148.jpg", "width": 683, "id": 147, "height": 512}, {"file_name": "ADE_train_00000149.jpg", "width": 512, "id": 148, "height": 545}, {"file_name": "ADE_train_00000150.jpg", "width": 757, "id": 149, "height": 512}, {"file_name": "ADE_train_00000151.jpg", "width": 512, "id": 150, "height": 683}, {"file_name": "ADE_train_00000152.jpg", "width": 512, "id": 151, "height": 770}, {"file_name": "ADE_train_00000153.jpg", "width": 512, "id": 152, "height": 683}, {"file_name": "ADE_train_00000154.jpg", "width": 768, "id": 153, "height": 512}, {"file_name": "ADE_train_00000155.jpg", "width": 683, "id": 154, "height": 512}, {"file_name": "ADE_train_00000156.jpg", "width": 512, "id": 155, "height": 683}, {"file_name": "ADE_train_00000157.jpg", "width": 683, "id": 156, "height": 512}, {"file_name": "ADE_train_00000158.jpg", "width": 512, "id": 157, "height": 683}, {"file_name": "ADE_train_00000159.jpg", "width": 683, "id": 158, "height": 512}, {"file_name": "ADE_train_00000160.jpg", "width": 768, "id": 159, "height": 512}, {"file_name": "ADE_train_00000161.jpg", "width": 736, "id": 160, "height": 512}, {"file_name": "ADE_train_00000162.jpg", "width": 512, "id": 161, "height": 659}, {"file_name": "ADE_train_00000163.jpg", "width": 768, "id": 162, "height": 512}, {"file_name": "ADE_train_00000164.jpg", "width": 745, "id": 163, "height": 512}, {"file_name": "ADE_train_00000165.jpg", "width": 512, "id": 164, "height": 683}, {"file_name": "ADE_train_00000166.jpg", "width": 250, "id": 165, "height": 277}, {"file_name": "ADE_train_00000167.jpg", "width": 512, "id": 166, "height": 770}, {"file_name": "ADE_train_00000168.jpg", "width": 512, "id": 167, "height": 768}, {"file_name": "ADE_train_00000169.jpg", "width": 512, "id": 168, "height": 683}, {"file_name": "ADE_train_00000170.jpg", "width": 768, "id": 169, "height": 512}, {"file_name": "ADE_train_00000171.jpg", "width": 683, "id": 170, "height": 512}, {"file_name": "ADE_train_00000172.jpg", "width": 512, "id": 171, "height": 683}, {"file_name": "ADE_train_00000173.jpg", "width": 512, "id": 172, "height": 683}, {"file_name": "ADE_train_00000174.jpg", "width": 768, "id": 173, "height": 512}, {"file_name": "ADE_train_00000175.jpg", "width": 512, "id": 174, "height": 683}, {"file_name": "ADE_train_00000176.jpg", "width": 512, "id": 175, "height": 771}, {"file_name": "ADE_train_00000177.jpg", "width": 512, "id": 176, "height": 683}, {"file_name": "ADE_train_00000178.jpg", "width": 683, "id": 177, "height": 512}, {"file_name": "ADE_train_00000179.jpg", "width": 1056, "id": 178, "height": 512}, {"file_name": "ADE_train_00000180.jpg", "width": 512, "id": 179, "height": 683}, {"file_name": "ADE_train_00000181.jpg", "width": 683, "id": 180, "height": 512}, {"file_name": "ADE_train_00000182.jpg", "width": 689, "id": 181, "height": 512}, {"file_name": "ADE_train_00000183.jpg", "width": 683, "id": 182, "height": 512}, {"file_name": "ADE_train_00000184.jpg", "width": 512, "id": 183, "height": 683}, {"file_name": "ADE_train_00000185.jpg", "width": 683, "id": 184, "height": 512}, {"file_name": "ADE_train_00000186.jpg", "width": 683, "id": 185, "height": 512}, {"file_name": "ADE_train_00000187.jpg", "width": 683, "id": 186, "height": 512}, {"file_name": "ADE_train_00000188.jpg", "width": 683, "id": 187, "height": 512}, {"file_name": "ADE_train_00000189.jpg", "width": 512, "id": 188, "height": 683}, {"file_name": "ADE_train_00000190.jpg", "width": 683, "id": 189, "height": 512}, {"file_name": "ADE_train_00000191.jpg", "width": 256, "id": 190, "height": 256}, {"file_name": "ADE_train_00000192.jpg", "width": 256, "id": 191, "height": 256}, {"file_name": "ADE_train_00000193.jpg", "width": 256, "id": 192, "height": 256}, {"file_name": "ADE_train_00000194.jpg", "width": 320, "id": 193, "height": 240}, {"file_name": "ADE_train_00000195.jpg", "width": 256, "id": 194, "height": 256}, {"file_name": "ADE_train_00000196.jpg", "width": 664, "id": 195, "height": 512}, {"file_name": "ADE_train_00000197.jpg", "width": 768, "id": 196, "height": 512}, {"file_name": "ADE_train_00000198.jpg", "width": 256, "id": 197, "height": 256}, {"file_name": "ADE_train_00000199.jpg", "width": 768, "id": 198, "height": 512}, {"file_name": "ADE_train_00000200.jpg", "width": 256, "id": 199, "height": 256}, {"file_name": "ADE_train_00000201.jpg", "width": 827, "id": 200, "height": 512}, {"file_name": "ADE_train_00000202.jpg", "width": 256, "id": 201, "height": 256}, {"file_name": "ADE_train_00000203.jpg", "width": 770, "id": 202, "height": 512}, {"file_name": "ADE_train_00000204.jpg", "width": 815, "id": 203, "height": 512}, {"file_name": "ADE_train_00000205.jpg", "width": 683, "id": 204, "height": 512}, {"file_name": "ADE_train_00000206.jpg", "width": 256, "id": 205, "height": 256}, {"file_name": "ADE_train_00000207.jpg", "width": 683, "id": 206, "height": 512}, {"file_name": "ADE_train_00000208.jpg", "width": 300, "id": 207, "height": 300}, {"file_name": "ADE_train_00000209.jpg", "width": 256, "id": 208, "height": 256}, {"file_name": "ADE_train_00000210.jpg", "width": 304, "id": 209, "height": 228}, {"file_name": "ADE_train_00000211.jpg", "width": 256, "id": 210, "height": 256}, {"file_name": "ADE_train_00000212.jpg", "width": 322, "id": 211, "height": 242}, {"file_name": "ADE_train_00000213.jpg", "width": 300, "id": 212, "height": 200}, {"file_name": "ADE_train_00000214.jpg", "width": 256, "id": 213, "height": 256}, {"file_name": "ADE_train_00000215.jpg", "width": 256, "id": 214, "height": 256}, {"file_name": "ADE_train_00000216.jpg", "width": 683, "id": 215, "height": 512}, {"file_name": "ADE_train_00000217.jpg", "width": 350, "id": 216, "height": 247}, {"file_name": "ADE_train_00000218.jpg", "width": 794, "id": 217, "height": 512}, {"file_name": "ADE_train_00000219.jpg", "width": 300, "id": 218, "height": 226}, {"file_name": "ADE_train_00000220.jpg", "width": 256, "id": 219, "height": 256}, {"file_name": "ADE_train_00000221.jpg", "width": 300, "id": 220, "height": 225}, {"file_name": "ADE_train_00000222.jpg", "width": 256, "id": 221, "height": 256}, {"file_name": "ADE_train_00000223.jpg", "width": 312, "id": 222, "height": 235}, {"file_name": "ADE_train_00000224.jpg", "width": 683, "id": 223, "height": 512}, {"file_name": "ADE_train_00000225.jpg", "width": 320, "id": 224, "height": 240}, {"file_name": "ADE_train_00000226.jpg", "width": 683, "id": 225, "height": 512}, {"file_name": "ADE_train_00000227.jpg", "width": 256, "id": 226, "height": 256}, {"file_name": "ADE_train_00000228.jpg", "width": 683, "id": 227, "height": 512}, {"file_name": "ADE_train_00000229.jpg", "width": 338, "id": 228, "height": 225}, {"file_name": "ADE_train_00000230.jpg", "width": 683, "id": 229, "height": 512}, {"file_name": "ADE_train_00000231.jpg", "width": 767, "id": 230, "height": 512}, {"file_name": "ADE_train_00000232.jpg", "width": 640, "id": 231, "height": 444}, {"file_name": "ADE_train_00000233.jpg", "width": 763, "id": 232, "height": 512}, {"file_name": "ADE_train_00000234.jpg", "width": 240, "id": 233, "height": 300}, {"file_name": "ADE_train_00000235.jpg", "width": 512, "id": 234, "height": 710}, {"file_name": "ADE_train_00000236.jpg", "width": 620, "id": 235, "height": 413}, {"file_name": "ADE_train_00000237.jpg", "width": 683, "id": 236, "height": 512}, {"file_name": "ADE_train_00000238.jpg", "width": 683, "id": 237, "height": 512}, {"file_name": "ADE_train_00000239.jpg", "width": 683, "id": 238, "height": 512}, {"file_name": "ADE_train_00000240.jpg", "width": 683, "id": 239, "height": 512}, {"file_name": "ADE_train_00000241.jpg", "width": 770, "id": 240, "height": 512}, {"file_name": "ADE_train_00000242.jpg", "width": 683, "id": 241, "height": 512}, {"file_name": "ADE_train_00000243.jpg", "width": 683, "id": 242, "height": 512}, {"file_name": "ADE_train_00000244.jpg", "width": 512, "id": 243, "height": 683}, {"file_name": "ADE_train_00000245.jpg", "width": 683, "id": 244, "height": 512}, {"file_name": "ADE_train_00000246.jpg", "width": 826, "id": 245, "height": 512}, {"file_name": "ADE_train_00000247.jpg", "width": 769, "id": 246, "height": 512}, {"file_name": "ADE_train_00000248.jpg", "width": 768, "id": 247, "height": 512}, {"file_name": "ADE_train_00000249.jpg", "width": 683, "id": 248, "height": 512}, {"file_name": "ADE_train_00000250.jpg", "width": 683, "id": 249, "height": 512}, {"file_name": "ADE_train_00000251.jpg", "width": 674, "id": 250, "height": 512}, {"file_name": "ADE_train_00000252.jpg", "width": 769, "id": 251, "height": 512}, {"file_name": "ADE_train_00000253.jpg", "width": 683, "id": 252, "height": 512}, {"file_name": "ADE_train_00000254.jpg", "width": 683, "id": 253, "height": 512}, {"file_name": "ADE_train_00000255.jpg", "width": 683, "id": 254, "height": 512}, {"file_name": "ADE_train_00000256.jpg", "width": 693, "id": 255, "height": 512}, {"file_name": "ADE_train_00000257.jpg", "width": 512, "id": 256, "height": 683}, {"file_name": "ADE_train_00000258.jpg", "width": 765, "id": 257, "height": 512}, {"file_name": "ADE_train_00000259.jpg", "width": 683, "id": 258, "height": 512}, {"file_name": "ADE_train_00000260.jpg", "width": 300, "id": 259, "height": 225}, {"file_name": "ADE_train_00000261.jpg", "width": 683, "id": 260, "height": 512}, {"file_name": "ADE_train_00000262.jpg", "width": 750, "id": 261, "height": 487}, {"file_name": "ADE_train_00000263.jpg", "width": 770, "id": 262, "height": 512}, {"file_name": "ADE_train_00000264.jpg", "width": 768, "id": 263, "height": 512}, {"file_name": "ADE_train_00000265.jpg", "width": 779, "id": 264, "height": 512}, {"file_name": "ADE_train_00000266.jpg", "width": 683, "id": 265, "height": 512}, {"file_name": "ADE_train_00000267.jpg", "width": 683, "id": 266, "height": 512}, {"file_name": "ADE_train_00000268.jpg", "width": 672, "id": 267, "height": 512}, {"file_name": "ADE_train_00000269.jpg", "width": 683, "id": 268, "height": 512}, {"file_name": "ADE_train_00000270.jpg", "width": 768, "id": 269, "height": 512}, {"file_name": "ADE_train_00000271.jpg", "width": 770, "id": 270, "height": 512}, {"file_name": "ADE_train_00000272.jpg", "width": 512, "id": 271, "height": 683}, {"file_name": "ADE_train_00000273.jpg", "width": 684, "id": 272, "height": 512}, {"file_name": "ADE_train_00000274.jpg", "width": 590, "id": 273, "height": 512}, {"file_name": "ADE_train_00000275.jpg", "width": 683, "id": 274, "height": 512}, {"file_name": "ADE_train_00000276.jpg", "width": 768, "id": 275, "height": 512}, {"file_name": "ADE_train_00000277.jpg", "width": 683, "id": 276, "height": 512}, {"file_name": "ADE_train_00000278.jpg", "width": 720, "id": 277, "height": 480}, {"file_name": "ADE_train_00000279.jpg", "width": 543, "id": 278, "height": 379}, {"file_name": "ADE_train_00000280.jpg", "width": 683, "id": 279, "height": 512}, {"file_name": "ADE_train_00000281.jpg", "width": 771, "id": 280, "height": 512}, {"file_name": "ADE_train_00000282.jpg", "width": 512, "id": 281, "height": 683}, {"file_name": "ADE_train_00000283.jpg", "width": 683, "id": 282, "height": 512}, {"file_name": "ADE_train_00000284.jpg", "width": 683, "id": 283, "height": 512}, {"file_name": "ADE_train_00000285.jpg", "width": 768, "id": 284, "height": 512}, {"file_name": "ADE_train_00000286.jpg", "width": 768, "id": 285, "height": 512}, {"file_name": "ADE_train_00000287.jpg", "width": 674, "id": 286, "height": 512}, {"file_name": "ADE_train_00000288.jpg", "width": 683, "id": 287, "height": 512}, {"file_name": "ADE_train_00000289.jpg", "width": 768, "id": 288, "height": 512}, {"file_name": "ADE_train_00000290.jpg", "width": 683, "id": 289, "height": 512}, {"file_name": "ADE_train_00000291.jpg", "width": 827, "id": 290, "height": 512}, {"file_name": "ADE_train_00000292.jpg", "width": 809, "id": 291, "height": 512}, {"file_name": "ADE_train_00000293.jpg", "width": 768, "id": 292, "height": 512}, {"file_name": "ADE_train_00000294.jpg", "width": 768, "id": 293, "height": 512}, {"file_name": "ADE_train_00000295.jpg", "width": 802, "id": 294, "height": 512}, {"file_name": "ADE_train_00000296.jpg", "width": 512, "id": 295, "height": 683}, {"file_name": "ADE_train_00000297.jpg", "width": 708, "id": 296, "height": 512}, {"file_name": "ADE_train_00000298.jpg", "width": 683, "id": 297, "height": 512}, {"file_name": "ADE_train_00000299.jpg", "width": 765, "id": 298, "height": 512}, {"file_name": "ADE_train_00000300.jpg", "width": 764, "id": 299, "height": 512}, {"file_name": "ADE_train_00000301.jpg", "width": 683, "id": 300, "height": 512}, {"file_name": "ADE_train_00000302.jpg", "width": 1538, "id": 301, "height": 1538}, {"file_name": "ADE_train_00000303.jpg", "width": 680, "id": 302, "height": 512}, {"file_name": "ADE_train_00000304.jpg", "width": 767, "id": 303, "height": 512}, {"file_name": "ADE_train_00000305.jpg", "width": 683, "id": 304, "height": 512}, {"file_name": "ADE_train_00000306.jpg", "width": 910, "id": 305, "height": 512}, {"file_name": "ADE_train_00000307.jpg", "width": 750, "id": 306, "height": 500}, {"file_name": "ADE_train_00000308.jpg", "width": 683, "id": 307, "height": 512}, {"file_name": "ADE_train_00000309.jpg", "width": 683, "id": 308, "height": 512}, {"file_name": "ADE_train_00000310.jpg", "width": 700, "id": 309, "height": 473}, {"file_name": "ADE_train_00000311.jpg", "width": 768, "id": 310, "height": 512}, {"file_name": "ADE_train_00000312.jpg", "width": 770, "id": 311, "height": 512}, {"file_name": "ADE_train_00000313.jpg", "width": 768, "id": 312, "height": 512}, {"file_name": "ADE_train_00000314.jpg", "width": 737, "id": 313, "height": 492}, {"file_name": "ADE_train_00000315.jpg", "width": 683, "id": 314, "height": 512}, {"file_name": "ADE_train_00000316.jpg", "width": 512, "id": 315, "height": 683}, {"file_name": "ADE_train_00000317.jpg", "width": 683, "id": 316, "height": 512}, {"file_name": "ADE_train_00000318.jpg", "width": 512, "id": 317, "height": 771}, {"file_name": "ADE_train_00000319.jpg", "width": 683, "id": 318, "height": 512}, {"file_name": "ADE_train_00000320.jpg", "width": 768, "id": 319, "height": 512}, {"file_name": "ADE_train_00000321.jpg", "width": 683, "id": 320, "height": 512}, {"file_name": "ADE_train_00000322.jpg", "width": 768, "id": 321, "height": 512}, {"file_name": "ADE_train_00000323.jpg", "width": 683, "id": 322, "height": 512}, {"file_name": "ADE_train_00000324.jpg", "width": 683, "id": 323, "height": 512}, {"file_name": "ADE_train_00000325.jpg", "width": 683, "id": 324, "height": 512}, {"file_name": "ADE_train_00000326.jpg", "width": 768, "id": 325, "height": 512}, {"file_name": "ADE_train_00000327.jpg", "width": 770, "id": 326, "height": 512}, {"file_name": "ADE_train_00000328.jpg", "width": 765, "id": 327, "height": 512}, {"file_name": "ADE_train_00000329.jpg", "width": 683, "id": 328, "height": 512}, {"file_name": "ADE_train_00000330.jpg", "width": 512, "id": 329, "height": 683}, {"file_name": "ADE_train_00000331.jpg", "width": 683, "id": 330, "height": 512}, {"file_name": "ADE_train_00000332.jpg", "width": 683, "id": 331, "height": 512}, {"file_name": "ADE_train_00000333.jpg", "width": 683, "id": 332, "height": 512}, {"file_name": "ADE_train_00000334.jpg", "width": 512, "id": 333, "height": 683}, {"file_name": "ADE_train_00000335.jpg", "width": 683, "id": 334, "height": 512}, {"file_name": "ADE_train_00000336.jpg", "width": 683, "id": 335, "height": 512}, {"file_name": "ADE_train_00000337.jpg", "width": 683, "id": 336, "height": 512}, {"file_name": "ADE_train_00000338.jpg", "width": 768, "id": 337, "height": 512}, {"file_name": "ADE_train_00000339.jpg", "width": 1184, "id": 338, "height": 512}, {"file_name": "ADE_train_00000340.jpg", "width": 768, "id": 339, "height": 512}, {"file_name": "ADE_train_00000341.jpg", "width": 256, "id": 340, "height": 256}, {"file_name": "ADE_train_00000342.jpg", "width": 640, "id": 341, "height": 426}, {"file_name": "ADE_train_00000343.jpg", "width": 791, "id": 342, "height": 512}, {"file_name": "ADE_train_00000344.jpg", "width": 728, "id": 343, "height": 512}, {"file_name": "ADE_train_00000345.jpg", "width": 600, "id": 344, "height": 400}, {"file_name": "ADE_train_00000346.jpg", "width": 768, "id": 345, "height": 512}, {"file_name": "ADE_train_00000347.jpg", "width": 512, "id": 346, "height": 683}, {"file_name": "ADE_train_00000348.jpg", "width": 683, "id": 347, "height": 512}, {"file_name": "ADE_train_00000349.jpg", "width": 683, "id": 348, "height": 512}, {"file_name": "ADE_train_00000350.jpg", "width": 683, "id": 349, "height": 512}, {"file_name": "ADE_train_00000351.jpg", "width": 770, "id": 350, "height": 512}, {"file_name": "ADE_train_00000352.jpg", "width": 683, "id": 351, "height": 512}, {"file_name": "ADE_train_00000353.jpg", "width": 768, "id": 352, "height": 512}, {"file_name": "ADE_train_00000354.jpg", "width": 681, "id": 353, "height": 512}, {"file_name": "ADE_train_00000355.jpg", "width": 683, "id": 354, "height": 512}, {"file_name": "ADE_train_00000356.jpg", "width": 683, "id": 355, "height": 512}, {"file_name": "ADE_train_00000357.jpg", "width": 683, "id": 356, "height": 512}, {"file_name": "ADE_train_00000358.jpg", "width": 683, "id": 357, "height": 512}, {"file_name": "ADE_train_00000359.jpg", "width": 734, "id": 358, "height": 512}, {"file_name": "ADE_train_00000360.jpg", "width": 767, "id": 359, "height": 512}, {"file_name": "ADE_train_00000361.jpg", "width": 787, "id": 360, "height": 512}, {"file_name": "ADE_train_00000362.jpg", "width": 765, "id": 361, "height": 512}, {"file_name": "ADE_train_00000363.jpg", "width": 683, "id": 362, "height": 512}, {"file_name": "ADE_train_00000364.jpg", "width": 735, "id": 363, "height": 512}, {"file_name": "ADE_train_00000365.jpg", "width": 770, "id": 364, "height": 512}, {"file_name": "ADE_train_00000366.jpg", "width": 770, "id": 365, "height": 512}, {"file_name": "ADE_train_00000367.jpg", "width": 683, "id": 366, "height": 512}, {"file_name": "ADE_train_00000368.jpg", "width": 701, "id": 367, "height": 457}, {"file_name": "ADE_train_00000369.jpg", "width": 683, "id": 368, "height": 512}, {"file_name": "ADE_train_00000370.jpg", "width": 512, "id": 369, "height": 640}, {"file_name": "ADE_train_00000371.jpg", "width": 769, "id": 370, "height": 512}, {"file_name": "ADE_train_00000372.jpg", "width": 770, "id": 371, "height": 512}, {"file_name": "ADE_train_00000373.jpg", "width": 765, "id": 372, "height": 512}, {"file_name": "ADE_train_00000374.jpg", "width": 764, "id": 373, "height": 512}, {"file_name": "ADE_train_00000375.jpg", "width": 771, "id": 374, "height": 512}, {"file_name": "ADE_train_00000376.jpg", "width": 765, "id": 375, "height": 512}, {"file_name": "ADE_train_00000377.jpg", "width": 683, "id": 376, "height": 512}, {"file_name": "ADE_train_00000378.jpg", "width": 768, "id": 377, "height": 512}, {"file_name": "ADE_train_00000379.jpg", "width": 683, "id": 378, "height": 512}, {"file_name": "ADE_train_00000380.jpg", "width": 716, "id": 379, "height": 512}, {"file_name": "ADE_train_00000381.jpg", "width": 512, "id": 380, "height": 775}, {"file_name": "ADE_train_00000382.jpg", "width": 683, "id": 381, "height": 512}, {"file_name": "ADE_train_00000383.jpg", "width": 683, "id": 382, "height": 512}, {"file_name": "ADE_train_00000384.jpg", "width": 771, "id": 383, "height": 512}, {"file_name": "ADE_train_00000385.jpg", "width": 683, "id": 384, "height": 512}, {"file_name": "ADE_train_00000386.jpg", "width": 720, "id": 385, "height": 480}, {"file_name": "ADE_train_00000387.jpg", "width": 765, "id": 386, "height": 512}, {"file_name": "ADE_train_00000388.jpg", "width": 750, "id": 387, "height": 500}, {"file_name": "ADE_train_00000389.jpg", "width": 909, "id": 388, "height": 512}, {"file_name": "ADE_train_00000390.jpg", "width": 683, "id": 389, "height": 512}, {"file_name": "ADE_train_00000391.jpg", "width": 768, "id": 390, "height": 512}, {"file_name": "ADE_train_00000392.jpg", "width": 765, "id": 391, "height": 512}, {"file_name": "ADE_train_00000393.jpg", "width": 770, "id": 392, "height": 512}, {"file_name": "ADE_train_00000394.jpg", "width": 768, "id": 393, "height": 512}, {"file_name": "ADE_train_00000395.jpg", "width": 512, "id": 394, "height": 683}, {"file_name": "ADE_train_00000396.jpg", "width": 683, "id": 395, "height": 512}, {"file_name": "ADE_train_00000397.jpg", "width": 683, "id": 396, "height": 512}, {"file_name": "ADE_train_00000398.jpg", "width": 1095, "id": 397, "height": 512}, {"file_name": "ADE_train_00000399.jpg", "width": 683, "id": 398, "height": 512}, {"file_name": "ADE_train_00000400.jpg", "width": 683, "id": 399, "height": 512}, {"file_name": "ADE_train_00000401.jpg", "width": 773, "id": 400, "height": 512}, {"file_name": "ADE_train_00000402.jpg", "width": 683, "id": 401, "height": 512}, {"file_name": "ADE_train_00000403.jpg", "width": 683, "id": 402, "height": 512}, {"file_name": "ADE_train_00000404.jpg", "width": 683, "id": 403, "height": 512}, {"file_name": "ADE_train_00000405.jpg", "width": 764, "id": 404, "height": 512}, {"file_name": "ADE_train_00000406.jpg", "width": 687, "id": 405, "height": 512}, {"file_name": "ADE_train_00000407.jpg", "width": 683, "id": 406, "height": 512}, {"file_name": "ADE_train_00000408.jpg", "width": 683, "id": 407, "height": 512}, {"file_name": "ADE_train_00000409.jpg", "width": 709, "id": 408, "height": 512}, {"file_name": "ADE_train_00000410.jpg", "width": 770, "id": 409, "height": 512}, {"file_name": "ADE_train_00000411.jpg", "width": 683, "id": 410, "height": 512}, {"file_name": "ADE_train_00000412.jpg", "width": 683, "id": 411, "height": 512}, {"file_name": "ADE_train_00000413.jpg", "width": 765, "id": 412, "height": 512}, {"file_name": "ADE_train_00000414.jpg", "width": 683, "id": 413, "height": 512}, {"file_name": "ADE_train_00000415.jpg", "width": 1000, "id": 414, "height": 1000}, {"file_name": "ADE_train_00000416.jpg", "width": 683, "id": 415, "height": 512}, {"file_name": "ADE_train_00000417.jpg", "width": 683, "id": 416, "height": 512}, {"file_name": "ADE_train_00000418.jpg", "width": 768, "id": 417, "height": 512}, {"file_name": "ADE_train_00000419.jpg", "width": 683, "id": 418, "height": 512}, {"file_name": "ADE_train_00000420.jpg", "width": 683, "id": 419, "height": 512}, {"file_name": "ADE_train_00000421.jpg", "width": 683, "id": 420, "height": 512}, {"file_name": "ADE_train_00000422.jpg", "width": 683, "id": 421, "height": 512}, {"file_name": "ADE_train_00000423.jpg", "width": 683, "id": 422, "height": 512}, {"file_name": "ADE_train_00000424.jpg", "width": 717, "id": 423, "height": 512}, {"file_name": "ADE_train_00000425.jpg", "width": 768, "id": 424, "height": 512}, {"file_name": "ADE_train_00000426.jpg", "width": 770, "id": 425, "height": 512}, {"file_name": "ADE_train_00000427.jpg", "width": 768, "id": 426, "height": 512}, {"file_name": "ADE_train_00000428.jpg", "width": 683, "id": 427, "height": 512}, {"file_name": "ADE_train_00000429.jpg", "width": 683, "id": 428, "height": 512}, {"file_name": "ADE_train_00000430.jpg", "width": 768, "id": 429, "height": 512}, {"file_name": "ADE_train_00000431.jpg", "width": 708, "id": 430, "height": 512}, {"file_name": "ADE_train_00000432.jpg", "width": 683, "id": 431, "height": 512}, {"file_name": "ADE_train_00000433.jpg", "width": 683, "id": 432, "height": 512}, {"file_name": "ADE_train_00000434.jpg", "width": 512, "id": 433, "height": 640}, {"file_name": "ADE_train_00000435.jpg", "width": 686, "id": 434, "height": 512}, {"file_name": "ADE_train_00000436.jpg", "width": 512, "id": 435, "height": 682}, {"file_name": "ADE_train_00000437.jpg", "width": 768, "id": 436, "height": 512}, {"file_name": "ADE_train_00000438.jpg", "width": 769, "id": 437, "height": 512}, {"file_name": "ADE_train_00000439.jpg", "width": 769, "id": 438, "height": 512}, {"file_name": "ADE_train_00000440.jpg", "width": 683, "id": 439, "height": 512}, {"file_name": "ADE_train_00000441.jpg", "width": 769, "id": 440, "height": 512}, {"file_name": "ADE_train_00000442.jpg", "width": 683, "id": 441, "height": 512}, {"file_name": "ADE_train_00000443.jpg", "width": 785, "id": 442, "height": 512}, {"file_name": "ADE_train_00000444.jpg", "width": 683, "id": 443, "height": 512}, {"file_name": "ADE_train_00000445.jpg", "width": 685, "id": 444, "height": 512}, {"file_name": "ADE_train_00000446.jpg", "width": 683, "id": 445, "height": 512}, {"file_name": "ADE_train_00000447.jpg", "width": 683, "id": 446, "height": 512}, {"file_name": "ADE_train_00000448.jpg", "width": 640, "id": 447, "height": 427}, {"file_name": "ADE_train_00000449.jpg", "width": 690, "id": 448, "height": 512}, {"file_name": "ADE_train_00000450.jpg", "width": 700, "id": 449, "height": 473}, {"file_name": "ADE_train_00000451.jpg", "width": 512, "id": 450, "height": 555}, {"file_name": "ADE_train_00000452.jpg", "width": 706, "id": 451, "height": 512}, {"file_name": "ADE_train_00000453.jpg", "width": 768, "id": 452, "height": 512}, {"file_name": "ADE_train_00000454.jpg", "width": 674, "id": 453, "height": 512}, {"file_name": "ADE_train_00000455.jpg", "width": 780, "id": 454, "height": 512}, {"file_name": "ADE_train_00000456.jpg", "width": 683, "id": 455, "height": 512}, {"file_name": "ADE_train_00000457.jpg", "width": 640, "id": 456, "height": 426}, {"file_name": "ADE_train_00000458.jpg", "width": 768, "id": 457, "height": 512}, {"file_name": "ADE_train_00000459.jpg", "width": 684, "id": 458, "height": 512}, {"file_name": "ADE_train_00000460.jpg", "width": 761, "id": 459, "height": 512}, {"file_name": "ADE_train_00000461.jpg", "width": 765, "id": 460, "height": 512}, {"file_name": "ADE_train_00000462.jpg", "width": 693, "id": 461, "height": 512}, {"file_name": "ADE_train_00000463.jpg", "width": 683, "id": 462, "height": 512}, {"file_name": "ADE_train_00000464.jpg", "width": 770, "id": 463, "height": 512}, {"file_name": "ADE_train_00000465.jpg", "width": 640, "id": 464, "height": 512}, {"file_name": "ADE_train_00000466.jpg", "width": 683, "id": 465, "height": 512}, {"file_name": "ADE_train_00000467.jpg", "width": 773, "id": 466, "height": 512}, {"file_name": "ADE_train_00000468.jpg", "width": 683, "id": 467, "height": 512}, {"file_name": "ADE_train_00000469.jpg", "width": 745, "id": 468, "height": 512}, {"file_name": "ADE_train_00000470.jpg", "width": 683, "id": 469, "height": 512}, {"file_name": "ADE_train_00000471.jpg", "width": 773, "id": 470, "height": 512}, {"file_name": "ADE_train_00000472.jpg", "width": 771, "id": 471, "height": 512}, {"file_name": "ADE_train_00000473.jpg", "width": 768, "id": 472, "height": 512}, {"file_name": "ADE_train_00000474.jpg", "width": 720, "id": 473, "height": 480}, {"file_name": "ADE_train_00000475.jpg", "width": 765, "id": 474, "height": 512}, {"file_name": "ADE_train_00000476.jpg", "width": 662, "id": 475, "height": 512}, {"file_name": "ADE_train_00000477.jpg", "width": 683, "id": 476, "height": 512}, {"file_name": "ADE_train_00000478.jpg", "width": 768, "id": 477, "height": 512}, {"file_name": "ADE_train_00000479.jpg", "width": 512, "id": 478, "height": 649}, {"file_name": "ADE_train_00000480.jpg", "width": 766, "id": 479, "height": 512}, {"file_name": "ADE_train_00000481.jpg", "width": 600, "id": 480, "height": 450}, {"file_name": "ADE_train_00000482.jpg", "width": 683, "id": 481, "height": 512}, {"file_name": "ADE_train_00000483.jpg", "width": 683, "id": 482, "height": 512}, {"file_name": "ADE_train_00000484.jpg", "width": 512, "id": 483, "height": 683}, {"file_name": "ADE_train_00000485.jpg", "width": 768, "id": 484, "height": 512}, {"file_name": "ADE_train_00000486.jpg", "width": 683, "id": 485, "height": 512}, {"file_name": "ADE_train_00000487.jpg", "width": 765, "id": 486, "height": 512}, {"file_name": "ADE_train_00000488.jpg", "width": 683, "id": 487, "height": 512}, {"file_name": "ADE_train_00000489.jpg", "width": 682, "id": 488, "height": 512}, {"file_name": "ADE_train_00000490.jpg", "width": 768, "id": 489, "height": 512}, {"file_name": "ADE_train_00000491.jpg", "width": 600, "id": 490, "height": 300}, {"file_name": "ADE_train_00000492.jpg", "width": 683, "id": 491, "height": 512}, {"file_name": "ADE_train_00000493.jpg", "width": 686, "id": 492, "height": 512}, {"file_name": "ADE_train_00000494.jpg", "width": 768, "id": 493, "height": 512}, {"file_name": "ADE_train_00000495.jpg", "width": 964, "id": 494, "height": 512}, {"file_name": "ADE_train_00000496.jpg", "width": 757, "id": 495, "height": 512}, {"file_name": "ADE_train_00000497.jpg", "width": 768, "id": 496, "height": 512}, {"file_name": "ADE_train_00000498.jpg", "width": 763, "id": 497, "height": 512}, {"file_name": "ADE_train_00000499.jpg", "width": 683, "id": 498, "height": 512}, {"file_name": "ADE_train_00000500.jpg", "width": 640, "id": 499, "height": 422}, {"file_name": "ADE_train_00000501.jpg", "width": 683, "id": 500, "height": 512}, {"file_name": "ADE_train_00000502.jpg", "width": 910, "id": 501, "height": 512}, {"file_name": "ADE_train_00000503.jpg", "width": 768, "id": 502, "height": 512}, {"file_name": "ADE_train_00000504.jpg", "width": 798, "id": 503, "height": 512}, {"file_name": "ADE_train_00000505.jpg", "width": 768, "id": 504, "height": 512}, {"file_name": "ADE_train_00000506.jpg", "width": 683, "id": 505, "height": 512}, {"file_name": "ADE_train_00000507.jpg", "width": 822, "id": 506, "height": 512}, {"file_name": "ADE_train_00000508.jpg", "width": 768, "id": 507, "height": 512}, {"file_name": "ADE_train_00000509.jpg", "width": 500, "id": 508, "height": 393}, {"file_name": "ADE_train_00000510.jpg", "width": 683, "id": 509, "height": 512}, {"file_name": "ADE_train_00000511.jpg", "width": 544, "id": 510, "height": 512}, {"file_name": "ADE_train_00000512.jpg", "width": 768, "id": 511, "height": 512}, {"file_name": "ADE_train_00000513.jpg", "width": 683, "id": 512, "height": 512}, {"file_name": "ADE_train_00000514.jpg", "width": 768, "id": 513, "height": 512}, {"file_name": "ADE_train_00000515.jpg", "width": 683, "id": 514, "height": 512}, {"file_name": "ADE_train_00000516.jpg", "width": 802, "id": 515, "height": 512}, {"file_name": "ADE_train_00000517.jpg", "width": 768, "id": 516, "height": 512}, {"file_name": "ADE_train_00000518.jpg", "width": 635, "id": 517, "height": 512}, {"file_name": "ADE_train_00000519.jpg", "width": 683, "id": 518, "height": 512}, {"file_name": "ADE_train_00000520.jpg", "width": 767, "id": 519, "height": 512}, {"file_name": "ADE_train_00000521.jpg", "width": 783, "id": 520, "height": 512}, {"file_name": "ADE_train_00000522.jpg", "width": 325, "id": 521, "height": 244}, {"file_name": "ADE_train_00000523.jpg", "width": 639, "id": 522, "height": 512}, {"file_name": "ADE_train_00000524.jpg", "width": 765, "id": 523, "height": 512}, {"file_name": "ADE_train_00000525.jpg", "width": 686, "id": 524, "height": 512}, {"file_name": "ADE_train_00000526.jpg", "width": 773, "id": 525, "height": 512}, {"file_name": "ADE_train_00000527.jpg", "width": 683, "id": 526, "height": 512}, {"file_name": "ADE_train_00000528.jpg", "width": 771, "id": 527, "height": 512}, {"file_name": "ADE_train_00000529.jpg", "width": 700, "id": 528, "height": 465}, {"file_name": "ADE_train_00000530.jpg", "width": 512, "id": 529, "height": 683}, {"file_name": "ADE_train_00000531.jpg", "width": 234, "id": 530, "height": 288}, {"file_name": "ADE_train_00000532.jpg", "width": 680, "id": 531, "height": 512}, {"file_name": "ADE_train_00000533.jpg", "width": 751, "id": 532, "height": 512}, {"file_name": "ADE_train_00000534.jpg", "width": 683, "id": 533, "height": 512}, {"file_name": "ADE_train_00000535.jpg", "width": 683, "id": 534, "height": 512}, {"file_name": "ADE_train_00000536.jpg", "width": 640, "id": 535, "height": 512}, {"file_name": "ADE_train_00000537.jpg", "width": 778, "id": 536, "height": 512}, {"file_name": "ADE_train_00000538.jpg", "width": 683, "id": 537, "height": 512}, {"file_name": "ADE_train_00000539.jpg", "width": 683, "id": 538, "height": 512}, {"file_name": "ADE_train_00000540.jpg", "width": 771, "id": 539, "height": 512}, {"file_name": "ADE_train_00000541.jpg", "width": 683, "id": 540, "height": 512}, {"file_name": "ADE_train_00000542.jpg", "width": 682, "id": 541, "height": 512}, {"file_name": "ADE_train_00000543.jpg", "width": 822, "id": 542, "height": 512}, {"file_name": "ADE_train_00000544.jpg", "width": 561, "id": 543, "height": 512}, {"file_name": "ADE_train_00000545.jpg", "width": 683, "id": 544, "height": 512}, {"file_name": "ADE_train_00000546.jpg", "width": 683, "id": 545, "height": 512}, {"file_name": "ADE_train_00000547.jpg", "width": 325, "id": 546, "height": 245}, {"file_name": "ADE_train_00000548.jpg", "width": 771, "id": 547, "height": 512}, {"file_name": "ADE_train_00000549.jpg", "width": 512, "id": 548, "height": 683}, {"file_name": "ADE_train_00000550.jpg", "width": 683, "id": 549, "height": 512}, {"file_name": "ADE_train_00000551.jpg", "width": 683, "id": 550, "height": 512}, {"file_name": "ADE_train_00000552.jpg", "width": 683, "id": 551, "height": 512}, {"file_name": "ADE_train_00000553.jpg", "width": 512, "id": 552, "height": 631}, {"file_name": "ADE_train_00000554.jpg", "width": 683, "id": 553, "height": 512}, {"file_name": "ADE_train_00000555.jpg", "width": 256, "id": 554, "height": 256}, {"file_name": "ADE_train_00000556.jpg", "width": 256, "id": 555, "height": 256}, {"file_name": "ADE_train_00000557.jpg", "width": 300, "id": 556, "height": 204}, {"file_name": "ADE_train_00000558.jpg", "width": 640, "id": 557, "height": 480}, {"file_name": "ADE_train_00000559.jpg", "width": 1030, "id": 558, "height": 512}, {"file_name": "ADE_train_00000560.jpg", "width": 512, "id": 559, "height": 683}, {"file_name": "ADE_train_00000561.jpg", "width": 300, "id": 560, "height": 225}, {"file_name": "ADE_train_00000562.jpg", "width": 224, "id": 561, "height": 314}, {"file_name": "ADE_train_00000563.jpg", "width": 683, "id": 562, "height": 512}, {"file_name": "ADE_train_00000564.jpg", "width": 256, "id": 563, "height": 256}, {"file_name": "ADE_train_00000565.jpg", "width": 512, "id": 564, "height": 768}, {"file_name": "ADE_train_00000566.jpg", "width": 801, "id": 565, "height": 426}, {"file_name": "ADE_train_00000567.jpg", "width": 256, "id": 566, "height": 256}, {"file_name": "ADE_train_00000568.jpg", "width": 683, "id": 567, "height": 512}, {"file_name": "ADE_train_00000569.jpg", "width": 683, "id": 568, "height": 512}, {"file_name": "ADE_train_00000570.jpg", "width": 450, "id": 569, "height": 338}, {"file_name": "ADE_train_00000571.jpg", "width": 683, "id": 570, "height": 512}, {"file_name": "ADE_train_00000572.jpg", "width": 683, "id": 571, "height": 512}, {"file_name": "ADE_train_00000573.jpg", "width": 768, "id": 572, "height": 512}, {"file_name": "ADE_train_00000574.jpg", "width": 256, "id": 573, "height": 256}, {"file_name": "ADE_train_00000575.jpg", "width": 683, "id": 574, "height": 512}, {"file_name": "ADE_train_00000576.jpg", "width": 683, "id": 575, "height": 512}, {"file_name": "ADE_train_00000577.jpg", "width": 803, "id": 576, "height": 512}, {"file_name": "ADE_train_00000578.jpg", "width": 240, "id": 577, "height": 240}, {"file_name": "ADE_train_00000579.jpg", "width": 640, "id": 578, "height": 512}, {"file_name": "ADE_train_00000580.jpg", "width": 512, "id": 579, "height": 763}, {"file_name": "ADE_train_00000581.jpg", "width": 480, "id": 580, "height": 640}, {"file_name": "ADE_train_00000582.jpg", "width": 683, "id": 581, "height": 512}, {"file_name": "ADE_train_00000583.jpg", "width": 683, "id": 582, "height": 512}, {"file_name": "ADE_train_00000584.jpg", "width": 300, "id": 583, "height": 225}, {"file_name": "ADE_train_00000585.jpg", "width": 388, "id": 584, "height": 244}, {"file_name": "ADE_train_00000586.jpg", "width": 683, "id": 585, "height": 512}, {"file_name": "ADE_train_00000587.jpg", "width": 425, "id": 586, "height": 273}, {"file_name": "ADE_train_00000588.jpg", "width": 600, "id": 587, "height": 284}, {"file_name": "ADE_train_00000589.jpg", "width": 640, "id": 588, "height": 480}, {"file_name": "ADE_train_00000590.jpg", "width": 683, "id": 589, "height": 512}, {"file_name": "ADE_train_00000591.jpg", "width": 300, "id": 590, "height": 225}, {"file_name": "ADE_train_00000592.jpg", "width": 432, "id": 591, "height": 288}, {"file_name": "ADE_train_00000593.jpg", "width": 227, "id": 592, "height": 378}, {"file_name": "ADE_train_00000594.jpg", "width": 653, "id": 593, "height": 512}, {"file_name": "ADE_train_00000595.jpg", "width": 700, "id": 594, "height": 473}, {"file_name": "ADE_train_00000596.jpg", "width": 777, "id": 595, "height": 512}, {"file_name": "ADE_train_00000597.jpg", "width": 768, "id": 596, "height": 512}, {"file_name": "ADE_train_00000598.jpg", "width": 683, "id": 597, "height": 512}, {"file_name": "ADE_train_00000599.jpg", "width": 772, "id": 598, "height": 512}, {"file_name": "ADE_train_00000600.jpg", "width": 777, "id": 599, "height": 512}, {"file_name": "ADE_train_00000601.jpg", "width": 768, "id": 600, "height": 512}, {"file_name": "ADE_train_00000602.jpg", "width": 728, "id": 601, "height": 512}, {"file_name": "ADE_train_00000603.jpg", "width": 646, "id": 602, "height": 512}, {"file_name": "ADE_train_00000604.jpg", "width": 768, "id": 603, "height": 512}, {"file_name": "ADE_train_00000605.jpg", "width": 782, "id": 604, "height": 512}, {"file_name": "ADE_train_00000606.jpg", "width": 765, "id": 605, "height": 512}, {"file_name": "ADE_train_00000607.jpg", "width": 769, "id": 606, "height": 512}, {"file_name": "ADE_train_00000608.jpg", "width": 768, "id": 607, "height": 512}, {"file_name": "ADE_train_00000609.jpg", "width": 768, "id": 608, "height": 512}, {"file_name": "ADE_train_00000610.jpg", "width": 683, "id": 609, "height": 512}, {"file_name": "ADE_train_00000611.jpg", "width": 783, "id": 610, "height": 512}, {"file_name": "ADE_train_00000612.jpg", "width": 768, "id": 611, "height": 512}, {"file_name": "ADE_train_00000613.jpg", "width": 770, "id": 612, "height": 512}, {"file_name": "ADE_train_00000614.jpg", "width": 683, "id": 613, "height": 512}, {"file_name": "ADE_train_00000615.jpg", "width": 768, "id": 614, "height": 512}, {"file_name": "ADE_train_00000616.jpg", "width": 512, "id": 615, "height": 682}, {"file_name": "ADE_train_00000617.jpg", "width": 731, "id": 616, "height": 512}, {"file_name": "ADE_train_00000618.jpg", "width": 769, "id": 617, "height": 512}, {"file_name": "ADE_train_00000619.jpg", "width": 770, "id": 618, "height": 512}, {"file_name": "ADE_train_00000620.jpg", "width": 768, "id": 619, "height": 512}, {"file_name": "ADE_train_00000621.jpg", "width": 723, "id": 620, "height": 512}, {"file_name": "ADE_train_00000622.jpg", "width": 770, "id": 621, "height": 512}, {"file_name": "ADE_train_00000623.jpg", "width": 592, "id": 622, "height": 512}, {"file_name": "ADE_train_00000624.jpg", "width": 777, "id": 623, "height": 512}, {"file_name": "ADE_train_00000625.jpg", "width": 683, "id": 624, "height": 512}, {"file_name": "ADE_train_00000626.jpg", "width": 683, "id": 625, "height": 512}, {"file_name": "ADE_train_00000627.jpg", "width": 683, "id": 626, "height": 512}, {"file_name": "ADE_train_00000628.jpg", "width": 768, "id": 627, "height": 512}, {"file_name": "ADE_train_00000629.jpg", "width": 683, "id": 628, "height": 512}, {"file_name": "ADE_train_00000630.jpg", "width": 683, "id": 629, "height": 512}, {"file_name": "ADE_train_00000631.jpg", "width": 683, "id": 630, "height": 512}, {"file_name": "ADE_train_00000632.jpg", "width": 683, "id": 631, "height": 512}, {"file_name": "ADE_train_00000633.jpg", "width": 683, "id": 632, "height": 512}, {"file_name": "ADE_train_00000634.jpg", "width": 683, "id": 633, "height": 512}, {"file_name": "ADE_train_00000635.jpg", "width": 683, "id": 634, "height": 512}, {"file_name": "ADE_train_00000636.jpg", "width": 770, "id": 635, "height": 512}, {"file_name": "ADE_train_00000637.jpg", "width": 512, "id": 636, "height": 683}, {"file_name": "ADE_train_00000638.jpg", "width": 683, "id": 637, "height": 512}, {"file_name": "ADE_train_00000639.jpg", "width": 665, "id": 638, "height": 512}, {"file_name": "ADE_train_00000640.jpg", "width": 683, "id": 639, "height": 512}, {"file_name": "ADE_train_00000641.jpg", "width": 700, "id": 640, "height": 466}, {"file_name": "ADE_train_00000642.jpg", "width": 640, "id": 641, "height": 512}, {"file_name": "ADE_train_00000643.jpg", "width": 765, "id": 642, "height": 512}, {"file_name": "ADE_train_00000644.jpg", "width": 683, "id": 643, "height": 512}, {"file_name": "ADE_train_00000645.jpg", "width": 683, "id": 644, "height": 512}, {"file_name": "ADE_train_00000646.jpg", "width": 683, "id": 645, "height": 512}, {"file_name": "ADE_train_00000647.jpg", "width": 512, "id": 646, "height": 758}, {"file_name": "ADE_train_00000648.jpg", "width": 769, "id": 647, "height": 512}, {"file_name": "ADE_train_00000649.jpg", "width": 683, "id": 648, "height": 512}, {"file_name": "ADE_train_00000650.jpg", "width": 768, "id": 649, "height": 512}, {"file_name": "ADE_train_00000651.jpg", "width": 768, "id": 650, "height": 512}, {"file_name": "ADE_train_00000652.jpg", "width": 752, "id": 651, "height": 512}, {"file_name": "ADE_train_00000653.jpg", "width": 720, "id": 652, "height": 480}, {"file_name": "ADE_train_00000654.jpg", "width": 741, "id": 653, "height": 512}, {"file_name": "ADE_train_00000655.jpg", "width": 700, "id": 654, "height": 473}, {"file_name": "ADE_train_00000656.jpg", "width": 764, "id": 655, "height": 512}, {"file_name": "ADE_train_00000657.jpg", "width": 768, "id": 656, "height": 512}, {"file_name": "ADE_train_00000658.jpg", "width": 500, "id": 657, "height": 348}, {"file_name": "ADE_train_00000659.jpg", "width": 769, "id": 658, "height": 512}, {"file_name": "ADE_train_00000660.jpg", "width": 701, "id": 659, "height": 512}, {"file_name": "ADE_train_00000661.jpg", "width": 683, "id": 660, "height": 512}, {"file_name": "ADE_train_00000662.jpg", "width": 683, "id": 661, "height": 512}, {"file_name": "ADE_train_00000663.jpg", "width": 768, "id": 662, "height": 512}, {"file_name": "ADE_train_00000664.jpg", "width": 768, "id": 663, "height": 512}, {"file_name": "ADE_train_00000665.jpg", "width": 525, "id": 664, "height": 512}, {"file_name": "ADE_train_00000666.jpg", "width": 640, "id": 665, "height": 424}, {"file_name": "ADE_train_00000667.jpg", "width": 768, "id": 666, "height": 512}, {"file_name": "ADE_train_00000668.jpg", "width": 650, "id": 667, "height": 512}, {"file_name": "ADE_train_00000669.jpg", "width": 683, "id": 668, "height": 512}, {"file_name": "ADE_train_00000670.jpg", "width": 450, "id": 669, "height": 301}, {"file_name": "ADE_train_00000671.jpg", "width": 504, "id": 670, "height": 360}, {"file_name": "ADE_train_00000672.jpg", "width": 768, "id": 671, "height": 512}, {"file_name": "ADE_train_00000673.jpg", "width": 765, "id": 672, "height": 512}, {"file_name": "ADE_train_00000674.jpg", "width": 779, "id": 673, "height": 512}, {"file_name": "ADE_train_00000675.jpg", "width": 720, "id": 674, "height": 480}, {"file_name": "ADE_train_00000676.jpg", "width": 768, "id": 675, "height": 512}, {"file_name": "ADE_train_00000677.jpg", "width": 768, "id": 676, "height": 512}, {"file_name": "ADE_train_00000678.jpg", "width": 768, "id": 677, "height": 512}, {"file_name": "ADE_train_00000679.jpg", "width": 768, "id": 678, "height": 512}, {"file_name": "ADE_train_00000680.jpg", "width": 771, "id": 679, "height": 512}, {"file_name": "ADE_train_00000681.jpg", "width": 773, "id": 680, "height": 512}, {"file_name": "ADE_train_00000682.jpg", "width": 768, "id": 681, "height": 512}, {"file_name": "ADE_train_00000683.jpg", "width": 796, "id": 682, "height": 512}, {"file_name": "ADE_train_00000684.jpg", "width": 765, "id": 683, "height": 512}, {"file_name": "ADE_train_00000685.jpg", "width": 769, "id": 684, "height": 512}, {"file_name": "ADE_train_00000686.jpg", "width": 683, "id": 685, "height": 512}, {"file_name": "ADE_train_00000687.jpg", "width": 550, "id": 686, "height": 512}, {"file_name": "ADE_train_00000688.jpg", "width": 745, "id": 687, "height": 512}, {"file_name": "ADE_train_00000689.jpg", "width": 768, "id": 688, "height": 512}, {"file_name": "ADE_train_00000690.jpg", "width": 788, "id": 689, "height": 512}, {"file_name": "ADE_train_00000691.jpg", "width": 768, "id": 690, "height": 512}, {"file_name": "ADE_train_00000692.jpg", "width": 768, "id": 691, "height": 512}, {"file_name": "ADE_train_00000693.jpg", "width": 754, "id": 692, "height": 512}, {"file_name": "ADE_train_00000694.jpg", "width": 683, "id": 693, "height": 512}, {"file_name": "ADE_train_00000695.jpg", "width": 768, "id": 694, "height": 512}, {"file_name": "ADE_train_00000696.jpg", "width": 683, "id": 695, "height": 512}, {"file_name": "ADE_train_00000697.jpg", "width": 733, "id": 696, "height": 512}, {"file_name": "ADE_train_00000698.jpg", "width": 768, "id": 697, "height": 512}, {"file_name": "ADE_train_00000699.jpg", "width": 694, "id": 698, "height": 512}, {"file_name": "ADE_train_00000700.jpg", "width": 636, "id": 699, "height": 512}, {"file_name": "ADE_train_00000701.jpg", "width": 771, "id": 700, "height": 512}, {"file_name": "ADE_train_00000702.jpg", "width": 768, "id": 701, "height": 512}, {"file_name": "ADE_train_00000703.jpg", "width": 764, "id": 702, "height": 512}, {"file_name": "ADE_train_00000704.jpg", "width": 772, "id": 703, "height": 512}, {"file_name": "ADE_train_00000705.jpg", "width": 787, "id": 704, "height": 512}, {"file_name": "ADE_train_00000706.jpg", "width": 682, "id": 705, "height": 512}, {"file_name": "ADE_train_00000707.jpg", "width": 768, "id": 706, "height": 512}, {"file_name": "ADE_train_00000708.jpg", "width": 768, "id": 707, "height": 512}, {"file_name": "ADE_train_00000709.jpg", "width": 768, "id": 708, "height": 512}, {"file_name": "ADE_train_00000710.jpg", "width": 767, "id": 709, "height": 512}, {"file_name": "ADE_train_00000711.jpg", "width": 750, "id": 710, "height": 512}, {"file_name": "ADE_train_00000712.jpg", "width": 768, "id": 711, "height": 512}, {"file_name": "ADE_train_00000713.jpg", "width": 797, "id": 712, "height": 512}, {"file_name": "ADE_train_00000714.jpg", "width": 768, "id": 713, "height": 512}, {"file_name": "ADE_train_00000715.jpg", "width": 771, "id": 714, "height": 512}, {"file_name": "ADE_train_00000716.jpg", "width": 720, "id": 715, "height": 480}, {"file_name": "ADE_train_00000717.jpg", "width": 764, "id": 716, "height": 512}, {"file_name": "ADE_train_00000718.jpg", "width": 768, "id": 717, "height": 512}, {"file_name": "ADE_train_00000719.jpg", "width": 768, "id": 718, "height": 512}, {"file_name": "ADE_train_00000720.jpg", "width": 764, "id": 719, "height": 512}, {"file_name": "ADE_train_00000721.jpg", "width": 768, "id": 720, "height": 512}, {"file_name": "ADE_train_00000722.jpg", "width": 770, "id": 721, "height": 512}, {"file_name": "ADE_train_00000723.jpg", "width": 771, "id": 722, "height": 512}, {"file_name": "ADE_train_00000724.jpg", "width": 683, "id": 723, "height": 512}, {"file_name": "ADE_train_00000725.jpg", "width": 722, "id": 724, "height": 512}, {"file_name": "ADE_train_00000726.jpg", "width": 768, "id": 725, "height": 512}, {"file_name": "ADE_train_00000727.jpg", "width": 768, "id": 726, "height": 512}, {"file_name": "ADE_train_00000728.jpg", "width": 761, "id": 727, "height": 512}, {"file_name": "ADE_train_00000729.jpg", "width": 700, "id": 728, "height": 466}, {"file_name": "ADE_train_00000730.jpg", "width": 770, "id": 729, "height": 512}, {"file_name": "ADE_train_00000731.jpg", "width": 768, "id": 730, "height": 512}, {"file_name": "ADE_train_00000732.jpg", "width": 720, "id": 731, "height": 480}, {"file_name": "ADE_train_00000733.jpg", "width": 690, "id": 732, "height": 512}, {"file_name": "ADE_train_00000734.jpg", "width": 720, "id": 733, "height": 480}, {"file_name": "ADE_train_00000735.jpg", "width": 768, "id": 734, "height": 512}, {"file_name": "ADE_train_00000736.jpg", "width": 785, "id": 735, "height": 512}, {"file_name": "ADE_train_00000737.jpg", "width": 768, "id": 736, "height": 512}, {"file_name": "ADE_train_00000738.jpg", "width": 700, "id": 737, "height": 472}, {"file_name": "ADE_train_00000739.jpg", "width": 632, "id": 738, "height": 421}, {"file_name": "ADE_train_00000740.jpg", "width": 720, "id": 739, "height": 480}, {"file_name": "ADE_train_00000741.jpg", "width": 756, "id": 740, "height": 512}, {"file_name": "ADE_train_00000742.jpg", "width": 500, "id": 741, "height": 333}, {"file_name": "ADE_train_00000743.jpg", "width": 717, "id": 742, "height": 512}, {"file_name": "ADE_train_00000744.jpg", "width": 684, "id": 743, "height": 512}, {"file_name": "ADE_train_00000745.jpg", "width": 600, "id": 744, "height": 400}, {"file_name": "ADE_train_00000746.jpg", "width": 752, "id": 745, "height": 512}, {"file_name": "ADE_train_00000747.jpg", "width": 683, "id": 746, "height": 512}, {"file_name": "ADE_train_00000748.jpg", "width": 768, "id": 747, "height": 512}, {"file_name": "ADE_train_00000749.jpg", "width": 770, "id": 748, "height": 512}, {"file_name": "ADE_train_00000750.jpg", "width": 758, "id": 749, "height": 512}, {"file_name": "ADE_train_00000751.jpg", "width": 768, "id": 750, "height": 512}, {"file_name": "ADE_train_00000752.jpg", "width": 768, "id": 751, "height": 512}, {"file_name": "ADE_train_00000753.jpg", "width": 768, "id": 752, "height": 512}, {"file_name": "ADE_train_00000754.jpg", "width": 768, "id": 753, "height": 512}, {"file_name": "ADE_train_00000755.jpg", "width": 768, "id": 754, "height": 512}, {"file_name": "ADE_train_00000756.jpg", "width": 768, "id": 755, "height": 512}, {"file_name": "ADE_train_00000757.jpg", "width": 720, "id": 756, "height": 480}, {"file_name": "ADE_train_00000758.jpg", "width": 768, "id": 757, "height": 512}, {"file_name": "ADE_train_00000759.jpg", "width": 768, "id": 758, "height": 512}, {"file_name": "ADE_train_00000760.jpg", "width": 765, "id": 759, "height": 512}, {"file_name": "ADE_train_00000761.jpg", "width": 768, "id": 760, "height": 512}, {"file_name": "ADE_train_00000762.jpg", "width": 768, "id": 761, "height": 512}, {"file_name": "ADE_train_00000763.jpg", "width": 765, "id": 762, "height": 512}, {"file_name": "ADE_train_00000764.jpg", "width": 763, "id": 763, "height": 512}, {"file_name": "ADE_train_00000765.jpg", "width": 771, "id": 764, "height": 512}, {"file_name": "ADE_train_00000766.jpg", "width": 768, "id": 765, "height": 512}, {"file_name": "ADE_train_00000767.jpg", "width": 770, "id": 766, "height": 512}, {"file_name": "ADE_train_00000768.jpg", "width": 790, "id": 767, "height": 512}, {"file_name": "ADE_train_00000769.jpg", "width": 720, "id": 768, "height": 480}, {"file_name": "ADE_train_00000770.jpg", "width": 720, "id": 769, "height": 480}, {"file_name": "ADE_train_00000771.jpg", "width": 768, "id": 770, "height": 512}, {"file_name": "ADE_train_00000772.jpg", "width": 790, "id": 771, "height": 512}, {"file_name": "ADE_train_00000773.jpg", "width": 768, "id": 772, "height": 512}, {"file_name": "ADE_train_00000774.jpg", "width": 640, "id": 773, "height": 426}, {"file_name": "ADE_train_00000775.jpg", "width": 683, "id": 774, "height": 512}, {"file_name": "ADE_train_00000776.jpg", "width": 768, "id": 775, "height": 512}, {"file_name": "ADE_train_00000777.jpg", "width": 768, "id": 776, "height": 512}, {"file_name": "ADE_train_00000778.jpg", "width": 699, "id": 777, "height": 512}, {"file_name": "ADE_train_00000779.jpg", "width": 640, "id": 778, "height": 512}, {"file_name": "ADE_train_00000780.jpg", "width": 768, "id": 779, "height": 512}, {"file_name": "ADE_train_00000781.jpg", "width": 765, "id": 780, "height": 512}, {"file_name": "ADE_train_00000782.jpg", "width": 769, "id": 781, "height": 512}, {"file_name": "ADE_train_00000783.jpg", "width": 552, "id": 782, "height": 415}, {"file_name": "ADE_train_00000784.jpg", "width": 768, "id": 783, "height": 512}, {"file_name": "ADE_train_00000785.jpg", "width": 768, "id": 784, "height": 512}, {"file_name": "ADE_train_00000786.jpg", "width": 768, "id": 785, "height": 512}, {"file_name": "ADE_train_00000787.jpg", "width": 769, "id": 786, "height": 512}, {"file_name": "ADE_train_00000788.jpg", "width": 750, "id": 787, "height": 506}, {"file_name": "ADE_train_00000789.jpg", "width": 771, "id": 788, "height": 512}, {"file_name": "ADE_train_00000790.jpg", "width": 768, "id": 789, "height": 512}, {"file_name": "ADE_train_00000791.jpg", "width": 768, "id": 790, "height": 512}, {"file_name": "ADE_train_00000792.jpg", "width": 720, "id": 791, "height": 480}, {"file_name": "ADE_train_00000793.jpg", "width": 768, "id": 792, "height": 512}, {"file_name": "ADE_train_00000794.jpg", "width": 683, "id": 793, "height": 512}, {"file_name": "ADE_train_00000795.jpg", "width": 1024, "id": 794, "height": 1024}, {"file_name": "ADE_train_00000796.jpg", "width": 683, "id": 795, "height": 512}, {"file_name": "ADE_train_00000797.jpg", "width": 737, "id": 796, "height": 512}, {"file_name": "ADE_train_00000798.jpg", "width": 768, "id": 797, "height": 512}, {"file_name": "ADE_train_00000799.jpg", "width": 798, "id": 798, "height": 512}, {"file_name": "ADE_train_00000800.jpg", "width": 600, "id": 799, "height": 398}, {"file_name": "ADE_train_00000801.jpg", "width": 768, "id": 800, "height": 512}, {"file_name": "ADE_train_00000802.jpg", "width": 768, "id": 801, "height": 512}, {"file_name": "ADE_train_00000803.jpg", "width": 720, "id": 802, "height": 480}, {"file_name": "ADE_train_00000804.jpg", "width": 768, "id": 803, "height": 512}, {"file_name": "ADE_train_00000805.jpg", "width": 768, "id": 804, "height": 512}, {"file_name": "ADE_train_00000806.jpg", "width": 700, "id": 805, "height": 462}, {"file_name": "ADE_train_00000807.jpg", "width": 765, "id": 806, "height": 512}, {"file_name": "ADE_train_00000808.jpg", "width": 768, "id": 807, "height": 512}, {"file_name": "ADE_train_00000809.jpg", "width": 790, "id": 808, "height": 512}, {"file_name": "ADE_train_00000810.jpg", "width": 663, "id": 809, "height": 512}, {"file_name": "ADE_train_00000811.jpg", "width": 640, "id": 810, "height": 512}, {"file_name": "ADE_train_00000812.jpg", "width": 768, "id": 811, "height": 512}, {"file_name": "ADE_train_00000813.jpg", "width": 768, "id": 812, "height": 512}, {"file_name": "ADE_train_00000814.jpg", "width": 686, "id": 813, "height": 476}, {"file_name": "ADE_train_00000815.jpg", "width": 768, "id": 814, "height": 512}, {"file_name": "ADE_train_00000816.jpg", "width": 778, "id": 815, "height": 512}, {"file_name": "ADE_train_00000817.jpg", "width": 844, "id": 816, "height": 512}, {"file_name": "ADE_train_00000818.jpg", "width": 768, "id": 817, "height": 512}, {"file_name": "ADE_train_00000819.jpg", "width": 682, "id": 818, "height": 512}, {"file_name": "ADE_train_00000820.jpg", "width": 777, "id": 819, "height": 512}, {"file_name": "ADE_train_00000821.jpg", "width": 786, "id": 820, "height": 512}, {"file_name": "ADE_train_00000822.jpg", "width": 768, "id": 821, "height": 512}, {"file_name": "ADE_train_00000823.jpg", "width": 770, "id": 822, "height": 512}, {"file_name": "ADE_train_00000824.jpg", "width": 1255, "id": 823, "height": 512}, {"file_name": "ADE_train_00000825.jpg", "width": 773, "id": 824, "height": 512}, {"file_name": "ADE_train_00000826.jpg", "width": 675, "id": 825, "height": 450}, {"file_name": "ADE_train_00000827.jpg", "width": 770, "id": 826, "height": 512}, {"file_name": "ADE_train_00000828.jpg", "width": 768, "id": 827, "height": 512}, {"file_name": "ADE_train_00000829.jpg", "width": 768, "id": 828, "height": 512}, {"file_name": "ADE_train_00000830.jpg", "width": 765, "id": 829, "height": 512}, {"file_name": "ADE_train_00000831.jpg", "width": 768, "id": 830, "height": 512}, {"file_name": "ADE_train_00000832.jpg", "width": 769, "id": 831, "height": 512}, {"file_name": "ADE_train_00000833.jpg", "width": 770, "id": 832, "height": 512}, {"file_name": "ADE_train_00000834.jpg", "width": 765, "id": 833, "height": 512}, {"file_name": "ADE_train_00000835.jpg", "width": 759, "id": 834, "height": 512}, {"file_name": "ADE_train_00000836.jpg", "width": 822, "id": 835, "height": 512}, {"file_name": "ADE_train_00000837.jpg", "width": 768, "id": 836, "height": 512}, {"file_name": "ADE_train_00000838.jpg", "width": 768, "id": 837, "height": 512}, {"file_name": "ADE_train_00000839.jpg", "width": 746, "id": 838, "height": 512}, {"file_name": "ADE_train_00000840.jpg", "width": 846, "id": 839, "height": 512}, {"file_name": "ADE_train_00000841.jpg", "width": 765, "id": 840, "height": 512}, {"file_name": "ADE_train_00000842.jpg", "width": 750, "id": 841, "height": 500}, {"file_name": "ADE_train_00000843.jpg", "width": 700, "id": 842, "height": 512}, {"file_name": "ADE_train_00000844.jpg", "width": 823, "id": 843, "height": 512}, {"file_name": "ADE_train_00000845.jpg", "width": 500, "id": 844, "height": 333}, {"file_name": "ADE_train_00000846.jpg", "width": 668, "id": 845, "height": 512}, {"file_name": "ADE_train_00000847.jpg", "width": 750, "id": 846, "height": 500}, {"file_name": "ADE_train_00000848.jpg", "width": 752, "id": 847, "height": 512}, {"file_name": "ADE_train_00000849.jpg", "width": 720, "id": 848, "height": 480}, {"file_name": "ADE_train_00000850.jpg", "width": 706, "id": 849, "height": 512}, {"file_name": "ADE_train_00000851.jpg", "width": 765, "id": 850, "height": 512}, {"file_name": "ADE_train_00000852.jpg", "width": 707, "id": 851, "height": 512}, {"file_name": "ADE_train_00000853.jpg", "width": 768, "id": 852, "height": 512}, {"file_name": "ADE_train_00000854.jpg", "width": 768, "id": 853, "height": 512}, {"file_name": "ADE_train_00000855.jpg", "width": 768, "id": 854, "height": 512}, {"file_name": "ADE_train_00000856.jpg", "width": 768, "id": 855, "height": 512}, {"file_name": "ADE_train_00000857.jpg", "width": 772, "id": 856, "height": 512}, {"file_name": "ADE_train_00000858.jpg", "width": 768, "id": 857, "height": 512}, {"file_name": "ADE_train_00000859.jpg", "width": 651, "id": 858, "height": 512}, {"file_name": "ADE_train_00000860.jpg", "width": 1024, "id": 859, "height": 1024}, {"file_name": "ADE_train_00000861.jpg", "width": 720, "id": 860, "height": 480}, {"file_name": "ADE_train_00000862.jpg", "width": 770, "id": 861, "height": 512}, {"file_name": "ADE_train_00000863.jpg", "width": 768, "id": 862, "height": 512}, {"file_name": "ADE_train_00000864.jpg", "width": 750, "id": 863, "height": 487}, {"file_name": "ADE_train_00000865.jpg", "width": 764, "id": 864, "height": 512}, {"file_name": "ADE_train_00000866.jpg", "width": 768, "id": 865, "height": 512}, {"file_name": "ADE_train_00000867.jpg", "width": 768, "id": 866, "height": 512}, {"file_name": "ADE_train_00000868.jpg", "width": 770, "id": 867, "height": 512}, {"file_name": "ADE_train_00000869.jpg", "width": 768, "id": 868, "height": 512}, {"file_name": "ADE_train_00000870.jpg", "width": 700, "id": 869, "height": 461}, {"file_name": "ADE_train_00000871.jpg", "width": 768, "id": 870, "height": 512}, {"file_name": "ADE_train_00000872.jpg", "width": 768, "id": 871, "height": 512}, {"file_name": "ADE_train_00000873.jpg", "width": 683, "id": 872, "height": 512}, {"file_name": "ADE_train_00000874.jpg", "width": 768, "id": 873, "height": 512}, {"file_name": "ADE_train_00000875.jpg", "width": 768, "id": 874, "height": 512}, {"file_name": "ADE_train_00000876.jpg", "width": 706, "id": 875, "height": 512}, {"file_name": "ADE_train_00000877.jpg", "width": 616, "id": 876, "height": 462}, {"file_name": "ADE_train_00000878.jpg", "width": 770, "id": 877, "height": 512}, {"file_name": "ADE_train_00000879.jpg", "width": 768, "id": 878, "height": 512}, {"file_name": "ADE_train_00000880.jpg", "width": 768, "id": 879, "height": 512}, {"file_name": "ADE_train_00000881.jpg", "width": 619, "id": 880, "height": 512}, {"file_name": "ADE_train_00000882.jpg", "width": 738, "id": 881, "height": 512}, {"file_name": "ADE_train_00000883.jpg", "width": 743, "id": 882, "height": 512}, {"file_name": "ADE_train_00000884.jpg", "width": 768, "id": 883, "height": 512}, {"file_name": "ADE_train_00000885.jpg", "width": 768, "id": 884, "height": 512}, {"file_name": "ADE_train_00000886.jpg", "width": 763, "id": 885, "height": 512}, {"file_name": "ADE_train_00000887.jpg", "width": 512, "id": 886, "height": 766}, {"file_name": "ADE_train_00000888.jpg", "width": 759, "id": 887, "height": 512}, {"file_name": "ADE_train_00000889.jpg", "width": 768, "id": 888, "height": 512}, {"file_name": "ADE_train_00000890.jpg", "width": 768, "id": 889, "height": 512}, {"file_name": "ADE_train_00000891.jpg", "width": 600, "id": 890, "height": 510}, {"file_name": "ADE_train_00000892.jpg", "width": 768, "id": 891, "height": 512}, {"file_name": "ADE_train_00000893.jpg", "width": 765, "id": 892, "height": 512}, {"file_name": "ADE_train_00000894.jpg", "width": 746, "id": 893, "height": 512}, {"file_name": "ADE_train_00000895.jpg", "width": 768, "id": 894, "height": 512}, {"file_name": "ADE_train_00000896.jpg", "width": 625, "id": 895, "height": 435}, {"file_name": "ADE_train_00000897.jpg", "width": 764, "id": 896, "height": 512}, {"file_name": "ADE_train_00000898.jpg", "width": 734, "id": 897, "height": 512}, {"file_name": "ADE_train_00000899.jpg", "width": 568, "id": 898, "height": 512}, {"file_name": "ADE_train_00000900.jpg", "width": 765, "id": 899, "height": 512}, {"file_name": "ADE_train_00000901.jpg", "width": 768, "id": 900, "height": 512}, {"file_name": "ADE_train_00000902.jpg", "width": 771, "id": 901, "height": 512}, {"file_name": "ADE_train_00000903.jpg", "width": 700, "id": 902, "height": 468}, {"file_name": "ADE_train_00000904.jpg", "width": 700, "id": 903, "height": 461}, {"file_name": "ADE_train_00000905.jpg", "width": 765, "id": 904, "height": 512}, {"file_name": "ADE_train_00000906.jpg", "width": 803, "id": 905, "height": 512}, {"file_name": "ADE_train_00000907.jpg", "width": 783, "id": 906, "height": 512}, {"file_name": "ADE_train_00000908.jpg", "width": 774, "id": 907, "height": 512}, {"file_name": "ADE_train_00000909.jpg", "width": 768, "id": 908, "height": 512}, {"file_name": "ADE_train_00000910.jpg", "width": 769, "id": 909, "height": 512}, {"file_name": "ADE_train_00000911.jpg", "width": 764, "id": 910, "height": 512}, {"file_name": "ADE_train_00000912.jpg", "width": 768, "id": 911, "height": 512}, {"file_name": "ADE_train_00000913.jpg", "width": 795, "id": 912, "height": 512}, {"file_name": "ADE_train_00000914.jpg", "width": 785, "id": 913, "height": 512}, {"file_name": "ADE_train_00000915.jpg", "width": 725, "id": 914, "height": 512}, {"file_name": "ADE_train_00000916.jpg", "width": 768, "id": 915, "height": 512}, {"file_name": "ADE_train_00000917.jpg", "width": 768, "id": 916, "height": 512}, {"file_name": "ADE_train_00000918.jpg", "width": 720, "id": 917, "height": 482}, {"file_name": "ADE_train_00000919.jpg", "width": 767, "id": 918, "height": 512}, {"file_name": "ADE_train_00000920.jpg", "width": 768, "id": 919, "height": 512}, {"file_name": "ADE_train_00000921.jpg", "width": 768, "id": 920, "height": 512}, {"file_name": "ADE_train_00000922.jpg", "width": 770, "id": 921, "height": 512}, {"file_name": "ADE_train_00000923.jpg", "width": 694, "id": 922, "height": 512}, {"file_name": "ADE_train_00000924.jpg", "width": 768, "id": 923, "height": 512}, {"file_name": "ADE_train_00000925.jpg", "width": 768, "id": 924, "height": 512}, {"file_name": "ADE_train_00000926.jpg", "width": 683, "id": 925, "height": 512}, {"file_name": "ADE_train_00000927.jpg", "width": 765, "id": 926, "height": 512}, {"file_name": "ADE_train_00000928.jpg", "width": 768, "id": 927, "height": 512}, {"file_name": "ADE_train_00000929.jpg", "width": 825, "id": 928, "height": 512}, {"file_name": "ADE_train_00000930.jpg", "width": 438, "id": 929, "height": 271}, {"file_name": "ADE_train_00000931.jpg", "width": 683, "id": 930, "height": 512}, {"file_name": "ADE_train_00000932.jpg", "width": 683, "id": 931, "height": 512}, {"file_name": "ADE_train_00000933.jpg", "width": 683, "id": 932, "height": 512}, {"file_name": "ADE_train_00000934.jpg", "width": 500, "id": 933, "height": 375}, {"file_name": "ADE_train_00000935.jpg", "width": 230, "id": 934, "height": 253}, {"file_name": "ADE_train_00000936.jpg", "width": 356, "id": 935, "height": 476}, {"file_name": "ADE_train_00000937.jpg", "width": 290, "id": 936, "height": 290}, {"file_name": "ADE_train_00000938.jpg", "width": 250, "id": 937, "height": 205}, {"file_name": "ADE_train_00000939.jpg", "width": 682, "id": 938, "height": 512}, {"file_name": "ADE_train_00000940.jpg", "width": 683, "id": 939, "height": 512}, {"file_name": "ADE_train_00000941.jpg", "width": 472, "id": 940, "height": 313}, {"file_name": "ADE_train_00000942.jpg", "width": 683, "id": 941, "height": 512}, {"file_name": "ADE_train_00000943.jpg", "width": 600, "id": 942, "height": 439}, {"file_name": "ADE_train_00000944.jpg", "width": 375, "id": 943, "height": 500}, {"file_name": "ADE_train_00000945.jpg", "width": 512, "id": 944, "height": 683}, {"file_name": "ADE_train_00000946.jpg", "width": 512, "id": 945, "height": 660}, {"file_name": "ADE_train_00000947.jpg", "width": 910, "id": 946, "height": 512}, {"file_name": "ADE_train_00000948.jpg", "width": 326, "id": 947, "height": 219}, {"file_name": "ADE_train_00000949.jpg", "width": 300, "id": 948, "height": 225}, {"file_name": "ADE_train_00000950.jpg", "width": 226, "id": 949, "height": 350}, {"file_name": "ADE_train_00000951.jpg", "width": 512, "id": 950, "height": 683}, {"file_name": "ADE_train_00000952.jpg", "width": 256, "id": 951, "height": 256}, {"file_name": "ADE_train_00000953.jpg", "width": 256, "id": 952, "height": 256}, {"file_name": "ADE_train_00000954.jpg", "width": 512, "id": 953, "height": 768}, {"file_name": "ADE_train_00000955.jpg", "width": 320, "id": 954, "height": 240}, {"file_name": "ADE_train_00000956.jpg", "width": 375, "id": 955, "height": 500}, {"file_name": "ADE_train_00000957.jpg", "width": 425, "id": 956, "height": 307}, {"file_name": "ADE_train_00000958.jpg", "width": 683, "id": 957, "height": 512}, {"file_name": "ADE_train_00000959.jpg", "width": 682, "id": 958, "height": 512}, {"file_name": "ADE_train_00000960.jpg", "width": 683, "id": 959, "height": 512}, {"file_name": "ADE_train_00000961.jpg", "width": 400, "id": 960, "height": 265}, {"file_name": "ADE_train_00000962.jpg", "width": 683, "id": 961, "height": 512}, {"file_name": "ADE_train_00000963.jpg", "width": 683, "id": 962, "height": 512}, {"file_name": "ADE_train_00000964.jpg", "width": 651, "id": 963, "height": 512}, {"file_name": "ADE_train_00000965.jpg", "width": 217, "id": 964, "height": 285}, {"file_name": "ADE_train_00000966.jpg", "width": 667, "id": 965, "height": 512}, {"file_name": "ADE_train_00000967.jpg", "width": 256, "id": 966, "height": 256}, {"file_name": "ADE_train_00000968.jpg", "width": 262, "id": 967, "height": 262}, {"file_name": "ADE_train_00000969.jpg", "width": 436, "id": 968, "height": 294}, {"file_name": "ADE_train_00000970.jpg", "width": 683, "id": 969, "height": 512}, {"file_name": "ADE_train_00000971.jpg", "width": 258, "id": 970, "height": 300}, {"file_name": "ADE_train_00000972.jpg", "width": 260, "id": 971, "height": 294}, {"file_name": "ADE_train_00000973.jpg", "width": 242, "id": 972, "height": 300}, {"file_name": "ADE_train_00000974.jpg", "width": 683, "id": 973, "height": 512}, {"file_name": "ADE_train_00000975.jpg", "width": 683, "id": 974, "height": 512}, {"file_name": "ADE_train_00000976.jpg", "width": 320, "id": 975, "height": 240}, {"file_name": "ADE_train_00000977.jpg", "width": 625, "id": 976, "height": 300}, {"file_name": "ADE_train_00000978.jpg", "width": 250, "id": 977, "height": 275}, {"file_name": "ADE_train_00000979.jpg", "width": 683, "id": 978, "height": 512}, {"file_name": "ADE_train_00000980.jpg", "width": 500, "id": 979, "height": 372}, {"file_name": "ADE_train_00000981.jpg", "width": 250, "id": 980, "height": 243}, {"file_name": "ADE_train_00000982.jpg", "width": 512, "id": 981, "height": 804}, {"file_name": "ADE_train_00000983.jpg", "width": 450, "id": 982, "height": 338}, {"file_name": "ADE_train_00000984.jpg", "width": 379, "id": 983, "height": 206}, {"file_name": "ADE_train_00000985.jpg", "width": 374, "id": 984, "height": 278}, {"file_name": "ADE_train_00000986.jpg", "width": 683, "id": 985, "height": 512}, {"file_name": "ADE_train_00000987.jpg", "width": 683, "id": 986, "height": 512}, {"file_name": "ADE_train_00000988.jpg", "width": 337, "id": 987, "height": 208}, {"file_name": "ADE_train_00000989.jpg", "width": 348, "id": 988, "height": 263}, {"file_name": "ADE_train_00000990.jpg", "width": 286, "id": 989, "height": 350}, {"file_name": "ADE_train_00000991.jpg", "width": 350, "id": 990, "height": 230}, {"file_name": "ADE_train_00000992.jpg", "width": 470, "id": 991, "height": 352}, {"file_name": "ADE_train_00000993.jpg", "width": 562, "id": 992, "height": 400}, {"file_name": "ADE_train_00000994.jpg", "width": 412, "id": 993, "height": 361}, {"file_name": "ADE_train_00000995.jpg", "width": 683, "id": 994, "height": 512}, {"file_name": "ADE_train_00000996.jpg", "width": 314, "id": 995, "height": 203}, {"file_name": "ADE_train_00000997.jpg", "width": 300, "id": 996, "height": 225}, {"file_name": "ADE_train_00000998.jpg", "width": 683, "id": 997, "height": 512}, {"file_name": "ADE_train_00000999.jpg", "width": 683, "id": 998, "height": 512}, {"file_name": "ADE_train_00001000.jpg", "width": 502, "id": 999, "height": 335}, {"file_name": "ADE_train_00001001.jpg", "width": 640, "id": 1000, "height": 411}, {"file_name": "ADE_train_00001002.jpg", "width": 510, "id": 1001, "height": 383}, {"file_name": "ADE_train_00001003.jpg", "width": 400, "id": 1002, "height": 266}, {"file_name": "ADE_train_00001004.jpg", "width": 682, "id": 1003, "height": 512}, {"file_name": "ADE_train_00001005.jpg", "width": 640, "id": 1004, "height": 480}, {"file_name": "ADE_train_00001006.jpg", "width": 450, "id": 1005, "height": 287}, {"file_name": "ADE_train_00001007.jpg", "width": 683, "id": 1006, "height": 512}, {"file_name": "ADE_train_00001008.jpg", "width": 682, "id": 1007, "height": 512}, {"file_name": "ADE_train_00001009.jpg", "width": 500, "id": 1008, "height": 375}, {"file_name": "ADE_train_00001010.jpg", "width": 666, "id": 1009, "height": 499}, {"file_name": "ADE_train_00001011.jpg", "width": 550, "id": 1010, "height": 314}, {"file_name": "ADE_train_00001012.jpg", "width": 640, "id": 1011, "height": 427}, {"file_name": "ADE_train_00001013.jpg", "width": 577, "id": 1012, "height": 356}, {"file_name": "ADE_train_00001014.jpg", "width": 624, "id": 1013, "height": 414}, {"file_name": "ADE_train_00001015.jpg", "width": 739, "id": 1014, "height": 512}, {"file_name": "ADE_train_00001016.jpg", "width": 595, "id": 1015, "height": 407}, {"file_name": "ADE_train_00001017.jpg", "width": 283, "id": 1016, "height": 213}, {"file_name": "ADE_train_00001018.jpg", "width": 300, "id": 1017, "height": 396}, {"file_name": "ADE_train_00001019.jpg", "width": 683, "id": 1018, "height": 512}, {"file_name": "ADE_train_00001020.jpg", "width": 412, "id": 1019, "height": 248}, {"file_name": "ADE_train_00001021.jpg", "width": 683, "id": 1020, "height": 512}, {"file_name": "ADE_train_00001022.jpg", "width": 480, "id": 1021, "height": 320}, {"file_name": "ADE_train_00001023.jpg", "width": 683, "id": 1022, "height": 512}, {"file_name": "ADE_train_00001024.jpg", "width": 683, "id": 1023, "height": 512}, {"file_name": "ADE_train_00001025.jpg", "width": 946, "id": 1024, "height": 512}, {"file_name": "ADE_train_00001026.jpg", "width": 765, "id": 1025, "height": 512}, {"file_name": "ADE_train_00001027.jpg", "width": 783, "id": 1026, "height": 512}, {"file_name": "ADE_train_00001028.jpg", "width": 1024, "id": 1027, "height": 512}, {"file_name": "ADE_train_00001029.jpg", "width": 640, "id": 1028, "height": 409}, {"file_name": "ADE_train_00001030.jpg", "width": 300, "id": 1029, "height": 300}, {"file_name": "ADE_train_00001031.jpg", "width": 683, "id": 1030, "height": 512}, {"file_name": "ADE_train_00001032.jpg", "width": 634, "id": 1031, "height": 392}, {"file_name": "ADE_train_00001033.jpg", "width": 760, "id": 1032, "height": 507}, {"file_name": "ADE_train_00001034.jpg", "width": 760, "id": 1033, "height": 507}, {"file_name": "ADE_train_00001035.jpg", "width": 765, "id": 1034, "height": 512}, {"file_name": "ADE_train_00001036.jpg", "width": 400, "id": 1035, "height": 228}, {"file_name": "ADE_train_00001037.jpg", "width": 683, "id": 1036, "height": 512}, {"file_name": "ADE_train_00001038.jpg", "width": 678, "id": 1037, "height": 512}, {"file_name": "ADE_train_00001039.jpg", "width": 300, "id": 1038, "height": 225}, {"file_name": "ADE_train_00001040.jpg", "width": 726, "id": 1039, "height": 512}, {"file_name": "ADE_train_00001041.jpg", "width": 330, "id": 1040, "height": 247}, {"file_name": "ADE_train_00001042.jpg", "width": 469, "id": 1041, "height": 313}, {"file_name": "ADE_train_00001043.jpg", "width": 512, "id": 1042, "height": 683}, {"file_name": "ADE_train_00001044.jpg", "width": 512, "id": 1043, "height": 772}, {"file_name": "ADE_train_00001045.jpg", "width": 683, "id": 1044, "height": 512}, {"file_name": "ADE_train_00001046.jpg", "width": 640, "id": 1045, "height": 430}, {"file_name": "ADE_train_00001047.jpg", "width": 512, "id": 1046, "height": 800}, {"file_name": "ADE_train_00001048.jpg", "width": 512, "id": 1047, "height": 767}, {"file_name": "ADE_train_00001049.jpg", "width": 500, "id": 1048, "height": 375}, {"file_name": "ADE_train_00001050.jpg", "width": 400, "id": 1049, "height": 266}, {"file_name": "ADE_train_00001051.jpg", "width": 216, "id": 1050, "height": 216}, {"file_name": "ADE_train_00001052.jpg", "width": 600, "id": 1051, "height": 399}, {"file_name": "ADE_train_00001053.jpg", "width": 715, "id": 1052, "height": 512}, {"file_name": "ADE_train_00001054.jpg", "width": 494, "id": 1053, "height": 370}, {"file_name": "ADE_train_00001055.jpg", "width": 600, "id": 1054, "height": 400}, {"file_name": "ADE_train_00001056.jpg", "width": 425, "id": 1055, "height": 340}, {"file_name": "ADE_train_00001057.jpg", "width": 250, "id": 1056, "height": 383}, {"file_name": "ADE_train_00001058.jpg", "width": 757, "id": 1057, "height": 512}, {"file_name": "ADE_train_00001059.jpg", "width": 512, "id": 1058, "height": 331}, {"file_name": "ADE_train_00001060.jpg", "width": 608, "id": 1059, "height": 380}, {"file_name": "ADE_train_00001061.jpg", "width": 500, "id": 1060, "height": 400}, {"file_name": "ADE_train_00001062.jpg", "width": 500, "id": 1061, "height": 375}, {"file_name": "ADE_train_00001063.jpg", "width": 253, "id": 1062, "height": 380}, {"file_name": "ADE_train_00001064.jpg", "width": 683, "id": 1063, "height": 512}, {"file_name": "ADE_train_00001065.jpg", "width": 400, "id": 1064, "height": 299}, {"file_name": "ADE_train_00001066.jpg", "width": 460, "id": 1065, "height": 332}, {"file_name": "ADE_train_00001067.jpg", "width": 768, "id": 1066, "height": 512}, {"file_name": "ADE_train_00001068.jpg", "width": 400, "id": 1067, "height": 300}, {"file_name": "ADE_train_00001069.jpg", "width": 683, "id": 1068, "height": 512}, {"file_name": "ADE_train_00001070.jpg", "width": 683, "id": 1069, "height": 512}, {"file_name": "ADE_train_00001071.jpg", "width": 683, "id": 1070, "height": 512}, {"file_name": "ADE_train_00001072.jpg", "width": 683, "id": 1071, "height": 512}, {"file_name": "ADE_train_00001073.jpg", "width": 683, "id": 1072, "height": 512}, {"file_name": "ADE_train_00001074.jpg", "width": 683, "id": 1073, "height": 512}, {"file_name": "ADE_train_00001075.jpg", "width": 683, "id": 1074, "height": 512}, {"file_name": "ADE_train_00001076.jpg", "width": 683, "id": 1075, "height": 512}, {"file_name": "ADE_train_00001077.jpg", "width": 683, "id": 1076, "height": 512}, {"file_name": "ADE_train_00001078.jpg", "width": 683, "id": 1077, "height": 512}, {"file_name": "ADE_train_00001079.jpg", "width": 683, "id": 1078, "height": 512}, {"file_name": "ADE_train_00001080.jpg", "width": 683, "id": 1079, "height": 512}, {"file_name": "ADE_train_00001081.jpg", "width": 683, "id": 1080, "height": 512}, {"file_name": "ADE_train_00001082.jpg", "width": 683, "id": 1081, "height": 512}, {"file_name": "ADE_train_00001083.jpg", "width": 640, "id": 1082, "height": 480}, {"file_name": "ADE_train_00001084.jpg", "width": 683, "id": 1083, "height": 512}, {"file_name": "ADE_train_00001085.jpg", "width": 768, "id": 1084, "height": 512}, {"file_name": "ADE_train_00001086.jpg", "width": 683, "id": 1085, "height": 512}, {"file_name": "ADE_train_00001087.jpg", "width": 765, "id": 1086, "height": 512}, {"file_name": "ADE_train_00001088.jpg", "width": 683, "id": 1087, "height": 512}, {"file_name": "ADE_train_00001089.jpg", "width": 683, "id": 1088, "height": 512}, {"file_name": "ADE_train_00001090.jpg", "width": 765, "id": 1089, "height": 512}, {"file_name": "ADE_train_00001091.jpg", "width": 774, "id": 1090, "height": 512}, {"file_name": "ADE_train_00001092.jpg", "width": 683, "id": 1091, "height": 512}, {"file_name": "ADE_train_00001093.jpg", "width": 500, "id": 1092, "height": 314}, {"file_name": "ADE_train_00001094.jpg", "width": 683, "id": 1093, "height": 512}, {"file_name": "ADE_train_00001095.jpg", "width": 657, "id": 1094, "height": 512}, {"file_name": "ADE_train_00001096.jpg", "width": 610, "id": 1095, "height": 424}, {"file_name": "ADE_train_00001097.jpg", "width": 683, "id": 1096, "height": 512}, {"file_name": "ADE_train_00001098.jpg", "width": 309, "id": 1097, "height": 500}, {"file_name": "ADE_train_00001099.jpg", "width": 500, "id": 1098, "height": 332}, {"file_name": "ADE_train_00001100.jpg", "width": 376, "id": 1099, "height": 500}, {"file_name": "ADE_train_00001101.jpg", "width": 853, "id": 1100, "height": 512}, {"file_name": "ADE_train_00001102.jpg", "width": 500, "id": 1101, "height": 332}, {"file_name": "ADE_train_00001103.jpg", "width": 500, "id": 1102, "height": 500}, {"file_name": "ADE_train_00001104.jpg", "width": 684, "id": 1103, "height": 512}, {"file_name": "ADE_train_00001105.jpg", "width": 683, "id": 1104, "height": 512}, {"file_name": "ADE_train_00001106.jpg", "width": 500, "id": 1105, "height": 375}, {"file_name": "ADE_train_00001107.jpg", "width": 333, "id": 1106, "height": 500}, {"file_name": "ADE_train_00001108.jpg", "width": 500, "id": 1107, "height": 371}, {"file_name": "ADE_train_00001109.jpg", "width": 500, "id": 1108, "height": 500}, {"file_name": "ADE_train_00001110.jpg", "width": 500, "id": 1109, "height": 375}, {"file_name": "ADE_train_00001111.jpg", "width": 381, "id": 1110, "height": 500}, {"file_name": "ADE_train_00001112.jpg", "width": 400, "id": 1111, "height": 300}, {"file_name": "ADE_train_00001113.jpg", "width": 500, "id": 1112, "height": 471}, {"file_name": "ADE_train_00001114.jpg", "width": 620, "id": 1113, "height": 413}, {"file_name": "ADE_train_00001115.jpg", "width": 683, "id": 1114, "height": 512}, {"file_name": "ADE_train_00001116.jpg", "width": 500, "id": 1115, "height": 483}, {"file_name": "ADE_train_00001117.jpg", "width": 500, "id": 1116, "height": 375}, {"file_name": "ADE_train_00001118.jpg", "width": 771, "id": 1117, "height": 512}, {"file_name": "ADE_train_00001119.jpg", "width": 678, "id": 1118, "height": 512}, {"file_name": "ADE_train_00001120.jpg", "width": 640, "id": 1119, "height": 480}, {"file_name": "ADE_train_00001121.jpg", "width": 467, "id": 1120, "height": 305}, {"file_name": "ADE_train_00001122.jpg", "width": 500, "id": 1121, "height": 333}, {"file_name": "ADE_train_00001123.jpg", "width": 500, "id": 1122, "height": 343}, {"file_name": "ADE_train_00001124.jpg", "width": 683, "id": 1123, "height": 512}, {"file_name": "ADE_train_00001125.jpg", "width": 683, "id": 1124, "height": 512}, {"file_name": "ADE_train_00001126.jpg", "width": 500, "id": 1125, "height": 334}, {"file_name": "ADE_train_00001127.jpg", "width": 300, "id": 1126, "height": 230}, {"file_name": "ADE_train_00001128.jpg", "width": 706, "id": 1127, "height": 512}, {"file_name": "ADE_train_00001129.jpg", "width": 500, "id": 1128, "height": 339}, {"file_name": "ADE_train_00001130.jpg", "width": 350, "id": 1129, "height": 233}, {"file_name": "ADE_train_00001131.jpg", "width": 350, "id": 1130, "height": 233}, {"file_name": "ADE_train_00001132.jpg", "width": 683, "id": 1131, "height": 512}, {"file_name": "ADE_train_00001133.jpg", "width": 375, "id": 1132, "height": 500}, {"file_name": "ADE_train_00001134.jpg", "width": 683, "id": 1133, "height": 512}, {"file_name": "ADE_train_00001135.jpg", "width": 683, "id": 1134, "height": 512}, {"file_name": "ADE_train_00001136.jpg", "width": 500, "id": 1135, "height": 375}, {"file_name": "ADE_train_00001137.jpg", "width": 525, "id": 1136, "height": 394}, {"file_name": "ADE_train_00001138.jpg", "width": 385, "id": 1137, "height": 250}, {"file_name": "ADE_train_00001139.jpg", "width": 1187, "id": 1138, "height": 512}, {"file_name": "ADE_train_00001140.jpg", "width": 500, "id": 1139, "height": 375}, {"file_name": "ADE_train_00001141.jpg", "width": 525, "id": 1140, "height": 512}, {"file_name": "ADE_train_00001142.jpg", "width": 683, "id": 1141, "height": 512}, {"file_name": "ADE_train_00001143.jpg", "width": 300, "id": 1142, "height": 225}, {"file_name": "ADE_train_00001144.jpg", "width": 500, "id": 1143, "height": 336}, {"file_name": "ADE_train_00001145.jpg", "width": 720, "id": 1144, "height": 512}, {"file_name": "ADE_train_00001146.jpg", "width": 500, "id": 1145, "height": 380}, {"file_name": "ADE_train_00001147.jpg", "width": 480, "id": 1146, "height": 640}, {"file_name": "ADE_train_00001148.jpg", "width": 350, "id": 1147, "height": 263}, {"file_name": "ADE_train_00001149.jpg", "width": 500, "id": 1148, "height": 388}, {"file_name": "ADE_train_00001150.jpg", "width": 500, "id": 1149, "height": 335}, {"file_name": "ADE_train_00001151.jpg", "width": 394, "id": 1150, "height": 257}, {"file_name": "ADE_train_00001152.jpg", "width": 500, "id": 1151, "height": 333}, {"file_name": "ADE_train_00001153.jpg", "width": 421, "id": 1152, "height": 423}, {"file_name": "ADE_train_00001154.jpg", "width": 683, "id": 1153, "height": 512}, {"file_name": "ADE_train_00001155.jpg", "width": 500, "id": 1154, "height": 375}, {"file_name": "ADE_train_00001156.jpg", "width": 683, "id": 1155, "height": 512}, {"file_name": "ADE_train_00001157.jpg", "width": 683, "id": 1156, "height": 512}, {"file_name": "ADE_train_00001158.jpg", "width": 683, "id": 1157, "height": 512}, {"file_name": "ADE_train_00001159.jpg", "width": 500, "id": 1158, "height": 332}, {"file_name": "ADE_train_00001160.jpg", "width": 600, "id": 1159, "height": 446}, {"file_name": "ADE_train_00001161.jpg", "width": 500, "id": 1160, "height": 333}, {"file_name": "ADE_train_00001162.jpg", "width": 683, "id": 1161, "height": 512}, {"file_name": "ADE_train_00001163.jpg", "width": 500, "id": 1162, "height": 375}, {"file_name": "ADE_train_00001164.jpg", "width": 500, "id": 1163, "height": 375}, {"file_name": "ADE_train_00001165.jpg", "width": 768, "id": 1164, "height": 512}, {"file_name": "ADE_train_00001166.jpg", "width": 500, "id": 1165, "height": 358}, {"file_name": "ADE_train_00001167.jpg", "width": 683, "id": 1166, "height": 512}, {"file_name": "ADE_train_00001168.jpg", "width": 500, "id": 1167, "height": 375}, {"file_name": "ADE_train_00001169.jpg", "width": 375, "id": 1168, "height": 500}, {"file_name": "ADE_train_00001170.jpg", "width": 500, "id": 1169, "height": 375}, {"file_name": "ADE_train_00001171.jpg", "width": 678, "id": 1170, "height": 512}, {"file_name": "ADE_train_00001172.jpg", "width": 500, "id": 1171, "height": 500}, {"file_name": "ADE_train_00001173.jpg", "width": 688, "id": 1172, "height": 512}, {"file_name": "ADE_train_00001174.jpg", "width": 469, "id": 1173, "height": 700}, {"file_name": "ADE_train_00001175.jpg", "width": 500, "id": 1174, "height": 375}, {"file_name": "ADE_train_00001176.jpg", "width": 683, "id": 1175, "height": 512}, {"file_name": "ADE_train_00001177.jpg", "width": 500, "id": 1176, "height": 368}, {"file_name": "ADE_train_00001178.jpg", "width": 768, "id": 1177, "height": 512}, {"file_name": "ADE_train_00001179.jpg", "width": 500, "id": 1178, "height": 333}, {"file_name": "ADE_train_00001180.jpg", "width": 350, "id": 1179, "height": 263}, {"file_name": "ADE_train_00001181.jpg", "width": 500, "id": 1180, "height": 375}, {"file_name": "ADE_train_00001182.jpg", "width": 500, "id": 1181, "height": 375}, {"file_name": "ADE_train_00001183.jpg", "width": 683, "id": 1182, "height": 512}, {"file_name": "ADE_train_00001184.jpg", "width": 500, "id": 1183, "height": 375}, {"file_name": "ADE_train_00001185.jpg", "width": 683, "id": 1184, "height": 512}, {"file_name": "ADE_train_00001186.jpg", "width": 683, "id": 1185, "height": 512}, {"file_name": "ADE_train_00001187.jpg", "width": 500, "id": 1186, "height": 375}, {"file_name": "ADE_train_00001188.jpg", "width": 683, "id": 1187, "height": 512}, {"file_name": "ADE_train_00001189.jpg", "width": 683, "id": 1188, "height": 512}, {"file_name": "ADE_train_00001190.jpg", "width": 683, "id": 1189, "height": 512}, {"file_name": "ADE_train_00001191.jpg", "width": 512, "id": 1190, "height": 783}, {"file_name": "ADE_train_00001192.jpg", "width": 683, "id": 1191, "height": 512}, {"file_name": "ADE_train_00001193.jpg", "width": 480, "id": 1192, "height": 360}, {"file_name": "ADE_train_00001194.jpg", "width": 500, "id": 1193, "height": 360}, {"file_name": "ADE_train_00001195.jpg", "width": 683, "id": 1194, "height": 512}, {"file_name": "ADE_train_00001196.jpg", "width": 683, "id": 1195, "height": 512}, {"file_name": "ADE_train_00001197.jpg", "width": 683, "id": 1196, "height": 512}, {"file_name": "ADE_train_00001198.jpg", "width": 581, "id": 1197, "height": 400}, {"file_name": "ADE_train_00001199.jpg", "width": 640, "id": 1198, "height": 480}, {"file_name": "ADE_train_00001200.jpg", "width": 475, "id": 1199, "height": 356}, {"file_name": "ADE_train_00001201.jpg", "width": 683, "id": 1200, "height": 512}, {"file_name": "ADE_train_00001202.jpg", "width": 670, "id": 1201, "height": 447}, {"file_name": "ADE_train_00001203.jpg", "width": 640, "id": 1202, "height": 480}, {"file_name": "ADE_train_00001204.jpg", "width": 500, "id": 1203, "height": 375}, {"file_name": "ADE_train_00001205.jpg", "width": 553, "id": 1204, "height": 369}, {"file_name": "ADE_train_00001206.jpg", "width": 586, "id": 1205, "height": 440}, {"file_name": "ADE_train_00001207.jpg", "width": 512, "id": 1206, "height": 773}, {"file_name": "ADE_train_00001208.jpg", "width": 540, "id": 1207, "height": 360}, {"file_name": "ADE_train_00001209.jpg", "width": 300, "id": 1208, "height": 225}, {"file_name": "ADE_train_00001210.jpg", "width": 638, "id": 1209, "height": 512}, {"file_name": "ADE_train_00001211.jpg", "width": 683, "id": 1210, "height": 512}, {"file_name": "ADE_train_00001212.jpg", "width": 451, "id": 1211, "height": 300}, {"file_name": "ADE_train_00001213.jpg", "width": 512, "id": 1212, "height": 623}, {"file_name": "ADE_train_00001214.jpg", "width": 550, "id": 1213, "height": 413}, {"file_name": "ADE_train_00001215.jpg", "width": 400, "id": 1214, "height": 300}, {"file_name": "ADE_train_00001216.jpg", "width": 540, "id": 1215, "height": 360}, {"file_name": "ADE_train_00001217.jpg", "width": 600, "id": 1216, "height": 475}, {"file_name": "ADE_train_00001218.jpg", "width": 755, "id": 1217, "height": 512}, {"file_name": "ADE_train_00001219.jpg", "width": 400, "id": 1218, "height": 600}, {"file_name": "ADE_train_00001220.jpg", "width": 640, "id": 1219, "height": 480}, {"file_name": "ADE_train_00001221.jpg", "width": 337, "id": 1220, "height": 413}, {"file_name": "ADE_train_00001222.jpg", "width": 500, "id": 1221, "height": 375}, {"file_name": "ADE_train_00001223.jpg", "width": 507, "id": 1222, "height": 380}, {"file_name": "ADE_train_00001224.jpg", "width": 683, "id": 1223, "height": 512}, {"file_name": "ADE_train_00001225.jpg", "width": 512, "id": 1224, "height": 773}, {"file_name": "ADE_train_00001226.jpg", "width": 640, "id": 1225, "height": 480}, {"file_name": "ADE_train_00001227.jpg", "width": 512, "id": 1226, "height": 683}, {"file_name": "ADE_train_00001228.jpg", "width": 404, "id": 1227, "height": 579}, {"file_name": "ADE_train_00001229.jpg", "width": 683, "id": 1228, "height": 512}, {"file_name": "ADE_train_00001230.jpg", "width": 683, "id": 1229, "height": 512}, {"file_name": "ADE_train_00001231.jpg", "width": 240, "id": 1230, "height": 320}, {"file_name": "ADE_train_00001232.jpg", "width": 512, "id": 1231, "height": 683}, {"file_name": "ADE_train_00001233.jpg", "width": 512, "id": 1232, "height": 683}, {"file_name": "ADE_train_00001234.jpg", "width": 512, "id": 1233, "height": 768}, {"file_name": "ADE_train_00001235.jpg", "width": 683, "id": 1234, "height": 512}, {"file_name": "ADE_train_00001236.jpg", "width": 683, "id": 1235, "height": 512}, {"file_name": "ADE_train_00001237.jpg", "width": 683, "id": 1236, "height": 512}, {"file_name": "ADE_train_00001238.jpg", "width": 512, "id": 1237, "height": 683}, {"file_name": "ADE_train_00001239.jpg", "width": 512, "id": 1238, "height": 683}, {"file_name": "ADE_train_00001240.jpg", "width": 683, "id": 1239, "height": 512}, {"file_name": "ADE_train_00001241.jpg", "width": 683, "id": 1240, "height": 512}, {"file_name": "ADE_train_00001242.jpg", "width": 512, "id": 1241, "height": 683}, {"file_name": "ADE_train_00001243.jpg", "width": 512, "id": 1242, "height": 683}, {"file_name": "ADE_train_00001244.jpg", "width": 512, "id": 1243, "height": 683}, {"file_name": "ADE_train_00001245.jpg", "width": 512, "id": 1244, "height": 683}, {"file_name": "ADE_train_00001246.jpg", "width": 768, "id": 1245, "height": 512}, {"file_name": "ADE_train_00001247.jpg", "width": 512, "id": 1246, "height": 683}, {"file_name": "ADE_train_00001248.jpg", "width": 225, "id": 1247, "height": 300}, {"file_name": "ADE_train_00001249.jpg", "width": 350, "id": 1248, "height": 205}, {"file_name": "ADE_train_00001250.jpg", "width": 500, "id": 1249, "height": 375}, {"file_name": "ADE_train_00001251.jpg", "width": 402, "id": 1250, "height": 302}, {"file_name": "ADE_train_00001252.jpg", "width": 512, "id": 1251, "height": 683}, {"file_name": "ADE_train_00001253.jpg", "width": 683, "id": 1252, "height": 512}, {"file_name": "ADE_train_00001254.jpg", "width": 512, "id": 1253, "height": 683}, {"file_name": "ADE_train_00001255.jpg", "width": 380, "id": 1254, "height": 217}, {"file_name": "ADE_train_00001256.jpg", "width": 577, "id": 1255, "height": 416}, {"file_name": "ADE_train_00001257.jpg", "width": 771, "id": 1256, "height": 512}, {"file_name": "ADE_train_00001258.jpg", "width": 300, "id": 1257, "height": 400}, {"file_name": "ADE_train_00001259.jpg", "width": 400, "id": 1258, "height": 533}, {"file_name": "ADE_train_00001260.jpg", "width": 772, "id": 1259, "height": 512}, {"file_name": "ADE_train_00001261.jpg", "width": 422, "id": 1260, "height": 343}, {"file_name": "ADE_train_00001262.jpg", "width": 512, "id": 1261, "height": 771}, {"file_name": "ADE_train_00001263.jpg", "width": 512, "id": 1262, "height": 648}, {"file_name": "ADE_train_00001264.jpg", "width": 512, "id": 1263, "height": 683}, {"file_name": "ADE_train_00001265.jpg", "width": 241, "id": 1264, "height": 361}, {"file_name": "ADE_train_00001266.jpg", "width": 640, "id": 1265, "height": 480}, {"file_name": "ADE_train_00001267.jpg", "width": 333, "id": 1266, "height": 500}, {"file_name": "ADE_train_00001268.jpg", "width": 512, "id": 1267, "height": 683}, {"file_name": "ADE_train_00001269.jpg", "width": 240, "id": 1268, "height": 320}, {"file_name": "ADE_train_00001270.jpg", "width": 258, "id": 1269, "height": 400}, {"file_name": "ADE_train_00001271.jpg", "width": 681, "id": 1270, "height": 453}, {"file_name": "ADE_train_00001272.jpg", "width": 450, "id": 1271, "height": 600}, {"file_name": "ADE_train_00001273.jpg", "width": 683, "id": 1272, "height": 512}, {"file_name": "ADE_train_00001274.jpg", "width": 488, "id": 1273, "height": 650}, {"file_name": "ADE_train_00001275.jpg", "width": 683, "id": 1274, "height": 512}, {"file_name": "ADE_train_00001276.jpg", "width": 450, "id": 1275, "height": 600}, {"file_name": "ADE_train_00001277.jpg", "width": 461, "id": 1276, "height": 640}, {"file_name": "ADE_train_00001278.jpg", "width": 400, "id": 1277, "height": 651}, {"file_name": "ADE_train_00001279.jpg", "width": 640, "id": 1278, "height": 480}, {"file_name": "ADE_train_00001280.jpg", "width": 512, "id": 1279, "height": 746}, {"file_name": "ADE_train_00001281.jpg", "width": 360, "id": 1280, "height": 480}, {"file_name": "ADE_train_00001282.jpg", "width": 282, "id": 1281, "height": 380}, {"file_name": "ADE_train_00001283.jpg", "width": 471, "id": 1282, "height": 500}, {"file_name": "ADE_train_00001284.jpg", "width": 335, "id": 1283, "height": 504}, {"file_name": "ADE_train_00001285.jpg", "width": 299, "id": 1284, "height": 400}, {"file_name": "ADE_train_00001286.jpg", "width": 512, "id": 1285, "height": 683}, {"file_name": "ADE_train_00001287.jpg", "width": 512, "id": 1286, "height": 683}, {"file_name": "ADE_train_00001288.jpg", "width": 300, "id": 1287, "height": 450}, {"file_name": "ADE_train_00001289.jpg", "width": 480, "id": 1288, "height": 640}, {"file_name": "ADE_train_00001290.jpg", "width": 428, "id": 1289, "height": 640}, {"file_name": "ADE_train_00001291.jpg", "width": 512, "id": 1290, "height": 636}, {"file_name": "ADE_train_00001292.jpg", "width": 500, "id": 1291, "height": 714}, {"file_name": "ADE_train_00001293.jpg", "width": 400, "id": 1292, "height": 300}, {"file_name": "ADE_train_00001294.jpg", "width": 512, "id": 1293, "height": 772}, {"file_name": "ADE_train_00001295.jpg", "width": 512, "id": 1294, "height": 783}, {"file_name": "ADE_train_00001296.jpg", "width": 455, "id": 1295, "height": 570}, {"file_name": "ADE_train_00001297.jpg", "width": 302, "id": 1296, "height": 402}, {"file_name": "ADE_train_00001298.jpg", "width": 498, "id": 1297, "height": 700}, {"file_name": "ADE_train_00001299.jpg", "width": 203, "id": 1298, "height": 300}, {"file_name": "ADE_train_00001300.jpg", "width": 330, "id": 1299, "height": 485}, {"file_name": "ADE_train_00001301.jpg", "width": 512, "id": 1300, "height": 754}, {"file_name": "ADE_train_00001302.jpg", "width": 456, "id": 1301, "height": 577}, {"file_name": "ADE_train_00001303.jpg", "width": 320, "id": 1302, "height": 427}, {"file_name": "ADE_train_00001304.jpg", "width": 512, "id": 1303, "height": 768}, {"file_name": "ADE_train_00001305.jpg", "width": 640, "id": 1304, "height": 480}, {"file_name": "ADE_train_00001306.jpg", "width": 512, "id": 1305, "height": 666}, {"file_name": "ADE_train_00001307.jpg", "width": 400, "id": 1306, "height": 300}, {"file_name": "ADE_train_00001308.jpg", "width": 454, "id": 1307, "height": 340}, {"file_name": "ADE_train_00001309.jpg", "width": 330, "id": 1308, "height": 440}, {"file_name": "ADE_train_00001310.jpg", "width": 480, "id": 1309, "height": 640}, {"file_name": "ADE_train_00001311.jpg", "width": 512, "id": 1310, "height": 797}, {"file_name": "ADE_train_00001312.jpg", "width": 685, "id": 1311, "height": 512}, {"file_name": "ADE_train_00001313.jpg", "width": 683, "id": 1312, "height": 512}, {"file_name": "ADE_train_00001314.jpg", "width": 683, "id": 1313, "height": 512}, {"file_name": "ADE_train_00001315.jpg", "width": 1284, "id": 1314, "height": 512}, {"file_name": "ADE_train_00001316.jpg", "width": 683, "id": 1315, "height": 512}, {"file_name": "ADE_train_00001317.jpg", "width": 839, "id": 1316, "height": 512}, {"file_name": "ADE_train_00001318.jpg", "width": 683, "id": 1317, "height": 512}, {"file_name": "ADE_train_00001319.jpg", "width": 683, "id": 1318, "height": 512}, {"file_name": "ADE_train_00001320.jpg", "width": 683, "id": 1319, "height": 512}, {"file_name": "ADE_train_00001321.jpg", "width": 683, "id": 1320, "height": 512}, {"file_name": "ADE_train_00001322.jpg", "width": 683, "id": 1321, "height": 512}, {"file_name": "ADE_train_00001323.jpg", "width": 683, "id": 1322, "height": 512}, {"file_name": "ADE_train_00001324.jpg", "width": 768, "id": 1323, "height": 512}, {"file_name": "ADE_train_00001325.jpg", "width": 683, "id": 1324, "height": 512}, {"file_name": "ADE_train_00001326.jpg", "width": 683, "id": 1325, "height": 512}, {"file_name": "ADE_train_00001327.jpg", "width": 683, "id": 1326, "height": 512}, {"file_name": "ADE_train_00001328.jpg", "width": 640, "id": 1327, "height": 480}, {"file_name": "ADE_train_00001329.jpg", "width": 512, "id": 1328, "height": 683}, {"file_name": "ADE_train_00001330.jpg", "width": 370, "id": 1329, "height": 365}, {"file_name": "ADE_train_00001331.jpg", "width": 683, "id": 1330, "height": 512}, {"file_name": "ADE_train_00001332.jpg", "width": 682, "id": 1331, "height": 512}, {"file_name": "ADE_train_00001333.jpg", "width": 500, "id": 1332, "height": 375}, {"file_name": "ADE_train_00001334.jpg", "width": 488, "id": 1333, "height": 355}, {"file_name": "ADE_train_00001335.jpg", "width": 500, "id": 1334, "height": 375}, {"file_name": "ADE_train_00001336.jpg", "width": 640, "id": 1335, "height": 480}, {"file_name": "ADE_train_00001337.jpg", "width": 400, "id": 1336, "height": 300}, {"file_name": "ADE_train_00001338.jpg", "width": 683, "id": 1337, "height": 512}, {"file_name": "ADE_train_00001339.jpg", "width": 470, "id": 1338, "height": 375}, {"file_name": "ADE_train_00001340.jpg", "width": 530, "id": 1339, "height": 398}, {"file_name": "ADE_train_00001341.jpg", "width": 421, "id": 1340, "height": 300}, {"file_name": "ADE_train_00001342.jpg", "width": 400, "id": 1341, "height": 324}, {"file_name": "ADE_train_00001343.jpg", "width": 280, "id": 1342, "height": 216}, {"file_name": "ADE_train_00001344.jpg", "width": 464, "id": 1343, "height": 250}, {"file_name": "ADE_train_00001345.jpg", "width": 683, "id": 1344, "height": 512}, {"file_name": "ADE_train_00001346.jpg", "width": 606, "id": 1345, "height": 404}, {"file_name": "ADE_train_00001347.jpg", "width": 683, "id": 1346, "height": 512}, {"file_name": "ADE_train_00001348.jpg", "width": 500, "id": 1347, "height": 332}, {"file_name": "ADE_train_00001349.jpg", "width": 400, "id": 1348, "height": 300}, {"file_name": "ADE_train_00001350.jpg", "width": 338, "id": 1349, "height": 308}, {"file_name": "ADE_train_00001351.jpg", "width": 683, "id": 1350, "height": 512}, {"file_name": "ADE_train_00001352.jpg", "width": 512, "id": 1351, "height": 683}, {"file_name": "ADE_train_00001353.jpg", "width": 550, "id": 1352, "height": 413}, {"file_name": "ADE_train_00001354.jpg", "width": 683, "id": 1353, "height": 512}, {"file_name": "ADE_train_00001355.jpg", "width": 621, "id": 1354, "height": 512}, {"file_name": "ADE_train_00001356.jpg", "width": 512, "id": 1355, "height": 683}, {"file_name": "ADE_train_00001357.jpg", "width": 772, "id": 1356, "height": 512}, {"file_name": "ADE_train_00001358.jpg", "width": 683, "id": 1357, "height": 512}, {"file_name": "ADE_train_00001359.jpg", "width": 910, "id": 1358, "height": 512}, {"file_name": "ADE_train_00001360.jpg", "width": 512, "id": 1359, "height": 768}, {"file_name": "ADE_train_00001361.jpg", "width": 256, "id": 1360, "height": 256}, {"file_name": "ADE_train_00001362.jpg", "width": 512, "id": 1361, "height": 771}, {"file_name": "ADE_train_00001363.jpg", "width": 400, "id": 1362, "height": 244}, {"file_name": "ADE_train_00001364.jpg", "width": 683, "id": 1363, "height": 512}, {"file_name": "ADE_train_00001365.jpg", "width": 415, "id": 1364, "height": 332}, {"file_name": "ADE_train_00001366.jpg", "width": 666, "id": 1365, "height": 512}, {"file_name": "ADE_train_00001367.jpg", "width": 285, "id": 1366, "height": 244}, {"file_name": "ADE_train_00001368.jpg", "width": 768, "id": 1367, "height": 512}, {"file_name": "ADE_train_00001369.jpg", "width": 683, "id": 1368, "height": 512}, {"file_name": "ADE_train_00001370.jpg", "width": 512, "id": 1369, "height": 682}, {"file_name": "ADE_train_00001371.jpg", "width": 683, "id": 1370, "height": 512}, {"file_name": "ADE_train_00001372.jpg", "width": 256, "id": 1371, "height": 256}, {"file_name": "ADE_train_00001373.jpg", "width": 683, "id": 1372, "height": 512}, {"file_name": "ADE_train_00001374.jpg", "width": 683, "id": 1373, "height": 512}, {"file_name": "ADE_train_00001375.jpg", "width": 566, "id": 1374, "height": 378}, {"file_name": "ADE_train_00001376.jpg", "width": 400, "id": 1375, "height": 300}, {"file_name": "ADE_train_00001377.jpg", "width": 512, "id": 1376, "height": 683}, {"file_name": "ADE_train_00001378.jpg", "width": 683, "id": 1377, "height": 512}, {"file_name": "ADE_train_00001379.jpg", "width": 256, "id": 1378, "height": 256}, {"file_name": "ADE_train_00001380.jpg", "width": 683, "id": 1379, "height": 512}, {"file_name": "ADE_train_00001381.jpg", "width": 683, "id": 1380, "height": 512}, {"file_name": "ADE_train_00001382.jpg", "width": 683, "id": 1381, "height": 512}, {"file_name": "ADE_train_00001383.jpg", "width": 683, "id": 1382, "height": 512}, {"file_name": "ADE_train_00001384.jpg", "width": 683, "id": 1383, "height": 512}, {"file_name": "ADE_train_00001385.jpg", "width": 683, "id": 1384, "height": 512}, {"file_name": "ADE_train_00001386.jpg", "width": 683, "id": 1385, "height": 512}, {"file_name": "ADE_train_00001387.jpg", "width": 512, "id": 1386, "height": 765}, {"file_name": "ADE_train_00001388.jpg", "width": 768, "id": 1387, "height": 512}, {"file_name": "ADE_train_00001389.jpg", "width": 772, "id": 1388, "height": 512}, {"file_name": "ADE_train_00001390.jpg", "width": 654, "id": 1389, "height": 512}, {"file_name": "ADE_train_00001391.jpg", "width": 683, "id": 1390, "height": 512}, {"file_name": "ADE_train_00001392.jpg", "width": 683, "id": 1391, "height": 512}, {"file_name": "ADE_train_00001393.jpg", "width": 683, "id": 1392, "height": 512}, {"file_name": "ADE_train_00001394.jpg", "width": 683, "id": 1393, "height": 512}, {"file_name": "ADE_train_00001395.jpg", "width": 500, "id": 1394, "height": 338}, {"file_name": "ADE_train_00001396.jpg", "width": 500, "id": 1395, "height": 326}, {"file_name": "ADE_train_00001397.jpg", "width": 300, "id": 1396, "height": 353}, {"file_name": "ADE_train_00001398.jpg", "width": 500, "id": 1397, "height": 375}, {"file_name": "ADE_train_00001399.jpg", "width": 250, "id": 1398, "height": 179}, {"file_name": "ADE_train_00001400.jpg", "width": 665, "id": 1399, "height": 512}, {"file_name": "ADE_train_00001401.jpg", "width": 300, "id": 1400, "height": 395}, {"file_name": "ADE_train_00001402.jpg", "width": 400, "id": 1401, "height": 278}, {"file_name": "ADE_train_00001403.jpg", "width": 450, "id": 1402, "height": 259}, {"file_name": "ADE_train_00001404.jpg", "width": 683, "id": 1403, "height": 512}, {"file_name": "ADE_train_00001405.jpg", "width": 619, "id": 1404, "height": 512}, {"file_name": "ADE_train_00001406.jpg", "width": 683, "id": 1405, "height": 512}, {"file_name": "ADE_train_00001407.jpg", "width": 320, "id": 1406, "height": 240}, {"file_name": "ADE_train_00001408.jpg", "width": 512, "id": 1407, "height": 683}, {"file_name": "ADE_train_00001409.jpg", "width": 450, "id": 1408, "height": 600}, {"file_name": "ADE_train_00001410.jpg", "width": 683, "id": 1409, "height": 512}, {"file_name": "ADE_train_00001411.jpg", "width": 225, "id": 1410, "height": 300}, {"file_name": "ADE_train_00001412.jpg", "width": 300, "id": 1411, "height": 216}, {"file_name": "ADE_train_00001413.jpg", "width": 480, "id": 1412, "height": 640}, {"file_name": "ADE_train_00001414.jpg", "width": 512, "id": 1413, "height": 1142}, {"file_name": "ADE_train_00001415.jpg", "width": 683, "id": 1414, "height": 512}, {"file_name": "ADE_train_00001416.jpg", "width": 512, "id": 1415, "height": 517}, {"file_name": "ADE_train_00001417.jpg", "width": 683, "id": 1416, "height": 512}, {"file_name": "ADE_train_00001418.jpg", "width": 500, "id": 1417, "height": 375}, {"file_name": "ADE_train_00001419.jpg", "width": 300, "id": 1418, "height": 225}, {"file_name": "ADE_train_00001420.jpg", "width": 384, "id": 1419, "height": 254}, {"file_name": "ADE_train_00001421.jpg", "width": 512, "id": 1420, "height": 768}, {"file_name": "ADE_train_00001422.jpg", "width": 500, "id": 1421, "height": 375}, {"file_name": "ADE_train_00001423.jpg", "width": 512, "id": 1422, "height": 682}, {"file_name": "ADE_train_00001424.jpg", "width": 512, "id": 1423, "height": 770}, {"file_name": "ADE_train_00001425.jpg", "width": 674, "id": 1424, "height": 512}, {"file_name": "ADE_train_00001426.jpg", "width": 683, "id": 1425, "height": 512}, {"file_name": "ADE_train_00001427.jpg", "width": 233, "id": 1426, "height": 278}, {"file_name": "ADE_train_00001428.jpg", "width": 683, "id": 1427, "height": 512}, {"file_name": "ADE_train_00001429.jpg", "width": 683, "id": 1428, "height": 512}, {"file_name": "ADE_train_00001430.jpg", "width": 683, "id": 1429, "height": 512}, {"file_name": "ADE_train_00001431.jpg", "width": 512, "id": 1430, "height": 683}, {"file_name": "ADE_train_00001432.jpg", "width": 768, "id": 1431, "height": 512}, {"file_name": "ADE_train_00001433.jpg", "width": 550, "id": 1432, "height": 366}, {"file_name": "ADE_train_00001434.jpg", "width": 701, "id": 1433, "height": 404}, {"file_name": "ADE_train_00001435.jpg", "width": 683, "id": 1434, "height": 512}, {"file_name": "ADE_train_00001436.jpg", "width": 500, "id": 1435, "height": 375}, {"file_name": "ADE_train_00001437.jpg", "width": 683, "id": 1436, "height": 512}, {"file_name": "ADE_train_00001438.jpg", "width": 640, "id": 1437, "height": 480}, {"file_name": "ADE_train_00001439.jpg", "width": 504, "id": 1438, "height": 358}, {"file_name": "ADE_train_00001440.jpg", "width": 631, "id": 1439, "height": 429}, {"file_name": "ADE_train_00001441.jpg", "width": 683, "id": 1440, "height": 512}, {"file_name": "ADE_train_00001442.jpg", "width": 683, "id": 1441, "height": 512}, {"file_name": "ADE_train_00001443.jpg", "width": 320, "id": 1442, "height": 240}, {"file_name": "ADE_train_00001444.jpg", "width": 300, "id": 1443, "height": 399}, {"file_name": "ADE_train_00001445.jpg", "width": 480, "id": 1444, "height": 640}, {"file_name": "ADE_train_00001446.jpg", "width": 512, "id": 1445, "height": 765}, {"file_name": "ADE_train_00001447.jpg", "width": 576, "id": 1446, "height": 384}, {"file_name": "ADE_train_00001448.jpg", "width": 265, "id": 1447, "height": 228}, {"file_name": "ADE_train_00001449.jpg", "width": 560, "id": 1448, "height": 345}, {"file_name": "ADE_train_00001450.jpg", "width": 688, "id": 1449, "height": 512}, {"file_name": "ADE_train_00001451.jpg", "width": 410, "id": 1450, "height": 557}, {"file_name": "ADE_train_00001452.jpg", "width": 320, "id": 1451, "height": 426}, {"file_name": "ADE_train_00001453.jpg", "width": 480, "id": 1452, "height": 640}, {"file_name": "ADE_train_00001454.jpg", "width": 220, "id": 1453, "height": 300}, {"file_name": "ADE_train_00001455.jpg", "width": 550, "id": 1454, "height": 512}, {"file_name": "ADE_train_00001456.jpg", "width": 768, "id": 1455, "height": 512}, {"file_name": "ADE_train_00001457.jpg", "width": 500, "id": 1456, "height": 375}, {"file_name": "ADE_train_00001458.jpg", "width": 550, "id": 1457, "height": 367}, {"file_name": "ADE_train_00001459.jpg", "width": 504, "id": 1458, "height": 638}, {"file_name": "ADE_train_00001460.jpg", "width": 683, "id": 1459, "height": 512}, {"file_name": "ADE_train_00001461.jpg", "width": 370, "id": 1460, "height": 556}, {"file_name": "ADE_train_00001462.jpg", "width": 247, "id": 1461, "height": 329}, {"file_name": "ADE_train_00001463.jpg", "width": 789, "id": 1462, "height": 512}, {"file_name": "ADE_train_00001464.jpg", "width": 250, "id": 1463, "height": 334}, {"file_name": "ADE_train_00001465.jpg", "width": 338, "id": 1464, "height": 510}, {"file_name": "ADE_train_00001466.jpg", "width": 460, "id": 1465, "height": 614}, {"file_name": "ADE_train_00001467.jpg", "width": 682, "id": 1466, "height": 512}, {"file_name": "ADE_train_00001468.jpg", "width": 640, "id": 1467, "height": 480}, {"file_name": "ADE_train_00001469.jpg", "width": 512, "id": 1468, "height": 774}, {"file_name": "ADE_train_00001470.jpg", "width": 335, "id": 1469, "height": 500}, {"file_name": "ADE_train_00001471.jpg", "width": 480, "id": 1470, "height": 360}, {"file_name": "ADE_train_00001472.jpg", "width": 400, "id": 1471, "height": 266}, {"file_name": "ADE_train_00001473.jpg", "width": 466, "id": 1472, "height": 595}, {"file_name": "ADE_train_00001474.jpg", "width": 400, "id": 1473, "height": 295}, {"file_name": "ADE_train_00001475.jpg", "width": 189, "id": 1474, "height": 235}, {"file_name": "ADE_train_00001476.jpg", "width": 500, "id": 1475, "height": 485}, {"file_name": "ADE_train_00001477.jpg", "width": 350, "id": 1476, "height": 233}, {"file_name": "ADE_train_00001478.jpg", "width": 200, "id": 1477, "height": 250}, {"file_name": "ADE_train_00001479.jpg", "width": 600, "id": 1478, "height": 450}, {"file_name": "ADE_train_00001480.jpg", "width": 400, "id": 1479, "height": 300}, {"file_name": "ADE_train_00001481.jpg", "width": 588, "id": 1480, "height": 512}, {"file_name": "ADE_train_00001482.jpg", "width": 768, "id": 1481, "height": 512}, {"file_name": "ADE_train_00001483.jpg", "width": 432, "id": 1482, "height": 493}, {"file_name": "ADE_train_00001484.jpg", "width": 432, "id": 1483, "height": 276}, {"file_name": "ADE_train_00001485.jpg", "width": 422, "id": 1484, "height": 500}, {"file_name": "ADE_train_00001486.jpg", "width": 500, "id": 1485, "height": 371}, {"file_name": "ADE_train_00001487.jpg", "width": 792, "id": 1486, "height": 512}, {"file_name": "ADE_train_00001488.jpg", "width": 500, "id": 1487, "height": 375}, {"file_name": "ADE_train_00001489.jpg", "width": 600, "id": 1488, "height": 300}, {"file_name": "ADE_train_00001490.jpg", "width": 410, "id": 1489, "height": 289}, {"file_name": "ADE_train_00001491.jpg", "width": 640, "id": 1490, "height": 480}, {"file_name": "ADE_train_00001492.jpg", "width": 400, "id": 1491, "height": 535}, {"file_name": "ADE_train_00001493.jpg", "width": 500, "id": 1492, "height": 375}, {"file_name": "ADE_train_00001494.jpg", "width": 768, "id": 1493, "height": 512}, {"file_name": "ADE_train_00001495.jpg", "width": 500, "id": 1494, "height": 320}, {"file_name": "ADE_train_00001496.jpg", "width": 768, "id": 1495, "height": 512}, {"file_name": "ADE_train_00001497.jpg", "width": 550, "id": 1496, "height": 412}, {"file_name": "ADE_train_00001498.jpg", "width": 683, "id": 1497, "height": 512}, {"file_name": "ADE_train_00001499.jpg", "width": 683, "id": 1498, "height": 512}, {"file_name": "ADE_train_00001500.jpg", "width": 747, "id": 1499, "height": 512}, {"file_name": "ADE_train_00001501.jpg", "width": 500, "id": 1500, "height": 448}, {"file_name": "ADE_train_00001502.jpg", "width": 550, "id": 1501, "height": 414}, {"file_name": "ADE_train_00001503.jpg", "width": 480, "id": 1502, "height": 322}, {"file_name": "ADE_train_00001504.jpg", "width": 500, "id": 1503, "height": 333}, {"file_name": "ADE_train_00001505.jpg", "width": 683, "id": 1504, "height": 512}, {"file_name": "ADE_train_00001506.jpg", "width": 771, "id": 1505, "height": 512}, {"file_name": "ADE_train_00001507.jpg", "width": 768, "id": 1506, "height": 512}, {"file_name": "ADE_train_00001508.jpg", "width": 452, "id": 1507, "height": 287}, {"file_name": "ADE_train_00001509.jpg", "width": 341, "id": 1508, "height": 221}, {"file_name": "ADE_train_00001510.jpg", "width": 278, "id": 1509, "height": 207}, {"file_name": "ADE_train_00001511.jpg", "width": 683, "id": 1510, "height": 512}, {"file_name": "ADE_train_00001512.jpg", "width": 683, "id": 1511, "height": 512}, {"file_name": "ADE_train_00001513.jpg", "width": 712, "id": 1512, "height": 422}, {"file_name": "ADE_train_00001514.jpg", "width": 731, "id": 1513, "height": 512}, {"file_name": "ADE_train_00001515.jpg", "width": 427, "id": 1514, "height": 319}, {"file_name": "ADE_train_00001516.jpg", "width": 683, "id": 1515, "height": 512}, {"file_name": "ADE_train_00001517.jpg", "width": 683, "id": 1516, "height": 512}, {"file_name": "ADE_train_00001518.jpg", "width": 640, "id": 1517, "height": 480}, {"file_name": "ADE_train_00001519.jpg", "width": 683, "id": 1518, "height": 512}, {"file_name": "ADE_train_00001520.jpg", "width": 420, "id": 1519, "height": 288}, {"file_name": "ADE_train_00001521.jpg", "width": 694, "id": 1520, "height": 512}, {"file_name": "ADE_train_00001522.jpg", "width": 512, "id": 1521, "height": 765}, {"file_name": "ADE_train_00001523.jpg", "width": 683, "id": 1522, "height": 512}, {"file_name": "ADE_train_00001524.jpg", "width": 512, "id": 1523, "height": 765}, {"file_name": "ADE_train_00001525.jpg", "width": 512, "id": 1524, "height": 765}, {"file_name": "ADE_train_00001526.jpg", "width": 512, "id": 1525, "height": 765}, {"file_name": "ADE_train_00001527.jpg", "width": 450, "id": 1526, "height": 600}, {"file_name": "ADE_train_00001528.jpg", "width": 683, "id": 1527, "height": 512}, {"file_name": "ADE_train_00001529.jpg", "width": 428, "id": 1528, "height": 605}, {"file_name": "ADE_train_00001530.jpg", "width": 350, "id": 1529, "height": 233}, {"file_name": "ADE_train_00001531.jpg", "width": 640, "id": 1530, "height": 480}, {"file_name": "ADE_train_00001532.jpg", "width": 640, "id": 1531, "height": 480}, {"file_name": "ADE_train_00001533.jpg", "width": 450, "id": 1532, "height": 600}, {"file_name": "ADE_train_00001534.jpg", "width": 580, "id": 1533, "height": 379}, {"file_name": "ADE_train_00001535.jpg", "width": 350, "id": 1534, "height": 400}, {"file_name": "ADE_train_00001536.jpg", "width": 525, "id": 1535, "height": 345}, {"file_name": "ADE_train_00001537.jpg", "width": 547, "id": 1536, "height": 512}, {"file_name": "ADE_train_00001538.jpg", "width": 189, "id": 1537, "height": 283}, {"file_name": "ADE_train_00001539.jpg", "width": 512, "id": 1538, "height": 668}, {"file_name": "ADE_train_00001540.jpg", "width": 300, "id": 1539, "height": 204}, {"file_name": "ADE_train_00001541.jpg", "width": 754, "id": 1540, "height": 512}, {"file_name": "ADE_train_00001542.jpg", "width": 260, "id": 1541, "height": 240}, {"file_name": "ADE_train_00001543.jpg", "width": 307, "id": 1542, "height": 224}, {"file_name": "ADE_train_00001544.jpg", "width": 692, "id": 1543, "height": 512}, {"file_name": "ADE_train_00001545.jpg", "width": 683, "id": 1544, "height": 512}, {"file_name": "ADE_train_00001546.jpg", "width": 769, "id": 1545, "height": 512}, {"file_name": "ADE_train_00001547.jpg", "width": 350, "id": 1546, "height": 233}, {"file_name": "ADE_train_00001548.jpg", "width": 285, "id": 1547, "height": 214}, {"file_name": "ADE_train_00001549.jpg", "width": 442, "id": 1548, "height": 294}, {"file_name": "ADE_train_00001550.jpg", "width": 350, "id": 1549, "height": 242}, {"file_name": "ADE_train_00001551.jpg", "width": 519, "id": 1550, "height": 512}, {"file_name": "ADE_train_00001552.jpg", "width": 683, "id": 1551, "height": 512}, {"file_name": "ADE_train_00001553.jpg", "width": 1024, "id": 1552, "height": 1024}, {"file_name": "ADE_train_00001554.jpg", "width": 750, "id": 1553, "height": 469}, {"file_name": "ADE_train_00001555.jpg", "width": 683, "id": 1554, "height": 512}, {"file_name": "ADE_train_00001556.jpg", "width": 500, "id": 1555, "height": 375}, {"file_name": "ADE_train_00001557.jpg", "width": 480, "id": 1556, "height": 360}, {"file_name": "ADE_train_00001558.jpg", "width": 550, "id": 1557, "height": 371}, {"file_name": "ADE_train_00001559.jpg", "width": 410, "id": 1558, "height": 294}, {"file_name": "ADE_train_00001560.jpg", "width": 528, "id": 1559, "height": 395}, {"file_name": "ADE_train_00001561.jpg", "width": 512, "id": 1560, "height": 682}, {"file_name": "ADE_train_00001562.jpg", "width": 300, "id": 1561, "height": 400}, {"file_name": "ADE_train_00001563.jpg", "width": 500, "id": 1562, "height": 746}, {"file_name": "ADE_train_00001564.jpg", "width": 500, "id": 1563, "height": 372}, {"file_name": "ADE_train_00001565.jpg", "width": 640, "id": 1564, "height": 480}, {"file_name": "ADE_train_00001566.jpg", "width": 321, "id": 1565, "height": 250}, {"file_name": "ADE_train_00001567.jpg", "width": 684, "id": 1566, "height": 512}, {"file_name": "ADE_train_00001568.jpg", "width": 340, "id": 1567, "height": 228}, {"file_name": "ADE_train_00001569.jpg", "width": 770, "id": 1568, "height": 512}, {"file_name": "ADE_train_00001570.jpg", "width": 672, "id": 1569, "height": 512}, {"file_name": "ADE_train_00001571.jpg", "width": 360, "id": 1570, "height": 274}, {"file_name": "ADE_train_00001572.jpg", "width": 770, "id": 1571, "height": 512}, {"file_name": "ADE_train_00001573.jpg", "width": 683, "id": 1572, "height": 512}, {"file_name": "ADE_train_00001574.jpg", "width": 300, "id": 1573, "height": 201}, {"file_name": "ADE_train_00001575.jpg", "width": 600, "id": 1574, "height": 450}, {"file_name": "ADE_train_00001576.jpg", "width": 320, "id": 1575, "height": 242}, {"file_name": "ADE_train_00001577.jpg", "width": 910, "id": 1576, "height": 512}, {"file_name": "ADE_train_00001578.jpg", "width": 728, "id": 1577, "height": 500}, {"file_name": "ADE_train_00001579.jpg", "width": 684, "id": 1578, "height": 512}, {"file_name": "ADE_train_00001580.jpg", "width": 512, "id": 1579, "height": 683}, {"file_name": "ADE_train_00001581.jpg", "width": 763, "id": 1580, "height": 512}, {"file_name": "ADE_train_00001582.jpg", "width": 853, "id": 1581, "height": 512}, {"file_name": "ADE_train_00001583.jpg", "width": 295, "id": 1582, "height": 238}, {"file_name": "ADE_train_00001584.jpg", "width": 450, "id": 1583, "height": 338}, {"file_name": "ADE_train_00001585.jpg", "width": 640, "id": 1584, "height": 426}, {"file_name": "ADE_train_00001586.jpg", "width": 350, "id": 1585, "height": 241}, {"file_name": "ADE_train_00001587.jpg", "width": 300, "id": 1586, "height": 225}, {"file_name": "ADE_train_00001588.jpg", "width": 683, "id": 1587, "height": 512}, {"file_name": "ADE_train_00001589.jpg", "width": 768, "id": 1588, "height": 512}, {"file_name": "ADE_train_00001590.jpg", "width": 735, "id": 1589, "height": 512}, {"file_name": "ADE_train_00001591.jpg", "width": 428, "id": 1590, "height": 288}, {"file_name": "ADE_train_00001592.jpg", "width": 526, "id": 1591, "height": 452}, {"file_name": "ADE_train_00001593.jpg", "width": 400, "id": 1592, "height": 300}, {"file_name": "ADE_train_00001594.jpg", "width": 512, "id": 1593, "height": 342}, {"file_name": "ADE_train_00001595.jpg", "width": 909, "id": 1594, "height": 512}, {"file_name": "ADE_train_00001596.jpg", "width": 683, "id": 1595, "height": 512}, {"file_name": "ADE_train_00001597.jpg", "width": 640, "id": 1596, "height": 480}, {"file_name": "ADE_train_00001598.jpg", "width": 600, "id": 1597, "height": 396}, {"file_name": "ADE_train_00001599.jpg", "width": 480, "id": 1598, "height": 320}, {"file_name": "ADE_train_00001600.jpg", "width": 640, "id": 1599, "height": 480}, {"file_name": "ADE_train_00001601.jpg", "width": 683, "id": 1600, "height": 512}, {"file_name": "ADE_train_00001602.jpg", "width": 683, "id": 1601, "height": 512}, {"file_name": "ADE_train_00001603.jpg", "width": 600, "id": 1602, "height": 450}, {"file_name": "ADE_train_00001604.jpg", "width": 683, "id": 1603, "height": 512}, {"file_name": "ADE_train_00001605.jpg", "width": 683, "id": 1604, "height": 512}, {"file_name": "ADE_train_00001606.jpg", "width": 500, "id": 1605, "height": 375}, {"file_name": "ADE_train_00001607.jpg", "width": 683, "id": 1606, "height": 512}, {"file_name": "ADE_train_00001608.jpg", "width": 522, "id": 1607, "height": 348}, {"file_name": "ADE_train_00001609.jpg", "width": 648, "id": 1608, "height": 486}, {"file_name": "ADE_train_00001610.jpg", "width": 768, "id": 1609, "height": 512}, {"file_name": "ADE_train_00001611.jpg", "width": 683, "id": 1610, "height": 512}, {"file_name": "ADE_train_00001612.jpg", "width": 683, "id": 1611, "height": 512}, {"file_name": "ADE_train_00001613.jpg", "width": 683, "id": 1612, "height": 512}, {"file_name": "ADE_train_00001614.jpg", "width": 683, "id": 1613, "height": 512}, {"file_name": "ADE_train_00001615.jpg", "width": 410, "id": 1614, "height": 307}, {"file_name": "ADE_train_00001616.jpg", "width": 683, "id": 1615, "height": 512}, {"file_name": "ADE_train_00001617.jpg", "width": 683, "id": 1616, "height": 512}, {"file_name": "ADE_train_00001618.jpg", "width": 683, "id": 1617, "height": 512}, {"file_name": "ADE_train_00001619.jpg", "width": 683, "id": 1618, "height": 512}, {"file_name": "ADE_train_00001620.jpg", "width": 683, "id": 1619, "height": 512}, {"file_name": "ADE_train_00001621.jpg", "width": 683, "id": 1620, "height": 512}, {"file_name": "ADE_train_00001622.jpg", "width": 683, "id": 1621, "height": 512}, {"file_name": "ADE_train_00001623.jpg", "width": 683, "id": 1622, "height": 512}, {"file_name": "ADE_train_00001624.jpg", "width": 683, "id": 1623, "height": 512}, {"file_name": "ADE_train_00001625.jpg", "width": 768, "id": 1624, "height": 512}, {"file_name": "ADE_train_00001626.jpg", "width": 683, "id": 1625, "height": 512}, {"file_name": "ADE_train_00001627.jpg", "width": 683, "id": 1626, "height": 512}, {"file_name": "ADE_train_00001628.jpg", "width": 683, "id": 1627, "height": 512}, {"file_name": "ADE_train_00001629.jpg", "width": 484, "id": 1628, "height": 363}, {"file_name": "ADE_train_00001630.jpg", "width": 683, "id": 1629, "height": 512}, {"file_name": "ADE_train_00001631.jpg", "width": 683, "id": 1630, "height": 512}, {"file_name": "ADE_train_00001632.jpg", "width": 683, "id": 1631, "height": 512}, {"file_name": "ADE_train_00001633.jpg", "width": 683, "id": 1632, "height": 512}, {"file_name": "ADE_train_00001634.jpg", "width": 500, "id": 1633, "height": 333}, {"file_name": "ADE_train_00001635.jpg", "width": 683, "id": 1634, "height": 512}, {"file_name": "ADE_train_00001636.jpg", "width": 300, "id": 1635, "height": 300}, {"file_name": "ADE_train_00001637.jpg", "width": 320, "id": 1636, "height": 213}, {"file_name": "ADE_train_00001638.jpg", "width": 480, "id": 1637, "height": 320}, {"file_name": "ADE_train_00001639.jpg", "width": 207, "id": 1638, "height": 264}, {"file_name": "ADE_train_00001640.jpg", "width": 683, "id": 1639, "height": 512}, {"file_name": "ADE_train_00001641.jpg", "width": 320, "id": 1640, "height": 240}, {"file_name": "ADE_train_00001642.jpg", "width": 351, "id": 1641, "height": 240}, {"file_name": "ADE_train_00001643.jpg", "width": 1100, "id": 1642, "height": 1100}, {"file_name": "ADE_train_00001644.jpg", "width": 512, "id": 1643, "height": 529}, {"file_name": "ADE_train_00001645.jpg", "width": 662, "id": 1644, "height": 491}, {"file_name": "ADE_train_00001646.jpg", "width": 683, "id": 1645, "height": 512}, {"file_name": "ADE_train_00001647.jpg", "width": 1026, "id": 1646, "height": 512}, {"file_name": "ADE_train_00001648.jpg", "width": 638, "id": 1647, "height": 491}, {"file_name": "ADE_train_00001649.jpg", "width": 768, "id": 1648, "height": 512}, {"file_name": "ADE_train_00001650.jpg", "width": 512, "id": 1649, "height": 770}, {"file_name": "ADE_train_00001651.jpg", "width": 768, "id": 1650, "height": 512}, {"file_name": "ADE_train_00001652.jpg", "width": 768, "id": 1651, "height": 512}, {"file_name": "ADE_train_00001653.jpg", "width": 300, "id": 1652, "height": 225}, {"file_name": "ADE_train_00001654.jpg", "width": 612, "id": 1653, "height": 400}, {"file_name": "ADE_train_00001655.jpg", "width": 512, "id": 1654, "height": 775}, {"file_name": "ADE_train_00001656.jpg", "width": 683, "id": 1655, "height": 512}, {"file_name": "ADE_train_00001657.jpg", "width": 560, "id": 1656, "height": 360}, {"file_name": "ADE_train_00001658.jpg", "width": 342, "id": 1657, "height": 256}, {"file_name": "ADE_train_00001659.jpg", "width": 530, "id": 1658, "height": 355}, {"file_name": "ADE_train_00001660.jpg", "width": 776, "id": 1659, "height": 512}, {"file_name": "ADE_train_00001661.jpg", "width": 512, "id": 1660, "height": 679}, {"file_name": "ADE_train_00001662.jpg", "width": 379, "id": 1661, "height": 219}, {"file_name": "ADE_train_00001663.jpg", "width": 275, "id": 1662, "height": 206}, {"file_name": "ADE_train_00001664.jpg", "width": 218, "id": 1663, "height": 325}, {"file_name": "ADE_train_00001665.jpg", "width": 683, "id": 1664, "height": 512}, {"file_name": "ADE_train_00001666.jpg", "width": 340, "id": 1665, "height": 255}, {"file_name": "ADE_train_00001667.jpg", "width": 500, "id": 1666, "height": 290}, {"file_name": "ADE_train_00001668.jpg", "width": 770, "id": 1667, "height": 512}, {"file_name": "ADE_train_00001669.jpg", "width": 340, "id": 1668, "height": 210}, {"file_name": "ADE_train_00001670.jpg", "width": 300, "id": 1669, "height": 225}, {"file_name": "ADE_train_00001671.jpg", "width": 770, "id": 1670, "height": 512}, {"file_name": "ADE_train_00001672.jpg", "width": 685, "id": 1671, "height": 512}, {"file_name": "ADE_train_00001673.jpg", "width": 350, "id": 1672, "height": 233}, {"file_name": "ADE_train_00001674.jpg", "width": 770, "id": 1673, "height": 512}, {"file_name": "ADE_train_00001675.jpg", "width": 540, "id": 1674, "height": 405}, {"file_name": "ADE_train_00001676.jpg", "width": 480, "id": 1675, "height": 360}, {"file_name": "ADE_train_00001677.jpg", "width": 330, "id": 1676, "height": 248}, {"file_name": "ADE_train_00001678.jpg", "width": 730, "id": 1677, "height": 512}, {"file_name": "ADE_train_00001679.jpg", "width": 780, "id": 1678, "height": 512}, {"file_name": "ADE_train_00001680.jpg", "width": 367, "id": 1679, "height": 300}, {"file_name": "ADE_train_00001681.jpg", "width": 500, "id": 1680, "height": 376}, {"file_name": "ADE_train_00001682.jpg", "width": 212, "id": 1681, "height": 250}, {"file_name": "ADE_train_00001683.jpg", "width": 250, "id": 1682, "height": 188}, {"file_name": "ADE_train_00001684.jpg", "width": 368, "id": 1683, "height": 500}, {"file_name": "ADE_train_00001685.jpg", "width": 349, "id": 1684, "height": 231}, {"file_name": "ADE_train_00001686.jpg", "width": 765, "id": 1685, "height": 512}, {"file_name": "ADE_train_00001687.jpg", "width": 661, "id": 1686, "height": 512}, {"file_name": "ADE_train_00001688.jpg", "width": 763, "id": 1687, "height": 512}, {"file_name": "ADE_train_00001689.jpg", "width": 300, "id": 1688, "height": 300}, {"file_name": "ADE_train_00001690.jpg", "width": 593, "id": 1689, "height": 400}, {"file_name": "ADE_train_00001691.jpg", "width": 367, "id": 1690, "height": 240}, {"file_name": "ADE_train_00001692.jpg", "width": 768, "id": 1691, "height": 512}, {"file_name": "ADE_train_00001693.jpg", "width": 683, "id": 1692, "height": 512}, {"file_name": "ADE_train_00001694.jpg", "width": 759, "id": 1693, "height": 512}, {"file_name": "ADE_train_00001695.jpg", "width": 765, "id": 1694, "height": 512}, {"file_name": "ADE_train_00001696.jpg", "width": 683, "id": 1695, "height": 512}, {"file_name": "ADE_train_00001697.jpg", "width": 683, "id": 1696, "height": 512}, {"file_name": "ADE_train_00001698.jpg", "width": 520, "id": 1697, "height": 345}, {"file_name": "ADE_train_00001699.jpg", "width": 450, "id": 1698, "height": 319}, {"file_name": "ADE_train_00001700.jpg", "width": 683, "id": 1699, "height": 512}, {"file_name": "ADE_train_00001701.jpg", "width": 449, "id": 1700, "height": 340}, {"file_name": "ADE_train_00001702.jpg", "width": 767, "id": 1701, "height": 512}, {"file_name": "ADE_train_00001703.jpg", "width": 368, "id": 1702, "height": 275}, {"file_name": "ADE_train_00001704.jpg", "width": 295, "id": 1703, "height": 405}, {"file_name": "ADE_train_00001705.jpg", "width": 267, "id": 1704, "height": 360}, {"file_name": "ADE_train_00001706.jpg", "width": 356, "id": 1705, "height": 534}, {"file_name": "ADE_train_00001707.jpg", "width": 500, "id": 1706, "height": 329}, {"file_name": "ADE_train_00001708.jpg", "width": 780, "id": 1707, "height": 342}, {"file_name": "ADE_train_00001709.jpg", "width": 500, "id": 1708, "height": 376}, {"file_name": "ADE_train_00001710.jpg", "width": 591, "id": 1709, "height": 425}, {"file_name": "ADE_train_00001711.jpg", "width": 500, "id": 1710, "height": 375}, {"file_name": "ADE_train_00001712.jpg", "width": 512, "id": 1711, "height": 682}, {"file_name": "ADE_train_00001713.jpg", "width": 683, "id": 1712, "height": 512}, {"file_name": "ADE_train_00001714.jpg", "width": 422, "id": 1713, "height": 278}, {"file_name": "ADE_train_00001715.jpg", "width": 454, "id": 1714, "height": 437}, {"file_name": "ADE_train_00001716.jpg", "width": 500, "id": 1715, "height": 374}, {"file_name": "ADE_train_00001717.jpg", "width": 300, "id": 1716, "height": 225}, {"file_name": "ADE_train_00001718.jpg", "width": 350, "id": 1717, "height": 276}, {"file_name": "ADE_train_00001719.jpg", "width": 204, "id": 1718, "height": 272}, {"file_name": "ADE_train_00001720.jpg", "width": 308, "id": 1719, "height": 231}, {"file_name": "ADE_train_00001721.jpg", "width": 411, "id": 1720, "height": 248}, {"file_name": "ADE_train_00001722.jpg", "width": 750, "id": 1721, "height": 379}, {"file_name": "ADE_train_00001723.jpg", "width": 238, "id": 1722, "height": 352}, {"file_name": "ADE_train_00001724.jpg", "width": 650, "id": 1723, "height": 492}, {"file_name": "ADE_train_00001725.jpg", "width": 500, "id": 1724, "height": 375}, {"file_name": "ADE_train_00001726.jpg", "width": 249, "id": 1725, "height": 333}, {"file_name": "ADE_train_00001727.jpg", "width": 300, "id": 1726, "height": 200}, {"file_name": "ADE_train_00001728.jpg", "width": 320, "id": 1727, "height": 205}, {"file_name": "ADE_train_00001729.jpg", "width": 400, "id": 1728, "height": 300}, {"file_name": "ADE_train_00001730.jpg", "width": 260, "id": 1729, "height": 256}, {"file_name": "ADE_train_00001731.jpg", "width": 300, "id": 1730, "height": 201}, {"file_name": "ADE_train_00001732.jpg", "width": 512, "id": 1731, "height": 568}, {"file_name": "ADE_train_00001733.jpg", "width": 200, "id": 1732, "height": 200}, {"file_name": "ADE_train_00001734.jpg", "width": 340, "id": 1733, "height": 226}, {"file_name": "ADE_train_00001735.jpg", "width": 500, "id": 1734, "height": 324}, {"file_name": "ADE_train_00001736.jpg", "width": 768, "id": 1735, "height": 512}, {"file_name": "ADE_train_00001737.jpg", "width": 400, "id": 1736, "height": 269}, {"file_name": "ADE_train_00001738.jpg", "width": 504, "id": 1737, "height": 375}, {"file_name": "ADE_train_00001739.jpg", "width": 400, "id": 1738, "height": 300}, {"file_name": "ADE_train_00001740.jpg", "width": 764, "id": 1739, "height": 512}, {"file_name": "ADE_train_00001741.jpg", "width": 683, "id": 1740, "height": 512}, {"file_name": "ADE_train_00001742.jpg", "width": 478, "id": 1741, "height": 311}, {"file_name": "ADE_train_00001743.jpg", "width": 250, "id": 1742, "height": 250}, {"file_name": "ADE_train_00001744.jpg", "width": 249, "id": 1743, "height": 313}, {"file_name": "ADE_train_00001745.jpg", "width": 397, "id": 1744, "height": 265}, {"file_name": "ADE_train_00001746.jpg", "width": 612, "id": 1745, "height": 475}, {"file_name": "ADE_train_00001747.jpg", "width": 200, "id": 1746, "height": 247}, {"file_name": "ADE_train_00001748.jpg", "width": 614, "id": 1747, "height": 461}, {"file_name": "ADE_train_00001749.jpg", "width": 278, "id": 1748, "height": 209}, {"file_name": "ADE_train_00001750.jpg", "width": 375, "id": 1749, "height": 500}, {"file_name": "ADE_train_00001751.jpg", "width": 320, "id": 1750, "height": 215}, {"file_name": "ADE_train_00001752.jpg", "width": 256, "id": 1751, "height": 256}, {"file_name": "ADE_train_00001753.jpg", "width": 450, "id": 1752, "height": 300}, {"file_name": "ADE_train_00001754.jpg", "width": 300, "id": 1753, "height": 225}, {"file_name": "ADE_train_00001755.jpg", "width": 300, "id": 1754, "height": 296}, {"file_name": "ADE_train_00001756.jpg", "width": 200, "id": 1755, "height": 322}, {"file_name": "ADE_train_00001757.jpg", "width": 432, "id": 1756, "height": 318}, {"file_name": "ADE_train_00001758.jpg", "width": 453, "id": 1757, "height": 343}, {"file_name": "ADE_train_00001759.jpg", "width": 425, "id": 1758, "height": 281}, {"file_name": "ADE_train_00001760.jpg", "width": 400, "id": 1759, "height": 291}, {"file_name": "ADE_train_00001761.jpg", "width": 600, "id": 1760, "height": 398}, {"file_name": "ADE_train_00001762.jpg", "width": 200, "id": 1761, "height": 321}, {"file_name": "ADE_train_00001763.jpg", "width": 270, "id": 1762, "height": 300}, {"file_name": "ADE_train_00001764.jpg", "width": 512, "id": 1763, "height": 768}, {"file_name": "ADE_train_00001765.jpg", "width": 400, "id": 1764, "height": 209}, {"file_name": "ADE_train_00001766.jpg", "width": 276, "id": 1765, "height": 410}, {"file_name": "ADE_train_00001767.jpg", "width": 320, "id": 1766, "height": 240}, {"file_name": "ADE_train_00001768.jpg", "width": 683, "id": 1767, "height": 512}, {"file_name": "ADE_train_00001769.jpg", "width": 546, "id": 1768, "height": 464}, {"file_name": "ADE_train_00001770.jpg", "width": 292, "id": 1769, "height": 210}, {"file_name": "ADE_train_00001771.jpg", "width": 375, "id": 1770, "height": 278}, {"file_name": "ADE_train_00001772.jpg", "width": 432, "id": 1771, "height": 360}, {"file_name": "ADE_train_00001773.jpg", "width": 441, "id": 1772, "height": 293}, {"file_name": "ADE_train_00001774.jpg", "width": 311, "id": 1773, "height": 202}, {"file_name": "ADE_train_00001775.jpg", "width": 586, "id": 1774, "height": 391}, {"file_name": "ADE_train_00001776.jpg", "width": 256, "id": 1775, "height": 256}, {"file_name": "ADE_train_00001777.jpg", "width": 450, "id": 1776, "height": 338}, {"file_name": "ADE_train_00001778.jpg", "width": 350, "id": 1777, "height": 263}, {"file_name": "ADE_train_00001779.jpg", "width": 200, "id": 1778, "height": 200}, {"file_name": "ADE_train_00001780.jpg", "width": 247, "id": 1779, "height": 325}, {"file_name": "ADE_train_00001781.jpg", "width": 250, "id": 1780, "height": 248}, {"file_name": "ADE_train_00001782.jpg", "width": 430, "id": 1781, "height": 360}, {"file_name": "ADE_train_00001783.jpg", "width": 486, "id": 1782, "height": 648}, {"file_name": "ADE_train_00001784.jpg", "width": 512, "id": 1783, "height": 759}, {"file_name": "ADE_train_00001785.jpg", "width": 771, "id": 1784, "height": 512}, {"file_name": "ADE_train_00001786.jpg", "width": 683, "id": 1785, "height": 512}, {"file_name": "ADE_train_00001787.jpg", "width": 512, "id": 1786, "height": 768}, {"file_name": "ADE_train_00001788.jpg", "width": 320, "id": 1787, "height": 213}, {"file_name": "ADE_train_00001789.jpg", "width": 683, "id": 1788, "height": 512}, {"file_name": "ADE_train_00001790.jpg", "width": 683, "id": 1789, "height": 512}, {"file_name": "ADE_train_00001791.jpg", "width": 683, "id": 1790, "height": 512}, {"file_name": "ADE_train_00001792.jpg", "width": 683, "id": 1791, "height": 512}, {"file_name": "ADE_train_00001793.jpg", "width": 345, "id": 1792, "height": 259}, {"file_name": "ADE_train_00001794.jpg", "width": 683, "id": 1793, "height": 512}, {"file_name": "ADE_train_00001795.jpg", "width": 1230, "id": 1794, "height": 512}, {"file_name": "ADE_train_00001796.jpg", "width": 634, "id": 1795, "height": 512}, {"file_name": "ADE_train_00001797.jpg", "width": 771, "id": 1796, "height": 512}, {"file_name": "ADE_train_00001798.jpg", "width": 683, "id": 1797, "height": 512}, {"file_name": "ADE_train_00001799.jpg", "width": 683, "id": 1798, "height": 512}, {"file_name": "ADE_train_00001800.jpg", "width": 512, "id": 1799, "height": 683}, {"file_name": "ADE_train_00001801.jpg", "width": 910, "id": 1800, "height": 512}, {"file_name": "ADE_train_00001802.jpg", "width": 770, "id": 1801, "height": 512}, {"file_name": "ADE_train_00001803.jpg", "width": 320, "id": 1802, "height": 240}, {"file_name": "ADE_train_00001804.jpg", "width": 768, "id": 1803, "height": 512}, {"file_name": "ADE_train_00001805.jpg", "width": 720, "id": 1804, "height": 432}, {"file_name": "ADE_train_00001806.jpg", "width": 731, "id": 1805, "height": 512}, {"file_name": "ADE_train_00001807.jpg", "width": 767, "id": 1806, "height": 512}, {"file_name": "ADE_train_00001808.jpg", "width": 400, "id": 1807, "height": 300}, {"file_name": "ADE_train_00001809.jpg", "width": 320, "id": 1808, "height": 213}, {"file_name": "ADE_train_00001810.jpg", "width": 675, "id": 1809, "height": 512}, {"file_name": "ADE_train_00001811.jpg", "width": 505, "id": 1810, "height": 379}, {"file_name": "ADE_train_00001812.jpg", "width": 512, "id": 1811, "height": 683}, {"file_name": "ADE_train_00001813.jpg", "width": 768, "id": 1812, "height": 512}, {"file_name": "ADE_train_00001814.jpg", "width": 430, "id": 1813, "height": 390}, {"file_name": "ADE_train_00001815.jpg", "width": 320, "id": 1814, "height": 214}, {"file_name": "ADE_train_00001816.jpg", "width": 683, "id": 1815, "height": 512}, {"file_name": "ADE_train_00001817.jpg", "width": 600, "id": 1816, "height": 511}, {"file_name": "ADE_train_00001818.jpg", "width": 614, "id": 1817, "height": 409}, {"file_name": "ADE_train_00001819.jpg", "width": 683, "id": 1818, "height": 512}, {"file_name": "ADE_train_00001820.jpg", "width": 550, "id": 1819, "height": 300}, {"file_name": "ADE_train_00001821.jpg", "width": 620, "id": 1820, "height": 428}, {"file_name": "ADE_train_00001822.jpg", "width": 480, "id": 1821, "height": 320}, {"file_name": "ADE_train_00001823.jpg", "width": 768, "id": 1822, "height": 512}, {"file_name": "ADE_train_00001824.jpg", "width": 640, "id": 1823, "height": 480}, {"file_name": "ADE_train_00001825.jpg", "width": 330, "id": 1824, "height": 498}, {"file_name": "ADE_train_00001826.jpg", "width": 300, "id": 1825, "height": 199}, {"file_name": "ADE_train_00001827.jpg", "width": 250, "id": 1826, "height": 188}, {"file_name": "ADE_train_00001828.jpg", "width": 683, "id": 1827, "height": 512}, {"file_name": "ADE_train_00001829.jpg", "width": 625, "id": 1828, "height": 417}, {"file_name": "ADE_train_00001830.jpg", "width": 720, "id": 1829, "height": 432}, {"file_name": "ADE_train_00001831.jpg", "width": 400, "id": 1830, "height": 300}, {"file_name": "ADE_train_00001832.jpg", "width": 340, "id": 1831, "height": 244}, {"file_name": "ADE_train_00001833.jpg", "width": 320, "id": 1832, "height": 240}, {"file_name": "ADE_train_00001834.jpg", "width": 620, "id": 1833, "height": 413}, {"file_name": "ADE_train_00001835.jpg", "width": 560, "id": 1834, "height": 420}, {"file_name": "ADE_train_00001836.jpg", "width": 512, "id": 1835, "height": 683}, {"file_name": "ADE_train_00001837.jpg", "width": 345, "id": 1836, "height": 230}, {"file_name": "ADE_train_00001838.jpg", "width": 448, "id": 1837, "height": 336}, {"file_name": "ADE_train_00001839.jpg", "width": 400, "id": 1838, "height": 268}, {"file_name": "ADE_train_00001840.jpg", "width": 360, "id": 1839, "height": 260}, {"file_name": "ADE_train_00001841.jpg", "width": 425, "id": 1840, "height": 638}, {"file_name": "ADE_train_00001842.jpg", "width": 594, "id": 1841, "height": 392}, {"file_name": "ADE_train_00001843.jpg", "width": 400, "id": 1842, "height": 327}, {"file_name": "ADE_train_00001844.jpg", "width": 320, "id": 1843, "height": 240}, {"file_name": "ADE_train_00001845.jpg", "width": 640, "id": 1844, "height": 480}, {"file_name": "ADE_train_00001846.jpg", "width": 767, "id": 1845, "height": 512}, {"file_name": "ADE_train_00001847.jpg", "width": 500, "id": 1846, "height": 375}, {"file_name": "ADE_train_00001848.jpg", "width": 676, "id": 1847, "height": 512}, {"file_name": "ADE_train_00001849.jpg", "width": 572, "id": 1848, "height": 380}, {"file_name": "ADE_train_00001850.jpg", "width": 384, "id": 1849, "height": 254}, {"file_name": "ADE_train_00001851.jpg", "width": 828, "id": 1850, "height": 512}, {"file_name": "ADE_train_00001852.jpg", "width": 600, "id": 1851, "height": 402}, {"file_name": "ADE_train_00001853.jpg", "width": 650, "id": 1852, "height": 488}, {"file_name": "ADE_train_00001854.jpg", "width": 280, "id": 1853, "height": 210}, {"file_name": "ADE_train_00001855.jpg", "width": 280, "id": 1854, "height": 210}, {"file_name": "ADE_train_00001856.jpg", "width": 399, "id": 1855, "height": 300}, {"file_name": "ADE_train_00001857.jpg", "width": 771, "id": 1856, "height": 512}, {"file_name": "ADE_train_00001858.jpg", "width": 384, "id": 1857, "height": 256}, {"file_name": "ADE_train_00001859.jpg", "width": 384, "id": 1858, "height": 256}, {"file_name": "ADE_train_00001860.jpg", "width": 811, "id": 1859, "height": 512}, {"file_name": "ADE_train_00001861.jpg", "width": 765, "id": 1860, "height": 512}, {"file_name": "ADE_train_00001862.jpg", "width": 400, "id": 1861, "height": 400}, {"file_name": "ADE_train_00001863.jpg", "width": 200, "id": 1862, "height": 300}, {"file_name": "ADE_train_00001864.jpg", "width": 333, "id": 1863, "height": 500}, {"file_name": "ADE_train_00001865.jpg", "width": 400, "id": 1864, "height": 296}, {"file_name": "ADE_train_00001866.jpg", "width": 760, "id": 1865, "height": 375}, {"file_name": "ADE_train_00001867.jpg", "width": 432, "id": 1866, "height": 289}, {"file_name": "ADE_train_00001868.jpg", "width": 512, "id": 1867, "height": 683}, {"file_name": "ADE_train_00001869.jpg", "width": 765, "id": 1868, "height": 512}, {"file_name": "ADE_train_00001870.jpg", "width": 651, "id": 1869, "height": 512}, {"file_name": "ADE_train_00001871.jpg", "width": 512, "id": 1870, "height": 611}, {"file_name": "ADE_train_00001872.jpg", "width": 640, "id": 1871, "height": 480}, {"file_name": "ADE_train_00001873.jpg", "width": 375, "id": 1872, "height": 484}, {"file_name": "ADE_train_00001874.jpg", "width": 708, "id": 1873, "height": 512}, {"file_name": "ADE_train_00001875.jpg", "width": 512, "id": 1874, "height": 683}, {"file_name": "ADE_train_00001876.jpg", "width": 512, "id": 1875, "height": 747}, {"file_name": "ADE_train_00001877.jpg", "width": 250, "id": 1876, "height": 337}, {"file_name": "ADE_train_00001878.jpg", "width": 512, "id": 1877, "height": 762}, {"file_name": "ADE_train_00001879.jpg", "width": 785, "id": 1878, "height": 512}, {"file_name": "ADE_train_00001880.jpg", "width": 786, "id": 1879, "height": 512}, {"file_name": "ADE_train_00001881.jpg", "width": 265, "id": 1880, "height": 339}, {"file_name": "ADE_train_00001882.jpg", "width": 300, "id": 1881, "height": 257}, {"file_name": "ADE_train_00001883.jpg", "width": 681, "id": 1882, "height": 512}, {"file_name": "ADE_train_00001884.jpg", "width": 768, "id": 1883, "height": 512}, {"file_name": "ADE_train_00001885.jpg", "width": 683, "id": 1884, "height": 512}, {"file_name": "ADE_train_00001886.jpg", "width": 300, "id": 1885, "height": 300}, {"file_name": "ADE_train_00001887.jpg", "width": 683, "id": 1886, "height": 512}, {"file_name": "ADE_train_00001888.jpg", "width": 683, "id": 1887, "height": 512}, {"file_name": "ADE_train_00001889.jpg", "width": 320, "id": 1888, "height": 240}, {"file_name": "ADE_train_00001890.jpg", "width": 683, "id": 1889, "height": 512}, {"file_name": "ADE_train_00001891.jpg", "width": 354, "id": 1890, "height": 486}, {"file_name": "ADE_train_00001892.jpg", "width": 260, "id": 1891, "height": 320}, {"file_name": "ADE_train_00001893.jpg", "width": 320, "id": 1892, "height": 240}, {"file_name": "ADE_train_00001894.jpg", "width": 399, "id": 1893, "height": 270}, {"file_name": "ADE_train_00001895.jpg", "width": 370, "id": 1894, "height": 238}, {"file_name": "ADE_train_00001896.jpg", "width": 512, "id": 1895, "height": 683}, {"file_name": "ADE_train_00001897.jpg", "width": 267, "id": 1896, "height": 331}, {"file_name": "ADE_train_00001898.jpg", "width": 683, "id": 1897, "height": 512}, {"file_name": "ADE_train_00001899.jpg", "width": 512, "id": 1898, "height": 683}, {"file_name": "ADE_train_00001900.jpg", "width": 683, "id": 1899, "height": 512}, {"file_name": "ADE_train_00001901.jpg", "width": 683, "id": 1900, "height": 512}, {"file_name": "ADE_train_00001902.jpg", "width": 350, "id": 1901, "height": 250}, {"file_name": "ADE_train_00001903.jpg", "width": 683, "id": 1902, "height": 512}, {"file_name": "ADE_train_00001904.jpg", "width": 683, "id": 1903, "height": 512}, {"file_name": "ADE_train_00001905.jpg", "width": 683, "id": 1904, "height": 512}, {"file_name": "ADE_train_00001906.jpg", "width": 350, "id": 1905, "height": 233}, {"file_name": "ADE_train_00001907.jpg", "width": 432, "id": 1906, "height": 317}, {"file_name": "ADE_train_00001908.jpg", "width": 512, "id": 1907, "height": 683}, {"file_name": "ADE_train_00001909.jpg", "width": 320, "id": 1908, "height": 240}, {"file_name": "ADE_train_00001910.jpg", "width": 683, "id": 1909, "height": 512}, {"file_name": "ADE_train_00001911.jpg", "width": 300, "id": 1910, "height": 225}, {"file_name": "ADE_train_00001912.jpg", "width": 683, "id": 1911, "height": 512}, {"file_name": "ADE_train_00001913.jpg", "width": 320, "id": 1912, "height": 240}, {"file_name": "ADE_train_00001914.jpg", "width": 280, "id": 1913, "height": 210}, {"file_name": "ADE_train_00001915.jpg", "width": 300, "id": 1914, "height": 248}, {"file_name": "ADE_train_00001916.jpg", "width": 600, "id": 1915, "height": 450}, {"file_name": "ADE_train_00001917.jpg", "width": 773, "id": 1916, "height": 512}, {"file_name": "ADE_train_00001918.jpg", "width": 790, "id": 1917, "height": 512}, {"file_name": "ADE_train_00001919.jpg", "width": 683, "id": 1918, "height": 512}, {"file_name": "ADE_train_00001920.jpg", "width": 683, "id": 1919, "height": 512}, {"file_name": "ADE_train_00001921.jpg", "width": 736, "id": 1920, "height": 512}, {"file_name": "ADE_train_00001922.jpg", "width": 313, "id": 1921, "height": 236}, {"file_name": "ADE_train_00001923.jpg", "width": 378, "id": 1922, "height": 252}, {"file_name": "ADE_train_00001924.jpg", "width": 640, "id": 1923, "height": 512}, {"file_name": "ADE_train_00001925.jpg", "width": 683, "id": 1924, "height": 512}, {"file_name": "ADE_train_00001926.jpg", "width": 300, "id": 1925, "height": 300}, {"file_name": "ADE_train_00001927.jpg", "width": 768, "id": 1926, "height": 512}, {"file_name": "ADE_train_00001928.jpg", "width": 512, "id": 1927, "height": 683}, {"file_name": "ADE_train_00001929.jpg", "width": 350, "id": 1928, "height": 232}, {"file_name": "ADE_train_00001930.jpg", "width": 683, "id": 1929, "height": 512}, {"file_name": "ADE_train_00001931.jpg", "width": 284, "id": 1930, "height": 250}, {"file_name": "ADE_train_00001932.jpg", "width": 400, "id": 1931, "height": 266}, {"file_name": "ADE_train_00001933.jpg", "width": 512, "id": 1932, "height": 683}, {"file_name": "ADE_train_00001934.jpg", "width": 295, "id": 1933, "height": 250}, {"file_name": "ADE_train_00001935.jpg", "width": 683, "id": 1934, "height": 512}, {"file_name": "ADE_train_00001936.jpg", "width": 768, "id": 1935, "height": 512}, {"file_name": "ADE_train_00001937.jpg", "width": 330, "id": 1936, "height": 247}, {"file_name": "ADE_train_00001938.jpg", "width": 692, "id": 1937, "height": 512}, {"file_name": "ADE_train_00001939.jpg", "width": 683, "id": 1938, "height": 512}, {"file_name": "ADE_train_00001940.jpg", "width": 683, "id": 1939, "height": 512}, {"file_name": "ADE_train_00001941.jpg", "width": 819, "id": 1940, "height": 512}, {"file_name": "ADE_train_00001942.jpg", "width": 790, "id": 1941, "height": 512}, {"file_name": "ADE_train_00001943.jpg", "width": 440, "id": 1942, "height": 330}, {"file_name": "ADE_train_00001944.jpg", "width": 432, "id": 1943, "height": 288}, {"file_name": "ADE_train_00001945.jpg", "width": 323, "id": 1944, "height": 242}, {"file_name": "ADE_train_00001946.jpg", "width": 320, "id": 1945, "height": 240}, {"file_name": "ADE_train_00001947.jpg", "width": 330, "id": 1946, "height": 247}, {"file_name": "ADE_train_00001948.jpg", "width": 350, "id": 1947, "height": 572}, {"file_name": "ADE_train_00001949.jpg", "width": 683, "id": 1948, "height": 512}, {"file_name": "ADE_train_00001950.jpg", "width": 683, "id": 1949, "height": 512}, {"file_name": "ADE_train_00001951.jpg", "width": 681, "id": 1950, "height": 512}, {"file_name": "ADE_train_00001952.jpg", "width": 683, "id": 1951, "height": 512}, {"file_name": "ADE_train_00001953.jpg", "width": 768, "id": 1952, "height": 512}, {"file_name": "ADE_train_00001954.jpg", "width": 683, "id": 1953, "height": 512}, {"file_name": "ADE_train_00001955.jpg", "width": 683, "id": 1954, "height": 512}, {"file_name": "ADE_train_00001956.jpg", "width": 683, "id": 1955, "height": 512}, {"file_name": "ADE_train_00001957.jpg", "width": 683, "id": 1956, "height": 512}, {"file_name": "ADE_train_00001958.jpg", "width": 683, "id": 1957, "height": 512}, {"file_name": "ADE_train_00001959.jpg", "width": 512, "id": 1958, "height": 683}, {"file_name": "ADE_train_00001960.jpg", "width": 765, "id": 1959, "height": 512}, {"file_name": "ADE_train_00001961.jpg", "width": 757, "id": 1960, "height": 512}, {"file_name": "ADE_train_00001962.jpg", "width": 683, "id": 1961, "height": 512}, {"file_name": "ADE_train_00001963.jpg", "width": 683, "id": 1962, "height": 512}, {"file_name": "ADE_train_00001964.jpg", "width": 699, "id": 1963, "height": 512}, {"file_name": "ADE_train_00001965.jpg", "width": 683, "id": 1964, "height": 512}, {"file_name": "ADE_train_00001966.jpg", "width": 683, "id": 1965, "height": 512}, {"file_name": "ADE_train_00001967.jpg", "width": 600, "id": 1966, "height": 400}, {"file_name": "ADE_train_00001968.jpg", "width": 683, "id": 1967, "height": 512}, {"file_name": "ADE_train_00001969.jpg", "width": 512, "id": 1968, "height": 765}, {"file_name": "ADE_train_00001970.jpg", "width": 854, "id": 1969, "height": 512}, {"file_name": "ADE_train_00001971.jpg", "width": 683, "id": 1970, "height": 512}, {"file_name": "ADE_train_00001972.jpg", "width": 683, "id": 1971, "height": 512}, {"file_name": "ADE_train_00001973.jpg", "width": 351, "id": 1972, "height": 250}, {"file_name": "ADE_train_00001974.jpg", "width": 771, "id": 1973, "height": 512}, {"file_name": "ADE_train_00001975.jpg", "width": 507, "id": 1974, "height": 338}, {"file_name": "ADE_train_00001976.jpg", "width": 565, "id": 1975, "height": 316}, {"file_name": "ADE_train_00001977.jpg", "width": 330, "id": 1976, "height": 248}, {"file_name": "ADE_train_00001978.jpg", "width": 683, "id": 1977, "height": 512}, {"file_name": "ADE_train_00001979.jpg", "width": 700, "id": 1978, "height": 467}, {"file_name": "ADE_train_00001980.jpg", "width": 770, "id": 1979, "height": 512}, {"file_name": "ADE_train_00001981.jpg", "width": 300, "id": 1980, "height": 225}, {"file_name": "ADE_train_00001982.jpg", "width": 333, "id": 1981, "height": 250}, {"file_name": "ADE_train_00001983.jpg", "width": 250, "id": 1982, "height": 300}, {"file_name": "ADE_train_00001984.jpg", "width": 448, "id": 1983, "height": 336}, {"file_name": "ADE_train_00001985.jpg", "width": 768, "id": 1984, "height": 512}, {"file_name": "ADE_train_00001986.jpg", "width": 500, "id": 1985, "height": 331}, {"file_name": "ADE_train_00001987.jpg", "width": 570, "id": 1986, "height": 427}, {"file_name": "ADE_train_00001988.jpg", "width": 750, "id": 1987, "height": 500}, {"file_name": "ADE_train_00001989.jpg", "width": 340, "id": 1988, "height": 227}, {"file_name": "ADE_train_00001990.jpg", "width": 400, "id": 1989, "height": 301}, {"file_name": "ADE_train_00001991.jpg", "width": 445, "id": 1990, "height": 296}, {"file_name": "ADE_train_00001992.jpg", "width": 731, "id": 1991, "height": 512}, {"file_name": "ADE_train_00001993.jpg", "width": 400, "id": 1992, "height": 300}, {"file_name": "ADE_train_00001994.jpg", "width": 683, "id": 1993, "height": 512}, {"file_name": "ADE_train_00001995.jpg", "width": 600, "id": 1994, "height": 450}, {"file_name": "ADE_train_00001996.jpg", "width": 448, "id": 1995, "height": 336}, {"file_name": "ADE_train_00001997.jpg", "width": 770, "id": 1996, "height": 512}, {"file_name": "ADE_train_00001998.jpg", "width": 768, "id": 1997, "height": 512}, {"file_name": "ADE_train_00001999.jpg", "width": 683, "id": 1998, "height": 512}, {"file_name": "ADE_train_00002000.jpg", "width": 572, "id": 1999, "height": 375}, {"file_name": "ADE_train_00002001.jpg", "width": 684, "id": 2000, "height": 512}, {"file_name": "ADE_train_00002002.jpg", "width": 683, "id": 2001, "height": 512}, {"file_name": "ADE_train_00002003.jpg", "width": 500, "id": 2002, "height": 375}, {"file_name": "ADE_train_00002004.jpg", "width": 827, "id": 2003, "height": 512}, {"file_name": "ADE_train_00002005.jpg", "width": 541, "id": 2004, "height": 360}, {"file_name": "ADE_train_00002006.jpg", "width": 766, "id": 2005, "height": 512}, {"file_name": "ADE_train_00002007.jpg", "width": 683, "id": 2006, "height": 512}, {"file_name": "ADE_train_00002008.jpg", "width": 325, "id": 2007, "height": 245}, {"file_name": "ADE_train_00002009.jpg", "width": 419, "id": 2008, "height": 350}, {"file_name": "ADE_train_00002010.jpg", "width": 400, "id": 2009, "height": 247}, {"file_name": "ADE_train_00002011.jpg", "width": 594, "id": 2010, "height": 328}, {"file_name": "ADE_train_00002012.jpg", "width": 240, "id": 2011, "height": 180}, {"file_name": "ADE_train_00002013.jpg", "width": 300, "id": 2012, "height": 200}, {"file_name": "ADE_train_00002014.jpg", "width": 440, "id": 2013, "height": 507}, {"file_name": "ADE_train_00002015.jpg", "width": 683, "id": 2014, "height": 512}, {"file_name": "ADE_train_00002016.jpg", "width": 350, "id": 2015, "height": 263}, {"file_name": "ADE_train_00002017.jpg", "width": 600, "id": 2016, "height": 457}, {"file_name": "ADE_train_00002018.jpg", "width": 375, "id": 2017, "height": 249}, {"file_name": "ADE_train_00002019.jpg", "width": 751, "id": 2018, "height": 512}, {"file_name": "ADE_train_00002020.jpg", "width": 734, "id": 2019, "height": 512}, {"file_name": "ADE_train_00002021.jpg", "width": 300, "id": 2020, "height": 400}, {"file_name": "ADE_train_00002022.jpg", "width": 448, "id": 2021, "height": 336}, {"file_name": "ADE_train_00002023.jpg", "width": 320, "id": 2022, "height": 240}, {"file_name": "ADE_train_00002024.jpg", "width": 683, "id": 2023, "height": 512}, {"file_name": "ADE_train_00002025.jpg", "width": 320, "id": 2024, "height": 240}, {"file_name": "ADE_train_00002026.jpg", "width": 200, "id": 2025, "height": 200}, {"file_name": "ADE_train_00002027.jpg", "width": 277, "id": 2026, "height": 280}, {"file_name": "ADE_train_00002028.jpg", "width": 683, "id": 2027, "height": 512}, {"file_name": "ADE_train_00002029.jpg", "width": 640, "id": 2028, "height": 480}, {"file_name": "ADE_train_00002030.jpg", "width": 340, "id": 2029, "height": 225}, {"file_name": "ADE_train_00002031.jpg", "width": 689, "id": 2030, "height": 512}, {"file_name": "ADE_train_00002032.jpg", "width": 683, "id": 2031, "height": 512}, {"file_name": "ADE_train_00002033.jpg", "width": 683, "id": 2032, "height": 512}, {"file_name": "ADE_train_00002034.jpg", "width": 770, "id": 2033, "height": 512}, {"file_name": "ADE_train_00002035.jpg", "width": 682, "id": 2034, "height": 512}, {"file_name": "ADE_train_00002036.jpg", "width": 360, "id": 2035, "height": 235}, {"file_name": "ADE_train_00002037.jpg", "width": 683, "id": 2036, "height": 512}, {"file_name": "ADE_train_00002038.jpg", "width": 450, "id": 2037, "height": 313}, {"file_name": "ADE_train_00002039.jpg", "width": 683, "id": 2038, "height": 512}, {"file_name": "ADE_train_00002040.jpg", "width": 512, "id": 2039, "height": 822}, {"file_name": "ADE_train_00002041.jpg", "width": 719, "id": 2040, "height": 512}, {"file_name": "ADE_train_00002042.jpg", "width": 1348, "id": 2041, "height": 512}, {"file_name": "ADE_train_00002043.jpg", "width": 432, "id": 2042, "height": 347}, {"file_name": "ADE_train_00002044.jpg", "width": 576, "id": 2043, "height": 432}, {"file_name": "ADE_train_00002045.jpg", "width": 461, "id": 2044, "height": 307}, {"file_name": "ADE_train_00002046.jpg", "width": 600, "id": 2045, "height": 450}, {"file_name": "ADE_train_00002047.jpg", "width": 683, "id": 2046, "height": 512}, {"file_name": "ADE_train_00002048.jpg", "width": 768, "id": 2047, "height": 512}, {"file_name": "ADE_train_00002049.jpg", "width": 683, "id": 2048, "height": 512}, {"file_name": "ADE_train_00002050.jpg", "width": 703, "id": 2049, "height": 512}, {"file_name": "ADE_train_00002051.jpg", "width": 300, "id": 2050, "height": 218}, {"file_name": "ADE_train_00002052.jpg", "width": 683, "id": 2051, "height": 512}, {"file_name": "ADE_train_00002053.jpg", "width": 683, "id": 2052, "height": 512}, {"file_name": "ADE_train_00002054.jpg", "width": 683, "id": 2053, "height": 512}, {"file_name": "ADE_train_00002055.jpg", "width": 765, "id": 2054, "height": 512}, {"file_name": "ADE_train_00002056.jpg", "width": 683, "id": 2055, "height": 512}, {"file_name": "ADE_train_00002057.jpg", "width": 683, "id": 2056, "height": 512}, {"file_name": "ADE_train_00002058.jpg", "width": 790, "id": 2057, "height": 512}, {"file_name": "ADE_train_00002059.jpg", "width": 683, "id": 2058, "height": 512}, {"file_name": "ADE_train_00002060.jpg", "width": 407, "id": 2059, "height": 209}, {"file_name": "ADE_train_00002061.jpg", "width": 683, "id": 2060, "height": 512}, {"file_name": "ADE_train_00002062.jpg", "width": 683, "id": 2061, "height": 512}, {"file_name": "ADE_train_00002063.jpg", "width": 504, "id": 2062, "height": 336}, {"file_name": "ADE_train_00002064.jpg", "width": 400, "id": 2063, "height": 300}, {"file_name": "ADE_train_00002065.jpg", "width": 683, "id": 2064, "height": 512}, {"file_name": "ADE_train_00002066.jpg", "width": 630, "id": 2065, "height": 473}, {"file_name": "ADE_train_00002067.jpg", "width": 450, "id": 2066, "height": 288}, {"file_name": "ADE_train_00002068.jpg", "width": 683, "id": 2067, "height": 512}, {"file_name": "ADE_train_00002069.jpg", "width": 564, "id": 2068, "height": 374}, {"file_name": "ADE_train_00002070.jpg", "width": 477, "id": 2069, "height": 720}, {"file_name": "ADE_train_00002071.jpg", "width": 512, "id": 2070, "height": 683}, {"file_name": "ADE_train_00002072.jpg", "width": 450, "id": 2071, "height": 600}, {"file_name": "ADE_train_00002073.jpg", "width": 477, "id": 2072, "height": 720}, {"file_name": "ADE_train_00002074.jpg", "width": 240, "id": 2073, "height": 320}, {"file_name": "ADE_train_00002075.jpg", "width": 375, "id": 2074, "height": 500}, {"file_name": "ADE_train_00002076.jpg", "width": 256, "id": 2075, "height": 256}, {"file_name": "ADE_train_00002077.jpg", "width": 589, "id": 2076, "height": 383}, {"file_name": "ADE_train_00002078.jpg", "width": 683, "id": 2077, "height": 512}, {"file_name": "ADE_train_00002079.jpg", "width": 683, "id": 2078, "height": 512}, {"file_name": "ADE_train_00002080.jpg", "width": 683, "id": 2079, "height": 512}, {"file_name": "ADE_train_00002081.jpg", "width": 683, "id": 2080, "height": 512}, {"file_name": "ADE_train_00002082.jpg", "width": 683, "id": 2081, "height": 512}, {"file_name": "ADE_train_00002083.jpg", "width": 512, "id": 2082, "height": 759}, {"file_name": "ADE_train_00002084.jpg", "width": 768, "id": 2083, "height": 512}, {"file_name": "ADE_train_00002085.jpg", "width": 683, "id": 2084, "height": 512}, {"file_name": "ADE_train_00002086.jpg", "width": 762, "id": 2085, "height": 512}, {"file_name": "ADE_train_00002087.jpg", "width": 683, "id": 2086, "height": 512}, {"file_name": "ADE_train_00002088.jpg", "width": 717, "id": 2087, "height": 512}, {"file_name": "ADE_train_00002089.jpg", "width": 683, "id": 2088, "height": 512}, {"file_name": "ADE_train_00002090.jpg", "width": 769, "id": 2089, "height": 512}, {"file_name": "ADE_train_00002091.jpg", "width": 683, "id": 2090, "height": 512}, {"file_name": "ADE_train_00002092.jpg", "width": 683, "id": 2091, "height": 512}, {"file_name": "ADE_train_00002093.jpg", "width": 683, "id": 2092, "height": 512}, {"file_name": "ADE_train_00002094.jpg", "width": 768, "id": 2093, "height": 512}, {"file_name": "ADE_train_00002095.jpg", "width": 747, "id": 2094, "height": 512}, {"file_name": "ADE_train_00002096.jpg", "width": 683, "id": 2095, "height": 512}, {"file_name": "ADE_train_00002097.jpg", "width": 683, "id": 2096, "height": 512}, {"file_name": "ADE_train_00002098.jpg", "width": 600, "id": 2097, "height": 450}, {"file_name": "ADE_train_00002099.jpg", "width": 283, "id": 2098, "height": 378}, {"file_name": "ADE_train_00002100.jpg", "width": 400, "id": 2099, "height": 400}, {"file_name": "ADE_train_00002101.jpg", "width": 393, "id": 2100, "height": 295}, {"file_name": "ADE_train_00002102.jpg", "width": 683, "id": 2101, "height": 512}, {"file_name": "ADE_train_00002103.jpg", "width": 400, "id": 2102, "height": 400}, {"file_name": "ADE_train_00002104.jpg", "width": 500, "id": 2103, "height": 307}, {"file_name": "ADE_train_00002105.jpg", "width": 683, "id": 2104, "height": 512}, {"file_name": "ADE_train_00002106.jpg", "width": 300, "id": 2105, "height": 230}, {"file_name": "ADE_train_00002107.jpg", "width": 640, "id": 2106, "height": 480}, {"file_name": "ADE_train_00002108.jpg", "width": 350, "id": 2107, "height": 233}, {"file_name": "ADE_train_00002109.jpg", "width": 683, "id": 2108, "height": 512}, {"file_name": "ADE_train_00002110.jpg", "width": 290, "id": 2109, "height": 218}, {"file_name": "ADE_train_00002111.jpg", "width": 403, "id": 2110, "height": 284}, {"file_name": "ADE_train_00002112.jpg", "width": 683, "id": 2111, "height": 512}, {"file_name": "ADE_train_00002113.jpg", "width": 555, "id": 2112, "height": 512}, {"file_name": "ADE_train_00002114.jpg", "width": 367, "id": 2113, "height": 197}, {"file_name": "ADE_train_00002115.jpg", "width": 779, "id": 2114, "height": 512}, {"file_name": "ADE_train_00002116.jpg", "width": 275, "id": 2115, "height": 366}, {"file_name": "ADE_train_00002117.jpg", "width": 683, "id": 2116, "height": 512}, {"file_name": "ADE_train_00002118.jpg", "width": 512, "id": 2117, "height": 767}, {"file_name": "ADE_train_00002119.jpg", "width": 320, "id": 2118, "height": 240}, {"file_name": "ADE_train_00002120.jpg", "width": 400, "id": 2119, "height": 314}, {"file_name": "ADE_train_00002121.jpg", "width": 500, "id": 2120, "height": 375}, {"file_name": "ADE_train_00002122.jpg", "width": 683, "id": 2121, "height": 512}, {"file_name": "ADE_train_00002123.jpg", "width": 300, "id": 2122, "height": 225}, {"file_name": "ADE_train_00002124.jpg", "width": 500, "id": 2123, "height": 334}, {"file_name": "ADE_train_00002125.jpg", "width": 470, "id": 2124, "height": 346}, {"file_name": "ADE_train_00002126.jpg", "width": 500, "id": 2125, "height": 332}, {"file_name": "ADE_train_00002127.jpg", "width": 500, "id": 2126, "height": 375}, {"file_name": "ADE_train_00002128.jpg", "width": 446, "id": 2127, "height": 383}, {"file_name": "ADE_train_00002129.jpg", "width": 765, "id": 2128, "height": 512}, {"file_name": "ADE_train_00002130.jpg", "width": 600, "id": 2129, "height": 350}, {"file_name": "ADE_train_00002131.jpg", "width": 683, "id": 2130, "height": 512}, {"file_name": "ADE_train_00002132.jpg", "width": 876, "id": 2131, "height": 512}, {"file_name": "ADE_train_00002133.jpg", "width": 683, "id": 2132, "height": 512}, {"file_name": "ADE_train_00002134.jpg", "width": 739, "id": 2133, "height": 512}, {"file_name": "ADE_train_00002135.jpg", "width": 400, "id": 2134, "height": 400}, {"file_name": "ADE_train_00002136.jpg", "width": 485, "id": 2135, "height": 364}, {"file_name": "ADE_train_00002137.jpg", "width": 450, "id": 2136, "height": 292}, {"file_name": "ADE_train_00002138.jpg", "width": 683, "id": 2137, "height": 512}, {"file_name": "ADE_train_00002139.jpg", "width": 360, "id": 2138, "height": 270}, {"file_name": "ADE_train_00002140.jpg", "width": 210, "id": 2139, "height": 280}, {"file_name": "ADE_train_00002141.jpg", "width": 500, "id": 2140, "height": 375}, {"file_name": "ADE_train_00002142.jpg", "width": 648, "id": 2141, "height": 486}, {"file_name": "ADE_train_00002143.jpg", "width": 700, "id": 2142, "height": 466}, {"file_name": "ADE_train_00002144.jpg", "width": 600, "id": 2143, "height": 450}, {"file_name": "ADE_train_00002145.jpg", "width": 300, "id": 2144, "height": 225}, {"file_name": "ADE_train_00002146.jpg", "width": 560, "id": 2145, "height": 420}, {"file_name": "ADE_train_00002147.jpg", "width": 500, "id": 2146, "height": 375}, {"file_name": "ADE_train_00002148.jpg", "width": 338, "id": 2147, "height": 225}, {"file_name": "ADE_train_00002149.jpg", "width": 256, "id": 2148, "height": 256}, {"file_name": "ADE_train_00002150.jpg", "width": 500, "id": 2149, "height": 276}, {"file_name": "ADE_train_00002151.jpg", "width": 640, "id": 2150, "height": 480}, {"file_name": "ADE_train_00002152.jpg", "width": 500, "id": 2151, "height": 375}, {"file_name": "ADE_train_00002153.jpg", "width": 300, "id": 2152, "height": 200}, {"file_name": "ADE_train_00002154.jpg", "width": 500, "id": 2153, "height": 375}, {"file_name": "ADE_train_00002155.jpg", "width": 320, "id": 2154, "height": 213}, {"file_name": "ADE_train_00002156.jpg", "width": 500, "id": 2155, "height": 375}, {"file_name": "ADE_train_00002157.jpg", "width": 500, "id": 2156, "height": 336}, {"file_name": "ADE_train_00002158.jpg", "width": 256, "id": 2157, "height": 256}, {"file_name": "ADE_train_00002159.jpg", "width": 500, "id": 2158, "height": 375}, {"file_name": "ADE_train_00002160.jpg", "width": 600, "id": 2159, "height": 450}, {"file_name": "ADE_train_00002161.jpg", "width": 375, "id": 2160, "height": 500}, {"file_name": "ADE_train_00002162.jpg", "width": 500, "id": 2161, "height": 375}, {"file_name": "ADE_train_00002163.jpg", "width": 496, "id": 2162, "height": 372}, {"file_name": "ADE_train_00002164.jpg", "width": 500, "id": 2163, "height": 375}, {"file_name": "ADE_train_00002165.jpg", "width": 432, "id": 2164, "height": 282}, {"file_name": "ADE_train_00002166.jpg", "width": 500, "id": 2165, "height": 333}, {"file_name": "ADE_train_00002167.jpg", "width": 369, "id": 2166, "height": 360}, {"file_name": "ADE_train_00002168.jpg", "width": 640, "id": 2167, "height": 480}, {"file_name": "ADE_train_00002169.jpg", "width": 500, "id": 2168, "height": 333}, {"file_name": "ADE_train_00002170.jpg", "width": 500, "id": 2169, "height": 375}, {"file_name": "ADE_train_00002171.jpg", "width": 500, "id": 2170, "height": 335}, {"file_name": "ADE_train_00002172.jpg", "width": 500, "id": 2171, "height": 375}, {"file_name": "ADE_train_00002173.jpg", "width": 500, "id": 2172, "height": 375}, {"file_name": "ADE_train_00002174.jpg", "width": 500, "id": 2173, "height": 375}, {"file_name": "ADE_train_00002175.jpg", "width": 500, "id": 2174, "height": 375}, {"file_name": "ADE_train_00002176.jpg", "width": 440, "id": 2175, "height": 293}, {"file_name": "ADE_train_00002177.jpg", "width": 500, "id": 2176, "height": 375}, {"file_name": "ADE_train_00002178.jpg", "width": 470, "id": 2177, "height": 264}, {"file_name": "ADE_train_00002179.jpg", "width": 250, "id": 2178, "height": 239}, {"file_name": "ADE_train_00002180.jpg", "width": 420, "id": 2179, "height": 315}, {"file_name": "ADE_train_00002181.jpg", "width": 500, "id": 2180, "height": 333}, {"file_name": "ADE_train_00002182.jpg", "width": 500, "id": 2181, "height": 375}, {"file_name": "ADE_train_00002183.jpg", "width": 575, "id": 2182, "height": 403}, {"file_name": "ADE_train_00002184.jpg", "width": 500, "id": 2183, "height": 379}, {"file_name": "ADE_train_00002185.jpg", "width": 500, "id": 2184, "height": 375}, {"file_name": "ADE_train_00002186.jpg", "width": 256, "id": 2185, "height": 256}, {"file_name": "ADE_train_00002187.jpg", "width": 267, "id": 2186, "height": 200}, {"file_name": "ADE_train_00002188.jpg", "width": 500, "id": 2187, "height": 375}, {"file_name": "ADE_train_00002189.jpg", "width": 500, "id": 2188, "height": 375}, {"file_name": "ADE_train_00002190.jpg", "width": 370, "id": 2189, "height": 278}, {"file_name": "ADE_train_00002191.jpg", "width": 650, "id": 2190, "height": 486}, {"file_name": "ADE_train_00002192.jpg", "width": 500, "id": 2191, "height": 375}, {"file_name": "ADE_train_00002193.jpg", "width": 500, "id": 2192, "height": 375}, {"file_name": "ADE_train_00002194.jpg", "width": 500, "id": 2193, "height": 375}, {"file_name": "ADE_train_00002195.jpg", "width": 500, "id": 2194, "height": 375}, {"file_name": "ADE_train_00002196.jpg", "width": 500, "id": 2195, "height": 334}, {"file_name": "ADE_train_00002197.jpg", "width": 500, "id": 2196, "height": 375}, {"file_name": "ADE_train_00002198.jpg", "width": 281, "id": 2197, "height": 500}, {"file_name": "ADE_train_00002199.jpg", "width": 432, "id": 2198, "height": 282}, {"file_name": "ADE_train_00002200.jpg", "width": 500, "id": 2199, "height": 375}, {"file_name": "ADE_train_00002201.jpg", "width": 693, "id": 2200, "height": 512}, {"file_name": "ADE_train_00002202.jpg", "width": 354, "id": 2201, "height": 512}, {"file_name": "ADE_train_00002203.jpg", "width": 721, "id": 2202, "height": 512}, {"file_name": "ADE_train_00002204.jpg", "width": 287, "id": 2203, "height": 404}, {"file_name": "ADE_train_00002205.jpg", "width": 550, "id": 2204, "height": 323}, {"file_name": "ADE_train_00002206.jpg", "width": 430, "id": 2205, "height": 300}, {"file_name": "ADE_train_00002207.jpg", "width": 340, "id": 2206, "height": 230}, {"file_name": "ADE_train_00002208.jpg", "width": 595, "id": 2207, "height": 446}, {"file_name": "ADE_train_00002209.jpg", "width": 512, "id": 2208, "height": 639}, {"file_name": "ADE_train_00002210.jpg", "width": 260, "id": 2209, "height": 390}, {"file_name": "ADE_train_00002211.jpg", "width": 375, "id": 2210, "height": 344}, {"file_name": "ADE_train_00002212.jpg", "width": 752, "id": 2211, "height": 500}, {"file_name": "ADE_train_00002213.jpg", "width": 250, "id": 2212, "height": 305}, {"file_name": "ADE_train_00002214.jpg", "width": 770, "id": 2213, "height": 512}, {"file_name": "ADE_train_00002215.jpg", "width": 615, "id": 2214, "height": 330}, {"file_name": "ADE_train_00002216.jpg", "width": 300, "id": 2215, "height": 225}, {"file_name": "ADE_train_00002217.jpg", "width": 683, "id": 2216, "height": 512}, {"file_name": "ADE_train_00002218.jpg", "width": 640, "id": 2217, "height": 480}, {"file_name": "ADE_train_00002219.jpg", "width": 360, "id": 2218, "height": 270}, {"file_name": "ADE_train_00002220.jpg", "width": 360, "id": 2219, "height": 270}, {"file_name": "ADE_train_00002221.jpg", "width": 640, "id": 2220, "height": 480}, {"file_name": "ADE_train_00002222.jpg", "width": 600, "id": 2221, "height": 360}, {"file_name": "ADE_train_00002223.jpg", "width": 610, "id": 2222, "height": 512}, {"file_name": "ADE_train_00002224.jpg", "width": 576, "id": 2223, "height": 418}, {"file_name": "ADE_train_00002225.jpg", "width": 300, "id": 2224, "height": 300}, {"file_name": "ADE_train_00002226.jpg", "width": 683, "id": 2225, "height": 512}, {"file_name": "ADE_train_00002227.jpg", "width": 300, "id": 2226, "height": 229}, {"file_name": "ADE_train_00002228.jpg", "width": 250, "id": 2227, "height": 240}, {"file_name": "ADE_train_00002229.jpg", "width": 683, "id": 2228, "height": 512}, {"file_name": "ADE_train_00002230.jpg", "width": 768, "id": 2229, "height": 512}, {"file_name": "ADE_train_00002231.jpg", "width": 683, "id": 2230, "height": 512}, {"file_name": "ADE_train_00002232.jpg", "width": 683, "id": 2231, "height": 512}, {"file_name": "ADE_train_00002233.jpg", "width": 512, "id": 2232, "height": 683}, {"file_name": "ADE_train_00002234.jpg", "width": 683, "id": 2233, "height": 512}, {"file_name": "ADE_train_00002235.jpg", "width": 683, "id": 2234, "height": 512}, {"file_name": "ADE_train_00002236.jpg", "width": 683, "id": 2235, "height": 512}, {"file_name": "ADE_train_00002237.jpg", "width": 768, "id": 2236, "height": 512}, {"file_name": "ADE_train_00002238.jpg", "width": 683, "id": 2237, "height": 512}, {"file_name": "ADE_train_00002239.jpg", "width": 295, "id": 2238, "height": 276}, {"file_name": "ADE_train_00002240.jpg", "width": 683, "id": 2239, "height": 512}, {"file_name": "ADE_train_00002241.jpg", "width": 512, "id": 2240, "height": 640}, {"file_name": "ADE_train_00002242.jpg", "width": 300, "id": 2241, "height": 225}, {"file_name": "ADE_train_00002243.jpg", "width": 312, "id": 2242, "height": 235}, {"file_name": "ADE_train_00002244.jpg", "width": 683, "id": 2243, "height": 512}, {"file_name": "ADE_train_00002245.jpg", "width": 684, "id": 2244, "height": 512}, {"file_name": "ADE_train_00002246.jpg", "width": 512, "id": 2245, "height": 683}, {"file_name": "ADE_train_00002247.jpg", "width": 300, "id": 2246, "height": 225}, {"file_name": "ADE_train_00002248.jpg", "width": 683, "id": 2247, "height": 512}, {"file_name": "ADE_train_00002249.jpg", "width": 564, "id": 2248, "height": 463}, {"file_name": "ADE_train_00002250.jpg", "width": 450, "id": 2249, "height": 338}, {"file_name": "ADE_train_00002251.jpg", "width": 320, "id": 2250, "height": 240}, {"file_name": "ADE_train_00002252.jpg", "width": 300, "id": 2251, "height": 213}, {"file_name": "ADE_train_00002253.jpg", "width": 640, "id": 2252, "height": 480}, {"file_name": "ADE_train_00002254.jpg", "width": 683, "id": 2253, "height": 512}, {"file_name": "ADE_train_00002255.jpg", "width": 400, "id": 2254, "height": 341}, {"file_name": "ADE_train_00002256.jpg", "width": 683, "id": 2255, "height": 512}, {"file_name": "ADE_train_00002257.jpg", "width": 500, "id": 2256, "height": 375}, {"file_name": "ADE_train_00002258.jpg", "width": 512, "id": 2257, "height": 683}, {"file_name": "ADE_train_00002259.jpg", "width": 650, "id": 2258, "height": 445}, {"file_name": "ADE_train_00002260.jpg", "width": 683, "id": 2259, "height": 512}, {"file_name": "ADE_train_00002261.jpg", "width": 683, "id": 2260, "height": 512}, {"file_name": "ADE_train_00002262.jpg", "width": 904, "id": 2261, "height": 512}, {"file_name": "ADE_train_00002263.jpg", "width": 683, "id": 2262, "height": 512}, {"file_name": "ADE_train_00002264.jpg", "width": 500, "id": 2263, "height": 375}, {"file_name": "ADE_train_00002265.jpg", "width": 683, "id": 2264, "height": 512}, {"file_name": "ADE_train_00002266.jpg", "width": 500, "id": 2265, "height": 281}, {"file_name": "ADE_train_00002267.jpg", "width": 667, "id": 2266, "height": 500}, {"file_name": "ADE_train_00002268.jpg", "width": 300, "id": 2267, "height": 225}, {"file_name": "ADE_train_00002269.jpg", "width": 396, "id": 2268, "height": 330}, {"file_name": "ADE_train_00002270.jpg", "width": 300, "id": 2269, "height": 215}, {"file_name": "ADE_train_00002271.jpg", "width": 683, "id": 2270, "height": 512}, {"file_name": "ADE_train_00002272.jpg", "width": 700, "id": 2271, "height": 436}, {"file_name": "ADE_train_00002273.jpg", "width": 771, "id": 2272, "height": 512}, {"file_name": "ADE_train_00002274.jpg", "width": 432, "id": 2273, "height": 324}, {"file_name": "ADE_train_00002275.jpg", "width": 683, "id": 2274, "height": 512}, {"file_name": "ADE_train_00002276.jpg", "width": 356, "id": 2275, "height": 247}, {"file_name": "ADE_train_00002277.jpg", "width": 590, "id": 2276, "height": 392}, {"file_name": "ADE_train_00002278.jpg", "width": 683, "id": 2277, "height": 512}, {"file_name": "ADE_train_00002279.jpg", "width": 719, "id": 2278, "height": 512}, {"file_name": "ADE_train_00002280.jpg", "width": 770, "id": 2279, "height": 512}, {"file_name": "ADE_train_00002281.jpg", "width": 356, "id": 2280, "height": 247}, {"file_name": "ADE_train_00002282.jpg", "width": 448, "id": 2281, "height": 299}, {"file_name": "ADE_train_00002283.jpg", "width": 768, "id": 2282, "height": 512}, {"file_name": "ADE_train_00002284.jpg", "width": 683, "id": 2283, "height": 512}, {"file_name": "ADE_train_00002285.jpg", "width": 640, "id": 2284, "height": 426}, {"file_name": "ADE_train_00002286.jpg", "width": 640, "id": 2285, "height": 452}, {"file_name": "ADE_train_00002287.jpg", "width": 482, "id": 2286, "height": 377}, {"file_name": "ADE_train_00002288.jpg", "width": 683, "id": 2287, "height": 512}, {"file_name": "ADE_train_00002289.jpg", "width": 764, "id": 2288, "height": 512}, {"file_name": "ADE_train_00002290.jpg", "width": 565, "id": 2289, "height": 512}, {"file_name": "ADE_train_00002291.jpg", "width": 360, "id": 2290, "height": 241}, {"file_name": "ADE_train_00002292.jpg", "width": 360, "id": 2291, "height": 235}, {"file_name": "ADE_train_00002293.jpg", "width": 273, "id": 2292, "height": 204}, {"file_name": "ADE_train_00002294.jpg", "width": 256, "id": 2293, "height": 256}, {"file_name": "ADE_train_00002295.jpg", "width": 256, "id": 2294, "height": 256}, {"file_name": "ADE_train_00002296.jpg", "width": 332, "id": 2295, "height": 500}, {"file_name": "ADE_train_00002297.jpg", "width": 256, "id": 2296, "height": 256}, {"file_name": "ADE_train_00002298.jpg", "width": 256, "id": 2297, "height": 256}, {"file_name": "ADE_train_00002299.jpg", "width": 560, "id": 2298, "height": 420}, {"file_name": "ADE_train_00002300.jpg", "width": 500, "id": 2299, "height": 375}, {"file_name": "ADE_train_00002301.jpg", "width": 225, "id": 2300, "height": 300}, {"file_name": "ADE_train_00002302.jpg", "width": 324, "id": 2301, "height": 216}, {"file_name": "ADE_train_00002303.jpg", "width": 500, "id": 2302, "height": 269}, {"file_name": "ADE_train_00002304.jpg", "width": 765, "id": 2303, "height": 512}, {"file_name": "ADE_train_00002305.jpg", "width": 480, "id": 2304, "height": 360}, {"file_name": "ADE_train_00002306.jpg", "width": 450, "id": 2305, "height": 337}, {"file_name": "ADE_train_00002307.jpg", "width": 762, "id": 2306, "height": 500}, {"file_name": "ADE_train_00002308.jpg", "width": 684, "id": 2307, "height": 512}, {"file_name": "ADE_train_00002309.jpg", "width": 727, "id": 2308, "height": 512}, {"file_name": "ADE_train_00002310.jpg", "width": 640, "id": 2309, "height": 480}, {"file_name": "ADE_train_00002311.jpg", "width": 550, "id": 2310, "height": 376}, {"file_name": "ADE_train_00002312.jpg", "width": 768, "id": 2311, "height": 512}, {"file_name": "ADE_train_00002313.jpg", "width": 675, "id": 2312, "height": 512}, {"file_name": "ADE_train_00002314.jpg", "width": 285, "id": 2313, "height": 281}, {"file_name": "ADE_train_00002315.jpg", "width": 684, "id": 2314, "height": 512}, {"file_name": "ADE_train_00002316.jpg", "width": 512, "id": 2315, "height": 679}, {"file_name": "ADE_train_00002317.jpg", "width": 683, "id": 2316, "height": 512}, {"file_name": "ADE_train_00002318.jpg", "width": 450, "id": 2317, "height": 305}, {"file_name": "ADE_train_00002319.jpg", "width": 735, "id": 2318, "height": 512}, {"file_name": "ADE_train_00002320.jpg", "width": 450, "id": 2319, "height": 352}, {"file_name": "ADE_train_00002321.jpg", "width": 349, "id": 2320, "height": 286}, {"file_name": "ADE_train_00002322.jpg", "width": 267, "id": 2321, "height": 200}, {"file_name": "ADE_train_00002323.jpg", "width": 306, "id": 2322, "height": 490}, {"file_name": "ADE_train_00002324.jpg", "width": 555, "id": 2323, "height": 361}, {"file_name": "ADE_train_00002325.jpg", "width": 512, "id": 2324, "height": 683}, {"file_name": "ADE_train_00002326.jpg", "width": 500, "id": 2325, "height": 375}, {"file_name": "ADE_train_00002327.jpg", "width": 512, "id": 2326, "height": 683}, {"file_name": "ADE_train_00002328.jpg", "width": 300, "id": 2327, "height": 300}, {"file_name": "ADE_train_00002329.jpg", "width": 512, "id": 2328, "height": 683}, {"file_name": "ADE_train_00002330.jpg", "width": 520, "id": 2329, "height": 347}, {"file_name": "ADE_train_00002331.jpg", "width": 480, "id": 2330, "height": 640}, {"file_name": "ADE_train_00002332.jpg", "width": 512, "id": 2331, "height": 683}, {"file_name": "ADE_train_00002333.jpg", "width": 500, "id": 2332, "height": 375}, {"file_name": "ADE_train_00002334.jpg", "width": 568, "id": 2333, "height": 426}, {"file_name": "ADE_train_00002335.jpg", "width": 768, "id": 2334, "height": 512}, {"file_name": "ADE_train_00002336.jpg", "width": 773, "id": 2335, "height": 512}, {"file_name": "ADE_train_00002337.jpg", "width": 761, "id": 2336, "height": 512}, {"file_name": "ADE_train_00002338.jpg", "width": 300, "id": 2337, "height": 218}, {"file_name": "ADE_train_00002339.jpg", "width": 568, "id": 2338, "height": 426}, {"file_name": "ADE_train_00002340.jpg", "width": 500, "id": 2339, "height": 343}, {"file_name": "ADE_train_00002341.jpg", "width": 640, "id": 2340, "height": 480}, {"file_name": "ADE_train_00002342.jpg", "width": 495, "id": 2341, "height": 247}, {"file_name": "ADE_train_00002343.jpg", "width": 200, "id": 2342, "height": 248}, {"file_name": "ADE_train_00002344.jpg", "width": 268, "id": 2343, "height": 462}, {"file_name": "ADE_train_00002345.jpg", "width": 400, "id": 2344, "height": 267}, {"file_name": "ADE_train_00002346.jpg", "width": 423, "id": 2345, "height": 273}, {"file_name": "ADE_train_00002347.jpg", "width": 650, "id": 2346, "height": 512}, {"file_name": "ADE_train_00002348.jpg", "width": 337, "id": 2347, "height": 576}, {"file_name": "ADE_train_00002349.jpg", "width": 496, "id": 2348, "height": 377}, {"file_name": "ADE_train_00002350.jpg", "width": 443, "id": 2349, "height": 668}, {"file_name": "ADE_train_00002351.jpg", "width": 500, "id": 2350, "height": 350}, {"file_name": "ADE_train_00002352.jpg", "width": 400, "id": 2351, "height": 300}, {"file_name": "ADE_train_00002353.jpg", "width": 400, "id": 2352, "height": 259}, {"file_name": "ADE_train_00002354.jpg", "width": 182, "id": 2353, "height": 234}, {"file_name": "ADE_train_00002355.jpg", "width": 512, "id": 2354, "height": 615}, {"file_name": "ADE_train_00002356.jpg", "width": 480, "id": 2355, "height": 640}, {"file_name": "ADE_train_00002357.jpg", "width": 211, "id": 2356, "height": 300}, {"file_name": "ADE_train_00002358.jpg", "width": 772, "id": 2357, "height": 512}, {"file_name": "ADE_train_00002359.jpg", "width": 227, "id": 2358, "height": 316}, {"file_name": "ADE_train_00002360.jpg", "width": 420, "id": 2359, "height": 640}, {"file_name": "ADE_train_00002361.jpg", "width": 360, "id": 2360, "height": 425}, {"file_name": "ADE_train_00002362.jpg", "width": 400, "id": 2361, "height": 300}, {"file_name": "ADE_train_00002363.jpg", "width": 420, "id": 2362, "height": 504}, {"file_name": "ADE_train_00002364.jpg", "width": 598, "id": 2363, "height": 299}, {"file_name": "ADE_train_00002365.jpg", "width": 683, "id": 2364, "height": 512}, {"file_name": "ADE_train_00002366.jpg", "width": 560, "id": 2365, "height": 420}, {"file_name": "ADE_train_00002367.jpg", "width": 500, "id": 2366, "height": 334}, {"file_name": "ADE_train_00002368.jpg", "width": 512, "id": 2367, "height": 384}, {"file_name": "ADE_train_00002369.jpg", "width": 376, "id": 2368, "height": 376}, {"file_name": "ADE_train_00002370.jpg", "width": 266, "id": 2369, "height": 200}, {"file_name": "ADE_train_00002371.jpg", "width": 310, "id": 2370, "height": 225}, {"file_name": "ADE_train_00002372.jpg", "width": 336, "id": 2371, "height": 229}, {"file_name": "ADE_train_00002373.jpg", "width": 375, "id": 2372, "height": 500}, {"file_name": "ADE_train_00002374.jpg", "width": 486, "id": 2373, "height": 365}, {"file_name": "ADE_train_00002375.jpg", "width": 683, "id": 2374, "height": 512}, {"file_name": "ADE_train_00002376.jpg", "width": 275, "id": 2375, "height": 206}, {"file_name": "ADE_train_00002377.jpg", "width": 340, "id": 2376, "height": 207}, {"file_name": "ADE_train_00002378.jpg", "width": 683, "id": 2377, "height": 512}, {"file_name": "ADE_train_00002379.jpg", "width": 216, "id": 2378, "height": 296}, {"file_name": "ADE_train_00002380.jpg", "width": 320, "id": 2379, "height": 240}, {"file_name": "ADE_train_00002381.jpg", "width": 256, "id": 2380, "height": 256}, {"file_name": "ADE_train_00002382.jpg", "width": 400, "id": 2381, "height": 300}, {"file_name": "ADE_train_00002383.jpg", "width": 320, "id": 2382, "height": 237}, {"file_name": "ADE_train_00002384.jpg", "width": 256, "id": 2383, "height": 256}, {"file_name": "ADE_train_00002385.jpg", "width": 768, "id": 2384, "height": 512}, {"file_name": "ADE_train_00002386.jpg", "width": 256, "id": 2385, "height": 256}, {"file_name": "ADE_train_00002387.jpg", "width": 350, "id": 2386, "height": 293}, {"file_name": "ADE_train_00002388.jpg", "width": 256, "id": 2387, "height": 256}, {"file_name": "ADE_train_00002389.jpg", "width": 500, "id": 2388, "height": 375}, {"file_name": "ADE_train_00002390.jpg", "width": 450, "id": 2389, "height": 310}, {"file_name": "ADE_train_00002391.jpg", "width": 400, "id": 2390, "height": 315}, {"file_name": "ADE_train_00002392.jpg", "width": 456, "id": 2391, "height": 356}, {"file_name": "ADE_train_00002393.jpg", "width": 500, "id": 2392, "height": 500}, {"file_name": "ADE_train_00002394.jpg", "width": 450, "id": 2393, "height": 299}, {"file_name": "ADE_train_00002395.jpg", "width": 480, "id": 2394, "height": 360}, {"file_name": "ADE_train_00002396.jpg", "width": 265, "id": 2395, "height": 205}, {"file_name": "ADE_train_00002397.jpg", "width": 382, "id": 2396, "height": 250}, {"file_name": "ADE_train_00002398.jpg", "width": 500, "id": 2397, "height": 375}, {"file_name": "ADE_train_00002399.jpg", "width": 450, "id": 2398, "height": 338}, {"file_name": "ADE_train_00002400.jpg", "width": 640, "id": 2399, "height": 480}, {"file_name": "ADE_train_00002401.jpg", "width": 400, "id": 2400, "height": 300}, {"file_name": "ADE_train_00002402.jpg", "width": 400, "id": 2401, "height": 300}, {"file_name": "ADE_train_00002403.jpg", "width": 327, "id": 2402, "height": 200}, {"file_name": "ADE_train_00002404.jpg", "width": 600, "id": 2403, "height": 450}, {"file_name": "ADE_train_00002405.jpg", "width": 300, "id": 2404, "height": 304}, {"file_name": "ADE_train_00002406.jpg", "width": 700, "id": 2405, "height": 463}, {"file_name": "ADE_train_00002407.jpg", "width": 384, "id": 2406, "height": 257}, {"file_name": "ADE_train_00002408.jpg", "width": 256, "id": 2407, "height": 256}, {"file_name": "ADE_train_00002409.jpg", "width": 374, "id": 2408, "height": 326}, {"file_name": "ADE_train_00002410.jpg", "width": 460, "id": 2409, "height": 345}, {"file_name": "ADE_train_00002411.jpg", "width": 384, "id": 2410, "height": 308}, {"file_name": "ADE_train_00002412.jpg", "width": 256, "id": 2411, "height": 256}, {"file_name": "ADE_train_00002413.jpg", "width": 300, "id": 2412, "height": 222}, {"file_name": "ADE_train_00002414.jpg", "width": 250, "id": 2413, "height": 200}, {"file_name": "ADE_train_00002415.jpg", "width": 250, "id": 2414, "height": 200}, {"file_name": "ADE_train_00002416.jpg", "width": 500, "id": 2415, "height": 333}, {"file_name": "ADE_train_00002417.jpg", "width": 451, "id": 2416, "height": 338}, {"file_name": "ADE_train_00002418.jpg", "width": 256, "id": 2417, "height": 256}, {"file_name": "ADE_train_00002419.jpg", "width": 500, "id": 2418, "height": 357}, {"file_name": "ADE_train_00002420.jpg", "width": 311, "id": 2419, "height": 252}, {"file_name": "ADE_train_00002421.jpg", "width": 600, "id": 2420, "height": 450}, {"file_name": "ADE_train_00002422.jpg", "width": 683, "id": 2421, "height": 512}, {"file_name": "ADE_train_00002423.jpg", "width": 683, "id": 2422, "height": 512}, {"file_name": "ADE_train_00002424.jpg", "width": 542, "id": 2423, "height": 512}, {"file_name": "ADE_train_00002425.jpg", "width": 683, "id": 2424, "height": 512}, {"file_name": "ADE_train_00002426.jpg", "width": 316, "id": 2425, "height": 237}, {"file_name": "ADE_train_00002427.jpg", "width": 320, "id": 2426, "height": 240}, {"file_name": "ADE_train_00002428.jpg", "width": 683, "id": 2427, "height": 512}, {"file_name": "ADE_train_00002429.jpg", "width": 320, "id": 2428, "height": 240}, {"file_name": "ADE_train_00002430.jpg", "width": 763, "id": 2429, "height": 512}, {"file_name": "ADE_train_00002431.jpg", "width": 256, "id": 2430, "height": 256}, {"file_name": "ADE_train_00002432.jpg", "width": 256, "id": 2431, "height": 256}, {"file_name": "ADE_train_00002433.jpg", "width": 384, "id": 2432, "height": 256}, {"file_name": "ADE_train_00002434.jpg", "width": 256, "id": 2433, "height": 256}, {"file_name": "ADE_train_00002435.jpg", "width": 256, "id": 2434, "height": 256}, {"file_name": "ADE_train_00002436.jpg", "width": 300, "id": 2435, "height": 237}, {"file_name": "ADE_train_00002437.jpg", "width": 256, "id": 2436, "height": 256}, {"file_name": "ADE_train_00002438.jpg", "width": 256, "id": 2437, "height": 256}, {"file_name": "ADE_train_00002439.jpg", "width": 683, "id": 2438, "height": 512}, {"file_name": "ADE_train_00002440.jpg", "width": 256, "id": 2439, "height": 256}, {"file_name": "ADE_train_00002441.jpg", "width": 256, "id": 2440, "height": 256}, {"file_name": "ADE_train_00002442.jpg", "width": 256, "id": 2441, "height": 256}, {"file_name": "ADE_train_00002443.jpg", "width": 390, "id": 2442, "height": 270}, {"file_name": "ADE_train_00002444.jpg", "width": 256, "id": 2443, "height": 256}, {"file_name": "ADE_train_00002445.jpg", "width": 763, "id": 2444, "height": 512}, {"file_name": "ADE_train_00002446.jpg", "width": 300, "id": 2445, "height": 471}, {"file_name": "ADE_train_00002447.jpg", "width": 360, "id": 2446, "height": 540}, {"file_name": "ADE_train_00002448.jpg", "width": 600, "id": 2447, "height": 450}, {"file_name": "ADE_train_00002449.jpg", "width": 640, "id": 2448, "height": 480}, {"file_name": "ADE_train_00002450.jpg", "width": 600, "id": 2449, "height": 411}, {"file_name": "ADE_train_00002451.jpg", "width": 450, "id": 2450, "height": 335}, {"file_name": "ADE_train_00002452.jpg", "width": 256, "id": 2451, "height": 256}, {"file_name": "ADE_train_00002453.jpg", "width": 256, "id": 2452, "height": 256}, {"file_name": "ADE_train_00002454.jpg", "width": 768, "id": 2453, "height": 512}, {"file_name": "ADE_train_00002455.jpg", "width": 449, "id": 2454, "height": 600}, {"file_name": "ADE_train_00002456.jpg", "width": 256, "id": 2455, "height": 256}, {"file_name": "ADE_train_00002457.jpg", "width": 669, "id": 2456, "height": 512}, {"file_name": "ADE_train_00002458.jpg", "width": 683, "id": 2457, "height": 512}, {"file_name": "ADE_train_00002459.jpg", "width": 683, "id": 2458, "height": 512}, {"file_name": "ADE_train_00002460.jpg", "width": 683, "id": 2459, "height": 512}, {"file_name": "ADE_train_00002461.jpg", "width": 366, "id": 2460, "height": 262}, {"file_name": "ADE_train_00002462.jpg", "width": 683, "id": 2461, "height": 512}, {"file_name": "ADE_train_00002463.jpg", "width": 780, "id": 2462, "height": 512}, {"file_name": "ADE_train_00002464.jpg", "width": 350, "id": 2463, "height": 250}, {"file_name": "ADE_train_00002465.jpg", "width": 924, "id": 2464, "height": 350}, {"file_name": "ADE_train_00002466.jpg", "width": 400, "id": 2465, "height": 300}, {"file_name": "ADE_train_00002467.jpg", "width": 300, "id": 2466, "height": 235}, {"file_name": "ADE_train_00002468.jpg", "width": 350, "id": 2467, "height": 250}, {"file_name": "ADE_train_00002469.jpg", "width": 400, "id": 2468, "height": 300}, {"file_name": "ADE_train_00002470.jpg", "width": 432, "id": 2469, "height": 324}, {"file_name": "ADE_train_00002471.jpg", "width": 256, "id": 2470, "height": 256}, {"file_name": "ADE_train_00002472.jpg", "width": 568, "id": 2471, "height": 426}, {"file_name": "ADE_train_00002473.jpg", "width": 760, "id": 2472, "height": 512}, {"file_name": "ADE_train_00002474.jpg", "width": 683, "id": 2473, "height": 512}, {"file_name": "ADE_train_00002475.jpg", "width": 320, "id": 2474, "height": 256}, {"file_name": "ADE_train_00002476.jpg", "width": 450, "id": 2475, "height": 338}, {"file_name": "ADE_train_00002477.jpg", "width": 683, "id": 2476, "height": 512}, {"file_name": "ADE_train_00002478.jpg", "width": 773, "id": 2477, "height": 512}, {"file_name": "ADE_train_00002479.jpg", "width": 348, "id": 2478, "height": 434}, {"file_name": "ADE_train_00002480.jpg", "width": 654, "id": 2479, "height": 512}, {"file_name": "ADE_train_00002481.jpg", "width": 683, "id": 2480, "height": 512}, {"file_name": "ADE_train_00002482.jpg", "width": 320, "id": 2481, "height": 256}, {"file_name": "ADE_train_00002483.jpg", "width": 320, "id": 2482, "height": 256}, {"file_name": "ADE_train_00002484.jpg", "width": 476, "id": 2483, "height": 318}, {"file_name": "ADE_train_00002485.jpg", "width": 500, "id": 2484, "height": 375}, {"file_name": "ADE_train_00002486.jpg", "width": 361, "id": 2485, "height": 299}, {"file_name": "ADE_train_00002487.jpg", "width": 511, "id": 2486, "height": 682}, {"file_name": "ADE_train_00002488.jpg", "width": 683, "id": 2487, "height": 512}, {"file_name": "ADE_train_00002489.jpg", "width": 683, "id": 2488, "height": 512}, {"file_name": "ADE_train_00002490.jpg", "width": 469, "id": 2489, "height": 357}, {"file_name": "ADE_train_00002491.jpg", "width": 683, "id": 2490, "height": 512}, {"file_name": "ADE_train_00002492.jpg", "width": 344, "id": 2491, "height": 244}, {"file_name": "ADE_train_00002493.jpg", "width": 600, "id": 2492, "height": 405}, {"file_name": "ADE_train_00002494.jpg", "width": 640, "id": 2493, "height": 480}, {"file_name": "ADE_train_00002495.jpg", "width": 683, "id": 2494, "height": 512}, {"file_name": "ADE_train_00002496.jpg", "width": 683, "id": 2495, "height": 512}, {"file_name": "ADE_train_00002497.jpg", "width": 320, "id": 2496, "height": 240}, {"file_name": "ADE_train_00002498.jpg", "width": 683, "id": 2497, "height": 512}, {"file_name": "ADE_train_00002499.jpg", "width": 683, "id": 2498, "height": 512}, {"file_name": "ADE_train_00002500.jpg", "width": 499, "id": 2499, "height": 320}, {"file_name": "ADE_train_00002501.jpg", "width": 683, "id": 2500, "height": 512}, {"file_name": "ADE_train_00002502.jpg", "width": 450, "id": 2501, "height": 299}, {"file_name": "ADE_train_00002503.jpg", "width": 500, "id": 2502, "height": 683}, {"file_name": "ADE_train_00002504.jpg", "width": 400, "id": 2503, "height": 267}, {"file_name": "ADE_train_00002505.jpg", "width": 586, "id": 2504, "height": 375}, {"file_name": "ADE_train_00002506.jpg", "width": 551, "id": 2505, "height": 428}, {"file_name": "ADE_train_00002507.jpg", "width": 512, "id": 2506, "height": 384}, {"file_name": "ADE_train_00002508.jpg", "width": 200, "id": 2507, "height": 267}, {"file_name": "ADE_train_00002509.jpg", "width": 482, "id": 2508, "height": 331}, {"file_name": "ADE_train_00002510.jpg", "width": 200, "id": 2509, "height": 293}, {"file_name": "ADE_train_00002511.jpg", "width": 512, "id": 2510, "height": 768}, {"file_name": "ADE_train_00002512.jpg", "width": 683, "id": 2511, "height": 512}, {"file_name": "ADE_train_00002513.jpg", "width": 683, "id": 2512, "height": 512}, {"file_name": "ADE_train_00002514.jpg", "width": 228, "id": 2513, "height": 343}, {"file_name": "ADE_train_00002515.jpg", "width": 350, "id": 2514, "height": 239}, {"file_name": "ADE_train_00002516.jpg", "width": 300, "id": 2515, "height": 225}, {"file_name": "ADE_train_00002517.jpg", "width": 420, "id": 2516, "height": 280}, {"file_name": "ADE_train_00002518.jpg", "width": 768, "id": 2517, "height": 512}, {"file_name": "ADE_train_00002519.jpg", "width": 683, "id": 2518, "height": 512}, {"file_name": "ADE_train_00002520.jpg", "width": 765, "id": 2519, "height": 512}, {"file_name": "ADE_train_00002521.jpg", "width": 240, "id": 2520, "height": 320}, {"file_name": "ADE_train_00002522.jpg", "width": 683, "id": 2521, "height": 512}, {"file_name": "ADE_train_00002523.jpg", "width": 275, "id": 2522, "height": 206}, {"file_name": "ADE_train_00002524.jpg", "width": 768, "id": 2523, "height": 512}, {"file_name": "ADE_train_00002525.jpg", "width": 300, "id": 2524, "height": 226}, {"file_name": "ADE_train_00002526.jpg", "width": 684, "id": 2525, "height": 512}, {"file_name": "ADE_train_00002527.jpg", "width": 640, "id": 2526, "height": 480}, {"file_name": "ADE_train_00002528.jpg", "width": 683, "id": 2527, "height": 512}, {"file_name": "ADE_train_00002529.jpg", "width": 575, "id": 2528, "height": 431}, {"file_name": "ADE_train_00002530.jpg", "width": 746, "id": 2529, "height": 512}, {"file_name": "ADE_train_00002531.jpg", "width": 450, "id": 2530, "height": 600}, {"file_name": "ADE_train_00002532.jpg", "width": 507, "id": 2531, "height": 338}, {"file_name": "ADE_train_00002533.jpg", "width": 683, "id": 2532, "height": 512}, {"file_name": "ADE_train_00002534.jpg", "width": 683, "id": 2533, "height": 512}, {"file_name": "ADE_train_00002535.jpg", "width": 683, "id": 2534, "height": 512}, {"file_name": "ADE_train_00002536.jpg", "width": 512, "id": 2535, "height": 683}, {"file_name": "ADE_train_00002537.jpg", "width": 683, "id": 2536, "height": 512}, {"file_name": "ADE_train_00002538.jpg", "width": 683, "id": 2537, "height": 512}, {"file_name": "ADE_train_00002539.jpg", "width": 683, "id": 2538, "height": 512}, {"file_name": "ADE_train_00002540.jpg", "width": 683, "id": 2539, "height": 512}, {"file_name": "ADE_train_00002541.jpg", "width": 683, "id": 2540, "height": 512}, {"file_name": "ADE_train_00002542.jpg", "width": 683, "id": 2541, "height": 512}, {"file_name": "ADE_train_00002543.jpg", "width": 512, "id": 2542, "height": 683}, {"file_name": "ADE_train_00002544.jpg", "width": 512, "id": 2543, "height": 683}, {"file_name": "ADE_train_00002545.jpg", "width": 683, "id": 2544, "height": 512}, {"file_name": "ADE_train_00002546.jpg", "width": 683, "id": 2545, "height": 512}, {"file_name": "ADE_train_00002547.jpg", "width": 683, "id": 2546, "height": 512}, {"file_name": "ADE_train_00002548.jpg", "width": 640, "id": 2547, "height": 480}, {"file_name": "ADE_train_00002549.jpg", "width": 683, "id": 2548, "height": 512}, {"file_name": "ADE_train_00002550.jpg", "width": 512, "id": 2549, "height": 683}, {"file_name": "ADE_train_00002551.jpg", "width": 683, "id": 2550, "height": 512}, {"file_name": "ADE_train_00002552.jpg", "width": 683, "id": 2551, "height": 512}, {"file_name": "ADE_train_00002553.jpg", "width": 683, "id": 2552, "height": 512}, {"file_name": "ADE_train_00002554.jpg", "width": 512, "id": 2553, "height": 683}, {"file_name": "ADE_train_00002555.jpg", "width": 683, "id": 2554, "height": 512}, {"file_name": "ADE_train_00002556.jpg", "width": 683, "id": 2555, "height": 512}, {"file_name": "ADE_train_00002557.jpg", "width": 683, "id": 2556, "height": 512}, {"file_name": "ADE_train_00002558.jpg", "width": 512, "id": 2557, "height": 683}, {"file_name": "ADE_train_00002559.jpg", "width": 683, "id": 2558, "height": 512}, {"file_name": "ADE_train_00002560.jpg", "width": 683, "id": 2559, "height": 512}, {"file_name": "ADE_train_00002561.jpg", "width": 683, "id": 2560, "height": 512}, {"file_name": "ADE_train_00002562.jpg", "width": 235, "id": 2561, "height": 314}, {"file_name": "ADE_train_00002563.jpg", "width": 512, "id": 2562, "height": 683}, {"file_name": "ADE_train_00002564.jpg", "width": 512, "id": 2563, "height": 767}, {"file_name": "ADE_train_00002565.jpg", "width": 400, "id": 2564, "height": 600}, {"file_name": "ADE_train_00002566.jpg", "width": 512, "id": 2565, "height": 384}, {"file_name": "ADE_train_00002567.jpg", "width": 512, "id": 2566, "height": 768}, {"file_name": "ADE_train_00002568.jpg", "width": 683, "id": 2567, "height": 512}, {"file_name": "ADE_train_00002569.jpg", "width": 512, "id": 2568, "height": 910}, {"file_name": "ADE_train_00002570.jpg", "width": 225, "id": 2569, "height": 300}, {"file_name": "ADE_train_00002571.jpg", "width": 512, "id": 2570, "height": 683}, {"file_name": "ADE_train_00002572.jpg", "width": 512, "id": 2571, "height": 683}, {"file_name": "ADE_train_00002573.jpg", "width": 226, "id": 2572, "height": 257}, {"file_name": "ADE_train_00002574.jpg", "width": 256, "id": 2573, "height": 256}, {"file_name": "ADE_train_00002575.jpg", "width": 225, "id": 2574, "height": 300}, {"file_name": "ADE_train_00002576.jpg", "width": 754, "id": 2575, "height": 512}, {"file_name": "ADE_train_00002577.jpg", "width": 418, "id": 2576, "height": 512}, {"file_name": "ADE_train_00002578.jpg", "width": 512, "id": 2577, "height": 763}, {"file_name": "ADE_train_00002579.jpg", "width": 300, "id": 2578, "height": 225}, {"file_name": "ADE_train_00002580.jpg", "width": 683, "id": 2579, "height": 512}, {"file_name": "ADE_train_00002581.jpg", "width": 256, "id": 2580, "height": 256}, {"file_name": "ADE_train_00002582.jpg", "width": 683, "id": 2581, "height": 512}, {"file_name": "ADE_train_00002583.jpg", "width": 683, "id": 2582, "height": 512}, {"file_name": "ADE_train_00002584.jpg", "width": 265, "id": 2583, "height": 512}, {"file_name": "ADE_train_00002585.jpg", "width": 683, "id": 2584, "height": 512}, {"file_name": "ADE_train_00002586.jpg", "width": 512, "id": 2585, "height": 768}, {"file_name": "ADE_train_00002587.jpg", "width": 512, "id": 2586, "height": 683}, {"file_name": "ADE_train_00002588.jpg", "width": 300, "id": 2587, "height": 252}, {"file_name": "ADE_train_00002589.jpg", "width": 683, "id": 2588, "height": 512}, {"file_name": "ADE_train_00002590.jpg", "width": 229, "id": 2589, "height": 300}, {"file_name": "ADE_train_00002591.jpg", "width": 512, "id": 2590, "height": 683}, {"file_name": "ADE_train_00002592.jpg", "width": 400, "id": 2591, "height": 600}, {"file_name": "ADE_train_00002593.jpg", "width": 512, "id": 2592, "height": 683}, {"file_name": "ADE_train_00002594.jpg", "width": 632, "id": 2593, "height": 512}, {"file_name": "ADE_train_00002595.jpg", "width": 230, "id": 2594, "height": 250}, {"file_name": "ADE_train_00002596.jpg", "width": 360, "id": 2595, "height": 233}, {"file_name": "ADE_train_00002597.jpg", "width": 512, "id": 2596, "height": 683}, {"file_name": "ADE_train_00002598.jpg", "width": 683, "id": 2597, "height": 512}, {"file_name": "ADE_train_00002599.jpg", "width": 225, "id": 2598, "height": 300}, {"file_name": "ADE_train_00002600.jpg", "width": 300, "id": 2599, "height": 300}, {"file_name": "ADE_train_00002601.jpg", "width": 510, "id": 2600, "height": 510}, {"file_name": "ADE_train_00002602.jpg", "width": 636, "id": 2601, "height": 512}, {"file_name": "ADE_train_00002603.jpg", "width": 256, "id": 2602, "height": 256}, {"file_name": "ADE_train_00002604.jpg", "width": 300, "id": 2603, "height": 400}, {"file_name": "ADE_train_00002605.jpg", "width": 340, "id": 2604, "height": 512}, {"file_name": "ADE_train_00002606.jpg", "width": 336, "id": 2605, "height": 266}, {"file_name": "ADE_train_00002607.jpg", "width": 683, "id": 2606, "height": 512}, {"file_name": "ADE_train_00002608.jpg", "width": 512, "id": 2607, "height": 768}, {"file_name": "ADE_train_00002609.jpg", "width": 768, "id": 2608, "height": 512}, {"file_name": "ADE_train_00002610.jpg", "width": 420, "id": 2609, "height": 304}, {"file_name": "ADE_train_00002611.jpg", "width": 512, "id": 2610, "height": 768}, {"file_name": "ADE_train_00002612.jpg", "width": 400, "id": 2611, "height": 341}, {"file_name": "ADE_train_00002613.jpg", "width": 512, "id": 2612, "height": 683}, {"file_name": "ADE_train_00002614.jpg", "width": 683, "id": 2613, "height": 512}, {"file_name": "ADE_train_00002615.jpg", "width": 512, "id": 2614, "height": 683}, {"file_name": "ADE_train_00002616.jpg", "width": 683, "id": 2615, "height": 512}, {"file_name": "ADE_train_00002617.jpg", "width": 768, "id": 2616, "height": 512}, {"file_name": "ADE_train_00002618.jpg", "width": 768, "id": 2617, "height": 512}, {"file_name": "ADE_train_00002619.jpg", "width": 640, "id": 2618, "height": 480}, {"file_name": "ADE_train_00002620.jpg", "width": 512, "id": 2619, "height": 683}, {"file_name": "ADE_train_00002621.jpg", "width": 230, "id": 2620, "height": 307}, {"file_name": "ADE_train_00002622.jpg", "width": 683, "id": 2621, "height": 512}, {"file_name": "ADE_train_00002623.jpg", "width": 768, "id": 2622, "height": 512}, {"file_name": "ADE_train_00002624.jpg", "width": 225, "id": 2623, "height": 300}, {"file_name": "ADE_train_00002625.jpg", "width": 512, "id": 2624, "height": 683}, {"file_name": "ADE_train_00002626.jpg", "width": 1036, "id": 2625, "height": 1036}, {"file_name": "ADE_train_00002627.jpg", "width": 200, "id": 2626, "height": 200}, {"file_name": "ADE_train_00002628.jpg", "width": 268, "id": 2627, "height": 411}, {"file_name": "ADE_train_00002629.jpg", "width": 468, "id": 2628, "height": 278}, {"file_name": "ADE_train_00002630.jpg", "width": 400, "id": 2629, "height": 600}, {"file_name": "ADE_train_00002631.jpg", "width": 683, "id": 2630, "height": 512}, {"file_name": "ADE_train_00002632.jpg", "width": 716, "id": 2631, "height": 512}, {"file_name": "ADE_train_00002633.jpg", "width": 683, "id": 2632, "height": 512}, {"file_name": "ADE_train_00002634.jpg", "width": 445, "id": 2633, "height": 548}, {"file_name": "ADE_train_00002635.jpg", "width": 512, "id": 2634, "height": 683}, {"file_name": "ADE_train_00002636.jpg", "width": 239, "id": 2635, "height": 366}, {"file_name": "ADE_train_00002637.jpg", "width": 250, "id": 2636, "height": 333}, {"file_name": "ADE_train_00002638.jpg", "width": 256, "id": 2637, "height": 256}, {"file_name": "ADE_train_00002639.jpg", "width": 305, "id": 2638, "height": 512}, {"file_name": "ADE_train_00002640.jpg", "width": 512, "id": 2639, "height": 683}, {"file_name": "ADE_train_00002641.jpg", "width": 512, "id": 2640, "height": 682}, {"file_name": "ADE_train_00002642.jpg", "width": 683, "id": 2641, "height": 512}, {"file_name": "ADE_train_00002643.jpg", "width": 256, "id": 2642, "height": 256}, {"file_name": "ADE_train_00002644.jpg", "width": 683, "id": 2643, "height": 512}, {"file_name": "ADE_train_00002645.jpg", "width": 303, "id": 2644, "height": 512}, {"file_name": "ADE_train_00002646.jpg", "width": 384, "id": 2645, "height": 512}, {"file_name": "ADE_train_00002647.jpg", "width": 512, "id": 2646, "height": 712}, {"file_name": "ADE_train_00002648.jpg", "width": 683, "id": 2647, "height": 512}, {"file_name": "ADE_train_00002649.jpg", "width": 256, "id": 2648, "height": 256}, {"file_name": "ADE_train_00002650.jpg", "width": 240, "id": 2649, "height": 300}, {"file_name": "ADE_train_00002651.jpg", "width": 512, "id": 2650, "height": 683}, {"file_name": "ADE_train_00002652.jpg", "width": 512, "id": 2651, "height": 683}, {"file_name": "ADE_train_00002653.jpg", "width": 512, "id": 2652, "height": 683}, {"file_name": "ADE_train_00002654.jpg", "width": 768, "id": 2653, "height": 512}, {"file_name": "ADE_train_00002655.jpg", "width": 512, "id": 2654, "height": 683}, {"file_name": "ADE_train_00002656.jpg", "width": 216, "id": 2655, "height": 288}, {"file_name": "ADE_train_00002657.jpg", "width": 256, "id": 2656, "height": 256}, {"file_name": "ADE_train_00002658.jpg", "width": 512, "id": 2657, "height": 648}, {"file_name": "ADE_train_00002659.jpg", "width": 340, "id": 2658, "height": 512}, {"file_name": "ADE_train_00002660.jpg", "width": 256, "id": 2659, "height": 256}, {"file_name": "ADE_train_00002661.jpg", "width": 300, "id": 2660, "height": 239}, {"file_name": "ADE_train_00002662.jpg", "width": 512, "id": 2661, "height": 683}, {"file_name": "ADE_train_00002663.jpg", "width": 512, "id": 2662, "height": 768}, {"file_name": "ADE_train_00002664.jpg", "width": 256, "id": 2663, "height": 256}, {"file_name": "ADE_train_00002665.jpg", "width": 512, "id": 2664, "height": 759}, {"file_name": "ADE_train_00002666.jpg", "width": 512, "id": 2665, "height": 683}, {"file_name": "ADE_train_00002667.jpg", "width": 683, "id": 2666, "height": 512}, {"file_name": "ADE_train_00002668.jpg", "width": 512, "id": 2667, "height": 765}, {"file_name": "ADE_train_00002669.jpg", "width": 512, "id": 2668, "height": 683}, {"file_name": "ADE_train_00002670.jpg", "width": 512, "id": 2669, "height": 683}, {"file_name": "ADE_train_00002671.jpg", "width": 300, "id": 2670, "height": 225}, {"file_name": "ADE_train_00002672.jpg", "width": 683, "id": 2671, "height": 512}, {"file_name": "ADE_train_00002673.jpg", "width": 320, "id": 2672, "height": 223}, {"file_name": "ADE_train_00002674.jpg", "width": 683, "id": 2673, "height": 512}, {"file_name": "ADE_train_00002675.jpg", "width": 512, "id": 2674, "height": 683}, {"file_name": "ADE_train_00002676.jpg", "width": 256, "id": 2675, "height": 256}, {"file_name": "ADE_train_00002677.jpg", "width": 768, "id": 2676, "height": 512}, {"file_name": "ADE_train_00002678.jpg", "width": 683, "id": 2677, "height": 512}, {"file_name": "ADE_train_00002679.jpg", "width": 768, "id": 2678, "height": 512}, {"file_name": "ADE_train_00002680.jpg", "width": 282, "id": 2679, "height": 360}, {"file_name": "ADE_train_00002681.jpg", "width": 512, "id": 2680, "height": 683}, {"file_name": "ADE_train_00002682.jpg", "width": 350, "id": 2681, "height": 235}, {"file_name": "ADE_train_00002683.jpg", "width": 298, "id": 2682, "height": 449}, {"file_name": "ADE_train_00002684.jpg", "width": 512, "id": 2683, "height": 683}, {"file_name": "ADE_train_00002685.jpg", "width": 640, "id": 2684, "height": 480}, {"file_name": "ADE_train_00002686.jpg", "width": 225, "id": 2685, "height": 300}, {"file_name": "ADE_train_00002687.jpg", "width": 683, "id": 2686, "height": 512}, {"file_name": "ADE_train_00002688.jpg", "width": 512, "id": 2687, "height": 340}, {"file_name": "ADE_train_00002689.jpg", "width": 720, "id": 2688, "height": 480}, {"file_name": "ADE_train_00002690.jpg", "width": 512, "id": 2689, "height": 768}, {"file_name": "ADE_train_00002691.jpg", "width": 512, "id": 2690, "height": 766}, {"file_name": "ADE_train_00002692.jpg", "width": 300, "id": 2691, "height": 225}, {"file_name": "ADE_train_00002693.jpg", "width": 683, "id": 2692, "height": 512}, {"file_name": "ADE_train_00002694.jpg", "width": 640, "id": 2693, "height": 480}, {"file_name": "ADE_train_00002695.jpg", "width": 224, "id": 2694, "height": 300}, {"file_name": "ADE_train_00002696.jpg", "width": 256, "id": 2695, "height": 256}, {"file_name": "ADE_train_00002697.jpg", "width": 256, "id": 2696, "height": 256}, {"file_name": "ADE_train_00002698.jpg", "width": 700, "id": 2697, "height": 468}, {"file_name": "ADE_train_00002699.jpg", "width": 640, "id": 2698, "height": 480}, {"file_name": "ADE_train_00002700.jpg", "width": 683, "id": 2699, "height": 512}, {"file_name": "ADE_train_00002701.jpg", "width": 512, "id": 2700, "height": 683}, {"file_name": "ADE_train_00002702.jpg", "width": 427, "id": 2701, "height": 640}, {"file_name": "ADE_train_00002703.jpg", "width": 315, "id": 2702, "height": 461}, {"file_name": "ADE_train_00002704.jpg", "width": 512, "id": 2703, "height": 768}, {"file_name": "ADE_train_00002705.jpg", "width": 350, "id": 2704, "height": 233}, {"file_name": "ADE_train_00002706.jpg", "width": 512, "id": 2705, "height": 683}, {"file_name": "ADE_train_00002707.jpg", "width": 512, "id": 2706, "height": 768}, {"file_name": "ADE_train_00002708.jpg", "width": 683, "id": 2707, "height": 512}, {"file_name": "ADE_train_00002709.jpg", "width": 768, "id": 2708, "height": 512}, {"file_name": "ADE_train_00002710.jpg", "width": 512, "id": 2709, "height": 683}, {"file_name": "ADE_train_00002711.jpg", "width": 512, "id": 2710, "height": 683}, {"file_name": "ADE_train_00002712.jpg", "width": 683, "id": 2711, "height": 512}, {"file_name": "ADE_train_00002713.jpg", "width": 300, "id": 2712, "height": 400}, {"file_name": "ADE_train_00002714.jpg", "width": 384, "id": 2713, "height": 512}, {"file_name": "ADE_train_00002715.jpg", "width": 765, "id": 2714, "height": 512}, {"file_name": "ADE_train_00002716.jpg", "width": 512, "id": 2715, "height": 683}, {"file_name": "ADE_train_00002717.jpg", "width": 683, "id": 2716, "height": 512}, {"file_name": "ADE_train_00002718.jpg", "width": 512, "id": 2717, "height": 683}, {"file_name": "ADE_train_00002719.jpg", "width": 533, "id": 2718, "height": 400}, {"file_name": "ADE_train_00002720.jpg", "width": 225, "id": 2719, "height": 300}, {"file_name": "ADE_train_00002721.jpg", "width": 768, "id": 2720, "height": 512}, {"file_name": "ADE_train_00002722.jpg", "width": 221, "id": 2721, "height": 338}, {"file_name": "ADE_train_00002723.jpg", "width": 512, "id": 2722, "height": 683}, {"file_name": "ADE_train_00002724.jpg", "width": 256, "id": 2723, "height": 256}, {"file_name": "ADE_train_00002725.jpg", "width": 768, "id": 2724, "height": 512}, {"file_name": "ADE_train_00002726.jpg", "width": 500, "id": 2725, "height": 373}, {"file_name": "ADE_train_00002727.jpg", "width": 683, "id": 2726, "height": 512}, {"file_name": "ADE_train_00002728.jpg", "width": 452, "id": 2727, "height": 300}, {"file_name": "ADE_train_00002729.jpg", "width": 683, "id": 2728, "height": 512}, {"file_name": "ADE_train_00002730.jpg", "width": 256, "id": 2729, "height": 256}, {"file_name": "ADE_train_00002731.jpg", "width": 229, "id": 2730, "height": 229}, {"file_name": "ADE_train_00002732.jpg", "width": 300, "id": 2731, "height": 244}, {"file_name": "ADE_train_00002733.jpg", "width": 656, "id": 2732, "height": 512}, {"file_name": "ADE_train_00002734.jpg", "width": 512, "id": 2733, "height": 683}, {"file_name": "ADE_train_00002735.jpg", "width": 413, "id": 2734, "height": 284}, {"file_name": "ADE_train_00002736.jpg", "width": 640, "id": 2735, "height": 480}, {"file_name": "ADE_train_00002737.jpg", "width": 771, "id": 2736, "height": 512}, {"file_name": "ADE_train_00002738.jpg", "width": 386, "id": 2737, "height": 400}, {"file_name": "ADE_train_00002739.jpg", "width": 512, "id": 2738, "height": 765}, {"file_name": "ADE_train_00002740.jpg", "width": 683, "id": 2739, "height": 512}, {"file_name": "ADE_train_00002741.jpg", "width": 512, "id": 2740, "height": 771}, {"file_name": "ADE_train_00002742.jpg", "width": 1024, "id": 2741, "height": 1024}, {"file_name": "ADE_train_00002743.jpg", "width": 512, "id": 2742, "height": 823}, {"file_name": "ADE_train_00002744.jpg", "width": 225, "id": 2743, "height": 300}, {"file_name": "ADE_train_00002745.jpg", "width": 683, "id": 2744, "height": 512}, {"file_name": "ADE_train_00002746.jpg", "width": 616, "id": 2745, "height": 462}, {"file_name": "ADE_train_00002747.jpg", "width": 683, "id": 2746, "height": 512}, {"file_name": "ADE_train_00002748.jpg", "width": 280, "id": 2747, "height": 210}, {"file_name": "ADE_train_00002749.jpg", "width": 256, "id": 2748, "height": 256}, {"file_name": "ADE_train_00002750.jpg", "width": 350, "id": 2749, "height": 232}, {"file_name": "ADE_train_00002751.jpg", "width": 768, "id": 2750, "height": 512}, {"file_name": "ADE_train_00002752.jpg", "width": 256, "id": 2751, "height": 256}, {"file_name": "ADE_train_00002753.jpg", "width": 683, "id": 2752, "height": 512}, {"file_name": "ADE_train_00002754.jpg", "width": 512, "id": 2753, "height": 786}, {"file_name": "ADE_train_00002755.jpg", "width": 683, "id": 2754, "height": 512}, {"file_name": "ADE_train_00002756.jpg", "width": 480, "id": 2755, "height": 640}, {"file_name": "ADE_train_00002757.jpg", "width": 683, "id": 2756, "height": 512}, {"file_name": "ADE_train_00002758.jpg", "width": 299, "id": 2757, "height": 300}, {"file_name": "ADE_train_00002759.jpg", "width": 240, "id": 2758, "height": 320}, {"file_name": "ADE_train_00002760.jpg", "width": 768, "id": 2759, "height": 512}, {"file_name": "ADE_train_00002761.jpg", "width": 350, "id": 2760, "height": 278}, {"file_name": "ADE_train_00002762.jpg", "width": 681, "id": 2761, "height": 512}, {"file_name": "ADE_train_00002763.jpg", "width": 512, "id": 2762, "height": 770}, {"file_name": "ADE_train_00002764.jpg", "width": 256, "id": 2763, "height": 256}, {"file_name": "ADE_train_00002765.jpg", "width": 765, "id": 2764, "height": 512}, {"file_name": "ADE_train_00002766.jpg", "width": 683, "id": 2765, "height": 512}, {"file_name": "ADE_train_00002767.jpg", "width": 768, "id": 2766, "height": 512}, {"file_name": "ADE_train_00002768.jpg", "width": 345, "id": 2767, "height": 350}, {"file_name": "ADE_train_00002769.jpg", "width": 240, "id": 2768, "height": 320}, {"file_name": "ADE_train_00002770.jpg", "width": 512, "id": 2769, "height": 683}, {"file_name": "ADE_train_00002771.jpg", "width": 256, "id": 2770, "height": 256}, {"file_name": "ADE_train_00002772.jpg", "width": 256, "id": 2771, "height": 256}, {"file_name": "ADE_train_00002773.jpg", "width": 251, "id": 2772, "height": 300}, {"file_name": "ADE_train_00002774.jpg", "width": 683, "id": 2773, "height": 512}, {"file_name": "ADE_train_00002775.jpg", "width": 455, "id": 2774, "height": 525}, {"file_name": "ADE_train_00002776.jpg", "width": 212, "id": 2775, "height": 300}, {"file_name": "ADE_train_00002777.jpg", "width": 683, "id": 2776, "height": 512}, {"file_name": "ADE_train_00002778.jpg", "width": 480, "id": 2777, "height": 640}, {"file_name": "ADE_train_00002779.jpg", "width": 300, "id": 2778, "height": 225}, {"file_name": "ADE_train_00002780.jpg", "width": 512, "id": 2779, "height": 683}, {"file_name": "ADE_train_00002781.jpg", "width": 512, "id": 2780, "height": 683}, {"file_name": "ADE_train_00002782.jpg", "width": 330, "id": 2781, "height": 440}, {"file_name": "ADE_train_00002783.jpg", "width": 512, "id": 2782, "height": 683}, {"file_name": "ADE_train_00002784.jpg", "width": 256, "id": 2783, "height": 256}, {"file_name": "ADE_train_00002785.jpg", "width": 768, "id": 2784, "height": 512}, {"file_name": "ADE_train_00002786.jpg", "width": 768, "id": 2785, "height": 512}, {"file_name": "ADE_train_00002787.jpg", "width": 350, "id": 2786, "height": 240}, {"file_name": "ADE_train_00002788.jpg", "width": 512, "id": 2787, "height": 683}, {"file_name": "ADE_train_00002789.jpg", "width": 683, "id": 2788, "height": 512}, {"file_name": "ADE_train_00002790.jpg", "width": 230, "id": 2789, "height": 230}, {"file_name": "ADE_train_00002791.jpg", "width": 238, "id": 2790, "height": 358}, {"file_name": "ADE_train_00002792.jpg", "width": 256, "id": 2791, "height": 256}, {"file_name": "ADE_train_00002793.jpg", "width": 218, "id": 2792, "height": 290}, {"file_name": "ADE_train_00002794.jpg", "width": 683, "id": 2793, "height": 512}, {"file_name": "ADE_train_00002795.jpg", "width": 302, "id": 2794, "height": 440}, {"file_name": "ADE_train_00002796.jpg", "width": 294, "id": 2795, "height": 296}, {"file_name": "ADE_train_00002797.jpg", "width": 683, "id": 2796, "height": 512}, {"file_name": "ADE_train_00002798.jpg", "width": 683, "id": 2797, "height": 512}, {"file_name": "ADE_train_00002799.jpg", "width": 683, "id": 2798, "height": 512}, {"file_name": "ADE_train_00002800.jpg", "width": 683, "id": 2799, "height": 512}, {"file_name": "ADE_train_00002801.jpg", "width": 300, "id": 2800, "height": 225}, {"file_name": "ADE_train_00002802.jpg", "width": 512, "id": 2801, "height": 683}, {"file_name": "ADE_train_00002803.jpg", "width": 300, "id": 2802, "height": 225}, {"file_name": "ADE_train_00002804.jpg", "width": 512, "id": 2803, "height": 683}, {"file_name": "ADE_train_00002805.jpg", "width": 768, "id": 2804, "height": 512}, {"file_name": "ADE_train_00002806.jpg", "width": 300, "id": 2805, "height": 202}, {"file_name": "ADE_train_00002807.jpg", "width": 768, "id": 2806, "height": 512}, {"file_name": "ADE_train_00002808.jpg", "width": 683, "id": 2807, "height": 512}, {"file_name": "ADE_train_00002809.jpg", "width": 256, "id": 2808, "height": 256}, {"file_name": "ADE_train_00002810.jpg", "width": 512, "id": 2809, "height": 519}, {"file_name": "ADE_train_00002811.jpg", "width": 768, "id": 2810, "height": 512}, {"file_name": "ADE_train_00002812.jpg", "width": 450, "id": 2811, "height": 600}, {"file_name": "ADE_train_00002813.jpg", "width": 1000, "id": 2812, "height": 1000}, {"file_name": "ADE_train_00002814.jpg", "width": 512, "id": 2813, "height": 683}, {"file_name": "ADE_train_00002815.jpg", "width": 683, "id": 2814, "height": 512}, {"file_name": "ADE_train_00002816.jpg", "width": 682, "id": 2815, "height": 512}, {"file_name": "ADE_train_00002817.jpg", "width": 512, "id": 2816, "height": 753}, {"file_name": "ADE_train_00002818.jpg", "width": 683, "id": 2817, "height": 512}, {"file_name": "ADE_train_00002819.jpg", "width": 512, "id": 2818, "height": 656}, {"file_name": "ADE_train_00002820.jpg", "width": 500, "id": 2819, "height": 497}, {"file_name": "ADE_train_00002821.jpg", "width": 256, "id": 2820, "height": 256}, {"file_name": "ADE_train_00002822.jpg", "width": 512, "id": 2821, "height": 770}, {"file_name": "ADE_train_00002823.jpg", "width": 512, "id": 2822, "height": 728}, {"file_name": "ADE_train_00002824.jpg", "width": 350, "id": 2823, "height": 234}, {"file_name": "ADE_train_00002825.jpg", "width": 264, "id": 2824, "height": 350}, {"file_name": "ADE_train_00002826.jpg", "width": 220, "id": 2825, "height": 331}, {"file_name": "ADE_train_00002827.jpg", "width": 683, "id": 2826, "height": 512}, {"file_name": "ADE_train_00002828.jpg", "width": 350, "id": 2827, "height": 233}, {"file_name": "ADE_train_00002829.jpg", "width": 770, "id": 2828, "height": 512}, {"file_name": "ADE_train_00002830.jpg", "width": 450, "id": 2829, "height": 600}, {"file_name": "ADE_train_00002831.jpg", "width": 276, "id": 2830, "height": 512}, {"file_name": "ADE_train_00002832.jpg", "width": 256, "id": 2831, "height": 256}, {"file_name": "ADE_train_00002833.jpg", "width": 600, "id": 2832, "height": 450}, {"file_name": "ADE_train_00002834.jpg", "width": 683, "id": 2833, "height": 512}, {"file_name": "ADE_train_00002835.jpg", "width": 470, "id": 2834, "height": 287}, {"file_name": "ADE_train_00002836.jpg", "width": 300, "id": 2835, "height": 300}, {"file_name": "ADE_train_00002837.jpg", "width": 512, "id": 2836, "height": 683}, {"file_name": "ADE_train_00002838.jpg", "width": 683, "id": 2837, "height": 512}, {"file_name": "ADE_train_00002839.jpg", "width": 683, "id": 2838, "height": 512}, {"file_name": "ADE_train_00002840.jpg", "width": 225, "id": 2839, "height": 215}, {"file_name": "ADE_train_00002841.jpg", "width": 292, "id": 2840, "height": 300}, {"file_name": "ADE_train_00002842.jpg", "width": 512, "id": 2841, "height": 683}, {"file_name": "ADE_train_00002843.jpg", "width": 576, "id": 2842, "height": 432}, {"file_name": "ADE_train_00002844.jpg", "width": 225, "id": 2843, "height": 300}, {"file_name": "ADE_train_00002845.jpg", "width": 683, "id": 2844, "height": 512}, {"file_name": "ADE_train_00002846.jpg", "width": 683, "id": 2845, "height": 512}, {"file_name": "ADE_train_00002847.jpg", "width": 512, "id": 2846, "height": 683}, {"file_name": "ADE_train_00002848.jpg", "width": 683, "id": 2847, "height": 512}, {"file_name": "ADE_train_00002849.jpg", "width": 278, "id": 2848, "height": 512}, {"file_name": "ADE_train_00002850.jpg", "width": 256, "id": 2849, "height": 256}, {"file_name": "ADE_train_00002851.jpg", "width": 256, "id": 2850, "height": 256}, {"file_name": "ADE_train_00002852.jpg", "width": 512, "id": 2851, "height": 683}, {"file_name": "ADE_train_00002853.jpg", "width": 359, "id": 2852, "height": 512}, {"file_name": "ADE_train_00002854.jpg", "width": 256, "id": 2853, "height": 256}, {"file_name": "ADE_train_00002855.jpg", "width": 256, "id": 2854, "height": 256}, {"file_name": "ADE_train_00002856.jpg", "width": 256, "id": 2855, "height": 256}, {"file_name": "ADE_train_00002857.jpg", "width": 640, "id": 2856, "height": 480}, {"file_name": "ADE_train_00002858.jpg", "width": 340, "id": 2857, "height": 512}, {"file_name": "ADE_train_00002859.jpg", "width": 240, "id": 2858, "height": 320}, {"file_name": "ADE_train_00002860.jpg", "width": 250, "id": 2859, "height": 340}, {"file_name": "ADE_train_00002861.jpg", "width": 256, "id": 2860, "height": 256}, {"file_name": "ADE_train_00002862.jpg", "width": 683, "id": 2861, "height": 512}, {"file_name": "ADE_train_00002863.jpg", "width": 512, "id": 2862, "height": 683}, {"file_name": "ADE_train_00002864.jpg", "width": 640, "id": 2863, "height": 480}, {"file_name": "ADE_train_00002865.jpg", "width": 256, "id": 2864, "height": 256}, {"file_name": "ADE_train_00002866.jpg", "width": 512, "id": 2865, "height": 683}, {"file_name": "ADE_train_00002867.jpg", "width": 512, "id": 2866, "height": 683}, {"file_name": "ADE_train_00002868.jpg", "width": 256, "id": 2867, "height": 256}, {"file_name": "ADE_train_00002869.jpg", "width": 256, "id": 2868, "height": 256}, {"file_name": "ADE_train_00002870.jpg", "width": 256, "id": 2869, "height": 256}, {"file_name": "ADE_train_00002871.jpg", "width": 640, "id": 2870, "height": 480}, {"file_name": "ADE_train_00002872.jpg", "width": 512, "id": 2871, "height": 683}, {"file_name": "ADE_train_00002873.jpg", "width": 683, "id": 2872, "height": 512}, {"file_name": "ADE_train_00002874.jpg", "width": 512, "id": 2873, "height": 683}, {"file_name": "ADE_train_00002875.jpg", "width": 683, "id": 2874, "height": 512}, {"file_name": "ADE_train_00002876.jpg", "width": 256, "id": 2875, "height": 256}, {"file_name": "ADE_train_00002877.jpg", "width": 230, "id": 2876, "height": 307}, {"file_name": "ADE_train_00002878.jpg", "width": 683, "id": 2877, "height": 512}, {"file_name": "ADE_train_00002879.jpg", "width": 683, "id": 2878, "height": 512}, {"file_name": "ADE_train_00002880.jpg", "width": 640, "id": 2879, "height": 427}, {"file_name": "ADE_train_00002881.jpg", "width": 300, "id": 2880, "height": 216}, {"file_name": "ADE_train_00002882.jpg", "width": 256, "id": 2881, "height": 256}, {"file_name": "ADE_train_00002883.jpg", "width": 256, "id": 2882, "height": 256}, {"file_name": "ADE_train_00002884.jpg", "width": 512, "id": 2883, "height": 683}, {"file_name": "ADE_train_00002885.jpg", "width": 256, "id": 2884, "height": 256}, {"file_name": "ADE_train_00002886.jpg", "width": 512, "id": 2885, "height": 684}, {"file_name": "ADE_train_00002887.jpg", "width": 250, "id": 2886, "height": 333}, {"file_name": "ADE_train_00002888.jpg", "width": 214, "id": 2887, "height": 285}, {"file_name": "ADE_train_00002889.jpg", "width": 256, "id": 2888, "height": 256}, {"file_name": "ADE_train_00002890.jpg", "width": 256, "id": 2889, "height": 256}, {"file_name": "ADE_train_00002891.jpg", "width": 512, "id": 2890, "height": 683}, {"file_name": "ADE_train_00002892.jpg", "width": 512, "id": 2891, "height": 683}, {"file_name": "ADE_train_00002893.jpg", "width": 512, "id": 2892, "height": 781}, {"file_name": "ADE_train_00002894.jpg", "width": 768, "id": 2893, "height": 512}, {"file_name": "ADE_train_00002895.jpg", "width": 291, "id": 2894, "height": 512}, {"file_name": "ADE_train_00002896.jpg", "width": 683, "id": 2895, "height": 512}, {"file_name": "ADE_train_00002897.jpg", "width": 683, "id": 2896, "height": 512}, {"file_name": "ADE_train_00002898.jpg", "width": 683, "id": 2897, "height": 512}, {"file_name": "ADE_train_00002899.jpg", "width": 683, "id": 2898, "height": 512}, {"file_name": "ADE_train_00002900.jpg", "width": 393, "id": 2899, "height": 600}, {"file_name": "ADE_train_00002901.jpg", "width": 256, "id": 2900, "height": 256}, {"file_name": "ADE_train_00002902.jpg", "width": 256, "id": 2901, "height": 256}, {"file_name": "ADE_train_00002903.jpg", "width": 748, "id": 2902, "height": 512}, {"file_name": "ADE_train_00002904.jpg", "width": 512, "id": 2903, "height": 683}, {"file_name": "ADE_train_00002905.jpg", "width": 683, "id": 2904, "height": 512}, {"file_name": "ADE_train_00002906.jpg", "width": 225, "id": 2905, "height": 300}, {"file_name": "ADE_train_00002907.jpg", "width": 683, "id": 2906, "height": 512}, {"file_name": "ADE_train_00002908.jpg", "width": 683, "id": 2907, "height": 512}, {"file_name": "ADE_train_00002909.jpg", "width": 256, "id": 2908, "height": 256}, {"file_name": "ADE_train_00002910.jpg", "width": 512, "id": 2909, "height": 683}, {"file_name": "ADE_train_00002911.jpg", "width": 298, "id": 2910, "height": 449}, {"file_name": "ADE_train_00002912.jpg", "width": 512, "id": 2911, "height": 683}, {"file_name": "ADE_train_00002913.jpg", "width": 765, "id": 2912, "height": 512}, {"file_name": "ADE_train_00002914.jpg", "width": 291, "id": 2913, "height": 512}, {"file_name": "ADE_train_00002915.jpg", "width": 225, "id": 2914, "height": 300}, {"file_name": "ADE_train_00002916.jpg", "width": 783, "id": 2915, "height": 512}, {"file_name": "ADE_train_00002917.jpg", "width": 512, "id": 2916, "height": 683}, {"file_name": "ADE_train_00002918.jpg", "width": 512, "id": 2917, "height": 780}, {"file_name": "ADE_train_00002919.jpg", "width": 683, "id": 2918, "height": 512}, {"file_name": "ADE_train_00002920.jpg", "width": 512, "id": 2919, "height": 640}, {"file_name": "ADE_train_00002921.jpg", "width": 640, "id": 2920, "height": 480}, {"file_name": "ADE_train_00002922.jpg", "width": 256, "id": 2921, "height": 256}, {"file_name": "ADE_train_00002923.jpg", "width": 768, "id": 2922, "height": 512}, {"file_name": "ADE_train_00002924.jpg", "width": 256, "id": 2923, "height": 256}, {"file_name": "ADE_train_00002925.jpg", "width": 683, "id": 2924, "height": 512}, {"file_name": "ADE_train_00002926.jpg", "width": 256, "id": 2925, "height": 256}, {"file_name": "ADE_train_00002927.jpg", "width": 768, "id": 2926, "height": 512}, {"file_name": "ADE_train_00002928.jpg", "width": 236, "id": 2927, "height": 360}, {"file_name": "ADE_train_00002929.jpg", "width": 640, "id": 2928, "height": 428}, {"file_name": "ADE_train_00002930.jpg", "width": 512, "id": 2929, "height": 683}, {"file_name": "ADE_train_00002931.jpg", "width": 300, "id": 2930, "height": 300}, {"file_name": "ADE_train_00002932.jpg", "width": 512, "id": 2931, "height": 340}, {"file_name": "ADE_train_00002933.jpg", "width": 256, "id": 2932, "height": 256}, {"file_name": "ADE_train_00002934.jpg", "width": 256, "id": 2933, "height": 256}, {"file_name": "ADE_train_00002935.jpg", "width": 256, "id": 2934, "height": 256}, {"file_name": "ADE_train_00002936.jpg", "width": 512, "id": 2935, "height": 768}, {"file_name": "ADE_train_00002937.jpg", "width": 325, "id": 2936, "height": 244}, {"file_name": "ADE_train_00002938.jpg", "width": 799, "id": 2937, "height": 512}, {"file_name": "ADE_train_00002939.jpg", "width": 512, "id": 2938, "height": 683}, {"file_name": "ADE_train_00002940.jpg", "width": 783, "id": 2939, "height": 512}, {"file_name": "ADE_train_00002941.jpg", "width": 512, "id": 2940, "height": 683}, {"file_name": "ADE_train_00002942.jpg", "width": 256, "id": 2941, "height": 256}, {"file_name": "ADE_train_00002943.jpg", "width": 683, "id": 2942, "height": 512}, {"file_name": "ADE_train_00002944.jpg", "width": 300, "id": 2943, "height": 237}, {"file_name": "ADE_train_00002945.jpg", "width": 683, "id": 2944, "height": 512}, {"file_name": "ADE_train_00002946.jpg", "width": 300, "id": 2945, "height": 225}, {"file_name": "ADE_train_00002947.jpg", "width": 771, "id": 2946, "height": 512}, {"file_name": "ADE_train_00002948.jpg", "width": 684, "id": 2947, "height": 512}, {"file_name": "ADE_train_00002949.jpg", "width": 512, "id": 2948, "height": 683}, {"file_name": "ADE_train_00002950.jpg", "width": 300, "id": 2949, "height": 225}, {"file_name": "ADE_train_00002951.jpg", "width": 256, "id": 2950, "height": 256}, {"file_name": "ADE_train_00002952.jpg", "width": 683, "id": 2951, "height": 512}, {"file_name": "ADE_train_00002953.jpg", "width": 640, "id": 2952, "height": 480}, {"file_name": "ADE_train_00002954.jpg", "width": 640, "id": 2953, "height": 427}, {"file_name": "ADE_train_00002955.jpg", "width": 683, "id": 2954, "height": 512}, {"file_name": "ADE_train_00002956.jpg", "width": 256, "id": 2955, "height": 256}, {"file_name": "ADE_train_00002957.jpg", "width": 317, "id": 2956, "height": 512}, {"file_name": "ADE_train_00002958.jpg", "width": 640, "id": 2957, "height": 480}, {"file_name": "ADE_train_00002959.jpg", "width": 683, "id": 2958, "height": 512}, {"file_name": "ADE_train_00002960.jpg", "width": 256, "id": 2959, "height": 256}, {"file_name": "ADE_train_00002961.jpg", "width": 512, "id": 2960, "height": 683}, {"file_name": "ADE_train_00002962.jpg", "width": 683, "id": 2961, "height": 512}, {"file_name": "ADE_train_00002963.jpg", "width": 256, "id": 2962, "height": 256}, {"file_name": "ADE_train_00002964.jpg", "width": 765, "id": 2963, "height": 512}, {"file_name": "ADE_train_00002965.jpg", "width": 683, "id": 2964, "height": 512}, {"file_name": "ADE_train_00002966.jpg", "width": 400, "id": 2965, "height": 600}, {"file_name": "ADE_train_00002967.jpg", "width": 256, "id": 2966, "height": 256}, {"file_name": "ADE_train_00002968.jpg", "width": 200, "id": 2967, "height": 300}, {"file_name": "ADE_train_00002969.jpg", "width": 292, "id": 2968, "height": 512}, {"file_name": "ADE_train_00002970.jpg", "width": 300, "id": 2969, "height": 225}, {"file_name": "ADE_train_00002971.jpg", "width": 256, "id": 2970, "height": 256}, {"file_name": "ADE_train_00002972.jpg", "width": 340, "id": 2971, "height": 512}, {"file_name": "ADE_train_00002973.jpg", "width": 640, "id": 2972, "height": 480}, {"file_name": "ADE_train_00002974.jpg", "width": 683, "id": 2973, "height": 512}, {"file_name": "ADE_train_00002975.jpg", "width": 256, "id": 2974, "height": 256}, {"file_name": "ADE_train_00002976.jpg", "width": 683, "id": 2975, "height": 512}, {"file_name": "ADE_train_00002977.jpg", "width": 683, "id": 2976, "height": 512}, {"file_name": "ADE_train_00002978.jpg", "width": 250, "id": 2977, "height": 333}, {"file_name": "ADE_train_00002979.jpg", "width": 683, "id": 2978, "height": 512}, {"file_name": "ADE_train_00002980.jpg", "width": 512, "id": 2979, "height": 675}, {"file_name": "ADE_train_00002981.jpg", "width": 683, "id": 2980, "height": 512}, {"file_name": "ADE_train_00002982.jpg", "width": 256, "id": 2981, "height": 256}, {"file_name": "ADE_train_00002983.jpg", "width": 320, "id": 2982, "height": 240}, {"file_name": "ADE_train_00002984.jpg", "width": 512, "id": 2983, "height": 683}, {"file_name": "ADE_train_00002985.jpg", "width": 401, "id": 2984, "height": 600}, {"file_name": "ADE_train_00002986.jpg", "width": 232, "id": 2985, "height": 310}, {"file_name": "ADE_train_00002987.jpg", "width": 256, "id": 2986, "height": 256}, {"file_name": "ADE_train_00002988.jpg", "width": 680, "id": 2987, "height": 512}, {"file_name": "ADE_train_00002989.jpg", "width": 256, "id": 2988, "height": 256}, {"file_name": "ADE_train_00002990.jpg", "width": 683, "id": 2989, "height": 512}, {"file_name": "ADE_train_00002991.jpg", "width": 400, "id": 2990, "height": 600}, {"file_name": "ADE_train_00002992.jpg", "width": 300, "id": 2991, "height": 280}, {"file_name": "ADE_train_00002993.jpg", "width": 256, "id": 2992, "height": 256}, {"file_name": "ADE_train_00002994.jpg", "width": 512, "id": 2993, "height": 681}, {"file_name": "ADE_train_00002995.jpg", "width": 256, "id": 2994, "height": 256}, {"file_name": "ADE_train_00002996.jpg", "width": 683, "id": 2995, "height": 512}, {"file_name": "ADE_train_00002997.jpg", "width": 300, "id": 2996, "height": 225}, {"file_name": "ADE_train_00002998.jpg", "width": 512, "id": 2997, "height": 768}, {"file_name": "ADE_train_00002999.jpg", "width": 683, "id": 2998, "height": 512}, {"file_name": "ADE_train_00003000.jpg", "width": 683, "id": 2999, "height": 512}, {"file_name": "ADE_train_00003001.jpg", "width": 683, "id": 3000, "height": 512}, {"file_name": "ADE_train_00003002.jpg", "width": 512, "id": 3001, "height": 683}, {"file_name": "ADE_train_00003003.jpg", "width": 512, "id": 3002, "height": 766}, {"file_name": "ADE_train_00003004.jpg", "width": 512, "id": 3003, "height": 683}, {"file_name": "ADE_train_00003005.jpg", "width": 256, "id": 3004, "height": 256}, {"file_name": "ADE_train_00003006.jpg", "width": 512, "id": 3005, "height": 683}, {"file_name": "ADE_train_00003007.jpg", "width": 771, "id": 3006, "height": 512}, {"file_name": "ADE_train_00003008.jpg", "width": 683, "id": 3007, "height": 512}, {"file_name": "ADE_train_00003009.jpg", "width": 256, "id": 3008, "height": 256}, {"file_name": "ADE_train_00003010.jpg", "width": 683, "id": 3009, "height": 512}, {"file_name": "ADE_train_00003011.jpg", "width": 772, "id": 3010, "height": 512}, {"file_name": "ADE_train_00003012.jpg", "width": 512, "id": 3011, "height": 683}, {"file_name": "ADE_train_00003013.jpg", "width": 512, "id": 3012, "height": 683}, {"file_name": "ADE_train_00003014.jpg", "width": 512, "id": 3013, "height": 768}, {"file_name": "ADE_train_00003015.jpg", "width": 256, "id": 3014, "height": 256}, {"file_name": "ADE_train_00003016.jpg", "width": 225, "id": 3015, "height": 300}, {"file_name": "ADE_train_00003017.jpg", "width": 768, "id": 3016, "height": 512}, {"file_name": "ADE_train_00003018.jpg", "width": 512, "id": 3017, "height": 683}, {"file_name": "ADE_train_00003019.jpg", "width": 550, "id": 3018, "height": 367}, {"file_name": "ADE_train_00003020.jpg", "width": 216, "id": 3019, "height": 216}, {"file_name": "ADE_train_00003021.jpg", "width": 320, "id": 3020, "height": 302}, {"file_name": "ADE_train_00003022.jpg", "width": 200, "id": 3021, "height": 300}, {"file_name": "ADE_train_00003023.jpg", "width": 683, "id": 3022, "height": 512}, {"file_name": "ADE_train_00003024.jpg", "width": 400, "id": 3023, "height": 267}, {"file_name": "ADE_train_00003025.jpg", "width": 706, "id": 3024, "height": 512}, {"file_name": "ADE_train_00003026.jpg", "width": 540, "id": 3025, "height": 512}, {"file_name": "ADE_train_00003027.jpg", "width": 683, "id": 3026, "height": 512}, {"file_name": "ADE_train_00003028.jpg", "width": 414, "id": 3027, "height": 258}, {"file_name": "ADE_train_00003029.jpg", "width": 500, "id": 3028, "height": 375}, {"file_name": "ADE_train_00003030.jpg", "width": 400, "id": 3029, "height": 300}, {"file_name": "ADE_train_00003031.jpg", "width": 352, "id": 3030, "height": 264}, {"file_name": "ADE_train_00003032.jpg", "width": 400, "id": 3031, "height": 332}, {"file_name": "ADE_train_00003033.jpg", "width": 273, "id": 3032, "height": 204}, {"file_name": "ADE_train_00003034.jpg", "width": 289, "id": 3033, "height": 216}, {"file_name": "ADE_train_00003035.jpg", "width": 320, "id": 3034, "height": 240}, {"file_name": "ADE_train_00003036.jpg", "width": 692, "id": 3035, "height": 512}, {"file_name": "ADE_train_00003037.jpg", "width": 216, "id": 3036, "height": 200}, {"file_name": "ADE_train_00003038.jpg", "width": 500, "id": 3037, "height": 278}, {"file_name": "ADE_train_00003039.jpg", "width": 575, "id": 3038, "height": 422}, {"file_name": "ADE_train_00003040.jpg", "width": 639, "id": 3039, "height": 352}, {"file_name": "ADE_train_00003041.jpg", "width": 260, "id": 3040, "height": 260}, {"file_name": "ADE_train_00003042.jpg", "width": 414, "id": 3041, "height": 315}, {"file_name": "ADE_train_00003043.jpg", "width": 320, "id": 3042, "height": 240}, {"file_name": "ADE_train_00003044.jpg", "width": 454, "id": 3043, "height": 535}, {"file_name": "ADE_train_00003045.jpg", "width": 683, "id": 3044, "height": 512}, {"file_name": "ADE_train_00003046.jpg", "width": 225, "id": 3045, "height": 300}, {"file_name": "ADE_train_00003047.jpg", "width": 512, "id": 3046, "height": 706}, {"file_name": "ADE_train_00003048.jpg", "width": 687, "id": 3047, "height": 512}, {"file_name": "ADE_train_00003049.jpg", "width": 648, "id": 3048, "height": 486}, {"file_name": "ADE_train_00003050.jpg", "width": 300, "id": 3049, "height": 225}, {"file_name": "ADE_train_00003051.jpg", "width": 500, "id": 3050, "height": 335}, {"file_name": "ADE_train_00003052.jpg", "width": 329, "id": 3051, "height": 232}, {"file_name": "ADE_train_00003053.jpg", "width": 512, "id": 3052, "height": 770}, {"file_name": "ADE_train_00003054.jpg", "width": 400, "id": 3053, "height": 300}, {"file_name": "ADE_train_00003055.jpg", "width": 500, "id": 3054, "height": 375}, {"file_name": "ADE_train_00003056.jpg", "width": 769, "id": 3055, "height": 512}, {"file_name": "ADE_train_00003057.jpg", "width": 266, "id": 3056, "height": 200}, {"file_name": "ADE_train_00003058.jpg", "width": 683, "id": 3057, "height": 512}, {"file_name": "ADE_train_00003059.jpg", "width": 400, "id": 3058, "height": 266}, {"file_name": "ADE_train_00003060.jpg", "width": 362, "id": 3059, "height": 480}, {"file_name": "ADE_train_00003061.jpg", "width": 500, "id": 3060, "height": 375}, {"file_name": "ADE_train_00003062.jpg", "width": 280, "id": 3061, "height": 210}, {"file_name": "ADE_train_00003063.jpg", "width": 512, "id": 3062, "height": 683}, {"file_name": "ADE_train_00003064.jpg", "width": 250, "id": 3063, "height": 355}, {"file_name": "ADE_train_00003065.jpg", "width": 512, "id": 3064, "height": 683}, {"file_name": "ADE_train_00003066.jpg", "width": 683, "id": 3065, "height": 512}, {"file_name": "ADE_train_00003067.jpg", "width": 512, "id": 3066, "height": 705}, {"file_name": "ADE_train_00003068.jpg", "width": 400, "id": 3067, "height": 265}, {"file_name": "ADE_train_00003069.jpg", "width": 349, "id": 3068, "height": 242}, {"file_name": "ADE_train_00003070.jpg", "width": 762, "id": 3069, "height": 512}, {"file_name": "ADE_train_00003071.jpg", "width": 574, "id": 3070, "height": 366}, {"file_name": "ADE_train_00003072.jpg", "width": 380, "id": 3071, "height": 247}, {"file_name": "ADE_train_00003073.jpg", "width": 402, "id": 3072, "height": 334}, {"file_name": "ADE_train_00003074.jpg", "width": 309, "id": 3073, "height": 231}, {"file_name": "ADE_train_00003075.jpg", "width": 500, "id": 3074, "height": 291}, {"file_name": "ADE_train_00003076.jpg", "width": 686, "id": 3075, "height": 512}, {"file_name": "ADE_train_00003077.jpg", "width": 256, "id": 3076, "height": 256}, {"file_name": "ADE_train_00003078.jpg", "width": 256, "id": 3077, "height": 256}, {"file_name": "ADE_train_00003079.jpg", "width": 256, "id": 3078, "height": 256}, {"file_name": "ADE_train_00003080.jpg", "width": 256, "id": 3079, "height": 256}, {"file_name": "ADE_train_00003081.jpg", "width": 550, "id": 3080, "height": 358}, {"file_name": "ADE_train_00003082.jpg", "width": 256, "id": 3081, "height": 256}, {"file_name": "ADE_train_00003083.jpg", "width": 256, "id": 3082, "height": 256}, {"file_name": "ADE_train_00003084.jpg", "width": 256, "id": 3083, "height": 256}, {"file_name": "ADE_train_00003085.jpg", "width": 256, "id": 3084, "height": 256}, {"file_name": "ADE_train_00003086.jpg", "width": 256, "id": 3085, "height": 256}, {"file_name": "ADE_train_00003087.jpg", "width": 256, "id": 3086, "height": 256}, {"file_name": "ADE_train_00003088.jpg", "width": 256, "id": 3087, "height": 256}, {"file_name": "ADE_train_00003089.jpg", "width": 256, "id": 3088, "height": 256}, {"file_name": "ADE_train_00003090.jpg", "width": 256, "id": 3089, "height": 256}, {"file_name": "ADE_train_00003091.jpg", "width": 256, "id": 3090, "height": 256}, {"file_name": "ADE_train_00003092.jpg", "width": 256, "id": 3091, "height": 256}, {"file_name": "ADE_train_00003093.jpg", "width": 256, "id": 3092, "height": 256}, {"file_name": "ADE_train_00003094.jpg", "width": 256, "id": 3093, "height": 256}, {"file_name": "ADE_train_00003095.jpg", "width": 256, "id": 3094, "height": 256}, {"file_name": "ADE_train_00003096.jpg", "width": 256, "id": 3095, "height": 256}, {"file_name": "ADE_train_00003097.jpg", "width": 256, "id": 3096, "height": 256}, {"file_name": "ADE_train_00003098.jpg", "width": 256, "id": 3097, "height": 256}, {"file_name": "ADE_train_00003099.jpg", "width": 256, "id": 3098, "height": 256}, {"file_name": "ADE_train_00003100.jpg", "width": 256, "id": 3099, "height": 256}, {"file_name": "ADE_train_00003101.jpg", "width": 256, "id": 3100, "height": 256}, {"file_name": "ADE_train_00003102.jpg", "width": 256, "id": 3101, "height": 256}, {"file_name": "ADE_train_00003103.jpg", "width": 256, "id": 3102, "height": 256}, {"file_name": "ADE_train_00003104.jpg", "width": 256, "id": 3103, "height": 256}, {"file_name": "ADE_train_00003105.jpg", "width": 640, "id": 3104, "height": 480}, {"file_name": "ADE_train_00003106.jpg", "width": 256, "id": 3105, "height": 256}, {"file_name": "ADE_train_00003107.jpg", "width": 256, "id": 3106, "height": 256}, {"file_name": "ADE_train_00003108.jpg", "width": 256, "id": 3107, "height": 256}, {"file_name": "ADE_train_00003109.jpg", "width": 256, "id": 3108, "height": 256}, {"file_name": "ADE_train_00003110.jpg", "width": 256, "id": 3109, "height": 256}, {"file_name": "ADE_train_00003111.jpg", "width": 256, "id": 3110, "height": 256}, {"file_name": "ADE_train_00003112.jpg", "width": 256, "id": 3111, "height": 256}, {"file_name": "ADE_train_00003113.jpg", "width": 256, "id": 3112, "height": 256}, {"file_name": "ADE_train_00003114.jpg", "width": 256, "id": 3113, "height": 256}, {"file_name": "ADE_train_00003115.jpg", "width": 256, "id": 3114, "height": 256}, {"file_name": "ADE_train_00003116.jpg", "width": 256, "id": 3115, "height": 256}, {"file_name": "ADE_train_00003117.jpg", "width": 256, "id": 3116, "height": 256}, {"file_name": "ADE_train_00003118.jpg", "width": 256, "id": 3117, "height": 256}, {"file_name": "ADE_train_00003119.jpg", "width": 256, "id": 3118, "height": 256}, {"file_name": "ADE_train_00003120.jpg", "width": 256, "id": 3119, "height": 256}, {"file_name": "ADE_train_00003121.jpg", "width": 256, "id": 3120, "height": 256}, {"file_name": "ADE_train_00003122.jpg", "width": 256, "id": 3121, "height": 256}, {"file_name": "ADE_train_00003123.jpg", "width": 256, "id": 3122, "height": 256}, {"file_name": "ADE_train_00003124.jpg", "width": 256, "id": 3123, "height": 256}, {"file_name": "ADE_train_00003125.jpg", "width": 256, "id": 3124, "height": 256}, {"file_name": "ADE_train_00003126.jpg", "width": 256, "id": 3125, "height": 256}, {"file_name": "ADE_train_00003127.jpg", "width": 256, "id": 3126, "height": 256}, {"file_name": "ADE_train_00003128.jpg", "width": 256, "id": 3127, "height": 256}, {"file_name": "ADE_train_00003129.jpg", "width": 256, "id": 3128, "height": 256}, {"file_name": "ADE_train_00003130.jpg", "width": 256, "id": 3129, "height": 256}, {"file_name": "ADE_train_00003131.jpg", "width": 256, "id": 3130, "height": 256}, {"file_name": "ADE_train_00003132.jpg", "width": 256, "id": 3131, "height": 256}, {"file_name": "ADE_train_00003133.jpg", "width": 275, "id": 3132, "height": 205}, {"file_name": "ADE_train_00003134.jpg", "width": 256, "id": 3133, "height": 256}, {"file_name": "ADE_train_00003135.jpg", "width": 256, "id": 3134, "height": 256}, {"file_name": "ADE_train_00003136.jpg", "width": 256, "id": 3135, "height": 256}, {"file_name": "ADE_train_00003137.jpg", "width": 256, "id": 3136, "height": 256}, {"file_name": "ADE_train_00003138.jpg", "width": 256, "id": 3137, "height": 256}, {"file_name": "ADE_train_00003139.jpg", "width": 256, "id": 3138, "height": 256}, {"file_name": "ADE_train_00003140.jpg", "width": 256, "id": 3139, "height": 256}, {"file_name": "ADE_train_00003141.jpg", "width": 256, "id": 3140, "height": 256}, {"file_name": "ADE_train_00003142.jpg", "width": 256, "id": 3141, "height": 256}, {"file_name": "ADE_train_00003143.jpg", "width": 256, "id": 3142, "height": 256}, {"file_name": "ADE_train_00003144.jpg", "width": 256, "id": 3143, "height": 256}, {"file_name": "ADE_train_00003145.jpg", "width": 256, "id": 3144, "height": 256}, {"file_name": "ADE_train_00003146.jpg", "width": 256, "id": 3145, "height": 256}, {"file_name": "ADE_train_00003147.jpg", "width": 256, "id": 3146, "height": 256}, {"file_name": "ADE_train_00003148.jpg", "width": 400, "id": 3147, "height": 272}, {"file_name": "ADE_train_00003149.jpg", "width": 683, "id": 3148, "height": 512}, {"file_name": "ADE_train_00003150.jpg", "width": 400, "id": 3149, "height": 300}, {"file_name": "ADE_train_00003151.jpg", "width": 475, "id": 3150, "height": 335}, {"file_name": "ADE_train_00003152.jpg", "width": 300, "id": 3151, "height": 221}, {"file_name": "ADE_train_00003153.jpg", "width": 684, "id": 3152, "height": 512}, {"file_name": "ADE_train_00003154.jpg", "width": 335, "id": 3153, "height": 221}, {"file_name": "ADE_train_00003155.jpg", "width": 504, "id": 3154, "height": 378}, {"file_name": "ADE_train_00003156.jpg", "width": 540, "id": 3155, "height": 405}, {"file_name": "ADE_train_00003157.jpg", "width": 512, "id": 3156, "height": 683}, {"file_name": "ADE_train_00003158.jpg", "width": 256, "id": 3157, "height": 256}, {"file_name": "ADE_train_00003159.jpg", "width": 340, "id": 3158, "height": 240}, {"file_name": "ADE_train_00003160.jpg", "width": 683, "id": 3159, "height": 512}, {"file_name": "ADE_train_00003161.jpg", "width": 400, "id": 3160, "height": 269}, {"file_name": "ADE_train_00003162.jpg", "width": 640, "id": 3161, "height": 480}, {"file_name": "ADE_train_00003163.jpg", "width": 302, "id": 3162, "height": 380}, {"file_name": "ADE_train_00003164.jpg", "width": 300, "id": 3163, "height": 215}, {"file_name": "ADE_train_00003165.jpg", "width": 299, "id": 3164, "height": 400}, {"file_name": "ADE_train_00003166.jpg", "width": 256, "id": 3165, "height": 256}, {"file_name": "ADE_train_00003167.jpg", "width": 450, "id": 3166, "height": 597}, {"file_name": "ADE_train_00003168.jpg", "width": 527, "id": 3167, "height": 512}, {"file_name": "ADE_train_00003169.jpg", "width": 256, "id": 3168, "height": 256}, {"file_name": "ADE_train_00003170.jpg", "width": 369, "id": 3169, "height": 276}, {"file_name": "ADE_train_00003171.jpg", "width": 448, "id": 3170, "height": 297}, {"file_name": "ADE_train_00003172.jpg", "width": 256, "id": 3171, "height": 256}, {"file_name": "ADE_train_00003173.jpg", "width": 500, "id": 3172, "height": 375}, {"file_name": "ADE_train_00003174.jpg", "width": 600, "id": 3173, "height": 450}, {"file_name": "ADE_train_00003175.jpg", "width": 256, "id": 3174, "height": 256}, {"file_name": "ADE_train_00003176.jpg", "width": 540, "id": 3175, "height": 405}, {"file_name": "ADE_train_00003177.jpg", "width": 256, "id": 3176, "height": 256}, {"file_name": "ADE_train_00003178.jpg", "width": 384, "id": 3177, "height": 288}, {"file_name": "ADE_train_00003179.jpg", "width": 320, "id": 3178, "height": 240}, {"file_name": "ADE_train_00003180.jpg", "width": 683, "id": 3179, "height": 512}, {"file_name": "ADE_train_00003181.jpg", "width": 600, "id": 3180, "height": 450}, {"file_name": "ADE_train_00003182.jpg", "width": 256, "id": 3181, "height": 256}, {"file_name": "ADE_train_00003183.jpg", "width": 400, "id": 3182, "height": 300}, {"file_name": "ADE_train_00003184.jpg", "width": 256, "id": 3183, "height": 256}, {"file_name": "ADE_train_00003185.jpg", "width": 699, "id": 3184, "height": 512}, {"file_name": "ADE_train_00003186.jpg", "width": 256, "id": 3185, "height": 256}, {"file_name": "ADE_train_00003187.jpg", "width": 425, "id": 3186, "height": 319}, {"file_name": "ADE_train_00003188.jpg", "width": 170, "id": 3187, "height": 114}, {"file_name": "ADE_train_00003189.jpg", "width": 248, "id": 3188, "height": 169}, {"file_name": "ADE_train_00003190.jpg", "width": 500, "id": 3189, "height": 500}, {"file_name": "ADE_train_00003191.jpg", "width": 256, "id": 3190, "height": 256}, {"file_name": "ADE_train_00003192.jpg", "width": 450, "id": 3191, "height": 600}, {"file_name": "ADE_train_00003193.jpg", "width": 640, "id": 3192, "height": 480}, {"file_name": "ADE_train_00003194.jpg", "width": 300, "id": 3193, "height": 215}, {"file_name": "ADE_train_00003195.jpg", "width": 683, "id": 3194, "height": 512}, {"file_name": "ADE_train_00003196.jpg", "width": 240, "id": 3195, "height": 303}, {"file_name": "ADE_train_00003197.jpg", "width": 300, "id": 3196, "height": 205}, {"file_name": "ADE_train_00003198.jpg", "width": 450, "id": 3197, "height": 300}, {"file_name": "ADE_train_00003199.jpg", "width": 683, "id": 3198, "height": 512}, {"file_name": "ADE_train_00003200.jpg", "width": 270, "id": 3199, "height": 206}, {"file_name": "ADE_train_00003201.jpg", "width": 512, "id": 3200, "height": 683}, {"file_name": "ADE_train_00003202.jpg", "width": 600, "id": 3201, "height": 400}, {"file_name": "ADE_train_00003203.jpg", "width": 683, "id": 3202, "height": 512}, {"file_name": "ADE_train_00003204.jpg", "width": 683, "id": 3203, "height": 512}, {"file_name": "ADE_train_00003205.jpg", "width": 683, "id": 3204, "height": 512}, {"file_name": "ADE_train_00003206.jpg", "width": 683, "id": 3205, "height": 512}, {"file_name": "ADE_train_00003207.jpg", "width": 683, "id": 3206, "height": 512}, {"file_name": "ADE_train_00003208.jpg", "width": 683, "id": 3207, "height": 512}, {"file_name": "ADE_train_00003209.jpg", "width": 683, "id": 3208, "height": 512}, {"file_name": "ADE_train_00003210.jpg", "width": 512, "id": 3209, "height": 683}, {"file_name": "ADE_train_00003211.jpg", "width": 683, "id": 3210, "height": 512}, {"file_name": "ADE_train_00003212.jpg", "width": 683, "id": 3211, "height": 512}, {"file_name": "ADE_train_00003213.jpg", "width": 683, "id": 3212, "height": 512}, {"file_name": "ADE_train_00003214.jpg", "width": 683, "id": 3213, "height": 512}, {"file_name": "ADE_train_00003215.jpg", "width": 683, "id": 3214, "height": 512}, {"file_name": "ADE_train_00003216.jpg", "width": 683, "id": 3215, "height": 512}, {"file_name": "ADE_train_00003217.jpg", "width": 683, "id": 3216, "height": 512}, {"file_name": "ADE_train_00003218.jpg", "width": 683, "id": 3217, "height": 512}, {"file_name": "ADE_train_00003219.jpg", "width": 683, "id": 3218, "height": 512}, {"file_name": "ADE_train_00003220.jpg", "width": 683, "id": 3219, "height": 512}, {"file_name": "ADE_train_00003221.jpg", "width": 683, "id": 3220, "height": 512}, {"file_name": "ADE_train_00003222.jpg", "width": 500, "id": 3221, "height": 333}, {"file_name": "ADE_train_00003223.jpg", "width": 360, "id": 3222, "height": 244}, {"file_name": "ADE_train_00003224.jpg", "width": 683, "id": 3223, "height": 512}, {"file_name": "ADE_train_00003225.jpg", "width": 256, "id": 3224, "height": 256}, {"file_name": "ADE_train_00003226.jpg", "width": 512, "id": 3225, "height": 683}, {"file_name": "ADE_train_00003227.jpg", "width": 350, "id": 3226, "height": 233}, {"file_name": "ADE_train_00003228.jpg", "width": 683, "id": 3227, "height": 512}, {"file_name": "ADE_train_00003229.jpg", "width": 683, "id": 3228, "height": 512}, {"file_name": "ADE_train_00003230.jpg", "width": 512, "id": 3229, "height": 683}, {"file_name": "ADE_train_00003231.jpg", "width": 768, "id": 3230, "height": 512}, {"file_name": "ADE_train_00003232.jpg", "width": 300, "id": 3231, "height": 224}, {"file_name": "ADE_train_00003233.jpg", "width": 350, "id": 3232, "height": 210}, {"file_name": "ADE_train_00003234.jpg", "width": 683, "id": 3233, "height": 512}, {"file_name": "ADE_train_00003235.jpg", "width": 683, "id": 3234, "height": 512}, {"file_name": "ADE_train_00003236.jpg", "width": 683, "id": 3235, "height": 512}, {"file_name": "ADE_train_00003237.jpg", "width": 678, "id": 3236, "height": 512}, {"file_name": "ADE_train_00003238.jpg", "width": 683, "id": 3237, "height": 512}, {"file_name": "ADE_train_00003239.jpg", "width": 534, "id": 3238, "height": 512}, {"file_name": "ADE_train_00003240.jpg", "width": 768, "id": 3239, "height": 512}, {"file_name": "ADE_train_00003241.jpg", "width": 683, "id": 3240, "height": 512}, {"file_name": "ADE_train_00003242.jpg", "width": 512, "id": 3241, "height": 683}, {"file_name": "ADE_train_00003243.jpg", "width": 683, "id": 3242, "height": 512}, {"file_name": "ADE_train_00003244.jpg", "width": 256, "id": 3243, "height": 256}, {"file_name": "ADE_train_00003245.jpg", "width": 683, "id": 3244, "height": 512}, {"file_name": "ADE_train_00003246.jpg", "width": 256, "id": 3245, "height": 256}, {"file_name": "ADE_train_00003247.jpg", "width": 677, "id": 3246, "height": 512}, {"file_name": "ADE_train_00003248.jpg", "width": 683, "id": 3247, "height": 512}, {"file_name": "ADE_train_00003249.jpg", "width": 256, "id": 3248, "height": 256}, {"file_name": "ADE_train_00003250.jpg", "width": 340, "id": 3249, "height": 253}, {"file_name": "ADE_train_00003251.jpg", "width": 300, "id": 3250, "height": 200}, {"file_name": "ADE_train_00003252.jpg", "width": 683, "id": 3251, "height": 512}, {"file_name": "ADE_train_00003253.jpg", "width": 300, "id": 3252, "height": 225}, {"file_name": "ADE_train_00003254.jpg", "width": 768, "id": 3253, "height": 512}, {"file_name": "ADE_train_00003255.jpg", "width": 240, "id": 3254, "height": 320}, {"file_name": "ADE_train_00003256.jpg", "width": 278, "id": 3255, "height": 209}, {"file_name": "ADE_train_00003257.jpg", "width": 256, "id": 3256, "height": 256}, {"file_name": "ADE_train_00003258.jpg", "width": 801, "id": 3257, "height": 512}, {"file_name": "ADE_train_00003259.jpg", "width": 683, "id": 3258, "height": 512}, {"file_name": "ADE_train_00003260.jpg", "width": 683, "id": 3259, "height": 512}, {"file_name": "ADE_train_00003261.jpg", "width": 320, "id": 3260, "height": 228}, {"file_name": "ADE_train_00003262.jpg", "width": 256, "id": 3261, "height": 256}, {"file_name": "ADE_train_00003263.jpg", "width": 256, "id": 3262, "height": 256}, {"file_name": "ADE_train_00003264.jpg", "width": 256, "id": 3263, "height": 256}, {"file_name": "ADE_train_00003265.jpg", "width": 512, "id": 3264, "height": 398}, {"file_name": "ADE_train_00003266.jpg", "width": 739, "id": 3265, "height": 512}, {"file_name": "ADE_train_00003267.jpg", "width": 768, "id": 3266, "height": 512}, {"file_name": "ADE_train_00003268.jpg", "width": 512, "id": 3267, "height": 340}, {"file_name": "ADE_train_00003269.jpg", "width": 256, "id": 3268, "height": 256}, {"file_name": "ADE_train_00003270.jpg", "width": 280, "id": 3269, "height": 210}, {"file_name": "ADE_train_00003271.jpg", "width": 300, "id": 3270, "height": 225}, {"file_name": "ADE_train_00003272.jpg", "width": 336, "id": 3271, "height": 244}, {"file_name": "ADE_train_00003273.jpg", "width": 300, "id": 3272, "height": 225}, {"file_name": "ADE_train_00003274.jpg", "width": 500, "id": 3273, "height": 335}, {"file_name": "ADE_train_00003275.jpg", "width": 256, "id": 3274, "height": 256}, {"file_name": "ADE_train_00003276.jpg", "width": 565, "id": 3275, "height": 512}, {"file_name": "ADE_train_00003277.jpg", "width": 683, "id": 3276, "height": 512}, {"file_name": "ADE_train_00003278.jpg", "width": 256, "id": 3277, "height": 256}, {"file_name": "ADE_train_00003279.jpg", "width": 638, "id": 3278, "height": 512}, {"file_name": "ADE_train_00003280.jpg", "width": 741, "id": 3279, "height": 512}, {"file_name": "ADE_train_00003281.jpg", "width": 768, "id": 3280, "height": 512}, {"file_name": "ADE_train_00003282.jpg", "width": 512, "id": 3281, "height": 394}, {"file_name": "ADE_train_00003283.jpg", "width": 683, "id": 3282, "height": 512}, {"file_name": "ADE_train_00003284.jpg", "width": 256, "id": 3283, "height": 256}, {"file_name": "ADE_train_00003285.jpg", "width": 256, "id": 3284, "height": 256}, {"file_name": "ADE_train_00003286.jpg", "width": 683, "id": 3285, "height": 512}, {"file_name": "ADE_train_00003287.jpg", "width": 746, "id": 3286, "height": 512}, {"file_name": "ADE_train_00003288.jpg", "width": 683, "id": 3287, "height": 512}, {"file_name": "ADE_train_00003289.jpg", "width": 683, "id": 3288, "height": 512}, {"file_name": "ADE_train_00003290.jpg", "width": 256, "id": 3289, "height": 256}, {"file_name": "ADE_train_00003291.jpg", "width": 737, "id": 3290, "height": 492}, {"file_name": "ADE_train_00003292.jpg", "width": 300, "id": 3291, "height": 225}, {"file_name": "ADE_train_00003293.jpg", "width": 256, "id": 3292, "height": 256}, {"file_name": "ADE_train_00003294.jpg", "width": 683, "id": 3293, "height": 512}, {"file_name": "ADE_train_00003295.jpg", "width": 768, "id": 3294, "height": 512}, {"file_name": "ADE_train_00003296.jpg", "width": 400, "id": 3295, "height": 300}, {"file_name": "ADE_train_00003297.jpg", "width": 300, "id": 3296, "height": 225}, {"file_name": "ADE_train_00003298.jpg", "width": 260, "id": 3297, "height": 300}, {"file_name": "ADE_train_00003299.jpg", "width": 768, "id": 3298, "height": 512}, {"file_name": "ADE_train_00003300.jpg", "width": 683, "id": 3299, "height": 512}, {"file_name": "ADE_train_00003301.jpg", "width": 300, "id": 3300, "height": 225}, {"file_name": "ADE_train_00003302.jpg", "width": 683, "id": 3301, "height": 512}, {"file_name": "ADE_train_00003303.jpg", "width": 250, "id": 3302, "height": 183}, {"file_name": "ADE_train_00003304.jpg", "width": 683, "id": 3303, "height": 512}, {"file_name": "ADE_train_00003305.jpg", "width": 636, "id": 3304, "height": 512}, {"file_name": "ADE_train_00003306.jpg", "width": 649, "id": 3305, "height": 512}, {"file_name": "ADE_train_00003307.jpg", "width": 300, "id": 3306, "height": 207}, {"file_name": "ADE_train_00003308.jpg", "width": 300, "id": 3307, "height": 262}, {"file_name": "ADE_train_00003309.jpg", "width": 768, "id": 3308, "height": 512}, {"file_name": "ADE_train_00003310.jpg", "width": 256, "id": 3309, "height": 256}, {"file_name": "ADE_train_00003311.jpg", "width": 256, "id": 3310, "height": 256}, {"file_name": "ADE_train_00003312.jpg", "width": 768, "id": 3311, "height": 512}, {"file_name": "ADE_train_00003313.jpg", "width": 680, "id": 3312, "height": 512}, {"file_name": "ADE_train_00003314.jpg", "width": 767, "id": 3313, "height": 512}, {"file_name": "ADE_train_00003315.jpg", "width": 512, "id": 3314, "height": 340}, {"file_name": "ADE_train_00003316.jpg", "width": 683, "id": 3315, "height": 512}, {"file_name": "ADE_train_00003317.jpg", "width": 683, "id": 3316, "height": 512}, {"file_name": "ADE_train_00003318.jpg", "width": 300, "id": 3317, "height": 230}, {"file_name": "ADE_train_00003319.jpg", "width": 311, "id": 3318, "height": 512}, {"file_name": "ADE_train_00003320.jpg", "width": 683, "id": 3319, "height": 512}, {"file_name": "ADE_train_00003321.jpg", "width": 631, "id": 3320, "height": 512}, {"file_name": "ADE_train_00003322.jpg", "width": 313, "id": 3321, "height": 225}, {"file_name": "ADE_train_00003323.jpg", "width": 684, "id": 3322, "height": 512}, {"file_name": "ADE_train_00003324.jpg", "width": 683, "id": 3323, "height": 512}, {"file_name": "ADE_train_00003325.jpg", "width": 256, "id": 3324, "height": 256}, {"file_name": "ADE_train_00003326.jpg", "width": 256, "id": 3325, "height": 256}, {"file_name": "ADE_train_00003327.jpg", "width": 350, "id": 3326, "height": 218}, {"file_name": "ADE_train_00003328.jpg", "width": 683, "id": 3327, "height": 512}, {"file_name": "ADE_train_00003329.jpg", "width": 683, "id": 3328, "height": 512}, {"file_name": "ADE_train_00003330.jpg", "width": 300, "id": 3329, "height": 225}, {"file_name": "ADE_train_00003331.jpg", "width": 683, "id": 3330, "height": 512}, {"file_name": "ADE_train_00003332.jpg", "width": 600, "id": 3331, "height": 400}, {"file_name": "ADE_train_00003333.jpg", "width": 512, "id": 3332, "height": 683}, {"file_name": "ADE_train_00003334.jpg", "width": 683, "id": 3333, "height": 512}, {"file_name": "ADE_train_00003335.jpg", "width": 400, "id": 3334, "height": 600}, {"file_name": "ADE_train_00003336.jpg", "width": 384, "id": 3335, "height": 512}, {"file_name": "ADE_train_00003337.jpg", "width": 356, "id": 3336, "height": 247}, {"file_name": "ADE_train_00003338.jpg", "width": 512, "id": 3337, "height": 409}, {"file_name": "ADE_train_00003339.jpg", "width": 733, "id": 3338, "height": 512}, {"file_name": "ADE_train_00003340.jpg", "width": 768, "id": 3339, "height": 512}, {"file_name": "ADE_train_00003341.jpg", "width": 600, "id": 3340, "height": 456}, {"file_name": "ADE_train_00003342.jpg", "width": 683, "id": 3341, "height": 512}, {"file_name": "ADE_train_00003343.jpg", "width": 256, "id": 3342, "height": 256}, {"file_name": "ADE_train_00003344.jpg", "width": 683, "id": 3343, "height": 512}, {"file_name": "ADE_train_00003345.jpg", "width": 225, "id": 3344, "height": 300}, {"file_name": "ADE_train_00003346.jpg", "width": 300, "id": 3345, "height": 225}, {"file_name": "ADE_train_00003347.jpg", "width": 865, "id": 3346, "height": 512}, {"file_name": "ADE_train_00003348.jpg", "width": 512, "id": 3347, "height": 683}, {"file_name": "ADE_train_00003349.jpg", "width": 683, "id": 3348, "height": 512}, {"file_name": "ADE_train_00003350.jpg", "width": 300, "id": 3349, "height": 226}, {"file_name": "ADE_train_00003351.jpg", "width": 512, "id": 3350, "height": 572}, {"file_name": "ADE_train_00003352.jpg", "width": 320, "id": 3351, "height": 213}, {"file_name": "ADE_train_00003353.jpg", "width": 760, "id": 3352, "height": 512}, {"file_name": "ADE_train_00003354.jpg", "width": 571, "id": 3353, "height": 512}, {"file_name": "ADE_train_00003355.jpg", "width": 768, "id": 3354, "height": 512}, {"file_name": "ADE_train_00003356.jpg", "width": 320, "id": 3355, "height": 240}, {"file_name": "ADE_train_00003357.jpg", "width": 768, "id": 3356, "height": 512}, {"file_name": "ADE_train_00003358.jpg", "width": 512, "id": 3357, "height": 683}, {"file_name": "ADE_train_00003359.jpg", "width": 200, "id": 3358, "height": 256}, {"file_name": "ADE_train_00003360.jpg", "width": 320, "id": 3359, "height": 240}, {"file_name": "ADE_train_00003361.jpg", "width": 300, "id": 3360, "height": 300}, {"file_name": "ADE_train_00003362.jpg", "width": 640, "id": 3361, "height": 480}, {"file_name": "ADE_train_00003363.jpg", "width": 765, "id": 3362, "height": 512}, {"file_name": "ADE_train_00003364.jpg", "width": 240, "id": 3363, "height": 320}, {"file_name": "ADE_train_00003365.jpg", "width": 512, "id": 3364, "height": 683}, {"file_name": "ADE_train_00003366.jpg", "width": 256, "id": 3365, "height": 256}, {"file_name": "ADE_train_00003367.jpg", "width": 767, "id": 3366, "height": 512}, {"file_name": "ADE_train_00003368.jpg", "width": 768, "id": 3367, "height": 512}, {"file_name": "ADE_train_00003369.jpg", "width": 768, "id": 3368, "height": 512}, {"file_name": "ADE_train_00003370.jpg", "width": 683, "id": 3369, "height": 512}, {"file_name": "ADE_train_00003371.jpg", "width": 683, "id": 3370, "height": 512}, {"file_name": "ADE_train_00003372.jpg", "width": 770, "id": 3371, "height": 512}, {"file_name": "ADE_train_00003373.jpg", "width": 512, "id": 3372, "height": 768}, {"file_name": "ADE_train_00003374.jpg", "width": 256, "id": 3373, "height": 256}, {"file_name": "ADE_train_00003375.jpg", "width": 762, "id": 3374, "height": 512}, {"file_name": "ADE_train_00003376.jpg", "width": 300, "id": 3375, "height": 225}, {"file_name": "ADE_train_00003377.jpg", "width": 640, "id": 3376, "height": 480}, {"file_name": "ADE_train_00003378.jpg", "width": 692, "id": 3377, "height": 461}, {"file_name": "ADE_train_00003379.jpg", "width": 256, "id": 3378, "height": 256}, {"file_name": "ADE_train_00003380.jpg", "width": 768, "id": 3379, "height": 512}, {"file_name": "ADE_train_00003381.jpg", "width": 768, "id": 3380, "height": 512}, {"file_name": "ADE_train_00003382.jpg", "width": 750, "id": 3381, "height": 500}, {"file_name": "ADE_train_00003383.jpg", "width": 683, "id": 3382, "height": 512}, {"file_name": "ADE_train_00003384.jpg", "width": 216, "id": 3383, "height": 270}, {"file_name": "ADE_train_00003385.jpg", "width": 340, "id": 3384, "height": 255}, {"file_name": "ADE_train_00003386.jpg", "width": 300, "id": 3385, "height": 300}, {"file_name": "ADE_train_00003387.jpg", "width": 350, "id": 3386, "height": 238}, {"file_name": "ADE_train_00003388.jpg", "width": 300, "id": 3387, "height": 222}, {"file_name": "ADE_train_00003389.jpg", "width": 683, "id": 3388, "height": 512}, {"file_name": "ADE_train_00003390.jpg", "width": 299, "id": 3389, "height": 236}, {"file_name": "ADE_train_00003391.jpg", "width": 340, "id": 3390, "height": 512}, {"file_name": "ADE_train_00003392.jpg", "width": 300, "id": 3391, "height": 225}, {"file_name": "ADE_train_00003393.jpg", "width": 683, "id": 3392, "height": 512}, {"file_name": "ADE_train_00003394.jpg", "width": 256, "id": 3393, "height": 256}, {"file_name": "ADE_train_00003395.jpg", "width": 683, "id": 3394, "height": 512}, {"file_name": "ADE_train_00003396.jpg", "width": 768, "id": 3395, "height": 512}, {"file_name": "ADE_train_00003397.jpg", "width": 700, "id": 3396, "height": 463}, {"file_name": "ADE_train_00003398.jpg", "width": 683, "id": 3397, "height": 512}, {"file_name": "ADE_train_00003399.jpg", "width": 768, "id": 3398, "height": 512}, {"file_name": "ADE_train_00003400.jpg", "width": 225, "id": 3399, "height": 300}, {"file_name": "ADE_train_00003401.jpg", "width": 804, "id": 3400, "height": 512}, {"file_name": "ADE_train_00003402.jpg", "width": 512, "id": 3401, "height": 636}, {"file_name": "ADE_train_00003403.jpg", "width": 300, "id": 3402, "height": 261}, {"file_name": "ADE_train_00003404.jpg", "width": 700, "id": 3403, "height": 475}, {"file_name": "ADE_train_00003405.jpg", "width": 300, "id": 3404, "height": 225}, {"file_name": "ADE_train_00003406.jpg", "width": 765, "id": 3405, "height": 512}, {"file_name": "ADE_train_00003407.jpg", "width": 225, "id": 3406, "height": 300}, {"file_name": "ADE_train_00003408.jpg", "width": 275, "id": 3407, "height": 206}, {"file_name": "ADE_train_00003409.jpg", "width": 520, "id": 3408, "height": 390}, {"file_name": "ADE_train_00003410.jpg", "width": 683, "id": 3409, "height": 512}, {"file_name": "ADE_train_00003411.jpg", "width": 512, "id": 3410, "height": 471}, {"file_name": "ADE_train_00003412.jpg", "width": 770, "id": 3411, "height": 512}, {"file_name": "ADE_train_00003413.jpg", "width": 256, "id": 3412, "height": 256}, {"file_name": "ADE_train_00003414.jpg", "width": 350, "id": 3413, "height": 232}, {"file_name": "ADE_train_00003415.jpg", "width": 683, "id": 3414, "height": 512}, {"file_name": "ADE_train_00003416.jpg", "width": 684, "id": 3415, "height": 512}, {"file_name": "ADE_train_00003417.jpg", "width": 683, "id": 3416, "height": 512}, {"file_name": "ADE_train_00003418.jpg", "width": 683, "id": 3417, "height": 512}, {"file_name": "ADE_train_00003419.jpg", "width": 683, "id": 3418, "height": 512}, {"file_name": "ADE_train_00003420.jpg", "width": 683, "id": 3419, "height": 512}, {"file_name": "ADE_train_00003421.jpg", "width": 256, "id": 3420, "height": 256}, {"file_name": "ADE_train_00003422.jpg", "width": 768, "id": 3421, "height": 512}, {"file_name": "ADE_train_00003423.jpg", "width": 625, "id": 3422, "height": 407}, {"file_name": "ADE_train_00003424.jpg", "width": 256, "id": 3423, "height": 256}, {"file_name": "ADE_train_00003425.jpg", "width": 386, "id": 3424, "height": 600}, {"file_name": "ADE_train_00003426.jpg", "width": 222, "id": 3425, "height": 320}, {"file_name": "ADE_train_00003427.jpg", "width": 881, "id": 3426, "height": 512}, {"file_name": "ADE_train_00003428.jpg", "width": 256, "id": 3427, "height": 256}, {"file_name": "ADE_train_00003429.jpg", "width": 550, "id": 3428, "height": 412}, {"file_name": "ADE_train_00003430.jpg", "width": 683, "id": 3429, "height": 512}, {"file_name": "ADE_train_00003431.jpg", "width": 320, "id": 3430, "height": 240}, {"file_name": "ADE_train_00003432.jpg", "width": 640, "id": 3431, "height": 428}, {"file_name": "ADE_train_00003433.jpg", "width": 512, "id": 3432, "height": 588}, {"file_name": "ADE_train_00003434.jpg", "width": 300, "id": 3433, "height": 225}, {"file_name": "ADE_train_00003435.jpg", "width": 683, "id": 3434, "height": 512}, {"file_name": "ADE_train_00003436.jpg", "width": 600, "id": 3435, "height": 400}, {"file_name": "ADE_train_00003437.jpg", "width": 256, "id": 3436, "height": 256}, {"file_name": "ADE_train_00003438.jpg", "width": 895, "id": 3437, "height": 512}, {"file_name": "ADE_train_00003439.jpg", "width": 304, "id": 3438, "height": 237}, {"file_name": "ADE_train_00003440.jpg", "width": 640, "id": 3439, "height": 428}, {"file_name": "ADE_train_00003441.jpg", "width": 774, "id": 3440, "height": 512}, {"file_name": "ADE_train_00003442.jpg", "width": 712, "id": 3441, "height": 512}, {"file_name": "ADE_train_00003443.jpg", "width": 512, "id": 3442, "height": 683}, {"file_name": "ADE_train_00003444.jpg", "width": 500, "id": 3443, "height": 332}, {"file_name": "ADE_train_00003445.jpg", "width": 768, "id": 3444, "height": 512}, {"file_name": "ADE_train_00003446.jpg", "width": 300, "id": 3445, "height": 225}, {"file_name": "ADE_train_00003447.jpg", "width": 302, "id": 3446, "height": 200}, {"file_name": "ADE_train_00003448.jpg", "width": 256, "id": 3447, "height": 256}, {"file_name": "ADE_train_00003449.jpg", "width": 769, "id": 3448, "height": 512}, {"file_name": "ADE_train_00003450.jpg", "width": 683, "id": 3449, "height": 512}, {"file_name": "ADE_train_00003451.jpg", "width": 256, "id": 3450, "height": 256}, {"file_name": "ADE_train_00003452.jpg", "width": 512, "id": 3451, "height": 683}, {"file_name": "ADE_train_00003453.jpg", "width": 683, "id": 3452, "height": 512}, {"file_name": "ADE_train_00003454.jpg", "width": 768, "id": 3453, "height": 512}, {"file_name": "ADE_train_00003455.jpg", "width": 256, "id": 3454, "height": 256}, {"file_name": "ADE_train_00003456.jpg", "width": 512, "id": 3455, "height": 726}, {"file_name": "ADE_train_00003457.jpg", "width": 300, "id": 3456, "height": 224}, {"file_name": "ADE_train_00003458.jpg", "width": 256, "id": 3457, "height": 256}, {"file_name": "ADE_train_00003459.jpg", "width": 512, "id": 3458, "height": 683}, {"file_name": "ADE_train_00003460.jpg", "width": 512, "id": 3459, "height": 361}, {"file_name": "ADE_train_00003461.jpg", "width": 683, "id": 3460, "height": 512}, {"file_name": "ADE_train_00003462.jpg", "width": 678, "id": 3461, "height": 512}, {"file_name": "ADE_train_00003463.jpg", "width": 683, "id": 3462, "height": 512}, {"file_name": "ADE_train_00003464.jpg", "width": 300, "id": 3463, "height": 220}, {"file_name": "ADE_train_00003465.jpg", "width": 256, "id": 3464, "height": 256}, {"file_name": "ADE_train_00003466.jpg", "width": 256, "id": 3465, "height": 256}, {"file_name": "ADE_train_00003467.jpg", "width": 512, "id": 3466, "height": 683}, {"file_name": "ADE_train_00003468.jpg", "width": 683, "id": 3467, "height": 512}, {"file_name": "ADE_train_00003469.jpg", "width": 350, "id": 3468, "height": 227}, {"file_name": "ADE_train_00003470.jpg", "width": 295, "id": 3469, "height": 240}, {"file_name": "ADE_train_00003471.jpg", "width": 256, "id": 3470, "height": 256}, {"file_name": "ADE_train_00003472.jpg", "width": 256, "id": 3471, "height": 256}, {"file_name": "ADE_train_00003473.jpg", "width": 683, "id": 3472, "height": 512}, {"file_name": "ADE_train_00003474.jpg", "width": 640, "id": 3473, "height": 480}, {"file_name": "ADE_train_00003475.jpg", "width": 683, "id": 3474, "height": 512}, {"file_name": "ADE_train_00003476.jpg", "width": 640, "id": 3475, "height": 419}, {"file_name": "ADE_train_00003477.jpg", "width": 768, "id": 3476, "height": 512}, {"file_name": "ADE_train_00003478.jpg", "width": 640, "id": 3477, "height": 480}, {"file_name": "ADE_train_00003479.jpg", "width": 768, "id": 3478, "height": 512}, {"file_name": "ADE_train_00003480.jpg", "width": 768, "id": 3479, "height": 512}, {"file_name": "ADE_train_00003481.jpg", "width": 640, "id": 3480, "height": 427}, {"file_name": "ADE_train_00003482.jpg", "width": 683, "id": 3481, "height": 512}, {"file_name": "ADE_train_00003483.jpg", "width": 512, "id": 3482, "height": 683}, {"file_name": "ADE_train_00003484.jpg", "width": 683, "id": 3483, "height": 512}, {"file_name": "ADE_train_00003485.jpg", "width": 683, "id": 3484, "height": 512}, {"file_name": "ADE_train_00003486.jpg", "width": 300, "id": 3485, "height": 225}, {"file_name": "ADE_train_00003487.jpg", "width": 256, "id": 3486, "height": 256}, {"file_name": "ADE_train_00003488.jpg", "width": 683, "id": 3487, "height": 512}, {"file_name": "ADE_train_00003489.jpg", "width": 256, "id": 3488, "height": 256}, {"file_name": "ADE_train_00003490.jpg", "width": 683, "id": 3489, "height": 512}, {"file_name": "ADE_train_00003491.jpg", "width": 300, "id": 3490, "height": 225}, {"file_name": "ADE_train_00003492.jpg", "width": 733, "id": 3491, "height": 512}, {"file_name": "ADE_train_00003493.jpg", "width": 683, "id": 3492, "height": 512}, {"file_name": "ADE_train_00003494.jpg", "width": 683, "id": 3493, "height": 512}, {"file_name": "ADE_train_00003495.jpg", "width": 300, "id": 3494, "height": 225}, {"file_name": "ADE_train_00003496.jpg", "width": 683, "id": 3495, "height": 512}, {"file_name": "ADE_train_00003497.jpg", "width": 773, "id": 3496, "height": 512}, {"file_name": "ADE_train_00003498.jpg", "width": 256, "id": 3497, "height": 256}, {"file_name": "ADE_train_00003499.jpg", "width": 256, "id": 3498, "height": 256}, {"file_name": "ADE_train_00003500.jpg", "width": 683, "id": 3499, "height": 512}, {"file_name": "ADE_train_00003501.jpg", "width": 300, "id": 3500, "height": 236}, {"file_name": "ADE_train_00003502.jpg", "width": 300, "id": 3501, "height": 225}, {"file_name": "ADE_train_00003503.jpg", "width": 683, "id": 3502, "height": 512}, {"file_name": "ADE_train_00003504.jpg", "width": 493, "id": 3503, "height": 370}, {"file_name": "ADE_train_00003505.jpg", "width": 683, "id": 3504, "height": 512}, {"file_name": "ADE_train_00003506.jpg", "width": 716, "id": 3505, "height": 512}, {"file_name": "ADE_train_00003507.jpg", "width": 345, "id": 3506, "height": 259}, {"file_name": "ADE_train_00003508.jpg", "width": 408, "id": 3507, "height": 272}, {"file_name": "ADE_train_00003509.jpg", "width": 512, "id": 3508, "height": 683}, {"file_name": "ADE_train_00003510.jpg", "width": 512, "id": 3509, "height": 683}, {"file_name": "ADE_train_00003511.jpg", "width": 771, "id": 3510, "height": 512}, {"file_name": "ADE_train_00003512.jpg", "width": 431, "id": 3511, "height": 323}, {"file_name": "ADE_train_00003513.jpg", "width": 364, "id": 3512, "height": 206}, {"file_name": "ADE_train_00003514.jpg", "width": 300, "id": 3513, "height": 300}, {"file_name": "ADE_train_00003515.jpg", "width": 683, "id": 3514, "height": 512}, {"file_name": "ADE_train_00003516.jpg", "width": 898, "id": 3515, "height": 512}, {"file_name": "ADE_train_00003517.jpg", "width": 683, "id": 3516, "height": 512}, {"file_name": "ADE_train_00003518.jpg", "width": 640, "id": 3517, "height": 427}, {"file_name": "ADE_train_00003519.jpg", "width": 768, "id": 3518, "height": 512}, {"file_name": "ADE_train_00003520.jpg", "width": 540, "id": 3519, "height": 443}, {"file_name": "ADE_train_00003521.jpg", "width": 512, "id": 3520, "height": 683}, {"file_name": "ADE_train_00003522.jpg", "width": 764, "id": 3521, "height": 512}, {"file_name": "ADE_train_00003523.jpg", "width": 723, "id": 3522, "height": 512}, {"file_name": "ADE_train_00003524.jpg", "width": 600, "id": 3523, "height": 400}, {"file_name": "ADE_train_00003525.jpg", "width": 336, "id": 3524, "height": 252}, {"file_name": "ADE_train_00003526.jpg", "width": 768, "id": 3525, "height": 512}, {"file_name": "ADE_train_00003527.jpg", "width": 683, "id": 3526, "height": 512}, {"file_name": "ADE_train_00003528.jpg", "width": 312, "id": 3527, "height": 235}, {"file_name": "ADE_train_00003529.jpg", "width": 256, "id": 3528, "height": 256}, {"file_name": "ADE_train_00003530.jpg", "width": 256, "id": 3529, "height": 256}, {"file_name": "ADE_train_00003531.jpg", "width": 325, "id": 3530, "height": 244}, {"file_name": "ADE_train_00003532.jpg", "width": 256, "id": 3531, "height": 256}, {"file_name": "ADE_train_00003533.jpg", "width": 638, "id": 3532, "height": 512}, {"file_name": "ADE_train_00003534.jpg", "width": 683, "id": 3533, "height": 512}, {"file_name": "ADE_train_00003535.jpg", "width": 683, "id": 3534, "height": 512}, {"file_name": "ADE_train_00003536.jpg", "width": 683, "id": 3535, "height": 512}, {"file_name": "ADE_train_00003537.jpg", "width": 651, "id": 3536, "height": 512}, {"file_name": "ADE_train_00003538.jpg", "width": 400, "id": 3537, "height": 300}, {"file_name": "ADE_train_00003539.jpg", "width": 683, "id": 3538, "height": 512}, {"file_name": "ADE_train_00003540.jpg", "width": 300, "id": 3539, "height": 228}, {"file_name": "ADE_train_00003541.jpg", "width": 768, "id": 3540, "height": 512}, {"file_name": "ADE_train_00003542.jpg", "width": 256, "id": 3541, "height": 256}, {"file_name": "ADE_train_00003543.jpg", "width": 256, "id": 3542, "height": 256}, {"file_name": "ADE_train_00003544.jpg", "width": 694, "id": 3543, "height": 512}, {"file_name": "ADE_train_00003545.jpg", "width": 512, "id": 3544, "height": 389}, {"file_name": "ADE_train_00003546.jpg", "width": 710, "id": 3545, "height": 512}, {"file_name": "ADE_train_00003547.jpg", "width": 719, "id": 3546, "height": 512}, {"file_name": "ADE_train_00003548.jpg", "width": 300, "id": 3547, "height": 199}, {"file_name": "ADE_train_00003549.jpg", "width": 256, "id": 3548, "height": 256}, {"file_name": "ADE_train_00003550.jpg", "width": 291, "id": 3549, "height": 300}, {"file_name": "ADE_train_00003551.jpg", "width": 256, "id": 3550, "height": 256}, {"file_name": "ADE_train_00003552.jpg", "width": 768, "id": 3551, "height": 512}, {"file_name": "ADE_train_00003553.jpg", "width": 683, "id": 3552, "height": 512}, {"file_name": "ADE_train_00003554.jpg", "width": 512, "id": 3553, "height": 712}, {"file_name": "ADE_train_00003555.jpg", "width": 768, "id": 3554, "height": 512}, {"file_name": "ADE_train_00003556.jpg", "width": 325, "id": 3555, "height": 244}, {"file_name": "ADE_train_00003557.jpg", "width": 764, "id": 3556, "height": 512}, {"file_name": "ADE_train_00003558.jpg", "width": 750, "id": 3557, "height": 491}, {"file_name": "ADE_train_00003559.jpg", "width": 256, "id": 3558, "height": 256}, {"file_name": "ADE_train_00003560.jpg", "width": 282, "id": 3559, "height": 234}, {"file_name": "ADE_train_00003561.jpg", "width": 769, "id": 3560, "height": 512}, {"file_name": "ADE_train_00003562.jpg", "width": 765, "id": 3561, "height": 512}, {"file_name": "ADE_train_00003563.jpg", "width": 767, "id": 3562, "height": 512}, {"file_name": "ADE_train_00003564.jpg", "width": 683, "id": 3563, "height": 512}, {"file_name": "ADE_train_00003565.jpg", "width": 320, "id": 3564, "height": 240}, {"file_name": "ADE_train_00003566.jpg", "width": 768, "id": 3565, "height": 512}, {"file_name": "ADE_train_00003567.jpg", "width": 244, "id": 3566, "height": 325}, {"file_name": "ADE_train_00003568.jpg", "width": 320, "id": 3567, "height": 240}, {"file_name": "ADE_train_00003569.jpg", "width": 350, "id": 3568, "height": 250}, {"file_name": "ADE_train_00003570.jpg", "width": 683, "id": 3569, "height": 512}, {"file_name": "ADE_train_00003571.jpg", "width": 256, "id": 3570, "height": 256}, {"file_name": "ADE_train_00003572.jpg", "width": 300, "id": 3571, "height": 239}, {"file_name": "ADE_train_00003573.jpg", "width": 300, "id": 3572, "height": 225}, {"file_name": "ADE_train_00003574.jpg", "width": 768, "id": 3573, "height": 512}, {"file_name": "ADE_train_00003575.jpg", "width": 256, "id": 3574, "height": 256}, {"file_name": "ADE_train_00003576.jpg", "width": 683, "id": 3575, "height": 512}, {"file_name": "ADE_train_00003577.jpg", "width": 683, "id": 3576, "height": 512}, {"file_name": "ADE_train_00003578.jpg", "width": 500, "id": 3577, "height": 400}, {"file_name": "ADE_train_00003579.jpg", "width": 256, "id": 3578, "height": 256}, {"file_name": "ADE_train_00003580.jpg", "width": 743, "id": 3579, "height": 512}, {"file_name": "ADE_train_00003581.jpg", "width": 448, "id": 3580, "height": 302}, {"file_name": "ADE_train_00003582.jpg", "width": 683, "id": 3581, "height": 512}, {"file_name": "ADE_train_00003583.jpg", "width": 768, "id": 3582, "height": 512}, {"file_name": "ADE_train_00003584.jpg", "width": 764, "id": 3583, "height": 512}, {"file_name": "ADE_train_00003585.jpg", "width": 320, "id": 3584, "height": 240}, {"file_name": "ADE_train_00003586.jpg", "width": 683, "id": 3585, "height": 512}, {"file_name": "ADE_train_00003587.jpg", "width": 256, "id": 3586, "height": 256}, {"file_name": "ADE_train_00003588.jpg", "width": 768, "id": 3587, "height": 512}, {"file_name": "ADE_train_00003589.jpg", "width": 683, "id": 3588, "height": 512}, {"file_name": "ADE_train_00003590.jpg", "width": 770, "id": 3589, "height": 512}, {"file_name": "ADE_train_00003591.jpg", "width": 683, "id": 3590, "height": 512}, {"file_name": "ADE_train_00003592.jpg", "width": 682, "id": 3591, "height": 512}, {"file_name": "ADE_train_00003593.jpg", "width": 300, "id": 3592, "height": 225}, {"file_name": "ADE_train_00003594.jpg", "width": 300, "id": 3593, "height": 225}, {"file_name": "ADE_train_00003595.jpg", "width": 300, "id": 3594, "height": 225}, {"file_name": "ADE_train_00003596.jpg", "width": 256, "id": 3595, "height": 256}, {"file_name": "ADE_train_00003597.jpg", "width": 653, "id": 3596, "height": 512}, {"file_name": "ADE_train_00003598.jpg", "width": 651, "id": 3597, "height": 512}, {"file_name": "ADE_train_00003599.jpg", "width": 683, "id": 3598, "height": 512}, {"file_name": "ADE_train_00003600.jpg", "width": 512, "id": 3599, "height": 340}, {"file_name": "ADE_train_00003601.jpg", "width": 768, "id": 3600, "height": 512}, {"file_name": "ADE_train_00003602.jpg", "width": 512, "id": 3601, "height": 340}, {"file_name": "ADE_train_00003603.jpg", "width": 794, "id": 3602, "height": 512}, {"file_name": "ADE_train_00003604.jpg", "width": 616, "id": 3603, "height": 462}, {"file_name": "ADE_train_00003605.jpg", "width": 336, "id": 3604, "height": 512}, {"file_name": "ADE_train_00003606.jpg", "width": 683, "id": 3605, "height": 512}, {"file_name": "ADE_train_00003607.jpg", "width": 320, "id": 3606, "height": 240}, {"file_name": "ADE_train_00003608.jpg", "width": 340, "id": 3607, "height": 227}, {"file_name": "ADE_train_00003609.jpg", "width": 683, "id": 3608, "height": 512}, {"file_name": "ADE_train_00003610.jpg", "width": 450, "id": 3609, "height": 600}, {"file_name": "ADE_train_00003611.jpg", "width": 683, "id": 3610, "height": 512}, {"file_name": "ADE_train_00003612.jpg", "width": 314, "id": 3611, "height": 235}, {"file_name": "ADE_train_00003613.jpg", "width": 768, "id": 3612, "height": 512}, {"file_name": "ADE_train_00003614.jpg", "width": 683, "id": 3613, "height": 512}, {"file_name": "ADE_train_00003615.jpg", "width": 683, "id": 3614, "height": 512}, {"file_name": "ADE_train_00003616.jpg", "width": 512, "id": 3615, "height": 340}, {"file_name": "ADE_train_00003617.jpg", "width": 256, "id": 3616, "height": 256}, {"file_name": "ADE_train_00003618.jpg", "width": 440, "id": 3617, "height": 330}, {"file_name": "ADE_train_00003619.jpg", "width": 256, "id": 3618, "height": 256}, {"file_name": "ADE_train_00003620.jpg", "width": 681, "id": 3619, "height": 512}, {"file_name": "ADE_train_00003621.jpg", "width": 432, "id": 3620, "height": 342}, {"file_name": "ADE_train_00003622.jpg", "width": 256, "id": 3621, "height": 256}, {"file_name": "ADE_train_00003623.jpg", "width": 683, "id": 3622, "height": 512}, {"file_name": "ADE_train_00003624.jpg", "width": 320, "id": 3623, "height": 240}, {"file_name": "ADE_train_00003625.jpg", "width": 683, "id": 3624, "height": 512}, {"file_name": "ADE_train_00003626.jpg", "width": 320, "id": 3625, "height": 240}, {"file_name": "ADE_train_00003627.jpg", "width": 768, "id": 3626, "height": 512}, {"file_name": "ADE_train_00003628.jpg", "width": 700, "id": 3627, "height": 468}, {"file_name": "ADE_train_00003629.jpg", "width": 683, "id": 3628, "height": 512}, {"file_name": "ADE_train_00003630.jpg", "width": 683, "id": 3629, "height": 512}, {"file_name": "ADE_train_00003631.jpg", "width": 256, "id": 3630, "height": 256}, {"file_name": "ADE_train_00003632.jpg", "width": 358, "id": 3631, "height": 239}, {"file_name": "ADE_train_00003633.jpg", "width": 683, "id": 3632, "height": 512}, {"file_name": "ADE_train_00003634.jpg", "width": 512, "id": 3633, "height": 683}, {"file_name": "ADE_train_00003635.jpg", "width": 300, "id": 3634, "height": 300}, {"file_name": "ADE_train_00003636.jpg", "width": 682, "id": 3635, "height": 512}, {"file_name": "ADE_train_00003637.jpg", "width": 325, "id": 3636, "height": 223}, {"file_name": "ADE_train_00003638.jpg", "width": 693, "id": 3637, "height": 512}, {"file_name": "ADE_train_00003639.jpg", "width": 683, "id": 3638, "height": 512}, {"file_name": "ADE_train_00003640.jpg", "width": 683, "id": 3639, "height": 512}, {"file_name": "ADE_train_00003641.jpg", "width": 771, "id": 3640, "height": 512}, {"file_name": "ADE_train_00003642.jpg", "width": 683, "id": 3641, "height": 512}, {"file_name": "ADE_train_00003643.jpg", "width": 594, "id": 3642, "height": 512}, {"file_name": "ADE_train_00003644.jpg", "width": 1000, "id": 3643, "height": 500}, {"file_name": "ADE_train_00003645.jpg", "width": 768, "id": 3644, "height": 512}, {"file_name": "ADE_train_00003646.jpg", "width": 683, "id": 3645, "height": 512}, {"file_name": "ADE_train_00003647.jpg", "width": 683, "id": 3646, "height": 512}, {"file_name": "ADE_train_00003648.jpg", "width": 683, "id": 3647, "height": 512}, {"file_name": "ADE_train_00003649.jpg", "width": 767, "id": 3648, "height": 512}, {"file_name": "ADE_train_00003650.jpg", "width": 512, "id": 3649, "height": 683}, {"file_name": "ADE_train_00003651.jpg", "width": 256, "id": 3650, "height": 256}, {"file_name": "ADE_train_00003652.jpg", "width": 706, "id": 3651, "height": 512}, {"file_name": "ADE_train_00003653.jpg", "width": 300, "id": 3652, "height": 225}, {"file_name": "ADE_train_00003654.jpg", "width": 686, "id": 3653, "height": 512}, {"file_name": "ADE_train_00003655.jpg", "width": 256, "id": 3654, "height": 256}, {"file_name": "ADE_train_00003656.jpg", "width": 683, "id": 3655, "height": 512}, {"file_name": "ADE_train_00003657.jpg", "width": 768, "id": 3656, "height": 512}, {"file_name": "ADE_train_00003658.jpg", "width": 683, "id": 3657, "height": 512}, {"file_name": "ADE_train_00003659.jpg", "width": 771, "id": 3658, "height": 512}, {"file_name": "ADE_train_00003660.jpg", "width": 683, "id": 3659, "height": 512}, {"file_name": "ADE_train_00003661.jpg", "width": 808, "id": 3660, "height": 512}, {"file_name": "ADE_train_00003662.jpg", "width": 683, "id": 3661, "height": 512}, {"file_name": "ADE_train_00003663.jpg", "width": 256, "id": 3662, "height": 256}, {"file_name": "ADE_train_00003664.jpg", "width": 683, "id": 3663, "height": 512}, {"file_name": "ADE_train_00003665.jpg", "width": 765, "id": 3664, "height": 512}, {"file_name": "ADE_train_00003666.jpg", "width": 768, "id": 3665, "height": 512}, {"file_name": "ADE_train_00003667.jpg", "width": 683, "id": 3666, "height": 512}, {"file_name": "ADE_train_00003668.jpg", "width": 640, "id": 3667, "height": 427}, {"file_name": "ADE_train_00003669.jpg", "width": 683, "id": 3668, "height": 512}, {"file_name": "ADE_train_00003670.jpg", "width": 241, "id": 3669, "height": 321}, {"file_name": "ADE_train_00003671.jpg", "width": 682, "id": 3670, "height": 512}, {"file_name": "ADE_train_00003672.jpg", "width": 763, "id": 3671, "height": 512}, {"file_name": "ADE_train_00003673.jpg", "width": 256, "id": 3672, "height": 256}, {"file_name": "ADE_train_00003674.jpg", "width": 256, "id": 3673, "height": 256}, {"file_name": "ADE_train_00003675.jpg", "width": 771, "id": 3674, "height": 512}, {"file_name": "ADE_train_00003676.jpg", "width": 600, "id": 3675, "height": 400}, {"file_name": "ADE_train_00003677.jpg", "width": 683, "id": 3676, "height": 512}, {"file_name": "ADE_train_00003678.jpg", "width": 768, "id": 3677, "height": 512}, {"file_name": "ADE_train_00003679.jpg", "width": 684, "id": 3678, "height": 512}, {"file_name": "ADE_train_00003680.jpg", "width": 771, "id": 3679, "height": 512}, {"file_name": "ADE_train_00003681.jpg", "width": 256, "id": 3680, "height": 256}, {"file_name": "ADE_train_00003682.jpg", "width": 770, "id": 3681, "height": 512}, {"file_name": "ADE_train_00003683.jpg", "width": 667, "id": 3682, "height": 512}, {"file_name": "ADE_train_00003684.jpg", "width": 256, "id": 3683, "height": 256}, {"file_name": "ADE_train_00003685.jpg", "width": 765, "id": 3684, "height": 512}, {"file_name": "ADE_train_00003686.jpg", "width": 256, "id": 3685, "height": 256}, {"file_name": "ADE_train_00003687.jpg", "width": 684, "id": 3686, "height": 512}, {"file_name": "ADE_train_00003688.jpg", "width": 683, "id": 3687, "height": 512}, {"file_name": "ADE_train_00003689.jpg", "width": 682, "id": 3688, "height": 512}, {"file_name": "ADE_train_00003690.jpg", "width": 683, "id": 3689, "height": 512}, {"file_name": "ADE_train_00003691.jpg", "width": 320, "id": 3690, "height": 241}, {"file_name": "ADE_train_00003692.jpg", "width": 350, "id": 3691, "height": 246}, {"file_name": "ADE_train_00003693.jpg", "width": 683, "id": 3692, "height": 512}, {"file_name": "ADE_train_00003694.jpg", "width": 683, "id": 3693, "height": 512}, {"file_name": "ADE_train_00003695.jpg", "width": 360, "id": 3694, "height": 239}, {"file_name": "ADE_train_00003696.jpg", "width": 661, "id": 3695, "height": 512}, {"file_name": "ADE_train_00003697.jpg", "width": 683, "id": 3696, "height": 512}, {"file_name": "ADE_train_00003698.jpg", "width": 700, "id": 3697, "height": 475}, {"file_name": "ADE_train_00003699.jpg", "width": 300, "id": 3698, "height": 225}, {"file_name": "ADE_train_00003700.jpg", "width": 683, "id": 3699, "height": 512}, {"file_name": "ADE_train_00003701.jpg", "width": 255, "id": 3700, "height": 320}, {"file_name": "ADE_train_00003702.jpg", "width": 683, "id": 3701, "height": 512}, {"file_name": "ADE_train_00003703.jpg", "width": 225, "id": 3702, "height": 300}, {"file_name": "ADE_train_00003704.jpg", "width": 512, "id": 3703, "height": 391}, {"file_name": "ADE_train_00003705.jpg", "width": 679, "id": 3704, "height": 512}, {"file_name": "ADE_train_00003706.jpg", "width": 768, "id": 3705, "height": 512}, {"file_name": "ADE_train_00003707.jpg", "width": 408, "id": 3706, "height": 272}, {"file_name": "ADE_train_00003708.jpg", "width": 512, "id": 3707, "height": 340}, {"file_name": "ADE_train_00003709.jpg", "width": 683, "id": 3708, "height": 512}, {"file_name": "ADE_train_00003710.jpg", "width": 683, "id": 3709, "height": 512}, {"file_name": "ADE_train_00003711.jpg", "width": 780, "id": 3710, "height": 512}, {"file_name": "ADE_train_00003712.jpg", "width": 766, "id": 3711, "height": 512}, {"file_name": "ADE_train_00003713.jpg", "width": 683, "id": 3712, "height": 512}, {"file_name": "ADE_train_00003714.jpg", "width": 256, "id": 3713, "height": 256}, {"file_name": "ADE_train_00003715.jpg", "width": 683, "id": 3714, "height": 512}, {"file_name": "ADE_train_00003716.jpg", "width": 512, "id": 3715, "height": 340}, {"file_name": "ADE_train_00003717.jpg", "width": 768, "id": 3716, "height": 512}, {"file_name": "ADE_train_00003718.jpg", "width": 512, "id": 3717, "height": 682}, {"file_name": "ADE_train_00003719.jpg", "width": 500, "id": 3718, "height": 502}, {"file_name": "ADE_train_00003720.jpg", "width": 256, "id": 3719, "height": 256}, {"file_name": "ADE_train_00003721.jpg", "width": 720, "id": 3720, "height": 480}, {"file_name": "ADE_train_00003722.jpg", "width": 350, "id": 3721, "height": 233}, {"file_name": "ADE_train_00003723.jpg", "width": 258, "id": 3722, "height": 345}, {"file_name": "ADE_train_00003724.jpg", "width": 700, "id": 3723, "height": 462}, {"file_name": "ADE_train_00003725.jpg", "width": 256, "id": 3724, "height": 256}, {"file_name": "ADE_train_00003726.jpg", "width": 310, "id": 3725, "height": 240}, {"file_name": "ADE_train_00003727.jpg", "width": 770, "id": 3726, "height": 512}, {"file_name": "ADE_train_00003728.jpg", "width": 722, "id": 3727, "height": 512}, {"file_name": "ADE_train_00003729.jpg", "width": 360, "id": 3728, "height": 512}, {"file_name": "ADE_train_00003730.jpg", "width": 765, "id": 3729, "height": 512}, {"file_name": "ADE_train_00003731.jpg", "width": 768, "id": 3730, "height": 512}, {"file_name": "ADE_train_00003732.jpg", "width": 763, "id": 3731, "height": 512}, {"file_name": "ADE_train_00003733.jpg", "width": 640, "id": 3732, "height": 428}, {"file_name": "ADE_train_00003734.jpg", "width": 683, "id": 3733, "height": 512}, {"file_name": "ADE_train_00003735.jpg", "width": 683, "id": 3734, "height": 512}, {"file_name": "ADE_train_00003736.jpg", "width": 683, "id": 3735, "height": 512}, {"file_name": "ADE_train_00003737.jpg", "width": 256, "id": 3736, "height": 256}, {"file_name": "ADE_train_00003738.jpg", "width": 320, "id": 3737, "height": 228}, {"file_name": "ADE_train_00003739.jpg", "width": 225, "id": 3738, "height": 300}, {"file_name": "ADE_train_00003740.jpg", "width": 320, "id": 3739, "height": 240}, {"file_name": "ADE_train_00003741.jpg", "width": 683, "id": 3740, "height": 512}, {"file_name": "ADE_train_00003742.jpg", "width": 400, "id": 3741, "height": 303}, {"file_name": "ADE_train_00003743.jpg", "width": 256, "id": 3742, "height": 256}, {"file_name": "ADE_train_00003744.jpg", "width": 683, "id": 3743, "height": 512}, {"file_name": "ADE_train_00003745.jpg", "width": 256, "id": 3744, "height": 256}, {"file_name": "ADE_train_00003746.jpg", "width": 683, "id": 3745, "height": 512}, {"file_name": "ADE_train_00003747.jpg", "width": 683, "id": 3746, "height": 512}, {"file_name": "ADE_train_00003748.jpg", "width": 335, "id": 3747, "height": 225}, {"file_name": "ADE_train_00003749.jpg", "width": 320, "id": 3748, "height": 240}, {"file_name": "ADE_train_00003750.jpg", "width": 454, "id": 3749, "height": 295}, {"file_name": "ADE_train_00003751.jpg", "width": 300, "id": 3750, "height": 225}, {"file_name": "ADE_train_00003752.jpg", "width": 400, "id": 3751, "height": 301}, {"file_name": "ADE_train_00003753.jpg", "width": 784, "id": 3752, "height": 512}, {"file_name": "ADE_train_00003754.jpg", "width": 256, "id": 3753, "height": 256}, {"file_name": "ADE_train_00003755.jpg", "width": 512, "id": 3754, "height": 770}, {"file_name": "ADE_train_00003756.jpg", "width": 683, "id": 3755, "height": 512}, {"file_name": "ADE_train_00003757.jpg", "width": 683, "id": 3756, "height": 512}, {"file_name": "ADE_train_00003758.jpg", "width": 683, "id": 3757, "height": 512}, {"file_name": "ADE_train_00003759.jpg", "width": 350, "id": 3758, "height": 232}, {"file_name": "ADE_train_00003760.jpg", "width": 256, "id": 3759, "height": 256}, {"file_name": "ADE_train_00003761.jpg", "width": 800, "id": 3760, "height": 486}, {"file_name": "ADE_train_00003762.jpg", "width": 750, "id": 3761, "height": 499}, {"file_name": "ADE_train_00003763.jpg", "width": 765, "id": 3762, "height": 512}, {"file_name": "ADE_train_00003764.jpg", "width": 683, "id": 3763, "height": 512}, {"file_name": "ADE_train_00003765.jpg", "width": 300, "id": 3764, "height": 300}, {"file_name": "ADE_train_00003766.jpg", "width": 300, "id": 3765, "height": 225}, {"file_name": "ADE_train_00003767.jpg", "width": 768, "id": 3766, "height": 512}, {"file_name": "ADE_train_00003768.jpg", "width": 310, "id": 3767, "height": 233}, {"file_name": "ADE_train_00003769.jpg", "width": 600, "id": 3768, "height": 387}, {"file_name": "ADE_train_00003770.jpg", "width": 768, "id": 3769, "height": 512}, {"file_name": "ADE_train_00003771.jpg", "width": 640, "id": 3770, "height": 512}, {"file_name": "ADE_train_00003772.jpg", "width": 768, "id": 3771, "height": 512}, {"file_name": "ADE_train_00003773.jpg", "width": 640, "id": 3772, "height": 219}, {"file_name": "ADE_train_00003774.jpg", "width": 239, "id": 3773, "height": 250}, {"file_name": "ADE_train_00003775.jpg", "width": 640, "id": 3774, "height": 480}, {"file_name": "ADE_train_00003776.jpg", "width": 512, "id": 3775, "height": 683}, {"file_name": "ADE_train_00003777.jpg", "width": 765, "id": 3776, "height": 512}, {"file_name": "ADE_train_00003778.jpg", "width": 683, "id": 3777, "height": 512}, {"file_name": "ADE_train_00003779.jpg", "width": 683, "id": 3778, "height": 512}, {"file_name": "ADE_train_00003780.jpg", "width": 500, "id": 3779, "height": 628}, {"file_name": "ADE_train_00003781.jpg", "width": 683, "id": 3780, "height": 512}, {"file_name": "ADE_train_00003782.jpg", "width": 285, "id": 3781, "height": 288}, {"file_name": "ADE_train_00003783.jpg", "width": 770, "id": 3782, "height": 512}, {"file_name": "ADE_train_00003784.jpg", "width": 300, "id": 3783, "height": 225}, {"file_name": "ADE_train_00003785.jpg", "width": 750, "id": 3784, "height": 500}, {"file_name": "ADE_train_00003786.jpg", "width": 361, "id": 3785, "height": 315}, {"file_name": "ADE_train_00003787.jpg", "width": 300, "id": 3786, "height": 230}, {"file_name": "ADE_train_00003788.jpg", "width": 256, "id": 3787, "height": 256}, {"file_name": "ADE_train_00003789.jpg", "width": 512, "id": 3788, "height": 567}, {"file_name": "ADE_train_00003790.jpg", "width": 363, "id": 3789, "height": 212}, {"file_name": "ADE_train_00003791.jpg", "width": 256, "id": 3790, "height": 256}, {"file_name": "ADE_train_00003792.jpg", "width": 320, "id": 3791, "height": 240}, {"file_name": "ADE_train_00003793.jpg", "width": 683, "id": 3792, "height": 512}, {"file_name": "ADE_train_00003794.jpg", "width": 300, "id": 3793, "height": 225}, {"file_name": "ADE_train_00003795.jpg", "width": 256, "id": 3794, "height": 256}, {"file_name": "ADE_train_00003796.jpg", "width": 696, "id": 3795, "height": 512}, {"file_name": "ADE_train_00003797.jpg", "width": 683, "id": 3796, "height": 512}, {"file_name": "ADE_train_00003798.jpg", "width": 768, "id": 3797, "height": 512}, {"file_name": "ADE_train_00003799.jpg", "width": 300, "id": 3798, "height": 225}, {"file_name": "ADE_train_00003800.jpg", "width": 350, "id": 3799, "height": 234}, {"file_name": "ADE_train_00003801.jpg", "width": 256, "id": 3800, "height": 256}, {"file_name": "ADE_train_00003802.jpg", "width": 768, "id": 3801, "height": 512}, {"file_name": "ADE_train_00003803.jpg", "width": 695, "id": 3802, "height": 457}, {"file_name": "ADE_train_00003804.jpg", "width": 771, "id": 3803, "height": 512}, {"file_name": "ADE_train_00003805.jpg", "width": 683, "id": 3804, "height": 512}, {"file_name": "ADE_train_00003806.jpg", "width": 693, "id": 3805, "height": 512}, {"file_name": "ADE_train_00003807.jpg", "width": 782, "id": 3806, "height": 512}, {"file_name": "ADE_train_00003808.jpg", "width": 773, "id": 3807, "height": 512}, {"file_name": "ADE_train_00003809.jpg", "width": 712, "id": 3808, "height": 512}, {"file_name": "ADE_train_00003810.jpg", "width": 683, "id": 3809, "height": 512}, {"file_name": "ADE_train_00003811.jpg", "width": 640, "id": 3810, "height": 480}, {"file_name": "ADE_train_00003812.jpg", "width": 725, "id": 3811, "height": 512}, {"file_name": "ADE_train_00003813.jpg", "width": 512, "id": 3812, "height": 768}, {"file_name": "ADE_train_00003814.jpg", "width": 1177, "id": 3813, "height": 512}, {"file_name": "ADE_train_00003815.jpg", "width": 256, "id": 3814, "height": 256}, {"file_name": "ADE_train_00003816.jpg", "width": 360, "id": 3815, "height": 239}, {"file_name": "ADE_train_00003817.jpg", "width": 771, "id": 3816, "height": 512}, {"file_name": "ADE_train_00003818.jpg", "width": 320, "id": 3817, "height": 240}, {"file_name": "ADE_train_00003819.jpg", "width": 256, "id": 3818, "height": 256}, {"file_name": "ADE_train_00003820.jpg", "width": 683, "id": 3819, "height": 512}, {"file_name": "ADE_train_00003821.jpg", "width": 512, "id": 3820, "height": 683}, {"file_name": "ADE_train_00003822.jpg", "width": 683, "id": 3821, "height": 512}, {"file_name": "ADE_train_00003823.jpg", "width": 316, "id": 3822, "height": 238}, {"file_name": "ADE_train_00003824.jpg", "width": 648, "id": 3823, "height": 511}, {"file_name": "ADE_train_00003825.jpg", "width": 320, "id": 3824, "height": 240}, {"file_name": "ADE_train_00003826.jpg", "width": 683, "id": 3825, "height": 512}, {"file_name": "ADE_train_00003827.jpg", "width": 350, "id": 3826, "height": 249}, {"file_name": "ADE_train_00003828.jpg", "width": 350, "id": 3827, "height": 229}, {"file_name": "ADE_train_00003829.jpg", "width": 512, "id": 3828, "height": 384}, {"file_name": "ADE_train_00003830.jpg", "width": 765, "id": 3829, "height": 512}, {"file_name": "ADE_train_00003831.jpg", "width": 683, "id": 3830, "height": 512}, {"file_name": "ADE_train_00003832.jpg", "width": 640, "id": 3831, "height": 480}, {"file_name": "ADE_train_00003833.jpg", "width": 627, "id": 3832, "height": 512}, {"file_name": "ADE_train_00003834.jpg", "width": 683, "id": 3833, "height": 512}, {"file_name": "ADE_train_00003835.jpg", "width": 683, "id": 3834, "height": 512}, {"file_name": "ADE_train_00003836.jpg", "width": 285, "id": 3835, "height": 214}, {"file_name": "ADE_train_00003837.jpg", "width": 683, "id": 3836, "height": 512}, {"file_name": "ADE_train_00003838.jpg", "width": 512, "id": 3837, "height": 768}, {"file_name": "ADE_train_00003839.jpg", "width": 270, "id": 3838, "height": 203}, {"file_name": "ADE_train_00003840.jpg", "width": 256, "id": 3839, "height": 256}, {"file_name": "ADE_train_00003841.jpg", "width": 546, "id": 3840, "height": 512}, {"file_name": "ADE_train_00003842.jpg", "width": 300, "id": 3841, "height": 225}, {"file_name": "ADE_train_00003843.jpg", "width": 256, "id": 3842, "height": 256}, {"file_name": "ADE_train_00003844.jpg", "width": 683, "id": 3843, "height": 512}, {"file_name": "ADE_train_00003845.jpg", "width": 256, "id": 3844, "height": 256}, {"file_name": "ADE_train_00003846.jpg", "width": 683, "id": 3845, "height": 512}, {"file_name": "ADE_train_00003847.jpg", "width": 773, "id": 3846, "height": 512}, {"file_name": "ADE_train_00003848.jpg", "width": 480, "id": 3847, "height": 360}, {"file_name": "ADE_train_00003849.jpg", "width": 683, "id": 3848, "height": 512}, {"file_name": "ADE_train_00003850.jpg", "width": 290, "id": 3849, "height": 216}, {"file_name": "ADE_train_00003851.jpg", "width": 768, "id": 3850, "height": 512}, {"file_name": "ADE_train_00003852.jpg", "width": 765, "id": 3851, "height": 512}, {"file_name": "ADE_train_00003853.jpg", "width": 768, "id": 3852, "height": 512}, {"file_name": "ADE_train_00003854.jpg", "width": 300, "id": 3853, "height": 225}, {"file_name": "ADE_train_00003855.jpg", "width": 301, "id": 3854, "height": 225}, {"file_name": "ADE_train_00003856.jpg", "width": 512, "id": 3855, "height": 535}, {"file_name": "ADE_train_00003857.jpg", "width": 320, "id": 3856, "height": 240}, {"file_name": "ADE_train_00003858.jpg", "width": 779, "id": 3857, "height": 512}, {"file_name": "ADE_train_00003859.jpg", "width": 640, "id": 3858, "height": 427}, {"file_name": "ADE_train_00003860.jpg", "width": 256, "id": 3859, "height": 256}, {"file_name": "ADE_train_00003861.jpg", "width": 225, "id": 3860, "height": 300}, {"file_name": "ADE_train_00003862.jpg", "width": 378, "id": 3861, "height": 228}, {"file_name": "ADE_train_00003863.jpg", "width": 910, "id": 3862, "height": 512}, {"file_name": "ADE_train_00003864.jpg", "width": 300, "id": 3863, "height": 300}, {"file_name": "ADE_train_00003865.jpg", "width": 256, "id": 3864, "height": 256}, {"file_name": "ADE_train_00003866.jpg", "width": 672, "id": 3865, "height": 512}, {"file_name": "ADE_train_00003867.jpg", "width": 835, "id": 3866, "height": 512}, {"file_name": "ADE_train_00003868.jpg", "width": 256, "id": 3867, "height": 256}, {"file_name": "ADE_train_00003869.jpg", "width": 683, "id": 3868, "height": 512}, {"file_name": "ADE_train_00003870.jpg", "width": 300, "id": 3869, "height": 300}, {"file_name": "ADE_train_00003871.jpg", "width": 320, "id": 3870, "height": 240}, {"file_name": "ADE_train_00003872.jpg", "width": 298, "id": 3871, "height": 449}, {"file_name": "ADE_train_00003873.jpg", "width": 683, "id": 3872, "height": 512}, {"file_name": "ADE_train_00003874.jpg", "width": 360, "id": 3873, "height": 250}, {"file_name": "ADE_train_00003875.jpg", "width": 512, "id": 3874, "height": 417}, {"file_name": "ADE_train_00003876.jpg", "width": 768, "id": 3875, "height": 512}, {"file_name": "ADE_train_00003877.jpg", "width": 256, "id": 3876, "height": 256}, {"file_name": "ADE_train_00003878.jpg", "width": 512, "id": 3877, "height": 768}, {"file_name": "ADE_train_00003879.jpg", "width": 300, "id": 3878, "height": 240}, {"file_name": "ADE_train_00003880.jpg", "width": 798, "id": 3879, "height": 512}, {"file_name": "ADE_train_00003881.jpg", "width": 683, "id": 3880, "height": 512}, {"file_name": "ADE_train_00003882.jpg", "width": 512, "id": 3881, "height": 365}, {"file_name": "ADE_train_00003883.jpg", "width": 640, "id": 3882, "height": 427}, {"file_name": "ADE_train_00003884.jpg", "width": 683, "id": 3883, "height": 512}, {"file_name": "ADE_train_00003885.jpg", "width": 512, "id": 3884, "height": 768}, {"file_name": "ADE_train_00003886.jpg", "width": 768, "id": 3885, "height": 512}, {"file_name": "ADE_train_00003887.jpg", "width": 256, "id": 3886, "height": 256}, {"file_name": "ADE_train_00003888.jpg", "width": 683, "id": 3887, "height": 512}, {"file_name": "ADE_train_00003889.jpg", "width": 287, "id": 3888, "height": 215}, {"file_name": "ADE_train_00003890.jpg", "width": 683, "id": 3889, "height": 512}, {"file_name": "ADE_train_00003891.jpg", "width": 250, "id": 3890, "height": 290}, {"file_name": "ADE_train_00003892.jpg", "width": 300, "id": 3891, "height": 300}, {"file_name": "ADE_train_00003893.jpg", "width": 256, "id": 3892, "height": 256}, {"file_name": "ADE_train_00003894.jpg", "width": 768, "id": 3893, "height": 512}, {"file_name": "ADE_train_00003895.jpg", "width": 512, "id": 3894, "height": 465}, {"file_name": "ADE_train_00003896.jpg", "width": 678, "id": 3895, "height": 512}, {"file_name": "ADE_train_00003897.jpg", "width": 683, "id": 3896, "height": 512}, {"file_name": "ADE_train_00003898.jpg", "width": 512, "id": 3897, "height": 683}, {"file_name": "ADE_train_00003899.jpg", "width": 686, "id": 3898, "height": 512}, {"file_name": "ADE_train_00003900.jpg", "width": 683, "id": 3899, "height": 512}, {"file_name": "ADE_train_00003901.jpg", "width": 683, "id": 3900, "height": 512}, {"file_name": "ADE_train_00003902.jpg", "width": 768, "id": 3901, "height": 512}, {"file_name": "ADE_train_00003903.jpg", "width": 683, "id": 3902, "height": 512}, {"file_name": "ADE_train_00003904.jpg", "width": 770, "id": 3903, "height": 512}, {"file_name": "ADE_train_00003905.jpg", "width": 683, "id": 3904, "height": 512}, {"file_name": "ADE_train_00003906.jpg", "width": 683, "id": 3905, "height": 512}, {"file_name": "ADE_train_00003907.jpg", "width": 683, "id": 3906, "height": 512}, {"file_name": "ADE_train_00003908.jpg", "width": 683, "id": 3907, "height": 512}, {"file_name": "ADE_train_00003909.jpg", "width": 682, "id": 3908, "height": 512}, {"file_name": "ADE_train_00003910.jpg", "width": 768, "id": 3909, "height": 512}, {"file_name": "ADE_train_00003911.jpg", "width": 300, "id": 3910, "height": 225}, {"file_name": "ADE_train_00003912.jpg", "width": 683, "id": 3911, "height": 512}, {"file_name": "ADE_train_00003913.jpg", "width": 683, "id": 3912, "height": 512}, {"file_name": "ADE_train_00003914.jpg", "width": 512, "id": 3913, "height": 683}, {"file_name": "ADE_train_00003915.jpg", "width": 360, "id": 3914, "height": 240}, {"file_name": "ADE_train_00003916.jpg", "width": 661, "id": 3915, "height": 512}, {"file_name": "ADE_train_00003917.jpg", "width": 592, "id": 3916, "height": 512}, {"file_name": "ADE_train_00003918.jpg", "width": 763, "id": 3917, "height": 512}, {"file_name": "ADE_train_00003919.jpg", "width": 818, "id": 3918, "height": 512}, {"file_name": "ADE_train_00003920.jpg", "width": 683, "id": 3919, "height": 512}, {"file_name": "ADE_train_00003921.jpg", "width": 512, "id": 3920, "height": 683}, {"file_name": "ADE_train_00003922.jpg", "width": 683, "id": 3921, "height": 512}, {"file_name": "ADE_train_00003923.jpg", "width": 770, "id": 3922, "height": 512}, {"file_name": "ADE_train_00003924.jpg", "width": 684, "id": 3923, "height": 512}, {"file_name": "ADE_train_00003925.jpg", "width": 683, "id": 3924, "height": 512}, {"file_name": "ADE_train_00003926.jpg", "width": 500, "id": 3925, "height": 375}, {"file_name": "ADE_train_00003927.jpg", "width": 683, "id": 3926, "height": 512}, {"file_name": "ADE_train_00003928.jpg", "width": 500, "id": 3927, "height": 447}, {"file_name": "ADE_train_00003929.jpg", "width": 802, "id": 3928, "height": 512}, {"file_name": "ADE_train_00003930.jpg", "width": 480, "id": 3929, "height": 320}, {"file_name": "ADE_train_00003931.jpg", "width": 683, "id": 3930, "height": 512}, {"file_name": "ADE_train_00003932.jpg", "width": 256, "id": 3931, "height": 256}, {"file_name": "ADE_train_00003933.jpg", "width": 764, "id": 3932, "height": 512}, {"file_name": "ADE_train_00003934.jpg", "width": 512, "id": 3933, "height": 418}, {"file_name": "ADE_train_00003935.jpg", "width": 683, "id": 3934, "height": 512}, {"file_name": "ADE_train_00003936.jpg", "width": 683, "id": 3935, "height": 512}, {"file_name": "ADE_train_00003937.jpg", "width": 683, "id": 3936, "height": 512}, {"file_name": "ADE_train_00003938.jpg", "width": 256, "id": 3937, "height": 256}, {"file_name": "ADE_train_00003939.jpg", "width": 770, "id": 3938, "height": 512}, {"file_name": "ADE_train_00003940.jpg", "width": 256, "id": 3939, "height": 256}, {"file_name": "ADE_train_00003941.jpg", "width": 683, "id": 3940, "height": 512}, {"file_name": "ADE_train_00003942.jpg", "width": 256, "id": 3941, "height": 256}, {"file_name": "ADE_train_00003943.jpg", "width": 683, "id": 3942, "height": 512}, {"file_name": "ADE_train_00003944.jpg", "width": 683, "id": 3943, "height": 512}, {"file_name": "ADE_train_00003945.jpg", "width": 683, "id": 3944, "height": 512}, {"file_name": "ADE_train_00003946.jpg", "width": 256, "id": 3945, "height": 256}, {"file_name": "ADE_train_00003947.jpg", "width": 716, "id": 3946, "height": 512}, {"file_name": "ADE_train_00003948.jpg", "width": 683, "id": 3947, "height": 512}, {"file_name": "ADE_train_00003949.jpg", "width": 683, "id": 3948, "height": 512}, {"file_name": "ADE_train_00003950.jpg", "width": 768, "id": 3949, "height": 512}, {"file_name": "ADE_train_00003951.jpg", "width": 256, "id": 3950, "height": 256}, {"file_name": "ADE_train_00003952.jpg", "width": 721, "id": 3951, "height": 512}, {"file_name": "ADE_train_00003953.jpg", "width": 700, "id": 3952, "height": 470}, {"file_name": "ADE_train_00003954.jpg", "width": 256, "id": 3953, "height": 256}, {"file_name": "ADE_train_00003955.jpg", "width": 768, "id": 3954, "height": 512}, {"file_name": "ADE_train_00003956.jpg", "width": 672, "id": 3955, "height": 512}, {"file_name": "ADE_train_00003957.jpg", "width": 256, "id": 3956, "height": 256}, {"file_name": "ADE_train_00003958.jpg", "width": 256, "id": 3957, "height": 256}, {"file_name": "ADE_train_00003959.jpg", "width": 512, "id": 3958, "height": 683}, {"file_name": "ADE_train_00003960.jpg", "width": 343, "id": 3959, "height": 307}, {"file_name": "ADE_train_00003961.jpg", "width": 512, "id": 3960, "height": 376}, {"file_name": "ADE_train_00003962.jpg", "width": 512, "id": 3961, "height": 382}, {"file_name": "ADE_train_00003963.jpg", "width": 771, "id": 3962, "height": 512}, {"file_name": "ADE_train_00003964.jpg", "width": 693, "id": 3963, "height": 512}, {"file_name": "ADE_train_00003965.jpg", "width": 300, "id": 3964, "height": 284}, {"file_name": "ADE_train_00003966.jpg", "width": 300, "id": 3965, "height": 227}, {"file_name": "ADE_train_00003967.jpg", "width": 300, "id": 3966, "height": 225}, {"file_name": "ADE_train_00003968.jpg", "width": 256, "id": 3967, "height": 256}, {"file_name": "ADE_train_00003969.jpg", "width": 264, "id": 3968, "height": 352}, {"file_name": "ADE_train_00003970.jpg", "width": 683, "id": 3969, "height": 512}, {"file_name": "ADE_train_00003971.jpg", "width": 300, "id": 3970, "height": 225}, {"file_name": "ADE_train_00003972.jpg", "width": 256, "id": 3971, "height": 256}, {"file_name": "ADE_train_00003973.jpg", "width": 683, "id": 3972, "height": 512}, {"file_name": "ADE_train_00003974.jpg", "width": 450, "id": 3973, "height": 354}, {"file_name": "ADE_train_00003975.jpg", "width": 300, "id": 3974, "height": 225}, {"file_name": "ADE_train_00003976.jpg", "width": 256, "id": 3975, "height": 256}, {"file_name": "ADE_train_00003977.jpg", "width": 512, "id": 3976, "height": 672}, {"file_name": "ADE_train_00003978.jpg", "width": 683, "id": 3977, "height": 512}, {"file_name": "ADE_train_00003979.jpg", "width": 449, "id": 3978, "height": 335}, {"file_name": "ADE_train_00003980.jpg", "width": 256, "id": 3979, "height": 256}, {"file_name": "ADE_train_00003981.jpg", "width": 256, "id": 3980, "height": 256}, {"file_name": "ADE_train_00003982.jpg", "width": 683, "id": 3981, "height": 512}, {"file_name": "ADE_train_00003983.jpg", "width": 640, "id": 3982, "height": 480}, {"file_name": "ADE_train_00003984.jpg", "width": 683, "id": 3983, "height": 512}, {"file_name": "ADE_train_00003985.jpg", "width": 512, "id": 3984, "height": 683}, {"file_name": "ADE_train_00003986.jpg", "width": 768, "id": 3985, "height": 512}, {"file_name": "ADE_train_00003987.jpg", "width": 683, "id": 3986, "height": 512}, {"file_name": "ADE_train_00003988.jpg", "width": 300, "id": 3987, "height": 225}, {"file_name": "ADE_train_00003989.jpg", "width": 336, "id": 3988, "height": 512}, {"file_name": "ADE_train_00003990.jpg", "width": 256, "id": 3989, "height": 256}, {"file_name": "ADE_train_00003991.jpg", "width": 350, "id": 3990, "height": 269}, {"file_name": "ADE_train_00003992.jpg", "width": 683, "id": 3991, "height": 512}, {"file_name": "ADE_train_00003993.jpg", "width": 640, "id": 3992, "height": 480}, {"file_name": "ADE_train_00003994.jpg", "width": 256, "id": 3993, "height": 256}, {"file_name": "ADE_train_00003995.jpg", "width": 300, "id": 3994, "height": 225}, {"file_name": "ADE_train_00003996.jpg", "width": 680, "id": 3995, "height": 512}, {"file_name": "ADE_train_00003997.jpg", "width": 512, "id": 3996, "height": 411}, {"file_name": "ADE_train_00003998.jpg", "width": 399, "id": 3997, "height": 300}, {"file_name": "ADE_train_00003999.jpg", "width": 400, "id": 3998, "height": 600}, {"file_name": "ADE_train_00004000.jpg", "width": 256, "id": 3999, "height": 256}, {"file_name": "ADE_train_00004001.jpg", "width": 256, "id": 4000, "height": 256}, {"file_name": "ADE_train_00004002.jpg", "width": 256, "id": 4001, "height": 256}, {"file_name": "ADE_train_00004003.jpg", "width": 300, "id": 4002, "height": 225}, {"file_name": "ADE_train_00004004.jpg", "width": 550, "id": 4003, "height": 367}, {"file_name": "ADE_train_00004005.jpg", "width": 256, "id": 4004, "height": 256}, {"file_name": "ADE_train_00004006.jpg", "width": 683, "id": 4005, "height": 512}, {"file_name": "ADE_train_00004007.jpg", "width": 640, "id": 4006, "height": 479}, {"file_name": "ADE_train_00004008.jpg", "width": 512, "id": 4007, "height": 384}, {"file_name": "ADE_train_00004009.jpg", "width": 256, "id": 4008, "height": 256}, {"file_name": "ADE_train_00004010.jpg", "width": 256, "id": 4009, "height": 256}, {"file_name": "ADE_train_00004011.jpg", "width": 300, "id": 4010, "height": 225}, {"file_name": "ADE_train_00004012.jpg", "width": 512, "id": 4011, "height": 366}, {"file_name": "ADE_train_00004013.jpg", "width": 384, "id": 4012, "height": 512}, {"file_name": "ADE_train_00004014.jpg", "width": 683, "id": 4013, "height": 512}, {"file_name": "ADE_train_00004015.jpg", "width": 683, "id": 4014, "height": 512}, {"file_name": "ADE_train_00004016.jpg", "width": 256, "id": 4015, "height": 256}, {"file_name": "ADE_train_00004017.jpg", "width": 449, "id": 4016, "height": 298}, {"file_name": "ADE_train_00004018.jpg", "width": 300, "id": 4017, "height": 225}, {"file_name": "ADE_train_00004019.jpg", "width": 512, "id": 4018, "height": 340}, {"file_name": "ADE_train_00004020.jpg", "width": 640, "id": 4019, "height": 480}, {"file_name": "ADE_train_00004021.jpg", "width": 683, "id": 4020, "height": 512}, {"file_name": "ADE_train_00004022.jpg", "width": 256, "id": 4021, "height": 256}, {"file_name": "ADE_train_00004023.jpg", "width": 256, "id": 4022, "height": 256}, {"file_name": "ADE_train_00004024.jpg", "width": 600, "id": 4023, "height": 448}, {"file_name": "ADE_train_00004025.jpg", "width": 512, "id": 4024, "height": 384}, {"file_name": "ADE_train_00004026.jpg", "width": 312, "id": 4025, "height": 235}, {"file_name": "ADE_train_00004027.jpg", "width": 300, "id": 4026, "height": 224}, {"file_name": "ADE_train_00004028.jpg", "width": 440, "id": 4027, "height": 330}, {"file_name": "ADE_train_00004029.jpg", "width": 256, "id": 4028, "height": 256}, {"file_name": "ADE_train_00004030.jpg", "width": 256, "id": 4029, "height": 256}, {"file_name": "ADE_train_00004031.jpg", "width": 576, "id": 4030, "height": 326}, {"file_name": "ADE_train_00004032.jpg", "width": 512, "id": 4031, "height": 378}, {"file_name": "ADE_train_00004033.jpg", "width": 512, "id": 4032, "height": 350}, {"file_name": "ADE_train_00004034.jpg", "width": 350, "id": 4033, "height": 242}, {"file_name": "ADE_train_00004035.jpg", "width": 449, "id": 4034, "height": 308}, {"file_name": "ADE_train_00004036.jpg", "width": 256, "id": 4035, "height": 256}, {"file_name": "ADE_train_00004037.jpg", "width": 256, "id": 4036, "height": 256}, {"file_name": "ADE_train_00004038.jpg", "width": 746, "id": 4037, "height": 512}, {"file_name": "ADE_train_00004039.jpg", "width": 256, "id": 4038, "height": 256}, {"file_name": "ADE_train_00004040.jpg", "width": 683, "id": 4039, "height": 512}, {"file_name": "ADE_train_00004041.jpg", "width": 256, "id": 4040, "height": 256}, {"file_name": "ADE_train_00004042.jpg", "width": 683, "id": 4041, "height": 512}, {"file_name": "ADE_train_00004043.jpg", "width": 683, "id": 4042, "height": 512}, {"file_name": "ADE_train_00004044.jpg", "width": 770, "id": 4043, "height": 512}, {"file_name": "ADE_train_00004045.jpg", "width": 256, "id": 4044, "height": 256}, {"file_name": "ADE_train_00004046.jpg", "width": 256, "id": 4045, "height": 256}, {"file_name": "ADE_train_00004047.jpg", "width": 512, "id": 4046, "height": 410}, {"file_name": "ADE_train_00004048.jpg", "width": 512, "id": 4047, "height": 384}, {"file_name": "ADE_train_00004049.jpg", "width": 512, "id": 4048, "height": 340}, {"file_name": "ADE_train_00004050.jpg", "width": 683, "id": 4049, "height": 512}, {"file_name": "ADE_train_00004051.jpg", "width": 512, "id": 4050, "height": 340}, {"file_name": "ADE_train_00004052.jpg", "width": 694, "id": 4051, "height": 512}, {"file_name": "ADE_train_00004053.jpg", "width": 256, "id": 4052, "height": 256}, {"file_name": "ADE_train_00004054.jpg", "width": 300, "id": 4053, "height": 225}, {"file_name": "ADE_train_00004055.jpg", "width": 500, "id": 4054, "height": 375}, {"file_name": "ADE_train_00004056.jpg", "width": 256, "id": 4055, "height": 256}, {"file_name": "ADE_train_00004057.jpg", "width": 256, "id": 4056, "height": 256}, {"file_name": "ADE_train_00004058.jpg", "width": 600, "id": 4057, "height": 399}, {"file_name": "ADE_train_00004059.jpg", "width": 757, "id": 4058, "height": 512}, {"file_name": "ADE_train_00004060.jpg", "width": 683, "id": 4059, "height": 512}, {"file_name": "ADE_train_00004061.jpg", "width": 512, "id": 4060, "height": 683}, {"file_name": "ADE_train_00004062.jpg", "width": 245, "id": 4061, "height": 171}, {"file_name": "ADE_train_00004063.jpg", "width": 512, "id": 4062, "height": 472}, {"file_name": "ADE_train_00004064.jpg", "width": 771, "id": 4063, "height": 512}, {"file_name": "ADE_train_00004065.jpg", "width": 256, "id": 4064, "height": 256}, {"file_name": "ADE_train_00004066.jpg", "width": 256, "id": 4065, "height": 256}, {"file_name": "ADE_train_00004067.jpg", "width": 440, "id": 4066, "height": 330}, {"file_name": "ADE_train_00004068.jpg", "width": 683, "id": 4067, "height": 512}, {"file_name": "ADE_train_00004069.jpg", "width": 256, "id": 4068, "height": 256}, {"file_name": "ADE_train_00004070.jpg", "width": 683, "id": 4069, "height": 512}, {"file_name": "ADE_train_00004071.jpg", "width": 256, "id": 4070, "height": 256}, {"file_name": "ADE_train_00004072.jpg", "width": 256, "id": 4071, "height": 256}, {"file_name": "ADE_train_00004073.jpg", "width": 683, "id": 4072, "height": 512}, {"file_name": "ADE_train_00004074.jpg", "width": 512, "id": 4073, "height": 368}, {"file_name": "ADE_train_00004075.jpg", "width": 256, "id": 4074, "height": 256}, {"file_name": "ADE_train_00004076.jpg", "width": 512, "id": 4075, "height": 340}, {"file_name": "ADE_train_00004077.jpg", "width": 540, "id": 4076, "height": 432}, {"file_name": "ADE_train_00004078.jpg", "width": 683, "id": 4077, "height": 512}, {"file_name": "ADE_train_00004079.jpg", "width": 500, "id": 4078, "height": 294}, {"file_name": "ADE_train_00004080.jpg", "width": 683, "id": 4079, "height": 512}, {"file_name": "ADE_train_00004081.jpg", "width": 512, "id": 4080, "height": 377}, {"file_name": "ADE_train_00004082.jpg", "width": 683, "id": 4081, "height": 512}, {"file_name": "ADE_train_00004083.jpg", "width": 683, "id": 4082, "height": 512}, {"file_name": "ADE_train_00004084.jpg", "width": 640, "id": 4083, "height": 480}, {"file_name": "ADE_train_00004085.jpg", "width": 683, "id": 4084, "height": 512}, {"file_name": "ADE_train_00004086.jpg", "width": 683, "id": 4085, "height": 512}, {"file_name": "ADE_train_00004087.jpg", "width": 700, "id": 4086, "height": 468}, {"file_name": "ADE_train_00004088.jpg", "width": 256, "id": 4087, "height": 256}, {"file_name": "ADE_train_00004089.jpg", "width": 683, "id": 4088, "height": 512}, {"file_name": "ADE_train_00004090.jpg", "width": 256, "id": 4089, "height": 256}, {"file_name": "ADE_train_00004091.jpg", "width": 683, "id": 4090, "height": 512}, {"file_name": "ADE_train_00004092.jpg", "width": 767, "id": 4091, "height": 512}, {"file_name": "ADE_train_00004093.jpg", "width": 683, "id": 4092, "height": 512}, {"file_name": "ADE_train_00004094.jpg", "width": 256, "id": 4093, "height": 256}, {"file_name": "ADE_train_00004095.jpg", "width": 256, "id": 4094, "height": 256}, {"file_name": "ADE_train_00004096.jpg", "width": 256, "id": 4095, "height": 256}, {"file_name": "ADE_train_00004097.jpg", "width": 256, "id": 4096, "height": 256}, {"file_name": "ADE_train_00004098.jpg", "width": 256, "id": 4097, "height": 256}, {"file_name": "ADE_train_00004099.jpg", "width": 256, "id": 4098, "height": 256}, {"file_name": "ADE_train_00004100.jpg", "width": 256, "id": 4099, "height": 256}, {"file_name": "ADE_train_00004101.jpg", "width": 724, "id": 4100, "height": 512}, {"file_name": "ADE_train_00004102.jpg", "width": 683, "id": 4101, "height": 512}, {"file_name": "ADE_train_00004103.jpg", "width": 429, "id": 4102, "height": 336}, {"file_name": "ADE_train_00004104.jpg", "width": 683, "id": 4103, "height": 512}, {"file_name": "ADE_train_00004105.jpg", "width": 640, "id": 4104, "height": 480}, {"file_name": "ADE_train_00004106.jpg", "width": 300, "id": 4105, "height": 225}, {"file_name": "ADE_train_00004107.jpg", "width": 300, "id": 4106, "height": 249}, {"file_name": "ADE_train_00004108.jpg", "width": 683, "id": 4107, "height": 512}, {"file_name": "ADE_train_00004109.jpg", "width": 300, "id": 4108, "height": 240}, {"file_name": "ADE_train_00004110.jpg", "width": 400, "id": 4109, "height": 600}, {"file_name": "ADE_train_00004111.jpg", "width": 683, "id": 4110, "height": 512}, {"file_name": "ADE_train_00004112.jpg", "width": 640, "id": 4111, "height": 480}, {"file_name": "ADE_train_00004113.jpg", "width": 683, "id": 4112, "height": 512}, {"file_name": "ADE_train_00004114.jpg", "width": 300, "id": 4113, "height": 225}, {"file_name": "ADE_train_00004115.jpg", "width": 256, "id": 4114, "height": 256}, {"file_name": "ADE_train_00004116.jpg", "width": 300, "id": 4115, "height": 225}, {"file_name": "ADE_train_00004117.jpg", "width": 256, "id": 4116, "height": 256}, {"file_name": "ADE_train_00004118.jpg", "width": 512, "id": 4117, "height": 425}, {"file_name": "ADE_train_00004119.jpg", "width": 300, "id": 4118, "height": 225}, {"file_name": "ADE_train_00004120.jpg", "width": 300, "id": 4119, "height": 229}, {"file_name": "ADE_train_00004121.jpg", "width": 683, "id": 4120, "height": 512}, {"file_name": "ADE_train_00004122.jpg", "width": 320, "id": 4121, "height": 240}, {"file_name": "ADE_train_00004123.jpg", "width": 683, "id": 4122, "height": 512}, {"file_name": "ADE_train_00004124.jpg", "width": 300, "id": 4123, "height": 225}, {"file_name": "ADE_train_00004125.jpg", "width": 298, "id": 4124, "height": 249}, {"file_name": "ADE_train_00004126.jpg", "width": 512, "id": 4125, "height": 340}, {"file_name": "ADE_train_00004127.jpg", "width": 683, "id": 4126, "height": 512}, {"file_name": "ADE_train_00004128.jpg", "width": 256, "id": 4127, "height": 256}, {"file_name": "ADE_train_00004129.jpg", "width": 683, "id": 4128, "height": 512}, {"file_name": "ADE_train_00004130.jpg", "width": 684, "id": 4129, "height": 512}, {"file_name": "ADE_train_00004131.jpg", "width": 683, "id": 4130, "height": 512}, {"file_name": "ADE_train_00004132.jpg", "width": 738, "id": 4131, "height": 512}, {"file_name": "ADE_train_00004133.jpg", "width": 848, "id": 4132, "height": 512}, {"file_name": "ADE_train_00004134.jpg", "width": 256, "id": 4133, "height": 256}, {"file_name": "ADE_train_00004135.jpg", "width": 480, "id": 4134, "height": 640}, {"file_name": "ADE_train_00004136.jpg", "width": 512, "id": 4135, "height": 384}, {"file_name": "ADE_train_00004137.jpg", "width": 683, "id": 4136, "height": 512}, {"file_name": "ADE_train_00004138.jpg", "width": 683, "id": 4137, "height": 512}, {"file_name": "ADE_train_00004139.jpg", "width": 256, "id": 4138, "height": 256}, {"file_name": "ADE_train_00004140.jpg", "width": 500, "id": 4139, "height": 375}, {"file_name": "ADE_train_00004141.jpg", "width": 576, "id": 4140, "height": 432}, {"file_name": "ADE_train_00004142.jpg", "width": 771, "id": 4141, "height": 512}, {"file_name": "ADE_train_00004143.jpg", "width": 683, "id": 4142, "height": 512}, {"file_name": "ADE_train_00004144.jpg", "width": 300, "id": 4143, "height": 225}, {"file_name": "ADE_train_00004145.jpg", "width": 440, "id": 4144, "height": 309}, {"file_name": "ADE_train_00004146.jpg", "width": 512, "id": 4145, "height": 377}, {"file_name": "ADE_train_00004147.jpg", "width": 256, "id": 4146, "height": 256}, {"file_name": "ADE_train_00004148.jpg", "width": 300, "id": 4147, "height": 225}, {"file_name": "ADE_train_00004149.jpg", "width": 616, "id": 4148, "height": 512}, {"file_name": "ADE_train_00004150.jpg", "width": 683, "id": 4149, "height": 512}, {"file_name": "ADE_train_00004151.jpg", "width": 256, "id": 4150, "height": 256}, {"file_name": "ADE_train_00004152.jpg", "width": 683, "id": 4151, "height": 512}, {"file_name": "ADE_train_00004153.jpg", "width": 256, "id": 4152, "height": 256}, {"file_name": "ADE_train_00004154.jpg", "width": 683, "id": 4153, "height": 512}, {"file_name": "ADE_train_00004155.jpg", "width": 400, "id": 4154, "height": 600}, {"file_name": "ADE_train_00004156.jpg", "width": 256, "id": 4155, "height": 256}, {"file_name": "ADE_train_00004157.jpg", "width": 683, "id": 4156, "height": 512}, {"file_name": "ADE_train_00004158.jpg", "width": 819, "id": 4157, "height": 512}, {"file_name": "ADE_train_00004159.jpg", "width": 512, "id": 4158, "height": 367}, {"file_name": "ADE_train_00004160.jpg", "width": 225, "id": 4159, "height": 300}, {"file_name": "ADE_train_00004161.jpg", "width": 640, "id": 4160, "height": 479}, {"file_name": "ADE_train_00004162.jpg", "width": 256, "id": 4161, "height": 256}, {"file_name": "ADE_train_00004163.jpg", "width": 768, "id": 4162, "height": 512}, {"file_name": "ADE_train_00004164.jpg", "width": 768, "id": 4163, "height": 512}, {"file_name": "ADE_train_00004165.jpg", "width": 256, "id": 4164, "height": 256}, {"file_name": "ADE_train_00004166.jpg", "width": 640, "id": 4165, "height": 427}, {"file_name": "ADE_train_00004167.jpg", "width": 512, "id": 4166, "height": 378}, {"file_name": "ADE_train_00004168.jpg", "width": 221, "id": 4167, "height": 149}, {"file_name": "ADE_train_00004169.jpg", "width": 683, "id": 4168, "height": 512}, {"file_name": "ADE_train_00004170.jpg", "width": 256, "id": 4169, "height": 256}, {"file_name": "ADE_train_00004171.jpg", "width": 256, "id": 4170, "height": 256}, {"file_name": "ADE_train_00004172.jpg", "width": 640, "id": 4171, "height": 480}, {"file_name": "ADE_train_00004173.jpg", "width": 512, "id": 4172, "height": 412}, {"file_name": "ADE_train_00004174.jpg", "width": 256, "id": 4173, "height": 256}, {"file_name": "ADE_train_00004175.jpg", "width": 300, "id": 4174, "height": 225}, {"file_name": "ADE_train_00004176.jpg", "width": 300, "id": 4175, "height": 224}, {"file_name": "ADE_train_00004177.jpg", "width": 256, "id": 4176, "height": 256}, {"file_name": "ADE_train_00004178.jpg", "width": 256, "id": 4177, "height": 256}, {"file_name": "ADE_train_00004179.jpg", "width": 683, "id": 4178, "height": 512}, {"file_name": "ADE_train_00004180.jpg", "width": 512, "id": 4179, "height": 682}, {"file_name": "ADE_train_00004181.jpg", "width": 761, "id": 4180, "height": 512}, {"file_name": "ADE_train_00004182.jpg", "width": 768, "id": 4181, "height": 512}, {"file_name": "ADE_train_00004183.jpg", "width": 256, "id": 4182, "height": 256}, {"file_name": "ADE_train_00004184.jpg", "width": 644, "id": 4183, "height": 446}, {"file_name": "ADE_train_00004185.jpg", "width": 750, "id": 4184, "height": 500}, {"file_name": "ADE_train_00004186.jpg", "width": 683, "id": 4185, "height": 512}, {"file_name": "ADE_train_00004187.jpg", "width": 683, "id": 4186, "height": 512}, {"file_name": "ADE_train_00004188.jpg", "width": 683, "id": 4187, "height": 512}, {"file_name": "ADE_train_00004189.jpg", "width": 1291, "id": 4188, "height": 512}, {"file_name": "ADE_train_00004190.jpg", "width": 256, "id": 4189, "height": 256}, {"file_name": "ADE_train_00004191.jpg", "width": 683, "id": 4190, "height": 512}, {"file_name": "ADE_train_00004192.jpg", "width": 256, "id": 4191, "height": 256}, {"file_name": "ADE_train_00004193.jpg", "width": 256, "id": 4192, "height": 256}, {"file_name": "ADE_train_00004194.jpg", "width": 768, "id": 4193, "height": 512}, {"file_name": "ADE_train_00004195.jpg", "width": 737, "id": 4194, "height": 512}, {"file_name": "ADE_train_00004196.jpg", "width": 300, "id": 4195, "height": 225}, {"file_name": "ADE_train_00004197.jpg", "width": 640, "id": 4196, "height": 428}, {"file_name": "ADE_train_00004198.jpg", "width": 683, "id": 4197, "height": 512}, {"file_name": "ADE_train_00004199.jpg", "width": 683, "id": 4198, "height": 512}, {"file_name": "ADE_train_00004200.jpg", "width": 683, "id": 4199, "height": 512}, {"file_name": "ADE_train_00004201.jpg", "width": 250, "id": 4200, "height": 206}, {"file_name": "ADE_train_00004202.jpg", "width": 327, "id": 4201, "height": 247}, {"file_name": "ADE_train_00004203.jpg", "width": 256, "id": 4202, "height": 256}, {"file_name": "ADE_train_00004204.jpg", "width": 705, "id": 4203, "height": 512}, {"file_name": "ADE_train_00004205.jpg", "width": 683, "id": 4204, "height": 512}, {"file_name": "ADE_train_00004206.jpg", "width": 300, "id": 4205, "height": 225}, {"file_name": "ADE_train_00004207.jpg", "width": 683, "id": 4206, "height": 512}, {"file_name": "ADE_train_00004208.jpg", "width": 772, "id": 4207, "height": 512}, {"file_name": "ADE_train_00004209.jpg", "width": 300, "id": 4208, "height": 300}, {"file_name": "ADE_train_00004210.jpg", "width": 300, "id": 4209, "height": 267}, {"file_name": "ADE_train_00004211.jpg", "width": 766, "id": 4210, "height": 512}, {"file_name": "ADE_train_00004212.jpg", "width": 512, "id": 4211, "height": 683}, {"file_name": "ADE_train_00004213.jpg", "width": 358, "id": 4212, "height": 238}, {"file_name": "ADE_train_00004214.jpg", "width": 683, "id": 4213, "height": 512}, {"file_name": "ADE_train_00004215.jpg", "width": 683, "id": 4214, "height": 512}, {"file_name": "ADE_train_00004216.jpg", "width": 512, "id": 4215, "height": 683}, {"file_name": "ADE_train_00004217.jpg", "width": 773, "id": 4216, "height": 512}, {"file_name": "ADE_train_00004218.jpg", "width": 683, "id": 4217, "height": 512}, {"file_name": "ADE_train_00004219.jpg", "width": 683, "id": 4218, "height": 512}, {"file_name": "ADE_train_00004220.jpg", "width": 683, "id": 4219, "height": 512}, {"file_name": "ADE_train_00004221.jpg", "width": 512, "id": 4220, "height": 644}, {"file_name": "ADE_train_00004222.jpg", "width": 339, "id": 4221, "height": 228}, {"file_name": "ADE_train_00004223.jpg", "width": 765, "id": 4222, "height": 512}, {"file_name": "ADE_train_00004224.jpg", "width": 500, "id": 4223, "height": 375}, {"file_name": "ADE_train_00004225.jpg", "width": 300, "id": 4224, "height": 225}, {"file_name": "ADE_train_00004226.jpg", "width": 761, "id": 4225, "height": 512}, {"file_name": "ADE_train_00004227.jpg", "width": 683, "id": 4226, "height": 512}, {"file_name": "ADE_train_00004228.jpg", "width": 500, "id": 4227, "height": 375}, {"file_name": "ADE_train_00004229.jpg", "width": 683, "id": 4228, "height": 512}, {"file_name": "ADE_train_00004230.jpg", "width": 690, "id": 4229, "height": 459}, {"file_name": "ADE_train_00004231.jpg", "width": 450, "id": 4230, "height": 246}, {"file_name": "ADE_train_00004232.jpg", "width": 683, "id": 4231, "height": 512}, {"file_name": "ADE_train_00004233.jpg", "width": 640, "id": 4232, "height": 432}, {"file_name": "ADE_train_00004234.jpg", "width": 683, "id": 4233, "height": 512}, {"file_name": "ADE_train_00004235.jpg", "width": 400, "id": 4234, "height": 300}, {"file_name": "ADE_train_00004236.jpg", "width": 225, "id": 4235, "height": 225}, {"file_name": "ADE_train_00004237.jpg", "width": 683, "id": 4236, "height": 512}, {"file_name": "ADE_train_00004238.jpg", "width": 768, "id": 4237, "height": 512}, {"file_name": "ADE_train_00004239.jpg", "width": 690, "id": 4238, "height": 512}, {"file_name": "ADE_train_00004240.jpg", "width": 250, "id": 4239, "height": 200}, {"file_name": "ADE_train_00004241.jpg", "width": 240, "id": 4240, "height": 200}, {"file_name": "ADE_train_00004242.jpg", "width": 683, "id": 4241, "height": 512}, {"file_name": "ADE_train_00004243.jpg", "width": 512, "id": 4242, "height": 683}, {"file_name": "ADE_train_00004244.jpg", "width": 683, "id": 4243, "height": 512}, {"file_name": "ADE_train_00004245.jpg", "width": 512, "id": 4244, "height": 910}, {"file_name": "ADE_train_00004246.jpg", "width": 683, "id": 4245, "height": 512}, {"file_name": "ADE_train_00004247.jpg", "width": 758, "id": 4246, "height": 512}, {"file_name": "ADE_train_00004248.jpg", "width": 500, "id": 4247, "height": 350}, {"file_name": "ADE_train_00004249.jpg", "width": 432, "id": 4248, "height": 352}, {"file_name": "ADE_train_00004250.jpg", "width": 225, "id": 4249, "height": 300}, {"file_name": "ADE_train_00004251.jpg", "width": 384, "id": 4250, "height": 512}, {"file_name": "ADE_train_00004252.jpg", "width": 340, "id": 4251, "height": 453}, {"file_name": "ADE_train_00004253.jpg", "width": 225, "id": 4252, "height": 300}, {"file_name": "ADE_train_00004254.jpg", "width": 337, "id": 4253, "height": 450}, {"file_name": "ADE_train_00004255.jpg", "width": 640, "id": 4254, "height": 473}, {"file_name": "ADE_train_00004256.jpg", "width": 338, "id": 4255, "height": 450}, {"file_name": "ADE_train_00004257.jpg", "width": 300, "id": 4256, "height": 180}, {"file_name": "ADE_train_00004258.jpg", "width": 240, "id": 4257, "height": 180}, {"file_name": "ADE_train_00004259.jpg", "width": 255, "id": 4258, "height": 180}, {"file_name": "ADE_train_00004260.jpg", "width": 223, "id": 4259, "height": 349}, {"file_name": "ADE_train_00004261.jpg", "width": 683, "id": 4260, "height": 512}, {"file_name": "ADE_train_00004262.jpg", "width": 330, "id": 4261, "height": 232}, {"file_name": "ADE_train_00004263.jpg", "width": 683, "id": 4262, "height": 512}, {"file_name": "ADE_train_00004264.jpg", "width": 320, "id": 4263, "height": 240}, {"file_name": "ADE_train_00004265.jpg", "width": 512, "id": 4264, "height": 683}, {"file_name": "ADE_train_00004266.jpg", "width": 266, "id": 4265, "height": 300}, {"file_name": "ADE_train_00004267.jpg", "width": 768, "id": 4266, "height": 512}, {"file_name": "ADE_train_00004268.jpg", "width": 360, "id": 4267, "height": 240}, {"file_name": "ADE_train_00004269.jpg", "width": 350, "id": 4268, "height": 232}, {"file_name": "ADE_train_00004270.jpg", "width": 759, "id": 4269, "height": 512}, {"file_name": "ADE_train_00004271.jpg", "width": 683, "id": 4270, "height": 512}, {"file_name": "ADE_train_00004272.jpg", "width": 160, "id": 4271, "height": 240}, {"file_name": "ADE_train_00004273.jpg", "width": 390, "id": 4272, "height": 595}, {"file_name": "ADE_train_00004274.jpg", "width": 360, "id": 4273, "height": 270}, {"file_name": "ADE_train_00004275.jpg", "width": 300, "id": 4274, "height": 233}, {"file_name": "ADE_train_00004276.jpg", "width": 275, "id": 4275, "height": 236}, {"file_name": "ADE_train_00004277.jpg", "width": 681, "id": 4276, "height": 512}, {"file_name": "ADE_train_00004278.jpg", "width": 575, "id": 4277, "height": 381}, {"file_name": "ADE_train_00004279.jpg", "width": 350, "id": 4278, "height": 264}, {"file_name": "ADE_train_00004280.jpg", "width": 512, "id": 4279, "height": 768}, {"file_name": "ADE_train_00004281.jpg", "width": 640, "id": 4280, "height": 480}, {"file_name": "ADE_train_00004282.jpg", "width": 683, "id": 4281, "height": 512}, {"file_name": "ADE_train_00004283.jpg", "width": 512, "id": 4282, "height": 683}, {"file_name": "ADE_train_00004284.jpg", "width": 682, "id": 4283, "height": 512}, {"file_name": "ADE_train_00004285.jpg", "width": 683, "id": 4284, "height": 512}, {"file_name": "ADE_train_00004286.jpg", "width": 320, "id": 4285, "height": 435}, {"file_name": "ADE_train_00004287.jpg", "width": 300, "id": 4286, "height": 224}, {"file_name": "ADE_train_00004288.jpg", "width": 768, "id": 4287, "height": 512}, {"file_name": "ADE_train_00004289.jpg", "width": 683, "id": 4288, "height": 512}, {"file_name": "ADE_train_00004290.jpg", "width": 684, "id": 4289, "height": 512}, {"file_name": "ADE_train_00004291.jpg", "width": 403, "id": 4290, "height": 353}, {"file_name": "ADE_train_00004292.jpg", "width": 640, "id": 4291, "height": 480}, {"file_name": "ADE_train_00004293.jpg", "width": 683, "id": 4292, "height": 512}, {"file_name": "ADE_train_00004294.jpg", "width": 360, "id": 4293, "height": 480}, {"file_name": "ADE_train_00004295.jpg", "width": 632, "id": 4294, "height": 512}, {"file_name": "ADE_train_00004296.jpg", "width": 500, "id": 4295, "height": 752}, {"file_name": "ADE_train_00004297.jpg", "width": 561, "id": 4296, "height": 385}, {"file_name": "ADE_train_00004298.jpg", "width": 512, "id": 4297, "height": 384}, {"file_name": "ADE_train_00004299.jpg", "width": 282, "id": 4298, "height": 287}, {"file_name": "ADE_train_00004300.jpg", "width": 250, "id": 4299, "height": 200}, {"file_name": "ADE_train_00004301.jpg", "width": 770, "id": 4300, "height": 512}, {"file_name": "ADE_train_00004302.jpg", "width": 312, "id": 4301, "height": 235}, {"file_name": "ADE_train_00004303.jpg", "width": 600, "id": 4302, "height": 450}, {"file_name": "ADE_train_00004304.jpg", "width": 600, "id": 4303, "height": 450}, {"file_name": "ADE_train_00004305.jpg", "width": 375, "id": 4304, "height": 500}, {"file_name": "ADE_train_00004306.jpg", "width": 683, "id": 4305, "height": 512}, {"file_name": "ADE_train_00004307.jpg", "width": 280, "id": 4306, "height": 200}, {"file_name": "ADE_train_00004308.jpg", "width": 300, "id": 4307, "height": 220}, {"file_name": "ADE_train_00004309.jpg", "width": 400, "id": 4308, "height": 301}, {"file_name": "ADE_train_00004310.jpg", "width": 683, "id": 4309, "height": 512}, {"file_name": "ADE_train_00004311.jpg", "width": 718, "id": 4310, "height": 512}, {"file_name": "ADE_train_00004312.jpg", "width": 409, "id": 4311, "height": 205}, {"file_name": "ADE_train_00004313.jpg", "width": 683, "id": 4312, "height": 512}, {"file_name": "ADE_train_00004314.jpg", "width": 333, "id": 4313, "height": 208}, {"file_name": "ADE_train_00004315.jpg", "width": 1003, "id": 4314, "height": 512}, {"file_name": "ADE_train_00004316.jpg", "width": 292, "id": 4315, "height": 210}, {"file_name": "ADE_train_00004317.jpg", "width": 500, "id": 4316, "height": 326}, {"file_name": "ADE_train_00004318.jpg", "width": 512, "id": 4317, "height": 527}, {"file_name": "ADE_train_00004319.jpg", "width": 320, "id": 4318, "height": 213}, {"file_name": "ADE_train_00004320.jpg", "width": 512, "id": 4319, "height": 768}, {"file_name": "ADE_train_00004321.jpg", "width": 797, "id": 4320, "height": 512}, {"file_name": "ADE_train_00004322.jpg", "width": 320, "id": 4321, "height": 240}, {"file_name": "ADE_train_00004323.jpg", "width": 350, "id": 4322, "height": 226}, {"file_name": "ADE_train_00004324.jpg", "width": 500, "id": 4323, "height": 331}, {"file_name": "ADE_train_00004325.jpg", "width": 683, "id": 4324, "height": 512}, {"file_name": "ADE_train_00004326.jpg", "width": 400, "id": 4325, "height": 266}, {"file_name": "ADE_train_00004327.jpg", "width": 683, "id": 4326, "height": 512}, {"file_name": "ADE_train_00004328.jpg", "width": 640, "id": 4327, "height": 480}, {"file_name": "ADE_train_00004329.jpg", "width": 500, "id": 4328, "height": 327}, {"file_name": "ADE_train_00004330.jpg", "width": 600, "id": 4329, "height": 398}, {"file_name": "ADE_train_00004331.jpg", "width": 400, "id": 4330, "height": 266}, {"file_name": "ADE_train_00004332.jpg", "width": 384, "id": 4331, "height": 288}, {"file_name": "ADE_train_00004333.jpg", "width": 373, "id": 4332, "height": 249}, {"file_name": "ADE_train_00004334.jpg", "width": 683, "id": 4333, "height": 512}, {"file_name": "ADE_train_00004335.jpg", "width": 576, "id": 4334, "height": 432}, {"file_name": "ADE_train_00004336.jpg", "width": 500, "id": 4335, "height": 375}, {"file_name": "ADE_train_00004337.jpg", "width": 626, "id": 4336, "height": 512}, {"file_name": "ADE_train_00004338.jpg", "width": 683, "id": 4337, "height": 512}, {"file_name": "ADE_train_00004339.jpg", "width": 740, "id": 4338, "height": 512}, {"file_name": "ADE_train_00004340.jpg", "width": 310, "id": 4339, "height": 205}, {"file_name": "ADE_train_00004341.jpg", "width": 683, "id": 4340, "height": 512}, {"file_name": "ADE_train_00004342.jpg", "width": 400, "id": 4341, "height": 274}, {"file_name": "ADE_train_00004343.jpg", "width": 683, "id": 4342, "height": 512}, {"file_name": "ADE_train_00004344.jpg", "width": 683, "id": 4343, "height": 512}, {"file_name": "ADE_train_00004345.jpg", "width": 683, "id": 4344, "height": 512}, {"file_name": "ADE_train_00004346.jpg", "width": 327, "id": 4345, "height": 245}, {"file_name": "ADE_train_00004347.jpg", "width": 683, "id": 4346, "height": 512}, {"file_name": "ADE_train_00004348.jpg", "width": 501, "id": 4347, "height": 293}, {"file_name": "ADE_train_00004349.jpg", "width": 300, "id": 4348, "height": 225}, {"file_name": "ADE_train_00004350.jpg", "width": 320, "id": 4349, "height": 242}, {"file_name": "ADE_train_00004351.jpg", "width": 640, "id": 4350, "height": 480}, {"file_name": "ADE_train_00004352.jpg", "width": 783, "id": 4351, "height": 512}, {"file_name": "ADE_train_00004353.jpg", "width": 703, "id": 4352, "height": 512}, {"file_name": "ADE_train_00004354.jpg", "width": 683, "id": 4353, "height": 512}, {"file_name": "ADE_train_00004355.jpg", "width": 678, "id": 4354, "height": 512}, {"file_name": "ADE_train_00004356.jpg", "width": 684, "id": 4355, "height": 512}, {"file_name": "ADE_train_00004357.jpg", "width": 765, "id": 4356, "height": 512}, {"file_name": "ADE_train_00004358.jpg", "width": 683, "id": 4357, "height": 512}, {"file_name": "ADE_train_00004359.jpg", "width": 350, "id": 4358, "height": 350}, {"file_name": "ADE_train_00004360.jpg", "width": 770, "id": 4359, "height": 512}, {"file_name": "ADE_train_00004361.jpg", "width": 600, "id": 4360, "height": 450}, {"file_name": "ADE_train_00004362.jpg", "width": 683, "id": 4361, "height": 512}, {"file_name": "ADE_train_00004363.jpg", "width": 512, "id": 4362, "height": 770}, {"file_name": "ADE_train_00004364.jpg", "width": 768, "id": 4363, "height": 512}, {"file_name": "ADE_train_00004365.jpg", "width": 320, "id": 4364, "height": 217}, {"file_name": "ADE_train_00004366.jpg", "width": 683, "id": 4365, "height": 512}, {"file_name": "ADE_train_00004367.jpg", "width": 356, "id": 4366, "height": 532}, {"file_name": "ADE_train_00004368.jpg", "width": 512, "id": 4367, "height": 622}, {"file_name": "ADE_train_00004369.jpg", "width": 350, "id": 4368, "height": 340}, {"file_name": "ADE_train_00004370.jpg", "width": 360, "id": 4369, "height": 220}, {"file_name": "ADE_train_00004371.jpg", "width": 681, "id": 4370, "height": 512}, {"file_name": "ADE_train_00004372.jpg", "width": 749, "id": 4371, "height": 512}, {"file_name": "ADE_train_00004373.jpg", "width": 300, "id": 4372, "height": 225}, {"file_name": "ADE_train_00004374.jpg", "width": 683, "id": 4373, "height": 512}, {"file_name": "ADE_train_00004375.jpg", "width": 300, "id": 4374, "height": 225}, {"file_name": "ADE_train_00004376.jpg", "width": 683, "id": 4375, "height": 512}, {"file_name": "ADE_train_00004377.jpg", "width": 500, "id": 4376, "height": 375}, {"file_name": "ADE_train_00004378.jpg", "width": 448, "id": 4377, "height": 336}, {"file_name": "ADE_train_00004379.jpg", "width": 256, "id": 4378, "height": 256}, {"file_name": "ADE_train_00004380.jpg", "width": 256, "id": 4379, "height": 256}, {"file_name": "ADE_train_00004381.jpg", "width": 683, "id": 4380, "height": 512}, {"file_name": "ADE_train_00004382.jpg", "width": 512, "id": 4381, "height": 513}, {"file_name": "ADE_train_00004383.jpg", "width": 286, "id": 4382, "height": 221}, {"file_name": "ADE_train_00004384.jpg", "width": 500, "id": 4383, "height": 333}, {"file_name": "ADE_train_00004385.jpg", "width": 500, "id": 4384, "height": 375}, {"file_name": "ADE_train_00004386.jpg", "width": 371, "id": 4385, "height": 336}, {"file_name": "ADE_train_00004387.jpg", "width": 683, "id": 4386, "height": 512}, {"file_name": "ADE_train_00004388.jpg", "width": 256, "id": 4387, "height": 256}, {"file_name": "ADE_train_00004389.jpg", "width": 256, "id": 4388, "height": 256}, {"file_name": "ADE_train_00004390.jpg", "width": 370, "id": 4389, "height": 254}, {"file_name": "ADE_train_00004391.jpg", "width": 256, "id": 4390, "height": 256}, {"file_name": "ADE_train_00004392.jpg", "width": 330, "id": 4391, "height": 257}, {"file_name": "ADE_train_00004393.jpg", "width": 314, "id": 4392, "height": 473}, {"file_name": "ADE_train_00004394.jpg", "width": 256, "id": 4393, "height": 256}, {"file_name": "ADE_train_00004395.jpg", "width": 400, "id": 4394, "height": 300}, {"file_name": "ADE_train_00004396.jpg", "width": 397, "id": 4395, "height": 298}, {"file_name": "ADE_train_00004397.jpg", "width": 330, "id": 4396, "height": 229}, {"file_name": "ADE_train_00004398.jpg", "width": 256, "id": 4397, "height": 256}, {"file_name": "ADE_train_00004399.jpg", "width": 550, "id": 4398, "height": 364}, {"file_name": "ADE_train_00004400.jpg", "width": 300, "id": 4399, "height": 400}, {"file_name": "ADE_train_00004401.jpg", "width": 683, "id": 4400, "height": 512}, {"file_name": "ADE_train_00004402.jpg", "width": 256, "id": 4401, "height": 256}, {"file_name": "ADE_train_00004403.jpg", "width": 567, "id": 4402, "height": 377}, {"file_name": "ADE_train_00004404.jpg", "width": 256, "id": 4403, "height": 256}, {"file_name": "ADE_train_00004405.jpg", "width": 256, "id": 4404, "height": 256}, {"file_name": "ADE_train_00004406.jpg", "width": 256, "id": 4405, "height": 256}, {"file_name": "ADE_train_00004407.jpg", "width": 320, "id": 4406, "height": 225}, {"file_name": "ADE_train_00004408.jpg", "width": 374, "id": 4407, "height": 241}, {"file_name": "ADE_train_00004409.jpg", "width": 674, "id": 4408, "height": 512}, {"file_name": "ADE_train_00004410.jpg", "width": 320, "id": 4409, "height": 240}, {"file_name": "ADE_train_00004411.jpg", "width": 350, "id": 4410, "height": 263}, {"file_name": "ADE_train_00004412.jpg", "width": 768, "id": 4411, "height": 512}, {"file_name": "ADE_train_00004413.jpg", "width": 359, "id": 4412, "height": 244}, {"file_name": "ADE_train_00004414.jpg", "width": 250, "id": 4413, "height": 350}, {"file_name": "ADE_train_00004415.jpg", "width": 283, "id": 4414, "height": 212}, {"file_name": "ADE_train_00004416.jpg", "width": 683, "id": 4415, "height": 512}, {"file_name": "ADE_train_00004417.jpg", "width": 346, "id": 4416, "height": 249}, {"file_name": "ADE_train_00004418.jpg", "width": 683, "id": 4417, "height": 512}, {"file_name": "ADE_train_00004419.jpg", "width": 558, "id": 4418, "height": 512}, {"file_name": "ADE_train_00004420.jpg", "width": 771, "id": 4419, "height": 512}, {"file_name": "ADE_train_00004421.jpg", "width": 678, "id": 4420, "height": 512}, {"file_name": "ADE_train_00004422.jpg", "width": 668, "id": 4421, "height": 500}, {"file_name": "ADE_train_00004423.jpg", "width": 500, "id": 4422, "height": 375}, {"file_name": "ADE_train_00004424.jpg", "width": 768, "id": 4423, "height": 512}, {"file_name": "ADE_train_00004425.jpg", "width": 500, "id": 4424, "height": 375}, {"file_name": "ADE_train_00004426.jpg", "width": 716, "id": 4425, "height": 512}, {"file_name": "ADE_train_00004427.jpg", "width": 500, "id": 4426, "height": 318}, {"file_name": "ADE_train_00004428.jpg", "width": 450, "id": 4427, "height": 338}, {"file_name": "ADE_train_00004429.jpg", "width": 500, "id": 4428, "height": 375}, {"file_name": "ADE_train_00004430.jpg", "width": 523, "id": 4429, "height": 352}, {"file_name": "ADE_train_00004431.jpg", "width": 301, "id": 4430, "height": 248}, {"file_name": "ADE_train_00004432.jpg", "width": 400, "id": 4431, "height": 300}, {"file_name": "ADE_train_00004433.jpg", "width": 433, "id": 4432, "height": 347}, {"file_name": "ADE_train_00004434.jpg", "width": 252, "id": 4433, "height": 278}, {"file_name": "ADE_train_00004435.jpg", "width": 683, "id": 4434, "height": 512}, {"file_name": "ADE_train_00004436.jpg", "width": 375, "id": 4435, "height": 239}, {"file_name": "ADE_train_00004437.jpg", "width": 576, "id": 4436, "height": 389}, {"file_name": "ADE_train_00004438.jpg", "width": 350, "id": 4437, "height": 271}, {"file_name": "ADE_train_00004439.jpg", "width": 512, "id": 4438, "height": 674}, {"file_name": "ADE_train_00004440.jpg", "width": 466, "id": 4439, "height": 349}, {"file_name": "ADE_train_00004441.jpg", "width": 600, "id": 4440, "height": 450}, {"file_name": "ADE_train_00004442.jpg", "width": 354, "id": 4441, "height": 272}, {"file_name": "ADE_train_00004443.jpg", "width": 640, "id": 4442, "height": 480}, {"file_name": "ADE_train_00004444.jpg", "width": 370, "id": 4443, "height": 270}, {"file_name": "ADE_train_00004445.jpg", "width": 300, "id": 4444, "height": 451}, {"file_name": "ADE_train_00004446.jpg", "width": 932, "id": 4445, "height": 512}, {"file_name": "ADE_train_00004447.jpg", "width": 388, "id": 4446, "height": 278}, {"file_name": "ADE_train_00004448.jpg", "width": 291, "id": 4447, "height": 256}, {"file_name": "ADE_train_00004449.jpg", "width": 554, "id": 4448, "height": 414}, {"file_name": "ADE_train_00004450.jpg", "width": 683, "id": 4449, "height": 512}, {"file_name": "ADE_train_00004451.jpg", "width": 550, "id": 4450, "height": 412}, {"file_name": "ADE_train_00004452.jpg", "width": 388, "id": 4451, "height": 291}, {"file_name": "ADE_train_00004453.jpg", "width": 450, "id": 4452, "height": 450}, {"file_name": "ADE_train_00004454.jpg", "width": 311, "id": 4453, "height": 235}, {"file_name": "ADE_train_00004455.jpg", "width": 683, "id": 4454, "height": 512}, {"file_name": "ADE_train_00004456.jpg", "width": 400, "id": 4455, "height": 266}, {"file_name": "ADE_train_00004457.jpg", "width": 340, "id": 4456, "height": 255}, {"file_name": "ADE_train_00004458.jpg", "width": 600, "id": 4457, "height": 474}, {"file_name": "ADE_train_00004459.jpg", "width": 640, "id": 4458, "height": 444}, {"file_name": "ADE_train_00004460.jpg", "width": 354, "id": 4459, "height": 272}, {"file_name": "ADE_train_00004461.jpg", "width": 300, "id": 4460, "height": 300}, {"file_name": "ADE_train_00004462.jpg", "width": 683, "id": 4461, "height": 512}, {"file_name": "ADE_train_00004463.jpg", "width": 250, "id": 4462, "height": 250}, {"file_name": "ADE_train_00004464.jpg", "width": 500, "id": 4463, "height": 375}, {"file_name": "ADE_train_00004465.jpg", "width": 500, "id": 4464, "height": 333}, {"file_name": "ADE_train_00004466.jpg", "width": 606, "id": 4465, "height": 447}, {"file_name": "ADE_train_00004467.jpg", "width": 400, "id": 4466, "height": 266}, {"file_name": "ADE_train_00004468.jpg", "width": 444, "id": 4467, "height": 318}, {"file_name": "ADE_train_00004469.jpg", "width": 276, "id": 4468, "height": 400}, {"file_name": "ADE_train_00004470.jpg", "width": 600, "id": 4469, "height": 450}, {"file_name": "ADE_train_00004471.jpg", "width": 450, "id": 4470, "height": 338}, {"file_name": "ADE_train_00004472.jpg", "width": 600, "id": 4471, "height": 450}, {"file_name": "ADE_train_00004473.jpg", "width": 216, "id": 4472, "height": 288}, {"file_name": "ADE_train_00004474.jpg", "width": 400, "id": 4473, "height": 533}, {"file_name": "ADE_train_00004475.jpg", "width": 640, "id": 4474, "height": 480}, {"file_name": "ADE_train_00004476.jpg", "width": 565, "id": 4475, "height": 512}, {"file_name": "ADE_train_00004477.jpg", "width": 250, "id": 4476, "height": 226}, {"file_name": "ADE_train_00004478.jpg", "width": 300, "id": 4477, "height": 235}, {"file_name": "ADE_train_00004479.jpg", "width": 683, "id": 4478, "height": 512}, {"file_name": "ADE_train_00004480.jpg", "width": 336, "id": 4479, "height": 399}, {"file_name": "ADE_train_00004481.jpg", "width": 683, "id": 4480, "height": 512}, {"file_name": "ADE_train_00004482.jpg", "width": 400, "id": 4481, "height": 175}, {"file_name": "ADE_train_00004483.jpg", "width": 683, "id": 4482, "height": 512}, {"file_name": "ADE_train_00004484.jpg", "width": 683, "id": 4483, "height": 512}, {"file_name": "ADE_train_00004485.jpg", "width": 600, "id": 4484, "height": 450}, {"file_name": "ADE_train_00004486.jpg", "width": 280, "id": 4485, "height": 198}, {"file_name": "ADE_train_00004487.jpg", "width": 640, "id": 4486, "height": 425}, {"file_name": "ADE_train_00004488.jpg", "width": 683, "id": 4487, "height": 512}, {"file_name": "ADE_train_00004489.jpg", "width": 250, "id": 4488, "height": 180}, {"file_name": "ADE_train_00004490.jpg", "width": 625, "id": 4489, "height": 420}, {"file_name": "ADE_train_00004491.jpg", "width": 350, "id": 4490, "height": 317}, {"file_name": "ADE_train_00004492.jpg", "width": 400, "id": 4491, "height": 500}, {"file_name": "ADE_train_00004493.jpg", "width": 325, "id": 4492, "height": 576}, {"file_name": "ADE_train_00004494.jpg", "width": 288, "id": 4493, "height": 217}, {"file_name": "ADE_train_00004495.jpg", "width": 640, "id": 4494, "height": 480}, {"file_name": "ADE_train_00004496.jpg", "width": 350, "id": 4495, "height": 264}, {"file_name": "ADE_train_00004497.jpg", "width": 175, "id": 4496, "height": 173}, {"file_name": "ADE_train_00004498.jpg", "width": 683, "id": 4497, "height": 512}, {"file_name": "ADE_train_00004499.jpg", "width": 683, "id": 4498, "height": 512}, {"file_name": "ADE_train_00004500.jpg", "width": 640, "id": 4499, "height": 480}, {"file_name": "ADE_train_00004501.jpg", "width": 300, "id": 4500, "height": 200}, {"file_name": "ADE_train_00004502.jpg", "width": 910, "id": 4501, "height": 512}, {"file_name": "ADE_train_00004503.jpg", "width": 640, "id": 4502, "height": 480}, {"file_name": "ADE_train_00004504.jpg", "width": 250, "id": 4503, "height": 200}, {"file_name": "ADE_train_00004505.jpg", "width": 590, "id": 4504, "height": 393}, {"file_name": "ADE_train_00004506.jpg", "width": 246, "id": 4505, "height": 316}, {"file_name": "ADE_train_00004507.jpg", "width": 512, "id": 4506, "height": 768}, {"file_name": "ADE_train_00004508.jpg", "width": 770, "id": 4507, "height": 512}, {"file_name": "ADE_train_00004509.jpg", "width": 700, "id": 4508, "height": 475}, {"file_name": "ADE_train_00004510.jpg", "width": 683, "id": 4509, "height": 512}, {"file_name": "ADE_train_00004511.jpg", "width": 768, "id": 4510, "height": 512}, {"file_name": "ADE_train_00004512.jpg", "width": 300, "id": 4511, "height": 200}, {"file_name": "ADE_train_00004513.jpg", "width": 587, "id": 4512, "height": 360}, {"file_name": "ADE_train_00004514.jpg", "width": 707, "id": 4513, "height": 512}, {"file_name": "ADE_train_00004515.jpg", "width": 768, "id": 4514, "height": 512}, {"file_name": "ADE_train_00004516.jpg", "width": 910, "id": 4515, "height": 512}, {"file_name": "ADE_train_00004517.jpg", "width": 768, "id": 4516, "height": 512}, {"file_name": "ADE_train_00004518.jpg", "width": 324, "id": 4517, "height": 243}, {"file_name": "ADE_train_00004519.jpg", "width": 500, "id": 4518, "height": 375}, {"file_name": "ADE_train_00004520.jpg", "width": 683, "id": 4519, "height": 512}, {"file_name": "ADE_train_00004521.jpg", "width": 652, "id": 4520, "height": 512}, {"file_name": "ADE_train_00004522.jpg", "width": 810, "id": 4521, "height": 512}, {"file_name": "ADE_train_00004523.jpg", "width": 336, "id": 4522, "height": 252}, {"file_name": "ADE_train_00004524.jpg", "width": 320, "id": 4523, "height": 240}, {"file_name": "ADE_train_00004525.jpg", "width": 683, "id": 4524, "height": 512}, {"file_name": "ADE_train_00004526.jpg", "width": 250, "id": 4525, "height": 220}, {"file_name": "ADE_train_00004527.jpg", "width": 262, "id": 4526, "height": 225}, {"file_name": "ADE_train_00004528.jpg", "width": 400, "id": 4527, "height": 234}, {"file_name": "ADE_train_00004529.jpg", "width": 250, "id": 4528, "height": 333}, {"file_name": "ADE_train_00004530.jpg", "width": 320, "id": 4529, "height": 240}, {"file_name": "ADE_train_00004531.jpg", "width": 768, "id": 4530, "height": 512}, {"file_name": "ADE_train_00004532.jpg", "width": 512, "id": 4531, "height": 683}, {"file_name": "ADE_train_00004533.jpg", "width": 320, "id": 4532, "height": 212}, {"file_name": "ADE_train_00004534.jpg", "width": 320, "id": 4533, "height": 240}, {"file_name": "ADE_train_00004535.jpg", "width": 912, "id": 4534, "height": 512}, {"file_name": "ADE_train_00004536.jpg", "width": 320, "id": 4535, "height": 240}, {"file_name": "ADE_train_00004537.jpg", "width": 768, "id": 4536, "height": 512}, {"file_name": "ADE_train_00004538.jpg", "width": 512, "id": 4537, "height": 683}, {"file_name": "ADE_train_00004539.jpg", "width": 504, "id": 4538, "height": 338}, {"file_name": "ADE_train_00004540.jpg", "width": 400, "id": 4539, "height": 244}, {"file_name": "ADE_train_00004541.jpg", "width": 756, "id": 4540, "height": 512}, {"file_name": "ADE_train_00004542.jpg", "width": 256, "id": 4541, "height": 256}, {"file_name": "ADE_train_00004543.jpg", "width": 350, "id": 4542, "height": 218}, {"file_name": "ADE_train_00004544.jpg", "width": 256, "id": 4543, "height": 256}, {"file_name": "ADE_train_00004545.jpg", "width": 256, "id": 4544, "height": 256}, {"file_name": "ADE_train_00004546.jpg", "width": 257, "id": 4545, "height": 256}, {"file_name": "ADE_train_00004547.jpg", "width": 759, "id": 4546, "height": 512}, {"file_name": "ADE_train_00004548.jpg", "width": 436, "id": 4547, "height": 800}, {"file_name": "ADE_train_00004549.jpg", "width": 257, "id": 4548, "height": 256}, {"file_name": "ADE_train_00004550.jpg", "width": 256, "id": 4549, "height": 256}, {"file_name": "ADE_train_00004551.jpg", "width": 270, "id": 4550, "height": 409}, {"file_name": "ADE_train_00004552.jpg", "width": 257, "id": 4551, "height": 256}, {"file_name": "ADE_train_00004553.jpg", "width": 640, "id": 4552, "height": 480}, {"file_name": "ADE_train_00004554.jpg", "width": 257, "id": 4553, "height": 256}, {"file_name": "ADE_train_00004555.jpg", "width": 257, "id": 4554, "height": 256}, {"file_name": "ADE_train_00004556.jpg", "width": 256, "id": 4555, "height": 256}, {"file_name": "ADE_train_00004557.jpg", "width": 600, "id": 4556, "height": 450}, {"file_name": "ADE_train_00004558.jpg", "width": 384, "id": 4557, "height": 256}, {"file_name": "ADE_train_00004559.jpg", "width": 683, "id": 4558, "height": 512}, {"file_name": "ADE_train_00004560.jpg", "width": 702, "id": 4559, "height": 512}, {"file_name": "ADE_train_00004561.jpg", "width": 772, "id": 4560, "height": 512}, {"file_name": "ADE_train_00004562.jpg", "width": 881, "id": 4561, "height": 512}, {"file_name": "ADE_train_00004563.jpg", "width": 819, "id": 4562, "height": 512}, {"file_name": "ADE_train_00004564.jpg", "width": 512, "id": 4563, "height": 768}, {"file_name": "ADE_train_00004565.jpg", "width": 683, "id": 4564, "height": 512}, {"file_name": "ADE_train_00004566.jpg", "width": 683, "id": 4565, "height": 512}, {"file_name": "ADE_train_00004567.jpg", "width": 683, "id": 4566, "height": 512}, {"file_name": "ADE_train_00004568.jpg", "width": 683, "id": 4567, "height": 512}, {"file_name": "ADE_train_00004569.jpg", "width": 920, "id": 4568, "height": 512}, {"file_name": "ADE_train_00004570.jpg", "width": 768, "id": 4569, "height": 512}, {"file_name": "ADE_train_00004571.jpg", "width": 683, "id": 4570, "height": 512}, {"file_name": "ADE_train_00004572.jpg", "width": 765, "id": 4571, "height": 512}, {"file_name": "ADE_train_00004573.jpg", "width": 683, "id": 4572, "height": 512}, {"file_name": "ADE_train_00004574.jpg", "width": 720, "id": 4573, "height": 512}, {"file_name": "ADE_train_00004575.jpg", "width": 904, "id": 4574, "height": 512}, {"file_name": "ADE_train_00004576.jpg", "width": 683, "id": 4575, "height": 512}, {"file_name": "ADE_train_00004577.jpg", "width": 683, "id": 4576, "height": 512}, {"file_name": "ADE_train_00004578.jpg", "width": 819, "id": 4577, "height": 512}, {"file_name": "ADE_train_00004579.jpg", "width": 768, "id": 4578, "height": 512}, {"file_name": "ADE_train_00004580.jpg", "width": 683, "id": 4579, "height": 512}, {"file_name": "ADE_train_00004581.jpg", "width": 772, "id": 4580, "height": 512}, {"file_name": "ADE_train_00004582.jpg", "width": 683, "id": 4581, "height": 512}, {"file_name": "ADE_train_00004583.jpg", "width": 683, "id": 4582, "height": 512}, {"file_name": "ADE_train_00004584.jpg", "width": 568, "id": 4583, "height": 426}, {"file_name": "ADE_train_00004585.jpg", "width": 455, "id": 4584, "height": 341}, {"file_name": "ADE_train_00004586.jpg", "width": 600, "id": 4585, "height": 400}, {"file_name": "ADE_train_00004587.jpg", "width": 512, "id": 4586, "height": 752}, {"file_name": "ADE_train_00004588.jpg", "width": 500, "id": 4587, "height": 375}, {"file_name": "ADE_train_00004589.jpg", "width": 468, "id": 4588, "height": 351}, {"file_name": "ADE_train_00004590.jpg", "width": 512, "id": 4589, "height": 769}, {"file_name": "ADE_train_00004591.jpg", "width": 500, "id": 4590, "height": 493}, {"file_name": "ADE_train_00004592.jpg", "width": 377, "id": 4591, "height": 250}, {"file_name": "ADE_train_00004593.jpg", "width": 256, "id": 4592, "height": 256}, {"file_name": "ADE_train_00004594.jpg", "width": 256, "id": 4593, "height": 256}, {"file_name": "ADE_train_00004595.jpg", "width": 256, "id": 4594, "height": 256}, {"file_name": "ADE_train_00004596.jpg", "width": 256, "id": 4595, "height": 256}, {"file_name": "ADE_train_00004597.jpg", "width": 256, "id": 4596, "height": 256}, {"file_name": "ADE_train_00004598.jpg", "width": 256, "id": 4597, "height": 256}, {"file_name": "ADE_train_00004599.jpg", "width": 256, "id": 4598, "height": 256}, {"file_name": "ADE_train_00004600.jpg", "width": 256, "id": 4599, "height": 256}, {"file_name": "ADE_train_00004601.jpg", "width": 256, "id": 4600, "height": 256}, {"file_name": "ADE_train_00004602.jpg", "width": 256, "id": 4601, "height": 256}, {"file_name": "ADE_train_00004603.jpg", "width": 256, "id": 4602, "height": 256}, {"file_name": "ADE_train_00004604.jpg", "width": 256, "id": 4603, "height": 256}, {"file_name": "ADE_train_00004605.jpg", "width": 256, "id": 4604, "height": 256}, {"file_name": "ADE_train_00004606.jpg", "width": 256, "id": 4605, "height": 256}, {"file_name": "ADE_train_00004607.jpg", "width": 256, "id": 4606, "height": 256}, {"file_name": "ADE_train_00004608.jpg", "width": 256, "id": 4607, "height": 256}, {"file_name": "ADE_train_00004609.jpg", "width": 256, "id": 4608, "height": 256}, {"file_name": "ADE_train_00004610.jpg", "width": 256, "id": 4609, "height": 256}, {"file_name": "ADE_train_00004611.jpg", "width": 256, "id": 4610, "height": 256}, {"file_name": "ADE_train_00004612.jpg", "width": 256, "id": 4611, "height": 256}, {"file_name": "ADE_train_00004613.jpg", "width": 256, "id": 4612, "height": 256}, {"file_name": "ADE_train_00004614.jpg", "width": 256, "id": 4613, "height": 256}, {"file_name": "ADE_train_00004615.jpg", "width": 256, "id": 4614, "height": 256}, {"file_name": "ADE_train_00004616.jpg", "width": 256, "id": 4615, "height": 256}, {"file_name": "ADE_train_00004617.jpg", "width": 256, "id": 4616, "height": 256}, {"file_name": "ADE_train_00004618.jpg", "width": 256, "id": 4617, "height": 256}, {"file_name": "ADE_train_00004619.jpg", "width": 256, "id": 4618, "height": 256}, {"file_name": "ADE_train_00004620.jpg", "width": 256, "id": 4619, "height": 256}, {"file_name": "ADE_train_00004621.jpg", "width": 256, "id": 4620, "height": 256}, {"file_name": "ADE_train_00004622.jpg", "width": 256, "id": 4621, "height": 256}, {"file_name": "ADE_train_00004623.jpg", "width": 256, "id": 4622, "height": 256}, {"file_name": "ADE_train_00004624.jpg", "width": 256, "id": 4623, "height": 256}, {"file_name": "ADE_train_00004625.jpg", "width": 256, "id": 4624, "height": 256}, {"file_name": "ADE_train_00004626.jpg", "width": 256, "id": 4625, "height": 256}, {"file_name": "ADE_train_00004627.jpg", "width": 256, "id": 4626, "height": 256}, {"file_name": "ADE_train_00004628.jpg", "width": 256, "id": 4627, "height": 256}, {"file_name": "ADE_train_00004629.jpg", "width": 256, "id": 4628, "height": 256}, {"file_name": "ADE_train_00004630.jpg", "width": 256, "id": 4629, "height": 256}, {"file_name": "ADE_train_00004631.jpg", "width": 256, "id": 4630, "height": 256}, {"file_name": "ADE_train_00004632.jpg", "width": 256, "id": 4631, "height": 256}, {"file_name": "ADE_train_00004633.jpg", "width": 256, "id": 4632, "height": 256}, {"file_name": "ADE_train_00004634.jpg", "width": 256, "id": 4633, "height": 256}, {"file_name": "ADE_train_00004635.jpg", "width": 256, "id": 4634, "height": 256}, {"file_name": "ADE_train_00004636.jpg", "width": 256, "id": 4635, "height": 256}, {"file_name": "ADE_train_00004637.jpg", "width": 256, "id": 4636, "height": 256}, {"file_name": "ADE_train_00004638.jpg", "width": 256, "id": 4637, "height": 256}, {"file_name": "ADE_train_00004639.jpg", "width": 256, "id": 4638, "height": 256}, {"file_name": "ADE_train_00004640.jpg", "width": 256, "id": 4639, "height": 256}, {"file_name": "ADE_train_00004641.jpg", "width": 256, "id": 4640, "height": 256}, {"file_name": "ADE_train_00004642.jpg", "width": 256, "id": 4641, "height": 256}, {"file_name": "ADE_train_00004643.jpg", "width": 256, "id": 4642, "height": 256}, {"file_name": "ADE_train_00004644.jpg", "width": 256, "id": 4643, "height": 256}, {"file_name": "ADE_train_00004645.jpg", "width": 256, "id": 4644, "height": 256}, {"file_name": "ADE_train_00004646.jpg", "width": 256, "id": 4645, "height": 256}, {"file_name": "ADE_train_00004647.jpg", "width": 256, "id": 4646, "height": 256}, {"file_name": "ADE_train_00004648.jpg", "width": 256, "id": 4647, "height": 256}, {"file_name": "ADE_train_00004649.jpg", "width": 256, "id": 4648, "height": 256}, {"file_name": "ADE_train_00004650.jpg", "width": 256, "id": 4649, "height": 256}, {"file_name": "ADE_train_00004651.jpg", "width": 256, "id": 4650, "height": 256}, {"file_name": "ADE_train_00004652.jpg", "width": 256, "id": 4651, "height": 256}, {"file_name": "ADE_train_00004653.jpg", "width": 256, "id": 4652, "height": 256}, {"file_name": "ADE_train_00004654.jpg", "width": 256, "id": 4653, "height": 256}, {"file_name": "ADE_train_00004655.jpg", "width": 256, "id": 4654, "height": 256}, {"file_name": "ADE_train_00004656.jpg", "width": 256, "id": 4655, "height": 256}, {"file_name": "ADE_train_00004657.jpg", "width": 256, "id": 4656, "height": 256}, {"file_name": "ADE_train_00004658.jpg", "width": 256, "id": 4657, "height": 256}, {"file_name": "ADE_train_00004659.jpg", "width": 256, "id": 4658, "height": 256}, {"file_name": "ADE_train_00004660.jpg", "width": 256, "id": 4659, "height": 256}, {"file_name": "ADE_train_00004661.jpg", "width": 256, "id": 4660, "height": 256}, {"file_name": "ADE_train_00004662.jpg", "width": 256, "id": 4661, "height": 256}, {"file_name": "ADE_train_00004663.jpg", "width": 256, "id": 4662, "height": 256}, {"file_name": "ADE_train_00004664.jpg", "width": 256, "id": 4663, "height": 256}, {"file_name": "ADE_train_00004665.jpg", "width": 256, "id": 4664, "height": 256}, {"file_name": "ADE_train_00004666.jpg", "width": 256, "id": 4665, "height": 256}, {"file_name": "ADE_train_00004667.jpg", "width": 256, "id": 4666, "height": 256}, {"file_name": "ADE_train_00004668.jpg", "width": 256, "id": 4667, "height": 256}, {"file_name": "ADE_train_00004669.jpg", "width": 256, "id": 4668, "height": 256}, {"file_name": "ADE_train_00004670.jpg", "width": 256, "id": 4669, "height": 256}, {"file_name": "ADE_train_00004671.jpg", "width": 256, "id": 4670, "height": 256}, {"file_name": "ADE_train_00004672.jpg", "width": 256, "id": 4671, "height": 256}, {"file_name": "ADE_train_00004673.jpg", "width": 256, "id": 4672, "height": 256}, {"file_name": "ADE_train_00004674.jpg", "width": 256, "id": 4673, "height": 256}, {"file_name": "ADE_train_00004675.jpg", "width": 256, "id": 4674, "height": 256}, {"file_name": "ADE_train_00004676.jpg", "width": 256, "id": 4675, "height": 256}, {"file_name": "ADE_train_00004677.jpg", "width": 256, "id": 4676, "height": 256}, {"file_name": "ADE_train_00004678.jpg", "width": 256, "id": 4677, "height": 256}, {"file_name": "ADE_train_00004679.jpg", "width": 256, "id": 4678, "height": 256}, {"file_name": "ADE_train_00004680.jpg", "width": 256, "id": 4679, "height": 256}, {"file_name": "ADE_train_00004681.jpg", "width": 256, "id": 4680, "height": 256}, {"file_name": "ADE_train_00004682.jpg", "width": 256, "id": 4681, "height": 256}, {"file_name": "ADE_train_00004683.jpg", "width": 256, "id": 4682, "height": 256}, {"file_name": "ADE_train_00004684.jpg", "width": 256, "id": 4683, "height": 256}, {"file_name": "ADE_train_00004685.jpg", "width": 256, "id": 4684, "height": 256}, {"file_name": "ADE_train_00004686.jpg", "width": 256, "id": 4685, "height": 256}, {"file_name": "ADE_train_00004687.jpg", "width": 256, "id": 4686, "height": 256}, {"file_name": "ADE_train_00004688.jpg", "width": 256, "id": 4687, "height": 256}, {"file_name": "ADE_train_00004689.jpg", "width": 256, "id": 4688, "height": 256}, {"file_name": "ADE_train_00004690.jpg", "width": 256, "id": 4689, "height": 256}, {"file_name": "ADE_train_00004691.jpg", "width": 256, "id": 4690, "height": 256}, {"file_name": "ADE_train_00004692.jpg", "width": 256, "id": 4691, "height": 256}, {"file_name": "ADE_train_00004693.jpg", "width": 256, "id": 4692, "height": 256}, {"file_name": "ADE_train_00004694.jpg", "width": 256, "id": 4693, "height": 256}, {"file_name": "ADE_train_00004695.jpg", "width": 256, "id": 4694, "height": 256}, {"file_name": "ADE_train_00004696.jpg", "width": 256, "id": 4695, "height": 256}, {"file_name": "ADE_train_00004697.jpg", "width": 256, "id": 4696, "height": 256}, {"file_name": "ADE_train_00004698.jpg", "width": 256, "id": 4697, "height": 256}, {"file_name": "ADE_train_00004699.jpg", "width": 256, "id": 4698, "height": 256}, {"file_name": "ADE_train_00004700.jpg", "width": 256, "id": 4699, "height": 256}, {"file_name": "ADE_train_00004701.jpg", "width": 256, "id": 4700, "height": 256}, {"file_name": "ADE_train_00004702.jpg", "width": 256, "id": 4701, "height": 256}, {"file_name": "ADE_train_00004703.jpg", "width": 256, "id": 4702, "height": 256}, {"file_name": "ADE_train_00004704.jpg", "width": 256, "id": 4703, "height": 256}, {"file_name": "ADE_train_00004705.jpg", "width": 256, "id": 4704, "height": 256}, {"file_name": "ADE_train_00004706.jpg", "width": 256, "id": 4705, "height": 256}, {"file_name": "ADE_train_00004707.jpg", "width": 256, "id": 4706, "height": 256}, {"file_name": "ADE_train_00004708.jpg", "width": 256, "id": 4707, "height": 256}, {"file_name": "ADE_train_00004709.jpg", "width": 256, "id": 4708, "height": 256}, {"file_name": "ADE_train_00004710.jpg", "width": 256, "id": 4709, "height": 256}, {"file_name": "ADE_train_00004711.jpg", "width": 256, "id": 4710, "height": 256}, {"file_name": "ADE_train_00004712.jpg", "width": 256, "id": 4711, "height": 256}, {"file_name": "ADE_train_00004713.jpg", "width": 256, "id": 4712, "height": 256}, {"file_name": "ADE_train_00004714.jpg", "width": 256, "id": 4713, "height": 256}, {"file_name": "ADE_train_00004715.jpg", "width": 256, "id": 4714, "height": 256}, {"file_name": "ADE_train_00004716.jpg", "width": 256, "id": 4715, "height": 256}, {"file_name": "ADE_train_00004717.jpg", "width": 256, "id": 4716, "height": 256}, {"file_name": "ADE_train_00004718.jpg", "width": 256, "id": 4717, "height": 256}, {"file_name": "ADE_train_00004719.jpg", "width": 256, "id": 4718, "height": 256}, {"file_name": "ADE_train_00004720.jpg", "width": 256, "id": 4719, "height": 256}, {"file_name": "ADE_train_00004721.jpg", "width": 256, "id": 4720, "height": 256}, {"file_name": "ADE_train_00004722.jpg", "width": 256, "id": 4721, "height": 256}, {"file_name": "ADE_train_00004723.jpg", "width": 256, "id": 4722, "height": 256}, {"file_name": "ADE_train_00004724.jpg", "width": 256, "id": 4723, "height": 256}, {"file_name": "ADE_train_00004725.jpg", "width": 256, "id": 4724, "height": 256}, {"file_name": "ADE_train_00004726.jpg", "width": 256, "id": 4725, "height": 256}, {"file_name": "ADE_train_00004727.jpg", "width": 256, "id": 4726, "height": 256}, {"file_name": "ADE_train_00004728.jpg", "width": 256, "id": 4727, "height": 256}, {"file_name": "ADE_train_00004729.jpg", "width": 256, "id": 4728, "height": 256}, {"file_name": "ADE_train_00004730.jpg", "width": 256, "id": 4729, "height": 256}, {"file_name": "ADE_train_00004731.jpg", "width": 256, "id": 4730, "height": 256}, {"file_name": "ADE_train_00004732.jpg", "width": 256, "id": 4731, "height": 256}, {"file_name": "ADE_train_00004733.jpg", "width": 256, "id": 4732, "height": 256}, {"file_name": "ADE_train_00004734.jpg", "width": 256, "id": 4733, "height": 256}, {"file_name": "ADE_train_00004735.jpg", "width": 256, "id": 4734, "height": 256}, {"file_name": "ADE_train_00004736.jpg", "width": 256, "id": 4735, "height": 256}, {"file_name": "ADE_train_00004737.jpg", "width": 256, "id": 4736, "height": 256}, {"file_name": "ADE_train_00004738.jpg", "width": 256, "id": 4737, "height": 256}, {"file_name": "ADE_train_00004739.jpg", "width": 256, "id": 4738, "height": 256}, {"file_name": "ADE_train_00004740.jpg", "width": 256, "id": 4739, "height": 256}, {"file_name": "ADE_train_00004741.jpg", "width": 256, "id": 4740, "height": 256}, {"file_name": "ADE_train_00004742.jpg", "width": 256, "id": 4741, "height": 256}, {"file_name": "ADE_train_00004743.jpg", "width": 256, "id": 4742, "height": 256}, {"file_name": "ADE_train_00004744.jpg", "width": 256, "id": 4743, "height": 256}, {"file_name": "ADE_train_00004745.jpg", "width": 256, "id": 4744, "height": 256}, {"file_name": "ADE_train_00004746.jpg", "width": 256, "id": 4745, "height": 256}, {"file_name": "ADE_train_00004747.jpg", "width": 256, "id": 4746, "height": 256}, {"file_name": "ADE_train_00004748.jpg", "width": 256, "id": 4747, "height": 256}, {"file_name": "ADE_train_00004749.jpg", "width": 256, "id": 4748, "height": 256}, {"file_name": "ADE_train_00004750.jpg", "width": 384, "id": 4749, "height": 256}, {"file_name": "ADE_train_00004751.jpg", "width": 256, "id": 4750, "height": 256}, {"file_name": "ADE_train_00004752.jpg", "width": 256, "id": 4751, "height": 256}, {"file_name": "ADE_train_00004753.jpg", "width": 256, "id": 4752, "height": 256}, {"file_name": "ADE_train_00004754.jpg", "width": 256, "id": 4753, "height": 256}, {"file_name": "ADE_train_00004755.jpg", "width": 256, "id": 4754, "height": 256}, {"file_name": "ADE_train_00004756.jpg", "width": 256, "id": 4755, "height": 256}, {"file_name": "ADE_train_00004757.jpg", "width": 256, "id": 4756, "height": 256}, {"file_name": "ADE_train_00004758.jpg", "width": 256, "id": 4757, "height": 256}, {"file_name": "ADE_train_00004759.jpg", "width": 256, "id": 4758, "height": 256}, {"file_name": "ADE_train_00004760.jpg", "width": 256, "id": 4759, "height": 256}, {"file_name": "ADE_train_00004761.jpg", "width": 256, "id": 4760, "height": 256}, {"file_name": "ADE_train_00004762.jpg", "width": 256, "id": 4761, "height": 256}, {"file_name": "ADE_train_00004763.jpg", "width": 256, "id": 4762, "height": 256}, {"file_name": "ADE_train_00004764.jpg", "width": 256, "id": 4763, "height": 256}, {"file_name": "ADE_train_00004765.jpg", "width": 256, "id": 4764, "height": 256}, {"file_name": "ADE_train_00004766.jpg", "width": 256, "id": 4765, "height": 256}, {"file_name": "ADE_train_00004767.jpg", "width": 256, "id": 4766, "height": 256}, {"file_name": "ADE_train_00004768.jpg", "width": 256, "id": 4767, "height": 256}, {"file_name": "ADE_train_00004769.jpg", "width": 256, "id": 4768, "height": 256}, {"file_name": "ADE_train_00004770.jpg", "width": 256, "id": 4769, "height": 256}, {"file_name": "ADE_train_00004771.jpg", "width": 256, "id": 4770, "height": 256}, {"file_name": "ADE_train_00004772.jpg", "width": 256, "id": 4771, "height": 256}, {"file_name": "ADE_train_00004773.jpg", "width": 256, "id": 4772, "height": 256}, {"file_name": "ADE_train_00004774.jpg", "width": 256, "id": 4773, "height": 256}, {"file_name": "ADE_train_00004775.jpg", "width": 256, "id": 4774, "height": 256}, {"file_name": "ADE_train_00004776.jpg", "width": 256, "id": 4775, "height": 256}, {"file_name": "ADE_train_00004777.jpg", "width": 256, "id": 4776, "height": 256}, {"file_name": "ADE_train_00004778.jpg", "width": 256, "id": 4777, "height": 256}, {"file_name": "ADE_train_00004779.jpg", "width": 256, "id": 4778, "height": 256}, {"file_name": "ADE_train_00004780.jpg", "width": 256, "id": 4779, "height": 256}, {"file_name": "ADE_train_00004781.jpg", "width": 256, "id": 4780, "height": 256}, {"file_name": "ADE_train_00004782.jpg", "width": 256, "id": 4781, "height": 256}, {"file_name": "ADE_train_00004783.jpg", "width": 256, "id": 4782, "height": 256}, {"file_name": "ADE_train_00004784.jpg", "width": 256, "id": 4783, "height": 256}, {"file_name": "ADE_train_00004785.jpg", "width": 256, "id": 4784, "height": 256}, {"file_name": "ADE_train_00004786.jpg", "width": 256, "id": 4785, "height": 256}, {"file_name": "ADE_train_00004787.jpg", "width": 256, "id": 4786, "height": 256}, {"file_name": "ADE_train_00004788.jpg", "width": 256, "id": 4787, "height": 256}, {"file_name": "ADE_train_00004789.jpg", "width": 256, "id": 4788, "height": 256}, {"file_name": "ADE_train_00004790.jpg", "width": 256, "id": 4789, "height": 256}, {"file_name": "ADE_train_00004791.jpg", "width": 256, "id": 4790, "height": 256}, {"file_name": "ADE_train_00004792.jpg", "width": 256, "id": 4791, "height": 256}, {"file_name": "ADE_train_00004793.jpg", "width": 256, "id": 4792, "height": 256}, {"file_name": "ADE_train_00004794.jpg", "width": 256, "id": 4793, "height": 256}, {"file_name": "ADE_train_00004795.jpg", "width": 256, "id": 4794, "height": 256}, {"file_name": "ADE_train_00004796.jpg", "width": 256, "id": 4795, "height": 256}, {"file_name": "ADE_train_00004797.jpg", "width": 256, "id": 4796, "height": 256}, {"file_name": "ADE_train_00004798.jpg", "width": 256, "id": 4797, "height": 256}, {"file_name": "ADE_train_00004799.jpg", "width": 256, "id": 4798, "height": 256}, {"file_name": "ADE_train_00004800.jpg", "width": 256, "id": 4799, "height": 256}, {"file_name": "ADE_train_00004801.jpg", "width": 256, "id": 4800, "height": 256}, {"file_name": "ADE_train_00004802.jpg", "width": 256, "id": 4801, "height": 256}, {"file_name": "ADE_train_00004803.jpg", "width": 256, "id": 4802, "height": 256}, {"file_name": "ADE_train_00004804.jpg", "width": 256, "id": 4803, "height": 256}, {"file_name": "ADE_train_00004805.jpg", "width": 256, "id": 4804, "height": 256}, {"file_name": "ADE_train_00004806.jpg", "width": 256, "id": 4805, "height": 256}, {"file_name": "ADE_train_00004807.jpg", "width": 256, "id": 4806, "height": 256}, {"file_name": "ADE_train_00004808.jpg", "width": 256, "id": 4807, "height": 256}, {"file_name": "ADE_train_00004809.jpg", "width": 256, "id": 4808, "height": 256}, {"file_name": "ADE_train_00004810.jpg", "width": 256, "id": 4809, "height": 256}, {"file_name": "ADE_train_00004811.jpg", "width": 256, "id": 4810, "height": 256}, {"file_name": "ADE_train_00004812.jpg", "width": 256, "id": 4811, "height": 256}, {"file_name": "ADE_train_00004813.jpg", "width": 256, "id": 4812, "height": 256}, {"file_name": "ADE_train_00004814.jpg", "width": 256, "id": 4813, "height": 256}, {"file_name": "ADE_train_00004815.jpg", "width": 256, "id": 4814, "height": 256}, {"file_name": "ADE_train_00004816.jpg", "width": 256, "id": 4815, "height": 256}, {"file_name": "ADE_train_00004817.jpg", "width": 256, "id": 4816, "height": 256}, {"file_name": "ADE_train_00004818.jpg", "width": 256, "id": 4817, "height": 256}, {"file_name": "ADE_train_00004819.jpg", "width": 256, "id": 4818, "height": 256}, {"file_name": "ADE_train_00004820.jpg", "width": 256, "id": 4819, "height": 256}, {"file_name": "ADE_train_00004821.jpg", "width": 512, "id": 4820, "height": 683}, {"file_name": "ADE_train_00004822.jpg", "width": 500, "id": 4821, "height": 333}, {"file_name": "ADE_train_00004823.jpg", "width": 500, "id": 4822, "height": 375}, {"file_name": "ADE_train_00004824.jpg", "width": 512, "id": 4823, "height": 683}, {"file_name": "ADE_train_00004825.jpg", "width": 724, "id": 4824, "height": 512}, {"file_name": "ADE_train_00004826.jpg", "width": 550, "id": 4825, "height": 385}, {"file_name": "ADE_train_00004827.jpg", "width": 300, "id": 4826, "height": 225}, {"file_name": "ADE_train_00004828.jpg", "width": 500, "id": 4827, "height": 375}, {"file_name": "ADE_train_00004829.jpg", "width": 300, "id": 4828, "height": 400}, {"file_name": "ADE_train_00004830.jpg", "width": 683, "id": 4829, "height": 512}, {"file_name": "ADE_train_00004831.jpg", "width": 760, "id": 4830, "height": 512}, {"file_name": "ADE_train_00004832.jpg", "width": 275, "id": 4831, "height": 183}, {"file_name": "ADE_train_00004833.jpg", "width": 640, "id": 4832, "height": 480}, {"file_name": "ADE_train_00004834.jpg", "width": 683, "id": 4833, "height": 512}, {"file_name": "ADE_train_00004835.jpg", "width": 400, "id": 4834, "height": 221}, {"file_name": "ADE_train_00004836.jpg", "width": 350, "id": 4835, "height": 235}, {"file_name": "ADE_train_00004837.jpg", "width": 648, "id": 4836, "height": 486}, {"file_name": "ADE_train_00004838.jpg", "width": 683, "id": 4837, "height": 512}, {"file_name": "ADE_train_00004839.jpg", "width": 550, "id": 4838, "height": 370}, {"file_name": "ADE_train_00004840.jpg", "width": 683, "id": 4839, "height": 512}, {"file_name": "ADE_train_00004841.jpg", "width": 450, "id": 4840, "height": 338}, {"file_name": "ADE_train_00004842.jpg", "width": 288, "id": 4841, "height": 201}, {"file_name": "ADE_train_00004843.jpg", "width": 593, "id": 4842, "height": 414}, {"file_name": "ADE_train_00004844.jpg", "width": 400, "id": 4843, "height": 300}, {"file_name": "ADE_train_00004845.jpg", "width": 683, "id": 4844, "height": 512}, {"file_name": "ADE_train_00004846.jpg", "width": 400, "id": 4845, "height": 300}, {"file_name": "ADE_train_00004847.jpg", "width": 768, "id": 4846, "height": 512}, {"file_name": "ADE_train_00004848.jpg", "width": 910, "id": 4847, "height": 512}, {"file_name": "ADE_train_00004849.jpg", "width": 500, "id": 4848, "height": 300}, {"file_name": "ADE_train_00004850.jpg", "width": 683, "id": 4849, "height": 512}, {"file_name": "ADE_train_00004851.jpg", "width": 640, "id": 4850, "height": 480}, {"file_name": "ADE_train_00004852.jpg", "width": 679, "id": 4851, "height": 512}, {"file_name": "ADE_train_00004853.jpg", "width": 530, "id": 4852, "height": 398}, {"file_name": "ADE_train_00004854.jpg", "width": 763, "id": 4853, "height": 512}, {"file_name": "ADE_train_00004855.jpg", "width": 683, "id": 4854, "height": 512}, {"file_name": "ADE_train_00004856.jpg", "width": 400, "id": 4855, "height": 265}, {"file_name": "ADE_train_00004857.jpg", "width": 684, "id": 4856, "height": 512}, {"file_name": "ADE_train_00004858.jpg", "width": 683, "id": 4857, "height": 512}, {"file_name": "ADE_train_00004859.jpg", "width": 771, "id": 4858, "height": 512}, {"file_name": "ADE_train_00004860.jpg", "width": 500, "id": 4859, "height": 375}, {"file_name": "ADE_train_00004861.jpg", "width": 480, "id": 4860, "height": 360}, {"file_name": "ADE_train_00004862.jpg", "width": 533, "id": 4861, "height": 400}, {"file_name": "ADE_train_00004863.jpg", "width": 480, "id": 4862, "height": 360}, {"file_name": "ADE_train_00004864.jpg", "width": 640, "id": 4863, "height": 480}, {"file_name": "ADE_train_00004865.jpg", "width": 650, "id": 4864, "height": 436}, {"file_name": "ADE_train_00004866.jpg", "width": 660, "id": 4865, "height": 440}, {"file_name": "ADE_train_00004867.jpg", "width": 632, "id": 4866, "height": 366}, {"file_name": "ADE_train_00004868.jpg", "width": 640, "id": 4867, "height": 480}, {"file_name": "ADE_train_00004869.jpg", "width": 500, "id": 4868, "height": 335}, {"file_name": "ADE_train_00004870.jpg", "width": 577, "id": 4869, "height": 387}, {"file_name": "ADE_train_00004871.jpg", "width": 683, "id": 4870, "height": 512}, {"file_name": "ADE_train_00004872.jpg", "width": 350, "id": 4871, "height": 233}, {"file_name": "ADE_train_00004873.jpg", "width": 500, "id": 4872, "height": 375}, {"file_name": "ADE_train_00004874.jpg", "width": 683, "id": 4873, "height": 512}, {"file_name": "ADE_train_00004875.jpg", "width": 640, "id": 4874, "height": 480}, {"file_name": "ADE_train_00004876.jpg", "width": 640, "id": 4875, "height": 427}, {"file_name": "ADE_train_00004877.jpg", "width": 683, "id": 4876, "height": 512}, {"file_name": "ADE_train_00004878.jpg", "width": 500, "id": 4877, "height": 375}, {"file_name": "ADE_train_00004879.jpg", "width": 640, "id": 4878, "height": 420}, {"file_name": "ADE_train_00004880.jpg", "width": 356, "id": 4879, "height": 263}, {"file_name": "ADE_train_00004881.jpg", "width": 683, "id": 4880, "height": 512}, {"file_name": "ADE_train_00004882.jpg", "width": 400, "id": 4881, "height": 300}, {"file_name": "ADE_train_00004883.jpg", "width": 465, "id": 4882, "height": 348}, {"file_name": "ADE_train_00004884.jpg", "width": 320, "id": 4883, "height": 242}, {"file_name": "ADE_train_00004885.jpg", "width": 765, "id": 4884, "height": 512}, {"file_name": "ADE_train_00004886.jpg", "width": 301, "id": 4885, "height": 226}, {"file_name": "ADE_train_00004887.jpg", "width": 768, "id": 4886, "height": 512}, {"file_name": "ADE_train_00004888.jpg", "width": 400, "id": 4887, "height": 304}, {"file_name": "ADE_train_00004889.jpg", "width": 700, "id": 4888, "height": 467}, {"file_name": "ADE_train_00004890.jpg", "width": 300, "id": 4889, "height": 225}, {"file_name": "ADE_train_00004891.jpg", "width": 774, "id": 4890, "height": 512}, {"file_name": "ADE_train_00004892.jpg", "width": 565, "id": 4891, "height": 435}, {"file_name": "ADE_train_00004893.jpg", "width": 400, "id": 4892, "height": 294}, {"file_name": "ADE_train_00004894.jpg", "width": 791, "id": 4893, "height": 512}, {"file_name": "ADE_train_00004895.jpg", "width": 600, "id": 4894, "height": 450}, {"file_name": "ADE_train_00004896.jpg", "width": 300, "id": 4895, "height": 225}, {"file_name": "ADE_train_00004897.jpg", "width": 576, "id": 4896, "height": 432}, {"file_name": "ADE_train_00004898.jpg", "width": 800, "id": 4897, "height": 421}, {"file_name": "ADE_train_00004899.jpg", "width": 564, "id": 4898, "height": 320}, {"file_name": "ADE_train_00004900.jpg", "width": 683, "id": 4899, "height": 512}, {"file_name": "ADE_train_00004901.jpg", "width": 683, "id": 4900, "height": 512}, {"file_name": "ADE_train_00004902.jpg", "width": 323, "id": 4901, "height": 250}, {"file_name": "ADE_train_00004903.jpg", "width": 768, "id": 4902, "height": 512}, {"file_name": "ADE_train_00004904.jpg", "width": 600, "id": 4903, "height": 407}, {"file_name": "ADE_train_00004905.jpg", "width": 400, "id": 4904, "height": 320}, {"file_name": "ADE_train_00004906.jpg", "width": 640, "id": 4905, "height": 480}, {"file_name": "ADE_train_00004907.jpg", "width": 400, "id": 4906, "height": 267}, {"file_name": "ADE_train_00004908.jpg", "width": 683, "id": 4907, "height": 512}, {"file_name": "ADE_train_00004909.jpg", "width": 640, "id": 4908, "height": 480}, {"file_name": "ADE_train_00004910.jpg", "width": 750, "id": 4909, "height": 506}, {"file_name": "ADE_train_00004911.jpg", "width": 512, "id": 4910, "height": 683}, {"file_name": "ADE_train_00004912.jpg", "width": 422, "id": 4911, "height": 532}, {"file_name": "ADE_train_00004913.jpg", "width": 512, "id": 4912, "height": 683}, {"file_name": "ADE_train_00004914.jpg", "width": 796, "id": 4913, "height": 512}, {"file_name": "ADE_train_00004915.jpg", "width": 760, "id": 4914, "height": 512}, {"file_name": "ADE_train_00004916.jpg", "width": 400, "id": 4915, "height": 239}, {"file_name": "ADE_train_00004917.jpg", "width": 771, "id": 4916, "height": 512}, {"file_name": "ADE_train_00004918.jpg", "width": 751, "id": 4917, "height": 512}, {"file_name": "ADE_train_00004919.jpg", "width": 845, "id": 4918, "height": 512}, {"file_name": "ADE_train_00004920.jpg", "width": 768, "id": 4919, "height": 512}, {"file_name": "ADE_train_00004921.jpg", "width": 768, "id": 4920, "height": 512}, {"file_name": "ADE_train_00004922.jpg", "width": 333, "id": 4921, "height": 500}, {"file_name": "ADE_train_00004923.jpg", "width": 410, "id": 4922, "height": 580}, {"file_name": "ADE_train_00004924.jpg", "width": 354, "id": 4923, "height": 319}, {"file_name": "ADE_train_00004925.jpg", "width": 247, "id": 4924, "height": 356}, {"file_name": "ADE_train_00004926.jpg", "width": 400, "id": 4925, "height": 388}, {"file_name": "ADE_train_00004927.jpg", "width": 320, "id": 4926, "height": 284}, {"file_name": "ADE_train_00004928.jpg", "width": 770, "id": 4927, "height": 512}, {"file_name": "ADE_train_00004929.jpg", "width": 497, "id": 4928, "height": 457}, {"file_name": "ADE_train_00004930.jpg", "width": 202, "id": 4929, "height": 261}, {"file_name": "ADE_train_00004931.jpg", "width": 300, "id": 4930, "height": 200}, {"file_name": "ADE_train_00004932.jpg", "width": 377, "id": 4931, "height": 240}, {"file_name": "ADE_train_00004933.jpg", "width": 683, "id": 4932, "height": 512}, {"file_name": "ADE_train_00004934.jpg", "width": 354, "id": 4933, "height": 304}, {"file_name": "ADE_train_00004935.jpg", "width": 768, "id": 4934, "height": 512}, {"file_name": "ADE_train_00004936.jpg", "width": 769, "id": 4935, "height": 512}, {"file_name": "ADE_train_00004937.jpg", "width": 720, "id": 4936, "height": 512}, {"file_name": "ADE_train_00004938.jpg", "width": 683, "id": 4937, "height": 512}, {"file_name": "ADE_train_00004939.jpg", "width": 316, "id": 4938, "height": 255}, {"file_name": "ADE_train_00004940.jpg", "width": 683, "id": 4939, "height": 512}, {"file_name": "ADE_train_00004941.jpg", "width": 683, "id": 4940, "height": 512}, {"file_name": "ADE_train_00004942.jpg", "width": 683, "id": 4941, "height": 512}, {"file_name": "ADE_train_00004943.jpg", "width": 683, "id": 4942, "height": 512}, {"file_name": "ADE_train_00004944.jpg", "width": 683, "id": 4943, "height": 512}, {"file_name": "ADE_train_00004945.jpg", "width": 683, "id": 4944, "height": 512}, {"file_name": "ADE_train_00004946.jpg", "width": 314, "id": 4945, "height": 235}, {"file_name": "ADE_train_00004947.jpg", "width": 683, "id": 4946, "height": 512}, {"file_name": "ADE_train_00004948.jpg", "width": 699, "id": 4947, "height": 512}, {"file_name": "ADE_train_00004949.jpg", "width": 683, "id": 4948, "height": 512}, {"file_name": "ADE_train_00004950.jpg", "width": 320, "id": 4949, "height": 240}, {"file_name": "ADE_train_00004951.jpg", "width": 400, "id": 4950, "height": 300}, {"file_name": "ADE_train_00004952.jpg", "width": 683, "id": 4951, "height": 512}, {"file_name": "ADE_train_00004953.jpg", "width": 600, "id": 4952, "height": 398}, {"file_name": "ADE_train_00004954.jpg", "width": 683, "id": 4953, "height": 512}, {"file_name": "ADE_train_00004955.jpg", "width": 683, "id": 4954, "height": 512}, {"file_name": "ADE_train_00004956.jpg", "width": 683, "id": 4955, "height": 512}, {"file_name": "ADE_train_00004957.jpg", "width": 336, "id": 4956, "height": 252}, {"file_name": "ADE_train_00004958.jpg", "width": 450, "id": 4957, "height": 295}, {"file_name": "ADE_train_00004959.jpg", "width": 400, "id": 4958, "height": 262}, {"file_name": "ADE_train_00004960.jpg", "width": 806, "id": 4959, "height": 512}, {"file_name": "ADE_train_00004961.jpg", "width": 360, "id": 4960, "height": 460}, {"file_name": "ADE_train_00004962.jpg", "width": 270, "id": 4961, "height": 206}, {"file_name": "ADE_train_00004963.jpg", "width": 300, "id": 4962, "height": 275}, {"file_name": "ADE_train_00004964.jpg", "width": 640, "id": 4963, "height": 480}, {"file_name": "ADE_train_00004965.jpg", "width": 683, "id": 4964, "height": 512}, {"file_name": "ADE_train_00004966.jpg", "width": 307, "id": 4965, "height": 230}, {"file_name": "ADE_train_00004967.jpg", "width": 320, "id": 4966, "height": 256}, {"file_name": "ADE_train_00004968.jpg", "width": 683, "id": 4967, "height": 512}, {"file_name": "ADE_train_00004969.jpg", "width": 768, "id": 4968, "height": 512}, {"file_name": "ADE_train_00004970.jpg", "width": 764, "id": 4969, "height": 512}, {"file_name": "ADE_train_00004971.jpg", "width": 256, "id": 4970, "height": 256}, {"file_name": "ADE_train_00004972.jpg", "width": 256, "id": 4971, "height": 256}, {"file_name": "ADE_train_00004973.jpg", "width": 256, "id": 4972, "height": 256}, {"file_name": "ADE_train_00004974.jpg", "width": 683, "id": 4973, "height": 512}, {"file_name": "ADE_train_00004975.jpg", "width": 256, "id": 4974, "height": 256}, {"file_name": "ADE_train_00004976.jpg", "width": 256, "id": 4975, "height": 256}, {"file_name": "ADE_train_00004977.jpg", "width": 256, "id": 4976, "height": 256}, {"file_name": "ADE_train_00004978.jpg", "width": 640, "id": 4977, "height": 480}, {"file_name": "ADE_train_00004979.jpg", "width": 256, "id": 4978, "height": 256}, {"file_name": "ADE_train_00004980.jpg", "width": 480, "id": 4979, "height": 640}, {"file_name": "ADE_train_00004981.jpg", "width": 350, "id": 4980, "height": 228}, {"file_name": "ADE_train_00004982.jpg", "width": 750, "id": 4981, "height": 499}, {"file_name": "ADE_train_00004983.jpg", "width": 391, "id": 4982, "height": 551}, {"file_name": "ADE_train_00004984.jpg", "width": 640, "id": 4983, "height": 512}, {"file_name": "ADE_train_00004985.jpg", "width": 300, "id": 4984, "height": 224}, {"file_name": "ADE_train_00004986.jpg", "width": 450, "id": 4985, "height": 316}, {"file_name": "ADE_train_00004987.jpg", "width": 640, "id": 4986, "height": 480}, {"file_name": "ADE_train_00004988.jpg", "width": 440, "id": 4987, "height": 293}, {"file_name": "ADE_train_00004989.jpg", "width": 683, "id": 4988, "height": 512}, {"file_name": "ADE_train_00004990.jpg", "width": 492, "id": 4989, "height": 329}, {"file_name": "ADE_train_00004991.jpg", "width": 450, "id": 4990, "height": 331}, {"file_name": "ADE_train_00004992.jpg", "width": 504, "id": 4991, "height": 330}, {"file_name": "ADE_train_00004993.jpg", "width": 500, "id": 4992, "height": 375}, {"file_name": "ADE_train_00004994.jpg", "width": 683, "id": 4993, "height": 512}, {"file_name": "ADE_train_00004995.jpg", "width": 450, "id": 4994, "height": 293}, {"file_name": "ADE_train_00004996.jpg", "width": 640, "id": 4995, "height": 429}, {"file_name": "ADE_train_00004997.jpg", "width": 296, "id": 4996, "height": 450}, {"file_name": "ADE_train_00004998.jpg", "width": 450, "id": 4997, "height": 338}, {"file_name": "ADE_train_00004999.jpg", "width": 465, "id": 4998, "height": 300}, {"file_name": "ADE_train_00005000.jpg", "width": 500, "id": 4999, "height": 332}, {"file_name": "ADE_train_00005001.jpg", "width": 500, "id": 5000, "height": 312}, {"file_name": "ADE_train_00005002.jpg", "width": 670, "id": 5001, "height": 415}, {"file_name": "ADE_train_00005003.jpg", "width": 300, "id": 5002, "height": 200}, {"file_name": "ADE_train_00005004.jpg", "width": 600, "id": 5003, "height": 437}, {"file_name": "ADE_train_00005005.jpg", "width": 683, "id": 5004, "height": 512}, {"file_name": "ADE_train_00005006.jpg", "width": 683, "id": 5005, "height": 512}, {"file_name": "ADE_train_00005007.jpg", "width": 734, "id": 5006, "height": 512}, {"file_name": "ADE_train_00005008.jpg", "width": 683, "id": 5007, "height": 512}, {"file_name": "ADE_train_00005009.jpg", "width": 320, "id": 5008, "height": 240}, {"file_name": "ADE_train_00005010.jpg", "width": 302, "id": 5009, "height": 300}, {"file_name": "ADE_train_00005011.jpg", "width": 579, "id": 5010, "height": 512}, {"file_name": "ADE_train_00005012.jpg", "width": 829, "id": 5011, "height": 512}, {"file_name": "ADE_train_00005013.jpg", "width": 256, "id": 5012, "height": 256}, {"file_name": "ADE_train_00005014.jpg", "width": 256, "id": 5013, "height": 256}, {"file_name": "ADE_train_00005015.jpg", "width": 683, "id": 5014, "height": 512}, {"file_name": "ADE_train_00005016.jpg", "width": 512, "id": 5015, "height": 683}, {"file_name": "ADE_train_00005017.jpg", "width": 275, "id": 5016, "height": 262}, {"file_name": "ADE_train_00005018.jpg", "width": 683, "id": 5017, "height": 512}, {"file_name": "ADE_train_00005019.jpg", "width": 256, "id": 5018, "height": 256}, {"file_name": "ADE_train_00005020.jpg", "width": 256, "id": 5019, "height": 256}, {"file_name": "ADE_train_00005021.jpg", "width": 256, "id": 5020, "height": 256}, {"file_name": "ADE_train_00005022.jpg", "width": 256, "id": 5021, "height": 256}, {"file_name": "ADE_train_00005023.jpg", "width": 683, "id": 5022, "height": 512}, {"file_name": "ADE_train_00005024.jpg", "width": 683, "id": 5023, "height": 512}, {"file_name": "ADE_train_00005025.jpg", "width": 683, "id": 5024, "height": 512}, {"file_name": "ADE_train_00005026.jpg", "width": 683, "id": 5025, "height": 512}, {"file_name": "ADE_train_00005027.jpg", "width": 400, "id": 5026, "height": 300}, {"file_name": "ADE_train_00005028.jpg", "width": 350, "id": 5027, "height": 280}, {"file_name": "ADE_train_00005029.jpg", "width": 640, "id": 5028, "height": 480}, {"file_name": "ADE_train_00005030.jpg", "width": 683, "id": 5029, "height": 512}, {"file_name": "ADE_train_00005031.jpg", "width": 400, "id": 5030, "height": 300}, {"file_name": "ADE_train_00005032.jpg", "width": 683, "id": 5031, "height": 512}, {"file_name": "ADE_train_00005033.jpg", "width": 683, "id": 5032, "height": 512}, {"file_name": "ADE_train_00005034.jpg", "width": 683, "id": 5033, "height": 512}, {"file_name": "ADE_train_00005035.jpg", "width": 600, "id": 5034, "height": 416}, {"file_name": "ADE_train_00005036.jpg", "width": 610, "id": 5035, "height": 407}, {"file_name": "ADE_train_00005037.jpg", "width": 319, "id": 5036, "height": 480}, {"file_name": "ADE_train_00005038.jpg", "width": 640, "id": 5037, "height": 480}, {"file_name": "ADE_train_00005039.jpg", "width": 640, "id": 5038, "height": 480}, {"file_name": "ADE_train_00005040.jpg", "width": 500, "id": 5039, "height": 375}, {"file_name": "ADE_train_00005041.jpg", "width": 765, "id": 5040, "height": 512}, {"file_name": "ADE_train_00005042.jpg", "width": 693, "id": 5041, "height": 512}, {"file_name": "ADE_train_00005043.jpg", "width": 307, "id": 5042, "height": 230}, {"file_name": "ADE_train_00005044.jpg", "width": 683, "id": 5043, "height": 512}, {"file_name": "ADE_train_00005045.jpg", "width": 256, "id": 5044, "height": 256}, {"file_name": "ADE_train_00005046.jpg", "width": 256, "id": 5045, "height": 256}, {"file_name": "ADE_train_00005047.jpg", "width": 512, "id": 5046, "height": 773}, {"file_name": "ADE_train_00005048.jpg", "width": 256, "id": 5047, "height": 256}, {"file_name": "ADE_train_00005049.jpg", "width": 256, "id": 5048, "height": 256}, {"file_name": "ADE_train_00005050.jpg", "width": 256, "id": 5049, "height": 256}, {"file_name": "ADE_train_00005051.jpg", "width": 512, "id": 5050, "height": 683}, {"file_name": "ADE_train_00005052.jpg", "width": 770, "id": 5051, "height": 512}, {"file_name": "ADE_train_00005053.jpg", "width": 256, "id": 5052, "height": 256}, {"file_name": "ADE_train_00005054.jpg", "width": 256, "id": 5053, "height": 256}, {"file_name": "ADE_train_00005055.jpg", "width": 256, "id": 5054, "height": 256}, {"file_name": "ADE_train_00005056.jpg", "width": 600, "id": 5055, "height": 338}, {"file_name": "ADE_train_00005057.jpg", "width": 360, "id": 5056, "height": 256}, {"file_name": "ADE_train_00005058.jpg", "width": 400, "id": 5057, "height": 253}, {"file_name": "ADE_train_00005059.jpg", "width": 460, "id": 5058, "height": 344}, {"file_name": "ADE_train_00005060.jpg", "width": 683, "id": 5059, "height": 512}, {"file_name": "ADE_train_00005061.jpg", "width": 683, "id": 5060, "height": 512}, {"file_name": "ADE_train_00005062.jpg", "width": 686, "id": 5061, "height": 512}, {"file_name": "ADE_train_00005063.jpg", "width": 320, "id": 5062, "height": 214}, {"file_name": "ADE_train_00005064.jpg", "width": 683, "id": 5063, "height": 512}, {"file_name": "ADE_train_00005065.jpg", "width": 227, "id": 5064, "height": 274}, {"file_name": "ADE_train_00005066.jpg", "width": 683, "id": 5065, "height": 512}, {"file_name": "ADE_train_00005067.jpg", "width": 600, "id": 5066, "height": 400}, {"file_name": "ADE_train_00005068.jpg", "width": 384, "id": 5067, "height": 256}, {"file_name": "ADE_train_00005069.jpg", "width": 649, "id": 5068, "height": 512}, {"file_name": "ADE_train_00005070.jpg", "width": 500, "id": 5069, "height": 397}, {"file_name": "ADE_train_00005071.jpg", "width": 716, "id": 5070, "height": 512}, {"file_name": "ADE_train_00005072.jpg", "width": 770, "id": 5071, "height": 512}, {"file_name": "ADE_train_00005073.jpg", "width": 640, "id": 5072, "height": 480}, {"file_name": "ADE_train_00005074.jpg", "width": 726, "id": 5073, "height": 512}, {"file_name": "ADE_train_00005075.jpg", "width": 560, "id": 5074, "height": 420}, {"file_name": "ADE_train_00005076.jpg", "width": 576, "id": 5075, "height": 432}, {"file_name": "ADE_train_00005077.jpg", "width": 300, "id": 5076, "height": 269}, {"file_name": "ADE_train_00005078.jpg", "width": 750, "id": 5077, "height": 469}, {"file_name": "ADE_train_00005079.jpg", "width": 480, "id": 5078, "height": 363}, {"file_name": "ADE_train_00005080.jpg", "width": 450, "id": 5079, "height": 300}, {"file_name": "ADE_train_00005081.jpg", "width": 683, "id": 5080, "height": 512}, {"file_name": "ADE_train_00005082.jpg", "width": 788, "id": 5081, "height": 512}, {"file_name": "ADE_train_00005083.jpg", "width": 500, "id": 5082, "height": 332}, {"file_name": "ADE_train_00005084.jpg", "width": 683, "id": 5083, "height": 512}, {"file_name": "ADE_train_00005085.jpg", "width": 576, "id": 5084, "height": 395}, {"file_name": "ADE_train_00005086.jpg", "width": 640, "id": 5085, "height": 480}, {"file_name": "ADE_train_00005087.jpg", "width": 800, "id": 5086, "height": 512}, {"file_name": "ADE_train_00005088.jpg", "width": 450, "id": 5087, "height": 292}, {"file_name": "ADE_train_00005089.jpg", "width": 480, "id": 5088, "height": 640}, {"file_name": "ADE_train_00005090.jpg", "width": 320, "id": 5089, "height": 240}, {"file_name": "ADE_train_00005091.jpg", "width": 650, "id": 5090, "height": 438}, {"file_name": "ADE_train_00005092.jpg", "width": 240, "id": 5091, "height": 160}, {"file_name": "ADE_train_00005093.jpg", "width": 321, "id": 5092, "height": 230}, {"file_name": "ADE_train_00005094.jpg", "width": 400, "id": 5093, "height": 300}, {"file_name": "ADE_train_00005095.jpg", "width": 400, "id": 5094, "height": 300}, {"file_name": "ADE_train_00005096.jpg", "width": 350, "id": 5095, "height": 263}, {"file_name": "ADE_train_00005097.jpg", "width": 400, "id": 5096, "height": 300}, {"file_name": "ADE_train_00005098.jpg", "width": 640, "id": 5097, "height": 480}, {"file_name": "ADE_train_00005099.jpg", "width": 640, "id": 5098, "height": 480}, {"file_name": "ADE_train_00005100.jpg", "width": 283, "id": 5099, "height": 250}, {"file_name": "ADE_train_00005101.jpg", "width": 320, "id": 5100, "height": 240}, {"file_name": "ADE_train_00005102.jpg", "width": 320, "id": 5101, "height": 229}, {"file_name": "ADE_train_00005103.jpg", "width": 500, "id": 5102, "height": 375}, {"file_name": "ADE_train_00005104.jpg", "width": 640, "id": 5103, "height": 480}, {"file_name": "ADE_train_00005105.jpg", "width": 499, "id": 5104, "height": 399}, {"file_name": "ADE_train_00005106.jpg", "width": 348, "id": 5105, "height": 261}, {"file_name": "ADE_train_00005107.jpg", "width": 600, "id": 5106, "height": 450}, {"file_name": "ADE_train_00005108.jpg", "width": 683, "id": 5107, "height": 512}, {"file_name": "ADE_train_00005109.jpg", "width": 683, "id": 5108, "height": 512}, {"file_name": "ADE_train_00005110.jpg", "width": 768, "id": 5109, "height": 512}, {"file_name": "ADE_train_00005111.jpg", "width": 683, "id": 5110, "height": 512}, {"file_name": "ADE_train_00005112.jpg", "width": 700, "id": 5111, "height": 485}, {"file_name": "ADE_train_00005113.jpg", "width": 350, "id": 5112, "height": 227}, {"file_name": "ADE_train_00005114.jpg", "width": 604, "id": 5113, "height": 406}, {"file_name": "ADE_train_00005115.jpg", "width": 612, "id": 5114, "height": 512}, {"file_name": "ADE_train_00005116.jpg", "width": 768, "id": 5115, "height": 512}, {"file_name": "ADE_train_00005117.jpg", "width": 500, "id": 5116, "height": 345}, {"file_name": "ADE_train_00005118.jpg", "width": 365, "id": 5117, "height": 225}, {"file_name": "ADE_train_00005119.jpg", "width": 640, "id": 5118, "height": 480}, {"file_name": "ADE_train_00005120.jpg", "width": 545, "id": 5119, "height": 286}, {"file_name": "ADE_train_00005121.jpg", "width": 649, "id": 5120, "height": 495}, {"file_name": "ADE_train_00005122.jpg", "width": 400, "id": 5121, "height": 233}, {"file_name": "ADE_train_00005123.jpg", "width": 300, "id": 5122, "height": 216}, {"file_name": "ADE_train_00005124.jpg", "width": 342, "id": 5123, "height": 208}, {"file_name": "ADE_train_00005125.jpg", "width": 974, "id": 5124, "height": 512}, {"file_name": "ADE_train_00005126.jpg", "width": 229, "id": 5125, "height": 229}, {"file_name": "ADE_train_00005127.jpg", "width": 683, "id": 5126, "height": 512}, {"file_name": "ADE_train_00005128.jpg", "width": 683, "id": 5127, "height": 512}, {"file_name": "ADE_train_00005129.jpg", "width": 683, "id": 5128, "height": 512}, {"file_name": "ADE_train_00005130.jpg", "width": 320, "id": 5129, "height": 240}, {"file_name": "ADE_train_00005131.jpg", "width": 320, "id": 5130, "height": 240}, {"file_name": "ADE_train_00005132.jpg", "width": 640, "id": 5131, "height": 480}, {"file_name": "ADE_train_00005133.jpg", "width": 683, "id": 5132, "height": 512}, {"file_name": "ADE_train_00005134.jpg", "width": 296, "id": 5133, "height": 195}, {"file_name": "ADE_train_00005135.jpg", "width": 625, "id": 5134, "height": 468}, {"file_name": "ADE_train_00005136.jpg", "width": 420, "id": 5135, "height": 285}, {"file_name": "ADE_train_00005137.jpg", "width": 512, "id": 5136, "height": 384}, {"file_name": "ADE_train_00005138.jpg", "width": 480, "id": 5137, "height": 640}, {"file_name": "ADE_train_00005139.jpg", "width": 300, "id": 5138, "height": 205}, {"file_name": "ADE_train_00005140.jpg", "width": 714, "id": 5139, "height": 512}, {"file_name": "ADE_train_00005141.jpg", "width": 300, "id": 5140, "height": 225}, {"file_name": "ADE_train_00005142.jpg", "width": 683, "id": 5141, "height": 512}, {"file_name": "ADE_train_00005143.jpg", "width": 683, "id": 5142, "height": 512}, {"file_name": "ADE_train_00005144.jpg", "width": 512, "id": 5143, "height": 767}, {"file_name": "ADE_train_00005145.jpg", "width": 468, "id": 5144, "height": 313}, {"file_name": "ADE_train_00005146.jpg", "width": 417, "id": 5145, "height": 600}, {"file_name": "ADE_train_00005147.jpg", "width": 360, "id": 5146, "height": 240}, {"file_name": "ADE_train_00005148.jpg", "width": 266, "id": 5147, "height": 400}, {"file_name": "ADE_train_00005149.jpg", "width": 746, "id": 5148, "height": 512}, {"file_name": "ADE_train_00005150.jpg", "width": 400, "id": 5149, "height": 290}, {"file_name": "ADE_train_00005151.jpg", "width": 667, "id": 5150, "height": 512}, {"file_name": "ADE_train_00005152.jpg", "width": 400, "id": 5151, "height": 275}, {"file_name": "ADE_train_00005153.jpg", "width": 640, "id": 5152, "height": 427}, {"file_name": "ADE_train_00005154.jpg", "width": 684, "id": 5153, "height": 512}, {"file_name": "ADE_train_00005155.jpg", "width": 586, "id": 5154, "height": 386}, {"file_name": "ADE_train_00005156.jpg", "width": 350, "id": 5155, "height": 262}, {"file_name": "ADE_train_00005157.jpg", "width": 502, "id": 5156, "height": 325}, {"file_name": "ADE_train_00005158.jpg", "width": 400, "id": 5157, "height": 300}, {"file_name": "ADE_train_00005159.jpg", "width": 400, "id": 5158, "height": 300}, {"file_name": "ADE_train_00005160.jpg", "width": 504, "id": 5159, "height": 330}, {"file_name": "ADE_train_00005161.jpg", "width": 400, "id": 5160, "height": 300}, {"file_name": "ADE_train_00005162.jpg", "width": 400, "id": 5161, "height": 300}, {"file_name": "ADE_train_00005163.jpg", "width": 300, "id": 5162, "height": 225}, {"file_name": "ADE_train_00005164.jpg", "width": 400, "id": 5163, "height": 300}, {"file_name": "ADE_train_00005165.jpg", "width": 400, "id": 5164, "height": 319}, {"file_name": "ADE_train_00005166.jpg", "width": 480, "id": 5165, "height": 640}, {"file_name": "ADE_train_00005167.jpg", "width": 400, "id": 5166, "height": 300}, {"file_name": "ADE_train_00005168.jpg", "width": 550, "id": 5167, "height": 243}, {"file_name": "ADE_train_00005169.jpg", "width": 400, "id": 5168, "height": 300}, {"file_name": "ADE_train_00005170.jpg", "width": 400, "id": 5169, "height": 301}, {"file_name": "ADE_train_00005171.jpg", "width": 400, "id": 5170, "height": 246}, {"file_name": "ADE_train_00005172.jpg", "width": 400, "id": 5171, "height": 300}, {"file_name": "ADE_train_00005173.jpg", "width": 400, "id": 5172, "height": 263}, {"file_name": "ADE_train_00005174.jpg", "width": 400, "id": 5173, "height": 300}, {"file_name": "ADE_train_00005175.jpg", "width": 400, "id": 5174, "height": 300}, {"file_name": "ADE_train_00005176.jpg", "width": 400, "id": 5175, "height": 300}, {"file_name": "ADE_train_00005177.jpg", "width": 400, "id": 5176, "height": 300}, {"file_name": "ADE_train_00005178.jpg", "width": 640, "id": 5177, "height": 480}, {"file_name": "ADE_train_00005179.jpg", "width": 400, "id": 5178, "height": 301}, {"file_name": "ADE_train_00005180.jpg", "width": 400, "id": 5179, "height": 300}, {"file_name": "ADE_train_00005181.jpg", "width": 400, "id": 5180, "height": 270}, {"file_name": "ADE_train_00005182.jpg", "width": 400, "id": 5181, "height": 300}, {"file_name": "ADE_train_00005183.jpg", "width": 400, "id": 5182, "height": 300}, {"file_name": "ADE_train_00005184.jpg", "width": 400, "id": 5183, "height": 300}, {"file_name": "ADE_train_00005185.jpg", "width": 400, "id": 5184, "height": 300}, {"file_name": "ADE_train_00005186.jpg", "width": 400, "id": 5185, "height": 300}, {"file_name": "ADE_train_00005187.jpg", "width": 450, "id": 5186, "height": 406}, {"file_name": "ADE_train_00005188.jpg", "width": 400, "id": 5187, "height": 300}, {"file_name": "ADE_train_00005189.jpg", "width": 400, "id": 5188, "height": 300}, {"file_name": "ADE_train_00005190.jpg", "width": 299, "id": 5189, "height": 297}, {"file_name": "ADE_train_00005191.jpg", "width": 400, "id": 5190, "height": 300}, {"file_name": "ADE_train_00005192.jpg", "width": 480, "id": 5191, "height": 640}, {"file_name": "ADE_train_00005193.jpg", "width": 400, "id": 5192, "height": 300}, {"file_name": "ADE_train_00005194.jpg", "width": 400, "id": 5193, "height": 300}, {"file_name": "ADE_train_00005195.jpg", "width": 400, "id": 5194, "height": 300}, {"file_name": "ADE_train_00005196.jpg", "width": 400, "id": 5195, "height": 300}, {"file_name": "ADE_train_00005197.jpg", "width": 683, "id": 5196, "height": 512}, {"file_name": "ADE_train_00005198.jpg", "width": 400, "id": 5197, "height": 300}, {"file_name": "ADE_train_00005199.jpg", "width": 400, "id": 5198, "height": 300}, {"file_name": "ADE_train_00005200.jpg", "width": 400, "id": 5199, "height": 258}, {"file_name": "ADE_train_00005201.jpg", "width": 400, "id": 5200, "height": 266}, {"file_name": "ADE_train_00005202.jpg", "width": 400, "id": 5201, "height": 300}, {"file_name": "ADE_train_00005203.jpg", "width": 400, "id": 5202, "height": 300}, {"file_name": "ADE_train_00005204.jpg", "width": 480, "id": 5203, "height": 640}, {"file_name": "ADE_train_00005205.jpg", "width": 400, "id": 5204, "height": 300}, {"file_name": "ADE_train_00005206.jpg", "width": 350, "id": 5205, "height": 224}, {"file_name": "ADE_train_00005207.jpg", "width": 223, "id": 5206, "height": 281}, {"file_name": "ADE_train_00005208.jpg", "width": 343, "id": 5207, "height": 230}, {"file_name": "ADE_train_00005209.jpg", "width": 640, "id": 5208, "height": 480}, {"file_name": "ADE_train_00005210.jpg", "width": 200, "id": 5209, "height": 200}, {"file_name": "ADE_train_00005211.jpg", "width": 272, "id": 5210, "height": 219}, {"file_name": "ADE_train_00005212.jpg", "width": 300, "id": 5211, "height": 250}, {"file_name": "ADE_train_00005213.jpg", "width": 683, "id": 5212, "height": 512}, {"file_name": "ADE_train_00005214.jpg", "width": 212, "id": 5213, "height": 220}, {"file_name": "ADE_train_00005215.jpg", "width": 630, "id": 5214, "height": 480}, {"file_name": "ADE_train_00005216.jpg", "width": 271, "id": 5215, "height": 271}, {"file_name": "ADE_train_00005217.jpg", "width": 256, "id": 5216, "height": 384}, {"file_name": "ADE_train_00005218.jpg", "width": 768, "id": 5217, "height": 512}, {"file_name": "ADE_train_00005219.jpg", "width": 256, "id": 5218, "height": 256}, {"file_name": "ADE_train_00005220.jpg", "width": 322, "id": 5219, "height": 242}, {"file_name": "ADE_train_00005221.jpg", "width": 512, "id": 5220, "height": 539}, {"file_name": "ADE_train_00005222.jpg", "width": 683, "id": 5221, "height": 512}, {"file_name": "ADE_train_00005223.jpg", "width": 683, "id": 5222, "height": 512}, {"file_name": "ADE_train_00005224.jpg", "width": 384, "id": 5223, "height": 256}, {"file_name": "ADE_train_00005225.jpg", "width": 683, "id": 5224, "height": 512}, {"file_name": "ADE_train_00005226.jpg", "width": 256, "id": 5225, "height": 256}, {"file_name": "ADE_train_00005227.jpg", "width": 256, "id": 5226, "height": 384}, {"file_name": "ADE_train_00005228.jpg", "width": 683, "id": 5227, "height": 512}, {"file_name": "ADE_train_00005229.jpg", "width": 683, "id": 5228, "height": 512}, {"file_name": "ADE_train_00005230.jpg", "width": 774, "id": 5229, "height": 512}, {"file_name": "ADE_train_00005231.jpg", "width": 683, "id": 5230, "height": 512}, {"file_name": "ADE_train_00005232.jpg", "width": 288, "id": 5231, "height": 216}, {"file_name": "ADE_train_00005233.jpg", "width": 384, "id": 5232, "height": 256}, {"file_name": "ADE_train_00005234.jpg", "width": 761, "id": 5233, "height": 512}, {"file_name": "ADE_train_00005235.jpg", "width": 694, "id": 5234, "height": 512}, {"file_name": "ADE_train_00005236.jpg", "width": 777, "id": 5235, "height": 512}, {"file_name": "ADE_train_00005237.jpg", "width": 683, "id": 5236, "height": 512}, {"file_name": "ADE_train_00005238.jpg", "width": 384, "id": 5237, "height": 256}, {"file_name": "ADE_train_00005239.jpg", "width": 765, "id": 5238, "height": 512}, {"file_name": "ADE_train_00005240.jpg", "width": 422, "id": 5239, "height": 317}, {"file_name": "ADE_train_00005241.jpg", "width": 768, "id": 5240, "height": 512}, {"file_name": "ADE_train_00005242.jpg", "width": 683, "id": 5241, "height": 512}, {"file_name": "ADE_train_00005243.jpg", "width": 683, "id": 5242, "height": 512}, {"file_name": "ADE_train_00005244.jpg", "width": 256, "id": 5243, "height": 384}, {"file_name": "ADE_train_00005245.jpg", "width": 683, "id": 5244, "height": 512}, {"file_name": "ADE_train_00005246.jpg", "width": 384, "id": 5245, "height": 256}, {"file_name": "ADE_train_00005247.jpg", "width": 512, "id": 5246, "height": 683}, {"file_name": "ADE_train_00005248.jpg", "width": 300, "id": 5247, "height": 271}, {"file_name": "ADE_train_00005249.jpg", "width": 777, "id": 5248, "height": 512}, {"file_name": "ADE_train_00005250.jpg", "width": 256, "id": 5249, "height": 256}, {"file_name": "ADE_train_00005251.jpg", "width": 683, "id": 5250, "height": 512}, {"file_name": "ADE_train_00005252.jpg", "width": 784, "id": 5251, "height": 512}, {"file_name": "ADE_train_00005253.jpg", "width": 384, "id": 5252, "height": 256}, {"file_name": "ADE_train_00005254.jpg", "width": 422, "id": 5253, "height": 315}, {"file_name": "ADE_train_00005255.jpg", "width": 814, "id": 5254, "height": 512}, {"file_name": "ADE_train_00005256.jpg", "width": 300, "id": 5255, "height": 278}, {"file_name": "ADE_train_00005257.jpg", "width": 840, "id": 5256, "height": 512}, {"file_name": "ADE_train_00005258.jpg", "width": 683, "id": 5257, "height": 512}, {"file_name": "ADE_train_00005259.jpg", "width": 256, "id": 5258, "height": 256}, {"file_name": "ADE_train_00005260.jpg", "width": 256, "id": 5259, "height": 384}, {"file_name": "ADE_train_00005261.jpg", "width": 300, "id": 5260, "height": 200}, {"file_name": "ADE_train_00005262.jpg", "width": 683, "id": 5261, "height": 512}, {"file_name": "ADE_train_00005263.jpg", "width": 683, "id": 5262, "height": 512}, {"file_name": "ADE_train_00005264.jpg", "width": 270, "id": 5263, "height": 270}, {"file_name": "ADE_train_00005265.jpg", "width": 683, "id": 5264, "height": 512}, {"file_name": "ADE_train_00005266.jpg", "width": 512, "id": 5265, "height": 683}, {"file_name": "ADE_train_00005267.jpg", "width": 683, "id": 5266, "height": 512}, {"file_name": "ADE_train_00005268.jpg", "width": 692, "id": 5267, "height": 512}, {"file_name": "ADE_train_00005269.jpg", "width": 512, "id": 5268, "height": 683}, {"file_name": "ADE_train_00005270.jpg", "width": 768, "id": 5269, "height": 512}, {"file_name": "ADE_train_00005271.jpg", "width": 768, "id": 5270, "height": 512}, {"file_name": "ADE_train_00005272.jpg", "width": 770, "id": 5271, "height": 512}, {"file_name": "ADE_train_00005273.jpg", "width": 512, "id": 5272, "height": 683}, {"file_name": "ADE_train_00005274.jpg", "width": 683, "id": 5273, "height": 512}, {"file_name": "ADE_train_00005275.jpg", "width": 512, "id": 5274, "height": 550}, {"file_name": "ADE_train_00005276.jpg", "width": 683, "id": 5275, "height": 512}, {"file_name": "ADE_train_00005277.jpg", "width": 758, "id": 5276, "height": 512}, {"file_name": "ADE_train_00005278.jpg", "width": 643, "id": 5277, "height": 512}, {"file_name": "ADE_train_00005279.jpg", "width": 512, "id": 5278, "height": 778}, {"file_name": "ADE_train_00005280.jpg", "width": 320, "id": 5279, "height": 240}, {"file_name": "ADE_train_00005281.jpg", "width": 400, "id": 5280, "height": 279}, {"file_name": "ADE_train_00005282.jpg", "width": 320, "id": 5281, "height": 240}, {"file_name": "ADE_train_00005283.jpg", "width": 225, "id": 5282, "height": 300}, {"file_name": "ADE_train_00005284.jpg", "width": 280, "id": 5283, "height": 320}, {"file_name": "ADE_train_00005285.jpg", "width": 296, "id": 5284, "height": 409}, {"file_name": "ADE_train_00005286.jpg", "width": 518, "id": 5285, "height": 340}, {"file_name": "ADE_train_00005287.jpg", "width": 375, "id": 5286, "height": 500}, {"file_name": "ADE_train_00005288.jpg", "width": 219, "id": 5287, "height": 231}, {"file_name": "ADE_train_00005289.jpg", "width": 256, "id": 5288, "height": 256}, {"file_name": "ADE_train_00005290.jpg", "width": 683, "id": 5289, "height": 512}, {"file_name": "ADE_train_00005291.jpg", "width": 683, "id": 5290, "height": 512}, {"file_name": "ADE_train_00005292.jpg", "width": 500, "id": 5291, "height": 375}, {"file_name": "ADE_train_00005293.jpg", "width": 256, "id": 5292, "height": 256}, {"file_name": "ADE_train_00005294.jpg", "width": 256, "id": 5293, "height": 256}, {"file_name": "ADE_train_00005295.jpg", "width": 256, "id": 5294, "height": 256}, {"file_name": "ADE_train_00005296.jpg", "width": 512, "id": 5295, "height": 847}, {"file_name": "ADE_train_00005297.jpg", "width": 256, "id": 5296, "height": 256}, {"file_name": "ADE_train_00005298.jpg", "width": 250, "id": 5297, "height": 347}, {"file_name": "ADE_train_00005299.jpg", "width": 200, "id": 5298, "height": 279}, {"file_name": "ADE_train_00005300.jpg", "width": 314, "id": 5299, "height": 480}, {"file_name": "ADE_train_00005301.jpg", "width": 256, "id": 5300, "height": 256}, {"file_name": "ADE_train_00005302.jpg", "width": 256, "id": 5301, "height": 256}, {"file_name": "ADE_train_00005303.jpg", "width": 512, "id": 5302, "height": 768}, {"file_name": "ADE_train_00005304.jpg", "width": 256, "id": 5303, "height": 256}, {"file_name": "ADE_train_00005305.jpg", "width": 683, "id": 5304, "height": 512}, {"file_name": "ADE_train_00005306.jpg", "width": 256, "id": 5305, "height": 256}, {"file_name": "ADE_train_00005307.jpg", "width": 512, "id": 5306, "height": 705}, {"file_name": "ADE_train_00005308.jpg", "width": 256, "id": 5307, "height": 256}, {"file_name": "ADE_train_00005309.jpg", "width": 256, "id": 5308, "height": 256}, {"file_name": "ADE_train_00005310.jpg", "width": 235, "id": 5309, "height": 350}, {"file_name": "ADE_train_00005311.jpg", "width": 450, "id": 5310, "height": 600}, {"file_name": "ADE_train_00005312.jpg", "width": 450, "id": 5311, "height": 333}, {"file_name": "ADE_train_00005313.jpg", "width": 450, "id": 5312, "height": 337}, {"file_name": "ADE_train_00005314.jpg", "width": 491, "id": 5313, "height": 486}, {"file_name": "ADE_train_00005315.jpg", "width": 308, "id": 5314, "height": 450}, {"file_name": "ADE_train_00005316.jpg", "width": 480, "id": 5315, "height": 640}, {"file_name": "ADE_train_00005317.jpg", "width": 548, "id": 5316, "height": 512}, {"file_name": "ADE_train_00005318.jpg", "width": 250, "id": 5317, "height": 190}, {"file_name": "ADE_train_00005319.jpg", "width": 879, "id": 5318, "height": 512}, {"file_name": "ADE_train_00005320.jpg", "width": 768, "id": 5319, "height": 512}, {"file_name": "ADE_train_00005321.jpg", "width": 683, "id": 5320, "height": 512}, {"file_name": "ADE_train_00005322.jpg", "width": 300, "id": 5321, "height": 200}, {"file_name": "ADE_train_00005323.jpg", "width": 756, "id": 5322, "height": 512}, {"file_name": "ADE_train_00005324.jpg", "width": 504, "id": 5323, "height": 375}, {"file_name": "ADE_train_00005325.jpg", "width": 682, "id": 5324, "height": 512}, {"file_name": "ADE_train_00005326.jpg", "width": 512, "id": 5325, "height": 768}, {"file_name": "ADE_train_00005327.jpg", "width": 683, "id": 5326, "height": 512}, {"file_name": "ADE_train_00005328.jpg", "width": 512, "id": 5327, "height": 732}, {"file_name": "ADE_train_00005329.jpg", "width": 512, "id": 5328, "height": 770}, {"file_name": "ADE_train_00005330.jpg", "width": 512, "id": 5329, "height": 770}, {"file_name": "ADE_train_00005331.jpg", "width": 512, "id": 5330, "height": 769}, {"file_name": "ADE_train_00005332.jpg", "width": 683, "id": 5331, "height": 512}, {"file_name": "ADE_train_00005333.jpg", "width": 256, "id": 5332, "height": 256}, {"file_name": "ADE_train_00005334.jpg", "width": 683, "id": 5333, "height": 512}, {"file_name": "ADE_train_00005335.jpg", "width": 683, "id": 5334, "height": 512}, {"file_name": "ADE_train_00005336.jpg", "width": 256, "id": 5335, "height": 256}, {"file_name": "ADE_train_00005337.jpg", "width": 768, "id": 5336, "height": 512}, {"file_name": "ADE_train_00005338.jpg", "width": 684, "id": 5337, "height": 512}, {"file_name": "ADE_train_00005339.jpg", "width": 360, "id": 5338, "height": 238}, {"file_name": "ADE_train_00005340.jpg", "width": 773, "id": 5339, "height": 512}, {"file_name": "ADE_train_00005341.jpg", "width": 256, "id": 5340, "height": 256}, {"file_name": "ADE_train_00005342.jpg", "width": 683, "id": 5341, "height": 512}, {"file_name": "ADE_train_00005343.jpg", "width": 256, "id": 5342, "height": 256}, {"file_name": "ADE_train_00005344.jpg", "width": 683, "id": 5343, "height": 512}, {"file_name": "ADE_train_00005345.jpg", "width": 683, "id": 5344, "height": 512}, {"file_name": "ADE_train_00005346.jpg", "width": 230, "id": 5345, "height": 330}, {"file_name": "ADE_train_00005347.jpg", "width": 500, "id": 5346, "height": 665}, {"file_name": "ADE_train_00005348.jpg", "width": 640, "id": 5347, "height": 480}, {"file_name": "ADE_train_00005349.jpg", "width": 683, "id": 5348, "height": 512}, {"file_name": "ADE_train_00005350.jpg", "width": 683, "id": 5349, "height": 512}, {"file_name": "ADE_train_00005351.jpg", "width": 512, "id": 5350, "height": 682}, {"file_name": "ADE_train_00005352.jpg", "width": 682, "id": 5351, "height": 512}, {"file_name": "ADE_train_00005353.jpg", "width": 683, "id": 5352, "height": 512}, {"file_name": "ADE_train_00005354.jpg", "width": 683, "id": 5353, "height": 512}, {"file_name": "ADE_train_00005355.jpg", "width": 384, "id": 5354, "height": 256}, {"file_name": "ADE_train_00005356.jpg", "width": 477, "id": 5355, "height": 312}, {"file_name": "ADE_train_00005357.jpg", "width": 683, "id": 5356, "height": 512}, {"file_name": "ADE_train_00005358.jpg", "width": 683, "id": 5357, "height": 512}, {"file_name": "ADE_train_00005359.jpg", "width": 340, "id": 5358, "height": 255}, {"file_name": "ADE_train_00005360.jpg", "width": 396, "id": 5359, "height": 168}, {"file_name": "ADE_train_00005361.jpg", "width": 683, "id": 5360, "height": 512}, {"file_name": "ADE_train_00005362.jpg", "width": 256, "id": 5361, "height": 256}, {"file_name": "ADE_train_00005363.jpg", "width": 391, "id": 5362, "height": 250}, {"file_name": "ADE_train_00005364.jpg", "width": 384, "id": 5363, "height": 256}, {"file_name": "ADE_train_00005365.jpg", "width": 256, "id": 5364, "height": 256}, {"file_name": "ADE_train_00005366.jpg", "width": 256, "id": 5365, "height": 256}, {"file_name": "ADE_train_00005367.jpg", "width": 240, "id": 5366, "height": 376}, {"file_name": "ADE_train_00005368.jpg", "width": 256, "id": 5367, "height": 256}, {"file_name": "ADE_train_00005369.jpg", "width": 683, "id": 5368, "height": 512}, {"file_name": "ADE_train_00005370.jpg", "width": 683, "id": 5369, "height": 512}, {"file_name": "ADE_train_00005371.jpg", "width": 1124, "id": 5370, "height": 512}, {"file_name": "ADE_train_00005372.jpg", "width": 320, "id": 5371, "height": 240}, {"file_name": "ADE_train_00005373.jpg", "width": 683, "id": 5372, "height": 512}, {"file_name": "ADE_train_00005374.jpg", "width": 378, "id": 5373, "height": 201}, {"file_name": "ADE_train_00005375.jpg", "width": 582, "id": 5374, "height": 437}, {"file_name": "ADE_train_00005376.jpg", "width": 320, "id": 5375, "height": 240}, {"file_name": "ADE_train_00005377.jpg", "width": 320, "id": 5376, "height": 234}, {"file_name": "ADE_train_00005378.jpg", "width": 683, "id": 5377, "height": 512}, {"file_name": "ADE_train_00005379.jpg", "width": 512, "id": 5378, "height": 526}, {"file_name": "ADE_train_00005380.jpg", "width": 640, "id": 5379, "height": 480}, {"file_name": "ADE_train_00005381.jpg", "width": 768, "id": 5380, "height": 512}, {"file_name": "ADE_train_00005382.jpg", "width": 683, "id": 5381, "height": 512}, {"file_name": "ADE_train_00005383.jpg", "width": 400, "id": 5382, "height": 300}, {"file_name": "ADE_train_00005384.jpg", "width": 512, "id": 5383, "height": 683}, {"file_name": "ADE_train_00005385.jpg", "width": 300, "id": 5384, "height": 203}, {"file_name": "ADE_train_00005386.jpg", "width": 577, "id": 5385, "height": 394}, {"file_name": "ADE_train_00005387.jpg", "width": 320, "id": 5386, "height": 240}, {"file_name": "ADE_train_00005388.jpg", "width": 300, "id": 5387, "height": 417}, {"file_name": "ADE_train_00005389.jpg", "width": 640, "id": 5388, "height": 480}, {"file_name": "ADE_train_00005390.jpg", "width": 400, "id": 5389, "height": 300}, {"file_name": "ADE_train_00005391.jpg", "width": 683, "id": 5390, "height": 512}, {"file_name": "ADE_train_00005392.jpg", "width": 250, "id": 5391, "height": 325}, {"file_name": "ADE_train_00005393.jpg", "width": 300, "id": 5392, "height": 260}, {"file_name": "ADE_train_00005394.jpg", "width": 512, "id": 5393, "height": 768}, {"file_name": "ADE_train_00005395.jpg", "width": 512, "id": 5394, "height": 768}, {"file_name": "ADE_train_00005396.jpg", "width": 240, "id": 5395, "height": 320}, {"file_name": "ADE_train_00005397.jpg", "width": 512, "id": 5396, "height": 384}, {"file_name": "ADE_train_00005398.jpg", "width": 605, "id": 5397, "height": 480}, {"file_name": "ADE_train_00005399.jpg", "width": 549, "id": 5398, "height": 400}, {"file_name": "ADE_train_00005400.jpg", "width": 300, "id": 5399, "height": 225}, {"file_name": "ADE_train_00005401.jpg", "width": 479, "id": 5400, "height": 397}, {"file_name": "ADE_train_00005402.jpg", "width": 683, "id": 5401, "height": 512}, {"file_name": "ADE_train_00005403.jpg", "width": 683, "id": 5402, "height": 512}, {"file_name": "ADE_train_00005404.jpg", "width": 683, "id": 5403, "height": 512}, {"file_name": "ADE_train_00005405.jpg", "width": 550, "id": 5404, "height": 512}, {"file_name": "ADE_train_00005406.jpg", "width": 336, "id": 5405, "height": 336}, {"file_name": "ADE_train_00005407.jpg", "width": 560, "id": 5406, "height": 420}, {"file_name": "ADE_train_00005408.jpg", "width": 448, "id": 5407, "height": 336}, {"file_name": "ADE_train_00005409.jpg", "width": 640, "id": 5408, "height": 480}, {"file_name": "ADE_train_00005410.jpg", "width": 415, "id": 5409, "height": 311}, {"file_name": "ADE_train_00005411.jpg", "width": 275, "id": 5410, "height": 206}, {"file_name": "ADE_train_00005412.jpg", "width": 394, "id": 5411, "height": 263}, {"file_name": "ADE_train_00005413.jpg", "width": 420, "id": 5412, "height": 283}, {"file_name": "ADE_train_00005414.jpg", "width": 683, "id": 5413, "height": 512}, {"file_name": "ADE_train_00005415.jpg", "width": 683, "id": 5414, "height": 512}, {"file_name": "ADE_train_00005416.jpg", "width": 890, "id": 5415, "height": 512}, {"file_name": "ADE_train_00005417.jpg", "width": 683, "id": 5416, "height": 512}, {"file_name": "ADE_train_00005418.jpg", "width": 683, "id": 5417, "height": 512}, {"file_name": "ADE_train_00005419.jpg", "width": 683, "id": 5418, "height": 512}, {"file_name": "ADE_train_00005420.jpg", "width": 263, "id": 5419, "height": 200}, {"file_name": "ADE_train_00005421.jpg", "width": 350, "id": 5420, "height": 233}, {"file_name": "ADE_train_00005422.jpg", "width": 640, "id": 5421, "height": 480}, {"file_name": "ADE_train_00005423.jpg", "width": 380, "id": 5422, "height": 222}, {"file_name": "ADE_train_00005424.jpg", "width": 600, "id": 5423, "height": 407}, {"file_name": "ADE_train_00005425.jpg", "width": 683, "id": 5424, "height": 512}, {"file_name": "ADE_train_00005426.jpg", "width": 683, "id": 5425, "height": 512}, {"file_name": "ADE_train_00005427.jpg", "width": 763, "id": 5426, "height": 512}, {"file_name": "ADE_train_00005428.jpg", "width": 263, "id": 5427, "height": 350}, {"file_name": "ADE_train_00005429.jpg", "width": 400, "id": 5428, "height": 300}, {"file_name": "ADE_train_00005430.jpg", "width": 400, "id": 5429, "height": 266}, {"file_name": "ADE_train_00005431.jpg", "width": 200, "id": 5430, "height": 266}, {"file_name": "ADE_train_00005432.jpg", "width": 300, "id": 5431, "height": 230}, {"file_name": "ADE_train_00005433.jpg", "width": 683, "id": 5432, "height": 512}, {"file_name": "ADE_train_00005434.jpg", "width": 318, "id": 5433, "height": 230}, {"file_name": "ADE_train_00005435.jpg", "width": 400, "id": 5434, "height": 300}, {"file_name": "ADE_train_00005436.jpg", "width": 242, "id": 5435, "height": 300}, {"file_name": "ADE_train_00005437.jpg", "width": 475, "id": 5436, "height": 356}, {"file_name": "ADE_train_00005438.jpg", "width": 320, "id": 5437, "height": 228}, {"file_name": "ADE_train_00005439.jpg", "width": 320, "id": 5438, "height": 272}, {"file_name": "ADE_train_00005440.jpg", "width": 640, "id": 5439, "height": 480}, {"file_name": "ADE_train_00005441.jpg", "width": 707, "id": 5440, "height": 512}, {"file_name": "ADE_train_00005442.jpg", "width": 300, "id": 5441, "height": 223}, {"file_name": "ADE_train_00005443.jpg", "width": 449, "id": 5442, "height": 396}, {"file_name": "ADE_train_00005444.jpg", "width": 420, "id": 5443, "height": 315}, {"file_name": "ADE_train_00005445.jpg", "width": 500, "id": 5444, "height": 375}, {"file_name": "ADE_train_00005446.jpg", "width": 683, "id": 5445, "height": 512}, {"file_name": "ADE_train_00005447.jpg", "width": 320, "id": 5446, "height": 240}, {"file_name": "ADE_train_00005448.jpg", "width": 640, "id": 5447, "height": 480}, {"file_name": "ADE_train_00005449.jpg", "width": 320, "id": 5448, "height": 240}, {"file_name": "ADE_train_00005450.jpg", "width": 300, "id": 5449, "height": 200}, {"file_name": "ADE_train_00005451.jpg", "width": 450, "id": 5450, "height": 326}, {"file_name": "ADE_train_00005452.jpg", "width": 320, "id": 5451, "height": 240}, {"file_name": "ADE_train_00005453.jpg", "width": 500, "id": 5452, "height": 341}, {"file_name": "ADE_train_00005454.jpg", "width": 480, "id": 5453, "height": 314}, {"file_name": "ADE_train_00005455.jpg", "width": 683, "id": 5454, "height": 512}, {"file_name": "ADE_train_00005456.jpg", "width": 700, "id": 5455, "height": 465}, {"file_name": "ADE_train_00005457.jpg", "width": 539, "id": 5456, "height": 300}, {"file_name": "ADE_train_00005458.jpg", "width": 400, "id": 5457, "height": 300}, {"file_name": "ADE_train_00005459.jpg", "width": 300, "id": 5458, "height": 220}, {"file_name": "ADE_train_00005460.jpg", "width": 683, "id": 5459, "height": 512}, {"file_name": "ADE_train_00005461.jpg", "width": 683, "id": 5460, "height": 512}, {"file_name": "ADE_train_00005462.jpg", "width": 650, "id": 5461, "height": 428}, {"file_name": "ADE_train_00005463.jpg", "width": 683, "id": 5462, "height": 512}, {"file_name": "ADE_train_00005464.jpg", "width": 683, "id": 5463, "height": 512}, {"file_name": "ADE_train_00005465.jpg", "width": 770, "id": 5464, "height": 512}, {"file_name": "ADE_train_00005466.jpg", "width": 683, "id": 5465, "height": 512}, {"file_name": "ADE_train_00005467.jpg", "width": 215, "id": 5466, "height": 215}, {"file_name": "ADE_train_00005468.jpg", "width": 706, "id": 5467, "height": 477}, {"file_name": "ADE_train_00005469.jpg", "width": 768, "id": 5468, "height": 512}, {"file_name": "ADE_train_00005470.jpg", "width": 500, "id": 5469, "height": 364}, {"file_name": "ADE_train_00005471.jpg", "width": 616, "id": 5470, "height": 462}, {"file_name": "ADE_train_00005472.jpg", "width": 216, "id": 5471, "height": 216}, {"file_name": "ADE_train_00005473.jpg", "width": 347, "id": 5472, "height": 367}, {"file_name": "ADE_train_00005474.jpg", "width": 500, "id": 5473, "height": 333}, {"file_name": "ADE_train_00005475.jpg", "width": 300, "id": 5474, "height": 240}, {"file_name": "ADE_train_00005476.jpg", "width": 670, "id": 5475, "height": 512}, {"file_name": "ADE_train_00005477.jpg", "width": 250, "id": 5476, "height": 333}, {"file_name": "ADE_train_00005478.jpg", "width": 690, "id": 5477, "height": 463}, {"file_name": "ADE_train_00005479.jpg", "width": 300, "id": 5478, "height": 241}, {"file_name": "ADE_train_00005480.jpg", "width": 683, "id": 5479, "height": 512}, {"file_name": "ADE_train_00005481.jpg", "width": 320, "id": 5480, "height": 232}, {"file_name": "ADE_train_00005482.jpg", "width": 351, "id": 5481, "height": 253}, {"file_name": "ADE_train_00005483.jpg", "width": 686, "id": 5482, "height": 481}, {"file_name": "ADE_train_00005484.jpg", "width": 635, "id": 5483, "height": 512}, {"file_name": "ADE_train_00005485.jpg", "width": 300, "id": 5484, "height": 300}, {"file_name": "ADE_train_00005486.jpg", "width": 690, "id": 5485, "height": 459}, {"file_name": "ADE_train_00005487.jpg", "width": 250, "id": 5486, "height": 291}, {"file_name": "ADE_train_00005488.jpg", "width": 765, "id": 5487, "height": 512}, {"file_name": "ADE_train_00005489.jpg", "width": 683, "id": 5488, "height": 512}, {"file_name": "ADE_train_00005490.jpg", "width": 686, "id": 5489, "height": 460}, {"file_name": "ADE_train_00005491.jpg", "width": 683, "id": 5490, "height": 512}, {"file_name": "ADE_train_00005492.jpg", "width": 512, "id": 5491, "height": 683}, {"file_name": "ADE_train_00005493.jpg", "width": 256, "id": 5492, "height": 256}, {"file_name": "ADE_train_00005494.jpg", "width": 225, "id": 5493, "height": 300}, {"file_name": "ADE_train_00005495.jpg", "width": 640, "id": 5494, "height": 480}, {"file_name": "ADE_train_00005496.jpg", "width": 684, "id": 5495, "height": 456}, {"file_name": "ADE_train_00005497.jpg", "width": 640, "id": 5496, "height": 480}, {"file_name": "ADE_train_00005498.jpg", "width": 256, "id": 5497, "height": 256}, {"file_name": "ADE_train_00005499.jpg", "width": 768, "id": 5498, "height": 512}, {"file_name": "ADE_train_00005500.jpg", "width": 470, "id": 5499, "height": 312}, {"file_name": "ADE_train_00005501.jpg", "width": 770, "id": 5500, "height": 512}, {"file_name": "ADE_train_00005502.jpg", "width": 470, "id": 5501, "height": 317}, {"file_name": "ADE_train_00005503.jpg", "width": 765, "id": 5502, "height": 512}, {"file_name": "ADE_train_00005504.jpg", "width": 604, "id": 5503, "height": 512}, {"file_name": "ADE_train_00005505.jpg", "width": 690, "id": 5504, "height": 459}, {"file_name": "ADE_train_00005506.jpg", "width": 275, "id": 5505, "height": 275}, {"file_name": "ADE_train_00005507.jpg", "width": 600, "id": 5506, "height": 400}, {"file_name": "ADE_train_00005508.jpg", "width": 743, "id": 5507, "height": 512}, {"file_name": "ADE_train_00005509.jpg", "width": 711, "id": 5508, "height": 512}, {"file_name": "ADE_train_00005510.jpg", "width": 235, "id": 5509, "height": 275}, {"file_name": "ADE_train_00005511.jpg", "width": 683, "id": 5510, "height": 512}, {"file_name": "ADE_train_00005512.jpg", "width": 768, "id": 5511, "height": 512}, {"file_name": "ADE_train_00005513.jpg", "width": 683, "id": 5512, "height": 512}, {"file_name": "ADE_train_00005514.jpg", "width": 616, "id": 5513, "height": 462}, {"file_name": "ADE_train_00005515.jpg", "width": 759, "id": 5514, "height": 512}, {"file_name": "ADE_train_00005516.jpg", "width": 690, "id": 5515, "height": 467}, {"file_name": "ADE_train_00005517.jpg", "width": 678, "id": 5516, "height": 512}, {"file_name": "ADE_train_00005518.jpg", "width": 628, "id": 5517, "height": 512}, {"file_name": "ADE_train_00005519.jpg", "width": 256, "id": 5518, "height": 256}, {"file_name": "ADE_train_00005520.jpg", "width": 551, "id": 5519, "height": 512}, {"file_name": "ADE_train_00005521.jpg", "width": 690, "id": 5520, "height": 460}, {"file_name": "ADE_train_00005522.jpg", "width": 256, "id": 5521, "height": 256}, {"file_name": "ADE_train_00005523.jpg", "width": 692, "id": 5522, "height": 461}, {"file_name": "ADE_train_00005524.jpg", "width": 682, "id": 5523, "height": 454}, {"file_name": "ADE_train_00005525.jpg", "width": 768, "id": 5524, "height": 512}, {"file_name": "ADE_train_00005526.jpg", "width": 270, "id": 5525, "height": 180}, {"file_name": "ADE_train_00005527.jpg", "width": 564, "id": 5526, "height": 512}, {"file_name": "ADE_train_00005528.jpg", "width": 690, "id": 5527, "height": 459}, {"file_name": "ADE_train_00005529.jpg", "width": 683, "id": 5528, "height": 512}, {"file_name": "ADE_train_00005530.jpg", "width": 923, "id": 5529, "height": 512}, {"file_name": "ADE_train_00005531.jpg", "width": 576, "id": 5530, "height": 512}, {"file_name": "ADE_train_00005532.jpg", "width": 690, "id": 5531, "height": 453}, {"file_name": "ADE_train_00005533.jpg", "width": 640, "id": 5532, "height": 480}, {"file_name": "ADE_train_00005534.jpg", "width": 600, "id": 5533, "height": 400}, {"file_name": "ADE_train_00005535.jpg", "width": 640, "id": 5534, "height": 480}, {"file_name": "ADE_train_00005536.jpg", "width": 450, "id": 5535, "height": 338}, {"file_name": "ADE_train_00005537.jpg", "width": 582, "id": 5536, "height": 465}, {"file_name": "ADE_train_00005538.jpg", "width": 683, "id": 5537, "height": 512}, {"file_name": "ADE_train_00005539.jpg", "width": 683, "id": 5538, "height": 512}, {"file_name": "ADE_train_00005540.jpg", "width": 173, "id": 5539, "height": 240}, {"file_name": "ADE_train_00005541.jpg", "width": 383, "id": 5540, "height": 231}, {"file_name": "ADE_train_00005542.jpg", "width": 640, "id": 5541, "height": 512}, {"file_name": "ADE_train_00005543.jpg", "width": 284, "id": 5542, "height": 213}, {"file_name": "ADE_train_00005544.jpg", "width": 468, "id": 5543, "height": 311}, {"file_name": "ADE_train_00005545.jpg", "width": 375, "id": 5544, "height": 281}, {"file_name": "ADE_train_00005546.jpg", "width": 782, "id": 5545, "height": 512}, {"file_name": "ADE_train_00005547.jpg", "width": 600, "id": 5546, "height": 450}, {"file_name": "ADE_train_00005548.jpg", "width": 256, "id": 5547, "height": 256}, {"file_name": "ADE_train_00005549.jpg", "width": 384, "id": 5548, "height": 256}, {"file_name": "ADE_train_00005550.jpg", "width": 256, "id": 5549, "height": 256}, {"file_name": "ADE_train_00005551.jpg", "width": 256, "id": 5550, "height": 256}, {"file_name": "ADE_train_00005552.jpg", "width": 780, "id": 5551, "height": 512}, {"file_name": "ADE_train_00005553.jpg", "width": 256, "id": 5552, "height": 256}, {"file_name": "ADE_train_00005554.jpg", "width": 256, "id": 5553, "height": 256}, {"file_name": "ADE_train_00005555.jpg", "width": 256, "id": 5554, "height": 256}, {"file_name": "ADE_train_00005556.jpg", "width": 256, "id": 5555, "height": 256}, {"file_name": "ADE_train_00005557.jpg", "width": 256, "id": 5556, "height": 256}, {"file_name": "ADE_train_00005558.jpg", "width": 256, "id": 5557, "height": 256}, {"file_name": "ADE_train_00005559.jpg", "width": 683, "id": 5558, "height": 512}, {"file_name": "ADE_train_00005560.jpg", "width": 256, "id": 5559, "height": 256}, {"file_name": "ADE_train_00005561.jpg", "width": 256, "id": 5560, "height": 256}, {"file_name": "ADE_train_00005562.jpg", "width": 256, "id": 5561, "height": 256}, {"file_name": "ADE_train_00005563.jpg", "width": 450, "id": 5562, "height": 600}, {"file_name": "ADE_train_00005564.jpg", "width": 256, "id": 5563, "height": 256}, {"file_name": "ADE_train_00005565.jpg", "width": 783, "id": 5564, "height": 512}, {"file_name": "ADE_train_00005566.jpg", "width": 256, "id": 5565, "height": 256}, {"file_name": "ADE_train_00005567.jpg", "width": 357, "id": 5566, "height": 500}, {"file_name": "ADE_train_00005568.jpg", "width": 256, "id": 5567, "height": 256}, {"file_name": "ADE_train_00005569.jpg", "width": 256, "id": 5568, "height": 256}, {"file_name": "ADE_train_00005570.jpg", "width": 256, "id": 5569, "height": 256}, {"file_name": "ADE_train_00005571.jpg", "width": 256, "id": 5570, "height": 256}, {"file_name": "ADE_train_00005572.jpg", "width": 256, "id": 5571, "height": 256}, {"file_name": "ADE_train_00005573.jpg", "width": 350, "id": 5572, "height": 466}, {"file_name": "ADE_train_00005574.jpg", "width": 256, "id": 5573, "height": 256}, {"file_name": "ADE_train_00005575.jpg", "width": 256, "id": 5574, "height": 256}, {"file_name": "ADE_train_00005576.jpg", "width": 256, "id": 5575, "height": 384}, {"file_name": "ADE_train_00005577.jpg", "width": 350, "id": 5576, "height": 243}, {"file_name": "ADE_train_00005578.jpg", "width": 256, "id": 5577, "height": 256}, {"file_name": "ADE_train_00005579.jpg", "width": 256, "id": 5578, "height": 256}, {"file_name": "ADE_train_00005580.jpg", "width": 239, "id": 5579, "height": 349}, {"file_name": "ADE_train_00005581.jpg", "width": 680, "id": 5580, "height": 510}, {"file_name": "ADE_train_00005582.jpg", "width": 300, "id": 5581, "height": 270}, {"file_name": "ADE_train_00005583.jpg", "width": 640, "id": 5582, "height": 480}, {"file_name": "ADE_train_00005584.jpg", "width": 781, "id": 5583, "height": 512}, {"file_name": "ADE_train_00005585.jpg", "width": 500, "id": 5584, "height": 319}, {"file_name": "ADE_train_00005586.jpg", "width": 1151, "id": 5585, "height": 512}, {"file_name": "ADE_train_00005587.jpg", "width": 392, "id": 5586, "height": 200}, {"file_name": "ADE_train_00005588.jpg", "width": 380, "id": 5587, "height": 285}, {"file_name": "ADE_train_00005589.jpg", "width": 683, "id": 5588, "height": 512}, {"file_name": "ADE_train_00005590.jpg", "width": 485, "id": 5589, "height": 364}, {"file_name": "ADE_train_00005591.jpg", "width": 683, "id": 5590, "height": 512}, {"file_name": "ADE_train_00005592.jpg", "width": 567, "id": 5591, "height": 290}, {"file_name": "ADE_train_00005593.jpg", "width": 256, "id": 5592, "height": 256}, {"file_name": "ADE_train_00005594.jpg", "width": 600, "id": 5593, "height": 450}, {"file_name": "ADE_train_00005595.jpg", "width": 767, "id": 5594, "height": 512}, {"file_name": "ADE_train_00005596.jpg", "width": 683, "id": 5595, "height": 512}, {"file_name": "ADE_train_00005597.jpg", "width": 683, "id": 5596, "height": 512}, {"file_name": "ADE_train_00005598.jpg", "width": 683, "id": 5597, "height": 512}, {"file_name": "ADE_train_00005599.jpg", "width": 300, "id": 5598, "height": 225}, {"file_name": "ADE_train_00005600.jpg", "width": 683, "id": 5599, "height": 512}, {"file_name": "ADE_train_00005601.jpg", "width": 256, "id": 5600, "height": 256}, {"file_name": "ADE_train_00005602.jpg", "width": 256, "id": 5601, "height": 256}, {"file_name": "ADE_train_00005603.jpg", "width": 256, "id": 5602, "height": 256}, {"file_name": "ADE_train_00005604.jpg", "width": 256, "id": 5603, "height": 256}, {"file_name": "ADE_train_00005605.jpg", "width": 256, "id": 5604, "height": 256}, {"file_name": "ADE_train_00005606.jpg", "width": 256, "id": 5605, "height": 256}, {"file_name": "ADE_train_00005607.jpg", "width": 256, "id": 5606, "height": 256}, {"file_name": "ADE_train_00005608.jpg", "width": 256, "id": 5607, "height": 256}, {"file_name": "ADE_train_00005609.jpg", "width": 256, "id": 5608, "height": 256}, {"file_name": "ADE_train_00005610.jpg", "width": 683, "id": 5609, "height": 512}, {"file_name": "ADE_train_00005611.jpg", "width": 683, "id": 5610, "height": 512}, {"file_name": "ADE_train_00005612.jpg", "width": 256, "id": 5611, "height": 256}, {"file_name": "ADE_train_00005613.jpg", "width": 256, "id": 5612, "height": 256}, {"file_name": "ADE_train_00005614.jpg", "width": 256, "id": 5613, "height": 256}, {"file_name": "ADE_train_00005615.jpg", "width": 752, "id": 5614, "height": 512}, {"file_name": "ADE_train_00005616.jpg", "width": 256, "id": 5615, "height": 256}, {"file_name": "ADE_train_00005617.jpg", "width": 256, "id": 5616, "height": 256}, {"file_name": "ADE_train_00005618.jpg", "width": 256, "id": 5617, "height": 256}, {"file_name": "ADE_train_00005619.jpg", "width": 683, "id": 5618, "height": 512}, {"file_name": "ADE_train_00005620.jpg", "width": 640, "id": 5619, "height": 512}, {"file_name": "ADE_train_00005621.jpg", "width": 683, "id": 5620, "height": 512}, {"file_name": "ADE_train_00005622.jpg", "width": 256, "id": 5621, "height": 256}, {"file_name": "ADE_train_00005623.jpg", "width": 256, "id": 5622, "height": 256}, {"file_name": "ADE_train_00005624.jpg", "width": 256, "id": 5623, "height": 256}, {"file_name": "ADE_train_00005625.jpg", "width": 256, "id": 5624, "height": 256}, {"file_name": "ADE_train_00005626.jpg", "width": 256, "id": 5625, "height": 256}, {"file_name": "ADE_train_00005627.jpg", "width": 256, "id": 5626, "height": 256}, {"file_name": "ADE_train_00005628.jpg", "width": 683, "id": 5627, "height": 512}, {"file_name": "ADE_train_00005629.jpg", "width": 683, "id": 5628, "height": 512}, {"file_name": "ADE_train_00005630.jpg", "width": 683, "id": 5629, "height": 512}, {"file_name": "ADE_train_00005631.jpg", "width": 256, "id": 5630, "height": 256}, {"file_name": "ADE_train_00005632.jpg", "width": 256, "id": 5631, "height": 256}, {"file_name": "ADE_train_00005633.jpg", "width": 640, "id": 5632, "height": 480}, {"file_name": "ADE_train_00005634.jpg", "width": 683, "id": 5633, "height": 512}, {"file_name": "ADE_train_00005635.jpg", "width": 256, "id": 5634, "height": 256}, {"file_name": "ADE_train_00005636.jpg", "width": 256, "id": 5635, "height": 256}, {"file_name": "ADE_train_00005637.jpg", "width": 256, "id": 5636, "height": 256}, {"file_name": "ADE_train_00005638.jpg", "width": 256, "id": 5637, "height": 256}, {"file_name": "ADE_train_00005639.jpg", "width": 640, "id": 5638, "height": 480}, {"file_name": "ADE_train_00005640.jpg", "width": 256, "id": 5639, "height": 256}, {"file_name": "ADE_train_00005641.jpg", "width": 256, "id": 5640, "height": 256}, {"file_name": "ADE_train_00005642.jpg", "width": 683, "id": 5641, "height": 512}, {"file_name": "ADE_train_00005643.jpg", "width": 256, "id": 5642, "height": 256}, {"file_name": "ADE_train_00005644.jpg", "width": 683, "id": 5643, "height": 512}, {"file_name": "ADE_train_00005645.jpg", "width": 683, "id": 5644, "height": 512}, {"file_name": "ADE_train_00005646.jpg", "width": 500, "id": 5645, "height": 332}, {"file_name": "ADE_train_00005647.jpg", "width": 355, "id": 5646, "height": 215}, {"file_name": "ADE_train_00005648.jpg", "width": 676, "id": 5647, "height": 512}, {"file_name": "ADE_train_00005649.jpg", "width": 640, "id": 5648, "height": 512}, {"file_name": "ADE_train_00005650.jpg", "width": 683, "id": 5649, "height": 512}, {"file_name": "ADE_train_00005651.jpg", "width": 291, "id": 5650, "height": 219}, {"file_name": "ADE_train_00005652.jpg", "width": 300, "id": 5651, "height": 300}, {"file_name": "ADE_train_00005653.jpg", "width": 781, "id": 5652, "height": 512}, {"file_name": "ADE_train_00005654.jpg", "width": 695, "id": 5653, "height": 512}, {"file_name": "ADE_train_00005655.jpg", "width": 512, "id": 5654, "height": 768}, {"file_name": "ADE_train_00005656.jpg", "width": 512, "id": 5655, "height": 731}, {"file_name": "ADE_train_00005657.jpg", "width": 683, "id": 5656, "height": 512}, {"file_name": "ADE_train_00005658.jpg", "width": 207, "id": 5657, "height": 276}, {"file_name": "ADE_train_00005659.jpg", "width": 700, "id": 5658, "height": 455}, {"file_name": "ADE_train_00005660.jpg", "width": 440, "id": 5659, "height": 278}, {"file_name": "ADE_train_00005661.jpg", "width": 773, "id": 5660, "height": 512}, {"file_name": "ADE_train_00005662.jpg", "width": 681, "id": 5661, "height": 512}, {"file_name": "ADE_train_00005663.jpg", "width": 683, "id": 5662, "height": 512}, {"file_name": "ADE_train_00005664.jpg", "width": 683, "id": 5663, "height": 512}, {"file_name": "ADE_train_00005665.jpg", "width": 320, "id": 5664, "height": 240}, {"file_name": "ADE_train_00005666.jpg", "width": 350, "id": 5665, "height": 263}, {"file_name": "ADE_train_00005667.jpg", "width": 512, "id": 5666, "height": 683}, {"file_name": "ADE_train_00005668.jpg", "width": 500, "id": 5667, "height": 318}, {"file_name": "ADE_train_00005669.jpg", "width": 340, "id": 5668, "height": 255}, {"file_name": "ADE_train_00005670.jpg", "width": 253, "id": 5669, "height": 300}, {"file_name": "ADE_train_00005671.jpg", "width": 463, "id": 5670, "height": 320}, {"file_name": "ADE_train_00005672.jpg", "width": 683, "id": 5671, "height": 512}, {"file_name": "ADE_train_00005673.jpg", "width": 640, "id": 5672, "height": 424}, {"file_name": "ADE_train_00005674.jpg", "width": 615, "id": 5673, "height": 461}, {"file_name": "ADE_train_00005675.jpg", "width": 600, "id": 5674, "height": 450}, {"file_name": "ADE_train_00005676.jpg", "width": 683, "id": 5675, "height": 512}, {"file_name": "ADE_train_00005677.jpg", "width": 512, "id": 5676, "height": 752}, {"file_name": "ADE_train_00005678.jpg", "width": 225, "id": 5677, "height": 300}, {"file_name": "ADE_train_00005679.jpg", "width": 256, "id": 5678, "height": 384}, {"file_name": "ADE_train_00005680.jpg", "width": 256, "id": 5679, "height": 256}, {"file_name": "ADE_train_00005681.jpg", "width": 256, "id": 5680, "height": 256}, {"file_name": "ADE_train_00005682.jpg", "width": 384, "id": 5681, "height": 256}, {"file_name": "ADE_train_00005683.jpg", "width": 256, "id": 5682, "height": 256}, {"file_name": "ADE_train_00005684.jpg", "width": 256, "id": 5683, "height": 256}, {"file_name": "ADE_train_00005685.jpg", "width": 375, "id": 5684, "height": 500}, {"file_name": "ADE_train_00005686.jpg", "width": 384, "id": 5685, "height": 256}, {"file_name": "ADE_train_00005687.jpg", "width": 256, "id": 5686, "height": 256}, {"file_name": "ADE_train_00005688.jpg", "width": 256, "id": 5687, "height": 256}, {"file_name": "ADE_train_00005689.jpg", "width": 256, "id": 5688, "height": 256}, {"file_name": "ADE_train_00005690.jpg", "width": 256, "id": 5689, "height": 256}, {"file_name": "ADE_train_00005691.jpg", "width": 256, "id": 5690, "height": 256}, {"file_name": "ADE_train_00005692.jpg", "width": 256, "id": 5691, "height": 256}, {"file_name": "ADE_train_00005693.jpg", "width": 256, "id": 5692, "height": 256}, {"file_name": "ADE_train_00005694.jpg", "width": 256, "id": 5693, "height": 256}, {"file_name": "ADE_train_00005695.jpg", "width": 256, "id": 5694, "height": 256}, {"file_name": "ADE_train_00005696.jpg", "width": 512, "id": 5695, "height": 683}, {"file_name": "ADE_train_00005697.jpg", "width": 350, "id": 5696, "height": 467}, {"file_name": "ADE_train_00005698.jpg", "width": 738, "id": 5697, "height": 507}, {"file_name": "ADE_train_00005699.jpg", "width": 540, "id": 5698, "height": 360}, {"file_name": "ADE_train_00005700.jpg", "width": 769, "id": 5699, "height": 512}, {"file_name": "ADE_train_00005701.jpg", "width": 500, "id": 5700, "height": 367}, {"file_name": "ADE_train_00005702.jpg", "width": 600, "id": 5701, "height": 398}, {"file_name": "ADE_train_00005703.jpg", "width": 683, "id": 5702, "height": 512}, {"file_name": "ADE_train_00005704.jpg", "width": 512, "id": 5703, "height": 683}, {"file_name": "ADE_train_00005705.jpg", "width": 512, "id": 5704, "height": 768}, {"file_name": "ADE_train_00005706.jpg", "width": 420, "id": 5705, "height": 332}, {"file_name": "ADE_train_00005707.jpg", "width": 769, "id": 5706, "height": 512}, {"file_name": "ADE_train_00005708.jpg", "width": 260, "id": 5707, "height": 258}, {"file_name": "ADE_train_00005709.jpg", "width": 300, "id": 5708, "height": 386}, {"file_name": "ADE_train_00005710.jpg", "width": 256, "id": 5709, "height": 256}, {"file_name": "ADE_train_00005711.jpg", "width": 250, "id": 5710, "height": 250}, {"file_name": "ADE_train_00005712.jpg", "width": 260, "id": 5711, "height": 298}, {"file_name": "ADE_train_00005713.jpg", "width": 256, "id": 5712, "height": 256}, {"file_name": "ADE_train_00005714.jpg", "width": 683, "id": 5713, "height": 512}, {"file_name": "ADE_train_00005715.jpg", "width": 256, "id": 5714, "height": 256}, {"file_name": "ADE_train_00005716.jpg", "width": 512, "id": 5715, "height": 571}, {"file_name": "ADE_train_00005717.jpg", "width": 250, "id": 5716, "height": 267}, {"file_name": "ADE_train_00005718.jpg", "width": 706, "id": 5717, "height": 512}, {"file_name": "ADE_train_00005719.jpg", "width": 400, "id": 5718, "height": 400}, {"file_name": "ADE_train_00005720.jpg", "width": 256, "id": 5719, "height": 256}, {"file_name": "ADE_train_00005721.jpg", "width": 665, "id": 5720, "height": 512}, {"file_name": "ADE_train_00005722.jpg", "width": 325, "id": 5721, "height": 258}, {"file_name": "ADE_train_00005723.jpg", "width": 512, "id": 5722, "height": 688}, {"file_name": "ADE_train_00005724.jpg", "width": 256, "id": 5723, "height": 256}, {"file_name": "ADE_train_00005725.jpg", "width": 300, "id": 5724, "height": 300}, {"file_name": "ADE_train_00005726.jpg", "width": 256, "id": 5725, "height": 256}, {"file_name": "ADE_train_00005727.jpg", "width": 256, "id": 5726, "height": 256}, {"file_name": "ADE_train_00005728.jpg", "width": 512, "id": 5727, "height": 698}, {"file_name": "ADE_train_00005729.jpg", "width": 256, "id": 5728, "height": 256}, {"file_name": "ADE_train_00005730.jpg", "width": 256, "id": 5729, "height": 256}, {"file_name": "ADE_train_00005731.jpg", "width": 683, "id": 5730, "height": 512}, {"file_name": "ADE_train_00005732.jpg", "width": 256, "id": 5731, "height": 256}, {"file_name": "ADE_train_00005733.jpg", "width": 512, "id": 5732, "height": 683}, {"file_name": "ADE_train_00005734.jpg", "width": 256, "id": 5733, "height": 256}, {"file_name": "ADE_train_00005735.jpg", "width": 256, "id": 5734, "height": 256}, {"file_name": "ADE_train_00005736.jpg", "width": 512, "id": 5735, "height": 655}, {"file_name": "ADE_train_00005737.jpg", "width": 360, "id": 5736, "height": 300}, {"file_name": "ADE_train_00005738.jpg", "width": 512, "id": 5737, "height": 682}, {"file_name": "ADE_train_00005739.jpg", "width": 683, "id": 5738, "height": 512}, {"file_name": "ADE_train_00005740.jpg", "width": 512, "id": 5739, "height": 645}, {"file_name": "ADE_train_00005741.jpg", "width": 256, "id": 5740, "height": 256}, {"file_name": "ADE_train_00005742.jpg", "width": 256, "id": 5741, "height": 256}, {"file_name": "ADE_train_00005743.jpg", "width": 512, "id": 5742, "height": 937}, {"file_name": "ADE_train_00005744.jpg", "width": 683, "id": 5743, "height": 512}, {"file_name": "ADE_train_00005745.jpg", "width": 256, "id": 5744, "height": 256}, {"file_name": "ADE_train_00005746.jpg", "width": 225, "id": 5745, "height": 281}, {"file_name": "ADE_train_00005747.jpg", "width": 256, "id": 5746, "height": 256}, {"file_name": "ADE_train_00005748.jpg", "width": 408, "id": 5747, "height": 321}, {"file_name": "ADE_train_00005749.jpg", "width": 512, "id": 5748, "height": 683}, {"file_name": "ADE_train_00005750.jpg", "width": 256, "id": 5749, "height": 256}, {"file_name": "ADE_train_00005751.jpg", "width": 345, "id": 5750, "height": 262}, {"file_name": "ADE_train_00005752.jpg", "width": 256, "id": 5751, "height": 256}, {"file_name": "ADE_train_00005753.jpg", "width": 256, "id": 5752, "height": 256}, {"file_name": "ADE_train_00005754.jpg", "width": 654, "id": 5753, "height": 512}, {"file_name": "ADE_train_00005755.jpg", "width": 256, "id": 5754, "height": 256}, {"file_name": "ADE_train_00005756.jpg", "width": 256, "id": 5755, "height": 256}, {"file_name": "ADE_train_00005757.jpg", "width": 648, "id": 5756, "height": 512}, {"file_name": "ADE_train_00005758.jpg", "width": 256, "id": 5757, "height": 256}, {"file_name": "ADE_train_00005759.jpg", "width": 256, "id": 5758, "height": 256}, {"file_name": "ADE_train_00005760.jpg", "width": 512, "id": 5759, "height": 683}, {"file_name": "ADE_train_00005761.jpg", "width": 318, "id": 5760, "height": 240}, {"file_name": "ADE_train_00005762.jpg", "width": 771, "id": 5761, "height": 512}, {"file_name": "ADE_train_00005763.jpg", "width": 640, "id": 5762, "height": 480}, {"file_name": "ADE_train_00005764.jpg", "width": 324, "id": 5763, "height": 432}, {"file_name": "ADE_train_00005765.jpg", "width": 683, "id": 5764, "height": 512}, {"file_name": "ADE_train_00005766.jpg", "width": 512, "id": 5765, "height": 682}, {"file_name": "ADE_train_00005767.jpg", "width": 400, "id": 5766, "height": 309}, {"file_name": "ADE_train_00005768.jpg", "width": 350, "id": 5767, "height": 350}, {"file_name": "ADE_train_00005769.jpg", "width": 324, "id": 5768, "height": 432}, {"file_name": "ADE_train_00005770.jpg", "width": 500, "id": 5769, "height": 500}, {"file_name": "ADE_train_00005771.jpg", "width": 350, "id": 5770, "height": 350}, {"file_name": "ADE_train_00005772.jpg", "width": 475, "id": 5771, "height": 356}, {"file_name": "ADE_train_00005773.jpg", "width": 512, "id": 5772, "height": 768}, {"file_name": "ADE_train_00005774.jpg", "width": 600, "id": 5773, "height": 478}, {"file_name": "ADE_train_00005775.jpg", "width": 767, "id": 5774, "height": 512}, {"file_name": "ADE_train_00005776.jpg", "width": 755, "id": 5775, "height": 512}, {"file_name": "ADE_train_00005777.jpg", "width": 256, "id": 5776, "height": 256}, {"file_name": "ADE_train_00005778.jpg", "width": 256, "id": 5777, "height": 256}, {"file_name": "ADE_train_00005779.jpg", "width": 256, "id": 5778, "height": 256}, {"file_name": "ADE_train_00005780.jpg", "width": 256, "id": 5779, "height": 256}, {"file_name": "ADE_train_00005781.jpg", "width": 256, "id": 5780, "height": 256}, {"file_name": "ADE_train_00005782.jpg", "width": 256, "id": 5781, "height": 256}, {"file_name": "ADE_train_00005783.jpg", "width": 256, "id": 5782, "height": 256}, {"file_name": "ADE_train_00005784.jpg", "width": 256, "id": 5783, "height": 256}, {"file_name": "ADE_train_00005785.jpg", "width": 683, "id": 5784, "height": 512}, {"file_name": "ADE_train_00005786.jpg", "width": 600, "id": 5785, "height": 402}, {"file_name": "ADE_train_00005787.jpg", "width": 640, "id": 5786, "height": 425}, {"file_name": "ADE_train_00005788.jpg", "width": 256, "id": 5787, "height": 256}, {"file_name": "ADE_train_00005789.jpg", "width": 256, "id": 5788, "height": 256}, {"file_name": "ADE_train_00005790.jpg", "width": 640, "id": 5789, "height": 480}, {"file_name": "ADE_train_00005791.jpg", "width": 450, "id": 5790, "height": 338}, {"file_name": "ADE_train_00005792.jpg", "width": 683, "id": 5791, "height": 512}, {"file_name": "ADE_train_00005793.jpg", "width": 475, "id": 5792, "height": 317}, {"file_name": "ADE_train_00005794.jpg", "width": 256, "id": 5793, "height": 256}, {"file_name": "ADE_train_00005795.jpg", "width": 512, "id": 5794, "height": 683}, {"file_name": "ADE_train_00005796.jpg", "width": 256, "id": 5795, "height": 256}, {"file_name": "ADE_train_00005797.jpg", "width": 256, "id": 5796, "height": 256}, {"file_name": "ADE_train_00005798.jpg", "width": 256, "id": 5797, "height": 256}, {"file_name": "ADE_train_00005799.jpg", "width": 256, "id": 5798, "height": 256}, {"file_name": "ADE_train_00005800.jpg", "width": 200, "id": 5799, "height": 235}, {"file_name": "ADE_train_00005801.jpg", "width": 683, "id": 5800, "height": 512}, {"file_name": "ADE_train_00005802.jpg", "width": 256, "id": 5801, "height": 256}, {"file_name": "ADE_train_00005803.jpg", "width": 692, "id": 5802, "height": 512}, {"file_name": "ADE_train_00005804.jpg", "width": 256, "id": 5803, "height": 256}, {"file_name": "ADE_train_00005805.jpg", "width": 315, "id": 5804, "height": 235}, {"file_name": "ADE_train_00005806.jpg", "width": 683, "id": 5805, "height": 512}, {"file_name": "ADE_train_00005807.jpg", "width": 256, "id": 5806, "height": 256}, {"file_name": "ADE_train_00005808.jpg", "width": 256, "id": 5807, "height": 256}, {"file_name": "ADE_train_00005809.jpg", "width": 256, "id": 5808, "height": 256}, {"file_name": "ADE_train_00005810.jpg", "width": 256, "id": 5809, "height": 256}, {"file_name": "ADE_train_00005811.jpg", "width": 256, "id": 5810, "height": 256}, {"file_name": "ADE_train_00005812.jpg", "width": 963, "id": 5811, "height": 512}, {"file_name": "ADE_train_00005813.jpg", "width": 256, "id": 5812, "height": 256}, {"file_name": "ADE_train_00005814.jpg", "width": 256, "id": 5813, "height": 256}, {"file_name": "ADE_train_00005815.jpg", "width": 256, "id": 5814, "height": 256}, {"file_name": "ADE_train_00005816.jpg", "width": 256, "id": 5815, "height": 256}, {"file_name": "ADE_train_00005817.jpg", "width": 256, "id": 5816, "height": 256}, {"file_name": "ADE_train_00005818.jpg", "width": 256, "id": 5817, "height": 256}, {"file_name": "ADE_train_00005819.jpg", "width": 256, "id": 5818, "height": 256}, {"file_name": "ADE_train_00005820.jpg", "width": 256, "id": 5819, "height": 256}, {"file_name": "ADE_train_00005821.jpg", "width": 256, "id": 5820, "height": 256}, {"file_name": "ADE_train_00005822.jpg", "width": 256, "id": 5821, "height": 256}, {"file_name": "ADE_train_00005823.jpg", "width": 256, "id": 5822, "height": 256}, {"file_name": "ADE_train_00005824.jpg", "width": 256, "id": 5823, "height": 256}, {"file_name": "ADE_train_00005825.jpg", "width": 256, "id": 5824, "height": 256}, {"file_name": "ADE_train_00005826.jpg", "width": 256, "id": 5825, "height": 256}, {"file_name": "ADE_train_00005827.jpg", "width": 256, "id": 5826, "height": 256}, {"file_name": "ADE_train_00005828.jpg", "width": 256, "id": 5827, "height": 256}, {"file_name": "ADE_train_00005829.jpg", "width": 256, "id": 5828, "height": 256}, {"file_name": "ADE_train_00005830.jpg", "width": 256, "id": 5829, "height": 256}, {"file_name": "ADE_train_00005831.jpg", "width": 256, "id": 5830, "height": 256}, {"file_name": "ADE_train_00005832.jpg", "width": 256, "id": 5831, "height": 256}, {"file_name": "ADE_train_00005833.jpg", "width": 256, "id": 5832, "height": 256}, {"file_name": "ADE_train_00005834.jpg", "width": 256, "id": 5833, "height": 256}, {"file_name": "ADE_train_00005835.jpg", "width": 256, "id": 5834, "height": 256}, {"file_name": "ADE_train_00005836.jpg", "width": 256, "id": 5835, "height": 256}, {"file_name": "ADE_train_00005837.jpg", "width": 256, "id": 5836, "height": 256}, {"file_name": "ADE_train_00005838.jpg", "width": 256, "id": 5837, "height": 256}, {"file_name": "ADE_train_00005839.jpg", "width": 256, "id": 5838, "height": 256}, {"file_name": "ADE_train_00005840.jpg", "width": 256, "id": 5839, "height": 256}, {"file_name": "ADE_train_00005841.jpg", "width": 256, "id": 5840, "height": 256}, {"file_name": "ADE_train_00005842.jpg", "width": 256, "id": 5841, "height": 256}, {"file_name": "ADE_train_00005843.jpg", "width": 256, "id": 5842, "height": 256}, {"file_name": "ADE_train_00005844.jpg", "width": 256, "id": 5843, "height": 256}, {"file_name": "ADE_train_00005845.jpg", "width": 256, "id": 5844, "height": 256}, {"file_name": "ADE_train_00005846.jpg", "width": 256, "id": 5845, "height": 256}, {"file_name": "ADE_train_00005847.jpg", "width": 256, "id": 5846, "height": 256}, {"file_name": "ADE_train_00005848.jpg", "width": 256, "id": 5847, "height": 256}, {"file_name": "ADE_train_00005849.jpg", "width": 256, "id": 5848, "height": 256}, {"file_name": "ADE_train_00005850.jpg", "width": 256, "id": 5849, "height": 256}, {"file_name": "ADE_train_00005851.jpg", "width": 256, "id": 5850, "height": 256}, {"file_name": "ADE_train_00005852.jpg", "width": 256, "id": 5851, "height": 256}, {"file_name": "ADE_train_00005853.jpg", "width": 256, "id": 5852, "height": 256}, {"file_name": "ADE_train_00005854.jpg", "width": 256, "id": 5853, "height": 256}, {"file_name": "ADE_train_00005855.jpg", "width": 256, "id": 5854, "height": 256}, {"file_name": "ADE_train_00005856.jpg", "width": 256, "id": 5855, "height": 256}, {"file_name": "ADE_train_00005857.jpg", "width": 256, "id": 5856, "height": 256}, {"file_name": "ADE_train_00005858.jpg", "width": 256, "id": 5857, "height": 256}, {"file_name": "ADE_train_00005859.jpg", "width": 256, "id": 5858, "height": 256}, {"file_name": "ADE_train_00005860.jpg", "width": 256, "id": 5859, "height": 256}, {"file_name": "ADE_train_00005861.jpg", "width": 256, "id": 5860, "height": 256}, {"file_name": "ADE_train_00005862.jpg", "width": 256, "id": 5861, "height": 256}, {"file_name": "ADE_train_00005863.jpg", "width": 256, "id": 5862, "height": 256}, {"file_name": "ADE_train_00005864.jpg", "width": 256, "id": 5863, "height": 256}, {"file_name": "ADE_train_00005865.jpg", "width": 256, "id": 5864, "height": 256}, {"file_name": "ADE_train_00005866.jpg", "width": 256, "id": 5865, "height": 256}, {"file_name": "ADE_train_00005867.jpg", "width": 256, "id": 5866, "height": 256}, {"file_name": "ADE_train_00005868.jpg", "width": 256, "id": 5867, "height": 256}, {"file_name": "ADE_train_00005869.jpg", "width": 256, "id": 5868, "height": 256}, {"file_name": "ADE_train_00005870.jpg", "width": 256, "id": 5869, "height": 256}, {"file_name": "ADE_train_00005871.jpg", "width": 256, "id": 5870, "height": 256}, {"file_name": "ADE_train_00005872.jpg", "width": 256, "id": 5871, "height": 256}, {"file_name": "ADE_train_00005873.jpg", "width": 256, "id": 5872, "height": 256}, {"file_name": "ADE_train_00005874.jpg", "width": 256, "id": 5873, "height": 256}, {"file_name": "ADE_train_00005875.jpg", "width": 256, "id": 5874, "height": 256}, {"file_name": "ADE_train_00005876.jpg", "width": 256, "id": 5875, "height": 256}, {"file_name": "ADE_train_00005877.jpg", "width": 256, "id": 5876, "height": 256}, {"file_name": "ADE_train_00005878.jpg", "width": 256, "id": 5877, "height": 256}, {"file_name": "ADE_train_00005879.jpg", "width": 256, "id": 5878, "height": 256}, {"file_name": "ADE_train_00005880.jpg", "width": 256, "id": 5879, "height": 256}, {"file_name": "ADE_train_00005881.jpg", "width": 256, "id": 5880, "height": 256}, {"file_name": "ADE_train_00005882.jpg", "width": 256, "id": 5881, "height": 256}, {"file_name": "ADE_train_00005883.jpg", "width": 256, "id": 5882, "height": 256}, {"file_name": "ADE_train_00005884.jpg", "width": 256, "id": 5883, "height": 256}, {"file_name": "ADE_train_00005885.jpg", "width": 256, "id": 5884, "height": 256}, {"file_name": "ADE_train_00005886.jpg", "width": 683, "id": 5885, "height": 512}, {"file_name": "ADE_train_00005887.jpg", "width": 400, "id": 5886, "height": 275}, {"file_name": "ADE_train_00005888.jpg", "width": 683, "id": 5887, "height": 512}, {"file_name": "ADE_train_00005889.jpg", "width": 400, "id": 5888, "height": 315}, {"file_name": "ADE_train_00005890.jpg", "width": 320, "id": 5889, "height": 240}, {"file_name": "ADE_train_00005891.jpg", "width": 683, "id": 5890, "height": 512}, {"file_name": "ADE_train_00005892.jpg", "width": 600, "id": 5891, "height": 411}, {"file_name": "ADE_train_00005893.jpg", "width": 684, "id": 5892, "height": 512}, {"file_name": "ADE_train_00005894.jpg", "width": 633, "id": 5893, "height": 512}, {"file_name": "ADE_train_00005895.jpg", "width": 683, "id": 5894, "height": 512}, {"file_name": "ADE_train_00005896.jpg", "width": 684, "id": 5895, "height": 512}, {"file_name": "ADE_train_00005897.jpg", "width": 687, "id": 5896, "height": 512}, {"file_name": "ADE_train_00005898.jpg", "width": 550, "id": 5897, "height": 481}, {"file_name": "ADE_train_00005899.jpg", "width": 500, "id": 5898, "height": 313}, {"file_name": "ADE_train_00005900.jpg", "width": 768, "id": 5899, "height": 512}, {"file_name": "ADE_train_00005901.jpg", "width": 512, "id": 5900, "height": 683}, {"file_name": "ADE_train_00005902.jpg", "width": 640, "id": 5901, "height": 480}, {"file_name": "ADE_train_00005903.jpg", "width": 512, "id": 5902, "height": 683}, {"file_name": "ADE_train_00005904.jpg", "width": 675, "id": 5903, "height": 512}, {"file_name": "ADE_train_00005905.jpg", "width": 551, "id": 5904, "height": 512}, {"file_name": "ADE_train_00005906.jpg", "width": 754, "id": 5905, "height": 512}, {"file_name": "ADE_train_00005907.jpg", "width": 768, "id": 5906, "height": 512}, {"file_name": "ADE_train_00005908.jpg", "width": 768, "id": 5907, "height": 512}, {"file_name": "ADE_train_00005909.jpg", "width": 717, "id": 5908, "height": 512}, {"file_name": "ADE_train_00005910.jpg", "width": 683, "id": 5909, "height": 512}, {"file_name": "ADE_train_00005911.jpg", "width": 910, "id": 5910, "height": 512}, {"file_name": "ADE_train_00005912.jpg", "width": 587, "id": 5911, "height": 512}, {"file_name": "ADE_train_00005913.jpg", "width": 683, "id": 5912, "height": 512}, {"file_name": "ADE_train_00005914.jpg", "width": 683, "id": 5913, "height": 512}, {"file_name": "ADE_train_00005915.jpg", "width": 683, "id": 5914, "height": 512}, {"file_name": "ADE_train_00005916.jpg", "width": 512, "id": 5915, "height": 727}, {"file_name": "ADE_train_00005917.jpg", "width": 768, "id": 5916, "height": 512}, {"file_name": "ADE_train_00005918.jpg", "width": 300, "id": 5917, "height": 240}, {"file_name": "ADE_train_00005919.jpg", "width": 786, "id": 5918, "height": 512}, {"file_name": "ADE_train_00005920.jpg", "width": 768, "id": 5919, "height": 512}, {"file_name": "ADE_train_00005921.jpg", "width": 768, "id": 5920, "height": 512}, {"file_name": "ADE_train_00005922.jpg", "width": 768, "id": 5921, "height": 512}, {"file_name": "ADE_train_00005923.jpg", "width": 683, "id": 5922, "height": 512}, {"file_name": "ADE_train_00005924.jpg", "width": 683, "id": 5923, "height": 512}, {"file_name": "ADE_train_00005925.jpg", "width": 683, "id": 5924, "height": 512}, {"file_name": "ADE_train_00005926.jpg", "width": 512, "id": 5925, "height": 770}, {"file_name": "ADE_train_00005927.jpg", "width": 640, "id": 5926, "height": 512}, {"file_name": "ADE_train_00005928.jpg", "width": 683, "id": 5927, "height": 512}, {"file_name": "ADE_train_00005929.jpg", "width": 750, "id": 5928, "height": 500}, {"file_name": "ADE_train_00005930.jpg", "width": 772, "id": 5929, "height": 512}, {"file_name": "ADE_train_00005931.jpg", "width": 600, "id": 5930, "height": 450}, {"file_name": "ADE_train_00005932.jpg", "width": 570, "id": 5931, "height": 295}, {"file_name": "ADE_train_00005933.jpg", "width": 500, "id": 5932, "height": 332}, {"file_name": "ADE_train_00005934.jpg", "width": 562, "id": 5933, "height": 512}, {"file_name": "ADE_train_00005935.jpg", "width": 540, "id": 5934, "height": 393}, {"file_name": "ADE_train_00005936.jpg", "width": 650, "id": 5935, "height": 426}, {"file_name": "ADE_train_00005937.jpg", "width": 700, "id": 5936, "height": 465}, {"file_name": "ADE_train_00005938.jpg", "width": 504, "id": 5937, "height": 378}, {"file_name": "ADE_train_00005939.jpg", "width": 683, "id": 5938, "height": 512}, {"file_name": "ADE_train_00005940.jpg", "width": 768, "id": 5939, "height": 512}, {"file_name": "ADE_train_00005941.jpg", "width": 256, "id": 5940, "height": 256}, {"file_name": "ADE_train_00005942.jpg", "width": 256, "id": 5941, "height": 256}, {"file_name": "ADE_train_00005943.jpg", "width": 256, "id": 5942, "height": 256}, {"file_name": "ADE_train_00005944.jpg", "width": 769, "id": 5943, "height": 512}, {"file_name": "ADE_train_00005945.jpg", "width": 256, "id": 5944, "height": 256}, {"file_name": "ADE_train_00005946.jpg", "width": 683, "id": 5945, "height": 512}, {"file_name": "ADE_train_00005947.jpg", "width": 256, "id": 5946, "height": 256}, {"file_name": "ADE_train_00005948.jpg", "width": 683, "id": 5947, "height": 512}, {"file_name": "ADE_train_00005949.jpg", "width": 683, "id": 5948, "height": 512}, {"file_name": "ADE_train_00005950.jpg", "width": 683, "id": 5949, "height": 512}, {"file_name": "ADE_train_00005951.jpg", "width": 256, "id": 5950, "height": 256}, {"file_name": "ADE_train_00005952.jpg", "width": 683, "id": 5951, "height": 512}, {"file_name": "ADE_train_00005953.jpg", "width": 256, "id": 5952, "height": 256}, {"file_name": "ADE_train_00005954.jpg", "width": 256, "id": 5953, "height": 256}, {"file_name": "ADE_train_00005955.jpg", "width": 683, "id": 5954, "height": 512}, {"file_name": "ADE_train_00005956.jpg", "width": 769, "id": 5955, "height": 512}, {"file_name": "ADE_train_00005957.jpg", "width": 256, "id": 5956, "height": 256}, {"file_name": "ADE_train_00005958.jpg", "width": 256, "id": 5957, "height": 256}, {"file_name": "ADE_train_00005959.jpg", "width": 400, "id": 5958, "height": 266}, {"file_name": "ADE_train_00005960.jpg", "width": 788, "id": 5959, "height": 512}, {"file_name": "ADE_train_00005961.jpg", "width": 822, "id": 5960, "height": 512}, {"file_name": "ADE_train_00005962.jpg", "width": 786, "id": 5961, "height": 512}, {"file_name": "ADE_train_00005963.jpg", "width": 300, "id": 5962, "height": 300}, {"file_name": "ADE_train_00005964.jpg", "width": 300, "id": 5963, "height": 234}, {"file_name": "ADE_train_00005965.jpg", "width": 1061, "id": 5964, "height": 512}, {"file_name": "ADE_train_00005966.jpg", "width": 683, "id": 5965, "height": 512}, {"file_name": "ADE_train_00005967.jpg", "width": 768, "id": 5966, "height": 512}, {"file_name": "ADE_train_00005968.jpg", "width": 685, "id": 5967, "height": 512}, {"file_name": "ADE_train_00005969.jpg", "width": 770, "id": 5968, "height": 512}, {"file_name": "ADE_train_00005970.jpg", "width": 683, "id": 5969, "height": 512}, {"file_name": "ADE_train_00005971.jpg", "width": 300, "id": 5970, "height": 300}, {"file_name": "ADE_train_00005972.jpg", "width": 240, "id": 5971, "height": 240}, {"file_name": "ADE_train_00005973.jpg", "width": 683, "id": 5972, "height": 512}, {"file_name": "ADE_train_00005974.jpg", "width": 683, "id": 5973, "height": 512}, {"file_name": "ADE_train_00005975.jpg", "width": 683, "id": 5974, "height": 512}, {"file_name": "ADE_train_00005976.jpg", "width": 683, "id": 5975, "height": 512}, {"file_name": "ADE_train_00005977.jpg", "width": 683, "id": 5976, "height": 512}, {"file_name": "ADE_train_00005978.jpg", "width": 683, "id": 5977, "height": 512}, {"file_name": "ADE_train_00005979.jpg", "width": 256, "id": 5978, "height": 256}, {"file_name": "ADE_train_00005980.jpg", "width": 683, "id": 5979, "height": 512}, {"file_name": "ADE_train_00005981.jpg", "width": 683, "id": 5980, "height": 512}, {"file_name": "ADE_train_00005982.jpg", "width": 621, "id": 5981, "height": 449}, {"file_name": "ADE_train_00005983.jpg", "width": 500, "id": 5982, "height": 375}, {"file_name": "ADE_train_00005984.jpg", "width": 256, "id": 5983, "height": 256}, {"file_name": "ADE_train_00005985.jpg", "width": 683, "id": 5984, "height": 512}, {"file_name": "ADE_train_00005986.jpg", "width": 256, "id": 5985, "height": 256}, {"file_name": "ADE_train_00005987.jpg", "width": 683, "id": 5986, "height": 512}, {"file_name": "ADE_train_00005988.jpg", "width": 256, "id": 5987, "height": 256}, {"file_name": "ADE_train_00005989.jpg", "width": 256, "id": 5988, "height": 256}, {"file_name": "ADE_train_00005990.jpg", "width": 256, "id": 5989, "height": 256}, {"file_name": "ADE_train_00005991.jpg", "width": 256, "id": 5990, "height": 256}, {"file_name": "ADE_train_00005992.jpg", "width": 256, "id": 5991, "height": 256}, {"file_name": "ADE_train_00005993.jpg", "width": 683, "id": 5992, "height": 512}, {"file_name": "ADE_train_00005994.jpg", "width": 256, "id": 5993, "height": 256}, {"file_name": "ADE_train_00005995.jpg", "width": 256, "id": 5994, "height": 256}, {"file_name": "ADE_train_00005996.jpg", "width": 256, "id": 5995, "height": 256}, {"file_name": "ADE_train_00005997.jpg", "width": 256, "id": 5996, "height": 256}, {"file_name": "ADE_train_00005998.jpg", "width": 377, "id": 5997, "height": 252}, {"file_name": "ADE_train_00005999.jpg", "width": 683, "id": 5998, "height": 512}, {"file_name": "ADE_train_00006000.jpg", "width": 256, "id": 5999, "height": 256}, {"file_name": "ADE_train_00006001.jpg", "width": 683, "id": 6000, "height": 512}, {"file_name": "ADE_train_00006002.jpg", "width": 415, "id": 6001, "height": 279}, {"file_name": "ADE_train_00006003.jpg", "width": 350, "id": 6002, "height": 282}, {"file_name": "ADE_train_00006004.jpg", "width": 640, "id": 6003, "height": 447}, {"file_name": "ADE_train_00006005.jpg", "width": 256, "id": 6004, "height": 256}, {"file_name": "ADE_train_00006006.jpg", "width": 595, "id": 6005, "height": 404}, {"file_name": "ADE_train_00006007.jpg", "width": 256, "id": 6006, "height": 256}, {"file_name": "ADE_train_00006008.jpg", "width": 256, "id": 6007, "height": 256}, {"file_name": "ADE_train_00006009.jpg", "width": 350, "id": 6008, "height": 197}, {"file_name": "ADE_train_00006010.jpg", "width": 600, "id": 6009, "height": 450}, {"file_name": "ADE_train_00006011.jpg", "width": 256, "id": 6010, "height": 256}, {"file_name": "ADE_train_00006012.jpg", "width": 256, "id": 6011, "height": 256}, {"file_name": "ADE_train_00006013.jpg", "width": 256, "id": 6012, "height": 256}, {"file_name": "ADE_train_00006014.jpg", "width": 256, "id": 6013, "height": 256}, {"file_name": "ADE_train_00006015.jpg", "width": 300, "id": 6014, "height": 233}, {"file_name": "ADE_train_00006016.jpg", "width": 400, "id": 6015, "height": 300}, {"file_name": "ADE_train_00006017.jpg", "width": 683, "id": 6016, "height": 512}, {"file_name": "ADE_train_00006018.jpg", "width": 256, "id": 6017, "height": 256}, {"file_name": "ADE_train_00006019.jpg", "width": 256, "id": 6018, "height": 256}, {"file_name": "ADE_train_00006020.jpg", "width": 256, "id": 6019, "height": 256}, {"file_name": "ADE_train_00006021.jpg", "width": 256, "id": 6020, "height": 256}, {"file_name": "ADE_train_00006022.jpg", "width": 256, "id": 6021, "height": 256}, {"file_name": "ADE_train_00006023.jpg", "width": 256, "id": 6022, "height": 256}, {"file_name": "ADE_train_00006024.jpg", "width": 256, "id": 6023, "height": 256}, {"file_name": "ADE_train_00006025.jpg", "width": 256, "id": 6024, "height": 256}, {"file_name": "ADE_train_00006026.jpg", "width": 256, "id": 6025, "height": 256}, {"file_name": "ADE_train_00006027.jpg", "width": 256, "id": 6026, "height": 256}, {"file_name": "ADE_train_00006028.jpg", "width": 692, "id": 6027, "height": 512}, {"file_name": "ADE_train_00006029.jpg", "width": 256, "id": 6028, "height": 256}, {"file_name": "ADE_train_00006030.jpg", "width": 256, "id": 6029, "height": 256}, {"file_name": "ADE_train_00006031.jpg", "width": 500, "id": 6030, "height": 345}, {"file_name": "ADE_train_00006032.jpg", "width": 697, "id": 6031, "height": 512}, {"file_name": "ADE_train_00006033.jpg", "width": 256, "id": 6032, "height": 256}, {"file_name": "ADE_train_00006034.jpg", "width": 256, "id": 6033, "height": 256}, {"file_name": "ADE_train_00006035.jpg", "width": 256, "id": 6034, "height": 256}, {"file_name": "ADE_train_00006036.jpg", "width": 256, "id": 6035, "height": 256}, {"file_name": "ADE_train_00006037.jpg", "width": 256, "id": 6036, "height": 256}, {"file_name": "ADE_train_00006038.jpg", "width": 256, "id": 6037, "height": 256}, {"file_name": "ADE_train_00006039.jpg", "width": 256, "id": 6038, "height": 256}, {"file_name": "ADE_train_00006040.jpg", "width": 512, "id": 6039, "height": 758}, {"file_name": "ADE_train_00006041.jpg", "width": 256, "id": 6040, "height": 256}, {"file_name": "ADE_train_00006042.jpg", "width": 256, "id": 6041, "height": 256}, {"file_name": "ADE_train_00006043.jpg", "width": 653, "id": 6042, "height": 512}, {"file_name": "ADE_train_00006044.jpg", "width": 504, "id": 6043, "height": 378}, {"file_name": "ADE_train_00006045.jpg", "width": 256, "id": 6044, "height": 256}, {"file_name": "ADE_train_00006046.jpg", "width": 256, "id": 6045, "height": 256}, {"file_name": "ADE_train_00006047.jpg", "width": 739, "id": 6046, "height": 512}, {"file_name": "ADE_train_00006048.jpg", "width": 683, "id": 6047, "height": 512}, {"file_name": "ADE_train_00006049.jpg", "width": 256, "id": 6048, "height": 256}, {"file_name": "ADE_train_00006050.jpg", "width": 500, "id": 6049, "height": 332}, {"file_name": "ADE_train_00006051.jpg", "width": 256, "id": 6050, "height": 256}, {"file_name": "ADE_train_00006052.jpg", "width": 256, "id": 6051, "height": 256}, {"file_name": "ADE_train_00006053.jpg", "width": 256, "id": 6052, "height": 256}, {"file_name": "ADE_train_00006054.jpg", "width": 683, "id": 6053, "height": 512}, {"file_name": "ADE_train_00006055.jpg", "width": 256, "id": 6054, "height": 256}, {"file_name": "ADE_train_00006056.jpg", "width": 256, "id": 6055, "height": 256}, {"file_name": "ADE_train_00006057.jpg", "width": 683, "id": 6056, "height": 512}, {"file_name": "ADE_train_00006058.jpg", "width": 256, "id": 6057, "height": 256}, {"file_name": "ADE_train_00006059.jpg", "width": 768, "id": 6058, "height": 512}, {"file_name": "ADE_train_00006060.jpg", "width": 256, "id": 6059, "height": 256}, {"file_name": "ADE_train_00006061.jpg", "width": 593, "id": 6060, "height": 512}, {"file_name": "ADE_train_00006062.jpg", "width": 768, "id": 6061, "height": 512}, {"file_name": "ADE_train_00006063.jpg", "width": 256, "id": 6062, "height": 256}, {"file_name": "ADE_train_00006064.jpg", "width": 400, "id": 6063, "height": 265}, {"file_name": "ADE_train_00006065.jpg", "width": 640, "id": 6064, "height": 512}, {"file_name": "ADE_train_00006066.jpg", "width": 256, "id": 6065, "height": 256}, {"file_name": "ADE_train_00006067.jpg", "width": 256, "id": 6066, "height": 256}, {"file_name": "ADE_train_00006068.jpg", "width": 256, "id": 6067, "height": 256}, {"file_name": "ADE_train_00006069.jpg", "width": 256, "id": 6068, "height": 256}, {"file_name": "ADE_train_00006070.jpg", "width": 256, "id": 6069, "height": 256}, {"file_name": "ADE_train_00006071.jpg", "width": 256, "id": 6070, "height": 256}, {"file_name": "ADE_train_00006072.jpg", "width": 256, "id": 6071, "height": 256}, {"file_name": "ADE_train_00006073.jpg", "width": 256, "id": 6072, "height": 256}, {"file_name": "ADE_train_00006074.jpg", "width": 647, "id": 6073, "height": 512}, {"file_name": "ADE_train_00006075.jpg", "width": 732, "id": 6074, "height": 512}, {"file_name": "ADE_train_00006076.jpg", "width": 683, "id": 6075, "height": 512}, {"file_name": "ADE_train_00006077.jpg", "width": 683, "id": 6076, "height": 512}, {"file_name": "ADE_train_00006078.jpg", "width": 683, "id": 6077, "height": 512}, {"file_name": "ADE_train_00006079.jpg", "width": 683, "id": 6078, "height": 512}, {"file_name": "ADE_train_00006080.jpg", "width": 643, "id": 6079, "height": 512}, {"file_name": "ADE_train_00006081.jpg", "width": 765, "id": 6080, "height": 512}, {"file_name": "ADE_train_00006082.jpg", "width": 768, "id": 6081, "height": 512}, {"file_name": "ADE_train_00006083.jpg", "width": 512, "id": 6082, "height": 768}, {"file_name": "ADE_train_00006084.jpg", "width": 724, "id": 6083, "height": 512}, {"file_name": "ADE_train_00006085.jpg", "width": 768, "id": 6084, "height": 512}, {"file_name": "ADE_train_00006086.jpg", "width": 683, "id": 6085, "height": 512}, {"file_name": "ADE_train_00006087.jpg", "width": 683, "id": 6086, "height": 512}, {"file_name": "ADE_train_00006088.jpg", "width": 683, "id": 6087, "height": 512}, {"file_name": "ADE_train_00006089.jpg", "width": 683, "id": 6088, "height": 512}, {"file_name": "ADE_train_00006090.jpg", "width": 768, "id": 6089, "height": 512}, {"file_name": "ADE_train_00006091.jpg", "width": 683, "id": 6090, "height": 512}, {"file_name": "ADE_train_00006092.jpg", "width": 683, "id": 6091, "height": 512}, {"file_name": "ADE_train_00006093.jpg", "width": 683, "id": 6092, "height": 512}, {"file_name": "ADE_train_00006094.jpg", "width": 768, "id": 6093, "height": 512}, {"file_name": "ADE_train_00006095.jpg", "width": 683, "id": 6094, "height": 512}, {"file_name": "ADE_train_00006096.jpg", "width": 683, "id": 6095, "height": 512}, {"file_name": "ADE_train_00006097.jpg", "width": 1190, "id": 6096, "height": 512}, {"file_name": "ADE_train_00006098.jpg", "width": 768, "id": 6097, "height": 512}, {"file_name": "ADE_train_00006099.jpg", "width": 683, "id": 6098, "height": 512}, {"file_name": "ADE_train_00006100.jpg", "width": 683, "id": 6099, "height": 512}, {"file_name": "ADE_train_00006101.jpg", "width": 836, "id": 6100, "height": 512}, {"file_name": "ADE_train_00006102.jpg", "width": 783, "id": 6101, "height": 512}, {"file_name": "ADE_train_00006103.jpg", "width": 770, "id": 6102, "height": 512}, {"file_name": "ADE_train_00006104.jpg", "width": 712, "id": 6103, "height": 512}, {"file_name": "ADE_train_00006105.jpg", "width": 683, "id": 6104, "height": 512}, {"file_name": "ADE_train_00006106.jpg", "width": 683, "id": 6105, "height": 512}, {"file_name": "ADE_train_00006107.jpg", "width": 683, "id": 6106, "height": 512}, {"file_name": "ADE_train_00006108.jpg", "width": 768, "id": 6107, "height": 512}, {"file_name": "ADE_train_00006109.jpg", "width": 768, "id": 6108, "height": 512}, {"file_name": "ADE_train_00006110.jpg", "width": 683, "id": 6109, "height": 512}, {"file_name": "ADE_train_00006111.jpg", "width": 683, "id": 6110, "height": 512}, {"file_name": "ADE_train_00006112.jpg", "width": 683, "id": 6111, "height": 512}, {"file_name": "ADE_train_00006113.jpg", "width": 770, "id": 6112, "height": 512}, {"file_name": "ADE_train_00006114.jpg", "width": 773, "id": 6113, "height": 512}, {"file_name": "ADE_train_00006115.jpg", "width": 683, "id": 6114, "height": 512}, {"file_name": "ADE_train_00006116.jpg", "width": 770, "id": 6115, "height": 512}, {"file_name": "ADE_train_00006117.jpg", "width": 770, "id": 6116, "height": 512}, {"file_name": "ADE_train_00006118.jpg", "width": 683, "id": 6117, "height": 512}, {"file_name": "ADE_train_00006119.jpg", "width": 521, "id": 6118, "height": 512}, {"file_name": "ADE_train_00006120.jpg", "width": 683, "id": 6119, "height": 512}, {"file_name": "ADE_train_00006121.jpg", "width": 781, "id": 6120, "height": 512}, {"file_name": "ADE_train_00006122.jpg", "width": 717, "id": 6121, "height": 512}, {"file_name": "ADE_train_00006123.jpg", "width": 765, "id": 6122, "height": 512}, {"file_name": "ADE_train_00006124.jpg", "width": 756, "id": 6123, "height": 512}, {"file_name": "ADE_train_00006125.jpg", "width": 768, "id": 6124, "height": 512}, {"file_name": "ADE_train_00006126.jpg", "width": 683, "id": 6125, "height": 512}, {"file_name": "ADE_train_00006127.jpg", "width": 770, "id": 6126, "height": 512}, {"file_name": "ADE_train_00006128.jpg", "width": 683, "id": 6127, "height": 512}, {"file_name": "ADE_train_00006129.jpg", "width": 768, "id": 6128, "height": 512}, {"file_name": "ADE_train_00006130.jpg", "width": 512, "id": 6129, "height": 515}, {"file_name": "ADE_train_00006131.jpg", "width": 672, "id": 6130, "height": 512}, {"file_name": "ADE_train_00006132.jpg", "width": 652, "id": 6131, "height": 512}, {"file_name": "ADE_train_00006133.jpg", "width": 770, "id": 6132, "height": 512}, {"file_name": "ADE_train_00006134.jpg", "width": 683, "id": 6133, "height": 512}, {"file_name": "ADE_train_00006135.jpg", "width": 682, "id": 6134, "height": 512}, {"file_name": "ADE_train_00006136.jpg", "width": 683, "id": 6135, "height": 512}, {"file_name": "ADE_train_00006137.jpg", "width": 683, "id": 6136, "height": 512}, {"file_name": "ADE_train_00006138.jpg", "width": 755, "id": 6137, "height": 512}, {"file_name": "ADE_train_00006139.jpg", "width": 718, "id": 6138, "height": 512}, {"file_name": "ADE_train_00006140.jpg", "width": 768, "id": 6139, "height": 512}, {"file_name": "ADE_train_00006141.jpg", "width": 683, "id": 6140, "height": 512}, {"file_name": "ADE_train_00006142.jpg", "width": 771, "id": 6141, "height": 512}, {"file_name": "ADE_train_00006143.jpg", "width": 683, "id": 6142, "height": 512}, {"file_name": "ADE_train_00006144.jpg", "width": 683, "id": 6143, "height": 512}, {"file_name": "ADE_train_00006145.jpg", "width": 683, "id": 6144, "height": 512}, {"file_name": "ADE_train_00006146.jpg", "width": 512, "id": 6145, "height": 683}, {"file_name": "ADE_train_00006147.jpg", "width": 301, "id": 6146, "height": 400}, {"file_name": "ADE_train_00006148.jpg", "width": 683, "id": 6147, "height": 512}, {"file_name": "ADE_train_00006149.jpg", "width": 760, "id": 6148, "height": 510}, {"file_name": "ADE_train_00006150.jpg", "width": 220, "id": 6149, "height": 289}, {"file_name": "ADE_train_00006151.jpg", "width": 480, "id": 6150, "height": 813}, {"file_name": "ADE_train_00006152.jpg", "width": 256, "id": 6151, "height": 256}, {"file_name": "ADE_train_00006153.jpg", "width": 683, "id": 6152, "height": 512}, {"file_name": "ADE_train_00006154.jpg", "width": 683, "id": 6153, "height": 512}, {"file_name": "ADE_train_00006155.jpg", "width": 683, "id": 6154, "height": 512}, {"file_name": "ADE_train_00006156.jpg", "width": 512, "id": 6155, "height": 683}, {"file_name": "ADE_train_00006157.jpg", "width": 683, "id": 6156, "height": 512}, {"file_name": "ADE_train_00006158.jpg", "width": 300, "id": 6157, "height": 300}, {"file_name": "ADE_train_00006159.jpg", "width": 512, "id": 6158, "height": 682}, {"file_name": "ADE_train_00006160.jpg", "width": 256, "id": 6159, "height": 256}, {"file_name": "ADE_train_00006161.jpg", "width": 273, "id": 6160, "height": 212}, {"file_name": "ADE_train_00006162.jpg", "width": 320, "id": 6161, "height": 240}, {"file_name": "ADE_train_00006163.jpg", "width": 358, "id": 6162, "height": 304}, {"file_name": "ADE_train_00006164.jpg", "width": 787, "id": 6163, "height": 512}, {"file_name": "ADE_train_00006165.jpg", "width": 291, "id": 6164, "height": 218}, {"file_name": "ADE_train_00006166.jpg", "width": 384, "id": 6165, "height": 256}, {"file_name": "ADE_train_00006167.jpg", "width": 256, "id": 6166, "height": 256}, {"file_name": "ADE_train_00006168.jpg", "width": 770, "id": 6167, "height": 512}, {"file_name": "ADE_train_00006169.jpg", "width": 683, "id": 6168, "height": 512}, {"file_name": "ADE_train_00006170.jpg", "width": 683, "id": 6169, "height": 512}, {"file_name": "ADE_train_00006171.jpg", "width": 640, "id": 6170, "height": 480}, {"file_name": "ADE_train_00006172.jpg", "width": 623, "id": 6171, "height": 512}, {"file_name": "ADE_train_00006173.jpg", "width": 640, "id": 6172, "height": 485}, {"file_name": "ADE_train_00006174.jpg", "width": 683, "id": 6173, "height": 512}, {"file_name": "ADE_train_00006175.jpg", "width": 300, "id": 6174, "height": 225}, {"file_name": "ADE_train_00006176.jpg", "width": 745, "id": 6175, "height": 512}, {"file_name": "ADE_train_00006177.jpg", "width": 400, "id": 6176, "height": 400}, {"file_name": "ADE_train_00006178.jpg", "width": 379, "id": 6177, "height": 251}, {"file_name": "ADE_train_00006179.jpg", "width": 600, "id": 6178, "height": 394}, {"file_name": "ADE_train_00006180.jpg", "width": 400, "id": 6179, "height": 264}, {"file_name": "ADE_train_00006181.jpg", "width": 512, "id": 6180, "height": 341}, {"file_name": "ADE_train_00006182.jpg", "width": 730, "id": 6181, "height": 512}, {"file_name": "ADE_train_00006183.jpg", "width": 406, "id": 6182, "height": 270}, {"file_name": "ADE_train_00006184.jpg", "width": 504, "id": 6183, "height": 335}, {"file_name": "ADE_train_00006185.jpg", "width": 707, "id": 6184, "height": 512}, {"file_name": "ADE_train_00006186.jpg", "width": 780, "id": 6185, "height": 200}, {"file_name": "ADE_train_00006187.jpg", "width": 269, "id": 6186, "height": 202}, {"file_name": "ADE_train_00006188.jpg", "width": 500, "id": 6187, "height": 375}, {"file_name": "ADE_train_00006189.jpg", "width": 683, "id": 6188, "height": 512}, {"file_name": "ADE_train_00006190.jpg", "width": 410, "id": 6189, "height": 321}, {"file_name": "ADE_train_00006191.jpg", "width": 512, "id": 6190, "height": 683}, {"file_name": "ADE_train_00006192.jpg", "width": 400, "id": 6191, "height": 322}, {"file_name": "ADE_train_00006193.jpg", "width": 646, "id": 6192, "height": 430}, {"file_name": "ADE_train_00006194.jpg", "width": 283, "id": 6193, "height": 441}, {"file_name": "ADE_train_00006195.jpg", "width": 768, "id": 6194, "height": 512}, {"file_name": "ADE_train_00006196.jpg", "width": 370, "id": 6195, "height": 255}, {"file_name": "ADE_train_00006197.jpg", "width": 683, "id": 6196, "height": 512}, {"file_name": "ADE_train_00006198.jpg", "width": 200, "id": 6197, "height": 323}, {"file_name": "ADE_train_00006199.jpg", "width": 219, "id": 6198, "height": 352}, {"file_name": "ADE_train_00006200.jpg", "width": 298, "id": 6199, "height": 298}, {"file_name": "ADE_train_00006201.jpg", "width": 500, "id": 6200, "height": 332}, {"file_name": "ADE_train_00006202.jpg", "width": 400, "id": 6201, "height": 300}, {"file_name": "ADE_train_00006203.jpg", "width": 500, "id": 6202, "height": 752}, {"file_name": "ADE_train_00006204.jpg", "width": 299, "id": 6203, "height": 400}, {"file_name": "ADE_train_00006205.jpg", "width": 500, "id": 6204, "height": 752}, {"file_name": "ADE_train_00006206.jpg", "width": 512, "id": 6205, "height": 683}, {"file_name": "ADE_train_00006207.jpg", "width": 266, "id": 6206, "height": 382}, {"file_name": "ADE_train_00006208.jpg", "width": 450, "id": 6207, "height": 677}, {"file_name": "ADE_train_00006209.jpg", "width": 768, "id": 6208, "height": 512}, {"file_name": "ADE_train_00006210.jpg", "width": 683, "id": 6209, "height": 512}, {"file_name": "ADE_train_00006211.jpg", "width": 512, "id": 6210, "height": 683}, {"file_name": "ADE_train_00006212.jpg", "width": 600, "id": 6211, "height": 449}, {"file_name": "ADE_train_00006213.jpg", "width": 400, "id": 6212, "height": 304}, {"file_name": "ADE_train_00006214.jpg", "width": 384, "id": 6213, "height": 400}, {"file_name": "ADE_train_00006215.jpg", "width": 683, "id": 6214, "height": 512}, {"file_name": "ADE_train_00006216.jpg", "width": 708, "id": 6215, "height": 512}, {"file_name": "ADE_train_00006217.jpg", "width": 683, "id": 6216, "height": 512}, {"file_name": "ADE_train_00006218.jpg", "width": 768, "id": 6217, "height": 512}, {"file_name": "ADE_train_00006219.jpg", "width": 683, "id": 6218, "height": 512}, {"file_name": "ADE_train_00006220.jpg", "width": 684, "id": 6219, "height": 512}, {"file_name": "ADE_train_00006221.jpg", "width": 683, "id": 6220, "height": 512}, {"file_name": "ADE_train_00006222.jpg", "width": 763, "id": 6221, "height": 512}, {"file_name": "ADE_train_00006223.jpg", "width": 669, "id": 6222, "height": 512}, {"file_name": "ADE_train_00006224.jpg", "width": 683, "id": 6223, "height": 512}, {"file_name": "ADE_train_00006225.jpg", "width": 680, "id": 6224, "height": 512}, {"file_name": "ADE_train_00006226.jpg", "width": 683, "id": 6225, "height": 512}, {"file_name": "ADE_train_00006227.jpg", "width": 683, "id": 6226, "height": 512}, {"file_name": "ADE_train_00006228.jpg", "width": 683, "id": 6227, "height": 512}, {"file_name": "ADE_train_00006229.jpg", "width": 450, "id": 6228, "height": 338}, {"file_name": "ADE_train_00006230.jpg", "width": 512, "id": 6229, "height": 683}, {"file_name": "ADE_train_00006231.jpg", "width": 512, "id": 6230, "height": 682}, {"file_name": "ADE_train_00006232.jpg", "width": 360, "id": 6231, "height": 240}, {"file_name": "ADE_train_00006233.jpg", "width": 683, "id": 6232, "height": 512}, {"file_name": "ADE_train_00006234.jpg", "width": 683, "id": 6233, "height": 512}, {"file_name": "ADE_train_00006235.jpg", "width": 683, "id": 6234, "height": 512}, {"file_name": "ADE_train_00006236.jpg", "width": 320, "id": 6235, "height": 240}, {"file_name": "ADE_train_00006237.jpg", "width": 319, "id": 6236, "height": 240}, {"file_name": "ADE_train_00006238.jpg", "width": 683, "id": 6237, "height": 512}, {"file_name": "ADE_train_00006239.jpg", "width": 683, "id": 6238, "height": 512}, {"file_name": "ADE_train_00006240.jpg", "width": 683, "id": 6239, "height": 512}, {"file_name": "ADE_train_00006241.jpg", "width": 256, "id": 6240, "height": 256}, {"file_name": "ADE_train_00006242.jpg", "width": 750, "id": 6241, "height": 494}, {"file_name": "ADE_train_00006243.jpg", "width": 683, "id": 6242, "height": 512}, {"file_name": "ADE_train_00006244.jpg", "width": 288, "id": 6243, "height": 206}, {"file_name": "ADE_train_00006245.jpg", "width": 384, "id": 6244, "height": 252}, {"file_name": "ADE_train_00006246.jpg", "width": 450, "id": 6245, "height": 338}, {"file_name": "ADE_train_00006247.jpg", "width": 600, "id": 6246, "height": 396}, {"file_name": "ADE_train_00006248.jpg", "width": 300, "id": 6247, "height": 198}, {"file_name": "ADE_train_00006249.jpg", "width": 400, "id": 6248, "height": 300}, {"file_name": "ADE_train_00006250.jpg", "width": 683, "id": 6249, "height": 512}, {"file_name": "ADE_train_00006251.jpg", "width": 848, "id": 6250, "height": 512}, {"file_name": "ADE_train_00006252.jpg", "width": 683, "id": 6251, "height": 512}, {"file_name": "ADE_train_00006253.jpg", "width": 683, "id": 6252, "height": 512}, {"file_name": "ADE_train_00006254.jpg", "width": 600, "id": 6253, "height": 396}, {"file_name": "ADE_train_00006255.jpg", "width": 683, "id": 6254, "height": 512}, {"file_name": "ADE_train_00006256.jpg", "width": 512, "id": 6255, "height": 683}, {"file_name": "ADE_train_00006257.jpg", "width": 683, "id": 6256, "height": 512}, {"file_name": "ADE_train_00006258.jpg", "width": 683, "id": 6257, "height": 512}, {"file_name": "ADE_train_00006259.jpg", "width": 683, "id": 6258, "height": 512}, {"file_name": "ADE_train_00006260.jpg", "width": 256, "id": 6259, "height": 256}, {"file_name": "ADE_train_00006261.jpg", "width": 256, "id": 6260, "height": 256}, {"file_name": "ADE_train_00006262.jpg", "width": 512, "id": 6261, "height": 640}, {"file_name": "ADE_train_00006263.jpg", "width": 256, "id": 6262, "height": 256}, {"file_name": "ADE_train_00006264.jpg", "width": 512, "id": 6263, "height": 682}, {"file_name": "ADE_train_00006265.jpg", "width": 683, "id": 6264, "height": 512}, {"file_name": "ADE_train_00006266.jpg", "width": 512, "id": 6265, "height": 517}, {"file_name": "ADE_train_00006267.jpg", "width": 256, "id": 6266, "height": 256}, {"file_name": "ADE_train_00006268.jpg", "width": 256, "id": 6267, "height": 256}, {"file_name": "ADE_train_00006269.jpg", "width": 683, "id": 6268, "height": 512}, {"file_name": "ADE_train_00006270.jpg", "width": 500, "id": 6269, "height": 375}, {"file_name": "ADE_train_00006271.jpg", "width": 256, "id": 6270, "height": 256}, {"file_name": "ADE_train_00006272.jpg", "width": 512, "id": 6271, "height": 384}, {"file_name": "ADE_train_00006273.jpg", "width": 256, "id": 6272, "height": 256}, {"file_name": "ADE_train_00006274.jpg", "width": 256, "id": 6273, "height": 256}, {"file_name": "ADE_train_00006275.jpg", "width": 512, "id": 6274, "height": 683}, {"file_name": "ADE_train_00006276.jpg", "width": 811, "id": 6275, "height": 512}, {"file_name": "ADE_train_00006277.jpg", "width": 256, "id": 6276, "height": 256}, {"file_name": "ADE_train_00006278.jpg", "width": 256, "id": 6277, "height": 256}, {"file_name": "ADE_train_00006279.jpg", "width": 256, "id": 6278, "height": 256}, {"file_name": "ADE_train_00006280.jpg", "width": 772, "id": 6279, "height": 512}, {"file_name": "ADE_train_00006281.jpg", "width": 256, "id": 6280, "height": 256}, {"file_name": "ADE_train_00006282.jpg", "width": 256, "id": 6281, "height": 256}, {"file_name": "ADE_train_00006283.jpg", "width": 683, "id": 6282, "height": 512}, {"file_name": "ADE_train_00006284.jpg", "width": 512, "id": 6283, "height": 683}, {"file_name": "ADE_train_00006285.jpg", "width": 683, "id": 6284, "height": 512}, {"file_name": "ADE_train_00006286.jpg", "width": 256, "id": 6285, "height": 256}, {"file_name": "ADE_train_00006287.jpg", "width": 512, "id": 6286, "height": 715}, {"file_name": "ADE_train_00006288.jpg", "width": 256, "id": 6287, "height": 256}, {"file_name": "ADE_train_00006289.jpg", "width": 683, "id": 6288, "height": 512}, {"file_name": "ADE_train_00006290.jpg", "width": 256, "id": 6289, "height": 256}, {"file_name": "ADE_train_00006291.jpg", "width": 256, "id": 6290, "height": 256}, {"file_name": "ADE_train_00006292.jpg", "width": 256, "id": 6291, "height": 256}, {"file_name": "ADE_train_00006293.jpg", "width": 682, "id": 6292, "height": 512}, {"file_name": "ADE_train_00006294.jpg", "width": 256, "id": 6293, "height": 256}, {"file_name": "ADE_train_00006295.jpg", "width": 256, "id": 6294, "height": 256}, {"file_name": "ADE_train_00006296.jpg", "width": 257, "id": 6295, "height": 256}, {"file_name": "ADE_train_00006297.jpg", "width": 512, "id": 6296, "height": 683}, {"file_name": "ADE_train_00006298.jpg", "width": 768, "id": 6297, "height": 512}, {"file_name": "ADE_train_00006299.jpg", "width": 480, "id": 6298, "height": 640}, {"file_name": "ADE_train_00006300.jpg", "width": 256, "id": 6299, "height": 256}, {"file_name": "ADE_train_00006301.jpg", "width": 256, "id": 6300, "height": 256}, {"file_name": "ADE_train_00006302.jpg", "width": 256, "id": 6301, "height": 256}, {"file_name": "ADE_train_00006303.jpg", "width": 256, "id": 6302, "height": 256}, {"file_name": "ADE_train_00006304.jpg", "width": 512, "id": 6303, "height": 683}, {"file_name": "ADE_train_00006305.jpg", "width": 256, "id": 6304, "height": 256}, {"file_name": "ADE_train_00006306.jpg", "width": 683, "id": 6305, "height": 512}, {"file_name": "ADE_train_00006307.jpg", "width": 256, "id": 6306, "height": 256}, {"file_name": "ADE_train_00006308.jpg", "width": 256, "id": 6307, "height": 256}, {"file_name": "ADE_train_00006309.jpg", "width": 256, "id": 6308, "height": 256}, {"file_name": "ADE_train_00006310.jpg", "width": 256, "id": 6309, "height": 256}, {"file_name": "ADE_train_00006311.jpg", "width": 256, "id": 6310, "height": 256}, {"file_name": "ADE_train_00006312.jpg", "width": 683, "id": 6311, "height": 512}, {"file_name": "ADE_train_00006313.jpg", "width": 256, "id": 6312, "height": 256}, {"file_name": "ADE_train_00006314.jpg", "width": 256, "id": 6313, "height": 256}, {"file_name": "ADE_train_00006315.jpg", "width": 256, "id": 6314, "height": 256}, {"file_name": "ADE_train_00006316.jpg", "width": 256, "id": 6315, "height": 256}, {"file_name": "ADE_train_00006317.jpg", "width": 256, "id": 6316, "height": 256}, {"file_name": "ADE_train_00006318.jpg", "width": 256, "id": 6317, "height": 256}, {"file_name": "ADE_train_00006319.jpg", "width": 256, "id": 6318, "height": 256}, {"file_name": "ADE_train_00006320.jpg", "width": 683, "id": 6319, "height": 512}, {"file_name": "ADE_train_00006321.jpg", "width": 256, "id": 6320, "height": 256}, {"file_name": "ADE_train_00006322.jpg", "width": 256, "id": 6321, "height": 256}, {"file_name": "ADE_train_00006323.jpg", "width": 256, "id": 6322, "height": 256}, {"file_name": "ADE_train_00006324.jpg", "width": 300, "id": 6323, "height": 225}, {"file_name": "ADE_train_00006325.jpg", "width": 256, "id": 6324, "height": 256}, {"file_name": "ADE_train_00006326.jpg", "width": 256, "id": 6325, "height": 256}, {"file_name": "ADE_train_00006327.jpg", "width": 256, "id": 6326, "height": 256}, {"file_name": "ADE_train_00006328.jpg", "width": 683, "id": 6327, "height": 512}, {"file_name": "ADE_train_00006329.jpg", "width": 256, "id": 6328, "height": 256}, {"file_name": "ADE_train_00006330.jpg", "width": 683, "id": 6329, "height": 512}, {"file_name": "ADE_train_00006331.jpg", "width": 256, "id": 6330, "height": 256}, {"file_name": "ADE_train_00006332.jpg", "width": 683, "id": 6331, "height": 512}, {"file_name": "ADE_train_00006333.jpg", "width": 683, "id": 6332, "height": 512}, {"file_name": "ADE_train_00006334.jpg", "width": 256, "id": 6333, "height": 256}, {"file_name": "ADE_train_00006335.jpg", "width": 256, "id": 6334, "height": 256}, {"file_name": "ADE_train_00006336.jpg", "width": 256, "id": 6335, "height": 256}, {"file_name": "ADE_train_00006337.jpg", "width": 256, "id": 6336, "height": 256}, {"file_name": "ADE_train_00006338.jpg", "width": 683, "id": 6337, "height": 512}, {"file_name": "ADE_train_00006339.jpg", "width": 256, "id": 6338, "height": 256}, {"file_name": "ADE_train_00006340.jpg", "width": 256, "id": 6339, "height": 256}, {"file_name": "ADE_train_00006341.jpg", "width": 683, "id": 6340, "height": 512}, {"file_name": "ADE_train_00006342.jpg", "width": 256, "id": 6341, "height": 256}, {"file_name": "ADE_train_00006343.jpg", "width": 256, "id": 6342, "height": 256}, {"file_name": "ADE_train_00006344.jpg", "width": 256, "id": 6343, "height": 256}, {"file_name": "ADE_train_00006345.jpg", "width": 256, "id": 6344, "height": 256}, {"file_name": "ADE_train_00006346.jpg", "width": 683, "id": 6345, "height": 512}, {"file_name": "ADE_train_00006347.jpg", "width": 256, "id": 6346, "height": 256}, {"file_name": "ADE_train_00006348.jpg", "width": 256, "id": 6347, "height": 256}, {"file_name": "ADE_train_00006349.jpg", "width": 256, "id": 6348, "height": 256}, {"file_name": "ADE_train_00006350.jpg", "width": 256, "id": 6349, "height": 256}, {"file_name": "ADE_train_00006351.jpg", "width": 256, "id": 6350, "height": 256}, {"file_name": "ADE_train_00006352.jpg", "width": 256, "id": 6351, "height": 256}, {"file_name": "ADE_train_00006353.jpg", "width": 683, "id": 6352, "height": 512}, {"file_name": "ADE_train_00006354.jpg", "width": 256, "id": 6353, "height": 256}, {"file_name": "ADE_train_00006355.jpg", "width": 256, "id": 6354, "height": 257}, {"file_name": "ADE_train_00006356.jpg", "width": 256, "id": 6355, "height": 256}, {"file_name": "ADE_train_00006357.jpg", "width": 256, "id": 6356, "height": 256}, {"file_name": "ADE_train_00006358.jpg", "width": 256, "id": 6357, "height": 256}, {"file_name": "ADE_train_00006359.jpg", "width": 256, "id": 6358, "height": 256}, {"file_name": "ADE_train_00006360.jpg", "width": 512, "id": 6359, "height": 683}, {"file_name": "ADE_train_00006361.jpg", "width": 768, "id": 6360, "height": 512}, {"file_name": "ADE_train_00006362.jpg", "width": 683, "id": 6361, "height": 512}, {"file_name": "ADE_train_00006363.jpg", "width": 256, "id": 6362, "height": 256}, {"file_name": "ADE_train_00006364.jpg", "width": 480, "id": 6363, "height": 313}, {"file_name": "ADE_train_00006365.jpg", "width": 500, "id": 6364, "height": 356}, {"file_name": "ADE_train_00006366.jpg", "width": 601, "id": 6365, "height": 512}, {"file_name": "ADE_train_00006367.jpg", "width": 683, "id": 6366, "height": 512}, {"file_name": "ADE_train_00006368.jpg", "width": 683, "id": 6367, "height": 512}, {"file_name": "ADE_train_00006369.jpg", "width": 683, "id": 6368, "height": 512}, {"file_name": "ADE_train_00006370.jpg", "width": 761, "id": 6369, "height": 512}, {"file_name": "ADE_train_00006371.jpg", "width": 683, "id": 6370, "height": 512}, {"file_name": "ADE_train_00006372.jpg", "width": 350, "id": 6371, "height": 250}, {"file_name": "ADE_train_00006373.jpg", "width": 683, "id": 6372, "height": 512}, {"file_name": "ADE_train_00006374.jpg", "width": 683, "id": 6373, "height": 512}, {"file_name": "ADE_train_00006375.jpg", "width": 225, "id": 6374, "height": 300}, {"file_name": "ADE_train_00006376.jpg", "width": 819, "id": 6375, "height": 512}, {"file_name": "ADE_train_00006377.jpg", "width": 683, "id": 6376, "height": 512}, {"file_name": "ADE_train_00006378.jpg", "width": 769, "id": 6377, "height": 512}, {"file_name": "ADE_train_00006379.jpg", "width": 350, "id": 6378, "height": 256}, {"file_name": "ADE_train_00006380.jpg", "width": 683, "id": 6379, "height": 512}, {"file_name": "ADE_train_00006381.jpg", "width": 683, "id": 6380, "height": 512}, {"file_name": "ADE_train_00006382.jpg", "width": 440, "id": 6381, "height": 280}, {"file_name": "ADE_train_00006383.jpg", "width": 512, "id": 6382, "height": 683}, {"file_name": "ADE_train_00006384.jpg", "width": 250, "id": 6383, "height": 226}, {"file_name": "ADE_train_00006385.jpg", "width": 743, "id": 6384, "height": 512}, {"file_name": "ADE_train_00006386.jpg", "width": 250, "id": 6385, "height": 309}, {"file_name": "ADE_train_00006387.jpg", "width": 500, "id": 6386, "height": 266}, {"file_name": "ADE_train_00006388.jpg", "width": 360, "id": 6387, "height": 285}, {"file_name": "ADE_train_00006389.jpg", "width": 320, "id": 6388, "height": 240}, {"file_name": "ADE_train_00006390.jpg", "width": 683, "id": 6389, "height": 512}, {"file_name": "ADE_train_00006391.jpg", "width": 418, "id": 6390, "height": 319}, {"file_name": "ADE_train_00006392.jpg", "width": 512, "id": 6391, "height": 764}, {"file_name": "ADE_train_00006393.jpg", "width": 768, "id": 6392, "height": 512}, {"file_name": "ADE_train_00006394.jpg", "width": 480, "id": 6393, "height": 385}, {"file_name": "ADE_train_00006395.jpg", "width": 250, "id": 6394, "height": 310}, {"file_name": "ADE_train_00006396.jpg", "width": 683, "id": 6395, "height": 512}, {"file_name": "ADE_train_00006397.jpg", "width": 683, "id": 6396, "height": 512}, {"file_name": "ADE_train_00006398.jpg", "width": 241, "id": 6397, "height": 205}, {"file_name": "ADE_train_00006399.jpg", "width": 683, "id": 6398, "height": 512}, {"file_name": "ADE_train_00006400.jpg", "width": 600, "id": 6399, "height": 388}, {"file_name": "ADE_train_00006401.jpg", "width": 448, "id": 6400, "height": 336}, {"file_name": "ADE_train_00006402.jpg", "width": 250, "id": 6401, "height": 344}, {"file_name": "ADE_train_00006403.jpg", "width": 860, "id": 6402, "height": 481}, {"file_name": "ADE_train_00006404.jpg", "width": 277, "id": 6403, "height": 295}, {"file_name": "ADE_train_00006405.jpg", "width": 555, "id": 6404, "height": 350}, {"file_name": "ADE_train_00006406.jpg", "width": 590, "id": 6405, "height": 400}, {"file_name": "ADE_train_00006407.jpg", "width": 682, "id": 6406, "height": 512}, {"file_name": "ADE_train_00006408.jpg", "width": 320, "id": 6407, "height": 214}, {"file_name": "ADE_train_00006409.jpg", "width": 200, "id": 6408, "height": 240}, {"file_name": "ADE_train_00006410.jpg", "width": 640, "id": 6409, "height": 427}, {"file_name": "ADE_train_00006411.jpg", "width": 682, "id": 6410, "height": 512}, {"file_name": "ADE_train_00006412.jpg", "width": 277, "id": 6411, "height": 295}, {"file_name": "ADE_train_00006413.jpg", "width": 335, "id": 6412, "height": 270}, {"file_name": "ADE_train_00006414.jpg", "width": 400, "id": 6413, "height": 300}, {"file_name": "ADE_train_00006415.jpg", "width": 336, "id": 6414, "height": 336}, {"file_name": "ADE_train_00006416.jpg", "width": 683, "id": 6415, "height": 512}, {"file_name": "ADE_train_00006417.jpg", "width": 600, "id": 6416, "height": 409}, {"file_name": "ADE_train_00006418.jpg", "width": 275, "id": 6417, "height": 206}, {"file_name": "ADE_train_00006419.jpg", "width": 313, "id": 6418, "height": 250}, {"file_name": "ADE_train_00006420.jpg", "width": 388, "id": 6419, "height": 274}, {"file_name": "ADE_train_00006421.jpg", "width": 256, "id": 6420, "height": 256}, {"file_name": "ADE_train_00006422.jpg", "width": 480, "id": 6421, "height": 320}, {"file_name": "ADE_train_00006423.jpg", "width": 256, "id": 6422, "height": 256}, {"file_name": "ADE_train_00006424.jpg", "width": 512, "id": 6423, "height": 690}, {"file_name": "ADE_train_00006425.jpg", "width": 400, "id": 6424, "height": 300}, {"file_name": "ADE_train_00006426.jpg", "width": 320, "id": 6425, "height": 240}, {"file_name": "ADE_train_00006427.jpg", "width": 682, "id": 6426, "height": 512}, {"file_name": "ADE_train_00006428.jpg", "width": 250, "id": 6427, "height": 258}, {"file_name": "ADE_train_00006429.jpg", "width": 500, "id": 6428, "height": 333}, {"file_name": "ADE_train_00006430.jpg", "width": 400, "id": 6429, "height": 311}, {"file_name": "ADE_train_00006431.jpg", "width": 354, "id": 6430, "height": 255}, {"file_name": "ADE_train_00006432.jpg", "width": 640, "id": 6431, "height": 428}, {"file_name": "ADE_train_00006433.jpg", "width": 400, "id": 6432, "height": 300}, {"file_name": "ADE_train_00006434.jpg", "width": 675, "id": 6433, "height": 459}, {"file_name": "ADE_train_00006435.jpg", "width": 600, "id": 6434, "height": 450}, {"file_name": "ADE_train_00006436.jpg", "width": 600, "id": 6435, "height": 450}, {"file_name": "ADE_train_00006437.jpg", "width": 600, "id": 6436, "height": 450}, {"file_name": "ADE_train_00006438.jpg", "width": 600, "id": 6437, "height": 450}, {"file_name": "ADE_train_00006439.jpg", "width": 600, "id": 6438, "height": 450}, {"file_name": "ADE_train_00006440.jpg", "width": 600, "id": 6439, "height": 450}, {"file_name": "ADE_train_00006441.jpg", "width": 720, "id": 6440, "height": 512}, {"file_name": "ADE_train_00006442.jpg", "width": 600, "id": 6441, "height": 450}, {"file_name": "ADE_train_00006443.jpg", "width": 600, "id": 6442, "height": 450}, {"file_name": "ADE_train_00006444.jpg", "width": 600, "id": 6443, "height": 450}, {"file_name": "ADE_train_00006445.jpg", "width": 600, "id": 6444, "height": 450}, {"file_name": "ADE_train_00006446.jpg", "width": 683, "id": 6445, "height": 512}, {"file_name": "ADE_train_00006447.jpg", "width": 300, "id": 6446, "height": 400}, {"file_name": "ADE_train_00006448.jpg", "width": 683, "id": 6447, "height": 512}, {"file_name": "ADE_train_00006449.jpg", "width": 687, "id": 6448, "height": 512}, {"file_name": "ADE_train_00006450.jpg", "width": 683, "id": 6449, "height": 512}, {"file_name": "ADE_train_00006451.jpg", "width": 683, "id": 6450, "height": 512}, {"file_name": "ADE_train_00006452.jpg", "width": 768, "id": 6451, "height": 512}, {"file_name": "ADE_train_00006453.jpg", "width": 770, "id": 6452, "height": 512}, {"file_name": "ADE_train_00006454.jpg", "width": 300, "id": 6453, "height": 238}, {"file_name": "ADE_train_00006455.jpg", "width": 770, "id": 6454, "height": 512}, {"file_name": "ADE_train_00006456.jpg", "width": 684, "id": 6455, "height": 512}, {"file_name": "ADE_train_00006457.jpg", "width": 320, "id": 6456, "height": 240}, {"file_name": "ADE_train_00006458.jpg", "width": 683, "id": 6457, "height": 512}, {"file_name": "ADE_train_00006459.jpg", "width": 300, "id": 6458, "height": 225}, {"file_name": "ADE_train_00006460.jpg", "width": 330, "id": 6459, "height": 220}, {"file_name": "ADE_train_00006461.jpg", "width": 512, "id": 6460, "height": 683}, {"file_name": "ADE_train_00006462.jpg", "width": 512, "id": 6461, "height": 683}, {"file_name": "ADE_train_00006463.jpg", "width": 683, "id": 6462, "height": 512}, {"file_name": "ADE_train_00006464.jpg", "width": 683, "id": 6463, "height": 512}, {"file_name": "ADE_train_00006465.jpg", "width": 256, "id": 6464, "height": 256}, {"file_name": "ADE_train_00006466.jpg", "width": 256, "id": 6465, "height": 256}, {"file_name": "ADE_train_00006467.jpg", "width": 256, "id": 6466, "height": 256}, {"file_name": "ADE_train_00006468.jpg", "width": 256, "id": 6467, "height": 256}, {"file_name": "ADE_train_00006469.jpg", "width": 256, "id": 6468, "height": 256}, {"file_name": "ADE_train_00006470.jpg", "width": 256, "id": 6469, "height": 256}, {"file_name": "ADE_train_00006471.jpg", "width": 256, "id": 6470, "height": 256}, {"file_name": "ADE_train_00006472.jpg", "width": 400, "id": 6471, "height": 300}, {"file_name": "ADE_train_00006473.jpg", "width": 256, "id": 6472, "height": 256}, {"file_name": "ADE_train_00006474.jpg", "width": 479, "id": 6473, "height": 320}, {"file_name": "ADE_train_00006475.jpg", "width": 454, "id": 6474, "height": 340}, {"file_name": "ADE_train_00006476.jpg", "width": 256, "id": 6475, "height": 256}, {"file_name": "ADE_train_00006477.jpg", "width": 300, "id": 6476, "height": 400}, {"file_name": "ADE_train_00006478.jpg", "width": 256, "id": 6477, "height": 256}, {"file_name": "ADE_train_00006479.jpg", "width": 256, "id": 6478, "height": 256}, {"file_name": "ADE_train_00006480.jpg", "width": 360, "id": 6479, "height": 316}, {"file_name": "ADE_train_00006481.jpg", "width": 342, "id": 6480, "height": 500}, {"file_name": "ADE_train_00006482.jpg", "width": 256, "id": 6481, "height": 256}, {"file_name": "ADE_train_00006483.jpg", "width": 256, "id": 6482, "height": 256}, {"file_name": "ADE_train_00006484.jpg", "width": 214, "id": 6483, "height": 288}, {"file_name": "ADE_train_00006485.jpg", "width": 599, "id": 6484, "height": 396}, {"file_name": "ADE_train_00006486.jpg", "width": 256, "id": 6485, "height": 256}, {"file_name": "ADE_train_00006487.jpg", "width": 256, "id": 6486, "height": 256}, {"file_name": "ADE_train_00006488.jpg", "width": 250, "id": 6487, "height": 375}, {"file_name": "ADE_train_00006489.jpg", "width": 256, "id": 6488, "height": 256}, {"file_name": "ADE_train_00006490.jpg", "width": 256, "id": 6489, "height": 256}, {"file_name": "ADE_train_00006491.jpg", "width": 256, "id": 6490, "height": 256}, {"file_name": "ADE_train_00006492.jpg", "width": 749, "id": 6491, "height": 512}, {"file_name": "ADE_train_00006493.jpg", "width": 256, "id": 6492, "height": 256}, {"file_name": "ADE_train_00006494.jpg", "width": 256, "id": 6493, "height": 256}, {"file_name": "ADE_train_00006495.jpg", "width": 256, "id": 6494, "height": 256}, {"file_name": "ADE_train_00006496.jpg", "width": 256, "id": 6495, "height": 256}, {"file_name": "ADE_train_00006497.jpg", "width": 256, "id": 6496, "height": 256}, {"file_name": "ADE_train_00006498.jpg", "width": 256, "id": 6497, "height": 256}, {"file_name": "ADE_train_00006499.jpg", "width": 256, "id": 6498, "height": 256}, {"file_name": "ADE_train_00006500.jpg", "width": 301, "id": 6499, "height": 464}, {"file_name": "ADE_train_00006501.jpg", "width": 256, "id": 6500, "height": 256}, {"file_name": "ADE_train_00006502.jpg", "width": 256, "id": 6501, "height": 256}, {"file_name": "ADE_train_00006503.jpg", "width": 256, "id": 6502, "height": 256}, {"file_name": "ADE_train_00006504.jpg", "width": 256, "id": 6503, "height": 256}, {"file_name": "ADE_train_00006505.jpg", "width": 448, "id": 6504, "height": 592}, {"file_name": "ADE_train_00006506.jpg", "width": 424, "id": 6505, "height": 274}, {"file_name": "ADE_train_00006507.jpg", "width": 512, "id": 6506, "height": 683}, {"file_name": "ADE_train_00006508.jpg", "width": 300, "id": 6507, "height": 225}, {"file_name": "ADE_train_00006509.jpg", "width": 512, "id": 6508, "height": 756}, {"file_name": "ADE_train_00006510.jpg", "width": 683, "id": 6509, "height": 512}, {"file_name": "ADE_train_00006511.jpg", "width": 512, "id": 6510, "height": 683}, {"file_name": "ADE_train_00006512.jpg", "width": 768, "id": 6511, "height": 512}, {"file_name": "ADE_train_00006513.jpg", "width": 910, "id": 6512, "height": 512}, {"file_name": "ADE_train_00006514.jpg", "width": 296, "id": 6513, "height": 442}, {"file_name": "ADE_train_00006515.jpg", "width": 512, "id": 6514, "height": 683}, {"file_name": "ADE_train_00006516.jpg", "width": 683, "id": 6515, "height": 512}, {"file_name": "ADE_train_00006517.jpg", "width": 512, "id": 6516, "height": 683}, {"file_name": "ADE_train_00006518.jpg", "width": 512, "id": 6517, "height": 683}, {"file_name": "ADE_train_00006519.jpg", "width": 512, "id": 6518, "height": 683}, {"file_name": "ADE_train_00006520.jpg", "width": 400, "id": 6519, "height": 300}, {"file_name": "ADE_train_00006521.jpg", "width": 683, "id": 6520, "height": 512}, {"file_name": "ADE_train_00006522.jpg", "width": 600, "id": 6521, "height": 406}, {"file_name": "ADE_train_00006523.jpg", "width": 512, "id": 6522, "height": 768}, {"file_name": "ADE_train_00006524.jpg", "width": 512, "id": 6523, "height": 683}, {"file_name": "ADE_train_00006525.jpg", "width": 512, "id": 6524, "height": 640}, {"file_name": "ADE_train_00006526.jpg", "width": 488, "id": 6525, "height": 404}, {"file_name": "ADE_train_00006527.jpg", "width": 380, "id": 6526, "height": 285}, {"file_name": "ADE_train_00006528.jpg", "width": 250, "id": 6527, "height": 201}, {"file_name": "ADE_train_00006529.jpg", "width": 683, "id": 6528, "height": 512}, {"file_name": "ADE_train_00006530.jpg", "width": 684, "id": 6529, "height": 512}, {"file_name": "ADE_train_00006531.jpg", "width": 450, "id": 6530, "height": 280}, {"file_name": "ADE_train_00006532.jpg", "width": 400, "id": 6531, "height": 321}, {"file_name": "ADE_train_00006533.jpg", "width": 500, "id": 6532, "height": 375}, {"file_name": "ADE_train_00006534.jpg", "width": 400, "id": 6533, "height": 355}, {"file_name": "ADE_train_00006535.jpg", "width": 250, "id": 6534, "height": 311}, {"file_name": "ADE_train_00006536.jpg", "width": 340, "id": 6535, "height": 301}, {"file_name": "ADE_train_00006537.jpg", "width": 300, "id": 6536, "height": 298}, {"file_name": "ADE_train_00006538.jpg", "width": 480, "id": 6537, "height": 640}, {"file_name": "ADE_train_00006539.jpg", "width": 352, "id": 6538, "height": 264}, {"file_name": "ADE_train_00006540.jpg", "width": 320, "id": 6539, "height": 271}, {"file_name": "ADE_train_00006541.jpg", "width": 341, "id": 6540, "height": 255}, {"file_name": "ADE_train_00006542.jpg", "width": 235, "id": 6541, "height": 211}, {"file_name": "ADE_train_00006543.jpg", "width": 683, "id": 6542, "height": 512}, {"file_name": "ADE_train_00006544.jpg", "width": 683, "id": 6543, "height": 512}, {"file_name": "ADE_train_00006545.jpg", "width": 683, "id": 6544, "height": 512}, {"file_name": "ADE_train_00006546.jpg", "width": 400, "id": 6545, "height": 272}, {"file_name": "ADE_train_00006547.jpg", "width": 317, "id": 6546, "height": 209}, {"file_name": "ADE_train_00006548.jpg", "width": 600, "id": 6547, "height": 480}, {"file_name": "ADE_train_00006549.jpg", "width": 319, "id": 6548, "height": 208}, {"file_name": "ADE_train_00006550.jpg", "width": 768, "id": 6549, "height": 512}, {"file_name": "ADE_train_00006551.jpg", "width": 683, "id": 6550, "height": 512}, {"file_name": "ADE_train_00006552.jpg", "width": 329, "id": 6551, "height": 235}, {"file_name": "ADE_train_00006553.jpg", "width": 512, "id": 6552, "height": 770}, {"file_name": "ADE_train_00006554.jpg", "width": 683, "id": 6553, "height": 512}, {"file_name": "ADE_train_00006555.jpg", "width": 320, "id": 6554, "height": 240}, {"file_name": "ADE_train_00006556.jpg", "width": 683, "id": 6555, "height": 512}, {"file_name": "ADE_train_00006557.jpg", "width": 328, "id": 6556, "height": 247}, {"file_name": "ADE_train_00006558.jpg", "width": 684, "id": 6557, "height": 512}, {"file_name": "ADE_train_00006559.jpg", "width": 683, "id": 6558, "height": 512}, {"file_name": "ADE_train_00006560.jpg", "width": 250, "id": 6559, "height": 250}, {"file_name": "ADE_train_00006561.jpg", "width": 468, "id": 6560, "height": 351}, {"file_name": "ADE_train_00006562.jpg", "width": 350, "id": 6561, "height": 280}, {"file_name": "ADE_train_00006563.jpg", "width": 765, "id": 6562, "height": 512}, {"file_name": "ADE_train_00006564.jpg", "width": 683, "id": 6563, "height": 512}, {"file_name": "ADE_train_00006565.jpg", "width": 683, "id": 6564, "height": 512}, {"file_name": "ADE_train_00006566.jpg", "width": 768, "id": 6565, "height": 512}, {"file_name": "ADE_train_00006567.jpg", "width": 250, "id": 6566, "height": 171}, {"file_name": "ADE_train_00006568.jpg", "width": 500, "id": 6567, "height": 400}, {"file_name": "ADE_train_00006569.jpg", "width": 200, "id": 6568, "height": 199}, {"file_name": "ADE_train_00006570.jpg", "width": 528, "id": 6569, "height": 329}, {"file_name": "ADE_train_00006571.jpg", "width": 450, "id": 6570, "height": 309}, {"file_name": "ADE_train_00006572.jpg", "width": 513, "id": 6571, "height": 400}, {"file_name": "ADE_train_00006573.jpg", "width": 360, "id": 6572, "height": 250}, {"file_name": "ADE_train_00006574.jpg", "width": 249, "id": 6573, "height": 187}, {"file_name": "ADE_train_00006575.jpg", "width": 512, "id": 6574, "height": 683}, {"file_name": "ADE_train_00006576.jpg", "width": 512, "id": 6575, "height": 683}, {"file_name": "ADE_train_00006577.jpg", "width": 683, "id": 6576, "height": 512}, {"file_name": "ADE_train_00006578.jpg", "width": 512, "id": 6577, "height": 683}, {"file_name": "ADE_train_00006579.jpg", "width": 768, "id": 6578, "height": 512}, {"file_name": "ADE_train_00006580.jpg", "width": 682, "id": 6579, "height": 512}, {"file_name": "ADE_train_00006581.jpg", "width": 683, "id": 6580, "height": 512}, {"file_name": "ADE_train_00006582.jpg", "width": 640, "id": 6581, "height": 466}, {"file_name": "ADE_train_00006583.jpg", "width": 350, "id": 6582, "height": 466}, {"file_name": "ADE_train_00006584.jpg", "width": 683, "id": 6583, "height": 512}, {"file_name": "ADE_train_00006585.jpg", "width": 683, "id": 6584, "height": 512}, {"file_name": "ADE_train_00006586.jpg", "width": 690, "id": 6585, "height": 512}, {"file_name": "ADE_train_00006587.jpg", "width": 813, "id": 6586, "height": 512}, {"file_name": "ADE_train_00006588.jpg", "width": 683, "id": 6587, "height": 512}, {"file_name": "ADE_train_00006589.jpg", "width": 320, "id": 6588, "height": 240}, {"file_name": "ADE_train_00006590.jpg", "width": 512, "id": 6589, "height": 683}, {"file_name": "ADE_train_00006591.jpg", "width": 300, "id": 6590, "height": 225}, {"file_name": "ADE_train_00006592.jpg", "width": 320, "id": 6591, "height": 240}, {"file_name": "ADE_train_00006593.jpg", "width": 784, "id": 6592, "height": 512}, {"file_name": "ADE_train_00006594.jpg", "width": 770, "id": 6593, "height": 512}, {"file_name": "ADE_train_00006595.jpg", "width": 683, "id": 6594, "height": 512}, {"file_name": "ADE_train_00006596.jpg", "width": 640, "id": 6595, "height": 480}, {"file_name": "ADE_train_00006597.jpg", "width": 770, "id": 6596, "height": 512}, {"file_name": "ADE_train_00006598.jpg", "width": 683, "id": 6597, "height": 512}, {"file_name": "ADE_train_00006599.jpg", "width": 797, "id": 6598, "height": 512}, {"file_name": "ADE_train_00006600.jpg", "width": 550, "id": 6599, "height": 412}, {"file_name": "ADE_train_00006601.jpg", "width": 683, "id": 6600, "height": 512}, {"file_name": "ADE_train_00006602.jpg", "width": 769, "id": 6601, "height": 512}, {"file_name": "ADE_train_00006603.jpg", "width": 250, "id": 6602, "height": 333}, {"file_name": "ADE_train_00006604.jpg", "width": 300, "id": 6603, "height": 225}, {"file_name": "ADE_train_00006605.jpg", "width": 512, "id": 6604, "height": 684}, {"file_name": "ADE_train_00006606.jpg", "width": 360, "id": 6605, "height": 480}, {"file_name": "ADE_train_00006607.jpg", "width": 347, "id": 6606, "height": 350}, {"file_name": "ADE_train_00006608.jpg", "width": 628, "id": 6607, "height": 512}, {"file_name": "ADE_train_00006609.jpg", "width": 228, "id": 6608, "height": 300}, {"file_name": "ADE_train_00006610.jpg", "width": 500, "id": 6609, "height": 290}, {"file_name": "ADE_train_00006611.jpg", "width": 319, "id": 6610, "height": 239}, {"file_name": "ADE_train_00006612.jpg", "width": 240, "id": 6611, "height": 234}, {"file_name": "ADE_train_00006613.jpg", "width": 706, "id": 6612, "height": 512}, {"file_name": "ADE_train_00006614.jpg", "width": 300, "id": 6613, "height": 225}, {"file_name": "ADE_train_00006615.jpg", "width": 512, "id": 6614, "height": 768}, {"file_name": "ADE_train_00006616.jpg", "width": 683, "id": 6615, "height": 512}, {"file_name": "ADE_train_00006617.jpg", "width": 683, "id": 6616, "height": 512}, {"file_name": "ADE_train_00006618.jpg", "width": 770, "id": 6617, "height": 512}, {"file_name": "ADE_train_00006619.jpg", "width": 250, "id": 6618, "height": 346}, {"file_name": "ADE_train_00006620.jpg", "width": 683, "id": 6619, "height": 512}, {"file_name": "ADE_train_00006621.jpg", "width": 683, "id": 6620, "height": 512}, {"file_name": "ADE_train_00006622.jpg", "width": 683, "id": 6621, "height": 512}, {"file_name": "ADE_train_00006623.jpg", "width": 683, "id": 6622, "height": 512}, {"file_name": "ADE_train_00006624.jpg", "width": 683, "id": 6623, "height": 512}, {"file_name": "ADE_train_00006625.jpg", "width": 279, "id": 6624, "height": 200}, {"file_name": "ADE_train_00006626.jpg", "width": 500, "id": 6625, "height": 333}, {"file_name": "ADE_train_00006627.jpg", "width": 500, "id": 6626, "height": 333}, {"file_name": "ADE_train_00006628.jpg", "width": 500, "id": 6627, "height": 375}, {"file_name": "ADE_train_00006629.jpg", "width": 400, "id": 6628, "height": 300}, {"file_name": "ADE_train_00006630.jpg", "width": 525, "id": 6629, "height": 316}, {"file_name": "ADE_train_00006631.jpg", "width": 375, "id": 6630, "height": 500}, {"file_name": "ADE_train_00006632.jpg", "width": 640, "id": 6631, "height": 480}, {"file_name": "ADE_train_00006633.jpg", "width": 300, "id": 6632, "height": 214}, {"file_name": "ADE_train_00006634.jpg", "width": 500, "id": 6633, "height": 334}, {"file_name": "ADE_train_00006635.jpg", "width": 500, "id": 6634, "height": 375}, {"file_name": "ADE_train_00006636.jpg", "width": 600, "id": 6635, "height": 450}, {"file_name": "ADE_train_00006637.jpg", "width": 500, "id": 6636, "height": 333}, {"file_name": "ADE_train_00006638.jpg", "width": 374, "id": 6637, "height": 500}, {"file_name": "ADE_train_00006639.jpg", "width": 210, "id": 6638, "height": 253}, {"file_name": "ADE_train_00006640.jpg", "width": 500, "id": 6639, "height": 375}, {"file_name": "ADE_train_00006641.jpg", "width": 500, "id": 6640, "height": 335}, {"file_name": "ADE_train_00006642.jpg", "width": 500, "id": 6641, "height": 375}, {"file_name": "ADE_train_00006643.jpg", "width": 500, "id": 6642, "height": 333}, {"file_name": "ADE_train_00006644.jpg", "width": 640, "id": 6643, "height": 427}, {"file_name": "ADE_train_00006645.jpg", "width": 256, "id": 6644, "height": 256}, {"file_name": "ADE_train_00006646.jpg", "width": 256, "id": 6645, "height": 256}, {"file_name": "ADE_train_00006647.jpg", "width": 400, "id": 6646, "height": 384}, {"file_name": "ADE_train_00006648.jpg", "width": 234, "id": 6647, "height": 300}, {"file_name": "ADE_train_00006649.jpg", "width": 500, "id": 6648, "height": 346}, {"file_name": "ADE_train_00006650.jpg", "width": 256, "id": 6649, "height": 256}, {"file_name": "ADE_train_00006651.jpg", "width": 274, "id": 6650, "height": 380}, {"file_name": "ADE_train_00006652.jpg", "width": 256, "id": 6651, "height": 256}, {"file_name": "ADE_train_00006653.jpg", "width": 256, "id": 6652, "height": 256}, {"file_name": "ADE_train_00006654.jpg", "width": 256, "id": 6653, "height": 256}, {"file_name": "ADE_train_00006655.jpg", "width": 256, "id": 6654, "height": 256}, {"file_name": "ADE_train_00006656.jpg", "width": 500, "id": 6655, "height": 375}, {"file_name": "ADE_train_00006657.jpg", "width": 275, "id": 6656, "height": 257}, {"file_name": "ADE_train_00006658.jpg", "width": 350, "id": 6657, "height": 263}, {"file_name": "ADE_train_00006659.jpg", "width": 256, "id": 6658, "height": 256}, {"file_name": "ADE_train_00006660.jpg", "width": 375, "id": 6659, "height": 500}, {"file_name": "ADE_train_00006661.jpg", "width": 256, "id": 6660, "height": 256}, {"file_name": "ADE_train_00006662.jpg", "width": 500, "id": 6661, "height": 369}, {"file_name": "ADE_train_00006663.jpg", "width": 204, "id": 6662, "height": 202}, {"file_name": "ADE_train_00006664.jpg", "width": 400, "id": 6663, "height": 298}, {"file_name": "ADE_train_00006665.jpg", "width": 256, "id": 6664, "height": 256}, {"file_name": "ADE_train_00006666.jpg", "width": 256, "id": 6665, "height": 256}, {"file_name": "ADE_train_00006667.jpg", "width": 584, "id": 6666, "height": 337}, {"file_name": "ADE_train_00006668.jpg", "width": 442, "id": 6667, "height": 590}, {"file_name": "ADE_train_00006669.jpg", "width": 350, "id": 6668, "height": 232}, {"file_name": "ADE_train_00006670.jpg", "width": 500, "id": 6669, "height": 375}, {"file_name": "ADE_train_00006671.jpg", "width": 770, "id": 6670, "height": 512}, {"file_name": "ADE_train_00006672.jpg", "width": 683, "id": 6671, "height": 512}, {"file_name": "ADE_train_00006673.jpg", "width": 768, "id": 6672, "height": 512}, {"file_name": "ADE_train_00006674.jpg", "width": 683, "id": 6673, "height": 512}, {"file_name": "ADE_train_00006675.jpg", "width": 683, "id": 6674, "height": 512}, {"file_name": "ADE_train_00006676.jpg", "width": 256, "id": 6675, "height": 256}, {"file_name": "ADE_train_00006677.jpg", "width": 247, "id": 6676, "height": 360}, {"file_name": "ADE_train_00006678.jpg", "width": 640, "id": 6677, "height": 474}, {"file_name": "ADE_train_00006679.jpg", "width": 238, "id": 6678, "height": 168}, {"file_name": "ADE_train_00006680.jpg", "width": 450, "id": 6679, "height": 300}, {"file_name": "ADE_train_00006681.jpg", "width": 256, "id": 6680, "height": 256}, {"file_name": "ADE_train_00006682.jpg", "width": 256, "id": 6681, "height": 256}, {"file_name": "ADE_train_00006683.jpg", "width": 300, "id": 6682, "height": 220}, {"file_name": "ADE_train_00006684.jpg", "width": 256, "id": 6683, "height": 256}, {"file_name": "ADE_train_00006685.jpg", "width": 256, "id": 6684, "height": 256}, {"file_name": "ADE_train_00006686.jpg", "width": 773, "id": 6685, "height": 512}, {"file_name": "ADE_train_00006687.jpg", "width": 256, "id": 6686, "height": 256}, {"file_name": "ADE_train_00006688.jpg", "width": 326, "id": 6687, "height": 218}, {"file_name": "ADE_train_00006689.jpg", "width": 256, "id": 6688, "height": 256}, {"file_name": "ADE_train_00006690.jpg", "width": 256, "id": 6689, "height": 256}, {"file_name": "ADE_train_00006691.jpg", "width": 300, "id": 6690, "height": 176}, {"file_name": "ADE_train_00006692.jpg", "width": 256, "id": 6691, "height": 256}, {"file_name": "ADE_train_00006693.jpg", "width": 256, "id": 6692, "height": 256}, {"file_name": "ADE_train_00006694.jpg", "width": 683, "id": 6693, "height": 512}, {"file_name": "ADE_train_00006695.jpg", "width": 683, "id": 6694, "height": 512}, {"file_name": "ADE_train_00006696.jpg", "width": 256, "id": 6695, "height": 256}, {"file_name": "ADE_train_00006697.jpg", "width": 256, "id": 6696, "height": 256}, {"file_name": "ADE_train_00006698.jpg", "width": 256, "id": 6697, "height": 256}, {"file_name": "ADE_train_00006699.jpg", "width": 256, "id": 6698, "height": 256}, {"file_name": "ADE_train_00006700.jpg", "width": 256, "id": 6699, "height": 256}, {"file_name": "ADE_train_00006701.jpg", "width": 256, "id": 6700, "height": 256}, {"file_name": "ADE_train_00006702.jpg", "width": 256, "id": 6701, "height": 256}, {"file_name": "ADE_train_00006703.jpg", "width": 256, "id": 6702, "height": 256}, {"file_name": "ADE_train_00006704.jpg", "width": 256, "id": 6703, "height": 256}, {"file_name": "ADE_train_00006705.jpg", "width": 256, "id": 6704, "height": 256}, {"file_name": "ADE_train_00006706.jpg", "width": 256, "id": 6705, "height": 256}, {"file_name": "ADE_train_00006707.jpg", "width": 256, "id": 6706, "height": 256}, {"file_name": "ADE_train_00006708.jpg", "width": 678, "id": 6707, "height": 512}, {"file_name": "ADE_train_00006709.jpg", "width": 256, "id": 6708, "height": 256}, {"file_name": "ADE_train_00006710.jpg", "width": 256, "id": 6709, "height": 256}, {"file_name": "ADE_train_00006711.jpg", "width": 256, "id": 6710, "height": 256}, {"file_name": "ADE_train_00006712.jpg", "width": 256, "id": 6711, "height": 256}, {"file_name": "ADE_train_00006713.jpg", "width": 256, "id": 6712, "height": 256}, {"file_name": "ADE_train_00006714.jpg", "width": 256, "id": 6713, "height": 256}, {"file_name": "ADE_train_00006715.jpg", "width": 768, "id": 6714, "height": 512}, {"file_name": "ADE_train_00006716.jpg", "width": 500, "id": 6715, "height": 375}, {"file_name": "ADE_train_00006717.jpg", "width": 300, "id": 6716, "height": 225}, {"file_name": "ADE_train_00006718.jpg", "width": 432, "id": 6717, "height": 324}, {"file_name": "ADE_train_00006719.jpg", "width": 683, "id": 6718, "height": 512}, {"file_name": "ADE_train_00006720.jpg", "width": 324, "id": 6719, "height": 243}, {"file_name": "ADE_train_00006721.jpg", "width": 320, "id": 6720, "height": 240}, {"file_name": "ADE_train_00006722.jpg", "width": 400, "id": 6721, "height": 333}, {"file_name": "ADE_train_00006723.jpg", "width": 335, "id": 6722, "height": 500}, {"file_name": "ADE_train_00006724.jpg", "width": 934, "id": 6723, "height": 512}, {"file_name": "ADE_train_00006725.jpg", "width": 320, "id": 6724, "height": 240}, {"file_name": "ADE_train_00006726.jpg", "width": 683, "id": 6725, "height": 512}, {"file_name": "ADE_train_00006727.jpg", "width": 512, "id": 6726, "height": 780}, {"file_name": "ADE_train_00006728.jpg", "width": 683, "id": 6727, "height": 512}, {"file_name": "ADE_train_00006729.jpg", "width": 770, "id": 6728, "height": 512}, {"file_name": "ADE_train_00006730.jpg", "width": 683, "id": 6729, "height": 512}, {"file_name": "ADE_train_00006731.jpg", "width": 683, "id": 6730, "height": 512}, {"file_name": "ADE_train_00006732.jpg", "width": 683, "id": 6731, "height": 512}, {"file_name": "ADE_train_00006733.jpg", "width": 240, "id": 6732, "height": 217}, {"file_name": "ADE_train_00006734.jpg", "width": 683, "id": 6733, "height": 512}, {"file_name": "ADE_train_00006735.jpg", "width": 600, "id": 6734, "height": 395}, {"file_name": "ADE_train_00006736.jpg", "width": 300, "id": 6735, "height": 225}, {"file_name": "ADE_train_00006737.jpg", "width": 640, "id": 6736, "height": 480}, {"file_name": "ADE_train_00006738.jpg", "width": 375, "id": 6737, "height": 500}, {"file_name": "ADE_train_00006739.jpg", "width": 683, "id": 6738, "height": 512}, {"file_name": "ADE_train_00006740.jpg", "width": 468, "id": 6739, "height": 320}, {"file_name": "ADE_train_00006741.jpg", "width": 450, "id": 6740, "height": 600}, {"file_name": "ADE_train_00006742.jpg", "width": 320, "id": 6741, "height": 240}, {"file_name": "ADE_train_00006743.jpg", "width": 705, "id": 6742, "height": 512}, {"file_name": "ADE_train_00006744.jpg", "width": 512, "id": 6743, "height": 683}, {"file_name": "ADE_train_00006745.jpg", "width": 683, "id": 6744, "height": 512}, {"file_name": "ADE_train_00006746.jpg", "width": 683, "id": 6745, "height": 512}, {"file_name": "ADE_train_00006747.jpg", "width": 683, "id": 6746, "height": 512}, {"file_name": "ADE_train_00006748.jpg", "width": 320, "id": 6747, "height": 213}, {"file_name": "ADE_train_00006749.jpg", "width": 360, "id": 6748, "height": 240}, {"file_name": "ADE_train_00006750.jpg", "width": 300, "id": 6749, "height": 224}, {"file_name": "ADE_train_00006751.jpg", "width": 683, "id": 6750, "height": 512}, {"file_name": "ADE_train_00006752.jpg", "width": 330, "id": 6751, "height": 220}, {"file_name": "ADE_train_00006753.jpg", "width": 683, "id": 6752, "height": 512}, {"file_name": "ADE_train_00006754.jpg", "width": 512, "id": 6753, "height": 682}, {"file_name": "ADE_train_00006755.jpg", "width": 683, "id": 6754, "height": 512}, {"file_name": "ADE_train_00006756.jpg", "width": 683, "id": 6755, "height": 512}, {"file_name": "ADE_train_00006757.jpg", "width": 683, "id": 6756, "height": 512}, {"file_name": "ADE_train_00006758.jpg", "width": 512, "id": 6757, "height": 910}, {"file_name": "ADE_train_00006759.jpg", "width": 683, "id": 6758, "height": 512}, {"file_name": "ADE_train_00006760.jpg", "width": 512, "id": 6759, "height": 683}, {"file_name": "ADE_train_00006761.jpg", "width": 360, "id": 6760, "height": 240}, {"file_name": "ADE_train_00006762.jpg", "width": 768, "id": 6761, "height": 512}, {"file_name": "ADE_train_00006763.jpg", "width": 280, "id": 6762, "height": 209}, {"file_name": "ADE_train_00006764.jpg", "width": 683, "id": 6763, "height": 512}, {"file_name": "ADE_train_00006765.jpg", "width": 683, "id": 6764, "height": 512}, {"file_name": "ADE_train_00006766.jpg", "width": 683, "id": 6765, "height": 512}, {"file_name": "ADE_train_00006767.jpg", "width": 774, "id": 6766, "height": 512}, {"file_name": "ADE_train_00006768.jpg", "width": 512, "id": 6767, "height": 683}, {"file_name": "ADE_train_00006769.jpg", "width": 512, "id": 6768, "height": 683}, {"file_name": "ADE_train_00006770.jpg", "width": 683, "id": 6769, "height": 512}, {"file_name": "ADE_train_00006771.jpg", "width": 350, "id": 6770, "height": 233}, {"file_name": "ADE_train_00006772.jpg", "width": 683, "id": 6771, "height": 512}, {"file_name": "ADE_train_00006773.jpg", "width": 683, "id": 6772, "height": 512}, {"file_name": "ADE_train_00006774.jpg", "width": 683, "id": 6773, "height": 512}, {"file_name": "ADE_train_00006775.jpg", "width": 683, "id": 6774, "height": 512}, {"file_name": "ADE_train_00006776.jpg", "width": 260, "id": 6775, "height": 345}, {"file_name": "ADE_train_00006777.jpg", "width": 600, "id": 6776, "height": 388}, {"file_name": "ADE_train_00006778.jpg", "width": 605, "id": 6777, "height": 412}, {"file_name": "ADE_train_00006779.jpg", "width": 769, "id": 6778, "height": 512}, {"file_name": "ADE_train_00006780.jpg", "width": 503, "id": 6779, "height": 383}, {"file_name": "ADE_train_00006781.jpg", "width": 480, "id": 6780, "height": 360}, {"file_name": "ADE_train_00006782.jpg", "width": 310, "id": 6781, "height": 224}, {"file_name": "ADE_train_00006783.jpg", "width": 320, "id": 6782, "height": 212}, {"file_name": "ADE_train_00006784.jpg", "width": 683, "id": 6783, "height": 512}, {"file_name": "ADE_train_00006785.jpg", "width": 235, "id": 6784, "height": 300}, {"file_name": "ADE_train_00006786.jpg", "width": 683, "id": 6785, "height": 512}, {"file_name": "ADE_train_00006787.jpg", "width": 683, "id": 6786, "height": 512}, {"file_name": "ADE_train_00006788.jpg", "width": 683, "id": 6787, "height": 512}, {"file_name": "ADE_train_00006789.jpg", "width": 250, "id": 6788, "height": 260}, {"file_name": "ADE_train_00006790.jpg", "width": 683, "id": 6789, "height": 512}, {"file_name": "ADE_train_00006791.jpg", "width": 770, "id": 6790, "height": 512}, {"file_name": "ADE_train_00006792.jpg", "width": 768, "id": 6791, "height": 512}, {"file_name": "ADE_train_00006793.jpg", "width": 768, "id": 6792, "height": 512}, {"file_name": "ADE_train_00006794.jpg", "width": 512, "id": 6793, "height": 765}, {"file_name": "ADE_train_00006795.jpg", "width": 683, "id": 6794, "height": 512}, {"file_name": "ADE_train_00006796.jpg", "width": 300, "id": 6795, "height": 225}, {"file_name": "ADE_train_00006797.jpg", "width": 683, "id": 6796, "height": 512}, {"file_name": "ADE_train_00006798.jpg", "width": 683, "id": 6797, "height": 512}, {"file_name": "ADE_train_00006799.jpg", "width": 314, "id": 6798, "height": 235}, {"file_name": "ADE_train_00006800.jpg", "width": 350, "id": 6799, "height": 233}, {"file_name": "ADE_train_00006801.jpg", "width": 683, "id": 6800, "height": 512}, {"file_name": "ADE_train_00006802.jpg", "width": 340, "id": 6801, "height": 227}, {"file_name": "ADE_train_00006803.jpg", "width": 683, "id": 6802, "height": 512}, {"file_name": "ADE_train_00006804.jpg", "width": 683, "id": 6803, "height": 512}, {"file_name": "ADE_train_00006805.jpg", "width": 683, "id": 6804, "height": 512}, {"file_name": "ADE_train_00006806.jpg", "width": 683, "id": 6805, "height": 512}, {"file_name": "ADE_train_00006807.jpg", "width": 768, "id": 6806, "height": 512}, {"file_name": "ADE_train_00006808.jpg", "width": 768, "id": 6807, "height": 512}, {"file_name": "ADE_train_00006809.jpg", "width": 287, "id": 6808, "height": 215}, {"file_name": "ADE_train_00006810.jpg", "width": 683, "id": 6809, "height": 512}, {"file_name": "ADE_train_00006811.jpg", "width": 300, "id": 6810, "height": 224}, {"file_name": "ADE_train_00006812.jpg", "width": 683, "id": 6811, "height": 512}, {"file_name": "ADE_train_00006813.jpg", "width": 300, "id": 6812, "height": 218}, {"file_name": "ADE_train_00006814.jpg", "width": 768, "id": 6813, "height": 512}, {"file_name": "ADE_train_00006815.jpg", "width": 300, "id": 6814, "height": 225}, {"file_name": "ADE_train_00006816.jpg", "width": 366, "id": 6815, "height": 226}, {"file_name": "ADE_train_00006817.jpg", "width": 683, "id": 6816, "height": 512}, {"file_name": "ADE_train_00006818.jpg", "width": 474, "id": 6817, "height": 355}, {"file_name": "ADE_train_00006819.jpg", "width": 300, "id": 6818, "height": 225}, {"file_name": "ADE_train_00006820.jpg", "width": 500, "id": 6819, "height": 375}, {"file_name": "ADE_train_00006821.jpg", "width": 512, "id": 6820, "height": 513}, {"file_name": "ADE_train_00006822.jpg", "width": 683, "id": 6821, "height": 512}, {"file_name": "ADE_train_00006823.jpg", "width": 300, "id": 6822, "height": 225}, {"file_name": "ADE_train_00006824.jpg", "width": 560, "id": 6823, "height": 373}, {"file_name": "ADE_train_00006825.jpg", "width": 300, "id": 6824, "height": 225}, {"file_name": "ADE_train_00006826.jpg", "width": 683, "id": 6825, "height": 512}, {"file_name": "ADE_train_00006827.jpg", "width": 500, "id": 6826, "height": 333}, {"file_name": "ADE_train_00006828.jpg", "width": 500, "id": 6827, "height": 325}, {"file_name": "ADE_train_00006829.jpg", "width": 240, "id": 6828, "height": 360}, {"file_name": "ADE_train_00006830.jpg", "width": 640, "id": 6829, "height": 512}, {"file_name": "ADE_train_00006831.jpg", "width": 620, "id": 6830, "height": 411}, {"file_name": "ADE_train_00006832.jpg", "width": 637, "id": 6831, "height": 512}, {"file_name": "ADE_train_00006833.jpg", "width": 500, "id": 6832, "height": 333}, {"file_name": "ADE_train_00006834.jpg", "width": 400, "id": 6833, "height": 299}, {"file_name": "ADE_train_00006835.jpg", "width": 300, "id": 6834, "height": 246}, {"file_name": "ADE_train_00006836.jpg", "width": 640, "id": 6835, "height": 480}, {"file_name": "ADE_train_00006837.jpg", "width": 595, "id": 6836, "height": 393}, {"file_name": "ADE_train_00006838.jpg", "width": 320, "id": 6837, "height": 238}, {"file_name": "ADE_train_00006839.jpg", "width": 611, "id": 6838, "height": 512}, {"file_name": "ADE_train_00006840.jpg", "width": 683, "id": 6839, "height": 512}, {"file_name": "ADE_train_00006841.jpg", "width": 400, "id": 6840, "height": 216}, {"file_name": "ADE_train_00006842.jpg", "width": 857, "id": 6841, "height": 512}, {"file_name": "ADE_train_00006843.jpg", "width": 207, "id": 6842, "height": 311}, {"file_name": "ADE_train_00006844.jpg", "width": 320, "id": 6843, "height": 240}, {"file_name": "ADE_train_00006845.jpg", "width": 560, "id": 6844, "height": 420}, {"file_name": "ADE_train_00006846.jpg", "width": 1200, "id": 6845, "height": 1200}, {"file_name": "ADE_train_00006847.jpg", "width": 720, "id": 6846, "height": 480}, {"file_name": "ADE_train_00006848.jpg", "width": 768, "id": 6847, "height": 512}, {"file_name": "ADE_train_00006849.jpg", "width": 256, "id": 6848, "height": 256}, {"file_name": "ADE_train_00006850.jpg", "width": 717, "id": 6849, "height": 512}, {"file_name": "ADE_train_00006851.jpg", "width": 308, "id": 6850, "height": 250}, {"file_name": "ADE_train_00006852.jpg", "width": 765, "id": 6851, "height": 512}, {"file_name": "ADE_train_00006853.jpg", "width": 256, "id": 6852, "height": 256}, {"file_name": "ADE_train_00006854.jpg", "width": 256, "id": 6853, "height": 256}, {"file_name": "ADE_train_00006855.jpg", "width": 256, "id": 6854, "height": 256}, {"file_name": "ADE_train_00006856.jpg", "width": 625, "id": 6855, "height": 512}, {"file_name": "ADE_train_00006857.jpg", "width": 512, "id": 6856, "height": 456}, {"file_name": "ADE_train_00006858.jpg", "width": 537, "id": 6857, "height": 404}, {"file_name": "ADE_train_00006859.jpg", "width": 439, "id": 6858, "height": 360}, {"file_name": "ADE_train_00006860.jpg", "width": 792, "id": 6859, "height": 512}, {"file_name": "ADE_train_00006861.jpg", "width": 560, "id": 6860, "height": 375}, {"file_name": "ADE_train_00006862.jpg", "width": 766, "id": 6861, "height": 512}, {"file_name": "ADE_train_00006863.jpg", "width": 720, "id": 6862, "height": 480}, {"file_name": "ADE_train_00006864.jpg", "width": 256, "id": 6863, "height": 256}, {"file_name": "ADE_train_00006865.jpg", "width": 768, "id": 6864, "height": 512}, {"file_name": "ADE_train_00006866.jpg", "width": 768, "id": 6865, "height": 512}, {"file_name": "ADE_train_00006867.jpg", "width": 767, "id": 6866, "height": 512}, {"file_name": "ADE_train_00006868.jpg", "width": 256, "id": 6867, "height": 256}, {"file_name": "ADE_train_00006869.jpg", "width": 256, "id": 6868, "height": 256}, {"file_name": "ADE_train_00006870.jpg", "width": 256, "id": 6869, "height": 256}, {"file_name": "ADE_train_00006871.jpg", "width": 422, "id": 6870, "height": 539}, {"file_name": "ADE_train_00006872.jpg", "width": 256, "id": 6871, "height": 256}, {"file_name": "ADE_train_00006873.jpg", "width": 768, "id": 6872, "height": 512}, {"file_name": "ADE_train_00006874.jpg", "width": 512, "id": 6873, "height": 550}, {"file_name": "ADE_train_00006875.jpg", "width": 256, "id": 6874, "height": 256}, {"file_name": "ADE_train_00006876.jpg", "width": 768, "id": 6875, "height": 512}, {"file_name": "ADE_train_00006877.jpg", "width": 256, "id": 6876, "height": 256}, {"file_name": "ADE_train_00006878.jpg", "width": 256, "id": 6877, "height": 256}, {"file_name": "ADE_train_00006879.jpg", "width": 512, "id": 6878, "height": 666}, {"file_name": "ADE_train_00006880.jpg", "width": 700, "id": 6879, "height": 472}, {"file_name": "ADE_train_00006881.jpg", "width": 693, "id": 6880, "height": 512}, {"file_name": "ADE_train_00006882.jpg", "width": 512, "id": 6881, "height": 394}, {"file_name": "ADE_train_00006883.jpg", "width": 500, "id": 6882, "height": 399}, {"file_name": "ADE_train_00006884.jpg", "width": 773, "id": 6883, "height": 512}, {"file_name": "ADE_train_00006885.jpg", "width": 770, "id": 6884, "height": 512}, {"file_name": "ADE_train_00006886.jpg", "width": 512, "id": 6885, "height": 789}, {"file_name": "ADE_train_00006887.jpg", "width": 256, "id": 6886, "height": 256}, {"file_name": "ADE_train_00006888.jpg", "width": 256, "id": 6887, "height": 256}, {"file_name": "ADE_train_00006889.jpg", "width": 256, "id": 6888, "height": 256}, {"file_name": "ADE_train_00006890.jpg", "width": 614, "id": 6889, "height": 512}, {"file_name": "ADE_train_00006891.jpg", "width": 256, "id": 6890, "height": 256}, {"file_name": "ADE_train_00006892.jpg", "width": 256, "id": 6891, "height": 256}, {"file_name": "ADE_train_00006893.jpg", "width": 750, "id": 6892, "height": 512}, {"file_name": "ADE_train_00006894.jpg", "width": 256, "id": 6893, "height": 256}, {"file_name": "ADE_train_00006895.jpg", "width": 750, "id": 6894, "height": 500}, {"file_name": "ADE_train_00006896.jpg", "width": 769, "id": 6895, "height": 512}, {"file_name": "ADE_train_00006897.jpg", "width": 683, "id": 6896, "height": 512}, {"file_name": "ADE_train_00006898.jpg", "width": 751, "id": 6897, "height": 512}, {"file_name": "ADE_train_00006899.jpg", "width": 767, "id": 6898, "height": 512}, {"file_name": "ADE_train_00006900.jpg", "width": 375, "id": 6899, "height": 281}, {"file_name": "ADE_train_00006901.jpg", "width": 768, "id": 6900, "height": 512}, {"file_name": "ADE_train_00006902.jpg", "width": 256, "id": 6901, "height": 256}, {"file_name": "ADE_train_00006903.jpg", "width": 683, "id": 6902, "height": 512}, {"file_name": "ADE_train_00006904.jpg", "width": 256, "id": 6903, "height": 256}, {"file_name": "ADE_train_00006905.jpg", "width": 700, "id": 6904, "height": 394}, {"file_name": "ADE_train_00006906.jpg", "width": 700, "id": 6905, "height": 460}, {"file_name": "ADE_train_00006907.jpg", "width": 768, "id": 6906, "height": 512}, {"file_name": "ADE_train_00006908.jpg", "width": 768, "id": 6907, "height": 512}, {"file_name": "ADE_train_00006909.jpg", "width": 768, "id": 6908, "height": 512}, {"file_name": "ADE_train_00006910.jpg", "width": 720, "id": 6909, "height": 480}, {"file_name": "ADE_train_00006911.jpg", "width": 436, "id": 6910, "height": 328}, {"file_name": "ADE_train_00006912.jpg", "width": 768, "id": 6911, "height": 512}, {"file_name": "ADE_train_00006913.jpg", "width": 365, "id": 6912, "height": 365}, {"file_name": "ADE_train_00006914.jpg", "width": 240, "id": 6913, "height": 159}, {"file_name": "ADE_train_00006915.jpg", "width": 769, "id": 6914, "height": 512}, {"file_name": "ADE_train_00006916.jpg", "width": 769, "id": 6915, "height": 512}, {"file_name": "ADE_train_00006917.jpg", "width": 583, "id": 6916, "height": 397}, {"file_name": "ADE_train_00006918.jpg", "width": 640, "id": 6917, "height": 512}, {"file_name": "ADE_train_00006919.jpg", "width": 607, "id": 6918, "height": 512}, {"file_name": "ADE_train_00006920.jpg", "width": 500, "id": 6919, "height": 373}, {"file_name": "ADE_train_00006921.jpg", "width": 2100, "id": 6920, "height": 2100}, {"file_name": "ADE_train_00006922.jpg", "width": 256, "id": 6921, "height": 256}, {"file_name": "ADE_train_00006923.jpg", "width": 640, "id": 6922, "height": 452}, {"file_name": "ADE_train_00006924.jpg", "width": 683, "id": 6923, "height": 512}, {"file_name": "ADE_train_00006925.jpg", "width": 768, "id": 6924, "height": 512}, {"file_name": "ADE_train_00006926.jpg", "width": 256, "id": 6925, "height": 256}, {"file_name": "ADE_train_00006927.jpg", "width": 256, "id": 6926, "height": 256}, {"file_name": "ADE_train_00006928.jpg", "width": 768, "id": 6927, "height": 512}, {"file_name": "ADE_train_00006929.jpg", "width": 683, "id": 6928, "height": 512}, {"file_name": "ADE_train_00006930.jpg", "width": 771, "id": 6929, "height": 512}, {"file_name": "ADE_train_00006931.jpg", "width": 751, "id": 6930, "height": 512}, {"file_name": "ADE_train_00006932.jpg", "width": 769, "id": 6931, "height": 512}, {"file_name": "ADE_train_00006933.jpg", "width": 762, "id": 6932, "height": 512}, {"file_name": "ADE_train_00006934.jpg", "width": 752, "id": 6933, "height": 512}, {"file_name": "ADE_train_00006935.jpg", "width": 512, "id": 6934, "height": 780}, {"file_name": "ADE_train_00006936.jpg", "width": 768, "id": 6935, "height": 512}, {"file_name": "ADE_train_00006937.jpg", "width": 720, "id": 6936, "height": 480}, {"file_name": "ADE_train_00006938.jpg", "width": 683, "id": 6937, "height": 512}, {"file_name": "ADE_train_00006939.jpg", "width": 683, "id": 6938, "height": 512}, {"file_name": "ADE_train_00006940.jpg", "width": 512, "id": 6939, "height": 649}, {"file_name": "ADE_train_00006941.jpg", "width": 616, "id": 6940, "height": 462}, {"file_name": "ADE_train_00006942.jpg", "width": 794, "id": 6941, "height": 512}, {"file_name": "ADE_train_00006943.jpg", "width": 778, "id": 6942, "height": 512}, {"file_name": "ADE_train_00006944.jpg", "width": 640, "id": 6943, "height": 427}, {"file_name": "ADE_train_00006945.jpg", "width": 768, "id": 6944, "height": 512}, {"file_name": "ADE_train_00006946.jpg", "width": 256, "id": 6945, "height": 256}, {"file_name": "ADE_train_00006947.jpg", "width": 768, "id": 6946, "height": 512}, {"file_name": "ADE_train_00006948.jpg", "width": 640, "id": 6947, "height": 421}, {"file_name": "ADE_train_00006949.jpg", "width": 256, "id": 6948, "height": 256}, {"file_name": "ADE_train_00006950.jpg", "width": 771, "id": 6949, "height": 512}, {"file_name": "ADE_train_00006951.jpg", "width": 256, "id": 6950, "height": 256}, {"file_name": "ADE_train_00006952.jpg", "width": 256, "id": 6951, "height": 256}, {"file_name": "ADE_train_00006953.jpg", "width": 683, "id": 6952, "height": 512}, {"file_name": "ADE_train_00006954.jpg", "width": 682, "id": 6953, "height": 512}, {"file_name": "ADE_train_00006955.jpg", "width": 770, "id": 6954, "height": 512}, {"file_name": "ADE_train_00006956.jpg", "width": 256, "id": 6955, "height": 256}, {"file_name": "ADE_train_00006957.jpg", "width": 768, "id": 6956, "height": 512}, {"file_name": "ADE_train_00006958.jpg", "width": 663, "id": 6957, "height": 512}, {"file_name": "ADE_train_00006959.jpg", "width": 256, "id": 6958, "height": 256}, {"file_name": "ADE_train_00006960.jpg", "width": 339, "id": 6959, "height": 222}, {"file_name": "ADE_train_00006961.jpg", "width": 683, "id": 6960, "height": 512}, {"file_name": "ADE_train_00006962.jpg", "width": 256, "id": 6961, "height": 256}, {"file_name": "ADE_train_00006963.jpg", "width": 448, "id": 6962, "height": 411}, {"file_name": "ADE_train_00006964.jpg", "width": 760, "id": 6963, "height": 400}, {"file_name": "ADE_train_00006965.jpg", "width": 292, "id": 6964, "height": 284}, {"file_name": "ADE_train_00006966.jpg", "width": 640, "id": 6965, "height": 427}, {"file_name": "ADE_train_00006967.jpg", "width": 256, "id": 6966, "height": 256}, {"file_name": "ADE_train_00006968.jpg", "width": 256, "id": 6967, "height": 256}, {"file_name": "ADE_train_00006969.jpg", "width": 256, "id": 6968, "height": 256}, {"file_name": "ADE_train_00006970.jpg", "width": 768, "id": 6969, "height": 512}, {"file_name": "ADE_train_00006971.jpg", "width": 768, "id": 6970, "height": 512}, {"file_name": "ADE_train_00006972.jpg", "width": 480, "id": 6971, "height": 360}, {"file_name": "ADE_train_00006973.jpg", "width": 764, "id": 6972, "height": 512}, {"file_name": "ADE_train_00006974.jpg", "width": 256, "id": 6973, "height": 256}, {"file_name": "ADE_train_00006975.jpg", "width": 640, "id": 6974, "height": 512}, {"file_name": "ADE_train_00006976.jpg", "width": 720, "id": 6975, "height": 480}, {"file_name": "ADE_train_00006977.jpg", "width": 769, "id": 6976, "height": 512}, {"file_name": "ADE_train_00006978.jpg", "width": 640, "id": 6977, "height": 428}, {"file_name": "ADE_train_00006979.jpg", "width": 755, "id": 6978, "height": 512}, {"file_name": "ADE_train_00006980.jpg", "width": 263, "id": 6979, "height": 350}, {"file_name": "ADE_train_00006981.jpg", "width": 512, "id": 6980, "height": 526}, {"file_name": "ADE_train_00006982.jpg", "width": 256, "id": 6981, "height": 256}, {"file_name": "ADE_train_00006983.jpg", "width": 683, "id": 6982, "height": 512}, {"file_name": "ADE_train_00006984.jpg", "width": 683, "id": 6983, "height": 512}, {"file_name": "ADE_train_00006985.jpg", "width": 256, "id": 6984, "height": 256}, {"file_name": "ADE_train_00006986.jpg", "width": 256, "id": 6985, "height": 256}, {"file_name": "ADE_train_00006987.jpg", "width": 512, "id": 6986, "height": 651}, {"file_name": "ADE_train_00006988.jpg", "width": 768, "id": 6987, "height": 512}, {"file_name": "ADE_train_00006989.jpg", "width": 256, "id": 6988, "height": 256}, {"file_name": "ADE_train_00006990.jpg", "width": 600, "id": 6989, "height": 396}, {"file_name": "ADE_train_00006991.jpg", "width": 640, "id": 6990, "height": 427}, {"file_name": "ADE_train_00006992.jpg", "width": 768, "id": 6991, "height": 512}, {"file_name": "ADE_train_00006993.jpg", "width": 504, "id": 6992, "height": 360}, {"file_name": "ADE_train_00006994.jpg", "width": 256, "id": 6993, "height": 256}, {"file_name": "ADE_train_00006995.jpg", "width": 797, "id": 6994, "height": 512}, {"file_name": "ADE_train_00006996.jpg", "width": 256, "id": 6995, "height": 256}, {"file_name": "ADE_train_00006997.jpg", "width": 768, "id": 6996, "height": 512}, {"file_name": "ADE_train_00006998.jpg", "width": 690, "id": 6997, "height": 479}, {"file_name": "ADE_train_00006999.jpg", "width": 571, "id": 6998, "height": 512}, {"file_name": "ADE_train_00007000.jpg", "width": 683, "id": 6999, "height": 512}, {"file_name": "ADE_train_00007001.jpg", "width": 768, "id": 7000, "height": 512}, {"file_name": "ADE_train_00007002.jpg", "width": 512, "id": 7001, "height": 609}, {"file_name": "ADE_train_00007003.jpg", "width": 512, "id": 7002, "height": 719}, {"file_name": "ADE_train_00007004.jpg", "width": 256, "id": 7003, "height": 256}, {"file_name": "ADE_train_00007005.jpg", "width": 256, "id": 7004, "height": 256}, {"file_name": "ADE_train_00007006.jpg", "width": 550, "id": 7005, "height": 376}, {"file_name": "ADE_train_00007007.jpg", "width": 256, "id": 7006, "height": 256}, {"file_name": "ADE_train_00007008.jpg", "width": 700, "id": 7007, "height": 467}, {"file_name": "ADE_train_00007009.jpg", "width": 644, "id": 7008, "height": 512}, {"file_name": "ADE_train_00007010.jpg", "width": 256, "id": 7009, "height": 256}, {"file_name": "ADE_train_00007011.jpg", "width": 640, "id": 7010, "height": 476}, {"file_name": "ADE_train_00007012.jpg", "width": 586, "id": 7011, "height": 512}, {"file_name": "ADE_train_00007013.jpg", "width": 768, "id": 7012, "height": 512}, {"file_name": "ADE_train_00007014.jpg", "width": 384, "id": 7013, "height": 512}, {"file_name": "ADE_train_00007015.jpg", "width": 639, "id": 7014, "height": 512}, {"file_name": "ADE_train_00007016.jpg", "width": 256, "id": 7015, "height": 256}, {"file_name": "ADE_train_00007017.jpg", "width": 770, "id": 7016, "height": 512}, {"file_name": "ADE_train_00007018.jpg", "width": 683, "id": 7017, "height": 512}, {"file_name": "ADE_train_00007019.jpg", "width": 256, "id": 7018, "height": 256}, {"file_name": "ADE_train_00007020.jpg", "width": 697, "id": 7019, "height": 512}, {"file_name": "ADE_train_00007021.jpg", "width": 768, "id": 7020, "height": 512}, {"file_name": "ADE_train_00007022.jpg", "width": 700, "id": 7021, "height": 472}, {"file_name": "ADE_train_00007023.jpg", "width": 512, "id": 7022, "height": 664}, {"file_name": "ADE_train_00007024.jpg", "width": 256, "id": 7023, "height": 256}, {"file_name": "ADE_train_00007025.jpg", "width": 256, "id": 7024, "height": 256}, {"file_name": "ADE_train_00007026.jpg", "width": 256, "id": 7025, "height": 256}, {"file_name": "ADE_train_00007027.jpg", "width": 746, "id": 7026, "height": 469}, {"file_name": "ADE_train_00007028.jpg", "width": 771, "id": 7027, "height": 512}, {"file_name": "ADE_train_00007029.jpg", "width": 365, "id": 7028, "height": 365}, {"file_name": "ADE_train_00007030.jpg", "width": 256, "id": 7029, "height": 256}, {"file_name": "ADE_train_00007031.jpg", "width": 720, "id": 7030, "height": 480}, {"file_name": "ADE_train_00007032.jpg", "width": 512, "id": 7031, "height": 672}, {"file_name": "ADE_train_00007033.jpg", "width": 683, "id": 7032, "height": 512}, {"file_name": "ADE_train_00007034.jpg", "width": 512, "id": 7033, "height": 610}, {"file_name": "ADE_train_00007035.jpg", "width": 700, "id": 7034, "height": 467}, {"file_name": "ADE_train_00007036.jpg", "width": 768, "id": 7035, "height": 512}, {"file_name": "ADE_train_00007037.jpg", "width": 256, "id": 7036, "height": 256}, {"file_name": "ADE_train_00007038.jpg", "width": 700, "id": 7037, "height": 461}, {"file_name": "ADE_train_00007039.jpg", "width": 640, "id": 7038, "height": 425}, {"file_name": "ADE_train_00007040.jpg", "width": 256, "id": 7039, "height": 256}, {"file_name": "ADE_train_00007041.jpg", "width": 767, "id": 7040, "height": 512}, {"file_name": "ADE_train_00007042.jpg", "width": 256, "id": 7041, "height": 256}, {"file_name": "ADE_train_00007043.jpg", "width": 449, "id": 7042, "height": 512}, {"file_name": "ADE_train_00007044.jpg", "width": 256, "id": 7043, "height": 256}, {"file_name": "ADE_train_00007045.jpg", "width": 771, "id": 7044, "height": 512}, {"file_name": "ADE_train_00007046.jpg", "width": 512, "id": 7045, "height": 650}, {"file_name": "ADE_train_00007047.jpg", "width": 683, "id": 7046, "height": 512}, {"file_name": "ADE_train_00007048.jpg", "width": 256, "id": 7047, "height": 256}, {"file_name": "ADE_train_00007049.jpg", "width": 550, "id": 7048, "height": 356}, {"file_name": "ADE_train_00007050.jpg", "width": 256, "id": 7049, "height": 256}, {"file_name": "ADE_train_00007051.jpg", "width": 768, "id": 7050, "height": 512}, {"file_name": "ADE_train_00007052.jpg", "width": 765, "id": 7051, "height": 512}, {"file_name": "ADE_train_00007053.jpg", "width": 256, "id": 7052, "height": 256}, {"file_name": "ADE_train_00007054.jpg", "width": 256, "id": 7053, "height": 256}, {"file_name": "ADE_train_00007055.jpg", "width": 256, "id": 7054, "height": 256}, {"file_name": "ADE_train_00007056.jpg", "width": 773, "id": 7055, "height": 512}, {"file_name": "ADE_train_00007057.jpg", "width": 256, "id": 7056, "height": 256}, {"file_name": "ADE_train_00007058.jpg", "width": 256, "id": 7057, "height": 256}, {"file_name": "ADE_train_00007059.jpg", "width": 775, "id": 7058, "height": 512}, {"file_name": "ADE_train_00007060.jpg", "width": 683, "id": 7059, "height": 512}, {"file_name": "ADE_train_00007061.jpg", "width": 720, "id": 7060, "height": 480}, {"file_name": "ADE_train_00007062.jpg", "width": 256, "id": 7061, "height": 256}, {"file_name": "ADE_train_00007063.jpg", "width": 638, "id": 7062, "height": 425}, {"file_name": "ADE_train_00007064.jpg", "width": 256, "id": 7063, "height": 256}, {"file_name": "ADE_train_00007065.jpg", "width": 256, "id": 7064, "height": 256}, {"file_name": "ADE_train_00007066.jpg", "width": 256, "id": 7065, "height": 256}, {"file_name": "ADE_train_00007067.jpg", "width": 726, "id": 7066, "height": 512}, {"file_name": "ADE_train_00007068.jpg", "width": 768, "id": 7067, "height": 512}, {"file_name": "ADE_train_00007069.jpg", "width": 256, "id": 7068, "height": 256}, {"file_name": "ADE_train_00007070.jpg", "width": 512, "id": 7069, "height": 541}, {"file_name": "ADE_train_00007071.jpg", "width": 256, "id": 7070, "height": 256}, {"file_name": "ADE_train_00007072.jpg", "width": 768, "id": 7071, "height": 512}, {"file_name": "ADE_train_00007073.jpg", "width": 256, "id": 7072, "height": 256}, {"file_name": "ADE_train_00007074.jpg", "width": 256, "id": 7073, "height": 256}, {"file_name": "ADE_train_00007075.jpg", "width": 512, "id": 7074, "height": 768}, {"file_name": "ADE_train_00007076.jpg", "width": 512, "id": 7075, "height": 384}, {"file_name": "ADE_train_00007077.jpg", "width": 683, "id": 7076, "height": 512}, {"file_name": "ADE_train_00007078.jpg", "width": 683, "id": 7077, "height": 512}, {"file_name": "ADE_train_00007079.jpg", "width": 765, "id": 7078, "height": 512}, {"file_name": "ADE_train_00007080.jpg", "width": 528, "id": 7079, "height": 512}, {"file_name": "ADE_train_00007081.jpg", "width": 256, "id": 7080, "height": 256}, {"file_name": "ADE_train_00007082.jpg", "width": 256, "id": 7081, "height": 256}, {"file_name": "ADE_train_00007083.jpg", "width": 694, "id": 7082, "height": 512}, {"file_name": "ADE_train_00007084.jpg", "width": 768, "id": 7083, "height": 512}, {"file_name": "ADE_train_00007085.jpg", "width": 650, "id": 7084, "height": 424}, {"file_name": "ADE_train_00007086.jpg", "width": 597, "id": 7085, "height": 512}, {"file_name": "ADE_train_00007087.jpg", "width": 512, "id": 7086, "height": 770}, {"file_name": "ADE_train_00007088.jpg", "width": 512, "id": 7087, "height": 697}, {"file_name": "ADE_train_00007089.jpg", "width": 707, "id": 7088, "height": 512}, {"file_name": "ADE_train_00007090.jpg", "width": 256, "id": 7089, "height": 256}, {"file_name": "ADE_train_00007091.jpg", "width": 689, "id": 7090, "height": 512}, {"file_name": "ADE_train_00007092.jpg", "width": 720, "id": 7091, "height": 480}, {"file_name": "ADE_train_00007093.jpg", "width": 504, "id": 7092, "height": 337}, {"file_name": "ADE_train_00007094.jpg", "width": 768, "id": 7093, "height": 512}, {"file_name": "ADE_train_00007095.jpg", "width": 640, "id": 7094, "height": 481}, {"file_name": "ADE_train_00007096.jpg", "width": 683, "id": 7095, "height": 512}, {"file_name": "ADE_train_00007097.jpg", "width": 768, "id": 7096, "height": 512}, {"file_name": "ADE_train_00007098.jpg", "width": 683, "id": 7097, "height": 512}, {"file_name": "ADE_train_00007099.jpg", "width": 778, "id": 7098, "height": 512}, {"file_name": "ADE_train_00007100.jpg", "width": 768, "id": 7099, "height": 512}, {"file_name": "ADE_train_00007101.jpg", "width": 256, "id": 7100, "height": 256}, {"file_name": "ADE_train_00007102.jpg", "width": 573, "id": 7101, "height": 512}, {"file_name": "ADE_train_00007103.jpg", "width": 300, "id": 7102, "height": 225}, {"file_name": "ADE_train_00007104.jpg", "width": 640, "id": 7103, "height": 480}, {"file_name": "ADE_train_00007105.jpg", "width": 683, "id": 7104, "height": 512}, {"file_name": "ADE_train_00007106.jpg", "width": 256, "id": 7105, "height": 256}, {"file_name": "ADE_train_00007107.jpg", "width": 693, "id": 7106, "height": 512}, {"file_name": "ADE_train_00007108.jpg", "width": 683, "id": 7107, "height": 512}, {"file_name": "ADE_train_00007109.jpg", "width": 500, "id": 7108, "height": 307}, {"file_name": "ADE_train_00007110.jpg", "width": 256, "id": 7109, "height": 256}, {"file_name": "ADE_train_00007111.jpg", "width": 768, "id": 7110, "height": 512}, {"file_name": "ADE_train_00007112.jpg", "width": 720, "id": 7111, "height": 480}, {"file_name": "ADE_train_00007113.jpg", "width": 765, "id": 7112, "height": 512}, {"file_name": "ADE_train_00007114.jpg", "width": 256, "id": 7113, "height": 256}, {"file_name": "ADE_train_00007115.jpg", "width": 771, "id": 7114, "height": 512}, {"file_name": "ADE_train_00007116.jpg", "width": 256, "id": 7115, "height": 256}, {"file_name": "ADE_train_00007117.jpg", "width": 683, "id": 7116, "height": 512}, {"file_name": "ADE_train_00007118.jpg", "width": 256, "id": 7117, "height": 256}, {"file_name": "ADE_train_00007119.jpg", "width": 640, "id": 7118, "height": 480}, {"file_name": "ADE_train_00007120.jpg", "width": 768, "id": 7119, "height": 512}, {"file_name": "ADE_train_00007121.jpg", "width": 640, "id": 7120, "height": 480}, {"file_name": "ADE_train_00007122.jpg", "width": 765, "id": 7121, "height": 512}, {"file_name": "ADE_train_00007123.jpg", "width": 683, "id": 7122, "height": 512}, {"file_name": "ADE_train_00007124.jpg", "width": 256, "id": 7123, "height": 256}, {"file_name": "ADE_train_00007125.jpg", "width": 340, "id": 7124, "height": 255}, {"file_name": "ADE_train_00007126.jpg", "width": 256, "id": 7125, "height": 256}, {"file_name": "ADE_train_00007127.jpg", "width": 752, "id": 7126, "height": 512}, {"file_name": "ADE_train_00007128.jpg", "width": 600, "id": 7127, "height": 390}, {"file_name": "ADE_train_00007129.jpg", "width": 256, "id": 7128, "height": 256}, {"file_name": "ADE_train_00007130.jpg", "width": 640, "id": 7129, "height": 480}, {"file_name": "ADE_train_00007131.jpg", "width": 768, "id": 7130, "height": 512}, {"file_name": "ADE_train_00007132.jpg", "width": 768, "id": 7131, "height": 512}, {"file_name": "ADE_train_00007133.jpg", "width": 720, "id": 7132, "height": 480}, {"file_name": "ADE_train_00007134.jpg", "width": 720, "id": 7133, "height": 480}, {"file_name": "ADE_train_00007135.jpg", "width": 683, "id": 7134, "height": 512}, {"file_name": "ADE_train_00007136.jpg", "width": 768, "id": 7135, "height": 512}, {"file_name": "ADE_train_00007137.jpg", "width": 256, "id": 7136, "height": 256}, {"file_name": "ADE_train_00007138.jpg", "width": 765, "id": 7137, "height": 512}, {"file_name": "ADE_train_00007139.jpg", "width": 771, "id": 7138, "height": 512}, {"file_name": "ADE_train_00007140.jpg", "width": 783, "id": 7139, "height": 512}, {"file_name": "ADE_train_00007141.jpg", "width": 768, "id": 7140, "height": 512}, {"file_name": "ADE_train_00007142.jpg", "width": 693, "id": 7141, "height": 512}, {"file_name": "ADE_train_00007143.jpg", "width": 256, "id": 7142, "height": 256}, {"file_name": "ADE_train_00007144.jpg", "width": 768, "id": 7143, "height": 512}, {"file_name": "ADE_train_00007145.jpg", "width": 512, "id": 7144, "height": 674}, {"file_name": "ADE_train_00007146.jpg", "width": 640, "id": 7145, "height": 480}, {"file_name": "ADE_train_00007147.jpg", "width": 663, "id": 7146, "height": 512}, {"file_name": "ADE_train_00007148.jpg", "width": 256, "id": 7147, "height": 256}, {"file_name": "ADE_train_00007149.jpg", "width": 256, "id": 7148, "height": 256}, {"file_name": "ADE_train_00007150.jpg", "width": 768, "id": 7149, "height": 512}, {"file_name": "ADE_train_00007151.jpg", "width": 256, "id": 7150, "height": 256}, {"file_name": "ADE_train_00007152.jpg", "width": 600, "id": 7151, "height": 451}, {"file_name": "ADE_train_00007153.jpg", "width": 700, "id": 7152, "height": 460}, {"file_name": "ADE_train_00007154.jpg", "width": 600, "id": 7153, "height": 423}, {"file_name": "ADE_train_00007155.jpg", "width": 768, "id": 7154, "height": 512}, {"file_name": "ADE_train_00007156.jpg", "width": 683, "id": 7155, "height": 512}, {"file_name": "ADE_train_00007157.jpg", "width": 683, "id": 7156, "height": 512}, {"file_name": "ADE_train_00007158.jpg", "width": 683, "id": 7157, "height": 512}, {"file_name": "ADE_train_00007159.jpg", "width": 512, "id": 7158, "height": 750}, {"file_name": "ADE_train_00007160.jpg", "width": 512, "id": 7159, "height": 753}, {"file_name": "ADE_train_00007161.jpg", "width": 352, "id": 7160, "height": 224}, {"file_name": "ADE_train_00007162.jpg", "width": 683, "id": 7161, "height": 512}, {"file_name": "ADE_train_00007163.jpg", "width": 512, "id": 7162, "height": 683}, {"file_name": "ADE_train_00007164.jpg", "width": 683, "id": 7163, "height": 512}, {"file_name": "ADE_train_00007165.jpg", "width": 683, "id": 7164, "height": 512}, {"file_name": "ADE_train_00007166.jpg", "width": 683, "id": 7165, "height": 512}, {"file_name": "ADE_train_00007167.jpg", "width": 683, "id": 7166, "height": 512}, {"file_name": "ADE_train_00007168.jpg", "width": 670, "id": 7167, "height": 512}, {"file_name": "ADE_train_00007169.jpg", "width": 512, "id": 7168, "height": 683}, {"file_name": "ADE_train_00007170.jpg", "width": 512, "id": 7169, "height": 683}, {"file_name": "ADE_train_00007171.jpg", "width": 683, "id": 7170, "height": 512}, {"file_name": "ADE_train_00007172.jpg", "width": 225, "id": 7171, "height": 300}, {"file_name": "ADE_train_00007173.jpg", "width": 683, "id": 7172, "height": 512}, {"file_name": "ADE_train_00007174.jpg", "width": 648, "id": 7173, "height": 512}, {"file_name": "ADE_train_00007175.jpg", "width": 512, "id": 7174, "height": 771}, {"file_name": "ADE_train_00007176.jpg", "width": 768, "id": 7175, "height": 512}, {"file_name": "ADE_train_00007177.jpg", "width": 683, "id": 7176, "height": 512}, {"file_name": "ADE_train_00007178.jpg", "width": 681, "id": 7177, "height": 512}, {"file_name": "ADE_train_00007179.jpg", "width": 572, "id": 7178, "height": 512}, {"file_name": "ADE_train_00007180.jpg", "width": 683, "id": 7179, "height": 512}, {"file_name": "ADE_train_00007181.jpg", "width": 683, "id": 7180, "height": 512}, {"file_name": "ADE_train_00007182.jpg", "width": 683, "id": 7181, "height": 512}, {"file_name": "ADE_train_00007183.jpg", "width": 683, "id": 7182, "height": 512}, {"file_name": "ADE_train_00007184.jpg", "width": 769, "id": 7183, "height": 512}, {"file_name": "ADE_train_00007185.jpg", "width": 763, "id": 7184, "height": 512}, {"file_name": "ADE_train_00007186.jpg", "width": 683, "id": 7185, "height": 512}, {"file_name": "ADE_train_00007187.jpg", "width": 512, "id": 7186, "height": 762}, {"file_name": "ADE_train_00007188.jpg", "width": 516, "id": 7187, "height": 512}, {"file_name": "ADE_train_00007189.jpg", "width": 683, "id": 7188, "height": 512}, {"file_name": "ADE_train_00007190.jpg", "width": 512, "id": 7189, "height": 514}, {"file_name": "ADE_train_00007191.jpg", "width": 683, "id": 7190, "height": 512}, {"file_name": "ADE_train_00007192.jpg", "width": 683, "id": 7191, "height": 512}, {"file_name": "ADE_train_00007193.jpg", "width": 771, "id": 7192, "height": 512}, {"file_name": "ADE_train_00007194.jpg", "width": 683, "id": 7193, "height": 512}, {"file_name": "ADE_train_00007195.jpg", "width": 683, "id": 7194, "height": 512}, {"file_name": "ADE_train_00007196.jpg", "width": 683, "id": 7195, "height": 512}, {"file_name": "ADE_train_00007197.jpg", "width": 768, "id": 7196, "height": 512}, {"file_name": "ADE_train_00007198.jpg", "width": 683, "id": 7197, "height": 512}, {"file_name": "ADE_train_00007199.jpg", "width": 683, "id": 7198, "height": 512}, {"file_name": "ADE_train_00007200.jpg", "width": 640, "id": 7199, "height": 512}, {"file_name": "ADE_train_00007201.jpg", "width": 763, "id": 7200, "height": 512}, {"file_name": "ADE_train_00007202.jpg", "width": 683, "id": 7201, "height": 512}, {"file_name": "ADE_train_00007203.jpg", "width": 846, "id": 7202, "height": 512}, {"file_name": "ADE_train_00007204.jpg", "width": 683, "id": 7203, "height": 512}, {"file_name": "ADE_train_00007205.jpg", "width": 683, "id": 7204, "height": 512}, {"file_name": "ADE_train_00007206.jpg", "width": 683, "id": 7205, "height": 512}, {"file_name": "ADE_train_00007207.jpg", "width": 683, "id": 7206, "height": 512}, {"file_name": "ADE_train_00007208.jpg", "width": 683, "id": 7207, "height": 512}, {"file_name": "ADE_train_00007209.jpg", "width": 512, "id": 7208, "height": 683}, {"file_name": "ADE_train_00007210.jpg", "width": 683, "id": 7209, "height": 512}, {"file_name": "ADE_train_00007211.jpg", "width": 683, "id": 7210, "height": 512}, {"file_name": "ADE_train_00007212.jpg", "width": 683, "id": 7211, "height": 512}, {"file_name": "ADE_train_00007213.jpg", "width": 512, "id": 7212, "height": 683}, {"file_name": "ADE_train_00007214.jpg", "width": 683, "id": 7213, "height": 512}, {"file_name": "ADE_train_00007215.jpg", "width": 683, "id": 7214, "height": 512}, {"file_name": "ADE_train_00007216.jpg", "width": 728, "id": 7215, "height": 512}, {"file_name": "ADE_train_00007217.jpg", "width": 682, "id": 7216, "height": 512}, {"file_name": "ADE_train_00007218.jpg", "width": 512, "id": 7217, "height": 661}, {"file_name": "ADE_train_00007219.jpg", "width": 763, "id": 7218, "height": 512}, {"file_name": "ADE_train_00007220.jpg", "width": 770, "id": 7219, "height": 512}, {"file_name": "ADE_train_00007221.jpg", "width": 683, "id": 7220, "height": 512}, {"file_name": "ADE_train_00007222.jpg", "width": 512, "id": 7221, "height": 683}, {"file_name": "ADE_train_00007223.jpg", "width": 768, "id": 7222, "height": 512}, {"file_name": "ADE_train_00007224.jpg", "width": 883, "id": 7223, "height": 512}, {"file_name": "ADE_train_00007225.jpg", "width": 683, "id": 7224, "height": 512}, {"file_name": "ADE_train_00007226.jpg", "width": 683, "id": 7225, "height": 512}, {"file_name": "ADE_train_00007227.jpg", "width": 683, "id": 7226, "height": 512}, {"file_name": "ADE_train_00007228.jpg", "width": 648, "id": 7227, "height": 512}, {"file_name": "ADE_train_00007229.jpg", "width": 512, "id": 7228, "height": 683}, {"file_name": "ADE_train_00007230.jpg", "width": 512, "id": 7229, "height": 683}, {"file_name": "ADE_train_00007231.jpg", "width": 512, "id": 7230, "height": 683}, {"file_name": "ADE_train_00007232.jpg", "width": 683, "id": 7231, "height": 512}, {"file_name": "ADE_train_00007233.jpg", "width": 732, "id": 7232, "height": 512}, {"file_name": "ADE_train_00007234.jpg", "width": 512, "id": 7233, "height": 791}, {"file_name": "ADE_train_00007235.jpg", "width": 683, "id": 7234, "height": 512}, {"file_name": "ADE_train_00007236.jpg", "width": 683, "id": 7235, "height": 512}, {"file_name": "ADE_train_00007237.jpg", "width": 683, "id": 7236, "height": 512}, {"file_name": "ADE_train_00007238.jpg", "width": 850, "id": 7237, "height": 512}, {"file_name": "ADE_train_00007239.jpg", "width": 512, "id": 7238, "height": 683}, {"file_name": "ADE_train_00007240.jpg", "width": 683, "id": 7239, "height": 512}, {"file_name": "ADE_train_00007241.jpg", "width": 683, "id": 7240, "height": 512}, {"file_name": "ADE_train_00007242.jpg", "width": 512, "id": 7241, "height": 765}, {"file_name": "ADE_train_00007243.jpg", "width": 512, "id": 7242, "height": 683}, {"file_name": "ADE_train_00007244.jpg", "width": 512, "id": 7243, "height": 683}, {"file_name": "ADE_train_00007245.jpg", "width": 683, "id": 7244, "height": 512}, {"file_name": "ADE_train_00007246.jpg", "width": 683, "id": 7245, "height": 512}, {"file_name": "ADE_train_00007247.jpg", "width": 770, "id": 7246, "height": 512}, {"file_name": "ADE_train_00007248.jpg", "width": 512, "id": 7247, "height": 683}, {"file_name": "ADE_train_00007249.jpg", "width": 683, "id": 7248, "height": 512}, {"file_name": "ADE_train_00007250.jpg", "width": 732, "id": 7249, "height": 512}, {"file_name": "ADE_train_00007251.jpg", "width": 683, "id": 7250, "height": 512}, {"file_name": "ADE_train_00007252.jpg", "width": 512, "id": 7251, "height": 683}, {"file_name": "ADE_train_00007253.jpg", "width": 300, "id": 7252, "height": 225}, {"file_name": "ADE_train_00007254.jpg", "width": 683, "id": 7253, "height": 512}, {"file_name": "ADE_train_00007255.jpg", "width": 682, "id": 7254, "height": 512}, {"file_name": "ADE_train_00007256.jpg", "width": 512, "id": 7255, "height": 683}, {"file_name": "ADE_train_00007257.jpg", "width": 432, "id": 7256, "height": 576}, {"file_name": "ADE_train_00007258.jpg", "width": 683, "id": 7257, "height": 512}, {"file_name": "ADE_train_00007259.jpg", "width": 355, "id": 7258, "height": 300}, {"file_name": "ADE_train_00007260.jpg", "width": 683, "id": 7259, "height": 512}, {"file_name": "ADE_train_00007261.jpg", "width": 441, "id": 7260, "height": 329}, {"file_name": "ADE_train_00007262.jpg", "width": 683, "id": 7261, "height": 512}, {"file_name": "ADE_train_00007263.jpg", "width": 669, "id": 7262, "height": 512}, {"file_name": "ADE_train_00007264.jpg", "width": 683, "id": 7263, "height": 512}, {"file_name": "ADE_train_00007265.jpg", "width": 768, "id": 7264, "height": 512}, {"file_name": "ADE_train_00007266.jpg", "width": 415, "id": 7265, "height": 332}, {"file_name": "ADE_train_00007267.jpg", "width": 305, "id": 7266, "height": 207}, {"file_name": "ADE_train_00007268.jpg", "width": 472, "id": 7267, "height": 316}, {"file_name": "ADE_train_00007269.jpg", "width": 522, "id": 7268, "height": 417}, {"file_name": "ADE_train_00007270.jpg", "width": 683, "id": 7269, "height": 512}, {"file_name": "ADE_train_00007271.jpg", "width": 547, "id": 7270, "height": 512}, {"file_name": "ADE_train_00007272.jpg", "width": 700, "id": 7271, "height": 468}, {"file_name": "ADE_train_00007273.jpg", "width": 683, "id": 7272, "height": 512}, {"file_name": "ADE_train_00007274.jpg", "width": 469, "id": 7273, "height": 350}, {"file_name": "ADE_train_00007275.jpg", "width": 412, "id": 7274, "height": 550}, {"file_name": "ADE_train_00007276.jpg", "width": 683, "id": 7275, "height": 512}, {"file_name": "ADE_train_00007277.jpg", "width": 683, "id": 7276, "height": 512}, {"file_name": "ADE_train_00007278.jpg", "width": 683, "id": 7277, "height": 512}, {"file_name": "ADE_train_00007279.jpg", "width": 683, "id": 7278, "height": 512}, {"file_name": "ADE_train_00007280.jpg", "width": 512, "id": 7279, "height": 768}, {"file_name": "ADE_train_00007281.jpg", "width": 320, "id": 7280, "height": 240}, {"file_name": "ADE_train_00007282.jpg", "width": 773, "id": 7281, "height": 512}, {"file_name": "ADE_train_00007283.jpg", "width": 500, "id": 7282, "height": 665}, {"file_name": "ADE_train_00007284.jpg", "width": 200, "id": 7283, "height": 212}, {"file_name": "ADE_train_00007285.jpg", "width": 695, "id": 7284, "height": 512}, {"file_name": "ADE_train_00007286.jpg", "width": 639, "id": 7285, "height": 512}, {"file_name": "ADE_train_00007287.jpg", "width": 320, "id": 7286, "height": 240}, {"file_name": "ADE_train_00007288.jpg", "width": 683, "id": 7287, "height": 512}, {"file_name": "ADE_train_00007289.jpg", "width": 683, "id": 7288, "height": 512}, {"file_name": "ADE_train_00007290.jpg", "width": 350, "id": 7289, "height": 227}, {"file_name": "ADE_train_00007291.jpg", "width": 350, "id": 7290, "height": 232}, {"file_name": "ADE_train_00007292.jpg", "width": 300, "id": 7291, "height": 225}, {"file_name": "ADE_train_00007293.jpg", "width": 320, "id": 7292, "height": 240}, {"file_name": "ADE_train_00007294.jpg", "width": 300, "id": 7293, "height": 225}, {"file_name": "ADE_train_00007295.jpg", "width": 320, "id": 7294, "height": 200}, {"file_name": "ADE_train_00007296.jpg", "width": 246, "id": 7295, "height": 324}, {"file_name": "ADE_train_00007297.jpg", "width": 320, "id": 7296, "height": 240}, {"file_name": "ADE_train_00007298.jpg", "width": 356, "id": 7297, "height": 240}, {"file_name": "ADE_train_00007299.jpg", "width": 683, "id": 7298, "height": 512}, {"file_name": "ADE_train_00007300.jpg", "width": 766, "id": 7299, "height": 512}, {"file_name": "ADE_train_00007301.jpg", "width": 200, "id": 7300, "height": 200}, {"file_name": "ADE_train_00007302.jpg", "width": 261, "id": 7301, "height": 383}, {"file_name": "ADE_train_00007303.jpg", "width": 320, "id": 7302, "height": 292}, {"file_name": "ADE_train_00007304.jpg", "width": 405, "id": 7303, "height": 250}, {"file_name": "ADE_train_00007305.jpg", "width": 512, "id": 7304, "height": 790}, {"file_name": "ADE_train_00007306.jpg", "width": 250, "id": 7305, "height": 366}, {"file_name": "ADE_train_00007307.jpg", "width": 512, "id": 7306, "height": 683}, {"file_name": "ADE_train_00007308.jpg", "width": 400, "id": 7307, "height": 268}, {"file_name": "ADE_train_00007309.jpg", "width": 370, "id": 7308, "height": 575}, {"file_name": "ADE_train_00007310.jpg", "width": 683, "id": 7309, "height": 512}, {"file_name": "ADE_train_00007311.jpg", "width": 300, "id": 7310, "height": 225}, {"file_name": "ADE_train_00007312.jpg", "width": 512, "id": 7311, "height": 683}, {"file_name": "ADE_train_00007313.jpg", "width": 683, "id": 7312, "height": 512}, {"file_name": "ADE_train_00007314.jpg", "width": 683, "id": 7313, "height": 512}, {"file_name": "ADE_train_00007315.jpg", "width": 376, "id": 7314, "height": 282}, {"file_name": "ADE_train_00007316.jpg", "width": 640, "id": 7315, "height": 480}, {"file_name": "ADE_train_00007317.jpg", "width": 450, "id": 7316, "height": 600}, {"file_name": "ADE_train_00007318.jpg", "width": 461, "id": 7317, "height": 691}, {"file_name": "ADE_train_00007319.jpg", "width": 480, "id": 7318, "height": 640}, {"file_name": "ADE_train_00007320.jpg", "width": 500, "id": 7319, "height": 598}, {"file_name": "ADE_train_00007321.jpg", "width": 375, "id": 7320, "height": 500}, {"file_name": "ADE_train_00007322.jpg", "width": 195, "id": 7321, "height": 243}, {"file_name": "ADE_train_00007323.jpg", "width": 447, "id": 7322, "height": 599}, {"file_name": "ADE_train_00007324.jpg", "width": 250, "id": 7323, "height": 230}, {"file_name": "ADE_train_00007325.jpg", "width": 432, "id": 7324, "height": 324}, {"file_name": "ADE_train_00007326.jpg", "width": 512, "id": 7325, "height": 769}, {"file_name": "ADE_train_00007327.jpg", "width": 300, "id": 7326, "height": 414}, {"file_name": "ADE_train_00007328.jpg", "width": 512, "id": 7327, "height": 683}, {"file_name": "ADE_train_00007329.jpg", "width": 263, "id": 7328, "height": 350}, {"file_name": "ADE_train_00007330.jpg", "width": 410, "id": 7329, "height": 326}, {"file_name": "ADE_train_00007331.jpg", "width": 314, "id": 7330, "height": 469}, {"file_name": "ADE_train_00007332.jpg", "width": 288, "id": 7331, "height": 450}, {"file_name": "ADE_train_00007333.jpg", "width": 500, "id": 7332, "height": 750}, {"file_name": "ADE_train_00007334.jpg", "width": 512, "id": 7333, "height": 683}, {"file_name": "ADE_train_00007335.jpg", "width": 336, "id": 7334, "height": 448}, {"file_name": "ADE_train_00007336.jpg", "width": 300, "id": 7335, "height": 300}, {"file_name": "ADE_train_00007337.jpg", "width": 512, "id": 7336, "height": 585}, {"file_name": "ADE_train_00007338.jpg", "width": 300, "id": 7337, "height": 225}, {"file_name": "ADE_train_00007339.jpg", "width": 512, "id": 7338, "height": 765}, {"file_name": "ADE_train_00007340.jpg", "width": 512, "id": 7339, "height": 772}, {"file_name": "ADE_train_00007341.jpg", "width": 287, "id": 7340, "height": 428}, {"file_name": "ADE_train_00007342.jpg", "width": 196, "id": 7341, "height": 255}, {"file_name": "ADE_train_00007343.jpg", "width": 600, "id": 7342, "height": 450}, {"file_name": "ADE_train_00007344.jpg", "width": 640, "id": 7343, "height": 475}, {"file_name": "ADE_train_00007345.jpg", "width": 256, "id": 7344, "height": 256}, {"file_name": "ADE_train_00007346.jpg", "width": 256, "id": 7345, "height": 384}, {"file_name": "ADE_train_00007347.jpg", "width": 256, "id": 7346, "height": 256}, {"file_name": "ADE_train_00007348.jpg", "width": 352, "id": 7347, "height": 281}, {"file_name": "ADE_train_00007349.jpg", "width": 256, "id": 7348, "height": 384}, {"file_name": "ADE_train_00007350.jpg", "width": 224, "id": 7349, "height": 300}, {"file_name": "ADE_train_00007351.jpg", "width": 256, "id": 7350, "height": 384}, {"file_name": "ADE_train_00007352.jpg", "width": 521, "id": 7351, "height": 348}, {"file_name": "ADE_train_00007353.jpg", "width": 660, "id": 7352, "height": 395}, {"file_name": "ADE_train_00007354.jpg", "width": 256, "id": 7353, "height": 384}, {"file_name": "ADE_train_00007355.jpg", "width": 333, "id": 7354, "height": 501}, {"file_name": "ADE_train_00007356.jpg", "width": 315, "id": 7355, "height": 215}, {"file_name": "ADE_train_00007357.jpg", "width": 400, "id": 7356, "height": 300}, {"file_name": "ADE_train_00007358.jpg", "width": 300, "id": 7357, "height": 253}, {"file_name": "ADE_train_00007359.jpg", "width": 500, "id": 7358, "height": 607}, {"file_name": "ADE_train_00007360.jpg", "width": 300, "id": 7359, "height": 199}, {"file_name": "ADE_train_00007361.jpg", "width": 400, "id": 7360, "height": 300}, {"file_name": "ADE_train_00007362.jpg", "width": 320, "id": 7361, "height": 240}, {"file_name": "ADE_train_00007363.jpg", "width": 440, "id": 7362, "height": 300}, {"file_name": "ADE_train_00007364.jpg", "width": 205, "id": 7363, "height": 300}, {"file_name": "ADE_train_00007365.jpg", "width": 300, "id": 7364, "height": 301}, {"file_name": "ADE_train_00007366.jpg", "width": 450, "id": 7365, "height": 301}, {"file_name": "ADE_train_00007367.jpg", "width": 380, "id": 7366, "height": 266}, {"file_name": "ADE_train_00007368.jpg", "width": 683, "id": 7367, "height": 512}, {"file_name": "ADE_train_00007369.jpg", "width": 400, "id": 7368, "height": 300}, {"file_name": "ADE_train_00007370.jpg", "width": 500, "id": 7369, "height": 444}, {"file_name": "ADE_train_00007371.jpg", "width": 797, "id": 7370, "height": 512}, {"file_name": "ADE_train_00007372.jpg", "width": 400, "id": 7371, "height": 300}, {"file_name": "ADE_train_00007373.jpg", "width": 350, "id": 7372, "height": 228}, {"file_name": "ADE_train_00007374.jpg", "width": 756, "id": 7373, "height": 504}, {"file_name": "ADE_train_00007375.jpg", "width": 512, "id": 7374, "height": 683}, {"file_name": "ADE_train_00007376.jpg", "width": 683, "id": 7375, "height": 512}, {"file_name": "ADE_train_00007377.jpg", "width": 683, "id": 7376, "height": 512}, {"file_name": "ADE_train_00007378.jpg", "width": 683, "id": 7377, "height": 512}, {"file_name": "ADE_train_00007379.jpg", "width": 683, "id": 7378, "height": 512}, {"file_name": "ADE_train_00007380.jpg", "width": 683, "id": 7379, "height": 512}, {"file_name": "ADE_train_00007381.jpg", "width": 683, "id": 7380, "height": 512}, {"file_name": "ADE_train_00007382.jpg", "width": 683, "id": 7381, "height": 512}, {"file_name": "ADE_train_00007383.jpg", "width": 683, "id": 7382, "height": 512}, {"file_name": "ADE_train_00007384.jpg", "width": 512, "id": 7383, "height": 683}, {"file_name": "ADE_train_00007385.jpg", "width": 683, "id": 7384, "height": 512}, {"file_name": "ADE_train_00007386.jpg", "width": 684, "id": 7385, "height": 512}, {"file_name": "ADE_train_00007387.jpg", "width": 683, "id": 7386, "height": 512}, {"file_name": "ADE_train_00007388.jpg", "width": 768, "id": 7387, "height": 512}, {"file_name": "ADE_train_00007389.jpg", "width": 719, "id": 7388, "height": 512}, {"file_name": "ADE_train_00007390.jpg", "width": 683, "id": 7389, "height": 512}, {"file_name": "ADE_train_00007391.jpg", "width": 512, "id": 7390, "height": 683}, {"file_name": "ADE_train_00007392.jpg", "width": 768, "id": 7391, "height": 512}, {"file_name": "ADE_train_00007393.jpg", "width": 683, "id": 7392, "height": 512}, {"file_name": "ADE_train_00007394.jpg", "width": 683, "id": 7393, "height": 512}, {"file_name": "ADE_train_00007395.jpg", "width": 683, "id": 7394, "height": 512}, {"file_name": "ADE_train_00007396.jpg", "width": 683, "id": 7395, "height": 512}, {"file_name": "ADE_train_00007397.jpg", "width": 768, "id": 7396, "height": 512}, {"file_name": "ADE_train_00007398.jpg", "width": 683, "id": 7397, "height": 512}, {"file_name": "ADE_train_00007399.jpg", "width": 512, "id": 7398, "height": 683}, {"file_name": "ADE_train_00007400.jpg", "width": 683, "id": 7399, "height": 512}, {"file_name": "ADE_train_00007401.jpg", "width": 640, "id": 7400, "height": 512}, {"file_name": "ADE_train_00007402.jpg", "width": 512, "id": 7401, "height": 683}, {"file_name": "ADE_train_00007403.jpg", "width": 512, "id": 7402, "height": 683}, {"file_name": "ADE_train_00007404.jpg", "width": 683, "id": 7403, "height": 512}, {"file_name": "ADE_train_00007405.jpg", "width": 683, "id": 7404, "height": 512}, {"file_name": "ADE_train_00007406.jpg", "width": 512, "id": 7405, "height": 758}, {"file_name": "ADE_train_00007407.jpg", "width": 683, "id": 7406, "height": 512}, {"file_name": "ADE_train_00007408.jpg", "width": 683, "id": 7407, "height": 512}, {"file_name": "ADE_train_00007409.jpg", "width": 683, "id": 7408, "height": 512}, {"file_name": "ADE_train_00007410.jpg", "width": 683, "id": 7409, "height": 512}, {"file_name": "ADE_train_00007411.jpg", "width": 770, "id": 7410, "height": 512}, {"file_name": "ADE_train_00007412.jpg", "width": 683, "id": 7411, "height": 512}, {"file_name": "ADE_train_00007413.jpg", "width": 512, "id": 7412, "height": 750}, {"file_name": "ADE_train_00007414.jpg", "width": 683, "id": 7413, "height": 512}, {"file_name": "ADE_train_00007415.jpg", "width": 768, "id": 7414, "height": 512}, {"file_name": "ADE_train_00007416.jpg", "width": 683, "id": 7415, "height": 512}, {"file_name": "ADE_train_00007417.jpg", "width": 314, "id": 7416, "height": 214}, {"file_name": "ADE_train_00007418.jpg", "width": 600, "id": 7417, "height": 400}, {"file_name": "ADE_train_00007419.jpg", "width": 560, "id": 7418, "height": 420}, {"file_name": "ADE_train_00007420.jpg", "width": 375, "id": 7419, "height": 500}, {"file_name": "ADE_train_00007421.jpg", "width": 512, "id": 7420, "height": 607}, {"file_name": "ADE_train_00007422.jpg", "width": 256, "id": 7421, "height": 256}, {"file_name": "ADE_train_00007423.jpg", "width": 443, "id": 7422, "height": 226}, {"file_name": "ADE_train_00007424.jpg", "width": 512, "id": 7423, "height": 683}, {"file_name": "ADE_train_00007425.jpg", "width": 683, "id": 7424, "height": 512}, {"file_name": "ADE_train_00007426.jpg", "width": 683, "id": 7425, "height": 512}, {"file_name": "ADE_train_00007427.jpg", "width": 456, "id": 7426, "height": 300}, {"file_name": "ADE_train_00007428.jpg", "width": 683, "id": 7427, "height": 512}, {"file_name": "ADE_train_00007429.jpg", "width": 430, "id": 7428, "height": 255}, {"file_name": "ADE_train_00007430.jpg", "width": 735, "id": 7429, "height": 512}, {"file_name": "ADE_train_00007431.jpg", "width": 558, "id": 7430, "height": 437}, {"file_name": "ADE_train_00007432.jpg", "width": 280, "id": 7431, "height": 200}, {"file_name": "ADE_train_00007433.jpg", "width": 538, "id": 7432, "height": 359}, {"file_name": "ADE_train_00007434.jpg", "width": 250, "id": 7433, "height": 333}, {"file_name": "ADE_train_00007435.jpg", "width": 683, "id": 7434, "height": 512}, {"file_name": "ADE_train_00007436.jpg", "width": 510, "id": 7435, "height": 339}, {"file_name": "ADE_train_00007437.jpg", "width": 768, "id": 7436, "height": 512}, {"file_name": "ADE_train_00007438.jpg", "width": 567, "id": 7437, "height": 377}, {"file_name": "ADE_train_00007439.jpg", "width": 300, "id": 7438, "height": 225}, {"file_name": "ADE_train_00007440.jpg", "width": 320, "id": 7439, "height": 240}, {"file_name": "ADE_train_00007441.jpg", "width": 683, "id": 7440, "height": 512}, {"file_name": "ADE_train_00007442.jpg", "width": 512, "id": 7441, "height": 683}, {"file_name": "ADE_train_00007443.jpg", "width": 250, "id": 7442, "height": 251}, {"file_name": "ADE_train_00007444.jpg", "width": 512, "id": 7443, "height": 683}, {"file_name": "ADE_train_00007445.jpg", "width": 676, "id": 7444, "height": 512}, {"file_name": "ADE_train_00007446.jpg", "width": 642, "id": 7445, "height": 512}, {"file_name": "ADE_train_00007447.jpg", "width": 512, "id": 7446, "height": 682}, {"file_name": "ADE_train_00007448.jpg", "width": 609, "id": 7447, "height": 512}, {"file_name": "ADE_train_00007449.jpg", "width": 517, "id": 7448, "height": 512}, {"file_name": "ADE_train_00007450.jpg", "width": 350, "id": 7449, "height": 243}, {"file_name": "ADE_train_00007451.jpg", "width": 300, "id": 7450, "height": 225}, {"file_name": "ADE_train_00007452.jpg", "width": 512, "id": 7451, "height": 770}, {"file_name": "ADE_train_00007453.jpg", "width": 512, "id": 7452, "height": 683}, {"file_name": "ADE_train_00007454.jpg", "width": 512, "id": 7453, "height": 683}, {"file_name": "ADE_train_00007455.jpg", "width": 683, "id": 7454, "height": 512}, {"file_name": "ADE_train_00007456.jpg", "width": 683, "id": 7455, "height": 512}, {"file_name": "ADE_train_00007457.jpg", "width": 683, "id": 7456, "height": 512}, {"file_name": "ADE_train_00007458.jpg", "width": 683, "id": 7457, "height": 512}, {"file_name": "ADE_train_00007459.jpg", "width": 683, "id": 7458, "height": 512}, {"file_name": "ADE_train_00007460.jpg", "width": 683, "id": 7459, "height": 512}, {"file_name": "ADE_train_00007461.jpg", "width": 683, "id": 7460, "height": 512}, {"file_name": "ADE_train_00007462.jpg", "width": 320, "id": 7461, "height": 240}, {"file_name": "ADE_train_00007463.jpg", "width": 683, "id": 7462, "height": 512}, {"file_name": "ADE_train_00007464.jpg", "width": 768, "id": 7463, "height": 512}, {"file_name": "ADE_train_00007465.jpg", "width": 320, "id": 7464, "height": 240}, {"file_name": "ADE_train_00007466.jpg", "width": 1414, "id": 7465, "height": 512}, {"file_name": "ADE_train_00007467.jpg", "width": 824, "id": 7466, "height": 512}, {"file_name": "ADE_train_00007468.jpg", "width": 468, "id": 7467, "height": 455}, {"file_name": "ADE_train_00007469.jpg", "width": 683, "id": 7468, "height": 512}, {"file_name": "ADE_train_00007470.jpg", "width": 350, "id": 7469, "height": 249}, {"file_name": "ADE_train_00007471.jpg", "width": 512, "id": 7470, "height": 682}, {"file_name": "ADE_train_00007472.jpg", "width": 740, "id": 7471, "height": 512}, {"file_name": "ADE_train_00007473.jpg", "width": 300, "id": 7472, "height": 400}, {"file_name": "ADE_train_00007474.jpg", "width": 320, "id": 7473, "height": 250}, {"file_name": "ADE_train_00007475.jpg", "width": 683, "id": 7474, "height": 512}, {"file_name": "ADE_train_00007476.jpg", "width": 400, "id": 7475, "height": 300}, {"file_name": "ADE_train_00007477.jpg", "width": 269, "id": 7476, "height": 269}, {"file_name": "ADE_train_00007478.jpg", "width": 683, "id": 7477, "height": 512}, {"file_name": "ADE_train_00007479.jpg", "width": 516, "id": 7478, "height": 512}, {"file_name": "ADE_train_00007480.jpg", "width": 300, "id": 7479, "height": 227}, {"file_name": "ADE_train_00007481.jpg", "width": 209, "id": 7480, "height": 314}, {"file_name": "ADE_train_00007482.jpg", "width": 300, "id": 7481, "height": 223}, {"file_name": "ADE_train_00007483.jpg", "width": 640, "id": 7482, "height": 480}, {"file_name": "ADE_train_00007484.jpg", "width": 300, "id": 7483, "height": 200}, {"file_name": "ADE_train_00007485.jpg", "width": 286, "id": 7484, "height": 215}, {"file_name": "ADE_train_00007486.jpg", "width": 768, "id": 7485, "height": 512}, {"file_name": "ADE_train_00007487.jpg", "width": 512, "id": 7486, "height": 683}, {"file_name": "ADE_train_00007488.jpg", "width": 650, "id": 7487, "height": 512}, {"file_name": "ADE_train_00007489.jpg", "width": 683, "id": 7488, "height": 512}, {"file_name": "ADE_train_00007490.jpg", "width": 425, "id": 7489, "height": 306}, {"file_name": "ADE_train_00007491.jpg", "width": 768, "id": 7490, "height": 512}, {"file_name": "ADE_train_00007492.jpg", "width": 586, "id": 7491, "height": 440}, {"file_name": "ADE_train_00007493.jpg", "width": 398, "id": 7492, "height": 260}, {"file_name": "ADE_train_00007494.jpg", "width": 550, "id": 7493, "height": 412}, {"file_name": "ADE_train_00007495.jpg", "width": 500, "id": 7494, "height": 375}, {"file_name": "ADE_train_00007496.jpg", "width": 600, "id": 7495, "height": 450}, {"file_name": "ADE_train_00007497.jpg", "width": 415, "id": 7496, "height": 276}, {"file_name": "ADE_train_00007498.jpg", "width": 683, "id": 7497, "height": 512}, {"file_name": "ADE_train_00007499.jpg", "width": 683, "id": 7498, "height": 512}, {"file_name": "ADE_train_00007500.jpg", "width": 450, "id": 7499, "height": 283}, {"file_name": "ADE_train_00007501.jpg", "width": 525, "id": 7500, "height": 350}, {"file_name": "ADE_train_00007502.jpg", "width": 600, "id": 7501, "height": 407}, {"file_name": "ADE_train_00007503.jpg", "width": 399, "id": 7502, "height": 280}, {"file_name": "ADE_train_00007504.jpg", "width": 450, "id": 7503, "height": 300}, {"file_name": "ADE_train_00007505.jpg", "width": 400, "id": 7504, "height": 267}, {"file_name": "ADE_train_00007506.jpg", "width": 640, "id": 7505, "height": 512}, {"file_name": "ADE_train_00007507.jpg", "width": 683, "id": 7506, "height": 512}, {"file_name": "ADE_train_00007508.jpg", "width": 683, "id": 7507, "height": 512}, {"file_name": "ADE_train_00007509.jpg", "width": 683, "id": 7508, "height": 512}, {"file_name": "ADE_train_00007510.jpg", "width": 683, "id": 7509, "height": 512}, {"file_name": "ADE_train_00007511.jpg", "width": 750, "id": 7510, "height": 512}, {"file_name": "ADE_train_00007512.jpg", "width": 259, "id": 7511, "height": 380}, {"file_name": "ADE_train_00007513.jpg", "width": 755, "id": 7512, "height": 512}, {"file_name": "ADE_train_00007514.jpg", "width": 741, "id": 7513, "height": 512}, {"file_name": "ADE_train_00007515.jpg", "width": 276, "id": 7514, "height": 389}, {"file_name": "ADE_train_00007516.jpg", "width": 325, "id": 7515, "height": 441}, {"file_name": "ADE_train_00007517.jpg", "width": 492, "id": 7516, "height": 390}, {"file_name": "ADE_train_00007518.jpg", "width": 360, "id": 7517, "height": 332}, {"file_name": "ADE_train_00007519.jpg", "width": 512, "id": 7518, "height": 683}, {"file_name": "ADE_train_00007520.jpg", "width": 300, "id": 7519, "height": 300}, {"file_name": "ADE_train_00007521.jpg", "width": 420, "id": 7520, "height": 314}, {"file_name": "ADE_train_00007522.jpg", "width": 640, "id": 7521, "height": 480}, {"file_name": "ADE_train_00007523.jpg", "width": 500, "id": 7522, "height": 394}, {"file_name": "ADE_train_00007524.jpg", "width": 683, "id": 7523, "height": 512}, {"file_name": "ADE_train_00007525.jpg", "width": 295, "id": 7524, "height": 222}, {"file_name": "ADE_train_00007526.jpg", "width": 762, "id": 7525, "height": 512}, {"file_name": "ADE_train_00007527.jpg", "width": 512, "id": 7526, "height": 768}, {"file_name": "ADE_train_00007528.jpg", "width": 300, "id": 7527, "height": 212}, {"file_name": "ADE_train_00007529.jpg", "width": 912, "id": 7528, "height": 512}, {"file_name": "ADE_train_00007530.jpg", "width": 512, "id": 7529, "height": 683}, {"file_name": "ADE_train_00007531.jpg", "width": 512, "id": 7530, "height": 640}, {"file_name": "ADE_train_00007532.jpg", "width": 260, "id": 7531, "height": 347}, {"file_name": "ADE_train_00007533.jpg", "width": 512, "id": 7532, "height": 683}, {"file_name": "ADE_train_00007534.jpg", "width": 253, "id": 7533, "height": 221}, {"file_name": "ADE_train_00007535.jpg", "width": 683, "id": 7534, "height": 512}, {"file_name": "ADE_train_00007536.jpg", "width": 390, "id": 7535, "height": 580}, {"file_name": "ADE_train_00007537.jpg", "width": 643, "id": 7536, "height": 498}, {"file_name": "ADE_train_00007538.jpg", "width": 479, "id": 7537, "height": 600}, {"file_name": "ADE_train_00007539.jpg", "width": 768, "id": 7538, "height": 512}, {"file_name": "ADE_train_00007540.jpg", "width": 247, "id": 7539, "height": 350}, {"file_name": "ADE_train_00007541.jpg", "width": 240, "id": 7540, "height": 301}, {"file_name": "ADE_train_00007542.jpg", "width": 400, "id": 7541, "height": 533}, {"file_name": "ADE_train_00007543.jpg", "width": 400, "id": 7542, "height": 367}, {"file_name": "ADE_train_00007544.jpg", "width": 910, "id": 7543, "height": 512}, {"file_name": "ADE_train_00007545.jpg", "width": 240, "id": 7544, "height": 240}, {"file_name": "ADE_train_00007546.jpg", "width": 500, "id": 7545, "height": 375}, {"file_name": "ADE_train_00007547.jpg", "width": 640, "id": 7546, "height": 480}, {"file_name": "ADE_train_00007548.jpg", "width": 432, "id": 7547, "height": 324}, {"file_name": "ADE_train_00007549.jpg", "width": 300, "id": 7548, "height": 225}, {"file_name": "ADE_train_00007550.jpg", "width": 247, "id": 7549, "height": 329}, {"file_name": "ADE_train_00007551.jpg", "width": 317, "id": 7550, "height": 400}, {"file_name": "ADE_train_00007552.jpg", "width": 512, "id": 7551, "height": 700}, {"file_name": "ADE_train_00007553.jpg", "width": 512, "id": 7552, "height": 682}, {"file_name": "ADE_train_00007554.jpg", "width": 338, "id": 7553, "height": 306}, {"file_name": "ADE_train_00007555.jpg", "width": 400, "id": 7554, "height": 600}, {"file_name": "ADE_train_00007556.jpg", "width": 300, "id": 7555, "height": 400}, {"file_name": "ADE_train_00007557.jpg", "width": 250, "id": 7556, "height": 309}, {"file_name": "ADE_train_00007558.jpg", "width": 294, "id": 7557, "height": 414}, {"file_name": "ADE_train_00007559.jpg", "width": 400, "id": 7558, "height": 660}, {"file_name": "ADE_train_00007560.jpg", "width": 683, "id": 7559, "height": 512}, {"file_name": "ADE_train_00007561.jpg", "width": 500, "id": 7560, "height": 666}, {"file_name": "ADE_train_00007562.jpg", "width": 260, "id": 7561, "height": 325}, {"file_name": "ADE_train_00007563.jpg", "width": 482, "id": 7562, "height": 724}, {"file_name": "ADE_train_00007564.jpg", "width": 640, "id": 7563, "height": 277}, {"file_name": "ADE_train_00007565.jpg", "width": 512, "id": 7564, "height": 683}, {"file_name": "ADE_train_00007566.jpg", "width": 425, "id": 7565, "height": 318}, {"file_name": "ADE_train_00007567.jpg", "width": 500, "id": 7566, "height": 324}, {"file_name": "ADE_train_00007568.jpg", "width": 300, "id": 7567, "height": 300}, {"file_name": "ADE_train_00007569.jpg", "width": 250, "id": 7568, "height": 207}, {"file_name": "ADE_train_00007570.jpg", "width": 768, "id": 7569, "height": 512}, {"file_name": "ADE_train_00007571.jpg", "width": 615, "id": 7570, "height": 512}, {"file_name": "ADE_train_00007572.jpg", "width": 662, "id": 7571, "height": 512}, {"file_name": "ADE_train_00007573.jpg", "width": 512, "id": 7572, "height": 683}, {"file_name": "ADE_train_00007574.jpg", "width": 683, "id": 7573, "height": 512}, {"file_name": "ADE_train_00007575.jpg", "width": 768, "id": 7574, "height": 512}, {"file_name": "ADE_train_00007576.jpg", "width": 400, "id": 7575, "height": 300}, {"file_name": "ADE_train_00007577.jpg", "width": 690, "id": 7576, "height": 512}, {"file_name": "ADE_train_00007578.jpg", "width": 630, "id": 7577, "height": 420}, {"file_name": "ADE_train_00007579.jpg", "width": 200, "id": 7578, "height": 267}, {"file_name": "ADE_train_00007580.jpg", "width": 479, "id": 7579, "height": 473}, {"file_name": "ADE_train_00007581.jpg", "width": 768, "id": 7580, "height": 512}, {"file_name": "ADE_train_00007582.jpg", "width": 683, "id": 7581, "height": 512}, {"file_name": "ADE_train_00007583.jpg", "width": 300, "id": 7582, "height": 225}, {"file_name": "ADE_train_00007584.jpg", "width": 640, "id": 7583, "height": 427}, {"file_name": "ADE_train_00007585.jpg", "width": 683, "id": 7584, "height": 512}, {"file_name": "ADE_train_00007586.jpg", "width": 200, "id": 7585, "height": 267}, {"file_name": "ADE_train_00007587.jpg", "width": 759, "id": 7586, "height": 512}, {"file_name": "ADE_train_00007588.jpg", "width": 683, "id": 7587, "height": 512}, {"file_name": "ADE_train_00007589.jpg", "width": 683, "id": 7588, "height": 512}, {"file_name": "ADE_train_00007590.jpg", "width": 683, "id": 7589, "height": 512}, {"file_name": "ADE_train_00007591.jpg", "width": 275, "id": 7590, "height": 206}, {"file_name": "ADE_train_00007592.jpg", "width": 683, "id": 7591, "height": 512}, {"file_name": "ADE_train_00007593.jpg", "width": 683, "id": 7592, "height": 512}, {"file_name": "ADE_train_00007594.jpg", "width": 320, "id": 7593, "height": 240}, {"file_name": "ADE_train_00007595.jpg", "width": 300, "id": 7594, "height": 225}, {"file_name": "ADE_train_00007596.jpg", "width": 684, "id": 7595, "height": 512}, {"file_name": "ADE_train_00007597.jpg", "width": 512, "id": 7596, "height": 601}, {"file_name": "ADE_train_00007598.jpg", "width": 765, "id": 7597, "height": 512}, {"file_name": "ADE_train_00007599.jpg", "width": 300, "id": 7598, "height": 225}, {"file_name": "ADE_train_00007600.jpg", "width": 330, "id": 7599, "height": 284}, {"file_name": "ADE_train_00007601.jpg", "width": 400, "id": 7600, "height": 465}, {"file_name": "ADE_train_00007602.jpg", "width": 300, "id": 7601, "height": 225}, {"file_name": "ADE_train_00007603.jpg", "width": 616, "id": 7602, "height": 462}, {"file_name": "ADE_train_00007604.jpg", "width": 250, "id": 7603, "height": 167}, {"file_name": "ADE_train_00007605.jpg", "width": 360, "id": 7604, "height": 270}, {"file_name": "ADE_train_00007606.jpg", "width": 683, "id": 7605, "height": 512}, {"file_name": "ADE_train_00007607.jpg", "width": 260, "id": 7606, "height": 200}, {"file_name": "ADE_train_00007608.jpg", "width": 400, "id": 7607, "height": 320}, {"file_name": "ADE_train_00007609.jpg", "width": 256, "id": 7608, "height": 325}, {"file_name": "ADE_train_00007610.jpg", "width": 320, "id": 7609, "height": 240}, {"file_name": "ADE_train_00007611.jpg", "width": 290, "id": 7610, "height": 469}, {"file_name": "ADE_train_00007612.jpg", "width": 164, "id": 7611, "height": 216}, {"file_name": "ADE_train_00007613.jpg", "width": 512, "id": 7612, "height": 768}, {"file_name": "ADE_train_00007614.jpg", "width": 477, "id": 7613, "height": 599}, {"file_name": "ADE_train_00007615.jpg", "width": 300, "id": 7614, "height": 371}, {"file_name": "ADE_train_00007616.jpg", "width": 512, "id": 7615, "height": 517}, {"file_name": "ADE_train_00007617.jpg", "width": 340, "id": 7616, "height": 510}, {"file_name": "ADE_train_00007618.jpg", "width": 300, "id": 7617, "height": 225}, {"file_name": "ADE_train_00007619.jpg", "width": 480, "id": 7618, "height": 640}, {"file_name": "ADE_train_00007620.jpg", "width": 740, "id": 7619, "height": 512}, {"file_name": "ADE_train_00007621.jpg", "width": 512, "id": 7620, "height": 755}, {"file_name": "ADE_train_00007622.jpg", "width": 770, "id": 7621, "height": 512}, {"file_name": "ADE_train_00007623.jpg", "width": 500, "id": 7622, "height": 366}, {"file_name": "ADE_train_00007624.jpg", "width": 375, "id": 7623, "height": 500}, {"file_name": "ADE_train_00007625.jpg", "width": 500, "id": 7624, "height": 333}, {"file_name": "ADE_train_00007626.jpg", "width": 512, "id": 7625, "height": 683}, {"file_name": "ADE_train_00007627.jpg", "width": 512, "id": 7626, "height": 683}, {"file_name": "ADE_train_00007628.jpg", "width": 200, "id": 7627, "height": 238}, {"file_name": "ADE_train_00007629.jpg", "width": 474, "id": 7628, "height": 718}, {"file_name": "ADE_train_00007630.jpg", "width": 512, "id": 7629, "height": 683}, {"file_name": "ADE_train_00007631.jpg", "width": 762, "id": 7630, "height": 512}, {"file_name": "ADE_train_00007632.jpg", "width": 225, "id": 7631, "height": 300}, {"file_name": "ADE_train_00007633.jpg", "width": 512, "id": 7632, "height": 683}, {"file_name": "ADE_train_00007634.jpg", "width": 512, "id": 7633, "height": 683}, {"file_name": "ADE_train_00007635.jpg", "width": 268, "id": 7634, "height": 396}, {"file_name": "ADE_train_00007636.jpg", "width": 683, "id": 7635, "height": 512}, {"file_name": "ADE_train_00007637.jpg", "width": 683, "id": 7636, "height": 512}, {"file_name": "ADE_train_00007638.jpg", "width": 657, "id": 7637, "height": 431}, {"file_name": "ADE_train_00007639.jpg", "width": 300, "id": 7638, "height": 302}, {"file_name": "ADE_train_00007640.jpg", "width": 241, "id": 7639, "height": 216}, {"file_name": "ADE_train_00007641.jpg", "width": 683, "id": 7640, "height": 512}, {"file_name": "ADE_train_00007642.jpg", "width": 250, "id": 7641, "height": 188}, {"file_name": "ADE_train_00007643.jpg", "width": 683, "id": 7642, "height": 512}, {"file_name": "ADE_train_00007644.jpg", "width": 640, "id": 7643, "height": 480}, {"file_name": "ADE_train_00007645.jpg", "width": 683, "id": 7644, "height": 512}, {"file_name": "ADE_train_00007646.jpg", "width": 420, "id": 7645, "height": 224}, {"file_name": "ADE_train_00007647.jpg", "width": 683, "id": 7646, "height": 512}, {"file_name": "ADE_train_00007648.jpg", "width": 683, "id": 7647, "height": 512}, {"file_name": "ADE_train_00007649.jpg", "width": 512, "id": 7648, "height": 768}, {"file_name": "ADE_train_00007650.jpg", "width": 683, "id": 7649, "height": 512}, {"file_name": "ADE_train_00007651.jpg", "width": 683, "id": 7650, "height": 512}, {"file_name": "ADE_train_00007652.jpg", "width": 309, "id": 7651, "height": 269}, {"file_name": "ADE_train_00007653.jpg", "width": 576, "id": 7652, "height": 353}, {"file_name": "ADE_train_00007654.jpg", "width": 300, "id": 7653, "height": 198}, {"file_name": "ADE_train_00007655.jpg", "width": 300, "id": 7654, "height": 300}, {"file_name": "ADE_train_00007656.jpg", "width": 534, "id": 7655, "height": 338}, {"file_name": "ADE_train_00007657.jpg", "width": 300, "id": 7656, "height": 225}, {"file_name": "ADE_train_00007658.jpg", "width": 512, "id": 7657, "height": 683}, {"file_name": "ADE_train_00007659.jpg", "width": 288, "id": 7658, "height": 192}, {"file_name": "ADE_train_00007660.jpg", "width": 480, "id": 7659, "height": 409}, {"file_name": "ADE_train_00007661.jpg", "width": 683, "id": 7660, "height": 512}, {"file_name": "ADE_train_00007662.jpg", "width": 683, "id": 7661, "height": 512}, {"file_name": "ADE_train_00007663.jpg", "width": 683, "id": 7662, "height": 512}, {"file_name": "ADE_train_00007664.jpg", "width": 310, "id": 7663, "height": 233}, {"file_name": "ADE_train_00007665.jpg", "width": 640, "id": 7664, "height": 480}, {"file_name": "ADE_train_00007666.jpg", "width": 394, "id": 7665, "height": 261}, {"file_name": "ADE_train_00007667.jpg", "width": 816, "id": 7666, "height": 512}, {"file_name": "ADE_train_00007668.jpg", "width": 512, "id": 7667, "height": 517}, {"file_name": "ADE_train_00007669.jpg", "width": 683, "id": 7668, "height": 512}, {"file_name": "ADE_train_00007670.jpg", "width": 768, "id": 7669, "height": 512}, {"file_name": "ADE_train_00007671.jpg", "width": 771, "id": 7670, "height": 512}, {"file_name": "ADE_train_00007672.jpg", "width": 679, "id": 7671, "height": 512}, {"file_name": "ADE_train_00007673.jpg", "width": 360, "id": 7672, "height": 270}, {"file_name": "ADE_train_00007674.jpg", "width": 683, "id": 7673, "height": 512}, {"file_name": "ADE_train_00007675.jpg", "width": 392, "id": 7674, "height": 200}, {"file_name": "ADE_train_00007676.jpg", "width": 702, "id": 7675, "height": 512}, {"file_name": "ADE_train_00007677.jpg", "width": 543, "id": 7676, "height": 512}, {"file_name": "ADE_train_00007678.jpg", "width": 319, "id": 7677, "height": 239}, {"file_name": "ADE_train_00007679.jpg", "width": 300, "id": 7678, "height": 225}, {"file_name": "ADE_train_00007680.jpg", "width": 512, "id": 7679, "height": 683}, {"file_name": "ADE_train_00007681.jpg", "width": 683, "id": 7680, "height": 512}, {"file_name": "ADE_train_00007682.jpg", "width": 722, "id": 7681, "height": 512}, {"file_name": "ADE_train_00007683.jpg", "width": 500, "id": 7682, "height": 375}, {"file_name": "ADE_train_00007684.jpg", "width": 400, "id": 7683, "height": 300}, {"file_name": "ADE_train_00007685.jpg", "width": 791, "id": 7684, "height": 465}, {"file_name": "ADE_train_00007686.jpg", "width": 683, "id": 7685, "height": 512}, {"file_name": "ADE_train_00007687.jpg", "width": 683, "id": 7686, "height": 512}, {"file_name": "ADE_train_00007688.jpg", "width": 683, "id": 7687, "height": 512}, {"file_name": "ADE_train_00007689.jpg", "width": 512, "id": 7688, "height": 675}, {"file_name": "ADE_train_00007690.jpg", "width": 765, "id": 7689, "height": 512}, {"file_name": "ADE_train_00007691.jpg", "width": 683, "id": 7690, "height": 512}, {"file_name": "ADE_train_00007692.jpg", "width": 683, "id": 7691, "height": 512}, {"file_name": "ADE_train_00007693.jpg", "width": 1162, "id": 7692, "height": 512}, {"file_name": "ADE_train_00007694.jpg", "width": 683, "id": 7693, "height": 512}, {"file_name": "ADE_train_00007695.jpg", "width": 683, "id": 7694, "height": 512}, {"file_name": "ADE_train_00007696.jpg", "width": 300, "id": 7695, "height": 299}, {"file_name": "ADE_train_00007697.jpg", "width": 683, "id": 7696, "height": 512}, {"file_name": "ADE_train_00007698.jpg", "width": 683, "id": 7697, "height": 512}, {"file_name": "ADE_train_00007699.jpg", "width": 921, "id": 7698, "height": 512}, {"file_name": "ADE_train_00007700.jpg", "width": 333, "id": 7699, "height": 250}, {"file_name": "ADE_train_00007701.jpg", "width": 683, "id": 7700, "height": 512}, {"file_name": "ADE_train_00007702.jpg", "width": 431, "id": 7701, "height": 307}, {"file_name": "ADE_train_00007703.jpg", "width": 768, "id": 7702, "height": 512}, {"file_name": "ADE_train_00007704.jpg", "width": 225, "id": 7703, "height": 155}, {"file_name": "ADE_train_00007705.jpg", "width": 550, "id": 7704, "height": 362}, {"file_name": "ADE_train_00007706.jpg", "width": 300, "id": 7705, "height": 201}, {"file_name": "ADE_train_00007707.jpg", "width": 768, "id": 7706, "height": 512}, {"file_name": "ADE_train_00007708.jpg", "width": 320, "id": 7707, "height": 240}, {"file_name": "ADE_train_00007709.jpg", "width": 768, "id": 7708, "height": 512}, {"file_name": "ADE_train_00007710.jpg", "width": 683, "id": 7709, "height": 512}, {"file_name": "ADE_train_00007711.jpg", "width": 780, "id": 7710, "height": 512}, {"file_name": "ADE_train_00007712.jpg", "width": 640, "id": 7711, "height": 480}, {"file_name": "ADE_train_00007713.jpg", "width": 683, "id": 7712, "height": 512}, {"file_name": "ADE_train_00007714.jpg", "width": 741, "id": 7713, "height": 512}, {"file_name": "ADE_train_00007715.jpg", "width": 683, "id": 7714, "height": 512}, {"file_name": "ADE_train_00007716.jpg", "width": 400, "id": 7715, "height": 299}, {"file_name": "ADE_train_00007717.jpg", "width": 472, "id": 7716, "height": 324}, {"file_name": "ADE_train_00007718.jpg", "width": 540, "id": 7717, "height": 360}, {"file_name": "ADE_train_00007719.jpg", "width": 530, "id": 7718, "height": 331}, {"file_name": "ADE_train_00007720.jpg", "width": 448, "id": 7719, "height": 298}, {"file_name": "ADE_train_00007721.jpg", "width": 408, "id": 7720, "height": 271}, {"file_name": "ADE_train_00007722.jpg", "width": 300, "id": 7721, "height": 228}, {"file_name": "ADE_train_00007723.jpg", "width": 596, "id": 7722, "height": 389}, {"file_name": "ADE_train_00007724.jpg", "width": 640, "id": 7723, "height": 480}, {"file_name": "ADE_train_00007725.jpg", "width": 686, "id": 7724, "height": 239}, {"file_name": "ADE_train_00007726.jpg", "width": 500, "id": 7725, "height": 373}, {"file_name": "ADE_train_00007727.jpg", "width": 683, "id": 7726, "height": 512}, {"file_name": "ADE_train_00007728.jpg", "width": 640, "id": 7727, "height": 480}, {"file_name": "ADE_train_00007729.jpg", "width": 539, "id": 7728, "height": 428}, {"file_name": "ADE_train_00007730.jpg", "width": 504, "id": 7729, "height": 334}, {"file_name": "ADE_train_00007731.jpg", "width": 500, "id": 7730, "height": 375}, {"file_name": "ADE_train_00007732.jpg", "width": 765, "id": 7731, "height": 512}, {"file_name": "ADE_train_00007733.jpg", "width": 683, "id": 7732, "height": 512}, {"file_name": "ADE_train_00007734.jpg", "width": 450, "id": 7733, "height": 300}, {"file_name": "ADE_train_00007735.jpg", "width": 683, "id": 7734, "height": 512}, {"file_name": "ADE_train_00007736.jpg", "width": 640, "id": 7735, "height": 512}, {"file_name": "ADE_train_00007737.jpg", "width": 744, "id": 7736, "height": 512}, {"file_name": "ADE_train_00007738.jpg", "width": 397, "id": 7737, "height": 600}, {"file_name": "ADE_train_00007739.jpg", "width": 269, "id": 7738, "height": 210}, {"file_name": "ADE_train_00007740.jpg", "width": 300, "id": 7739, "height": 228}, {"file_name": "ADE_train_00007741.jpg", "width": 438, "id": 7740, "height": 294}, {"file_name": "ADE_train_00007742.jpg", "width": 753, "id": 7741, "height": 512}, {"file_name": "ADE_train_00007743.jpg", "width": 683, "id": 7742, "height": 512}, {"file_name": "ADE_train_00007744.jpg", "width": 300, "id": 7743, "height": 261}, {"file_name": "ADE_train_00007745.jpg", "width": 304, "id": 7744, "height": 229}, {"file_name": "ADE_train_00007746.jpg", "width": 320, "id": 7745, "height": 240}, {"file_name": "ADE_train_00007747.jpg", "width": 683, "id": 7746, "height": 512}, {"file_name": "ADE_train_00007748.jpg", "width": 512, "id": 7747, "height": 683}, {"file_name": "ADE_train_00007749.jpg", "width": 683, "id": 7748, "height": 512}, {"file_name": "ADE_train_00007750.jpg", "width": 768, "id": 7749, "height": 512}, {"file_name": "ADE_train_00007751.jpg", "width": 684, "id": 7750, "height": 512}, {"file_name": "ADE_train_00007752.jpg", "width": 683, "id": 7751, "height": 512}, {"file_name": "ADE_train_00007753.jpg", "width": 512, "id": 7752, "height": 683}, {"file_name": "ADE_train_00007754.jpg", "width": 683, "id": 7753, "height": 512}, {"file_name": "ADE_train_00007755.jpg", "width": 683, "id": 7754, "height": 512}, {"file_name": "ADE_train_00007756.jpg", "width": 400, "id": 7755, "height": 599}, {"file_name": "ADE_train_00007757.jpg", "width": 683, "id": 7756, "height": 512}, {"file_name": "ADE_train_00007758.jpg", "width": 683, "id": 7757, "height": 512}, {"file_name": "ADE_train_00007759.jpg", "width": 683, "id": 7758, "height": 512}, {"file_name": "ADE_train_00007760.jpg", "width": 683, "id": 7759, "height": 512}, {"file_name": "ADE_train_00007761.jpg", "width": 683, "id": 7760, "height": 512}, {"file_name": "ADE_train_00007762.jpg", "width": 256, "id": 7761, "height": 256}, {"file_name": "ADE_train_00007763.jpg", "width": 256, "id": 7762, "height": 256}, {"file_name": "ADE_train_00007764.jpg", "width": 256, "id": 7763, "height": 256}, {"file_name": "ADE_train_00007765.jpg", "width": 256, "id": 7764, "height": 256}, {"file_name": "ADE_train_00007766.jpg", "width": 256, "id": 7765, "height": 256}, {"file_name": "ADE_train_00007767.jpg", "width": 256, "id": 7766, "height": 256}, {"file_name": "ADE_train_00007768.jpg", "width": 256, "id": 7767, "height": 256}, {"file_name": "ADE_train_00007769.jpg", "width": 256, "id": 7768, "height": 256}, {"file_name": "ADE_train_00007770.jpg", "width": 256, "id": 7769, "height": 256}, {"file_name": "ADE_train_00007771.jpg", "width": 256, "id": 7770, "height": 256}, {"file_name": "ADE_train_00007772.jpg", "width": 256, "id": 7771, "height": 256}, {"file_name": "ADE_train_00007773.jpg", "width": 846, "id": 7772, "height": 512}, {"file_name": "ADE_train_00007774.jpg", "width": 256, "id": 7773, "height": 256}, {"file_name": "ADE_train_00007775.jpg", "width": 256, "id": 7774, "height": 256}, {"file_name": "ADE_train_00007776.jpg", "width": 256, "id": 7775, "height": 256}, {"file_name": "ADE_train_00007777.jpg", "width": 256, "id": 7776, "height": 256}, {"file_name": "ADE_train_00007778.jpg", "width": 256, "id": 7777, "height": 256}, {"file_name": "ADE_train_00007779.jpg", "width": 256, "id": 7778, "height": 256}, {"file_name": "ADE_train_00007780.jpg", "width": 256, "id": 7779, "height": 256}, {"file_name": "ADE_train_00007781.jpg", "width": 256, "id": 7780, "height": 256}, {"file_name": "ADE_train_00007782.jpg", "width": 256, "id": 7781, "height": 256}, {"file_name": "ADE_train_00007783.jpg", "width": 256, "id": 7782, "height": 256}, {"file_name": "ADE_train_00007784.jpg", "width": 256, "id": 7783, "height": 256}, {"file_name": "ADE_train_00007785.jpg", "width": 256, "id": 7784, "height": 256}, {"file_name": "ADE_train_00007786.jpg", "width": 256, "id": 7785, "height": 256}, {"file_name": "ADE_train_00007787.jpg", "width": 256, "id": 7786, "height": 256}, {"file_name": "ADE_train_00007788.jpg", "width": 256, "id": 7787, "height": 256}, {"file_name": "ADE_train_00007789.jpg", "width": 256, "id": 7788, "height": 256}, {"file_name": "ADE_train_00007790.jpg", "width": 256, "id": 7789, "height": 256}, {"file_name": "ADE_train_00007791.jpg", "width": 256, "id": 7790, "height": 256}, {"file_name": "ADE_train_00007792.jpg", "width": 256, "id": 7791, "height": 256}, {"file_name": "ADE_train_00007793.jpg", "width": 256, "id": 7792, "height": 256}, {"file_name": "ADE_train_00007794.jpg", "width": 256, "id": 7793, "height": 256}, {"file_name": "ADE_train_00007795.jpg", "width": 256, "id": 7794, "height": 256}, {"file_name": "ADE_train_00007796.jpg", "width": 640, "id": 7795, "height": 480}, {"file_name": "ADE_train_00007797.jpg", "width": 256, "id": 7796, "height": 256}, {"file_name": "ADE_train_00007798.jpg", "width": 256, "id": 7797, "height": 256}, {"file_name": "ADE_train_00007799.jpg", "width": 256, "id": 7798, "height": 256}, {"file_name": "ADE_train_00007800.jpg", "width": 256, "id": 7799, "height": 256}, {"file_name": "ADE_train_00007801.jpg", "width": 256, "id": 7800, "height": 256}, {"file_name": "ADE_train_00007802.jpg", "width": 256, "id": 7801, "height": 256}, {"file_name": "ADE_train_00007803.jpg", "width": 384, "id": 7802, "height": 256}, {"file_name": "ADE_train_00007804.jpg", "width": 256, "id": 7803, "height": 256}, {"file_name": "ADE_train_00007805.jpg", "width": 256, "id": 7804, "height": 256}, {"file_name": "ADE_train_00007806.jpg", "width": 256, "id": 7805, "height": 256}, {"file_name": "ADE_train_00007807.jpg", "width": 256, "id": 7806, "height": 256}, {"file_name": "ADE_train_00007808.jpg", "width": 256, "id": 7807, "height": 256}, {"file_name": "ADE_train_00007809.jpg", "width": 256, "id": 7808, "height": 256}, {"file_name": "ADE_train_00007810.jpg", "width": 256, "id": 7809, "height": 256}, {"file_name": "ADE_train_00007811.jpg", "width": 256, "id": 7810, "height": 256}, {"file_name": "ADE_train_00007812.jpg", "width": 256, "id": 7811, "height": 256}, {"file_name": "ADE_train_00007813.jpg", "width": 256, "id": 7812, "height": 256}, {"file_name": "ADE_train_00007814.jpg", "width": 256, "id": 7813, "height": 256}, {"file_name": "ADE_train_00007815.jpg", "width": 256, "id": 7814, "height": 256}, {"file_name": "ADE_train_00007816.jpg", "width": 256, "id": 7815, "height": 256}, {"file_name": "ADE_train_00007817.jpg", "width": 256, "id": 7816, "height": 256}, {"file_name": "ADE_train_00007818.jpg", "width": 256, "id": 7817, "height": 256}, {"file_name": "ADE_train_00007819.jpg", "width": 256, "id": 7818, "height": 256}, {"file_name": "ADE_train_00007820.jpg", "width": 256, "id": 7819, "height": 256}, {"file_name": "ADE_train_00007821.jpg", "width": 256, "id": 7820, "height": 256}, {"file_name": "ADE_train_00007822.jpg", "width": 378, "id": 7821, "height": 382}, {"file_name": "ADE_train_00007823.jpg", "width": 256, "id": 7822, "height": 256}, {"file_name": "ADE_train_00007824.jpg", "width": 256, "id": 7823, "height": 256}, {"file_name": "ADE_train_00007825.jpg", "width": 256, "id": 7824, "height": 256}, {"file_name": "ADE_train_00007826.jpg", "width": 256, "id": 7825, "height": 256}, {"file_name": "ADE_train_00007827.jpg", "width": 256, "id": 7826, "height": 256}, {"file_name": "ADE_train_00007828.jpg", "width": 256, "id": 7827, "height": 256}, {"file_name": "ADE_train_00007829.jpg", "width": 256, "id": 7828, "height": 256}, {"file_name": "ADE_train_00007830.jpg", "width": 256, "id": 7829, "height": 256}, {"file_name": "ADE_train_00007831.jpg", "width": 256, "id": 7830, "height": 256}, {"file_name": "ADE_train_00007832.jpg", "width": 256, "id": 7831, "height": 256}, {"file_name": "ADE_train_00007833.jpg", "width": 256, "id": 7832, "height": 256}, {"file_name": "ADE_train_00007834.jpg", "width": 256, "id": 7833, "height": 256}, {"file_name": "ADE_train_00007835.jpg", "width": 256, "id": 7834, "height": 256}, {"file_name": "ADE_train_00007836.jpg", "width": 256, "id": 7835, "height": 256}, {"file_name": "ADE_train_00007837.jpg", "width": 256, "id": 7836, "height": 256}, {"file_name": "ADE_train_00007838.jpg", "width": 256, "id": 7837, "height": 256}, {"file_name": "ADE_train_00007839.jpg", "width": 256, "id": 7838, "height": 256}, {"file_name": "ADE_train_00007840.jpg", "width": 256, "id": 7839, "height": 256}, {"file_name": "ADE_train_00007841.jpg", "width": 256, "id": 7840, "height": 256}, {"file_name": "ADE_train_00007842.jpg", "width": 256, "id": 7841, "height": 256}, {"file_name": "ADE_train_00007843.jpg", "width": 256, "id": 7842, "height": 256}, {"file_name": "ADE_train_00007844.jpg", "width": 256, "id": 7843, "height": 256}, {"file_name": "ADE_train_00007845.jpg", "width": 256, "id": 7844, "height": 256}, {"file_name": "ADE_train_00007846.jpg", "width": 256, "id": 7845, "height": 256}, {"file_name": "ADE_train_00007847.jpg", "width": 256, "id": 7846, "height": 256}, {"file_name": "ADE_train_00007848.jpg", "width": 256, "id": 7847, "height": 256}, {"file_name": "ADE_train_00007849.jpg", "width": 256, "id": 7848, "height": 256}, {"file_name": "ADE_train_00007850.jpg", "width": 256, "id": 7849, "height": 256}, {"file_name": "ADE_train_00007851.jpg", "width": 256, "id": 7850, "height": 256}, {"file_name": "ADE_train_00007852.jpg", "width": 256, "id": 7851, "height": 256}, {"file_name": "ADE_train_00007853.jpg", "width": 256, "id": 7852, "height": 256}, {"file_name": "ADE_train_00007854.jpg", "width": 256, "id": 7853, "height": 256}, {"file_name": "ADE_train_00007855.jpg", "width": 256, "id": 7854, "height": 256}, {"file_name": "ADE_train_00007856.jpg", "width": 256, "id": 7855, "height": 256}, {"file_name": "ADE_train_00007857.jpg", "width": 256, "id": 7856, "height": 256}, {"file_name": "ADE_train_00007858.jpg", "width": 256, "id": 7857, "height": 256}, {"file_name": "ADE_train_00007859.jpg", "width": 256, "id": 7858, "height": 256}, {"file_name": "ADE_train_00007860.jpg", "width": 256, "id": 7859, "height": 256}, {"file_name": "ADE_train_00007861.jpg", "width": 256, "id": 7860, "height": 256}, {"file_name": "ADE_train_00007862.jpg", "width": 240, "id": 7861, "height": 240}, {"file_name": "ADE_train_00007863.jpg", "width": 683, "id": 7862, "height": 512}, {"file_name": "ADE_train_00007864.jpg", "width": 350, "id": 7863, "height": 261}, {"file_name": "ADE_train_00007865.jpg", "width": 362, "id": 7864, "height": 550}, {"file_name": "ADE_train_00007866.jpg", "width": 512, "id": 7865, "height": 640}, {"file_name": "ADE_train_00007867.jpg", "width": 512, "id": 7866, "height": 1016}, {"file_name": "ADE_train_00007868.jpg", "width": 550, "id": 7867, "height": 440}, {"file_name": "ADE_train_00007869.jpg", "width": 300, "id": 7868, "height": 235}, {"file_name": "ADE_train_00007870.jpg", "width": 480, "id": 7869, "height": 640}, {"file_name": "ADE_train_00007871.jpg", "width": 500, "id": 7870, "height": 375}, {"file_name": "ADE_train_00007872.jpg", "width": 600, "id": 7871, "height": 400}, {"file_name": "ADE_train_00007873.jpg", "width": 500, "id": 7872, "height": 290}, {"file_name": "ADE_train_00007874.jpg", "width": 640, "id": 7873, "height": 408}, {"file_name": "ADE_train_00007875.jpg", "width": 500, "id": 7874, "height": 375}, {"file_name": "ADE_train_00007876.jpg", "width": 452, "id": 7875, "height": 400}, {"file_name": "ADE_train_00007877.jpg", "width": 600, "id": 7876, "height": 400}, {"file_name": "ADE_train_00007878.jpg", "width": 769, "id": 7877, "height": 512}, {"file_name": "ADE_train_00007879.jpg", "width": 640, "id": 7878, "height": 394}, {"file_name": "ADE_train_00007880.jpg", "width": 692, "id": 7879, "height": 512}, {"file_name": "ADE_train_00007881.jpg", "width": 350, "id": 7880, "height": 244}, {"file_name": "ADE_train_00007882.jpg", "width": 400, "id": 7881, "height": 221}, {"file_name": "ADE_train_00007883.jpg", "width": 450, "id": 7882, "height": 337}, {"file_name": "ADE_train_00007884.jpg", "width": 640, "id": 7883, "height": 480}, {"file_name": "ADE_train_00007885.jpg", "width": 600, "id": 7884, "height": 450}, {"file_name": "ADE_train_00007886.jpg", "width": 432, "id": 7885, "height": 258}, {"file_name": "ADE_train_00007887.jpg", "width": 607, "id": 7886, "height": 458}, {"file_name": "ADE_train_00007888.jpg", "width": 400, "id": 7887, "height": 300}, {"file_name": "ADE_train_00007889.jpg", "width": 780, "id": 7888, "height": 512}, {"file_name": "ADE_train_00007890.jpg", "width": 683, "id": 7889, "height": 512}, {"file_name": "ADE_train_00007891.jpg", "width": 300, "id": 7890, "height": 200}, {"file_name": "ADE_train_00007892.jpg", "width": 512, "id": 7891, "height": 683}, {"file_name": "ADE_train_00007893.jpg", "width": 240, "id": 7892, "height": 372}, {"file_name": "ADE_train_00007894.jpg", "width": 480, "id": 7893, "height": 640}, {"file_name": "ADE_train_00007895.jpg", "width": 683, "id": 7894, "height": 512}, {"file_name": "ADE_train_00007896.jpg", "width": 683, "id": 7895, "height": 512}, {"file_name": "ADE_train_00007897.jpg", "width": 683, "id": 7896, "height": 512}, {"file_name": "ADE_train_00007898.jpg", "width": 640, "id": 7897, "height": 512}, {"file_name": "ADE_train_00007899.jpg", "width": 360, "id": 7898, "height": 289}, {"file_name": "ADE_train_00007900.jpg", "width": 684, "id": 7899, "height": 512}, {"file_name": "ADE_train_00007901.jpg", "width": 400, "id": 7900, "height": 293}, {"file_name": "ADE_train_00007902.jpg", "width": 480, "id": 7901, "height": 360}, {"file_name": "ADE_train_00007903.jpg", "width": 300, "id": 7902, "height": 203}, {"file_name": "ADE_train_00007904.jpg", "width": 640, "id": 7903, "height": 480}, {"file_name": "ADE_train_00007905.jpg", "width": 512, "id": 7904, "height": 384}, {"file_name": "ADE_train_00007906.jpg", "width": 267, "id": 7905, "height": 282}, {"file_name": "ADE_train_00007907.jpg", "width": 770, "id": 7906, "height": 512}, {"file_name": "ADE_train_00007908.jpg", "width": 512, "id": 7907, "height": 683}, {"file_name": "ADE_train_00007909.jpg", "width": 683, "id": 7908, "height": 512}, {"file_name": "ADE_train_00007910.jpg", "width": 768, "id": 7909, "height": 512}, {"file_name": "ADE_train_00007911.jpg", "width": 512, "id": 7910, "height": 768}, {"file_name": "ADE_train_00007912.jpg", "width": 640, "id": 7911, "height": 480}, {"file_name": "ADE_train_00007913.jpg", "width": 683, "id": 7912, "height": 512}, {"file_name": "ADE_train_00007914.jpg", "width": 320, "id": 7913, "height": 240}, {"file_name": "ADE_train_00007915.jpg", "width": 690, "id": 7914, "height": 512}, {"file_name": "ADE_train_00007916.jpg", "width": 512, "id": 7915, "height": 755}, {"file_name": "ADE_train_00007917.jpg", "width": 683, "id": 7916, "height": 512}, {"file_name": "ADE_train_00007918.jpg", "width": 320, "id": 7917, "height": 240}, {"file_name": "ADE_train_00007919.jpg", "width": 683, "id": 7918, "height": 512}, {"file_name": "ADE_train_00007920.jpg", "width": 400, "id": 7919, "height": 300}, {"file_name": "ADE_train_00007921.jpg", "width": 400, "id": 7920, "height": 300}, {"file_name": "ADE_train_00007922.jpg", "width": 205, "id": 7921, "height": 260}, {"file_name": "ADE_train_00007923.jpg", "width": 360, "id": 7922, "height": 300}, {"file_name": "ADE_train_00007924.jpg", "width": 500, "id": 7923, "height": 375}, {"file_name": "ADE_train_00007925.jpg", "width": 410, "id": 7924, "height": 330}, {"file_name": "ADE_train_00007926.jpg", "width": 400, "id": 7925, "height": 533}, {"file_name": "ADE_train_00007927.jpg", "width": 300, "id": 7926, "height": 406}, {"file_name": "ADE_train_00007928.jpg", "width": 550, "id": 7927, "height": 400}, {"file_name": "ADE_train_00007929.jpg", "width": 500, "id": 7928, "height": 375}, {"file_name": "ADE_train_00007930.jpg", "width": 506, "id": 7929, "height": 338}, {"file_name": "ADE_train_00007931.jpg", "width": 300, "id": 7930, "height": 400}, {"file_name": "ADE_train_00007932.jpg", "width": 256, "id": 7931, "height": 401}, {"file_name": "ADE_train_00007933.jpg", "width": 512, "id": 7932, "height": 683}, {"file_name": "ADE_train_00007934.jpg", "width": 450, "id": 7933, "height": 600}, {"file_name": "ADE_train_00007935.jpg", "width": 609, "id": 7934, "height": 406}, {"file_name": "ADE_train_00007936.jpg", "width": 683, "id": 7935, "height": 512}, {"file_name": "ADE_train_00007937.jpg", "width": 367, "id": 7936, "height": 550}, {"file_name": "ADE_train_00007938.jpg", "width": 512, "id": 7937, "height": 683}, {"file_name": "ADE_train_00007939.jpg", "width": 498, "id": 7938, "height": 700}, {"file_name": "ADE_train_00007940.jpg", "width": 400, "id": 7939, "height": 300}, {"file_name": "ADE_train_00007941.jpg", "width": 683, "id": 7940, "height": 512}, {"file_name": "ADE_train_00007942.jpg", "width": 370, "id": 7941, "height": 228}, {"file_name": "ADE_train_00007943.jpg", "width": 600, "id": 7942, "height": 464}, {"file_name": "ADE_train_00007944.jpg", "width": 320, "id": 7943, "height": 240}, {"file_name": "ADE_train_00007945.jpg", "width": 223, "id": 7944, "height": 356}, {"file_name": "ADE_train_00007946.jpg", "width": 576, "id": 7945, "height": 382}, {"file_name": "ADE_train_00007947.jpg", "width": 590, "id": 7946, "height": 346}, {"file_name": "ADE_train_00007948.jpg", "width": 697, "id": 7947, "height": 466}, {"file_name": "ADE_train_00007949.jpg", "width": 740, "id": 7948, "height": 512}, {"file_name": "ADE_train_00007950.jpg", "width": 300, "id": 7949, "height": 225}, {"file_name": "ADE_train_00007951.jpg", "width": 512, "id": 7950, "height": 682}, {"file_name": "ADE_train_00007952.jpg", "width": 550, "id": 7951, "height": 302}, {"file_name": "ADE_train_00007953.jpg", "width": 550, "id": 7952, "height": 302}, {"file_name": "ADE_train_00007954.jpg", "width": 400, "id": 7953, "height": 280}, {"file_name": "ADE_train_00007955.jpg", "width": 683, "id": 7954, "height": 512}, {"file_name": "ADE_train_00007956.jpg", "width": 683, "id": 7955, "height": 512}, {"file_name": "ADE_train_00007957.jpg", "width": 500, "id": 7956, "height": 375}, {"file_name": "ADE_train_00007958.jpg", "width": 440, "id": 7957, "height": 330}, {"file_name": "ADE_train_00007959.jpg", "width": 371, "id": 7958, "height": 212}, {"file_name": "ADE_train_00007960.jpg", "width": 500, "id": 7959, "height": 375}, {"file_name": "ADE_train_00007961.jpg", "width": 498, "id": 7960, "height": 741}, {"file_name": "ADE_train_00007962.jpg", "width": 640, "id": 7961, "height": 480}, {"file_name": "ADE_train_00007963.jpg", "width": 500, "id": 7962, "height": 270}, {"file_name": "ADE_train_00007964.jpg", "width": 512, "id": 7963, "height": 683}, {"file_name": "ADE_train_00007965.jpg", "width": 256, "id": 7964, "height": 256}, {"file_name": "ADE_train_00007966.jpg", "width": 512, "id": 7965, "height": 682}, {"file_name": "ADE_train_00007967.jpg", "width": 512, "id": 7966, "height": 682}, {"file_name": "ADE_train_00007968.jpg", "width": 683, "id": 7967, "height": 512}, {"file_name": "ADE_train_00007969.jpg", "width": 512, "id": 7968, "height": 770}, {"file_name": "ADE_train_00007970.jpg", "width": 512, "id": 7969, "height": 765}, {"file_name": "ADE_train_00007971.jpg", "width": 512, "id": 7970, "height": 683}, {"file_name": "ADE_train_00007972.jpg", "width": 512, "id": 7971, "height": 683}, {"file_name": "ADE_train_00007973.jpg", "width": 300, "id": 7972, "height": 225}, {"file_name": "ADE_train_00007974.jpg", "width": 286, "id": 7973, "height": 360}, {"file_name": "ADE_train_00007975.jpg", "width": 400, "id": 7974, "height": 396}, {"file_name": "ADE_train_00007976.jpg", "width": 294, "id": 7975, "height": 443}, {"file_name": "ADE_train_00007977.jpg", "width": 683, "id": 7976, "height": 512}, {"file_name": "ADE_train_00007978.jpg", "width": 480, "id": 7977, "height": 640}, {"file_name": "ADE_train_00007979.jpg", "width": 390, "id": 7978, "height": 414}, {"file_name": "ADE_train_00007980.jpg", "width": 512, "id": 7979, "height": 768}, {"file_name": "ADE_train_00007981.jpg", "width": 683, "id": 7980, "height": 512}, {"file_name": "ADE_train_00007982.jpg", "width": 768, "id": 7981, "height": 512}, {"file_name": "ADE_train_00007983.jpg", "width": 320, "id": 7982, "height": 240}, {"file_name": "ADE_train_00007984.jpg", "width": 683, "id": 7983, "height": 512}, {"file_name": "ADE_train_00007985.jpg", "width": 448, "id": 7984, "height": 571}, {"file_name": "ADE_train_00007986.jpg", "width": 700, "id": 7985, "height": 356}, {"file_name": "ADE_train_00007987.jpg", "width": 404, "id": 7986, "height": 284}, {"file_name": "ADE_train_00007988.jpg", "width": 640, "id": 7987, "height": 480}, {"file_name": "ADE_train_00007989.jpg", "width": 683, "id": 7988, "height": 512}, {"file_name": "ADE_train_00007990.jpg", "width": 796, "id": 7989, "height": 512}, {"file_name": "ADE_train_00007991.jpg", "width": 683, "id": 7990, "height": 512}, {"file_name": "ADE_train_00007992.jpg", "width": 683, "id": 7991, "height": 512}, {"file_name": "ADE_train_00007993.jpg", "width": 338, "id": 7992, "height": 224}, {"file_name": "ADE_train_00007994.jpg", "width": 770, "id": 7993, "height": 512}, {"file_name": "ADE_train_00007995.jpg", "width": 512, "id": 7994, "height": 683}, {"file_name": "ADE_train_00007996.jpg", "width": 500, "id": 7995, "height": 487}, {"file_name": "ADE_train_00007997.jpg", "width": 256, "id": 7996, "height": 256}, {"file_name": "ADE_train_00007998.jpg", "width": 500, "id": 7997, "height": 375}, {"file_name": "ADE_train_00007999.jpg", "width": 500, "id": 7998, "height": 333}, {"file_name": "ADE_train_00008000.jpg", "width": 256, "id": 7999, "height": 256}, {"file_name": "ADE_train_00008001.jpg", "width": 683, "id": 8000, "height": 512}, {"file_name": "ADE_train_00008002.jpg", "width": 500, "id": 8001, "height": 375}, {"file_name": "ADE_train_00008003.jpg", "width": 500, "id": 8002, "height": 332}, {"file_name": "ADE_train_00008004.jpg", "width": 500, "id": 8003, "height": 375}, {"file_name": "ADE_train_00008005.jpg", "width": 256, "id": 8004, "height": 256}, {"file_name": "ADE_train_00008006.jpg", "width": 270, "id": 8005, "height": 203}, {"file_name": "ADE_train_00008007.jpg", "width": 449, "id": 8006, "height": 298}, {"file_name": "ADE_train_00008008.jpg", "width": 445, "id": 8007, "height": 300}, {"file_name": "ADE_train_00008009.jpg", "width": 208, "id": 8008, "height": 300}, {"file_name": "ADE_train_00008010.jpg", "width": 375, "id": 8009, "height": 500}, {"file_name": "ADE_train_00008011.jpg", "width": 500, "id": 8010, "height": 375}, {"file_name": "ADE_train_00008012.jpg", "width": 275, "id": 8011, "height": 212}, {"file_name": "ADE_train_00008013.jpg", "width": 411, "id": 8012, "height": 287}, {"file_name": "ADE_train_00008014.jpg", "width": 536, "id": 8013, "height": 512}, {"file_name": "ADE_train_00008015.jpg", "width": 400, "id": 8014, "height": 300}, {"file_name": "ADE_train_00008016.jpg", "width": 325, "id": 8015, "height": 244}, {"file_name": "ADE_train_00008017.jpg", "width": 320, "id": 8016, "height": 240}, {"file_name": "ADE_train_00008018.jpg", "width": 400, "id": 8017, "height": 300}, {"file_name": "ADE_train_00008019.jpg", "width": 500, "id": 8018, "height": 375}, {"file_name": "ADE_train_00008020.jpg", "width": 275, "id": 8019, "height": 183}, {"file_name": "ADE_train_00008021.jpg", "width": 387, "id": 8020, "height": 256}, {"file_name": "ADE_train_00008022.jpg", "width": 400, "id": 8021, "height": 267}, {"file_name": "ADE_train_00008023.jpg", "width": 545, "id": 8022, "height": 450}, {"file_name": "ADE_train_00008024.jpg", "width": 450, "id": 8023, "height": 300}, {"file_name": "ADE_train_00008025.jpg", "width": 275, "id": 8024, "height": 207}, {"file_name": "ADE_train_00008026.jpg", "width": 448, "id": 8025, "height": 299}, {"file_name": "ADE_train_00008027.jpg", "width": 768, "id": 8026, "height": 512}, {"file_name": "ADE_train_00008028.jpg", "width": 683, "id": 8027, "height": 512}, {"file_name": "ADE_train_00008029.jpg", "width": 640, "id": 8028, "height": 480}, {"file_name": "ADE_train_00008030.jpg", "width": 683, "id": 8029, "height": 512}, {"file_name": "ADE_train_00008031.jpg", "width": 630, "id": 8030, "height": 371}, {"file_name": "ADE_train_00008032.jpg", "width": 683, "id": 8031, "height": 512}, {"file_name": "ADE_train_00008033.jpg", "width": 360, "id": 8032, "height": 240}, {"file_name": "ADE_train_00008034.jpg", "width": 683, "id": 8033, "height": 512}, {"file_name": "ADE_train_00008035.jpg", "width": 768, "id": 8034, "height": 512}, {"file_name": "ADE_train_00008036.jpg", "width": 227, "id": 8035, "height": 205}, {"file_name": "ADE_train_00008037.jpg", "width": 600, "id": 8036, "height": 449}, {"file_name": "ADE_train_00008038.jpg", "width": 443, "id": 8037, "height": 325}, {"file_name": "ADE_train_00008039.jpg", "width": 500, "id": 8038, "height": 375}, {"file_name": "ADE_train_00008040.jpg", "width": 256, "id": 8039, "height": 256}, {"file_name": "ADE_train_00008041.jpg", "width": 256, "id": 8040, "height": 256}, {"file_name": "ADE_train_00008042.jpg", "width": 640, "id": 8041, "height": 480}, {"file_name": "ADE_train_00008043.jpg", "width": 256, "id": 8042, "height": 256}, {"file_name": "ADE_train_00008044.jpg", "width": 400, "id": 8043, "height": 226}, {"file_name": "ADE_train_00008045.jpg", "width": 768, "id": 8044, "height": 512}, {"file_name": "ADE_train_00008046.jpg", "width": 275, "id": 8045, "height": 206}, {"file_name": "ADE_train_00008047.jpg", "width": 256, "id": 8046, "height": 256}, {"file_name": "ADE_train_00008048.jpg", "width": 256, "id": 8047, "height": 256}, {"file_name": "ADE_train_00008049.jpg", "width": 256, "id": 8048, "height": 256}, {"file_name": "ADE_train_00008050.jpg", "width": 256, "id": 8049, "height": 256}, {"file_name": "ADE_train_00008051.jpg", "width": 256, "id": 8050, "height": 256}, {"file_name": "ADE_train_00008052.jpg", "width": 256, "id": 8051, "height": 256}, {"file_name": "ADE_train_00008053.jpg", "width": 256, "id": 8052, "height": 256}, {"file_name": "ADE_train_00008054.jpg", "width": 256, "id": 8053, "height": 256}, {"file_name": "ADE_train_00008055.jpg", "width": 256, "id": 8054, "height": 256}, {"file_name": "ADE_train_00008056.jpg", "width": 256, "id": 8055, "height": 256}, {"file_name": "ADE_train_00008057.jpg", "width": 256, "id": 8056, "height": 256}, {"file_name": "ADE_train_00008058.jpg", "width": 256, "id": 8057, "height": 256}, {"file_name": "ADE_train_00008059.jpg", "width": 256, "id": 8058, "height": 256}, {"file_name": "ADE_train_00008060.jpg", "width": 256, "id": 8059, "height": 256}, {"file_name": "ADE_train_00008061.jpg", "width": 256, "id": 8060, "height": 256}, {"file_name": "ADE_train_00008062.jpg", "width": 256, "id": 8061, "height": 256}, {"file_name": "ADE_train_00008063.jpg", "width": 256, "id": 8062, "height": 256}, {"file_name": "ADE_train_00008064.jpg", "width": 256, "id": 8063, "height": 256}, {"file_name": "ADE_train_00008065.jpg", "width": 256, "id": 8064, "height": 256}, {"file_name": "ADE_train_00008066.jpg", "width": 256, "id": 8065, "height": 256}, {"file_name": "ADE_train_00008067.jpg", "width": 256, "id": 8066, "height": 256}, {"file_name": "ADE_train_00008068.jpg", "width": 256, "id": 8067, "height": 256}, {"file_name": "ADE_train_00008069.jpg", "width": 256, "id": 8068, "height": 256}, {"file_name": "ADE_train_00008070.jpg", "width": 256, "id": 8069, "height": 256}, {"file_name": "ADE_train_00008071.jpg", "width": 256, "id": 8070, "height": 256}, {"file_name": "ADE_train_00008072.jpg", "width": 256, "id": 8071, "height": 256}, {"file_name": "ADE_train_00008073.jpg", "width": 256, "id": 8072, "height": 256}, {"file_name": "ADE_train_00008074.jpg", "width": 256, "id": 8073, "height": 256}, {"file_name": "ADE_train_00008075.jpg", "width": 256, "id": 8074, "height": 256}, {"file_name": "ADE_train_00008076.jpg", "width": 256, "id": 8075, "height": 256}, {"file_name": "ADE_train_00008077.jpg", "width": 256, "id": 8076, "height": 256}, {"file_name": "ADE_train_00008078.jpg", "width": 256, "id": 8077, "height": 256}, {"file_name": "ADE_train_00008079.jpg", "width": 256, "id": 8078, "height": 256}, {"file_name": "ADE_train_00008080.jpg", "width": 256, "id": 8079, "height": 256}, {"file_name": "ADE_train_00008081.jpg", "width": 256, "id": 8080, "height": 256}, {"file_name": "ADE_train_00008082.jpg", "width": 256, "id": 8081, "height": 256}, {"file_name": "ADE_train_00008083.jpg", "width": 256, "id": 8082, "height": 256}, {"file_name": "ADE_train_00008084.jpg", "width": 256, "id": 8083, "height": 256}, {"file_name": "ADE_train_00008085.jpg", "width": 256, "id": 8084, "height": 256}, {"file_name": "ADE_train_00008086.jpg", "width": 256, "id": 8085, "height": 256}, {"file_name": "ADE_train_00008087.jpg", "width": 256, "id": 8086, "height": 256}, {"file_name": "ADE_train_00008088.jpg", "width": 256, "id": 8087, "height": 256}, {"file_name": "ADE_train_00008089.jpg", "width": 256, "id": 8088, "height": 256}, {"file_name": "ADE_train_00008090.jpg", "width": 256, "id": 8089, "height": 256}, {"file_name": "ADE_train_00008091.jpg", "width": 256, "id": 8090, "height": 256}, {"file_name": "ADE_train_00008092.jpg", "width": 256, "id": 8091, "height": 256}, {"file_name": "ADE_train_00008093.jpg", "width": 256, "id": 8092, "height": 256}, {"file_name": "ADE_train_00008094.jpg", "width": 256, "id": 8093, "height": 256}, {"file_name": "ADE_train_00008095.jpg", "width": 256, "id": 8094, "height": 256}, {"file_name": "ADE_train_00008096.jpg", "width": 256, "id": 8095, "height": 256}, {"file_name": "ADE_train_00008097.jpg", "width": 256, "id": 8096, "height": 256}, {"file_name": "ADE_train_00008098.jpg", "width": 256, "id": 8097, "height": 256}, {"file_name": "ADE_train_00008099.jpg", "width": 256, "id": 8098, "height": 256}, {"file_name": "ADE_train_00008100.jpg", "width": 256, "id": 8099, "height": 256}, {"file_name": "ADE_train_00008101.jpg", "width": 256, "id": 8100, "height": 256}, {"file_name": "ADE_train_00008102.jpg", "width": 256, "id": 8101, "height": 256}, {"file_name": "ADE_train_00008103.jpg", "width": 256, "id": 8102, "height": 256}, {"file_name": "ADE_train_00008104.jpg", "width": 256, "id": 8103, "height": 256}, {"file_name": "ADE_train_00008105.jpg", "width": 256, "id": 8104, "height": 256}, {"file_name": "ADE_train_00008106.jpg", "width": 256, "id": 8105, "height": 256}, {"file_name": "ADE_train_00008107.jpg", "width": 256, "id": 8106, "height": 256}, {"file_name": "ADE_train_00008108.jpg", "width": 256, "id": 8107, "height": 256}, {"file_name": "ADE_train_00008109.jpg", "width": 256, "id": 8108, "height": 256}, {"file_name": "ADE_train_00008110.jpg", "width": 256, "id": 8109, "height": 256}, {"file_name": "ADE_train_00008111.jpg", "width": 256, "id": 8110, "height": 256}, {"file_name": "ADE_train_00008112.jpg", "width": 256, "id": 8111, "height": 256}, {"file_name": "ADE_train_00008113.jpg", "width": 256, "id": 8112, "height": 256}, {"file_name": "ADE_train_00008114.jpg", "width": 256, "id": 8113, "height": 256}, {"file_name": "ADE_train_00008115.jpg", "width": 256, "id": 8114, "height": 256}, {"file_name": "ADE_train_00008116.jpg", "width": 256, "id": 8115, "height": 256}, {"file_name": "ADE_train_00008117.jpg", "width": 256, "id": 8116, "height": 256}, {"file_name": "ADE_train_00008118.jpg", "width": 256, "id": 8117, "height": 256}, {"file_name": "ADE_train_00008119.jpg", "width": 256, "id": 8118, "height": 256}, {"file_name": "ADE_train_00008120.jpg", "width": 256, "id": 8119, "height": 256}, {"file_name": "ADE_train_00008121.jpg", "width": 256, "id": 8120, "height": 256}, {"file_name": "ADE_train_00008122.jpg", "width": 256, "id": 8121, "height": 256}, {"file_name": "ADE_train_00008123.jpg", "width": 256, "id": 8122, "height": 256}, {"file_name": "ADE_train_00008124.jpg", "width": 256, "id": 8123, "height": 256}, {"file_name": "ADE_train_00008125.jpg", "width": 256, "id": 8124, "height": 256}, {"file_name": "ADE_train_00008126.jpg", "width": 256, "id": 8125, "height": 256}, {"file_name": "ADE_train_00008127.jpg", "width": 256, "id": 8126, "height": 256}, {"file_name": "ADE_train_00008128.jpg", "width": 256, "id": 8127, "height": 256}, {"file_name": "ADE_train_00008129.jpg", "width": 256, "id": 8128, "height": 256}, {"file_name": "ADE_train_00008130.jpg", "width": 256, "id": 8129, "height": 256}, {"file_name": "ADE_train_00008131.jpg", "width": 256, "id": 8130, "height": 256}, {"file_name": "ADE_train_00008132.jpg", "width": 256, "id": 8131, "height": 256}, {"file_name": "ADE_train_00008133.jpg", "width": 256, "id": 8132, "height": 256}, {"file_name": "ADE_train_00008134.jpg", "width": 256, "id": 8133, "height": 256}, {"file_name": "ADE_train_00008135.jpg", "width": 256, "id": 8134, "height": 256}, {"file_name": "ADE_train_00008136.jpg", "width": 256, "id": 8135, "height": 256}, {"file_name": "ADE_train_00008137.jpg", "width": 256, "id": 8136, "height": 256}, {"file_name": "ADE_train_00008138.jpg", "width": 256, "id": 8137, "height": 256}, {"file_name": "ADE_train_00008139.jpg", "width": 256, "id": 8138, "height": 256}, {"file_name": "ADE_train_00008140.jpg", "width": 256, "id": 8139, "height": 256}, {"file_name": "ADE_train_00008141.jpg", "width": 256, "id": 8140, "height": 256}, {"file_name": "ADE_train_00008142.jpg", "width": 256, "id": 8141, "height": 256}, {"file_name": "ADE_train_00008143.jpg", "width": 256, "id": 8142, "height": 256}, {"file_name": "ADE_train_00008144.jpg", "width": 256, "id": 8143, "height": 256}, {"file_name": "ADE_train_00008145.jpg", "width": 256, "id": 8144, "height": 256}, {"file_name": "ADE_train_00008146.jpg", "width": 256, "id": 8145, "height": 256}, {"file_name": "ADE_train_00008147.jpg", "width": 256, "id": 8146, "height": 256}, {"file_name": "ADE_train_00008148.jpg", "width": 256, "id": 8147, "height": 256}, {"file_name": "ADE_train_00008149.jpg", "width": 256, "id": 8148, "height": 256}, {"file_name": "ADE_train_00008150.jpg", "width": 256, "id": 8149, "height": 256}, {"file_name": "ADE_train_00008151.jpg", "width": 256, "id": 8150, "height": 256}, {"file_name": "ADE_train_00008152.jpg", "width": 256, "id": 8151, "height": 256}, {"file_name": "ADE_train_00008153.jpg", "width": 256, "id": 8152, "height": 256}, {"file_name": "ADE_train_00008154.jpg", "width": 256, "id": 8153, "height": 256}, {"file_name": "ADE_train_00008155.jpg", "width": 256, "id": 8154, "height": 256}, {"file_name": "ADE_train_00008156.jpg", "width": 256, "id": 8155, "height": 256}, {"file_name": "ADE_train_00008157.jpg", "width": 256, "id": 8156, "height": 256}, {"file_name": "ADE_train_00008158.jpg", "width": 256, "id": 8157, "height": 256}, {"file_name": "ADE_train_00008159.jpg", "width": 256, "id": 8158, "height": 256}, {"file_name": "ADE_train_00008160.jpg", "width": 256, "id": 8159, "height": 256}, {"file_name": "ADE_train_00008161.jpg", "width": 256, "id": 8160, "height": 256}, {"file_name": "ADE_train_00008162.jpg", "width": 498, "id": 8161, "height": 452}, {"file_name": "ADE_train_00008163.jpg", "width": 256, "id": 8162, "height": 256}, {"file_name": "ADE_train_00008164.jpg", "width": 256, "id": 8163, "height": 256}, {"file_name": "ADE_train_00008165.jpg", "width": 256, "id": 8164, "height": 256}, {"file_name": "ADE_train_00008166.jpg", "width": 256, "id": 8165, "height": 256}, {"file_name": "ADE_train_00008167.jpg", "width": 256, "id": 8166, "height": 256}, {"file_name": "ADE_train_00008168.jpg", "width": 256, "id": 8167, "height": 256}, {"file_name": "ADE_train_00008169.jpg", "width": 256, "id": 8168, "height": 256}, {"file_name": "ADE_train_00008170.jpg", "width": 256, "id": 8169, "height": 256}, {"file_name": "ADE_train_00008171.jpg", "width": 256, "id": 8170, "height": 256}, {"file_name": "ADE_train_00008172.jpg", "width": 256, "id": 8171, "height": 256}, {"file_name": "ADE_train_00008173.jpg", "width": 256, "id": 8172, "height": 256}, {"file_name": "ADE_train_00008174.jpg", "width": 256, "id": 8173, "height": 256}, {"file_name": "ADE_train_00008175.jpg", "width": 256, "id": 8174, "height": 256}, {"file_name": "ADE_train_00008176.jpg", "width": 256, "id": 8175, "height": 256}, {"file_name": "ADE_train_00008177.jpg", "width": 256, "id": 8176, "height": 256}, {"file_name": "ADE_train_00008178.jpg", "width": 256, "id": 8177, "height": 256}, {"file_name": "ADE_train_00008179.jpg", "width": 256, "id": 8178, "height": 256}, {"file_name": "ADE_train_00008180.jpg", "width": 256, "id": 8179, "height": 256}, {"file_name": "ADE_train_00008181.jpg", "width": 256, "id": 8180, "height": 256}, {"file_name": "ADE_train_00008182.jpg", "width": 256, "id": 8181, "height": 256}, {"file_name": "ADE_train_00008183.jpg", "width": 256, "id": 8182, "height": 256}, {"file_name": "ADE_train_00008184.jpg", "width": 256, "id": 8183, "height": 256}, {"file_name": "ADE_train_00008185.jpg", "width": 256, "id": 8184, "height": 256}, {"file_name": "ADE_train_00008186.jpg", "width": 256, "id": 8185, "height": 256}, {"file_name": "ADE_train_00008187.jpg", "width": 256, "id": 8186, "height": 256}, {"file_name": "ADE_train_00008188.jpg", "width": 350, "id": 8187, "height": 247}, {"file_name": "ADE_train_00008189.jpg", "width": 829, "id": 8188, "height": 512}, {"file_name": "ADE_train_00008190.jpg", "width": 683, "id": 8189, "height": 512}, {"file_name": "ADE_train_00008191.jpg", "width": 683, "id": 8190, "height": 512}, {"file_name": "ADE_train_00008192.jpg", "width": 256, "id": 8191, "height": 256}, {"file_name": "ADE_train_00008193.jpg", "width": 256, "id": 8192, "height": 256}, {"file_name": "ADE_train_00008194.jpg", "width": 256, "id": 8193, "height": 256}, {"file_name": "ADE_train_00008195.jpg", "width": 256, "id": 8194, "height": 256}, {"file_name": "ADE_train_00008196.jpg", "width": 256, "id": 8195, "height": 256}, {"file_name": "ADE_train_00008197.jpg", "width": 300, "id": 8196, "height": 225}, {"file_name": "ADE_train_00008198.jpg", "width": 256, "id": 8197, "height": 256}, {"file_name": "ADE_train_00008199.jpg", "width": 256, "id": 8198, "height": 256}, {"file_name": "ADE_train_00008200.jpg", "width": 256, "id": 8199, "height": 256}, {"file_name": "ADE_train_00008201.jpg", "width": 256, "id": 8200, "height": 256}, {"file_name": "ADE_train_00008202.jpg", "width": 256, "id": 8201, "height": 256}, {"file_name": "ADE_train_00008203.jpg", "width": 256, "id": 8202, "height": 256}, {"file_name": "ADE_train_00008204.jpg", "width": 512, "id": 8203, "height": 683}, {"file_name": "ADE_train_00008205.jpg", "width": 256, "id": 8204, "height": 256}, {"file_name": "ADE_train_00008206.jpg", "width": 256, "id": 8205, "height": 256}, {"file_name": "ADE_train_00008207.jpg", "width": 256, "id": 8206, "height": 256}, {"file_name": "ADE_train_00008208.jpg", "width": 256, "id": 8207, "height": 256}, {"file_name": "ADE_train_00008209.jpg", "width": 683, "id": 8208, "height": 512}, {"file_name": "ADE_train_00008210.jpg", "width": 240, "id": 8209, "height": 320}, {"file_name": "ADE_train_00008211.jpg", "width": 522, "id": 8210, "height": 327}, {"file_name": "ADE_train_00008212.jpg", "width": 502, "id": 8211, "height": 480}, {"file_name": "ADE_train_00008213.jpg", "width": 256, "id": 8212, "height": 256}, {"file_name": "ADE_train_00008214.jpg", "width": 256, "id": 8213, "height": 256}, {"file_name": "ADE_train_00008215.jpg", "width": 256, "id": 8214, "height": 256}, {"file_name": "ADE_train_00008216.jpg", "width": 256, "id": 8215, "height": 256}, {"file_name": "ADE_train_00008217.jpg", "width": 256, "id": 8216, "height": 256}, {"file_name": "ADE_train_00008218.jpg", "width": 256, "id": 8217, "height": 256}, {"file_name": "ADE_train_00008219.jpg", "width": 256, "id": 8218, "height": 256}, {"file_name": "ADE_train_00008220.jpg", "width": 256, "id": 8219, "height": 256}, {"file_name": "ADE_train_00008221.jpg", "width": 256, "id": 8220, "height": 256}, {"file_name": "ADE_train_00008222.jpg", "width": 683, "id": 8221, "height": 512}, {"file_name": "ADE_train_00008223.jpg", "width": 300, "id": 8222, "height": 226}, {"file_name": "ADE_train_00008224.jpg", "width": 300, "id": 8223, "height": 201}, {"file_name": "ADE_train_00008225.jpg", "width": 512, "id": 8224, "height": 683}, {"file_name": "ADE_train_00008226.jpg", "width": 773, "id": 8225, "height": 512}, {"file_name": "ADE_train_00008227.jpg", "width": 683, "id": 8226, "height": 512}, {"file_name": "ADE_train_00008228.jpg", "width": 513, "id": 8227, "height": 376}, {"file_name": "ADE_train_00008229.jpg", "width": 320, "id": 8228, "height": 240}, {"file_name": "ADE_train_00008230.jpg", "width": 768, "id": 8229, "height": 512}, {"file_name": "ADE_train_00008231.jpg", "width": 334, "id": 8230, "height": 233}, {"file_name": "ADE_train_00008232.jpg", "width": 320, "id": 8231, "height": 247}, {"file_name": "ADE_train_00008233.jpg", "width": 613, "id": 8232, "height": 408}, {"file_name": "ADE_train_00008234.jpg", "width": 683, "id": 8233, "height": 512}, {"file_name": "ADE_train_00008235.jpg", "width": 768, "id": 8234, "height": 512}, {"file_name": "ADE_train_00008236.jpg", "width": 683, "id": 8235, "height": 512}, {"file_name": "ADE_train_00008237.jpg", "width": 683, "id": 8236, "height": 512}, {"file_name": "ADE_train_00008238.jpg", "width": 500, "id": 8237, "height": 375}, {"file_name": "ADE_train_00008239.jpg", "width": 772, "id": 8238, "height": 512}, {"file_name": "ADE_train_00008240.jpg", "width": 683, "id": 8239, "height": 512}, {"file_name": "ADE_train_00008241.jpg", "width": 683, "id": 8240, "height": 512}, {"file_name": "ADE_train_00008242.jpg", "width": 400, "id": 8241, "height": 300}, {"file_name": "ADE_train_00008243.jpg", "width": 683, "id": 8242, "height": 512}, {"file_name": "ADE_train_00008244.jpg", "width": 670, "id": 8243, "height": 503}, {"file_name": "ADE_train_00008245.jpg", "width": 500, "id": 8244, "height": 375}, {"file_name": "ADE_train_00008246.jpg", "width": 683, "id": 8245, "height": 512}, {"file_name": "ADE_train_00008247.jpg", "width": 530, "id": 8246, "height": 346}, {"file_name": "ADE_train_00008248.jpg", "width": 350, "id": 8247, "height": 332}, {"file_name": "ADE_train_00008249.jpg", "width": 600, "id": 8248, "height": 450}, {"file_name": "ADE_train_00008250.jpg", "width": 683, "id": 8249, "height": 512}, {"file_name": "ADE_train_00008251.jpg", "width": 400, "id": 8250, "height": 266}, {"file_name": "ADE_train_00008252.jpg", "width": 350, "id": 8251, "height": 234}, {"file_name": "ADE_train_00008253.jpg", "width": 759, "id": 8252, "height": 512}, {"file_name": "ADE_train_00008254.jpg", "width": 600, "id": 8253, "height": 450}, {"file_name": "ADE_train_00008255.jpg", "width": 420, "id": 8254, "height": 284}, {"file_name": "ADE_train_00008256.jpg", "width": 350, "id": 8255, "height": 371}, {"file_name": "ADE_train_00008257.jpg", "width": 235, "id": 8256, "height": 217}, {"file_name": "ADE_train_00008258.jpg", "width": 700, "id": 8257, "height": 700}, {"file_name": "ADE_train_00008259.jpg", "width": 400, "id": 8258, "height": 600}, {"file_name": "ADE_train_00008260.jpg", "width": 300, "id": 8259, "height": 441}, {"file_name": "ADE_train_00008261.jpg", "width": 640, "id": 8260, "height": 461}, {"file_name": "ADE_train_00008262.jpg", "width": 400, "id": 8261, "height": 284}, {"file_name": "ADE_train_00008263.jpg", "width": 512, "id": 8262, "height": 768}, {"file_name": "ADE_train_00008264.jpg", "width": 233, "id": 8263, "height": 350}, {"file_name": "ADE_train_00008265.jpg", "width": 240, "id": 8264, "height": 320}, {"file_name": "ADE_train_00008266.jpg", "width": 780, "id": 8265, "height": 512}, {"file_name": "ADE_train_00008267.jpg", "width": 683, "id": 8266, "height": 512}, {"file_name": "ADE_train_00008268.jpg", "width": 683, "id": 8267, "height": 512}, {"file_name": "ADE_train_00008269.jpg", "width": 680, "id": 8268, "height": 512}, {"file_name": "ADE_train_00008270.jpg", "width": 250, "id": 8269, "height": 333}, {"file_name": "ADE_train_00008271.jpg", "width": 270, "id": 8270, "height": 272}, {"file_name": "ADE_train_00008272.jpg", "width": 797, "id": 8271, "height": 512}, {"file_name": "ADE_train_00008273.jpg", "width": 527, "id": 8272, "height": 385}, {"file_name": "ADE_train_00008274.jpg", "width": 512, "id": 8273, "height": 683}, {"file_name": "ADE_train_00008275.jpg", "width": 653, "id": 8274, "height": 512}, {"file_name": "ADE_train_00008276.jpg", "width": 512, "id": 8275, "height": 665}, {"file_name": "ADE_train_00008277.jpg", "width": 776, "id": 8276, "height": 512}, {"file_name": "ADE_train_00008278.jpg", "width": 640, "id": 8277, "height": 480}, {"file_name": "ADE_train_00008279.jpg", "width": 683, "id": 8278, "height": 512}, {"file_name": "ADE_train_00008280.jpg", "width": 256, "id": 8279, "height": 256}, {"file_name": "ADE_train_00008281.jpg", "width": 683, "id": 8280, "height": 512}, {"file_name": "ADE_train_00008282.jpg", "width": 771, "id": 8281, "height": 512}, {"file_name": "ADE_train_00008283.jpg", "width": 683, "id": 8282, "height": 512}, {"file_name": "ADE_train_00008284.jpg", "width": 683, "id": 8283, "height": 512}, {"file_name": "ADE_train_00008285.jpg", "width": 645, "id": 8284, "height": 512}, {"file_name": "ADE_train_00008286.jpg", "width": 683, "id": 8285, "height": 512}, {"file_name": "ADE_train_00008287.jpg", "width": 683, "id": 8286, "height": 512}, {"file_name": "ADE_train_00008288.jpg", "width": 352, "id": 8287, "height": 288}, {"file_name": "ADE_train_00008289.jpg", "width": 453, "id": 8288, "height": 204}, {"file_name": "ADE_train_00008290.jpg", "width": 254, "id": 8289, "height": 259}, {"file_name": "ADE_train_00008291.jpg", "width": 400, "id": 8290, "height": 292}, {"file_name": "ADE_train_00008292.jpg", "width": 297, "id": 8291, "height": 227}, {"file_name": "ADE_train_00008293.jpg", "width": 602, "id": 8292, "height": 440}, {"file_name": "ADE_train_00008294.jpg", "width": 300, "id": 8293, "height": 200}, {"file_name": "ADE_train_00008295.jpg", "width": 550, "id": 8294, "height": 412}, {"file_name": "ADE_train_00008296.jpg", "width": 275, "id": 8295, "height": 202}, {"file_name": "ADE_train_00008297.jpg", "width": 779, "id": 8296, "height": 512}, {"file_name": "ADE_train_00008298.jpg", "width": 683, "id": 8297, "height": 512}, {"file_name": "ADE_train_00008299.jpg", "width": 683, "id": 8298, "height": 512}, {"file_name": "ADE_train_00008300.jpg", "width": 683, "id": 8299, "height": 512}, {"file_name": "ADE_train_00008301.jpg", "width": 600, "id": 8300, "height": 450}, {"file_name": "ADE_train_00008302.jpg", "width": 340, "id": 8301, "height": 261}, {"file_name": "ADE_train_00008303.jpg", "width": 470, "id": 8302, "height": 626}, {"file_name": "ADE_train_00008304.jpg", "width": 398, "id": 8303, "height": 309}, {"file_name": "ADE_train_00008305.jpg", "width": 683, "id": 8304, "height": 512}, {"file_name": "ADE_train_00008306.jpg", "width": 683, "id": 8305, "height": 512}, {"file_name": "ADE_train_00008307.jpg", "width": 600, "id": 8306, "height": 450}, {"file_name": "ADE_train_00008308.jpg", "width": 640, "id": 8307, "height": 427}, {"file_name": "ADE_train_00008309.jpg", "width": 613, "id": 8308, "height": 512}, {"file_name": "ADE_train_00008310.jpg", "width": 334, "id": 8309, "height": 250}, {"file_name": "ADE_train_00008311.jpg", "width": 283, "id": 8310, "height": 208}, {"file_name": "ADE_train_00008312.jpg", "width": 683, "id": 8311, "height": 512}, {"file_name": "ADE_train_00008313.jpg", "width": 512, "id": 8312, "height": 683}, {"file_name": "ADE_train_00008314.jpg", "width": 300, "id": 8313, "height": 225}, {"file_name": "ADE_train_00008315.jpg", "width": 770, "id": 8314, "height": 512}, {"file_name": "ADE_train_00008316.jpg", "width": 682, "id": 8315, "height": 512}, {"file_name": "ADE_train_00008317.jpg", "width": 768, "id": 8316, "height": 512}, {"file_name": "ADE_train_00008318.jpg", "width": 683, "id": 8317, "height": 512}, {"file_name": "ADE_train_00008319.jpg", "width": 683, "id": 8318, "height": 512}, {"file_name": "ADE_train_00008320.jpg", "width": 287, "id": 8319, "height": 215}, {"file_name": "ADE_train_00008321.jpg", "width": 683, "id": 8320, "height": 512}, {"file_name": "ADE_train_00008322.jpg", "width": 768, "id": 8321, "height": 512}, {"file_name": "ADE_train_00008323.jpg", "width": 512, "id": 8322, "height": 683}, {"file_name": "ADE_train_00008324.jpg", "width": 512, "id": 8323, "height": 683}, {"file_name": "ADE_train_00008325.jpg", "width": 683, "id": 8324, "height": 512}, {"file_name": "ADE_train_00008326.jpg", "width": 683, "id": 8325, "height": 512}, {"file_name": "ADE_train_00008327.jpg", "width": 300, "id": 8326, "height": 225}, {"file_name": "ADE_train_00008328.jpg", "width": 683, "id": 8327, "height": 512}, {"file_name": "ADE_train_00008329.jpg", "width": 357, "id": 8328, "height": 253}, {"file_name": "ADE_train_00008330.jpg", "width": 240, "id": 8329, "height": 320}, {"file_name": "ADE_train_00008331.jpg", "width": 314, "id": 8330, "height": 235}, {"file_name": "ADE_train_00008332.jpg", "width": 300, "id": 8331, "height": 225}, {"file_name": "ADE_train_00008333.jpg", "width": 683, "id": 8332, "height": 512}, {"file_name": "ADE_train_00008334.jpg", "width": 768, "id": 8333, "height": 512}, {"file_name": "ADE_train_00008335.jpg", "width": 640, "id": 8334, "height": 480}, {"file_name": "ADE_train_00008336.jpg", "width": 683, "id": 8335, "height": 512}, {"file_name": "ADE_train_00008337.jpg", "width": 640, "id": 8336, "height": 480}, {"file_name": "ADE_train_00008338.jpg", "width": 762, "id": 8337, "height": 512}, {"file_name": "ADE_train_00008339.jpg", "width": 640, "id": 8338, "height": 415}, {"file_name": "ADE_train_00008340.jpg", "width": 683, "id": 8339, "height": 512}, {"file_name": "ADE_train_00008341.jpg", "width": 690, "id": 8340, "height": 468}, {"file_name": "ADE_train_00008342.jpg", "width": 600, "id": 8341, "height": 421}, {"file_name": "ADE_train_00008343.jpg", "width": 480, "id": 8342, "height": 360}, {"file_name": "ADE_train_00008344.jpg", "width": 688, "id": 8343, "height": 455}, {"file_name": "ADE_train_00008345.jpg", "width": 640, "id": 8344, "height": 480}, {"file_name": "ADE_train_00008346.jpg", "width": 683, "id": 8345, "height": 512}, {"file_name": "ADE_train_00008347.jpg", "width": 585, "id": 8346, "height": 439}, {"file_name": "ADE_train_00008348.jpg", "width": 686, "id": 8347, "height": 481}, {"file_name": "ADE_train_00008349.jpg", "width": 692, "id": 8348, "height": 461}, {"file_name": "ADE_train_00008350.jpg", "width": 640, "id": 8349, "height": 480}, {"file_name": "ADE_train_00008351.jpg", "width": 681, "id": 8350, "height": 447}, {"file_name": "ADE_train_00008352.jpg", "width": 640, "id": 8351, "height": 480}, {"file_name": "ADE_train_00008353.jpg", "width": 684, "id": 8352, "height": 459}, {"file_name": "ADE_train_00008354.jpg", "width": 640, "id": 8353, "height": 480}, {"file_name": "ADE_train_00008355.jpg", "width": 675, "id": 8354, "height": 450}, {"file_name": "ADE_train_00008356.jpg", "width": 600, "id": 8355, "height": 448}, {"file_name": "ADE_train_00008357.jpg", "width": 683, "id": 8356, "height": 512}, {"file_name": "ADE_train_00008358.jpg", "width": 683, "id": 8357, "height": 512}, {"file_name": "ADE_train_00008359.jpg", "width": 440, "id": 8358, "height": 330}, {"file_name": "ADE_train_00008360.jpg", "width": 500, "id": 8359, "height": 377}, {"file_name": "ADE_train_00008361.jpg", "width": 679, "id": 8360, "height": 512}, {"file_name": "ADE_train_00008362.jpg", "width": 397, "id": 8361, "height": 296}, {"file_name": "ADE_train_00008363.jpg", "width": 550, "id": 8362, "height": 412}, {"file_name": "ADE_train_00008364.jpg", "width": 480, "id": 8363, "height": 640}, {"file_name": "ADE_train_00008365.jpg", "width": 295, "id": 8364, "height": 200}, {"file_name": "ADE_train_00008366.jpg", "width": 256, "id": 8365, "height": 256}, {"file_name": "ADE_train_00008367.jpg", "width": 585, "id": 8366, "height": 439}, {"file_name": "ADE_train_00008368.jpg", "width": 450, "id": 8367, "height": 338}, {"file_name": "ADE_train_00008369.jpg", "width": 756, "id": 8368, "height": 504}, {"file_name": "ADE_train_00008370.jpg", "width": 702, "id": 8369, "height": 512}, {"file_name": "ADE_train_00008371.jpg", "width": 400, "id": 8370, "height": 300}, {"file_name": "ADE_train_00008372.jpg", "width": 768, "id": 8371, "height": 512}, {"file_name": "ADE_train_00008373.jpg", "width": 683, "id": 8372, "height": 512}, {"file_name": "ADE_train_00008374.jpg", "width": 771, "id": 8373, "height": 512}, {"file_name": "ADE_train_00008375.jpg", "width": 350, "id": 8374, "height": 229}, {"file_name": "ADE_train_00008376.jpg", "width": 683, "id": 8375, "height": 512}, {"file_name": "ADE_train_00008377.jpg", "width": 769, "id": 8376, "height": 512}, {"file_name": "ADE_train_00008378.jpg", "width": 683, "id": 8377, "height": 512}, {"file_name": "ADE_train_00008379.jpg", "width": 288, "id": 8378, "height": 216}, {"file_name": "ADE_train_00008380.jpg", "width": 753, "id": 8379, "height": 512}, {"file_name": "ADE_train_00008381.jpg", "width": 683, "id": 8380, "height": 512}, {"file_name": "ADE_train_00008382.jpg", "width": 320, "id": 8381, "height": 240}, {"file_name": "ADE_train_00008383.jpg", "width": 300, "id": 8382, "height": 225}, {"file_name": "ADE_train_00008384.jpg", "width": 772, "id": 8383, "height": 512}, {"file_name": "ADE_train_00008385.jpg", "width": 683, "id": 8384, "height": 512}, {"file_name": "ADE_train_00008386.jpg", "width": 512, "id": 8385, "height": 765}, {"file_name": "ADE_train_00008387.jpg", "width": 683, "id": 8386, "height": 512}, {"file_name": "ADE_train_00008388.jpg", "width": 765, "id": 8387, "height": 512}, {"file_name": "ADE_train_00008389.jpg", "width": 512, "id": 8388, "height": 683}, {"file_name": "ADE_train_00008390.jpg", "width": 305, "id": 8389, "height": 229}, {"file_name": "ADE_train_00008391.jpg", "width": 300, "id": 8390, "height": 300}, {"file_name": "ADE_train_00008392.jpg", "width": 383, "id": 8391, "height": 233}, {"file_name": "ADE_train_00008393.jpg", "width": 676, "id": 8392, "height": 512}, {"file_name": "ADE_train_00008394.jpg", "width": 683, "id": 8393, "height": 512}, {"file_name": "ADE_train_00008395.jpg", "width": 683, "id": 8394, "height": 512}, {"file_name": "ADE_train_00008396.jpg", "width": 683, "id": 8395, "height": 512}, {"file_name": "ADE_train_00008397.jpg", "width": 320, "id": 8396, "height": 240}, {"file_name": "ADE_train_00008398.jpg", "width": 683, "id": 8397, "height": 512}, {"file_name": "ADE_train_00008399.jpg", "width": 346, "id": 8398, "height": 260}, {"file_name": "ADE_train_00008400.jpg", "width": 320, "id": 8399, "height": 213}, {"file_name": "ADE_train_00008401.jpg", "width": 291, "id": 8400, "height": 224}, {"file_name": "ADE_train_00008402.jpg", "width": 350, "id": 8401, "height": 233}, {"file_name": "ADE_train_00008403.jpg", "width": 683, "id": 8402, "height": 512}, {"file_name": "ADE_train_00008404.jpg", "width": 683, "id": 8403, "height": 512}, {"file_name": "ADE_train_00008405.jpg", "width": 683, "id": 8404, "height": 512}, {"file_name": "ADE_train_00008406.jpg", "width": 291, "id": 8405, "height": 203}, {"file_name": "ADE_train_00008407.jpg", "width": 288, "id": 8406, "height": 285}, {"file_name": "ADE_train_00008408.jpg", "width": 678, "id": 8407, "height": 512}, {"file_name": "ADE_train_00008409.jpg", "width": 300, "id": 8408, "height": 225}, {"file_name": "ADE_train_00008410.jpg", "width": 320, "id": 8409, "height": 240}, {"file_name": "ADE_train_00008411.jpg", "width": 296, "id": 8410, "height": 222}, {"file_name": "ADE_train_00008412.jpg", "width": 683, "id": 8411, "height": 512}, {"file_name": "ADE_train_00008413.jpg", "width": 344, "id": 8412, "height": 229}, {"file_name": "ADE_train_00008414.jpg", "width": 300, "id": 8413, "height": 233}, {"file_name": "ADE_train_00008415.jpg", "width": 794, "id": 8414, "height": 512}, {"file_name": "ADE_train_00008416.jpg", "width": 300, "id": 8415, "height": 225}, {"file_name": "ADE_train_00008417.jpg", "width": 683, "id": 8416, "height": 512}, {"file_name": "ADE_train_00008418.jpg", "width": 683, "id": 8417, "height": 512}, {"file_name": "ADE_train_00008419.jpg", "width": 683, "id": 8418, "height": 512}, {"file_name": "ADE_train_00008420.jpg", "width": 768, "id": 8419, "height": 512}, {"file_name": "ADE_train_00008421.jpg", "width": 768, "id": 8420, "height": 512}, {"file_name": "ADE_train_00008422.jpg", "width": 683, "id": 8421, "height": 512}, {"file_name": "ADE_train_00008423.jpg", "width": 320, "id": 8422, "height": 240}, {"file_name": "ADE_train_00008424.jpg", "width": 320, "id": 8423, "height": 240}, {"file_name": "ADE_train_00008425.jpg", "width": 770, "id": 8424, "height": 512}, {"file_name": "ADE_train_00008426.jpg", "width": 683, "id": 8425, "height": 512}, {"file_name": "ADE_train_00008427.jpg", "width": 811, "id": 8426, "height": 512}, {"file_name": "ADE_train_00008428.jpg", "width": 683, "id": 8427, "height": 512}, {"file_name": "ADE_train_00008429.jpg", "width": 683, "id": 8428, "height": 512}, {"file_name": "ADE_train_00008430.jpg", "width": 300, "id": 8429, "height": 225}, {"file_name": "ADE_train_00008431.jpg", "width": 360, "id": 8430, "height": 240}, {"file_name": "ADE_train_00008432.jpg", "width": 512, "id": 8431, "height": 683}, {"file_name": "ADE_train_00008433.jpg", "width": 640, "id": 8432, "height": 480}, {"file_name": "ADE_train_00008434.jpg", "width": 448, "id": 8433, "height": 301}, {"file_name": "ADE_train_00008435.jpg", "width": 584, "id": 8434, "height": 386}, {"file_name": "ADE_train_00008436.jpg", "width": 475, "id": 8435, "height": 356}, {"file_name": "ADE_train_00008437.jpg", "width": 340, "id": 8436, "height": 234}, {"file_name": "ADE_train_00008438.jpg", "width": 683, "id": 8437, "height": 512}, {"file_name": "ADE_train_00008439.jpg", "width": 350, "id": 8438, "height": 280}, {"file_name": "ADE_train_00008440.jpg", "width": 640, "id": 8439, "height": 480}, {"file_name": "ADE_train_00008441.jpg", "width": 512, "id": 8440, "height": 683}, {"file_name": "ADE_train_00008442.jpg", "width": 683, "id": 8441, "height": 512}, {"file_name": "ADE_train_00008443.jpg", "width": 640, "id": 8442, "height": 480}, {"file_name": "ADE_train_00008444.jpg", "width": 400, "id": 8443, "height": 300}, {"file_name": "ADE_train_00008445.jpg", "width": 400, "id": 8444, "height": 300}, {"file_name": "ADE_train_00008446.jpg", "width": 256, "id": 8445, "height": 256}, {"file_name": "ADE_train_00008447.jpg", "width": 400, "id": 8446, "height": 300}, {"file_name": "ADE_train_00008448.jpg", "width": 256, "id": 8447, "height": 256}, {"file_name": "ADE_train_00008449.jpg", "width": 450, "id": 8448, "height": 300}, {"file_name": "ADE_train_00008450.jpg", "width": 400, "id": 8449, "height": 300}, {"file_name": "ADE_train_00008451.jpg", "width": 640, "id": 8450, "height": 480}, {"file_name": "ADE_train_00008452.jpg", "width": 446, "id": 8451, "height": 334}, {"file_name": "ADE_train_00008453.jpg", "width": 536, "id": 8452, "height": 409}, {"file_name": "ADE_train_00008454.jpg", "width": 350, "id": 8453, "height": 280}, {"file_name": "ADE_train_00008455.jpg", "width": 686, "id": 8454, "height": 512}, {"file_name": "ADE_train_00008456.jpg", "width": 637, "id": 8455, "height": 512}, {"file_name": "ADE_train_00008457.jpg", "width": 256, "id": 8456, "height": 256}, {"file_name": "ADE_train_00008458.jpg", "width": 609, "id": 8457, "height": 456}, {"file_name": "ADE_train_00008459.jpg", "width": 683, "id": 8458, "height": 512}, {"file_name": "ADE_train_00008460.jpg", "width": 360, "id": 8459, "height": 270}, {"file_name": "ADE_train_00008461.jpg", "width": 609, "id": 8460, "height": 456}, {"file_name": "ADE_train_00008462.jpg", "width": 396, "id": 8461, "height": 297}, {"file_name": "ADE_train_00008463.jpg", "width": 640, "id": 8462, "height": 480}, {"file_name": "ADE_train_00008464.jpg", "width": 500, "id": 8463, "height": 375}, {"file_name": "ADE_train_00008465.jpg", "width": 640, "id": 8464, "height": 480}, {"file_name": "ADE_train_00008466.jpg", "width": 684, "id": 8465, "height": 512}, {"file_name": "ADE_train_00008467.jpg", "width": 400, "id": 8466, "height": 300}, {"file_name": "ADE_train_00008468.jpg", "width": 637, "id": 8467, "height": 378}, {"file_name": "ADE_train_00008469.jpg", "width": 781, "id": 8468, "height": 512}, {"file_name": "ADE_train_00008470.jpg", "width": 256, "id": 8469, "height": 256}, {"file_name": "ADE_train_00008471.jpg", "width": 683, "id": 8470, "height": 512}, {"file_name": "ADE_train_00008472.jpg", "width": 256, "id": 8471, "height": 256}, {"file_name": "ADE_train_00008473.jpg", "width": 400, "id": 8472, "height": 300}, {"file_name": "ADE_train_00008474.jpg", "width": 640, "id": 8473, "height": 480}, {"file_name": "ADE_train_00008475.jpg", "width": 526, "id": 8474, "height": 394}, {"file_name": "ADE_train_00008476.jpg", "width": 500, "id": 8475, "height": 333}, {"file_name": "ADE_train_00008477.jpg", "width": 432, "id": 8476, "height": 324}, {"file_name": "ADE_train_00008478.jpg", "width": 683, "id": 8477, "height": 512}, {"file_name": "ADE_train_00008479.jpg", "width": 814, "id": 8478, "height": 512}, {"file_name": "ADE_train_00008480.jpg", "width": 350, "id": 8479, "height": 245}, {"file_name": "ADE_train_00008481.jpg", "width": 683, "id": 8480, "height": 512}, {"file_name": "ADE_train_00008482.jpg", "width": 683, "id": 8481, "height": 512}, {"file_name": "ADE_train_00008483.jpg", "width": 683, "id": 8482, "height": 512}, {"file_name": "ADE_train_00008484.jpg", "width": 341, "id": 8483, "height": 205}, {"file_name": "ADE_train_00008485.jpg", "width": 683, "id": 8484, "height": 512}, {"file_name": "ADE_train_00008486.jpg", "width": 683, "id": 8485, "height": 512}, {"file_name": "ADE_train_00008487.jpg", "width": 768, "id": 8486, "height": 512}, {"file_name": "ADE_train_00008488.jpg", "width": 683, "id": 8487, "height": 512}, {"file_name": "ADE_train_00008489.jpg", "width": 683, "id": 8488, "height": 512}, {"file_name": "ADE_train_00008490.jpg", "width": 260, "id": 8489, "height": 194}, {"file_name": "ADE_train_00008491.jpg", "width": 682, "id": 8490, "height": 512}, {"file_name": "ADE_train_00008492.jpg", "width": 683, "id": 8491, "height": 512}, {"file_name": "ADE_train_00008493.jpg", "width": 683, "id": 8492, "height": 512}, {"file_name": "ADE_train_00008494.jpg", "width": 683, "id": 8493, "height": 512}, {"file_name": "ADE_train_00008495.jpg", "width": 683, "id": 8494, "height": 512}, {"file_name": "ADE_train_00008496.jpg", "width": 683, "id": 8495, "height": 512}, {"file_name": "ADE_train_00008497.jpg", "width": 683, "id": 8496, "height": 512}, {"file_name": "ADE_train_00008498.jpg", "width": 266, "id": 8497, "height": 406}, {"file_name": "ADE_train_00008499.jpg", "width": 422, "id": 8498, "height": 290}, {"file_name": "ADE_train_00008500.jpg", "width": 358, "id": 8499, "height": 257}, {"file_name": "ADE_train_00008501.jpg", "width": 432, "id": 8500, "height": 269}, {"file_name": "ADE_train_00008502.jpg", "width": 293, "id": 8501, "height": 203}, {"file_name": "ADE_train_00008503.jpg", "width": 552, "id": 8502, "height": 366}, {"file_name": "ADE_train_00008504.jpg", "width": 394, "id": 8503, "height": 244}, {"file_name": "ADE_train_00008505.jpg", "width": 683, "id": 8504, "height": 512}, {"file_name": "ADE_train_00008506.jpg", "width": 264, "id": 8505, "height": 212}, {"file_name": "ADE_train_00008507.jpg", "width": 300, "id": 8506, "height": 300}, {"file_name": "ADE_train_00008508.jpg", "width": 683, "id": 8507, "height": 512}, {"file_name": "ADE_train_00008509.jpg", "width": 764, "id": 8508, "height": 512}, {"file_name": "ADE_train_00008510.jpg", "width": 683, "id": 8509, "height": 512}, {"file_name": "ADE_train_00008511.jpg", "width": 628, "id": 8510, "height": 408}, {"file_name": "ADE_train_00008512.jpg", "width": 700, "id": 8511, "height": 503}, {"file_name": "ADE_train_00008513.jpg", "width": 500, "id": 8512, "height": 338}, {"file_name": "ADE_train_00008514.jpg", "width": 300, "id": 8513, "height": 225}, {"file_name": "ADE_train_00008515.jpg", "width": 350, "id": 8514, "height": 256}, {"file_name": "ADE_train_00008516.jpg", "width": 400, "id": 8515, "height": 267}, {"file_name": "ADE_train_00008517.jpg", "width": 683, "id": 8516, "height": 512}, {"file_name": "ADE_train_00008518.jpg", "width": 300, "id": 8517, "height": 225}, {"file_name": "ADE_train_00008519.jpg", "width": 949, "id": 8518, "height": 512}, {"file_name": "ADE_train_00008520.jpg", "width": 300, "id": 8519, "height": 210}, {"file_name": "ADE_train_00008521.jpg", "width": 683, "id": 8520, "height": 512}, {"file_name": "ADE_train_00008522.jpg", "width": 280, "id": 8521, "height": 207}, {"file_name": "ADE_train_00008523.jpg", "width": 696, "id": 8522, "height": 512}, {"file_name": "ADE_train_00008524.jpg", "width": 300, "id": 8523, "height": 209}, {"file_name": "ADE_train_00008525.jpg", "width": 300, "id": 8524, "height": 225}, {"file_name": "ADE_train_00008526.jpg", "width": 640, "id": 8525, "height": 415}, {"file_name": "ADE_train_00008527.jpg", "width": 256, "id": 8526, "height": 256}, {"file_name": "ADE_train_00008528.jpg", "width": 256, "id": 8527, "height": 256}, {"file_name": "ADE_train_00008529.jpg", "width": 200, "id": 8528, "height": 259}, {"file_name": "ADE_train_00008530.jpg", "width": 640, "id": 8529, "height": 415}, {"file_name": "ADE_train_00008531.jpg", "width": 506, "id": 8530, "height": 380}, {"file_name": "ADE_train_00008532.jpg", "width": 640, "id": 8531, "height": 480}, {"file_name": "ADE_train_00008533.jpg", "width": 400, "id": 8532, "height": 300}, {"file_name": "ADE_train_00008534.jpg", "width": 700, "id": 8533, "height": 467}, {"file_name": "ADE_train_00008535.jpg", "width": 595, "id": 8534, "height": 397}, {"file_name": "ADE_train_00008536.jpg", "width": 300, "id": 8535, "height": 225}, {"file_name": "ADE_train_00008537.jpg", "width": 645, "id": 8536, "height": 512}, {"file_name": "ADE_train_00008538.jpg", "width": 512, "id": 8537, "height": 599}, {"file_name": "ADE_train_00008539.jpg", "width": 683, "id": 8538, "height": 512}, {"file_name": "ADE_train_00008540.jpg", "width": 300, "id": 8539, "height": 225}, {"file_name": "ADE_train_00008541.jpg", "width": 512, "id": 8540, "height": 768}, {"file_name": "ADE_train_00008542.jpg", "width": 643, "id": 8541, "height": 470}, {"file_name": "ADE_train_00008543.jpg", "width": 300, "id": 8542, "height": 325}, {"file_name": "ADE_train_00008544.jpg", "width": 451, "id": 8543, "height": 338}, {"file_name": "ADE_train_00008545.jpg", "width": 697, "id": 8544, "height": 512}, {"file_name": "ADE_train_00008546.jpg", "width": 360, "id": 8545, "height": 480}, {"file_name": "ADE_train_00008547.jpg", "width": 512, "id": 8546, "height": 683}, {"file_name": "ADE_train_00008548.jpg", "width": 282, "id": 8547, "height": 265}, {"file_name": "ADE_train_00008549.jpg", "width": 683, "id": 8548, "height": 512}, {"file_name": "ADE_train_00008550.jpg", "width": 765, "id": 8549, "height": 512}, {"file_name": "ADE_train_00008551.jpg", "width": 524, "id": 8550, "height": 512}, {"file_name": "ADE_train_00008552.jpg", "width": 772, "id": 8551, "height": 512}, {"file_name": "ADE_train_00008553.jpg", "width": 683, "id": 8552, "height": 512}, {"file_name": "ADE_train_00008554.jpg", "width": 683, "id": 8553, "height": 512}, {"file_name": "ADE_train_00008555.jpg", "width": 409, "id": 8554, "height": 289}, {"file_name": "ADE_train_00008556.jpg", "width": 683, "id": 8555, "height": 512}, {"file_name": "ADE_train_00008557.jpg", "width": 280, "id": 8556, "height": 222}, {"file_name": "ADE_train_00008558.jpg", "width": 219, "id": 8557, "height": 205}, {"file_name": "ADE_train_00008559.jpg", "width": 741, "id": 8558, "height": 512}, {"file_name": "ADE_train_00008560.jpg", "width": 683, "id": 8559, "height": 512}, {"file_name": "ADE_train_00008561.jpg", "width": 512, "id": 8560, "height": 683}, {"file_name": "ADE_train_00008562.jpg", "width": 854, "id": 8561, "height": 512}, {"file_name": "ADE_train_00008563.jpg", "width": 402, "id": 8562, "height": 302}, {"file_name": "ADE_train_00008564.jpg", "width": 300, "id": 8563, "height": 300}, {"file_name": "ADE_train_00008565.jpg", "width": 683, "id": 8564, "height": 512}, {"file_name": "ADE_train_00008566.jpg", "width": 494, "id": 8565, "height": 362}, {"file_name": "ADE_train_00008567.jpg", "width": 265, "id": 8566, "height": 372}, {"file_name": "ADE_train_00008568.jpg", "width": 683, "id": 8567, "height": 512}, {"file_name": "ADE_train_00008569.jpg", "width": 512, "id": 8568, "height": 696}, {"file_name": "ADE_train_00008570.jpg", "width": 285, "id": 8569, "height": 214}, {"file_name": "ADE_train_00008571.jpg", "width": 683, "id": 8570, "height": 512}, {"file_name": "ADE_train_00008572.jpg", "width": 683, "id": 8571, "height": 512}, {"file_name": "ADE_train_00008573.jpg", "width": 300, "id": 8572, "height": 255}, {"file_name": "ADE_train_00008574.jpg", "width": 576, "id": 8573, "height": 419}, {"file_name": "ADE_train_00008575.jpg", "width": 320, "id": 8574, "height": 240}, {"file_name": "ADE_train_00008576.jpg", "width": 768, "id": 8575, "height": 512}, {"file_name": "ADE_train_00008577.jpg", "width": 783, "id": 8576, "height": 512}, {"file_name": "ADE_train_00008578.jpg", "width": 683, "id": 8577, "height": 512}, {"file_name": "ADE_train_00008579.jpg", "width": 400, "id": 8578, "height": 251}, {"file_name": "ADE_train_00008580.jpg", "width": 300, "id": 8579, "height": 225}, {"file_name": "ADE_train_00008581.jpg", "width": 683, "id": 8580, "height": 512}, {"file_name": "ADE_train_00008582.jpg", "width": 683, "id": 8581, "height": 512}, {"file_name": "ADE_train_00008583.jpg", "width": 324, "id": 8582, "height": 243}, {"file_name": "ADE_train_00008584.jpg", "width": 683, "id": 8583, "height": 512}, {"file_name": "ADE_train_00008585.jpg", "width": 500, "id": 8584, "height": 375}, {"file_name": "ADE_train_00008586.jpg", "width": 683, "id": 8585, "height": 512}, {"file_name": "ADE_train_00008587.jpg", "width": 674, "id": 8586, "height": 512}, {"file_name": "ADE_train_00008588.jpg", "width": 683, "id": 8587, "height": 512}, {"file_name": "ADE_train_00008589.jpg", "width": 288, "id": 8588, "height": 216}, {"file_name": "ADE_train_00008590.jpg", "width": 658, "id": 8589, "height": 512}, {"file_name": "ADE_train_00008591.jpg", "width": 344, "id": 8590, "height": 219}, {"file_name": "ADE_train_00008592.jpg", "width": 640, "id": 8591, "height": 426}, {"file_name": "ADE_train_00008593.jpg", "width": 420, "id": 8592, "height": 316}, {"file_name": "ADE_train_00008594.jpg", "width": 350, "id": 8593, "height": 287}, {"file_name": "ADE_train_00008595.jpg", "width": 438, "id": 8594, "height": 346}, {"file_name": "ADE_train_00008596.jpg", "width": 379, "id": 8595, "height": 252}, {"file_name": "ADE_train_00008597.jpg", "width": 550, "id": 8596, "height": 366}, {"file_name": "ADE_train_00008598.jpg", "width": 450, "id": 8597, "height": 338}, {"file_name": "ADE_train_00008599.jpg", "width": 640, "id": 8598, "height": 401}, {"file_name": "ADE_train_00008600.jpg", "width": 683, "id": 8599, "height": 512}, {"file_name": "ADE_train_00008601.jpg", "width": 683, "id": 8600, "height": 512}, {"file_name": "ADE_train_00008602.jpg", "width": 683, "id": 8601, "height": 512}, {"file_name": "ADE_train_00008603.jpg", "width": 683, "id": 8602, "height": 512}, {"file_name": "ADE_train_00008604.jpg", "width": 512, "id": 8603, "height": 683}, {"file_name": "ADE_train_00008605.jpg", "width": 512, "id": 8604, "height": 752}, {"file_name": "ADE_train_00008606.jpg", "width": 768, "id": 8605, "height": 512}, {"file_name": "ADE_train_00008607.jpg", "width": 512, "id": 8606, "height": 683}, {"file_name": "ADE_train_00008608.jpg", "width": 683, "id": 8607, "height": 512}, {"file_name": "ADE_train_00008609.jpg", "width": 450, "id": 8608, "height": 258}, {"file_name": "ADE_train_00008610.jpg", "width": 720, "id": 8609, "height": 480}, {"file_name": "ADE_train_00008611.jpg", "width": 320, "id": 8610, "height": 240}, {"file_name": "ADE_train_00008612.jpg", "width": 330, "id": 8611, "height": 248}, {"file_name": "ADE_train_00008613.jpg", "width": 320, "id": 8612, "height": 240}, {"file_name": "ADE_train_00008614.jpg", "width": 320, "id": 8613, "height": 228}, {"file_name": "ADE_train_00008615.jpg", "width": 240, "id": 8614, "height": 206}, {"file_name": "ADE_train_00008616.jpg", "width": 693, "id": 8615, "height": 512}, {"file_name": "ADE_train_00008617.jpg", "width": 324, "id": 8616, "height": 243}, {"file_name": "ADE_train_00008618.jpg", "width": 300, "id": 8617, "height": 224}, {"file_name": "ADE_train_00008619.jpg", "width": 325, "id": 8618, "height": 218}, {"file_name": "ADE_train_00008620.jpg", "width": 640, "id": 8619, "height": 512}, {"file_name": "ADE_train_00008621.jpg", "width": 318, "id": 8620, "height": 228}, {"file_name": "ADE_train_00008622.jpg", "width": 512, "id": 8621, "height": 683}, {"file_name": "ADE_train_00008623.jpg", "width": 350, "id": 8622, "height": 233}, {"file_name": "ADE_train_00008624.jpg", "width": 683, "id": 8623, "height": 512}, {"file_name": "ADE_train_00008625.jpg", "width": 683, "id": 8624, "height": 512}, {"file_name": "ADE_train_00008626.jpg", "width": 683, "id": 8625, "height": 512}, {"file_name": "ADE_train_00008627.jpg", "width": 500, "id": 8626, "height": 333}, {"file_name": "ADE_train_00008628.jpg", "width": 768, "id": 8627, "height": 512}, {"file_name": "ADE_train_00008629.jpg", "width": 683, "id": 8628, "height": 512}, {"file_name": "ADE_train_00008630.jpg", "width": 424, "id": 8629, "height": 226}, {"file_name": "ADE_train_00008631.jpg", "width": 560, "id": 8630, "height": 370}, {"file_name": "ADE_train_00008632.jpg", "width": 640, "id": 8631, "height": 480}, {"file_name": "ADE_train_00008633.jpg", "width": 504, "id": 8632, "height": 316}, {"file_name": "ADE_train_00008634.jpg", "width": 781, "id": 8633, "height": 512}, {"file_name": "ADE_train_00008635.jpg", "width": 683, "id": 8634, "height": 512}, {"file_name": "ADE_train_00008636.jpg", "width": 683, "id": 8635, "height": 512}, {"file_name": "ADE_train_00008637.jpg", "width": 598, "id": 8636, "height": 372}, {"file_name": "ADE_train_00008638.jpg", "width": 447, "id": 8637, "height": 333}, {"file_name": "ADE_train_00008639.jpg", "width": 609, "id": 8638, "height": 433}, {"file_name": "ADE_train_00008640.jpg", "width": 683, "id": 8639, "height": 512}, {"file_name": "ADE_train_00008641.jpg", "width": 743, "id": 8640, "height": 512}, {"file_name": "ADE_train_00008642.jpg", "width": 299, "id": 8641, "height": 299}, {"file_name": "ADE_train_00008643.jpg", "width": 683, "id": 8642, "height": 512}, {"file_name": "ADE_train_00008644.jpg", "width": 683, "id": 8643, "height": 512}, {"file_name": "ADE_train_00008645.jpg", "width": 768, "id": 8644, "height": 512}, {"file_name": "ADE_train_00008646.jpg", "width": 683, "id": 8645, "height": 512}, {"file_name": "ADE_train_00008647.jpg", "width": 683, "id": 8646, "height": 512}, {"file_name": "ADE_train_00008648.jpg", "width": 359, "id": 8647, "height": 255}, {"file_name": "ADE_train_00008649.jpg", "width": 757, "id": 8648, "height": 512}, {"file_name": "ADE_train_00008650.jpg", "width": 683, "id": 8649, "height": 512}, {"file_name": "ADE_train_00008651.jpg", "width": 450, "id": 8650, "height": 600}, {"file_name": "ADE_train_00008652.jpg", "width": 660, "id": 8651, "height": 472}, {"file_name": "ADE_train_00008653.jpg", "width": 470, "id": 8652, "height": 288}, {"file_name": "ADE_train_00008654.jpg", "width": 683, "id": 8653, "height": 512}, {"file_name": "ADE_train_00008655.jpg", "width": 500, "id": 8654, "height": 375}, {"file_name": "ADE_train_00008656.jpg", "width": 640, "id": 8655, "height": 480}, {"file_name": "ADE_train_00008657.jpg", "width": 256, "id": 8656, "height": 256}, {"file_name": "ADE_train_00008658.jpg", "width": 320, "id": 8657, "height": 240}, {"file_name": "ADE_train_00008659.jpg", "width": 683, "id": 8658, "height": 512}, {"file_name": "ADE_train_00008660.jpg", "width": 341, "id": 8659, "height": 249}, {"file_name": "ADE_train_00008661.jpg", "width": 676, "id": 8660, "height": 512}, {"file_name": "ADE_train_00008662.jpg", "width": 683, "id": 8661, "height": 512}, {"file_name": "ADE_train_00008663.jpg", "width": 256, "id": 8662, "height": 256}, {"file_name": "ADE_train_00008664.jpg", "width": 512, "id": 8663, "height": 763}, {"file_name": "ADE_train_00008665.jpg", "width": 512, "id": 8664, "height": 544}, {"file_name": "ADE_train_00008666.jpg", "width": 683, "id": 8665, "height": 512}, {"file_name": "ADE_train_00008667.jpg", "width": 982, "id": 8666, "height": 512}, {"file_name": "ADE_train_00008668.jpg", "width": 661, "id": 8667, "height": 512}, {"file_name": "ADE_train_00008669.jpg", "width": 768, "id": 8668, "height": 512}, {"file_name": "ADE_train_00008670.jpg", "width": 683, "id": 8669, "height": 512}, {"file_name": "ADE_train_00008671.jpg", "width": 683, "id": 8670, "height": 512}, {"file_name": "ADE_train_00008672.jpg", "width": 768, "id": 8671, "height": 512}, {"file_name": "ADE_train_00008673.jpg", "width": 512, "id": 8672, "height": 683}, {"file_name": "ADE_train_00008674.jpg", "width": 512, "id": 8673, "height": 682}, {"file_name": "ADE_train_00008675.jpg", "width": 683, "id": 8674, "height": 512}, {"file_name": "ADE_train_00008676.jpg", "width": 774, "id": 8675, "height": 512}, {"file_name": "ADE_train_00008677.jpg", "width": 683, "id": 8676, "height": 512}, {"file_name": "ADE_train_00008678.jpg", "width": 683, "id": 8677, "height": 512}, {"file_name": "ADE_train_00008679.jpg", "width": 424, "id": 8678, "height": 213}, {"file_name": "ADE_train_00008680.jpg", "width": 684, "id": 8679, "height": 512}, {"file_name": "ADE_train_00008681.jpg", "width": 757, "id": 8680, "height": 512}, {"file_name": "ADE_train_00008682.jpg", "width": 683, "id": 8681, "height": 512}, {"file_name": "ADE_train_00008683.jpg", "width": 752, "id": 8682, "height": 512}, {"file_name": "ADE_train_00008684.jpg", "width": 640, "id": 8683, "height": 512}, {"file_name": "ADE_train_00008685.jpg", "width": 754, "id": 8684, "height": 512}, {"file_name": "ADE_train_00008686.jpg", "width": 512, "id": 8685, "height": 683}, {"file_name": "ADE_train_00008687.jpg", "width": 640, "id": 8686, "height": 512}, {"file_name": "ADE_train_00008688.jpg", "width": 683, "id": 8687, "height": 512}, {"file_name": "ADE_train_00008689.jpg", "width": 683, "id": 8688, "height": 512}, {"file_name": "ADE_train_00008690.jpg", "width": 180, "id": 8689, "height": 207}, {"file_name": "ADE_train_00008691.jpg", "width": 683, "id": 8690, "height": 512}, {"file_name": "ADE_train_00008692.jpg", "width": 213, "id": 8691, "height": 320}, {"file_name": "ADE_train_00008693.jpg", "width": 777, "id": 8692, "height": 512}, {"file_name": "ADE_train_00008694.jpg", "width": 683, "id": 8693, "height": 512}, {"file_name": "ADE_train_00008695.jpg", "width": 619, "id": 8694, "height": 512}, {"file_name": "ADE_train_00008696.jpg", "width": 683, "id": 8695, "height": 512}, {"file_name": "ADE_train_00008697.jpg", "width": 768, "id": 8696, "height": 512}, {"file_name": "ADE_train_00008698.jpg", "width": 768, "id": 8697, "height": 512}, {"file_name": "ADE_train_00008699.jpg", "width": 768, "id": 8698, "height": 512}, {"file_name": "ADE_train_00008700.jpg", "width": 712, "id": 8699, "height": 512}, {"file_name": "ADE_train_00008701.jpg", "width": 273, "id": 8700, "height": 200}, {"file_name": "ADE_train_00008702.jpg", "width": 300, "id": 8701, "height": 203}, {"file_name": "ADE_train_00008703.jpg", "width": 600, "id": 8702, "height": 412}, {"file_name": "ADE_train_00008704.jpg", "width": 650, "id": 8703, "height": 439}, {"file_name": "ADE_train_00008705.jpg", "width": 683, "id": 8704, "height": 512}, {"file_name": "ADE_train_00008706.jpg", "width": 754, "id": 8705, "height": 512}, {"file_name": "ADE_train_00008707.jpg", "width": 512, "id": 8706, "height": 623}, {"file_name": "ADE_train_00008708.jpg", "width": 396, "id": 8707, "height": 504}, {"file_name": "ADE_train_00008709.jpg", "width": 320, "id": 8708, "height": 257}, {"file_name": "ADE_train_00008710.jpg", "width": 512, "id": 8709, "height": 773}, {"file_name": "ADE_train_00008711.jpg", "width": 430, "id": 8710, "height": 600}, {"file_name": "ADE_train_00008712.jpg", "width": 306, "id": 8711, "height": 233}, {"file_name": "ADE_train_00008713.jpg", "width": 640, "id": 8712, "height": 480}, {"file_name": "ADE_train_00008714.jpg", "width": 600, "id": 8713, "height": 400}, {"file_name": "ADE_train_00008715.jpg", "width": 540, "id": 8714, "height": 355}, {"file_name": "ADE_train_00008716.jpg", "width": 600, "id": 8715, "height": 450}, {"file_name": "ADE_train_00008717.jpg", "width": 400, "id": 8716, "height": 266}, {"file_name": "ADE_train_00008718.jpg", "width": 320, "id": 8717, "height": 223}, {"file_name": "ADE_train_00008719.jpg", "width": 512, "id": 8718, "height": 524}, {"file_name": "ADE_train_00008720.jpg", "width": 683, "id": 8719, "height": 512}, {"file_name": "ADE_train_00008721.jpg", "width": 618, "id": 8720, "height": 512}, {"file_name": "ADE_train_00008722.jpg", "width": 256, "id": 8721, "height": 256}, {"file_name": "ADE_train_00008723.jpg", "width": 256, "id": 8722, "height": 256}, {"file_name": "ADE_train_00008724.jpg", "width": 256, "id": 8723, "height": 256}, {"file_name": "ADE_train_00008725.jpg", "width": 256, "id": 8724, "height": 256}, {"file_name": "ADE_train_00008726.jpg", "width": 256, "id": 8725, "height": 256}, {"file_name": "ADE_train_00008727.jpg", "width": 256, "id": 8726, "height": 256}, {"file_name": "ADE_train_00008728.jpg", "width": 300, "id": 8727, "height": 357}, {"file_name": "ADE_train_00008729.jpg", "width": 256, "id": 8728, "height": 256}, {"file_name": "ADE_train_00008730.jpg", "width": 678, "id": 8729, "height": 512}, {"file_name": "ADE_train_00008731.jpg", "width": 640, "id": 8730, "height": 480}, {"file_name": "ADE_train_00008732.jpg", "width": 683, "id": 8731, "height": 512}, {"file_name": "ADE_train_00008733.jpg", "width": 256, "id": 8732, "height": 256}, {"file_name": "ADE_train_00008734.jpg", "width": 360, "id": 8733, "height": 270}, {"file_name": "ADE_train_00008735.jpg", "width": 415, "id": 8734, "height": 311}, {"file_name": "ADE_train_00008736.jpg", "width": 640, "id": 8735, "height": 480}, {"file_name": "ADE_train_00008737.jpg", "width": 256, "id": 8736, "height": 256}, {"file_name": "ADE_train_00008738.jpg", "width": 318, "id": 8737, "height": 333}, {"file_name": "ADE_train_00008739.jpg", "width": 606, "id": 8738, "height": 397}, {"file_name": "ADE_train_00008740.jpg", "width": 256, "id": 8739, "height": 256}, {"file_name": "ADE_train_00008741.jpg", "width": 256, "id": 8740, "height": 256}, {"file_name": "ADE_train_00008742.jpg", "width": 256, "id": 8741, "height": 256}, {"file_name": "ADE_train_00008743.jpg", "width": 256, "id": 8742, "height": 256}, {"file_name": "ADE_train_00008744.jpg", "width": 256, "id": 8743, "height": 256}, {"file_name": "ADE_train_00008745.jpg", "width": 256, "id": 8744, "height": 256}, {"file_name": "ADE_train_00008746.jpg", "width": 256, "id": 8745, "height": 256}, {"file_name": "ADE_train_00008747.jpg", "width": 683, "id": 8746, "height": 512}, {"file_name": "ADE_train_00008748.jpg", "width": 612, "id": 8747, "height": 435}, {"file_name": "ADE_train_00008749.jpg", "width": 400, "id": 8748, "height": 304}, {"file_name": "ADE_train_00008750.jpg", "width": 306, "id": 8749, "height": 278}, {"file_name": "ADE_train_00008751.jpg", "width": 500, "id": 8750, "height": 375}, {"file_name": "ADE_train_00008752.jpg", "width": 682, "id": 8751, "height": 512}, {"file_name": "ADE_train_00008753.jpg", "width": 683, "id": 8752, "height": 512}, {"file_name": "ADE_train_00008754.jpg", "width": 320, "id": 8753, "height": 240}, {"file_name": "ADE_train_00008755.jpg", "width": 316, "id": 8754, "height": 277}, {"file_name": "ADE_train_00008756.jpg", "width": 250, "id": 8755, "height": 229}, {"file_name": "ADE_train_00008757.jpg", "width": 361, "id": 8756, "height": 231}, {"file_name": "ADE_train_00008758.jpg", "width": 300, "id": 8757, "height": 225}, {"file_name": "ADE_train_00008759.jpg", "width": 400, "id": 8758, "height": 225}, {"file_name": "ADE_train_00008760.jpg", "width": 683, "id": 8759, "height": 512}, {"file_name": "ADE_train_00008761.jpg", "width": 480, "id": 8760, "height": 324}, {"file_name": "ADE_train_00008762.jpg", "width": 640, "id": 8761, "height": 480}, {"file_name": "ADE_train_00008763.jpg", "width": 225, "id": 8762, "height": 300}, {"file_name": "ADE_train_00008764.jpg", "width": 360, "id": 8763, "height": 236}, {"file_name": "ADE_train_00008765.jpg", "width": 545, "id": 8764, "height": 347}, {"file_name": "ADE_train_00008766.jpg", "width": 600, "id": 8765, "height": 416}, {"file_name": "ADE_train_00008767.jpg", "width": 930, "id": 8766, "height": 512}, {"file_name": "ADE_train_00008768.jpg", "width": 432, "id": 8767, "height": 324}, {"file_name": "ADE_train_00008769.jpg", "width": 360, "id": 8768, "height": 216}, {"file_name": "ADE_train_00008770.jpg", "width": 708, "id": 8769, "height": 512}, {"file_name": "ADE_train_00008771.jpg", "width": 425, "id": 8770, "height": 357}, {"file_name": "ADE_train_00008772.jpg", "width": 400, "id": 8771, "height": 300}, {"file_name": "ADE_train_00008773.jpg", "width": 512, "id": 8772, "height": 683}, {"file_name": "ADE_train_00008774.jpg", "width": 300, "id": 8773, "height": 225}, {"file_name": "ADE_train_00008775.jpg", "width": 456, "id": 8774, "height": 320}, {"file_name": "ADE_train_00008776.jpg", "width": 640, "id": 8775, "height": 426}, {"file_name": "ADE_train_00008777.jpg", "width": 657, "id": 8776, "height": 509}, {"file_name": "ADE_train_00008778.jpg", "width": 512, "id": 8777, "height": 770}, {"file_name": "ADE_train_00008779.jpg", "width": 512, "id": 8778, "height": 683}, {"file_name": "ADE_train_00008780.jpg", "width": 225, "id": 8779, "height": 300}, {"file_name": "ADE_train_00008781.jpg", "width": 512, "id": 8780, "height": 762}, {"file_name": "ADE_train_00008782.jpg", "width": 640, "id": 8781, "height": 457}, {"file_name": "ADE_train_00008783.jpg", "width": 770, "id": 8782, "height": 512}, {"file_name": "ADE_train_00008784.jpg", "width": 683, "id": 8783, "height": 512}, {"file_name": "ADE_train_00008785.jpg", "width": 683, "id": 8784, "height": 512}, {"file_name": "ADE_train_00008786.jpg", "width": 741, "id": 8785, "height": 512}, {"file_name": "ADE_train_00008787.jpg", "width": 300, "id": 8786, "height": 278}, {"file_name": "ADE_train_00008788.jpg", "width": 791, "id": 8787, "height": 512}, {"file_name": "ADE_train_00008789.jpg", "width": 682, "id": 8788, "height": 512}, {"file_name": "ADE_train_00008790.jpg", "width": 683, "id": 8789, "height": 512}, {"file_name": "ADE_train_00008791.jpg", "width": 768, "id": 8790, "height": 512}, {"file_name": "ADE_train_00008792.jpg", "width": 512, "id": 8791, "height": 683}, {"file_name": "ADE_train_00008793.jpg", "width": 717, "id": 8792, "height": 512}, {"file_name": "ADE_train_00008794.jpg", "width": 683, "id": 8793, "height": 512}, {"file_name": "ADE_train_00008795.jpg", "width": 774, "id": 8794, "height": 512}, {"file_name": "ADE_train_00008796.jpg", "width": 800, "id": 8795, "height": 512}, {"file_name": "ADE_train_00008797.jpg", "width": 769, "id": 8796, "height": 512}, {"file_name": "ADE_train_00008798.jpg", "width": 256, "id": 8797, "height": 256}, {"file_name": "ADE_train_00008799.jpg", "width": 256, "id": 8798, "height": 256}, {"file_name": "ADE_train_00008800.jpg", "width": 500, "id": 8799, "height": 300}, {"file_name": "ADE_train_00008801.jpg", "width": 256, "id": 8800, "height": 256}, {"file_name": "ADE_train_00008802.jpg", "width": 256, "id": 8801, "height": 256}, {"file_name": "ADE_train_00008803.jpg", "width": 256, "id": 8802, "height": 256}, {"file_name": "ADE_train_00008804.jpg", "width": 500, "id": 8803, "height": 375}, {"file_name": "ADE_train_00008805.jpg", "width": 768, "id": 8804, "height": 512}, {"file_name": "ADE_train_00008806.jpg", "width": 500, "id": 8805, "height": 387}, {"file_name": "ADE_train_00008807.jpg", "width": 500, "id": 8806, "height": 375}, {"file_name": "ADE_train_00008808.jpg", "width": 256, "id": 8807, "height": 256}, {"file_name": "ADE_train_00008809.jpg", "width": 256, "id": 8808, "height": 256}, {"file_name": "ADE_train_00008810.jpg", "width": 256, "id": 8809, "height": 256}, {"file_name": "ADE_train_00008811.jpg", "width": 256, "id": 8810, "height": 256}, {"file_name": "ADE_train_00008812.jpg", "width": 256, "id": 8811, "height": 256}, {"file_name": "ADE_train_00008813.jpg", "width": 400, "id": 8812, "height": 265}, {"file_name": "ADE_train_00008814.jpg", "width": 400, "id": 8813, "height": 300}, {"file_name": "ADE_train_00008815.jpg", "width": 256, "id": 8814, "height": 256}, {"file_name": "ADE_train_00008816.jpg", "width": 256, "id": 8815, "height": 256}, {"file_name": "ADE_train_00008817.jpg", "width": 256, "id": 8816, "height": 256}, {"file_name": "ADE_train_00008818.jpg", "width": 256, "id": 8817, "height": 256}, {"file_name": "ADE_train_00008819.jpg", "width": 751, "id": 8818, "height": 512}, {"file_name": "ADE_train_00008820.jpg", "width": 473, "id": 8819, "height": 348}, {"file_name": "ADE_train_00008821.jpg", "width": 275, "id": 8820, "height": 204}, {"file_name": "ADE_train_00008822.jpg", "width": 285, "id": 8821, "height": 403}, {"file_name": "ADE_train_00008823.jpg", "width": 531, "id": 8822, "height": 266}, {"file_name": "ADE_train_00008824.jpg", "width": 453, "id": 8823, "height": 305}, {"file_name": "ADE_train_00008825.jpg", "width": 382, "id": 8824, "height": 237}, {"file_name": "ADE_train_00008826.jpg", "width": 400, "id": 8825, "height": 266}, {"file_name": "ADE_train_00008827.jpg", "width": 609, "id": 8826, "height": 303}, {"file_name": "ADE_train_00008828.jpg", "width": 683, "id": 8827, "height": 512}, {"file_name": "ADE_train_00008829.jpg", "width": 683, "id": 8828, "height": 512}, {"file_name": "ADE_train_00008830.jpg", "width": 256, "id": 8829, "height": 256}, {"file_name": "ADE_train_00008831.jpg", "width": 256, "id": 8830, "height": 256}, {"file_name": "ADE_train_00008832.jpg", "width": 432, "id": 8831, "height": 576}, {"file_name": "ADE_train_00008833.jpg", "width": 512, "id": 8832, "height": 780}, {"file_name": "ADE_train_00008834.jpg", "width": 256, "id": 8833, "height": 256}, {"file_name": "ADE_train_00008835.jpg", "width": 256, "id": 8834, "height": 256}, {"file_name": "ADE_train_00008836.jpg", "width": 256, "id": 8835, "height": 256}, {"file_name": "ADE_train_00008837.jpg", "width": 256, "id": 8836, "height": 256}, {"file_name": "ADE_train_00008838.jpg", "width": 512, "id": 8837, "height": 683}, {"file_name": "ADE_train_00008839.jpg", "width": 256, "id": 8838, "height": 256}, {"file_name": "ADE_train_00008840.jpg", "width": 256, "id": 8839, "height": 256}, {"file_name": "ADE_train_00008841.jpg", "width": 256, "id": 8840, "height": 256}, {"file_name": "ADE_train_00008842.jpg", "width": 256, "id": 8841, "height": 256}, {"file_name": "ADE_train_00008843.jpg", "width": 256, "id": 8842, "height": 257}, {"file_name": "ADE_train_00008844.jpg", "width": 256, "id": 8843, "height": 256}, {"file_name": "ADE_train_00008845.jpg", "width": 256, "id": 8844, "height": 256}, {"file_name": "ADE_train_00008846.jpg", "width": 256, "id": 8845, "height": 256}, {"file_name": "ADE_train_00008847.jpg", "width": 256, "id": 8846, "height": 256}, {"file_name": "ADE_train_00008848.jpg", "width": 256, "id": 8847, "height": 256}, {"file_name": "ADE_train_00008849.jpg", "width": 384, "id": 8848, "height": 512}, {"file_name": "ADE_train_00008850.jpg", "width": 512, "id": 8849, "height": 341}, {"file_name": "ADE_train_00008851.jpg", "width": 256, "id": 8850, "height": 256}, {"file_name": "ADE_train_00008852.jpg", "width": 225, "id": 8851, "height": 300}, {"file_name": "ADE_train_00008853.jpg", "width": 256, "id": 8852, "height": 256}, {"file_name": "ADE_train_00008854.jpg", "width": 256, "id": 8853, "height": 256}, {"file_name": "ADE_train_00008855.jpg", "width": 256, "id": 8854, "height": 256}, {"file_name": "ADE_train_00008856.jpg", "width": 384, "id": 8855, "height": 512}, {"file_name": "ADE_train_00008857.jpg", "width": 683, "id": 8856, "height": 512}, {"file_name": "ADE_train_00008858.jpg", "width": 400, "id": 8857, "height": 292}, {"file_name": "ADE_train_00008859.jpg", "width": 683, "id": 8858, "height": 512}, {"file_name": "ADE_train_00008860.jpg", "width": 489, "id": 8859, "height": 328}, {"file_name": "ADE_train_00008861.jpg", "width": 356, "id": 8860, "height": 263}, {"file_name": "ADE_train_00008862.jpg", "width": 360, "id": 8861, "height": 235}, {"file_name": "ADE_train_00008863.jpg", "width": 373, "id": 8862, "height": 244}, {"file_name": "ADE_train_00008864.jpg", "width": 760, "id": 8863, "height": 512}, {"file_name": "ADE_train_00008865.jpg", "width": 640, "id": 8864, "height": 490}, {"file_name": "ADE_train_00008866.jpg", "width": 683, "id": 8865, "height": 512}, {"file_name": "ADE_train_00008867.jpg", "width": 683, "id": 8866, "height": 512}, {"file_name": "ADE_train_00008868.jpg", "width": 350, "id": 8867, "height": 233}, {"file_name": "ADE_train_00008869.jpg", "width": 683, "id": 8868, "height": 512}, {"file_name": "ADE_train_00008870.jpg", "width": 674, "id": 8869, "height": 512}, {"file_name": "ADE_train_00008871.jpg", "width": 400, "id": 8870, "height": 296}, {"file_name": "ADE_train_00008872.jpg", "width": 675, "id": 8871, "height": 414}, {"file_name": "ADE_train_00008873.jpg", "width": 512, "id": 8872, "height": 384}, {"file_name": "ADE_train_00008874.jpg", "width": 442, "id": 8873, "height": 274}, {"file_name": "ADE_train_00008875.jpg", "width": 504, "id": 8874, "height": 257}, {"file_name": "ADE_train_00008876.jpg", "width": 683, "id": 8875, "height": 512}, {"file_name": "ADE_train_00008877.jpg", "width": 512, "id": 8876, "height": 718}, {"file_name": "ADE_train_00008878.jpg", "width": 770, "id": 8877, "height": 512}, {"file_name": "ADE_train_00008879.jpg", "width": 1405, "id": 8878, "height": 512}, {"file_name": "ADE_train_00008880.jpg", "width": 1079, "id": 8879, "height": 512}, {"file_name": "ADE_train_00008881.jpg", "width": 1848, "id": 8880, "height": 512}, {"file_name": "ADE_train_00008882.jpg", "width": 683, "id": 8881, "height": 512}, {"file_name": "ADE_train_00008883.jpg", "width": 683, "id": 8882, "height": 512}, {"file_name": "ADE_train_00008884.jpg", "width": 683, "id": 8883, "height": 512}, {"file_name": "ADE_train_00008885.jpg", "width": 683, "id": 8884, "height": 512}, {"file_name": "ADE_train_00008886.jpg", "width": 683, "id": 8885, "height": 512}, {"file_name": "ADE_train_00008887.jpg", "width": 683, "id": 8886, "height": 512}, {"file_name": "ADE_train_00008888.jpg", "width": 683, "id": 8887, "height": 512}, {"file_name": "ADE_train_00008889.jpg", "width": 683, "id": 8888, "height": 512}, {"file_name": "ADE_train_00008890.jpg", "width": 683, "id": 8889, "height": 512}, {"file_name": "ADE_train_00008891.jpg", "width": 683, "id": 8890, "height": 512}, {"file_name": "ADE_train_00008892.jpg", "width": 683, "id": 8891, "height": 512}, {"file_name": "ADE_train_00008893.jpg", "width": 683, "id": 8892, "height": 512}, {"file_name": "ADE_train_00008894.jpg", "width": 683, "id": 8893, "height": 512}, {"file_name": "ADE_train_00008895.jpg", "width": 256, "id": 8894, "height": 256}, {"file_name": "ADE_train_00008896.jpg", "width": 683, "id": 8895, "height": 512}, {"file_name": "ADE_train_00008897.jpg", "width": 256, "id": 8896, "height": 256}, {"file_name": "ADE_train_00008898.jpg", "width": 768, "id": 8897, "height": 512}, {"file_name": "ADE_train_00008899.jpg", "width": 267, "id": 8898, "height": 266}, {"file_name": "ADE_train_00008900.jpg", "width": 756, "id": 8899, "height": 504}, {"file_name": "ADE_train_00008901.jpg", "width": 256, "id": 8900, "height": 256}, {"file_name": "ADE_train_00008902.jpg", "width": 256, "id": 8901, "height": 256}, {"file_name": "ADE_train_00008903.jpg", "width": 659, "id": 8902, "height": 512}, {"file_name": "ADE_train_00008904.jpg", "width": 450, "id": 8903, "height": 338}, {"file_name": "ADE_train_00008905.jpg", "width": 275, "id": 8904, "height": 200}, {"file_name": "ADE_train_00008906.jpg", "width": 683, "id": 8905, "height": 512}, {"file_name": "ADE_train_00008907.jpg", "width": 350, "id": 8906, "height": 467}, {"file_name": "ADE_train_00008908.jpg", "width": 500, "id": 8907, "height": 762}, {"file_name": "ADE_train_00008909.jpg", "width": 700, "id": 8908, "height": 425}, {"file_name": "ADE_train_00008910.jpg", "width": 683, "id": 8909, "height": 512}, {"file_name": "ADE_train_00008911.jpg", "width": 640, "id": 8910, "height": 480}, {"file_name": "ADE_train_00008912.jpg", "width": 683, "id": 8911, "height": 512}, {"file_name": "ADE_train_00008913.jpg", "width": 512, "id": 8912, "height": 542}, {"file_name": "ADE_train_00008914.jpg", "width": 683, "id": 8913, "height": 512}, {"file_name": "ADE_train_00008915.jpg", "width": 512, "id": 8914, "height": 744}, {"file_name": "ADE_train_00008916.jpg", "width": 512, "id": 8915, "height": 683}, {"file_name": "ADE_train_00008917.jpg", "width": 770, "id": 8916, "height": 512}, {"file_name": "ADE_train_00008918.jpg", "width": 512, "id": 8917, "height": 768}, {"file_name": "ADE_train_00008919.jpg", "width": 500, "id": 8918, "height": 375}, {"file_name": "ADE_train_00008920.jpg", "width": 300, "id": 8919, "height": 200}, {"file_name": "ADE_train_00008921.jpg", "width": 683, "id": 8920, "height": 512}, {"file_name": "ADE_train_00008922.jpg", "width": 512, "id": 8921, "height": 683}, {"file_name": "ADE_train_00008923.jpg", "width": 683, "id": 8922, "height": 512}, {"file_name": "ADE_train_00008924.jpg", "width": 256, "id": 8923, "height": 256}, {"file_name": "ADE_train_00008925.jpg", "width": 256, "id": 8924, "height": 256}, {"file_name": "ADE_train_00008926.jpg", "width": 257, "id": 8925, "height": 256}, {"file_name": "ADE_train_00008927.jpg", "width": 256, "id": 8926, "height": 256}, {"file_name": "ADE_train_00008928.jpg", "width": 715, "id": 8927, "height": 466}, {"file_name": "ADE_train_00008929.jpg", "width": 256, "id": 8928, "height": 256}, {"file_name": "ADE_train_00008930.jpg", "width": 256, "id": 8929, "height": 256}, {"file_name": "ADE_train_00008931.jpg", "width": 256, "id": 8930, "height": 256}, {"file_name": "ADE_train_00008932.jpg", "width": 256, "id": 8931, "height": 256}, {"file_name": "ADE_train_00008933.jpg", "width": 600, "id": 8932, "height": 450}, {"file_name": "ADE_train_00008934.jpg", "width": 256, "id": 8933, "height": 256}, {"file_name": "ADE_train_00008935.jpg", "width": 256, "id": 8934, "height": 256}, {"file_name": "ADE_train_00008936.jpg", "width": 683, "id": 8935, "height": 512}, {"file_name": "ADE_train_00008937.jpg", "width": 683, "id": 8936, "height": 512}, {"file_name": "ADE_train_00008938.jpg", "width": 431, "id": 8937, "height": 294}, {"file_name": "ADE_train_00008939.jpg", "width": 683, "id": 8938, "height": 512}, {"file_name": "ADE_train_00008940.jpg", "width": 286, "id": 8939, "height": 214}, {"file_name": "ADE_train_00008941.jpg", "width": 683, "id": 8940, "height": 512}, {"file_name": "ADE_train_00008942.jpg", "width": 683, "id": 8941, "height": 512}, {"file_name": "ADE_train_00008943.jpg", "width": 330, "id": 8942, "height": 248}, {"file_name": "ADE_train_00008944.jpg", "width": 512, "id": 8943, "height": 683}, {"file_name": "ADE_train_00008945.jpg", "width": 683, "id": 8944, "height": 512}, {"file_name": "ADE_train_00008946.jpg", "width": 820, "id": 8945, "height": 512}, {"file_name": "ADE_train_00008947.jpg", "width": 250, "id": 8946, "height": 362}, {"file_name": "ADE_train_00008948.jpg", "width": 682, "id": 8947, "height": 388}, {"file_name": "ADE_train_00008949.jpg", "width": 200, "id": 8948, "height": 303}, {"file_name": "ADE_train_00008950.jpg", "width": 683, "id": 8949, "height": 512}, {"file_name": "ADE_train_00008951.jpg", "width": 300, "id": 8950, "height": 224}, {"file_name": "ADE_train_00008952.jpg", "width": 319, "id": 8951, "height": 607}, {"file_name": "ADE_train_00008953.jpg", "width": 500, "id": 8952, "height": 319}, {"file_name": "ADE_train_00008954.jpg", "width": 640, "id": 8953, "height": 480}, {"file_name": "ADE_train_00008955.jpg", "width": 683, "id": 8954, "height": 512}, {"file_name": "ADE_train_00008956.jpg", "width": 640, "id": 8955, "height": 480}, {"file_name": "ADE_train_00008957.jpg", "width": 632, "id": 8956, "height": 473}, {"file_name": "ADE_train_00008958.jpg", "width": 500, "id": 8957, "height": 375}, {"file_name": "ADE_train_00008959.jpg", "width": 300, "id": 8958, "height": 225}, {"file_name": "ADE_train_00008960.jpg", "width": 300, "id": 8959, "height": 225}, {"file_name": "ADE_train_00008961.jpg", "width": 300, "id": 8960, "height": 400}, {"file_name": "ADE_train_00008962.jpg", "width": 360, "id": 8961, "height": 270}, {"file_name": "ADE_train_00008963.jpg", "width": 394, "id": 8962, "height": 350}, {"file_name": "ADE_train_00008964.jpg", "width": 600, "id": 8963, "height": 450}, {"file_name": "ADE_train_00008965.jpg", "width": 683, "id": 8964, "height": 512}, {"file_name": "ADE_train_00008966.jpg", "width": 683, "id": 8965, "height": 512}, {"file_name": "ADE_train_00008967.jpg", "width": 280, "id": 8966, "height": 210}, {"file_name": "ADE_train_00008968.jpg", "width": 300, "id": 8967, "height": 266}, {"file_name": "ADE_train_00008969.jpg", "width": 683, "id": 8968, "height": 512}, {"file_name": "ADE_train_00008970.jpg", "width": 683, "id": 8969, "height": 512}, {"file_name": "ADE_train_00008971.jpg", "width": 595, "id": 8970, "height": 512}, {"file_name": "ADE_train_00008972.jpg", "width": 683, "id": 8971, "height": 512}, {"file_name": "ADE_train_00008973.jpg", "width": 753, "id": 8972, "height": 512}, {"file_name": "ADE_train_00008974.jpg", "width": 683, "id": 8973, "height": 512}, {"file_name": "ADE_train_00008975.jpg", "width": 765, "id": 8974, "height": 512}, {"file_name": "ADE_train_00008976.jpg", "width": 674, "id": 8975, "height": 512}, {"file_name": "ADE_train_00008977.jpg", "width": 565, "id": 8976, "height": 294}, {"file_name": "ADE_train_00008978.jpg", "width": 623, "id": 8977, "height": 382}, {"file_name": "ADE_train_00008979.jpg", "width": 200, "id": 8978, "height": 271}, {"file_name": "ADE_train_00008980.jpg", "width": 683, "id": 8979, "height": 512}, {"file_name": "ADE_train_00008981.jpg", "width": 612, "id": 8980, "height": 512}, {"file_name": "ADE_train_00008982.jpg", "width": 328, "id": 8981, "height": 208}, {"file_name": "ADE_train_00008983.jpg", "width": 683, "id": 8982, "height": 512}, {"file_name": "ADE_train_00008984.jpg", "width": 683, "id": 8983, "height": 512}, {"file_name": "ADE_train_00008985.jpg", "width": 683, "id": 8984, "height": 512}, {"file_name": "ADE_train_00008986.jpg", "width": 683, "id": 8985, "height": 512}, {"file_name": "ADE_train_00008987.jpg", "width": 300, "id": 8986, "height": 244}, {"file_name": "ADE_train_00008988.jpg", "width": 683, "id": 8987, "height": 512}, {"file_name": "ADE_train_00008989.jpg", "width": 683, "id": 8988, "height": 512}, {"file_name": "ADE_train_00008990.jpg", "width": 683, "id": 8989, "height": 512}, {"file_name": "ADE_train_00008991.jpg", "width": 683, "id": 8990, "height": 512}, {"file_name": "ADE_train_00008992.jpg", "width": 683, "id": 8991, "height": 512}, {"file_name": "ADE_train_00008993.jpg", "width": 683, "id": 8992, "height": 512}, {"file_name": "ADE_train_00008994.jpg", "width": 683, "id": 8993, "height": 512}, {"file_name": "ADE_train_00008995.jpg", "width": 683, "id": 8994, "height": 512}, {"file_name": "ADE_train_00008996.jpg", "width": 683, "id": 8995, "height": 512}, {"file_name": "ADE_train_00008997.jpg", "width": 683, "id": 8996, "height": 512}, {"file_name": "ADE_train_00008998.jpg", "width": 683, "id": 8997, "height": 512}, {"file_name": "ADE_train_00008999.jpg", "width": 683, "id": 8998, "height": 512}, {"file_name": "ADE_train_00009000.jpg", "width": 683, "id": 8999, "height": 512}, {"file_name": "ADE_train_00009001.jpg", "width": 683, "id": 9000, "height": 512}, {"file_name": "ADE_train_00009002.jpg", "width": 568, "id": 9001, "height": 426}, {"file_name": "ADE_train_00009003.jpg", "width": 683, "id": 9002, "height": 512}, {"file_name": "ADE_train_00009004.jpg", "width": 683, "id": 9003, "height": 512}, {"file_name": "ADE_train_00009005.jpg", "width": 683, "id": 9004, "height": 512}, {"file_name": "ADE_train_00009006.jpg", "width": 683, "id": 9005, "height": 512}, {"file_name": "ADE_train_00009007.jpg", "width": 683, "id": 9006, "height": 512}, {"file_name": "ADE_train_00009008.jpg", "width": 683, "id": 9007, "height": 512}, {"file_name": "ADE_train_00009009.jpg", "width": 256, "id": 9008, "height": 256}, {"file_name": "ADE_train_00009010.jpg", "width": 256, "id": 9009, "height": 256}, {"file_name": "ADE_train_00009011.jpg", "width": 256, "id": 9010, "height": 256}, {"file_name": "ADE_train_00009012.jpg", "width": 256, "id": 9011, "height": 256}, {"file_name": "ADE_train_00009013.jpg", "width": 256, "id": 9012, "height": 256}, {"file_name": "ADE_train_00009014.jpg", "width": 256, "id": 9013, "height": 256}, {"file_name": "ADE_train_00009015.jpg", "width": 256, "id": 9014, "height": 256}, {"file_name": "ADE_train_00009016.jpg", "width": 256, "id": 9015, "height": 256}, {"file_name": "ADE_train_00009017.jpg", "width": 256, "id": 9016, "height": 256}, {"file_name": "ADE_train_00009018.jpg", "width": 256, "id": 9017, "height": 256}, {"file_name": "ADE_train_00009019.jpg", "width": 256, "id": 9018, "height": 256}, {"file_name": "ADE_train_00009020.jpg", "width": 256, "id": 9019, "height": 256}, {"file_name": "ADE_train_00009021.jpg", "width": 256, "id": 9020, "height": 256}, {"file_name": "ADE_train_00009022.jpg", "width": 256, "id": 9021, "height": 256}, {"file_name": "ADE_train_00009023.jpg", "width": 256, "id": 9022, "height": 256}, {"file_name": "ADE_train_00009024.jpg", "width": 640, "id": 9023, "height": 480}, {"file_name": "ADE_train_00009025.jpg", "width": 256, "id": 9024, "height": 256}, {"file_name": "ADE_train_00009026.jpg", "width": 256, "id": 9025, "height": 256}, {"file_name": "ADE_train_00009027.jpg", "width": 256, "id": 9026, "height": 256}, {"file_name": "ADE_train_00009028.jpg", "width": 256, "id": 9027, "height": 256}, {"file_name": "ADE_train_00009029.jpg", "width": 256, "id": 9028, "height": 256}, {"file_name": "ADE_train_00009030.jpg", "width": 640, "id": 9029, "height": 480}, {"file_name": "ADE_train_00009031.jpg", "width": 256, "id": 9030, "height": 256}, {"file_name": "ADE_train_00009032.jpg", "width": 256, "id": 9031, "height": 256}, {"file_name": "ADE_train_00009033.jpg", "width": 256, "id": 9032, "height": 256}, {"file_name": "ADE_train_00009034.jpg", "width": 256, "id": 9033, "height": 256}, {"file_name": "ADE_train_00009035.jpg", "width": 256, "id": 9034, "height": 256}, {"file_name": "ADE_train_00009036.jpg", "width": 256, "id": 9035, "height": 256}, {"file_name": "ADE_train_00009037.jpg", "width": 256, "id": 9036, "height": 256}, {"file_name": "ADE_train_00009038.jpg", "width": 256, "id": 9037, "height": 256}, {"file_name": "ADE_train_00009039.jpg", "width": 256, "id": 9038, "height": 256}, {"file_name": "ADE_train_00009040.jpg", "width": 256, "id": 9039, "height": 256}, {"file_name": "ADE_train_00009041.jpg", "width": 256, "id": 9040, "height": 256}, {"file_name": "ADE_train_00009042.jpg", "width": 256, "id": 9041, "height": 256}, {"file_name": "ADE_train_00009043.jpg", "width": 334, "id": 9042, "height": 339}, {"file_name": "ADE_train_00009044.jpg", "width": 256, "id": 9043, "height": 256}, {"file_name": "ADE_train_00009045.jpg", "width": 256, "id": 9044, "height": 256}, {"file_name": "ADE_train_00009046.jpg", "width": 256, "id": 9045, "height": 256}, {"file_name": "ADE_train_00009047.jpg", "width": 256, "id": 9046, "height": 256}, {"file_name": "ADE_train_00009048.jpg", "width": 256, "id": 9047, "height": 256}, {"file_name": "ADE_train_00009049.jpg", "width": 683, "id": 9048, "height": 512}, {"file_name": "ADE_train_00009050.jpg", "width": 256, "id": 9049, "height": 256}, {"file_name": "ADE_train_00009051.jpg", "width": 256, "id": 9050, "height": 256}, {"file_name": "ADE_train_00009052.jpg", "width": 256, "id": 9051, "height": 256}, {"file_name": "ADE_train_00009053.jpg", "width": 256, "id": 9052, "height": 256}, {"file_name": "ADE_train_00009054.jpg", "width": 256, "id": 9053, "height": 256}, {"file_name": "ADE_train_00009055.jpg", "width": 256, "id": 9054, "height": 256}, {"file_name": "ADE_train_00009056.jpg", "width": 256, "id": 9055, "height": 256}, {"file_name": "ADE_train_00009057.jpg", "width": 256, "id": 9056, "height": 256}, {"file_name": "ADE_train_00009058.jpg", "width": 702, "id": 9057, "height": 512}, {"file_name": "ADE_train_00009059.jpg", "width": 256, "id": 9058, "height": 256}, {"file_name": "ADE_train_00009060.jpg", "width": 256, "id": 9059, "height": 256}, {"file_name": "ADE_train_00009061.jpg", "width": 256, "id": 9060, "height": 256}, {"file_name": "ADE_train_00009062.jpg", "width": 256, "id": 9061, "height": 256}, {"file_name": "ADE_train_00009063.jpg", "width": 256, "id": 9062, "height": 256}, {"file_name": "ADE_train_00009064.jpg", "width": 256, "id": 9063, "height": 256}, {"file_name": "ADE_train_00009065.jpg", "width": 640, "id": 9064, "height": 471}, {"file_name": "ADE_train_00009066.jpg", "width": 256, "id": 9065, "height": 256}, {"file_name": "ADE_train_00009067.jpg", "width": 256, "id": 9066, "height": 256}, {"file_name": "ADE_train_00009068.jpg", "width": 256, "id": 9067, "height": 256}, {"file_name": "ADE_train_00009069.jpg", "width": 256, "id": 9068, "height": 256}, {"file_name": "ADE_train_00009070.jpg", "width": 256, "id": 9069, "height": 256}, {"file_name": "ADE_train_00009071.jpg", "width": 256, "id": 9070, "height": 256}, {"file_name": "ADE_train_00009072.jpg", "width": 256, "id": 9071, "height": 256}, {"file_name": "ADE_train_00009073.jpg", "width": 256, "id": 9072, "height": 256}, {"file_name": "ADE_train_00009074.jpg", "width": 256, "id": 9073, "height": 256}, {"file_name": "ADE_train_00009075.jpg", "width": 256, "id": 9074, "height": 256}, {"file_name": "ADE_train_00009076.jpg", "width": 256, "id": 9075, "height": 256}, {"file_name": "ADE_train_00009077.jpg", "width": 256, "id": 9076, "height": 256}, {"file_name": "ADE_train_00009078.jpg", "width": 256, "id": 9077, "height": 256}, {"file_name": "ADE_train_00009079.jpg", "width": 256, "id": 9078, "height": 256}, {"file_name": "ADE_train_00009080.jpg", "width": 256, "id": 9079, "height": 256}, {"file_name": "ADE_train_00009081.jpg", "width": 256, "id": 9080, "height": 256}, {"file_name": "ADE_train_00009082.jpg", "width": 256, "id": 9081, "height": 256}, {"file_name": "ADE_train_00009083.jpg", "width": 256, "id": 9082, "height": 256}, {"file_name": "ADE_train_00009084.jpg", "width": 256, "id": 9083, "height": 256}, {"file_name": "ADE_train_00009085.jpg", "width": 256, "id": 9084, "height": 256}, {"file_name": "ADE_train_00009086.jpg", "width": 620, "id": 9085, "height": 490}, {"file_name": "ADE_train_00009087.jpg", "width": 1056, "id": 9086, "height": 512}, {"file_name": "ADE_train_00009088.jpg", "width": 256, "id": 9087, "height": 256}, {"file_name": "ADE_train_00009089.jpg", "width": 256, "id": 9088, "height": 256}, {"file_name": "ADE_train_00009090.jpg", "width": 256, "id": 9089, "height": 256}, {"file_name": "ADE_train_00009091.jpg", "width": 398, "id": 9090, "height": 240}, {"file_name": "ADE_train_00009092.jpg", "width": 256, "id": 9091, "height": 256}, {"file_name": "ADE_train_00009093.jpg", "width": 1440, "id": 9092, "height": 1440}, {"file_name": "ADE_train_00009094.jpg", "width": 256, "id": 9093, "height": 256}, {"file_name": "ADE_train_00009095.jpg", "width": 256, "id": 9094, "height": 256}, {"file_name": "ADE_train_00009096.jpg", "width": 683, "id": 9095, "height": 512}, {"file_name": "ADE_train_00009097.jpg", "width": 256, "id": 9096, "height": 256}, {"file_name": "ADE_train_00009098.jpg", "width": 256, "id": 9097, "height": 256}, {"file_name": "ADE_train_00009099.jpg", "width": 256, "id": 9098, "height": 256}, {"file_name": "ADE_train_00009100.jpg", "width": 256, "id": 9099, "height": 256}, {"file_name": "ADE_train_00009101.jpg", "width": 256, "id": 9100, "height": 256}, {"file_name": "ADE_train_00009102.jpg", "width": 256, "id": 9101, "height": 256}, {"file_name": "ADE_train_00009103.jpg", "width": 256, "id": 9102, "height": 256}, {"file_name": "ADE_train_00009104.jpg", "width": 256, "id": 9103, "height": 256}, {"file_name": "ADE_train_00009105.jpg", "width": 256, "id": 9104, "height": 256}, {"file_name": "ADE_train_00009106.jpg", "width": 256, "id": 9105, "height": 256}, {"file_name": "ADE_train_00009107.jpg", "width": 256, "id": 9106, "height": 256}, {"file_name": "ADE_train_00009108.jpg", "width": 256, "id": 9107, "height": 256}, {"file_name": "ADE_train_00009109.jpg", "width": 710, "id": 9108, "height": 512}, {"file_name": "ADE_train_00009110.jpg", "width": 256, "id": 9109, "height": 256}, {"file_name": "ADE_train_00009111.jpg", "width": 256, "id": 9110, "height": 256}, {"file_name": "ADE_train_00009112.jpg", "width": 256, "id": 9111, "height": 256}, {"file_name": "ADE_train_00009113.jpg", "width": 256, "id": 9112, "height": 256}, {"file_name": "ADE_train_00009114.jpg", "width": 256, "id": 9113, "height": 256}, {"file_name": "ADE_train_00009115.jpg", "width": 256, "id": 9114, "height": 256}, {"file_name": "ADE_train_00009116.jpg", "width": 256, "id": 9115, "height": 256}, {"file_name": "ADE_train_00009117.jpg", "width": 256, "id": 9116, "height": 256}, {"file_name": "ADE_train_00009118.jpg", "width": 256, "id": 9117, "height": 256}, {"file_name": "ADE_train_00009119.jpg", "width": 256, "id": 9118, "height": 256}, {"file_name": "ADE_train_00009120.jpg", "width": 256, "id": 9119, "height": 256}, {"file_name": "ADE_train_00009121.jpg", "width": 256, "id": 9120, "height": 256}, {"file_name": "ADE_train_00009122.jpg", "width": 256, "id": 9121, "height": 256}, {"file_name": "ADE_train_00009123.jpg", "width": 256, "id": 9122, "height": 256}, {"file_name": "ADE_train_00009124.jpg", "width": 256, "id": 9123, "height": 256}, {"file_name": "ADE_train_00009125.jpg", "width": 256, "id": 9124, "height": 256}, {"file_name": "ADE_train_00009126.jpg", "width": 256, "id": 9125, "height": 256}, {"file_name": "ADE_train_00009127.jpg", "width": 256, "id": 9126, "height": 256}, {"file_name": "ADE_train_00009128.jpg", "width": 256, "id": 9127, "height": 256}, {"file_name": "ADE_train_00009129.jpg", "width": 256, "id": 9128, "height": 256}, {"file_name": "ADE_train_00009130.jpg", "width": 256, "id": 9129, "height": 256}, {"file_name": "ADE_train_00009131.jpg", "width": 256, "id": 9130, "height": 256}, {"file_name": "ADE_train_00009132.jpg", "width": 256, "id": 9131, "height": 256}, {"file_name": "ADE_train_00009133.jpg", "width": 256, "id": 9132, "height": 256}, {"file_name": "ADE_train_00009134.jpg", "width": 256, "id": 9133, "height": 256}, {"file_name": "ADE_train_00009135.jpg", "width": 256, "id": 9134, "height": 256}, {"file_name": "ADE_train_00009136.jpg", "width": 256, "id": 9135, "height": 256}, {"file_name": "ADE_train_00009137.jpg", "width": 256, "id": 9136, "height": 256}, {"file_name": "ADE_train_00009138.jpg", "width": 256, "id": 9137, "height": 256}, {"file_name": "ADE_train_00009139.jpg", "width": 256, "id": 9138, "height": 256}, {"file_name": "ADE_train_00009140.jpg", "width": 256, "id": 9139, "height": 256}, {"file_name": "ADE_train_00009141.jpg", "width": 256, "id": 9140, "height": 256}, {"file_name": "ADE_train_00009142.jpg", "width": 256, "id": 9141, "height": 256}, {"file_name": "ADE_train_00009143.jpg", "width": 256, "id": 9142, "height": 256}, {"file_name": "ADE_train_00009144.jpg", "width": 256, "id": 9143, "height": 256}, {"file_name": "ADE_train_00009145.jpg", "width": 256, "id": 9144, "height": 256}, {"file_name": "ADE_train_00009146.jpg", "width": 256, "id": 9145, "height": 256}, {"file_name": "ADE_train_00009147.jpg", "width": 256, "id": 9146, "height": 256}, {"file_name": "ADE_train_00009148.jpg", "width": 256, "id": 9147, "height": 256}, {"file_name": "ADE_train_00009149.jpg", "width": 256, "id": 9148, "height": 256}, {"file_name": "ADE_train_00009150.jpg", "width": 256, "id": 9149, "height": 256}, {"file_name": "ADE_train_00009151.jpg", "width": 256, "id": 9150, "height": 256}, {"file_name": "ADE_train_00009152.jpg", "width": 256, "id": 9151, "height": 256}, {"file_name": "ADE_train_00009153.jpg", "width": 256, "id": 9152, "height": 256}, {"file_name": "ADE_train_00009154.jpg", "width": 256, "id": 9153, "height": 256}, {"file_name": "ADE_train_00009155.jpg", "width": 256, "id": 9154, "height": 256}, {"file_name": "ADE_train_00009156.jpg", "width": 256, "id": 9155, "height": 256}, {"file_name": "ADE_train_00009157.jpg", "width": 256, "id": 9156, "height": 256}, {"file_name": "ADE_train_00009158.jpg", "width": 256, "id": 9157, "height": 256}, {"file_name": "ADE_train_00009159.jpg", "width": 550, "id": 9158, "height": 367}, {"file_name": "ADE_train_00009160.jpg", "width": 256, "id": 9159, "height": 256}, {"file_name": "ADE_train_00009161.jpg", "width": 256, "id": 9160, "height": 256}, {"file_name": "ADE_train_00009162.jpg", "width": 256, "id": 9161, "height": 256}, {"file_name": "ADE_train_00009163.jpg", "width": 256, "id": 9162, "height": 256}, {"file_name": "ADE_train_00009164.jpg", "width": 640, "id": 9163, "height": 480}, {"file_name": "ADE_train_00009165.jpg", "width": 256, "id": 9164, "height": 256}, {"file_name": "ADE_train_00009166.jpg", "width": 256, "id": 9165, "height": 256}, {"file_name": "ADE_train_00009167.jpg", "width": 256, "id": 9166, "height": 256}, {"file_name": "ADE_train_00009168.jpg", "width": 256, "id": 9167, "height": 256}, {"file_name": "ADE_train_00009169.jpg", "width": 256, "id": 9168, "height": 256}, {"file_name": "ADE_train_00009170.jpg", "width": 256, "id": 9169, "height": 256}, {"file_name": "ADE_train_00009171.jpg", "width": 256, "id": 9170, "height": 256}, {"file_name": "ADE_train_00009172.jpg", "width": 256, "id": 9171, "height": 256}, {"file_name": "ADE_train_00009173.jpg", "width": 256, "id": 9172, "height": 256}, {"file_name": "ADE_train_00009174.jpg", "width": 256, "id": 9173, "height": 256}, {"file_name": "ADE_train_00009175.jpg", "width": 256, "id": 9174, "height": 256}, {"file_name": "ADE_train_00009176.jpg", "width": 256, "id": 9175, "height": 256}, {"file_name": "ADE_train_00009177.jpg", "width": 256, "id": 9176, "height": 256}, {"file_name": "ADE_train_00009178.jpg", "width": 256, "id": 9177, "height": 256}, {"file_name": "ADE_train_00009179.jpg", "width": 832, "id": 9178, "height": 512}, {"file_name": "ADE_train_00009180.jpg", "width": 256, "id": 9179, "height": 256}, {"file_name": "ADE_train_00009181.jpg", "width": 256, "id": 9180, "height": 256}, {"file_name": "ADE_train_00009182.jpg", "width": 256, "id": 9181, "height": 256}, {"file_name": "ADE_train_00009183.jpg", "width": 256, "id": 9182, "height": 256}, {"file_name": "ADE_train_00009184.jpg", "width": 256, "id": 9183, "height": 256}, {"file_name": "ADE_train_00009185.jpg", "width": 256, "id": 9184, "height": 256}, {"file_name": "ADE_train_00009186.jpg", "width": 256, "id": 9185, "height": 256}, {"file_name": "ADE_train_00009187.jpg", "width": 256, "id": 9186, "height": 256}, {"file_name": "ADE_train_00009188.jpg", "width": 256, "id": 9187, "height": 256}, {"file_name": "ADE_train_00009189.jpg", "width": 683, "id": 9188, "height": 512}, {"file_name": "ADE_train_00009190.jpg", "width": 683, "id": 9189, "height": 512}, {"file_name": "ADE_train_00009191.jpg", "width": 256, "id": 9190, "height": 256}, {"file_name": "ADE_train_00009192.jpg", "width": 256, "id": 9191, "height": 256}, {"file_name": "ADE_train_00009193.jpg", "width": 256, "id": 9192, "height": 256}, {"file_name": "ADE_train_00009194.jpg", "width": 256, "id": 9193, "height": 256}, {"file_name": "ADE_train_00009195.jpg", "width": 256, "id": 9194, "height": 256}, {"file_name": "ADE_train_00009196.jpg", "width": 256, "id": 9195, "height": 256}, {"file_name": "ADE_train_00009197.jpg", "width": 400, "id": 9196, "height": 294}, {"file_name": "ADE_train_00009198.jpg", "width": 256, "id": 9197, "height": 256}, {"file_name": "ADE_train_00009199.jpg", "width": 256, "id": 9198, "height": 256}, {"file_name": "ADE_train_00009200.jpg", "width": 256, "id": 9199, "height": 256}, {"file_name": "ADE_train_00009201.jpg", "width": 256, "id": 9200, "height": 256}, {"file_name": "ADE_train_00009202.jpg", "width": 256, "id": 9201, "height": 256}, {"file_name": "ADE_train_00009203.jpg", "width": 256, "id": 9202, "height": 256}, {"file_name": "ADE_train_00009204.jpg", "width": 256, "id": 9203, "height": 256}, {"file_name": "ADE_train_00009205.jpg", "width": 256, "id": 9204, "height": 256}, {"file_name": "ADE_train_00009206.jpg", "width": 256, "id": 9205, "height": 256}, {"file_name": "ADE_train_00009207.jpg", "width": 256, "id": 9206, "height": 256}, {"file_name": "ADE_train_00009208.jpg", "width": 256, "id": 9207, "height": 256}, {"file_name": "ADE_train_00009209.jpg", "width": 256, "id": 9208, "height": 256}, {"file_name": "ADE_train_00009210.jpg", "width": 256, "id": 9209, "height": 256}, {"file_name": "ADE_train_00009211.jpg", "width": 256, "id": 9210, "height": 256}, {"file_name": "ADE_train_00009212.jpg", "width": 256, "id": 9211, "height": 256}, {"file_name": "ADE_train_00009213.jpg", "width": 256, "id": 9212, "height": 256}, {"file_name": "ADE_train_00009214.jpg", "width": 256, "id": 9213, "height": 256}, {"file_name": "ADE_train_00009215.jpg", "width": 800, "id": 9214, "height": 500}, {"file_name": "ADE_train_00009216.jpg", "width": 256, "id": 9215, "height": 256}, {"file_name": "ADE_train_00009217.jpg", "width": 256, "id": 9216, "height": 256}, {"file_name": "ADE_train_00009218.jpg", "width": 256, "id": 9217, "height": 256}, {"file_name": "ADE_train_00009219.jpg", "width": 256, "id": 9218, "height": 256}, {"file_name": "ADE_train_00009220.jpg", "width": 256, "id": 9219, "height": 256}, {"file_name": "ADE_train_00009221.jpg", "width": 256, "id": 9220, "height": 256}, {"file_name": "ADE_train_00009222.jpg", "width": 256, "id": 9221, "height": 256}, {"file_name": "ADE_train_00009223.jpg", "width": 256, "id": 9222, "height": 256}, {"file_name": "ADE_train_00009224.jpg", "width": 256, "id": 9223, "height": 256}, {"file_name": "ADE_train_00009225.jpg", "width": 256, "id": 9224, "height": 256}, {"file_name": "ADE_train_00009226.jpg", "width": 256, "id": 9225, "height": 256}, {"file_name": "ADE_train_00009227.jpg", "width": 256, "id": 9226, "height": 256}, {"file_name": "ADE_train_00009228.jpg", "width": 256, "id": 9227, "height": 256}, {"file_name": "ADE_train_00009229.jpg", "width": 256, "id": 9228, "height": 256}, {"file_name": "ADE_train_00009230.jpg", "width": 256, "id": 9229, "height": 256}, {"file_name": "ADE_train_00009231.jpg", "width": 256, "id": 9230, "height": 256}, {"file_name": "ADE_train_00009232.jpg", "width": 256, "id": 9231, "height": 256}, {"file_name": "ADE_train_00009233.jpg", "width": 256, "id": 9232, "height": 256}, {"file_name": "ADE_train_00009234.jpg", "width": 256, "id": 9233, "height": 256}, {"file_name": "ADE_train_00009235.jpg", "width": 256, "id": 9234, "height": 256}, {"file_name": "ADE_train_00009236.jpg", "width": 256, "id": 9235, "height": 256}, {"file_name": "ADE_train_00009237.jpg", "width": 256, "id": 9236, "height": 256}, {"file_name": "ADE_train_00009238.jpg", "width": 256, "id": 9237, "height": 256}, {"file_name": "ADE_train_00009239.jpg", "width": 256, "id": 9238, "height": 256}, {"file_name": "ADE_train_00009240.jpg", "width": 256, "id": 9239, "height": 256}, {"file_name": "ADE_train_00009241.jpg", "width": 256, "id": 9240, "height": 256}, {"file_name": "ADE_train_00009242.jpg", "width": 256, "id": 9241, "height": 256}, {"file_name": "ADE_train_00009243.jpg", "width": 256, "id": 9242, "height": 256}, {"file_name": "ADE_train_00009244.jpg", "width": 256, "id": 9243, "height": 256}, {"file_name": "ADE_train_00009245.jpg", "width": 256, "id": 9244, "height": 256}, {"file_name": "ADE_train_00009246.jpg", "width": 256, "id": 9245, "height": 256}, {"file_name": "ADE_train_00009247.jpg", "width": 256, "id": 9246, "height": 256}, {"file_name": "ADE_train_00009248.jpg", "width": 256, "id": 9247, "height": 256}, {"file_name": "ADE_train_00009249.jpg", "width": 683, "id": 9248, "height": 512}, {"file_name": "ADE_train_00009250.jpg", "width": 958, "id": 9249, "height": 512}, {"file_name": "ADE_train_00009251.jpg", "width": 256, "id": 9250, "height": 256}, {"file_name": "ADE_train_00009252.jpg", "width": 256, "id": 9251, "height": 256}, {"file_name": "ADE_train_00009253.jpg", "width": 256, "id": 9252, "height": 256}, {"file_name": "ADE_train_00009254.jpg", "width": 256, "id": 9253, "height": 256}, {"file_name": "ADE_train_00009255.jpg", "width": 256, "id": 9254, "height": 256}, {"file_name": "ADE_train_00009256.jpg", "width": 256, "id": 9255, "height": 256}, {"file_name": "ADE_train_00009257.jpg", "width": 256, "id": 9256, "height": 256}, {"file_name": "ADE_train_00009258.jpg", "width": 256, "id": 9257, "height": 256}, {"file_name": "ADE_train_00009259.jpg", "width": 256, "id": 9258, "height": 256}, {"file_name": "ADE_train_00009260.jpg", "width": 256, "id": 9259, "height": 256}, {"file_name": "ADE_train_00009261.jpg", "width": 256, "id": 9260, "height": 256}, {"file_name": "ADE_train_00009262.jpg", "width": 683, "id": 9261, "height": 512}, {"file_name": "ADE_train_00009263.jpg", "width": 683, "id": 9262, "height": 512}, {"file_name": "ADE_train_00009264.jpg", "width": 683, "id": 9263, "height": 512}, {"file_name": "ADE_train_00009265.jpg", "width": 784, "id": 9264, "height": 512}, {"file_name": "ADE_train_00009266.jpg", "width": 1152, "id": 9265, "height": 512}, {"file_name": "ADE_train_00009267.jpg", "width": 683, "id": 9266, "height": 512}, {"file_name": "ADE_train_00009268.jpg", "width": 683, "id": 9267, "height": 512}, {"file_name": "ADE_train_00009269.jpg", "width": 695, "id": 9268, "height": 512}, {"file_name": "ADE_train_00009270.jpg", "width": 683, "id": 9269, "height": 512}, {"file_name": "ADE_train_00009271.jpg", "width": 683, "id": 9270, "height": 512}, {"file_name": "ADE_train_00009272.jpg", "width": 733, "id": 9271, "height": 512}, {"file_name": "ADE_train_00009273.jpg", "width": 683, "id": 9272, "height": 512}, {"file_name": "ADE_train_00009274.jpg", "width": 683, "id": 9273, "height": 512}, {"file_name": "ADE_train_00009275.jpg", "width": 683, "id": 9274, "height": 512}, {"file_name": "ADE_train_00009276.jpg", "width": 683, "id": 9275, "height": 512}, {"file_name": "ADE_train_00009277.jpg", "width": 683, "id": 9276, "height": 512}, {"file_name": "ADE_train_00009278.jpg", "width": 683, "id": 9277, "height": 512}, {"file_name": "ADE_train_00009279.jpg", "width": 769, "id": 9278, "height": 512}, {"file_name": "ADE_train_00009280.jpg", "width": 683, "id": 9279, "height": 512}, {"file_name": "ADE_train_00009281.jpg", "width": 683, "id": 9280, "height": 512}, {"file_name": "ADE_train_00009282.jpg", "width": 640, "id": 9281, "height": 512}, {"file_name": "ADE_train_00009283.jpg", "width": 256, "id": 9282, "height": 256}, {"file_name": "ADE_train_00009284.jpg", "width": 256, "id": 9283, "height": 256}, {"file_name": "ADE_train_00009285.jpg", "width": 256, "id": 9284, "height": 256}, {"file_name": "ADE_train_00009286.jpg", "width": 256, "id": 9285, "height": 256}, {"file_name": "ADE_train_00009287.jpg", "width": 256, "id": 9286, "height": 256}, {"file_name": "ADE_train_00009288.jpg", "width": 256, "id": 9287, "height": 256}, {"file_name": "ADE_train_00009289.jpg", "width": 256, "id": 9288, "height": 256}, {"file_name": "ADE_train_00009290.jpg", "width": 256, "id": 9289, "height": 256}, {"file_name": "ADE_train_00009291.jpg", "width": 256, "id": 9290, "height": 256}, {"file_name": "ADE_train_00009292.jpg", "width": 256, "id": 9291, "height": 256}, {"file_name": "ADE_train_00009293.jpg", "width": 256, "id": 9292, "height": 256}, {"file_name": "ADE_train_00009294.jpg", "width": 256, "id": 9293, "height": 256}, {"file_name": "ADE_train_00009295.jpg", "width": 256, "id": 9294, "height": 256}, {"file_name": "ADE_train_00009296.jpg", "width": 256, "id": 9295, "height": 256}, {"file_name": "ADE_train_00009297.jpg", "width": 256, "id": 9296, "height": 256}, {"file_name": "ADE_train_00009298.jpg", "width": 256, "id": 9297, "height": 256}, {"file_name": "ADE_train_00009299.jpg", "width": 256, "id": 9298, "height": 256}, {"file_name": "ADE_train_00009300.jpg", "width": 256, "id": 9299, "height": 256}, {"file_name": "ADE_train_00009301.jpg", "width": 256, "id": 9300, "height": 256}, {"file_name": "ADE_train_00009302.jpg", "width": 256, "id": 9301, "height": 256}, {"file_name": "ADE_train_00009303.jpg", "width": 256, "id": 9302, "height": 256}, {"file_name": "ADE_train_00009304.jpg", "width": 256, "id": 9303, "height": 256}, {"file_name": "ADE_train_00009305.jpg", "width": 256, "id": 9304, "height": 256}, {"file_name": "ADE_train_00009306.jpg", "width": 256, "id": 9305, "height": 256}, {"file_name": "ADE_train_00009307.jpg", "width": 256, "id": 9306, "height": 256}, {"file_name": "ADE_train_00009308.jpg", "width": 256, "id": 9307, "height": 256}, {"file_name": "ADE_train_00009309.jpg", "width": 256, "id": 9308, "height": 256}, {"file_name": "ADE_train_00009310.jpg", "width": 256, "id": 9309, "height": 256}, {"file_name": "ADE_train_00009311.jpg", "width": 256, "id": 9310, "height": 256}, {"file_name": "ADE_train_00009312.jpg", "width": 256, "id": 9311, "height": 256}, {"file_name": "ADE_train_00009313.jpg", "width": 683, "id": 9312, "height": 512}, {"file_name": "ADE_train_00009314.jpg", "width": 683, "id": 9313, "height": 512}, {"file_name": "ADE_train_00009315.jpg", "width": 683, "id": 9314, "height": 512}, {"file_name": "ADE_train_00009316.jpg", "width": 683, "id": 9315, "height": 512}, {"file_name": "ADE_train_00009317.jpg", "width": 640, "id": 9316, "height": 428}, {"file_name": "ADE_train_00009318.jpg", "width": 512, "id": 9317, "height": 419}, {"file_name": "ADE_train_00009319.jpg", "width": 683, "id": 9318, "height": 512}, {"file_name": "ADE_train_00009320.jpg", "width": 676, "id": 9319, "height": 512}, {"file_name": "ADE_train_00009321.jpg", "width": 683, "id": 9320, "height": 512}, {"file_name": "ADE_train_00009322.jpg", "width": 683, "id": 9321, "height": 512}, {"file_name": "ADE_train_00009323.jpg", "width": 683, "id": 9322, "height": 512}, {"file_name": "ADE_train_00009324.jpg", "width": 683, "id": 9323, "height": 512}, {"file_name": "ADE_train_00009325.jpg", "width": 683, "id": 9324, "height": 512}, {"file_name": "ADE_train_00009326.jpg", "width": 334, "id": 9325, "height": 492}, {"file_name": "ADE_train_00009327.jpg", "width": 628, "id": 9326, "height": 512}, {"file_name": "ADE_train_00009328.jpg", "width": 414, "id": 9327, "height": 297}, {"file_name": "ADE_train_00009329.jpg", "width": 256, "id": 9328, "height": 256}, {"file_name": "ADE_train_00009330.jpg", "width": 300, "id": 9329, "height": 224}, {"file_name": "ADE_train_00009331.jpg", "width": 256, "id": 9330, "height": 256}, {"file_name": "ADE_train_00009332.jpg", "width": 640, "id": 9331, "height": 480}, {"file_name": "ADE_train_00009333.jpg", "width": 293, "id": 9332, "height": 400}, {"file_name": "ADE_train_00009334.jpg", "width": 683, "id": 9333, "height": 512}, {"file_name": "ADE_train_00009335.jpg", "width": 585, "id": 9334, "height": 512}, {"file_name": "ADE_train_00009336.jpg", "width": 600, "id": 9335, "height": 450}, {"file_name": "ADE_train_00009337.jpg", "width": 500, "id": 9336, "height": 390}, {"file_name": "ADE_train_00009338.jpg", "width": 829, "id": 9337, "height": 512}, {"file_name": "ADE_train_00009339.jpg", "width": 560, "id": 9338, "height": 512}, {"file_name": "ADE_train_00009340.jpg", "width": 770, "id": 9339, "height": 512}, {"file_name": "ADE_train_00009341.jpg", "width": 512, "id": 9340, "height": 701}, {"file_name": "ADE_train_00009342.jpg", "width": 532, "id": 9341, "height": 353}, {"file_name": "ADE_train_00009343.jpg", "width": 270, "id": 9342, "height": 207}, {"file_name": "ADE_train_00009344.jpg", "width": 256, "id": 9343, "height": 256}, {"file_name": "ADE_train_00009345.jpg", "width": 256, "id": 9344, "height": 256}, {"file_name": "ADE_train_00009346.jpg", "width": 256, "id": 9345, "height": 256}, {"file_name": "ADE_train_00009347.jpg", "width": 256, "id": 9346, "height": 256}, {"file_name": "ADE_train_00009348.jpg", "width": 500, "id": 9347, "height": 378}, {"file_name": "ADE_train_00009349.jpg", "width": 349, "id": 9348, "height": 224}, {"file_name": "ADE_train_00009350.jpg", "width": 363, "id": 9349, "height": 260}, {"file_name": "ADE_train_00009351.jpg", "width": 574, "id": 9350, "height": 406}, {"file_name": "ADE_train_00009352.jpg", "width": 600, "id": 9351, "height": 400}, {"file_name": "ADE_train_00009353.jpg", "width": 320, "id": 9352, "height": 240}, {"file_name": "ADE_train_00009354.jpg", "width": 618, "id": 9353, "height": 512}, {"file_name": "ADE_train_00009355.jpg", "width": 683, "id": 9354, "height": 512}, {"file_name": "ADE_train_00009356.jpg", "width": 664, "id": 9355, "height": 512}, {"file_name": "ADE_train_00009357.jpg", "width": 683, "id": 9356, "height": 512}, {"file_name": "ADE_train_00009358.jpg", "width": 744, "id": 9357, "height": 512}, {"file_name": "ADE_train_00009359.jpg", "width": 680, "id": 9358, "height": 512}, {"file_name": "ADE_train_00009360.jpg", "width": 512, "id": 9359, "height": 553}, {"file_name": "ADE_train_00009361.jpg", "width": 512, "id": 9360, "height": 683}, {"file_name": "ADE_train_00009362.jpg", "width": 683, "id": 9361, "height": 512}, {"file_name": "ADE_train_00009363.jpg", "width": 683, "id": 9362, "height": 512}, {"file_name": "ADE_train_00009364.jpg", "width": 701, "id": 9363, "height": 512}, {"file_name": "ADE_train_00009365.jpg", "width": 683, "id": 9364, "height": 512}, {"file_name": "ADE_train_00009366.jpg", "width": 683, "id": 9365, "height": 512}, {"file_name": "ADE_train_00009367.jpg", "width": 683, "id": 9366, "height": 512}, {"file_name": "ADE_train_00009368.jpg", "width": 683, "id": 9367, "height": 512}, {"file_name": "ADE_train_00009369.jpg", "width": 240, "id": 9368, "height": 319}, {"file_name": "ADE_train_00009370.jpg", "width": 683, "id": 9369, "height": 512}, {"file_name": "ADE_train_00009371.jpg", "width": 683, "id": 9370, "height": 512}, {"file_name": "ADE_train_00009372.jpg", "width": 770, "id": 9371, "height": 512}, {"file_name": "ADE_train_00009373.jpg", "width": 683, "id": 9372, "height": 512}, {"file_name": "ADE_train_00009374.jpg", "width": 512, "id": 9373, "height": 768}, {"file_name": "ADE_train_00009375.jpg", "width": 683, "id": 9374, "height": 512}, {"file_name": "ADE_train_00009376.jpg", "width": 683, "id": 9375, "height": 512}, {"file_name": "ADE_train_00009377.jpg", "width": 683, "id": 9376, "height": 512}, {"file_name": "ADE_train_00009378.jpg", "width": 683, "id": 9377, "height": 512}, {"file_name": "ADE_train_00009379.jpg", "width": 679, "id": 9378, "height": 512}, {"file_name": "ADE_train_00009380.jpg", "width": 683, "id": 9379, "height": 512}, {"file_name": "ADE_train_00009381.jpg", "width": 683, "id": 9380, "height": 512}, {"file_name": "ADE_train_00009382.jpg", "width": 320, "id": 9381, "height": 207}, {"file_name": "ADE_train_00009383.jpg", "width": 683, "id": 9382, "height": 512}, {"file_name": "ADE_train_00009384.jpg", "width": 512, "id": 9383, "height": 571}, {"file_name": "ADE_train_00009385.jpg", "width": 767, "id": 9384, "height": 512}, {"file_name": "ADE_train_00009386.jpg", "width": 683, "id": 9385, "height": 512}, {"file_name": "ADE_train_00009387.jpg", "width": 683, "id": 9386, "height": 512}, {"file_name": "ADE_train_00009388.jpg", "width": 683, "id": 9387, "height": 512}, {"file_name": "ADE_train_00009389.jpg", "width": 771, "id": 9388, "height": 512}, {"file_name": "ADE_train_00009390.jpg", "width": 683, "id": 9389, "height": 512}, {"file_name": "ADE_train_00009391.jpg", "width": 633, "id": 9390, "height": 512}, {"file_name": "ADE_train_00009392.jpg", "width": 683, "id": 9391, "height": 512}, {"file_name": "ADE_train_00009393.jpg", "width": 683, "id": 9392, "height": 512}, {"file_name": "ADE_train_00009394.jpg", "width": 683, "id": 9393, "height": 512}, {"file_name": "ADE_train_00009395.jpg", "width": 683, "id": 9394, "height": 512}, {"file_name": "ADE_train_00009396.jpg", "width": 683, "id": 9395, "height": 512}, {"file_name": "ADE_train_00009397.jpg", "width": 683, "id": 9396, "height": 512}, {"file_name": "ADE_train_00009398.jpg", "width": 1019, "id": 9397, "height": 512}, {"file_name": "ADE_train_00009399.jpg", "width": 624, "id": 9398, "height": 512}, {"file_name": "ADE_train_00009400.jpg", "width": 325, "id": 9399, "height": 244}, {"file_name": "ADE_train_00009401.jpg", "width": 647, "id": 9400, "height": 512}, {"file_name": "ADE_train_00009402.jpg", "width": 795, "id": 9401, "height": 512}, {"file_name": "ADE_train_00009403.jpg", "width": 683, "id": 9402, "height": 512}, {"file_name": "ADE_train_00009404.jpg", "width": 765, "id": 9403, "height": 512}, {"file_name": "ADE_train_00009405.jpg", "width": 844, "id": 9404, "height": 512}, {"file_name": "ADE_train_00009406.jpg", "width": 512, "id": 9405, "height": 683}, {"file_name": "ADE_train_00009407.jpg", "width": 683, "id": 9406, "height": 512}, {"file_name": "ADE_train_00009408.jpg", "width": 656, "id": 9407, "height": 512}, {"file_name": "ADE_train_00009409.jpg", "width": 320, "id": 9408, "height": 240}, {"file_name": "ADE_train_00009410.jpg", "width": 771, "id": 9409, "height": 512}, {"file_name": "ADE_train_00009411.jpg", "width": 765, "id": 9410, "height": 512}, {"file_name": "ADE_train_00009412.jpg", "width": 683, "id": 9411, "height": 512}, {"file_name": "ADE_train_00009413.jpg", "width": 320, "id": 9412, "height": 213}, {"file_name": "ADE_train_00009414.jpg", "width": 256, "id": 9413, "height": 256}, {"file_name": "ADE_train_00009415.jpg", "width": 683, "id": 9414, "height": 512}, {"file_name": "ADE_train_00009416.jpg", "width": 683, "id": 9415, "height": 512}, {"file_name": "ADE_train_00009417.jpg", "width": 770, "id": 9416, "height": 512}, {"file_name": "ADE_train_00009418.jpg", "width": 520, "id": 9417, "height": 512}, {"file_name": "ADE_train_00009419.jpg", "width": 765, "id": 9418, "height": 512}, {"file_name": "ADE_train_00009420.jpg", "width": 769, "id": 9419, "height": 512}, {"file_name": "ADE_train_00009421.jpg", "width": 733, "id": 9420, "height": 512}, {"file_name": "ADE_train_00009422.jpg", "width": 300, "id": 9421, "height": 225}, {"file_name": "ADE_train_00009423.jpg", "width": 683, "id": 9422, "height": 512}, {"file_name": "ADE_train_00009424.jpg", "width": 288, "id": 9423, "height": 287}, {"file_name": "ADE_train_00009425.jpg", "width": 754, "id": 9424, "height": 512}, {"file_name": "ADE_train_00009426.jpg", "width": 737, "id": 9425, "height": 512}, {"file_name": "ADE_train_00009427.jpg", "width": 763, "id": 9426, "height": 512}, {"file_name": "ADE_train_00009428.jpg", "width": 683, "id": 9427, "height": 512}, {"file_name": "ADE_train_00009429.jpg", "width": 837, "id": 9428, "height": 512}, {"file_name": "ADE_train_00009430.jpg", "width": 512, "id": 9429, "height": 683}, {"file_name": "ADE_train_00009431.jpg", "width": 768, "id": 9430, "height": 512}, {"file_name": "ADE_train_00009432.jpg", "width": 256, "id": 9431, "height": 256}, {"file_name": "ADE_train_00009433.jpg", "width": 768, "id": 9432, "height": 512}, {"file_name": "ADE_train_00009434.jpg", "width": 512, "id": 9433, "height": 771}, {"file_name": "ADE_train_00009435.jpg", "width": 611, "id": 9434, "height": 405}, {"file_name": "ADE_train_00009436.jpg", "width": 683, "id": 9435, "height": 512}, {"file_name": "ADE_train_00009437.jpg", "width": 512, "id": 9436, "height": 800}, {"file_name": "ADE_train_00009438.jpg", "width": 576, "id": 9437, "height": 367}, {"file_name": "ADE_train_00009439.jpg", "width": 375, "id": 9438, "height": 250}, {"file_name": "ADE_train_00009440.jpg", "width": 398, "id": 9439, "height": 224}, {"file_name": "ADE_train_00009441.jpg", "width": 484, "id": 9440, "height": 371}, {"file_name": "ADE_train_00009442.jpg", "width": 683, "id": 9441, "height": 512}, {"file_name": "ADE_train_00009443.jpg", "width": 500, "id": 9442, "height": 295}, {"file_name": "ADE_train_00009444.jpg", "width": 262, "id": 9443, "height": 244}, {"file_name": "ADE_train_00009445.jpg", "width": 308, "id": 9444, "height": 206}, {"file_name": "ADE_train_00009446.jpg", "width": 399, "id": 9445, "height": 202}, {"file_name": "ADE_train_00009447.jpg", "width": 300, "id": 9446, "height": 224}, {"file_name": "ADE_train_00009448.jpg", "width": 488, "id": 9447, "height": 315}, {"file_name": "ADE_train_00009449.jpg", "width": 300, "id": 9448, "height": 268}, {"file_name": "ADE_train_00009450.jpg", "width": 320, "id": 9449, "height": 240}, {"file_name": "ADE_train_00009451.jpg", "width": 640, "id": 9450, "height": 408}, {"file_name": "ADE_train_00009452.jpg", "width": 320, "id": 9451, "height": 240}, {"file_name": "ADE_train_00009453.jpg", "width": 767, "id": 9452, "height": 512}, {"file_name": "ADE_train_00009454.jpg", "width": 500, "id": 9453, "height": 336}, {"file_name": "ADE_train_00009455.jpg", "width": 256, "id": 9454, "height": 256}, {"file_name": "ADE_train_00009456.jpg", "width": 256, "id": 9455, "height": 256}, {"file_name": "ADE_train_00009457.jpg", "width": 450, "id": 9456, "height": 343}, {"file_name": "ADE_train_00009458.jpg", "width": 256, "id": 9457, "height": 256}, {"file_name": "ADE_train_00009459.jpg", "width": 256, "id": 9458, "height": 256}, {"file_name": "ADE_train_00009460.jpg", "width": 250, "id": 9459, "height": 139}, {"file_name": "ADE_train_00009461.jpg", "width": 779, "id": 9460, "height": 512}, {"file_name": "ADE_train_00009462.jpg", "width": 250, "id": 9461, "height": 164}, {"file_name": "ADE_train_00009463.jpg", "width": 256, "id": 9462, "height": 256}, {"file_name": "ADE_train_00009464.jpg", "width": 450, "id": 9463, "height": 343}, {"file_name": "ADE_train_00009465.jpg", "width": 256, "id": 9464, "height": 256}, {"file_name": "ADE_train_00009466.jpg", "width": 256, "id": 9465, "height": 256}, {"file_name": "ADE_train_00009467.jpg", "width": 631, "id": 9466, "height": 400}, {"file_name": "ADE_train_00009468.jpg", "width": 256, "id": 9467, "height": 256}, {"file_name": "ADE_train_00009469.jpg", "width": 300, "id": 9468, "height": 238}, {"file_name": "ADE_train_00009470.jpg", "width": 483, "id": 9469, "height": 699}, {"file_name": "ADE_train_00009471.jpg", "width": 797, "id": 9470, "height": 512}, {"file_name": "ADE_train_00009472.jpg", "width": 398, "id": 9471, "height": 600}, {"file_name": "ADE_train_00009473.jpg", "width": 733, "id": 9472, "height": 512}, {"file_name": "ADE_train_00009474.jpg", "width": 317, "id": 9473, "height": 475}, {"file_name": "ADE_train_00009475.jpg", "width": 683, "id": 9474, "height": 512}, {"file_name": "ADE_train_00009476.jpg", "width": 683, "id": 9475, "height": 512}, {"file_name": "ADE_train_00009477.jpg", "width": 683, "id": 9476, "height": 512}, {"file_name": "ADE_train_00009478.jpg", "width": 683, "id": 9477, "height": 512}, {"file_name": "ADE_train_00009479.jpg", "width": 683, "id": 9478, "height": 512}, {"file_name": "ADE_train_00009480.jpg", "width": 683, "id": 9479, "height": 512}, {"file_name": "ADE_train_00009481.jpg", "width": 512, "id": 9480, "height": 683}, {"file_name": "ADE_train_00009482.jpg", "width": 400, "id": 9481, "height": 268}, {"file_name": "ADE_train_00009483.jpg", "width": 636, "id": 9482, "height": 512}, {"file_name": "ADE_train_00009484.jpg", "width": 683, "id": 9483, "height": 512}, {"file_name": "ADE_train_00009485.jpg", "width": 683, "id": 9484, "height": 512}, {"file_name": "ADE_train_00009486.jpg", "width": 683, "id": 9485, "height": 512}, {"file_name": "ADE_train_00009487.jpg", "width": 683, "id": 9486, "height": 512}, {"file_name": "ADE_train_00009488.jpg", "width": 262, "id": 9487, "height": 210}, {"file_name": "ADE_train_00009489.jpg", "width": 683, "id": 9488, "height": 512}, {"file_name": "ADE_train_00009490.jpg", "width": 370, "id": 9489, "height": 297}, {"file_name": "ADE_train_00009491.jpg", "width": 683, "id": 9490, "height": 512}, {"file_name": "ADE_train_00009492.jpg", "width": 480, "id": 9491, "height": 360}, {"file_name": "ADE_train_00009493.jpg", "width": 683, "id": 9492, "height": 512}, {"file_name": "ADE_train_00009494.jpg", "width": 640, "id": 9493, "height": 480}, {"file_name": "ADE_train_00009495.jpg", "width": 640, "id": 9494, "height": 480}, {"file_name": "ADE_train_00009496.jpg", "width": 371, "id": 9495, "height": 200}, {"file_name": "ADE_train_00009497.jpg", "width": 692, "id": 9496, "height": 512}, {"file_name": "ADE_train_00009498.jpg", "width": 683, "id": 9497, "height": 512}, {"file_name": "ADE_train_00009499.jpg", "width": 682, "id": 9498, "height": 512}, {"file_name": "ADE_train_00009500.jpg", "width": 600, "id": 9499, "height": 428}, {"file_name": "ADE_train_00009501.jpg", "width": 254, "id": 9500, "height": 431}, {"file_name": "ADE_train_00009502.jpg", "width": 410, "id": 9501, "height": 308}, {"file_name": "ADE_train_00009503.jpg", "width": 550, "id": 9502, "height": 366}, {"file_name": "ADE_train_00009504.jpg", "width": 288, "id": 9503, "height": 228}, {"file_name": "ADE_train_00009505.jpg", "width": 384, "id": 9504, "height": 600}, {"file_name": "ADE_train_00009506.jpg", "width": 378, "id": 9505, "height": 230}, {"file_name": "ADE_train_00009507.jpg", "width": 760, "id": 9506, "height": 386}, {"file_name": "ADE_train_00009508.jpg", "width": 512, "id": 9507, "height": 683}, {"file_name": "ADE_train_00009509.jpg", "width": 228, "id": 9508, "height": 382}, {"file_name": "ADE_train_00009510.jpg", "width": 640, "id": 9509, "height": 480}, {"file_name": "ADE_train_00009511.jpg", "width": 290, "id": 9510, "height": 328}, {"file_name": "ADE_train_00009512.jpg", "width": 350, "id": 9511, "height": 263}, {"file_name": "ADE_train_00009513.jpg", "width": 350, "id": 9512, "height": 233}, {"file_name": "ADE_train_00009514.jpg", "width": 350, "id": 9513, "height": 263}, {"file_name": "ADE_train_00009515.jpg", "width": 320, "id": 9514, "height": 240}, {"file_name": "ADE_train_00009516.jpg", "width": 236, "id": 9515, "height": 225}, {"file_name": "ADE_train_00009517.jpg", "width": 338, "id": 9516, "height": 257}, {"file_name": "ADE_train_00009518.jpg", "width": 338, "id": 9517, "height": 257}, {"file_name": "ADE_train_00009519.jpg", "width": 338, "id": 9518, "height": 257}, {"file_name": "ADE_train_00009520.jpg", "width": 683, "id": 9519, "height": 512}, {"file_name": "ADE_train_00009521.jpg", "width": 683, "id": 9520, "height": 512}, {"file_name": "ADE_train_00009522.jpg", "width": 683, "id": 9521, "height": 512}, {"file_name": "ADE_train_00009523.jpg", "width": 683, "id": 9522, "height": 512}, {"file_name": "ADE_train_00009524.jpg", "width": 512, "id": 9523, "height": 683}, {"file_name": "ADE_train_00009525.jpg", "width": 683, "id": 9524, "height": 512}, {"file_name": "ADE_train_00009526.jpg", "width": 683, "id": 9525, "height": 512}, {"file_name": "ADE_train_00009527.jpg", "width": 683, "id": 9526, "height": 512}, {"file_name": "ADE_train_00009528.jpg", "width": 683, "id": 9527, "height": 512}, {"file_name": "ADE_train_00009529.jpg", "width": 683, "id": 9528, "height": 512}, {"file_name": "ADE_train_00009530.jpg", "width": 683, "id": 9529, "height": 512}, {"file_name": "ADE_train_00009531.jpg", "width": 683, "id": 9530, "height": 512}, {"file_name": "ADE_train_00009532.jpg", "width": 512, "id": 9531, "height": 435}, {"file_name": "ADE_train_00009533.jpg", "width": 683, "id": 9532, "height": 512}, {"file_name": "ADE_train_00009534.jpg", "width": 788, "id": 9533, "height": 512}, {"file_name": "ADE_train_00009535.jpg", "width": 312, "id": 9534, "height": 235}, {"file_name": "ADE_train_00009536.jpg", "width": 300, "id": 9535, "height": 225}, {"file_name": "ADE_train_00009537.jpg", "width": 744, "id": 9536, "height": 512}, {"file_name": "ADE_train_00009538.jpg", "width": 640, "id": 9537, "height": 512}, {"file_name": "ADE_train_00009539.jpg", "width": 683, "id": 9538, "height": 512}, {"file_name": "ADE_train_00009540.jpg", "width": 683, "id": 9539, "height": 512}, {"file_name": "ADE_train_00009541.jpg", "width": 360, "id": 9540, "height": 240}, {"file_name": "ADE_train_00009542.jpg", "width": 512, "id": 9541, "height": 770}, {"file_name": "ADE_train_00009543.jpg", "width": 340, "id": 9542, "height": 226}, {"file_name": "ADE_train_00009544.jpg", "width": 300, "id": 9543, "height": 300}, {"file_name": "ADE_train_00009545.jpg", "width": 500, "id": 9544, "height": 331}, {"file_name": "ADE_train_00009546.jpg", "width": 683, "id": 9545, "height": 512}, {"file_name": "ADE_train_00009547.jpg", "width": 743, "id": 9546, "height": 512}, {"file_name": "ADE_train_00009548.jpg", "width": 683, "id": 9547, "height": 512}, {"file_name": "ADE_train_00009549.jpg", "width": 765, "id": 9548, "height": 512}, {"file_name": "ADE_train_00009550.jpg", "width": 312, "id": 9549, "height": 235}, {"file_name": "ADE_train_00009551.jpg", "width": 304, "id": 9550, "height": 204}, {"file_name": "ADE_train_00009552.jpg", "width": 300, "id": 9551, "height": 300}, {"file_name": "ADE_train_00009553.jpg", "width": 683, "id": 9552, "height": 512}, {"file_name": "ADE_train_00009554.jpg", "width": 350, "id": 9553, "height": 233}, {"file_name": "ADE_train_00009555.jpg", "width": 683, "id": 9554, "height": 512}, {"file_name": "ADE_train_00009556.jpg", "width": 338, "id": 9555, "height": 257}, {"file_name": "ADE_train_00009557.jpg", "width": 683, "id": 9556, "height": 512}, {"file_name": "ADE_train_00009558.jpg", "width": 320, "id": 9557, "height": 240}, {"file_name": "ADE_train_00009559.jpg", "width": 356, "id": 9558, "height": 247}, {"file_name": "ADE_train_00009560.jpg", "width": 300, "id": 9559, "height": 225}, {"file_name": "ADE_train_00009561.jpg", "width": 342, "id": 9560, "height": 256}, {"file_name": "ADE_train_00009562.jpg", "width": 340, "id": 9561, "height": 255}, {"file_name": "ADE_train_00009563.jpg", "width": 300, "id": 9562, "height": 300}, {"file_name": "ADE_train_00009564.jpg", "width": 225, "id": 9563, "height": 225}, {"file_name": "ADE_train_00009565.jpg", "width": 300, "id": 9564, "height": 300}, {"file_name": "ADE_train_00009566.jpg", "width": 275, "id": 9565, "height": 259}, {"file_name": "ADE_train_00009567.jpg", "width": 683, "id": 9566, "height": 512}, {"file_name": "ADE_train_00009568.jpg", "width": 300, "id": 9567, "height": 225}, {"file_name": "ADE_train_00009569.jpg", "width": 252, "id": 9568, "height": 259}, {"file_name": "ADE_train_00009570.jpg", "width": 512, "id": 9569, "height": 683}, {"file_name": "ADE_train_00009571.jpg", "width": 683, "id": 9570, "height": 512}, {"file_name": "ADE_train_00009572.jpg", "width": 683, "id": 9571, "height": 512}, {"file_name": "ADE_train_00009573.jpg", "width": 683, "id": 9572, "height": 512}, {"file_name": "ADE_train_00009574.jpg", "width": 312, "id": 9573, "height": 235}, {"file_name": "ADE_train_00009575.jpg", "width": 300, "id": 9574, "height": 200}, {"file_name": "ADE_train_00009576.jpg", "width": 768, "id": 9575, "height": 512}, {"file_name": "ADE_train_00009577.jpg", "width": 683, "id": 9576, "height": 512}, {"file_name": "ADE_train_00009578.jpg", "width": 500, "id": 9577, "height": 375}, {"file_name": "ADE_train_00009579.jpg", "width": 683, "id": 9578, "height": 512}, {"file_name": "ADE_train_00009580.jpg", "width": 350, "id": 9579, "height": 234}, {"file_name": "ADE_train_00009581.jpg", "width": 640, "id": 9580, "height": 410}, {"file_name": "ADE_train_00009582.jpg", "width": 683, "id": 9581, "height": 512}, {"file_name": "ADE_train_00009583.jpg", "width": 683, "id": 9582, "height": 512}, {"file_name": "ADE_train_00009584.jpg", "width": 683, "id": 9583, "height": 512}, {"file_name": "ADE_train_00009585.jpg", "width": 512, "id": 9584, "height": 683}, {"file_name": "ADE_train_00009586.jpg", "width": 308, "id": 9585, "height": 211}, {"file_name": "ADE_train_00009587.jpg", "width": 683, "id": 9586, "height": 512}, {"file_name": "ADE_train_00009588.jpg", "width": 546, "id": 9587, "height": 445}, {"file_name": "ADE_train_00009589.jpg", "width": 250, "id": 9588, "height": 258}, {"file_name": "ADE_train_00009590.jpg", "width": 358, "id": 9589, "height": 239}, {"file_name": "ADE_train_00009591.jpg", "width": 766, "id": 9590, "height": 512}, {"file_name": "ADE_train_00009592.jpg", "width": 978, "id": 9591, "height": 512}, {"file_name": "ADE_train_00009593.jpg", "width": 512, "id": 9592, "height": 682}, {"file_name": "ADE_train_00009594.jpg", "width": 432, "id": 9593, "height": 324}, {"file_name": "ADE_train_00009595.jpg", "width": 763, "id": 9594, "height": 512}, {"file_name": "ADE_train_00009596.jpg", "width": 765, "id": 9595, "height": 512}, {"file_name": "ADE_train_00009597.jpg", "width": 683, "id": 9596, "height": 512}, {"file_name": "ADE_train_00009598.jpg", "width": 683, "id": 9597, "height": 512}, {"file_name": "ADE_train_00009599.jpg", "width": 302, "id": 9598, "height": 202}, {"file_name": "ADE_train_00009600.jpg", "width": 758, "id": 9599, "height": 512}, {"file_name": "ADE_train_00009601.jpg", "width": 683, "id": 9600, "height": 512}, {"file_name": "ADE_train_00009602.jpg", "width": 790, "id": 9601, "height": 512}, {"file_name": "ADE_train_00009603.jpg", "width": 300, "id": 9602, "height": 214}, {"file_name": "ADE_train_00009604.jpg", "width": 683, "id": 9603, "height": 512}, {"file_name": "ADE_train_00009605.jpg", "width": 307, "id": 9604, "height": 461}, {"file_name": "ADE_train_00009606.jpg", "width": 771, "id": 9605, "height": 512}, {"file_name": "ADE_train_00009607.jpg", "width": 600, "id": 9606, "height": 400}, {"file_name": "ADE_train_00009608.jpg", "width": 768, "id": 9607, "height": 512}, {"file_name": "ADE_train_00009609.jpg", "width": 683, "id": 9608, "height": 512}, {"file_name": "ADE_train_00009610.jpg", "width": 683, "id": 9609, "height": 512}, {"file_name": "ADE_train_00009611.jpg", "width": 262, "id": 9610, "height": 213}, {"file_name": "ADE_train_00009612.jpg", "width": 512, "id": 9611, "height": 683}, {"file_name": "ADE_train_00009613.jpg", "width": 683, "id": 9612, "height": 512}, {"file_name": "ADE_train_00009614.jpg", "width": 680, "id": 9613, "height": 512}, {"file_name": "ADE_train_00009615.jpg", "width": 683, "id": 9614, "height": 512}, {"file_name": "ADE_train_00009616.jpg", "width": 768, "id": 9615, "height": 512}, {"file_name": "ADE_train_00009617.jpg", "width": 256, "id": 9616, "height": 256}, {"file_name": "ADE_train_00009618.jpg", "width": 504, "id": 9617, "height": 405}, {"file_name": "ADE_train_00009619.jpg", "width": 683, "id": 9618, "height": 512}, {"file_name": "ADE_train_00009620.jpg", "width": 829, "id": 9619, "height": 512}, {"file_name": "ADE_train_00009621.jpg", "width": 320, "id": 9620, "height": 213}, {"file_name": "ADE_train_00009622.jpg", "width": 683, "id": 9621, "height": 512}, {"file_name": "ADE_train_00009623.jpg", "width": 425, "id": 9622, "height": 283}, {"file_name": "ADE_train_00009624.jpg", "width": 683, "id": 9623, "height": 512}, {"file_name": "ADE_train_00009625.jpg", "width": 683, "id": 9624, "height": 512}, {"file_name": "ADE_train_00009626.jpg", "width": 768, "id": 9625, "height": 512}, {"file_name": "ADE_train_00009627.jpg", "width": 300, "id": 9626, "height": 225}, {"file_name": "ADE_train_00009628.jpg", "width": 683, "id": 9627, "height": 512}, {"file_name": "ADE_train_00009629.jpg", "width": 682, "id": 9628, "height": 512}, {"file_name": "ADE_train_00009630.jpg", "width": 640, "id": 9629, "height": 426}, {"file_name": "ADE_train_00009631.jpg", "width": 300, "id": 9630, "height": 300}, {"file_name": "ADE_train_00009632.jpg", "width": 683, "id": 9631, "height": 512}, {"file_name": "ADE_train_00009633.jpg", "width": 683, "id": 9632, "height": 512}, {"file_name": "ADE_train_00009634.jpg", "width": 768, "id": 9633, "height": 512}, {"file_name": "ADE_train_00009635.jpg", "width": 683, "id": 9634, "height": 512}, {"file_name": "ADE_train_00009636.jpg", "width": 683, "id": 9635, "height": 512}, {"file_name": "ADE_train_00009637.jpg", "width": 683, "id": 9636, "height": 512}, {"file_name": "ADE_train_00009638.jpg", "width": 275, "id": 9637, "height": 206}, {"file_name": "ADE_train_00009639.jpg", "width": 683, "id": 9638, "height": 512}, {"file_name": "ADE_train_00009640.jpg", "width": 683, "id": 9639, "height": 512}, {"file_name": "ADE_train_00009641.jpg", "width": 683, "id": 9640, "height": 512}, {"file_name": "ADE_train_00009642.jpg", "width": 683, "id": 9641, "height": 512}, {"file_name": "ADE_train_00009643.jpg", "width": 796, "id": 9642, "height": 512}, {"file_name": "ADE_train_00009644.jpg", "width": 683, "id": 9643, "height": 512}, {"file_name": "ADE_train_00009645.jpg", "width": 683, "id": 9644, "height": 512}, {"file_name": "ADE_train_00009646.jpg", "width": 683, "id": 9645, "height": 512}, {"file_name": "ADE_train_00009647.jpg", "width": 300, "id": 9646, "height": 225}, {"file_name": "ADE_train_00009648.jpg", "width": 683, "id": 9647, "height": 512}, {"file_name": "ADE_train_00009649.jpg", "width": 683, "id": 9648, "height": 512}, {"file_name": "ADE_train_00009650.jpg", "width": 683, "id": 9649, "height": 512}, {"file_name": "ADE_train_00009651.jpg", "width": 683, "id": 9650, "height": 512}, {"file_name": "ADE_train_00009652.jpg", "width": 683, "id": 9651, "height": 512}, {"file_name": "ADE_train_00009653.jpg", "width": 683, "id": 9652, "height": 512}, {"file_name": "ADE_train_00009654.jpg", "width": 768, "id": 9653, "height": 512}, {"file_name": "ADE_train_00009655.jpg", "width": 681, "id": 9654, "height": 512}, {"file_name": "ADE_train_00009656.jpg", "width": 683, "id": 9655, "height": 512}, {"file_name": "ADE_train_00009657.jpg", "width": 683, "id": 9656, "height": 512}, {"file_name": "ADE_train_00009658.jpg", "width": 683, "id": 9657, "height": 512}, {"file_name": "ADE_train_00009659.jpg", "width": 683, "id": 9658, "height": 512}, {"file_name": "ADE_train_00009660.jpg", "width": 683, "id": 9659, "height": 512}, {"file_name": "ADE_train_00009661.jpg", "width": 683, "id": 9660, "height": 512}, {"file_name": "ADE_train_00009662.jpg", "width": 512, "id": 9661, "height": 768}, {"file_name": "ADE_train_00009663.jpg", "width": 683, "id": 9662, "height": 512}, {"file_name": "ADE_train_00009664.jpg", "width": 683, "id": 9663, "height": 512}, {"file_name": "ADE_train_00009665.jpg", "width": 300, "id": 9664, "height": 300}, {"file_name": "ADE_train_00009666.jpg", "width": 768, "id": 9665, "height": 512}, {"file_name": "ADE_train_00009667.jpg", "width": 768, "id": 9666, "height": 512}, {"file_name": "ADE_train_00009668.jpg", "width": 768, "id": 9667, "height": 512}, {"file_name": "ADE_train_00009669.jpg", "width": 683, "id": 9668, "height": 512}, {"file_name": "ADE_train_00009670.jpg", "width": 768, "id": 9669, "height": 512}, {"file_name": "ADE_train_00009671.jpg", "width": 350, "id": 9670, "height": 233}, {"file_name": "ADE_train_00009672.jpg", "width": 768, "id": 9671, "height": 512}, {"file_name": "ADE_train_00009673.jpg", "width": 683, "id": 9672, "height": 512}, {"file_name": "ADE_train_00009674.jpg", "width": 771, "id": 9673, "height": 512}, {"file_name": "ADE_train_00009675.jpg", "width": 683, "id": 9674, "height": 512}, {"file_name": "ADE_train_00009676.jpg", "width": 683, "id": 9675, "height": 512}, {"file_name": "ADE_train_00009677.jpg", "width": 765, "id": 9676, "height": 512}, {"file_name": "ADE_train_00009678.jpg", "width": 797, "id": 9677, "height": 512}, {"file_name": "ADE_train_00009679.jpg", "width": 771, "id": 9678, "height": 512}, {"file_name": "ADE_train_00009680.jpg", "width": 256, "id": 9679, "height": 256}, {"file_name": "ADE_train_00009681.jpg", "width": 256, "id": 9680, "height": 256}, {"file_name": "ADE_train_00009682.jpg", "width": 256, "id": 9681, "height": 256}, {"file_name": "ADE_train_00009683.jpg", "width": 256, "id": 9682, "height": 256}, {"file_name": "ADE_train_00009684.jpg", "width": 256, "id": 9683, "height": 256}, {"file_name": "ADE_train_00009685.jpg", "width": 256, "id": 9684, "height": 256}, {"file_name": "ADE_train_00009686.jpg", "width": 256, "id": 9685, "height": 256}, {"file_name": "ADE_train_00009687.jpg", "width": 357, "id": 9686, "height": 253}, {"file_name": "ADE_train_00009688.jpg", "width": 256, "id": 9687, "height": 256}, {"file_name": "ADE_train_00009689.jpg", "width": 256, "id": 9688, "height": 256}, {"file_name": "ADE_train_00009690.jpg", "width": 256, "id": 9689, "height": 256}, {"file_name": "ADE_train_00009691.jpg", "width": 256, "id": 9690, "height": 256}, {"file_name": "ADE_train_00009692.jpg", "width": 256, "id": 9691, "height": 256}, {"file_name": "ADE_train_00009693.jpg", "width": 256, "id": 9692, "height": 256}, {"file_name": "ADE_train_00009694.jpg", "width": 350, "id": 9693, "height": 266}, {"file_name": "ADE_train_00009695.jpg", "width": 256, "id": 9694, "height": 256}, {"file_name": "ADE_train_00009696.jpg", "width": 256, "id": 9695, "height": 256}, {"file_name": "ADE_train_00009697.jpg", "width": 256, "id": 9696, "height": 256}, {"file_name": "ADE_train_00009698.jpg", "width": 640, "id": 9697, "height": 512}, {"file_name": "ADE_train_00009699.jpg", "width": 683, "id": 9698, "height": 512}, {"file_name": "ADE_train_00009700.jpg", "width": 682, "id": 9699, "height": 512}, {"file_name": "ADE_train_00009701.jpg", "width": 776, "id": 9700, "height": 512}, {"file_name": "ADE_train_00009702.jpg", "width": 773, "id": 9701, "height": 512}, {"file_name": "ADE_train_00009703.jpg", "width": 683, "id": 9702, "height": 512}, {"file_name": "ADE_train_00009704.jpg", "width": 683, "id": 9703, "height": 512}, {"file_name": "ADE_train_00009705.jpg", "width": 785, "id": 9704, "height": 512}, {"file_name": "ADE_train_00009706.jpg", "width": 512, "id": 9705, "height": 605}, {"file_name": "ADE_train_00009707.jpg", "width": 784, "id": 9706, "height": 512}, {"file_name": "ADE_train_00009708.jpg", "width": 683, "id": 9707, "height": 512}, {"file_name": "ADE_train_00009709.jpg", "width": 683, "id": 9708, "height": 512}, {"file_name": "ADE_train_00009710.jpg", "width": 683, "id": 9709, "height": 512}, {"file_name": "ADE_train_00009711.jpg", "width": 683, "id": 9710, "height": 512}, {"file_name": "ADE_train_00009712.jpg", "width": 683, "id": 9711, "height": 512}, {"file_name": "ADE_train_00009713.jpg", "width": 683, "id": 9712, "height": 512}, {"file_name": "ADE_train_00009714.jpg", "width": 770, "id": 9713, "height": 512}, {"file_name": "ADE_train_00009715.jpg", "width": 684, "id": 9714, "height": 512}, {"file_name": "ADE_train_00009716.jpg", "width": 683, "id": 9715, "height": 512}, {"file_name": "ADE_train_00009717.jpg", "width": 768, "id": 9716, "height": 512}, {"file_name": "ADE_train_00009718.jpg", "width": 683, "id": 9717, "height": 512}, {"file_name": "ADE_train_00009719.jpg", "width": 683, "id": 9718, "height": 512}, {"file_name": "ADE_train_00009720.jpg", "width": 910, "id": 9719, "height": 512}, {"file_name": "ADE_train_00009721.jpg", "width": 683, "id": 9720, "height": 512}, {"file_name": "ADE_train_00009722.jpg", "width": 683, "id": 9721, "height": 512}, {"file_name": "ADE_train_00009723.jpg", "width": 683, "id": 9722, "height": 512}, {"file_name": "ADE_train_00009724.jpg", "width": 718, "id": 9723, "height": 512}, {"file_name": "ADE_train_00009725.jpg", "width": 768, "id": 9724, "height": 512}, {"file_name": "ADE_train_00009726.jpg", "width": 684, "id": 9725, "height": 512}, {"file_name": "ADE_train_00009727.jpg", "width": 683, "id": 9726, "height": 512}, {"file_name": "ADE_train_00009728.jpg", "width": 768, "id": 9727, "height": 512}, {"file_name": "ADE_train_00009729.jpg", "width": 512, "id": 9728, "height": 704}, {"file_name": "ADE_train_00009730.jpg", "width": 640, "id": 9729, "height": 480}, {"file_name": "ADE_train_00009731.jpg", "width": 460, "id": 9730, "height": 343}, {"file_name": "ADE_train_00009732.jpg", "width": 400, "id": 9731, "height": 300}, {"file_name": "ADE_train_00009733.jpg", "width": 200, "id": 9732, "height": 300}, {"file_name": "ADE_train_00009734.jpg", "width": 300, "id": 9733, "height": 225}, {"file_name": "ADE_train_00009735.jpg", "width": 397, "id": 9734, "height": 573}, {"file_name": "ADE_train_00009736.jpg", "width": 357, "id": 9735, "height": 261}, {"file_name": "ADE_train_00009737.jpg", "width": 281, "id": 9736, "height": 207}, {"file_name": "ADE_train_00009738.jpg", "width": 491, "id": 9737, "height": 230}, {"file_name": "ADE_train_00009739.jpg", "width": 340, "id": 9738, "height": 284}, {"file_name": "ADE_train_00009740.jpg", "width": 340, "id": 9739, "height": 255}, {"file_name": "ADE_train_00009741.jpg", "width": 230, "id": 9740, "height": 298}, {"file_name": "ADE_train_00009742.jpg", "width": 353, "id": 9741, "height": 226}, {"file_name": "ADE_train_00009743.jpg", "width": 600, "id": 9742, "height": 354}, {"file_name": "ADE_train_00009744.jpg", "width": 428, "id": 9743, "height": 286}, {"file_name": "ADE_train_00009745.jpg", "width": 625, "id": 9744, "height": 448}, {"file_name": "ADE_train_00009746.jpg", "width": 380, "id": 9745, "height": 253}, {"file_name": "ADE_train_00009747.jpg", "width": 683, "id": 9746, "height": 512}, {"file_name": "ADE_train_00009748.jpg", "width": 768, "id": 9747, "height": 512}, {"file_name": "ADE_train_00009749.jpg", "width": 765, "id": 9748, "height": 512}, {"file_name": "ADE_train_00009750.jpg", "width": 320, "id": 9749, "height": 240}, {"file_name": "ADE_train_00009751.jpg", "width": 667, "id": 9750, "height": 434}, {"file_name": "ADE_train_00009752.jpg", "width": 274, "id": 9751, "height": 344}, {"file_name": "ADE_train_00009753.jpg", "width": 349, "id": 9752, "height": 232}, {"file_name": "ADE_train_00009754.jpg", "width": 766, "id": 9753, "height": 438}, {"file_name": "ADE_train_00009755.jpg", "width": 682, "id": 9754, "height": 512}, {"file_name": "ADE_train_00009756.jpg", "width": 288, "id": 9755, "height": 233}, {"file_name": "ADE_train_00009757.jpg", "width": 682, "id": 9756, "height": 512}, {"file_name": "ADE_train_00009758.jpg", "width": 350, "id": 9757, "height": 258}, {"file_name": "ADE_train_00009759.jpg", "width": 300, "id": 9758, "height": 210}, {"file_name": "ADE_train_00009760.jpg", "width": 320, "id": 9759, "height": 240}, {"file_name": "ADE_train_00009761.jpg", "width": 448, "id": 9760, "height": 336}, {"file_name": "ADE_train_00009762.jpg", "width": 594, "id": 9761, "height": 430}, {"file_name": "ADE_train_00009763.jpg", "width": 350, "id": 9762, "height": 400}, {"file_name": "ADE_train_00009764.jpg", "width": 474, "id": 9763, "height": 356}, {"file_name": "ADE_train_00009765.jpg", "width": 425, "id": 9764, "height": 319}, {"file_name": "ADE_train_00009766.jpg", "width": 300, "id": 9765, "height": 298}, {"file_name": "ADE_train_00009767.jpg", "width": 450, "id": 9766, "height": 300}, {"file_name": "ADE_train_00009768.jpg", "width": 300, "id": 9767, "height": 225}, {"file_name": "ADE_train_00009769.jpg", "width": 550, "id": 9768, "height": 365}, {"file_name": "ADE_train_00009770.jpg", "width": 500, "id": 9769, "height": 375}, {"file_name": "ADE_train_00009771.jpg", "width": 506, "id": 9770, "height": 287}, {"file_name": "ADE_train_00009772.jpg", "width": 590, "id": 9771, "height": 299}, {"file_name": "ADE_train_00009773.jpg", "width": 399, "id": 9772, "height": 600}, {"file_name": "ADE_train_00009774.jpg", "width": 355, "id": 9773, "height": 231}, {"file_name": "ADE_train_00009775.jpg", "width": 646, "id": 9774, "height": 512}, {"file_name": "ADE_train_00009776.jpg", "width": 600, "id": 9775, "height": 350}, {"file_name": "ADE_train_00009777.jpg", "width": 418, "id": 9776, "height": 262}, {"file_name": "ADE_train_00009778.jpg", "width": 450, "id": 9777, "height": 275}, {"file_name": "ADE_train_00009779.jpg", "width": 320, "id": 9778, "height": 213}, {"file_name": "ADE_train_00009780.jpg", "width": 683, "id": 9779, "height": 512}, {"file_name": "ADE_train_00009781.jpg", "width": 819, "id": 9780, "height": 512}, {"file_name": "ADE_train_00009782.jpg", "width": 683, "id": 9781, "height": 512}, {"file_name": "ADE_train_00009783.jpg", "width": 300, "id": 9782, "height": 225}, {"file_name": "ADE_train_00009784.jpg", "width": 356, "id": 9783, "height": 331}, {"file_name": "ADE_train_00009785.jpg", "width": 372, "id": 9784, "height": 192}, {"file_name": "ADE_train_00009786.jpg", "width": 542, "id": 9785, "height": 353}, {"file_name": "ADE_train_00009787.jpg", "width": 600, "id": 9786, "height": 450}, {"file_name": "ADE_train_00009788.jpg", "width": 310, "id": 9787, "height": 250}, {"file_name": "ADE_train_00009789.jpg", "width": 434, "id": 9788, "height": 300}, {"file_name": "ADE_train_00009790.jpg", "width": 683, "id": 9789, "height": 512}, {"file_name": "ADE_train_00009791.jpg", "width": 580, "id": 9790, "height": 385}, {"file_name": "ADE_train_00009792.jpg", "width": 640, "id": 9791, "height": 480}, {"file_name": "ADE_train_00009793.jpg", "width": 640, "id": 9792, "height": 480}, {"file_name": "ADE_train_00009794.jpg", "width": 611, "id": 9793, "height": 388}, {"file_name": "ADE_train_00009795.jpg", "width": 500, "id": 9794, "height": 340}, {"file_name": "ADE_train_00009796.jpg", "width": 500, "id": 9795, "height": 375}, {"file_name": "ADE_train_00009797.jpg", "width": 386, "id": 9796, "height": 268}, {"file_name": "ADE_train_00009798.jpg", "width": 500, "id": 9797, "height": 396}, {"file_name": "ADE_train_00009799.jpg", "width": 315, "id": 9798, "height": 209}, {"file_name": "ADE_train_00009800.jpg", "width": 786, "id": 9799, "height": 512}, {"file_name": "ADE_train_00009801.jpg", "width": 442, "id": 9800, "height": 291}, {"file_name": "ADE_train_00009802.jpg", "width": 540, "id": 9801, "height": 405}, {"file_name": "ADE_train_00009803.jpg", "width": 401, "id": 9802, "height": 267}, {"file_name": "ADE_train_00009804.jpg", "width": 357, "id": 9803, "height": 187}, {"file_name": "ADE_train_00009805.jpg", "width": 520, "id": 9804, "height": 512}, {"file_name": "ADE_train_00009806.jpg", "width": 320, "id": 9805, "height": 240}, {"file_name": "ADE_train_00009807.jpg", "width": 300, "id": 9806, "height": 400}, {"file_name": "ADE_train_00009808.jpg", "width": 250, "id": 9807, "height": 206}, {"file_name": "ADE_train_00009809.jpg", "width": 512, "id": 9808, "height": 768}, {"file_name": "ADE_train_00009810.jpg", "width": 800, "id": 9809, "height": 512}, {"file_name": "ADE_train_00009811.jpg", "width": 450, "id": 9810, "height": 360}, {"file_name": "ADE_train_00009812.jpg", "width": 652, "id": 9811, "height": 264}, {"file_name": "ADE_train_00009813.jpg", "width": 683, "id": 9812, "height": 512}, {"file_name": "ADE_train_00009814.jpg", "width": 360, "id": 9813, "height": 222}, {"file_name": "ADE_train_00009815.jpg", "width": 384, "id": 9814, "height": 256}, {"file_name": "ADE_train_00009816.jpg", "width": 256, "id": 9815, "height": 256}, {"file_name": "ADE_train_00009817.jpg", "width": 384, "id": 9816, "height": 256}, {"file_name": "ADE_train_00009818.jpg", "width": 384, "id": 9817, "height": 256}, {"file_name": "ADE_train_00009819.jpg", "width": 384, "id": 9818, "height": 256}, {"file_name": "ADE_train_00009820.jpg", "width": 384, "id": 9819, "height": 256}, {"file_name": "ADE_train_00009821.jpg", "width": 384, "id": 9820, "height": 256}, {"file_name": "ADE_train_00009822.jpg", "width": 256, "id": 9821, "height": 384}, {"file_name": "ADE_train_00009823.jpg", "width": 683, "id": 9822, "height": 512}, {"file_name": "ADE_train_00009824.jpg", "width": 640, "id": 9823, "height": 480}, {"file_name": "ADE_train_00009825.jpg", "width": 256, "id": 9824, "height": 256}, {"file_name": "ADE_train_00009826.jpg", "width": 256, "id": 9825, "height": 256}, {"file_name": "ADE_train_00009827.jpg", "width": 256, "id": 9826, "height": 256}, {"file_name": "ADE_train_00009828.jpg", "width": 256, "id": 9827, "height": 256}, {"file_name": "ADE_train_00009829.jpg", "width": 683, "id": 9828, "height": 512}, {"file_name": "ADE_train_00009830.jpg", "width": 300, "id": 9829, "height": 207}, {"file_name": "ADE_train_00009831.jpg", "width": 250, "id": 9830, "height": 200}, {"file_name": "ADE_train_00009832.jpg", "width": 300, "id": 9831, "height": 290}, {"file_name": "ADE_train_00009833.jpg", "width": 683, "id": 9832, "height": 512}, {"file_name": "ADE_train_00009834.jpg", "width": 300, "id": 9833, "height": 206}, {"file_name": "ADE_train_00009835.jpg", "width": 600, "id": 9834, "height": 450}, {"file_name": "ADE_train_00009836.jpg", "width": 500, "id": 9835, "height": 375}, {"file_name": "ADE_train_00009837.jpg", "width": 250, "id": 9836, "height": 367}, {"file_name": "ADE_train_00009838.jpg", "width": 300, "id": 9837, "height": 206}, {"file_name": "ADE_train_00009839.jpg", "width": 392, "id": 9838, "height": 269}, {"file_name": "ADE_train_00009840.jpg", "width": 640, "id": 9839, "height": 480}, {"file_name": "ADE_train_00009841.jpg", "width": 275, "id": 9840, "height": 206}, {"file_name": "ADE_train_00009842.jpg", "width": 420, "id": 9841, "height": 300}, {"file_name": "ADE_train_00009843.jpg", "width": 567, "id": 9842, "height": 425}, {"file_name": "ADE_train_00009844.jpg", "width": 384, "id": 9843, "height": 256}, {"file_name": "ADE_train_00009845.jpg", "width": 256, "id": 9844, "height": 384}, {"file_name": "ADE_train_00009846.jpg", "width": 256, "id": 9845, "height": 256}, {"file_name": "ADE_train_00009847.jpg", "width": 256, "id": 9846, "height": 256}, {"file_name": "ADE_train_00009848.jpg", "width": 384, "id": 9847, "height": 256}, {"file_name": "ADE_train_00009849.jpg", "width": 256, "id": 9848, "height": 256}, {"file_name": "ADE_train_00009850.jpg", "width": 256, "id": 9849, "height": 256}, {"file_name": "ADE_train_00009851.jpg", "width": 384, "id": 9850, "height": 256}, {"file_name": "ADE_train_00009852.jpg", "width": 256, "id": 9851, "height": 256}, {"file_name": "ADE_train_00009853.jpg", "width": 256, "id": 9852, "height": 256}, {"file_name": "ADE_train_00009854.jpg", "width": 312, "id": 9853, "height": 234}, {"file_name": "ADE_train_00009855.jpg", "width": 640, "id": 9854, "height": 480}, {"file_name": "ADE_train_00009856.jpg", "width": 880, "id": 9855, "height": 480}, {"file_name": "ADE_train_00009857.jpg", "width": 683, "id": 9856, "height": 512}, {"file_name": "ADE_train_00009858.jpg", "width": 786, "id": 9857, "height": 512}, {"file_name": "ADE_train_00009859.jpg", "width": 500, "id": 9858, "height": 375}, {"file_name": "ADE_train_00009860.jpg", "width": 640, "id": 9859, "height": 480}, {"file_name": "ADE_train_00009861.jpg", "width": 683, "id": 9860, "height": 512}, {"file_name": "ADE_train_00009862.jpg", "width": 545, "id": 9861, "height": 394}, {"file_name": "ADE_train_00009863.jpg", "width": 880, "id": 9862, "height": 480}, {"file_name": "ADE_train_00009864.jpg", "width": 467, "id": 9863, "height": 345}, {"file_name": "ADE_train_00009865.jpg", "width": 473, "id": 9864, "height": 351}, {"file_name": "ADE_train_00009866.jpg", "width": 500, "id": 9865, "height": 341}, {"file_name": "ADE_train_00009867.jpg", "width": 469, "id": 9866, "height": 352}, {"file_name": "ADE_train_00009868.jpg", "width": 468, "id": 9867, "height": 347}, {"file_name": "ADE_train_00009869.jpg", "width": 400, "id": 9868, "height": 300}, {"file_name": "ADE_train_00009870.jpg", "width": 400, "id": 9869, "height": 267}, {"file_name": "ADE_train_00009871.jpg", "width": 683, "id": 9870, "height": 512}, {"file_name": "ADE_train_00009872.jpg", "width": 683, "id": 9871, "height": 512}, {"file_name": "ADE_train_00009873.jpg", "width": 683, "id": 9872, "height": 512}, {"file_name": "ADE_train_00009874.jpg", "width": 767, "id": 9873, "height": 512}, {"file_name": "ADE_train_00009875.jpg", "width": 683, "id": 9874, "height": 512}, {"file_name": "ADE_train_00009876.jpg", "width": 674, "id": 9875, "height": 512}, {"file_name": "ADE_train_00009877.jpg", "width": 765, "id": 9876, "height": 512}, {"file_name": "ADE_train_00009878.jpg", "width": 765, "id": 9877, "height": 512}, {"file_name": "ADE_train_00009879.jpg", "width": 683, "id": 9878, "height": 512}, {"file_name": "ADE_train_00009880.jpg", "width": 374, "id": 9879, "height": 249}, {"file_name": "ADE_train_00009881.jpg", "width": 533, "id": 9880, "height": 400}, {"file_name": "ADE_train_00009882.jpg", "width": 541, "id": 9881, "height": 407}, {"file_name": "ADE_train_00009883.jpg", "width": 640, "id": 9882, "height": 480}, {"file_name": "ADE_train_00009884.jpg", "width": 319, "id": 9883, "height": 467}, {"file_name": "ADE_train_00009885.jpg", "width": 360, "id": 9884, "height": 231}, {"file_name": "ADE_train_00009886.jpg", "width": 407, "id": 9885, "height": 249}, {"file_name": "ADE_train_00009887.jpg", "width": 450, "id": 9886, "height": 600}, {"file_name": "ADE_train_00009888.jpg", "width": 683, "id": 9887, "height": 512}, {"file_name": "ADE_train_00009889.jpg", "width": 370, "id": 9888, "height": 214}, {"file_name": "ADE_train_00009890.jpg", "width": 319, "id": 9889, "height": 227}, {"file_name": "ADE_train_00009891.jpg", "width": 420, "id": 9890, "height": 280}, {"file_name": "ADE_train_00009892.jpg", "width": 683, "id": 9891, "height": 512}, {"file_name": "ADE_train_00009893.jpg", "width": 245, "id": 9892, "height": 408}, {"file_name": "ADE_train_00009894.jpg", "width": 300, "id": 9893, "height": 237}, {"file_name": "ADE_train_00009895.jpg", "width": 721, "id": 9894, "height": 512}, {"file_name": "ADE_train_00009896.jpg", "width": 683, "id": 9895, "height": 512}, {"file_name": "ADE_train_00009897.jpg", "width": 400, "id": 9896, "height": 250}, {"file_name": "ADE_train_00009898.jpg", "width": 210, "id": 9897, "height": 311}, {"file_name": "ADE_train_00009899.jpg", "width": 500, "id": 9898, "height": 330}, {"file_name": "ADE_train_00009900.jpg", "width": 608, "id": 9899, "height": 396}, {"file_name": "ADE_train_00009901.jpg", "width": 398, "id": 9900, "height": 212}, {"file_name": "ADE_train_00009902.jpg", "width": 384, "id": 9901, "height": 256}, {"file_name": "ADE_train_00009903.jpg", "width": 240, "id": 9902, "height": 240}, {"file_name": "ADE_train_00009904.jpg", "width": 683, "id": 9903, "height": 512}, {"file_name": "ADE_train_00009905.jpg", "width": 328, "id": 9904, "height": 246}, {"file_name": "ADE_train_00009906.jpg", "width": 533, "id": 9905, "height": 400}, {"file_name": "ADE_train_00009907.jpg", "width": 500, "id": 9906, "height": 333}, {"file_name": "ADE_train_00009908.jpg", "width": 320, "id": 9907, "height": 240}, {"file_name": "ADE_train_00009909.jpg", "width": 683, "id": 9908, "height": 512}, {"file_name": "ADE_train_00009910.jpg", "width": 200, "id": 9909, "height": 200}, {"file_name": "ADE_train_00009911.jpg", "width": 440, "id": 9910, "height": 330}, {"file_name": "ADE_train_00009912.jpg", "width": 683, "id": 9911, "height": 512}, {"file_name": "ADE_train_00009913.jpg", "width": 650, "id": 9912, "height": 465}, {"file_name": "ADE_train_00009914.jpg", "width": 705, "id": 9913, "height": 512}, {"file_name": "ADE_train_00009915.jpg", "width": 400, "id": 9914, "height": 262}, {"file_name": "ADE_train_00009916.jpg", "width": 399, "id": 9915, "height": 267}, {"file_name": "ADE_train_00009917.jpg", "width": 644, "id": 9916, "height": 484}, {"file_name": "ADE_train_00009918.jpg", "width": 452, "id": 9917, "height": 314}, {"file_name": "ADE_train_00009919.jpg", "width": 500, "id": 9918, "height": 294}, {"file_name": "ADE_train_00009920.jpg", "width": 500, "id": 9919, "height": 375}, {"file_name": "ADE_train_00009921.jpg", "width": 500, "id": 9920, "height": 333}, {"file_name": "ADE_train_00009922.jpg", "width": 678, "id": 9921, "height": 512}, {"file_name": "ADE_train_00009923.jpg", "width": 773, "id": 9922, "height": 512}, {"file_name": "ADE_train_00009924.jpg", "width": 683, "id": 9923, "height": 512}, {"file_name": "ADE_train_00009925.jpg", "width": 683, "id": 9924, "height": 512}, {"file_name": "ADE_train_00009926.jpg", "width": 440, "id": 9925, "height": 330}, {"file_name": "ADE_train_00009927.jpg", "width": 385, "id": 9926, "height": 260}, {"file_name": "ADE_train_00009928.jpg", "width": 279, "id": 9927, "height": 419}, {"file_name": "ADE_train_00009929.jpg", "width": 356, "id": 9928, "height": 247}, {"file_name": "ADE_train_00009930.jpg", "width": 683, "id": 9929, "height": 512}, {"file_name": "ADE_train_00009931.jpg", "width": 352, "id": 9930, "height": 242}, {"file_name": "ADE_train_00009932.jpg", "width": 282, "id": 9931, "height": 273}, {"file_name": "ADE_train_00009933.jpg", "width": 247, "id": 9932, "height": 356}, {"file_name": "ADE_train_00009934.jpg", "width": 768, "id": 9933, "height": 512}, {"file_name": "ADE_train_00009935.jpg", "width": 230, "id": 9934, "height": 345}, {"file_name": "ADE_train_00009936.jpg", "width": 300, "id": 9935, "height": 225}, {"file_name": "ADE_train_00009937.jpg", "width": 683, "id": 9936, "height": 512}, {"file_name": "ADE_train_00009938.jpg", "width": 312, "id": 9937, "height": 235}, {"file_name": "ADE_train_00009939.jpg", "width": 679, "id": 9938, "height": 512}, {"file_name": "ADE_train_00009940.jpg", "width": 683, "id": 9939, "height": 512}, {"file_name": "ADE_train_00009941.jpg", "width": 350, "id": 9940, "height": 234}, {"file_name": "ADE_train_00009942.jpg", "width": 338, "id": 9941, "height": 257}, {"file_name": "ADE_train_00009943.jpg", "width": 683, "id": 9942, "height": 512}, {"file_name": "ADE_train_00009944.jpg", "width": 683, "id": 9943, "height": 512}, {"file_name": "ADE_train_00009945.jpg", "width": 500, "id": 9944, "height": 333}, {"file_name": "ADE_train_00009946.jpg", "width": 400, "id": 9945, "height": 400}, {"file_name": "ADE_train_00009947.jpg", "width": 450, "id": 9946, "height": 312}, {"file_name": "ADE_train_00009948.jpg", "width": 550, "id": 9947, "height": 367}, {"file_name": "ADE_train_00009949.jpg", "width": 356, "id": 9948, "height": 247}, {"file_name": "ADE_train_00009950.jpg", "width": 480, "id": 9949, "height": 333}, {"file_name": "ADE_train_00009951.jpg", "width": 650, "id": 9950, "height": 488}, {"file_name": "ADE_train_00009952.jpg", "width": 550, "id": 9951, "height": 412}, {"file_name": "ADE_train_00009953.jpg", "width": 500, "id": 9952, "height": 478}, {"file_name": "ADE_train_00009954.jpg", "width": 600, "id": 9953, "height": 387}, {"file_name": "ADE_train_00009955.jpg", "width": 550, "id": 9954, "height": 412}, {"file_name": "ADE_train_00009956.jpg", "width": 640, "id": 9955, "height": 480}, {"file_name": "ADE_train_00009957.jpg", "width": 500, "id": 9956, "height": 372}, {"file_name": "ADE_train_00009958.jpg", "width": 346, "id": 9957, "height": 262}, {"file_name": "ADE_train_00009959.jpg", "width": 296, "id": 9958, "height": 220}, {"file_name": "ADE_train_00009960.jpg", "width": 533, "id": 9959, "height": 400}, {"file_name": "ADE_train_00009961.jpg", "width": 512, "id": 9960, "height": 325}, {"file_name": "ADE_train_00009962.jpg", "width": 648, "id": 9961, "height": 475}, {"file_name": "ADE_train_00009963.jpg", "width": 683, "id": 9962, "height": 512}, {"file_name": "ADE_train_00009964.jpg", "width": 683, "id": 9963, "height": 512}, {"file_name": "ADE_train_00009965.jpg", "width": 683, "id": 9964, "height": 512}, {"file_name": "ADE_train_00009966.jpg", "width": 768, "id": 9965, "height": 512}, {"file_name": "ADE_train_00009967.jpg", "width": 683, "id": 9966, "height": 512}, {"file_name": "ADE_train_00009968.jpg", "width": 300, "id": 9967, "height": 225}, {"file_name": "ADE_train_00009969.jpg", "width": 240, "id": 9968, "height": 204}, {"file_name": "ADE_train_00009970.jpg", "width": 256, "id": 9969, "height": 256}, {"file_name": "ADE_train_00009971.jpg", "width": 400, "id": 9970, "height": 600}, {"file_name": "ADE_train_00009972.jpg", "width": 256, "id": 9971, "height": 256}, {"file_name": "ADE_train_00009973.jpg", "width": 408, "id": 9972, "height": 320}, {"file_name": "ADE_train_00009974.jpg", "width": 320, "id": 9973, "height": 240}, {"file_name": "ADE_train_00009975.jpg", "width": 256, "id": 9974, "height": 256}, {"file_name": "ADE_train_00009976.jpg", "width": 683, "id": 9975, "height": 512}, {"file_name": "ADE_train_00009977.jpg", "width": 256, "id": 9976, "height": 256}, {"file_name": "ADE_train_00009978.jpg", "width": 256, "id": 9977, "height": 256}, {"file_name": "ADE_train_00009979.jpg", "width": 256, "id": 9978, "height": 256}, {"file_name": "ADE_train_00009980.jpg", "width": 448, "id": 9979, "height": 202}, {"file_name": "ADE_train_00009981.jpg", "width": 350, "id": 9980, "height": 232}, {"file_name": "ADE_train_00009982.jpg", "width": 683, "id": 9981, "height": 512}, {"file_name": "ADE_train_00009983.jpg", "width": 387, "id": 9982, "height": 479}, {"file_name": "ADE_train_00009984.jpg", "width": 765, "id": 9983, "height": 512}, {"file_name": "ADE_train_00009985.jpg", "width": 400, "id": 9984, "height": 262}, {"file_name": "ADE_train_00009986.jpg", "width": 683, "id": 9985, "height": 512}, {"file_name": "ADE_train_00009987.jpg", "width": 320, "id": 9986, "height": 220}, {"file_name": "ADE_train_00009988.jpg", "width": 659, "id": 9987, "height": 512}, {"file_name": "ADE_train_00009989.jpg", "width": 320, "id": 9988, "height": 240}, {"file_name": "ADE_train_00009990.jpg", "width": 256, "id": 9989, "height": 256}, {"file_name": "ADE_train_00009991.jpg", "width": 460, "id": 9990, "height": 345}, {"file_name": "ADE_train_00009992.jpg", "width": 478, "id": 9991, "height": 411}, {"file_name": "ADE_train_00009993.jpg", "width": 480, "id": 9992, "height": 480}, {"file_name": "ADE_train_00009994.jpg", "width": 256, "id": 9993, "height": 256}, {"file_name": "ADE_train_00009995.jpg", "width": 306, "id": 9994, "height": 229}, {"file_name": "ADE_train_00009996.jpg", "width": 625, "id": 9995, "height": 467}, {"file_name": "ADE_train_00009997.jpg", "width": 400, "id": 9996, "height": 300}, {"file_name": "ADE_train_00009998.jpg", "width": 293, "id": 9997, "height": 447}, {"file_name": "ADE_train_00009999.jpg", "width": 256, "id": 9998, "height": 256}, {"file_name": "ADE_train_00010000.jpg", "width": 256, "id": 9999, "height": 256}, {"file_name": "ADE_train_00010001.jpg", "width": 256, "id": 10000, "height": 256}, {"file_name": "ADE_train_00010002.jpg", "width": 500, "id": 10001, "height": 455}, {"file_name": "ADE_train_00010003.jpg", "width": 512, "id": 10002, "height": 683}, {"file_name": "ADE_train_00010004.jpg", "width": 550, "id": 10003, "height": 550}, {"file_name": "ADE_train_00010005.jpg", "width": 375, "id": 10004, "height": 500}, {"file_name": "ADE_train_00010006.jpg", "width": 683, "id": 10005, "height": 512}, {"file_name": "ADE_train_00010007.jpg", "width": 320, "id": 10006, "height": 256}, {"file_name": "ADE_train_00010008.jpg", "width": 320, "id": 10007, "height": 228}, {"file_name": "ADE_train_00010009.jpg", "width": 772, "id": 10008, "height": 512}, {"file_name": "ADE_train_00010010.jpg", "width": 512, "id": 10009, "height": 683}, {"file_name": "ADE_train_00010011.jpg", "width": 683, "id": 10010, "height": 512}, {"file_name": "ADE_train_00010012.jpg", "width": 512, "id": 10011, "height": 768}, {"file_name": "ADE_train_00010013.jpg", "width": 683, "id": 10012, "height": 512}, {"file_name": "ADE_train_00010014.jpg", "width": 512, "id": 10013, "height": 683}, {"file_name": "ADE_train_00010015.jpg", "width": 400, "id": 10014, "height": 300}, {"file_name": "ADE_train_00010016.jpg", "width": 432, "id": 10015, "height": 324}, {"file_name": "ADE_train_00010017.jpg", "width": 409, "id": 10016, "height": 619}, {"file_name": "ADE_train_00010018.jpg", "width": 770, "id": 10017, "height": 504}, {"file_name": "ADE_train_00010019.jpg", "width": 683, "id": 10018, "height": 512}, {"file_name": "ADE_train_00010020.jpg", "width": 683, "id": 10019, "height": 512}, {"file_name": "ADE_train_00010021.jpg", "width": 346, "id": 10020, "height": 301}, {"file_name": "ADE_train_00010022.jpg", "width": 640, "id": 10021, "height": 480}, {"file_name": "ADE_train_00010023.jpg", "width": 256, "id": 10022, "height": 256}, {"file_name": "ADE_train_00010024.jpg", "width": 470, "id": 10023, "height": 316}, {"file_name": "ADE_train_00010025.jpg", "width": 256, "id": 10024, "height": 256}, {"file_name": "ADE_train_00010026.jpg", "width": 256, "id": 10025, "height": 256}, {"file_name": "ADE_train_00010027.jpg", "width": 256, "id": 10026, "height": 256}, {"file_name": "ADE_train_00010028.jpg", "width": 325, "id": 10027, "height": 232}, {"file_name": "ADE_train_00010029.jpg", "width": 501, "id": 10028, "height": 400}, {"file_name": "ADE_train_00010030.jpg", "width": 550, "id": 10029, "height": 412}, {"file_name": "ADE_train_00010031.jpg", "width": 300, "id": 10030, "height": 225}, {"file_name": "ADE_train_00010032.jpg", "width": 256, "id": 10031, "height": 256}, {"file_name": "ADE_train_00010033.jpg", "width": 280, "id": 10032, "height": 200}, {"file_name": "ADE_train_00010034.jpg", "width": 464, "id": 10033, "height": 302}, {"file_name": "ADE_train_00010035.jpg", "width": 683, "id": 10034, "height": 512}, {"file_name": "ADE_train_00010036.jpg", "width": 368, "id": 10035, "height": 278}, {"file_name": "ADE_train_00010037.jpg", "width": 683, "id": 10036, "height": 512}, {"file_name": "ADE_train_00010038.jpg", "width": 640, "id": 10037, "height": 483}, {"file_name": "ADE_train_00010039.jpg", "width": 683, "id": 10038, "height": 512}, {"file_name": "ADE_train_00010040.jpg", "width": 683, "id": 10039, "height": 512}, {"file_name": "ADE_train_00010041.jpg", "width": 432, "id": 10040, "height": 324}, {"file_name": "ADE_train_00010042.jpg", "width": 212, "id": 10041, "height": 300}, {"file_name": "ADE_train_00010043.jpg", "width": 328, "id": 10042, "height": 206}, {"file_name": "ADE_train_00010044.jpg", "width": 298, "id": 10043, "height": 200}, {"file_name": "ADE_train_00010045.jpg", "width": 300, "id": 10044, "height": 200}, {"file_name": "ADE_train_00010046.jpg", "width": 300, "id": 10045, "height": 200}, {"file_name": "ADE_train_00010047.jpg", "width": 667, "id": 10046, "height": 500}, {"file_name": "ADE_train_00010048.jpg", "width": 683, "id": 10047, "height": 512}, {"file_name": "ADE_train_00010049.jpg", "width": 300, "id": 10048, "height": 224}, {"file_name": "ADE_train_00010050.jpg", "width": 763, "id": 10049, "height": 512}, {"file_name": "ADE_train_00010051.jpg", "width": 683, "id": 10050, "height": 512}, {"file_name": "ADE_train_00010052.jpg", "width": 512, "id": 10051, "height": 384}, {"file_name": "ADE_train_00010053.jpg", "width": 648, "id": 10052, "height": 341}, {"file_name": "ADE_train_00010054.jpg", "width": 500, "id": 10053, "height": 400}, {"file_name": "ADE_train_00010055.jpg", "width": 768, "id": 10054, "height": 512}, {"file_name": "ADE_train_00010056.jpg", "width": 300, "id": 10055, "height": 205}, {"file_name": "ADE_train_00010057.jpg", "width": 683, "id": 10056, "height": 512}, {"file_name": "ADE_train_00010058.jpg", "width": 320, "id": 10057, "height": 253}, {"file_name": "ADE_train_00010059.jpg", "width": 300, "id": 10058, "height": 224}, {"file_name": "ADE_train_00010060.jpg", "width": 413, "id": 10059, "height": 219}, {"file_name": "ADE_train_00010061.jpg", "width": 300, "id": 10060, "height": 235}, {"file_name": "ADE_train_00010062.jpg", "width": 770, "id": 10061, "height": 512}, {"file_name": "ADE_train_00010063.jpg", "width": 640, "id": 10062, "height": 432}, {"file_name": "ADE_train_00010064.jpg", "width": 600, "id": 10063, "height": 400}, {"file_name": "ADE_train_00010065.jpg", "width": 683, "id": 10064, "height": 512}, {"file_name": "ADE_train_00010066.jpg", "width": 740, "id": 10065, "height": 512}, {"file_name": "ADE_train_00010067.jpg", "width": 300, "id": 10066, "height": 222}, {"file_name": "ADE_train_00010068.jpg", "width": 400, "id": 10067, "height": 267}, {"file_name": "ADE_train_00010069.jpg", "width": 768, "id": 10068, "height": 512}, {"file_name": "ADE_train_00010070.jpg", "width": 769, "id": 10069, "height": 512}, {"file_name": "ADE_train_00010071.jpg", "width": 325, "id": 10070, "height": 217}, {"file_name": "ADE_train_00010072.jpg", "width": 683, "id": 10071, "height": 512}, {"file_name": "ADE_train_00010073.jpg", "width": 683, "id": 10072, "height": 512}, {"file_name": "ADE_train_00010074.jpg", "width": 683, "id": 10073, "height": 512}, {"file_name": "ADE_train_00010075.jpg", "width": 683, "id": 10074, "height": 512}, {"file_name": "ADE_train_00010076.jpg", "width": 683, "id": 10075, "height": 512}, {"file_name": "ADE_train_00010077.jpg", "width": 512, "id": 10076, "height": 698}, {"file_name": "ADE_train_00010078.jpg", "width": 600, "id": 10077, "height": 341}, {"file_name": "ADE_train_00010079.jpg", "width": 512, "id": 10078, "height": 683}, {"file_name": "ADE_train_00010080.jpg", "width": 765, "id": 10079, "height": 512}, {"file_name": "ADE_train_00010081.jpg", "width": 683, "id": 10080, "height": 512}, {"file_name": "ADE_train_00010082.jpg", "width": 298, "id": 10081, "height": 290}, {"file_name": "ADE_train_00010083.jpg", "width": 300, "id": 10082, "height": 282}, {"file_name": "ADE_train_00010084.jpg", "width": 314, "id": 10083, "height": 235}, {"file_name": "ADE_train_00010085.jpg", "width": 226, "id": 10084, "height": 299}, {"file_name": "ADE_train_00010086.jpg", "width": 320, "id": 10085, "height": 240}, {"file_name": "ADE_train_00010087.jpg", "width": 334, "id": 10086, "height": 250}, {"file_name": "ADE_train_00010088.jpg", "width": 250, "id": 10087, "height": 333}, {"file_name": "ADE_train_00010089.jpg", "width": 360, "id": 10088, "height": 225}, {"file_name": "ADE_train_00010090.jpg", "width": 619, "id": 10089, "height": 489}, {"file_name": "ADE_train_00010091.jpg", "width": 683, "id": 10090, "height": 512}, {"file_name": "ADE_train_00010092.jpg", "width": 480, "id": 10091, "height": 640}, {"file_name": "ADE_train_00010093.jpg", "width": 512, "id": 10092, "height": 683}, {"file_name": "ADE_train_00010094.jpg", "width": 768, "id": 10093, "height": 512}, {"file_name": "ADE_train_00010095.jpg", "width": 766, "id": 10094, "height": 512}, {"file_name": "ADE_train_00010096.jpg", "width": 683, "id": 10095, "height": 512}, {"file_name": "ADE_train_00010097.jpg", "width": 766, "id": 10096, "height": 512}, {"file_name": "ADE_train_00010098.jpg", "width": 314, "id": 10097, "height": 235}, {"file_name": "ADE_train_00010099.jpg", "width": 300, "id": 10098, "height": 300}, {"file_name": "ADE_train_00010100.jpg", "width": 316, "id": 10099, "height": 240}, {"file_name": "ADE_train_00010101.jpg", "width": 508, "id": 10100, "height": 204}, {"file_name": "ADE_train_00010102.jpg", "width": 683, "id": 10101, "height": 512}, {"file_name": "ADE_train_00010103.jpg", "width": 400, "id": 10102, "height": 213}, {"file_name": "ADE_train_00010104.jpg", "width": 683, "id": 10103, "height": 512}, {"file_name": "ADE_train_00010105.jpg", "width": 683, "id": 10104, "height": 512}, {"file_name": "ADE_train_00010106.jpg", "width": 400, "id": 10105, "height": 300}, {"file_name": "ADE_train_00010107.jpg", "width": 683, "id": 10106, "height": 512}, {"file_name": "ADE_train_00010108.jpg", "width": 683, "id": 10107, "height": 512}, {"file_name": "ADE_train_00010109.jpg", "width": 700, "id": 10108, "height": 466}, {"file_name": "ADE_train_00010110.jpg", "width": 768, "id": 10109, "height": 512}, {"file_name": "ADE_train_00010111.jpg", "width": 680, "id": 10110, "height": 512}, {"file_name": "ADE_train_00010112.jpg", "width": 700, "id": 10111, "height": 466}, {"file_name": "ADE_train_00010113.jpg", "width": 683, "id": 10112, "height": 512}, {"file_name": "ADE_train_00010114.jpg", "width": 394, "id": 10113, "height": 295}, {"file_name": "ADE_train_00010115.jpg", "width": 400, "id": 10114, "height": 300}, {"file_name": "ADE_train_00010116.jpg", "width": 640, "id": 10115, "height": 480}, {"file_name": "ADE_train_00010117.jpg", "width": 700, "id": 10116, "height": 467}, {"file_name": "ADE_train_00010118.jpg", "width": 300, "id": 10117, "height": 225}, {"file_name": "ADE_train_00010119.jpg", "width": 683, "id": 10118, "height": 512}, {"file_name": "ADE_train_00010120.jpg", "width": 475, "id": 10119, "height": 370}, {"file_name": "ADE_train_00010121.jpg", "width": 700, "id": 10120, "height": 467}, {"file_name": "ADE_train_00010122.jpg", "width": 683, "id": 10121, "height": 512}, {"file_name": "ADE_train_00010123.jpg", "width": 700, "id": 10122, "height": 450}, {"file_name": "ADE_train_00010124.jpg", "width": 683, "id": 10123, "height": 512}, {"file_name": "ADE_train_00010125.jpg", "width": 700, "id": 10124, "height": 450}, {"file_name": "ADE_train_00010126.jpg", "width": 250, "id": 10125, "height": 215}, {"file_name": "ADE_train_00010127.jpg", "width": 512, "id": 10126, "height": 771}, {"file_name": "ADE_train_00010128.jpg", "width": 683, "id": 10127, "height": 512}, {"file_name": "ADE_train_00010129.jpg", "width": 683, "id": 10128, "height": 512}, {"file_name": "ADE_train_00010130.jpg", "width": 683, "id": 10129, "height": 512}, {"file_name": "ADE_train_00010131.jpg", "width": 528, "id": 10130, "height": 512}, {"file_name": "ADE_train_00010132.jpg", "width": 769, "id": 10131, "height": 512}, {"file_name": "ADE_train_00010133.jpg", "width": 683, "id": 10132, "height": 512}, {"file_name": "ADE_train_00010134.jpg", "width": 300, "id": 10133, "height": 200}, {"file_name": "ADE_train_00010135.jpg", "width": 683, "id": 10134, "height": 512}, {"file_name": "ADE_train_00010136.jpg", "width": 683, "id": 10135, "height": 512}, {"file_name": "ADE_train_00010137.jpg", "width": 608, "id": 10136, "height": 512}, {"file_name": "ADE_train_00010138.jpg", "width": 683, "id": 10137, "height": 512}, {"file_name": "ADE_train_00010139.jpg", "width": 683, "id": 10138, "height": 512}, {"file_name": "ADE_train_00010140.jpg", "width": 300, "id": 10139, "height": 242}, {"file_name": "ADE_train_00010141.jpg", "width": 683, "id": 10140, "height": 512}, {"file_name": "ADE_train_00010142.jpg", "width": 320, "id": 10141, "height": 213}, {"file_name": "ADE_train_00010143.jpg", "width": 360, "id": 10142, "height": 239}, {"file_name": "ADE_train_00010144.jpg", "width": 512, "id": 10143, "height": 683}, {"file_name": "ADE_train_00010145.jpg", "width": 683, "id": 10144, "height": 512}, {"file_name": "ADE_train_00010146.jpg", "width": 424, "id": 10145, "height": 544}, {"file_name": "ADE_train_00010147.jpg", "width": 683, "id": 10146, "height": 512}, {"file_name": "ADE_train_00010148.jpg", "width": 500, "id": 10147, "height": 714}, {"file_name": "ADE_train_00010149.jpg", "width": 683, "id": 10148, "height": 512}, {"file_name": "ADE_train_00010150.jpg", "width": 576, "id": 10149, "height": 432}, {"file_name": "ADE_train_00010151.jpg", "width": 683, "id": 10150, "height": 512}, {"file_name": "ADE_train_00010152.jpg", "width": 683, "id": 10151, "height": 512}, {"file_name": "ADE_train_00010153.jpg", "width": 683, "id": 10152, "height": 512}, {"file_name": "ADE_train_00010154.jpg", "width": 683, "id": 10153, "height": 512}, {"file_name": "ADE_train_00010155.jpg", "width": 683, "id": 10154, "height": 512}, {"file_name": "ADE_train_00010156.jpg", "width": 683, "id": 10155, "height": 512}, {"file_name": "ADE_train_00010157.jpg", "width": 640, "id": 10156, "height": 480}, {"file_name": "ADE_train_00010158.jpg", "width": 683, "id": 10157, "height": 512}, {"file_name": "ADE_train_00010159.jpg", "width": 683, "id": 10158, "height": 512}, {"file_name": "ADE_train_00010160.jpg", "width": 683, "id": 10159, "height": 512}, {"file_name": "ADE_train_00010161.jpg", "width": 683, "id": 10160, "height": 512}, {"file_name": "ADE_train_00010162.jpg", "width": 683, "id": 10161, "height": 512}, {"file_name": "ADE_train_00010163.jpg", "width": 300, "id": 10162, "height": 225}, {"file_name": "ADE_train_00010164.jpg", "width": 762, "id": 10163, "height": 512}, {"file_name": "ADE_train_00010165.jpg", "width": 512, "id": 10164, "height": 365}, {"file_name": "ADE_train_00010166.jpg", "width": 683, "id": 10165, "height": 512}, {"file_name": "ADE_train_00010167.jpg", "width": 640, "id": 10166, "height": 479}, {"file_name": "ADE_train_00010168.jpg", "width": 765, "id": 10167, "height": 512}, {"file_name": "ADE_train_00010169.jpg", "width": 720, "id": 10168, "height": 480}, {"file_name": "ADE_train_00010170.jpg", "width": 512, "id": 10169, "height": 683}, {"file_name": "ADE_train_00010171.jpg", "width": 225, "id": 10170, "height": 300}, {"file_name": "ADE_train_00010172.jpg", "width": 768, "id": 10171, "height": 512}, {"file_name": "ADE_train_00010173.jpg", "width": 683, "id": 10172, "height": 512}, {"file_name": "ADE_train_00010174.jpg", "width": 683, "id": 10173, "height": 512}, {"file_name": "ADE_train_00010175.jpg", "width": 771, "id": 10174, "height": 512}, {"file_name": "ADE_train_00010176.jpg", "width": 684, "id": 10175, "height": 512}, {"file_name": "ADE_train_00010177.jpg", "width": 512, "id": 10176, "height": 683}, {"file_name": "ADE_train_00010178.jpg", "width": 683, "id": 10177, "height": 512}, {"file_name": "ADE_train_00010179.jpg", "width": 768, "id": 10178, "height": 512}, {"file_name": "ADE_train_00010180.jpg", "width": 683, "id": 10179, "height": 512}, {"file_name": "ADE_train_00010181.jpg", "width": 256, "id": 10180, "height": 256}, {"file_name": "ADE_train_00010182.jpg", "width": 683, "id": 10181, "height": 512}, {"file_name": "ADE_train_00010183.jpg", "width": 640, "id": 10182, "height": 480}, {"file_name": "ADE_train_00010184.jpg", "width": 512, "id": 10183, "height": 768}, {"file_name": "ADE_train_00010185.jpg", "width": 512, "id": 10184, "height": 458}, {"file_name": "ADE_train_00010186.jpg", "width": 683, "id": 10185, "height": 512}, {"file_name": "ADE_train_00010187.jpg", "width": 683, "id": 10186, "height": 512}, {"file_name": "ADE_train_00010188.jpg", "width": 300, "id": 10187, "height": 251}, {"file_name": "ADE_train_00010189.jpg", "width": 300, "id": 10188, "height": 224}, {"file_name": "ADE_train_00010190.jpg", "width": 512, "id": 10189, "height": 683}, {"file_name": "ADE_train_00010191.jpg", "width": 768, "id": 10190, "height": 512}, {"file_name": "ADE_train_00010192.jpg", "width": 603, "id": 10191, "height": 400}, {"file_name": "ADE_train_00010193.jpg", "width": 720, "id": 10192, "height": 480}, {"file_name": "ADE_train_00010194.jpg", "width": 243, "id": 10193, "height": 320}, {"file_name": "ADE_train_00010195.jpg", "width": 768, "id": 10194, "height": 512}, {"file_name": "ADE_train_00010196.jpg", "width": 449, "id": 10195, "height": 306}, {"file_name": "ADE_train_00010197.jpg", "width": 300, "id": 10196, "height": 300}, {"file_name": "ADE_train_00010198.jpg", "width": 720, "id": 10197, "height": 480}, {"file_name": "ADE_train_00010199.jpg", "width": 512, "id": 10198, "height": 518}, {"file_name": "ADE_train_00010200.jpg", "width": 719, "id": 10199, "height": 512}, {"file_name": "ADE_train_00010201.jpg", "width": 300, "id": 10200, "height": 225}, {"file_name": "ADE_train_00010202.jpg", "width": 768, "id": 10201, "height": 512}, {"file_name": "ADE_train_00010203.jpg", "width": 683, "id": 10202, "height": 512}, {"file_name": "ADE_train_00010204.jpg", "width": 512, "id": 10203, "height": 393}, {"file_name": "ADE_train_00010205.jpg", "width": 256, "id": 10204, "height": 256}, {"file_name": "ADE_train_00010206.jpg", "width": 683, "id": 10205, "height": 512}, {"file_name": "ADE_train_00010207.jpg", "width": 683, "id": 10206, "height": 512}, {"file_name": "ADE_train_00010208.jpg", "width": 512, "id": 10207, "height": 683}, {"file_name": "ADE_train_00010209.jpg", "width": 683, "id": 10208, "height": 512}, {"file_name": "ADE_train_00010210.jpg", "width": 910, "id": 10209, "height": 512}, {"file_name": "ADE_train_00010211.jpg", "width": 774, "id": 10210, "height": 512}, {"file_name": "ADE_train_00010212.jpg", "width": 320, "id": 10211, "height": 234}, {"file_name": "ADE_train_00010213.jpg", "width": 576, "id": 10212, "height": 432}, {"file_name": "ADE_train_00010214.jpg", "width": 256, "id": 10213, "height": 256}, {"file_name": "ADE_train_00010215.jpg", "width": 600, "id": 10214, "height": 400}, {"file_name": "ADE_train_00010216.jpg", "width": 512, "id": 10215, "height": 384}, {"file_name": "ADE_train_00010217.jpg", "width": 256, "id": 10216, "height": 256}, {"file_name": "ADE_train_00010218.jpg", "width": 768, "id": 10217, "height": 512}, {"file_name": "ADE_train_00010219.jpg", "width": 683, "id": 10218, "height": 512}, {"file_name": "ADE_train_00010220.jpg", "width": 768, "id": 10219, "height": 512}, {"file_name": "ADE_train_00010221.jpg", "width": 300, "id": 10220, "height": 225}, {"file_name": "ADE_train_00010222.jpg", "width": 765, "id": 10221, "height": 512}, {"file_name": "ADE_train_00010223.jpg", "width": 683, "id": 10222, "height": 512}, {"file_name": "ADE_train_00010224.jpg", "width": 768, "id": 10223, "height": 512}, {"file_name": "ADE_train_00010225.jpg", "width": 512, "id": 10224, "height": 768}, {"file_name": "ADE_train_00010226.jpg", "width": 683, "id": 10225, "height": 512}, {"file_name": "ADE_train_00010227.jpg", "width": 512, "id": 10226, "height": 683}, {"file_name": "ADE_train_00010228.jpg", "width": 256, "id": 10227, "height": 256}, {"file_name": "ADE_train_00010229.jpg", "width": 256, "id": 10228, "height": 256}, {"file_name": "ADE_train_00010230.jpg", "width": 648, "id": 10229, "height": 512}, {"file_name": "ADE_train_00010231.jpg", "width": 683, "id": 10230, "height": 512}, {"file_name": "ADE_train_00010232.jpg", "width": 300, "id": 10231, "height": 200}, {"file_name": "ADE_train_00010233.jpg", "width": 768, "id": 10232, "height": 512}, {"file_name": "ADE_train_00010234.jpg", "width": 683, "id": 10233, "height": 512}, {"file_name": "ADE_train_00010235.jpg", "width": 768, "id": 10234, "height": 512}, {"file_name": "ADE_train_00010236.jpg", "width": 652, "id": 10235, "height": 512}, {"file_name": "ADE_train_00010237.jpg", "width": 256, "id": 10236, "height": 256}, {"file_name": "ADE_train_00010238.jpg", "width": 770, "id": 10237, "height": 512}, {"file_name": "ADE_train_00010239.jpg", "width": 325, "id": 10238, "height": 244}, {"file_name": "ADE_train_00010240.jpg", "width": 350, "id": 10239, "height": 240}, {"file_name": "ADE_train_00010241.jpg", "width": 1024, "id": 10240, "height": 1024}, {"file_name": "ADE_train_00010242.jpg", "width": 256, "id": 10241, "height": 256}, {"file_name": "ADE_train_00010243.jpg", "width": 750, "id": 10242, "height": 508}, {"file_name": "ADE_train_00010244.jpg", "width": 256, "id": 10243, "height": 256}, {"file_name": "ADE_train_00010245.jpg", "width": 683, "id": 10244, "height": 512}, {"file_name": "ADE_train_00010246.jpg", "width": 300, "id": 10245, "height": 225}, {"file_name": "ADE_train_00010247.jpg", "width": 768, "id": 10246, "height": 512}, {"file_name": "ADE_train_00010248.jpg", "width": 683, "id": 10247, "height": 512}, {"file_name": "ADE_train_00010249.jpg", "width": 720, "id": 10248, "height": 480}, {"file_name": "ADE_train_00010250.jpg", "width": 683, "id": 10249, "height": 512}, {"file_name": "ADE_train_00010251.jpg", "width": 683, "id": 10250, "height": 512}, {"file_name": "ADE_train_00010252.jpg", "width": 512, "id": 10251, "height": 683}, {"file_name": "ADE_train_00010253.jpg", "width": 300, "id": 10252, "height": 300}, {"file_name": "ADE_train_00010254.jpg", "width": 256, "id": 10253, "height": 256}, {"file_name": "ADE_train_00010255.jpg", "width": 720, "id": 10254, "height": 480}, {"file_name": "ADE_train_00010256.jpg", "width": 256, "id": 10255, "height": 256}, {"file_name": "ADE_train_00010257.jpg", "width": 640, "id": 10256, "height": 480}, {"file_name": "ADE_train_00010258.jpg", "width": 700, "id": 10257, "height": 466}, {"file_name": "ADE_train_00010259.jpg", "width": 683, "id": 10258, "height": 512}, {"file_name": "ADE_train_00010260.jpg", "width": 512, "id": 10259, "height": 683}, {"file_name": "ADE_train_00010261.jpg", "width": 730, "id": 10260, "height": 512}, {"file_name": "ADE_train_00010262.jpg", "width": 340, "id": 10261, "height": 512}, {"file_name": "ADE_train_00010263.jpg", "width": 683, "id": 10262, "height": 512}, {"file_name": "ADE_train_00010264.jpg", "width": 336, "id": 10263, "height": 252}, {"file_name": "ADE_train_00010265.jpg", "width": 768, "id": 10264, "height": 512}, {"file_name": "ADE_train_00010266.jpg", "width": 683, "id": 10265, "height": 512}, {"file_name": "ADE_train_00010267.jpg", "width": 683, "id": 10266, "height": 512}, {"file_name": "ADE_train_00010268.jpg", "width": 683, "id": 10267, "height": 512}, {"file_name": "ADE_train_00010269.jpg", "width": 320, "id": 10268, "height": 240}, {"file_name": "ADE_train_00010270.jpg", "width": 256, "id": 10269, "height": 256}, {"file_name": "ADE_train_00010271.jpg", "width": 683, "id": 10270, "height": 512}, {"file_name": "ADE_train_00010272.jpg", "width": 640, "id": 10271, "height": 480}, {"file_name": "ADE_train_00010273.jpg", "width": 768, "id": 10272, "height": 512}, {"file_name": "ADE_train_00010274.jpg", "width": 735, "id": 10273, "height": 512}, {"file_name": "ADE_train_00010275.jpg", "width": 832, "id": 10274, "height": 512}, {"file_name": "ADE_train_00010276.jpg", "width": 770, "id": 10275, "height": 512}, {"file_name": "ADE_train_00010277.jpg", "width": 768, "id": 10276, "height": 512}, {"file_name": "ADE_train_00010278.jpg", "width": 683, "id": 10277, "height": 512}, {"file_name": "ADE_train_00010279.jpg", "width": 683, "id": 10278, "height": 512}, {"file_name": "ADE_train_00010280.jpg", "width": 720, "id": 10279, "height": 480}, {"file_name": "ADE_train_00010281.jpg", "width": 300, "id": 10280, "height": 225}, {"file_name": "ADE_train_00010282.jpg", "width": 650, "id": 10281, "height": 438}, {"file_name": "ADE_train_00010283.jpg", "width": 735, "id": 10282, "height": 512}, {"file_name": "ADE_train_00010284.jpg", "width": 512, "id": 10283, "height": 637}, {"file_name": "ADE_train_00010285.jpg", "width": 256, "id": 10284, "height": 256}, {"file_name": "ADE_train_00010286.jpg", "width": 683, "id": 10285, "height": 512}, {"file_name": "ADE_train_00010287.jpg", "width": 512, "id": 10286, "height": 683}, {"file_name": "ADE_train_00010288.jpg", "width": 768, "id": 10287, "height": 512}, {"file_name": "ADE_train_00010289.jpg", "width": 768, "id": 10288, "height": 512}, {"file_name": "ADE_train_00010290.jpg", "width": 256, "id": 10289, "height": 256}, {"file_name": "ADE_train_00010291.jpg", "width": 731, "id": 10290, "height": 512}, {"file_name": "ADE_train_00010292.jpg", "width": 683, "id": 10291, "height": 512}, {"file_name": "ADE_train_00010293.jpg", "width": 250, "id": 10292, "height": 219}, {"file_name": "ADE_train_00010294.jpg", "width": 256, "id": 10293, "height": 256}, {"file_name": "ADE_train_00010295.jpg", "width": 312, "id": 10294, "height": 235}, {"file_name": "ADE_train_00010296.jpg", "width": 512, "id": 10295, "height": 683}, {"file_name": "ADE_train_00010297.jpg", "width": 256, "id": 10296, "height": 256}, {"file_name": "ADE_train_00010298.jpg", "width": 771, "id": 10297, "height": 512}, {"file_name": "ADE_train_00010299.jpg", "width": 256, "id": 10298, "height": 256}, {"file_name": "ADE_train_00010300.jpg", "width": 683, "id": 10299, "height": 512}, {"file_name": "ADE_train_00010301.jpg", "width": 512, "id": 10300, "height": 575}, {"file_name": "ADE_train_00010302.jpg", "width": 767, "id": 10301, "height": 512}, {"file_name": "ADE_train_00010303.jpg", "width": 765, "id": 10302, "height": 512}, {"file_name": "ADE_train_00010304.jpg", "width": 800, "id": 10303, "height": 512}, {"file_name": "ADE_train_00010305.jpg", "width": 256, "id": 10304, "height": 256}, {"file_name": "ADE_train_00010306.jpg", "width": 225, "id": 10305, "height": 225}, {"file_name": "ADE_train_00010307.jpg", "width": 288, "id": 10306, "height": 216}, {"file_name": "ADE_train_00010308.jpg", "width": 256, "id": 10307, "height": 256}, {"file_name": "ADE_train_00010309.jpg", "width": 683, "id": 10308, "height": 512}, {"file_name": "ADE_train_00010310.jpg", "width": 256, "id": 10309, "height": 256}, {"file_name": "ADE_train_00010311.jpg", "width": 780, "id": 10310, "height": 512}, {"file_name": "ADE_train_00010312.jpg", "width": 768, "id": 10311, "height": 512}, {"file_name": "ADE_train_00010313.jpg", "width": 325, "id": 10312, "height": 218}, {"file_name": "ADE_train_00010314.jpg", "width": 256, "id": 10313, "height": 256}, {"file_name": "ADE_train_00010315.jpg", "width": 683, "id": 10314, "height": 512}, {"file_name": "ADE_train_00010316.jpg", "width": 683, "id": 10315, "height": 512}, {"file_name": "ADE_train_00010317.jpg", "width": 683, "id": 10316, "height": 512}, {"file_name": "ADE_train_00010318.jpg", "width": 256, "id": 10317, "height": 256}, {"file_name": "ADE_train_00010319.jpg", "width": 1024, "id": 10318, "height": 1024}, {"file_name": "ADE_train_00010320.jpg", "width": 683, "id": 10319, "height": 512}, {"file_name": "ADE_train_00010321.jpg", "width": 683, "id": 10320, "height": 512}, {"file_name": "ADE_train_00010322.jpg", "width": 600, "id": 10321, "height": 400}, {"file_name": "ADE_train_00010323.jpg", "width": 683, "id": 10322, "height": 512}, {"file_name": "ADE_train_00010324.jpg", "width": 640, "id": 10323, "height": 480}, {"file_name": "ADE_train_00010325.jpg", "width": 432, "id": 10324, "height": 576}, {"file_name": "ADE_train_00010326.jpg", "width": 683, "id": 10325, "height": 512}, {"file_name": "ADE_train_00010327.jpg", "width": 256, "id": 10326, "height": 256}, {"file_name": "ADE_train_00010328.jpg", "width": 770, "id": 10327, "height": 512}, {"file_name": "ADE_train_00010329.jpg", "width": 256, "id": 10328, "height": 256}, {"file_name": "ADE_train_00010330.jpg", "width": 768, "id": 10329, "height": 512}, {"file_name": "ADE_train_00010331.jpg", "width": 759, "id": 10330, "height": 512}, {"file_name": "ADE_train_00010332.jpg", "width": 768, "id": 10331, "height": 512}, {"file_name": "ADE_train_00010333.jpg", "width": 765, "id": 10332, "height": 512}, {"file_name": "ADE_train_00010334.jpg", "width": 256, "id": 10333, "height": 256}, {"file_name": "ADE_train_00010335.jpg", "width": 512, "id": 10334, "height": 682}, {"file_name": "ADE_train_00010336.jpg", "width": 256, "id": 10335, "height": 256}, {"file_name": "ADE_train_00010337.jpg", "width": 594, "id": 10336, "height": 512}, {"file_name": "ADE_train_00010338.jpg", "width": 640, "id": 10337, "height": 480}, {"file_name": "ADE_train_00010339.jpg", "width": 256, "id": 10338, "height": 256}, {"file_name": "ADE_train_00010340.jpg", "width": 300, "id": 10339, "height": 225}, {"file_name": "ADE_train_00010341.jpg", "width": 683, "id": 10340, "height": 512}, {"file_name": "ADE_train_00010342.jpg", "width": 256, "id": 10341, "height": 256}, {"file_name": "ADE_train_00010343.jpg", "width": 770, "id": 10342, "height": 512}, {"file_name": "ADE_train_00010344.jpg", "width": 774, "id": 10343, "height": 512}, {"file_name": "ADE_train_00010345.jpg", "width": 763, "id": 10344, "height": 512}, {"file_name": "ADE_train_00010346.jpg", "width": 432, "id": 10345, "height": 576}, {"file_name": "ADE_train_00010347.jpg", "width": 767, "id": 10346, "height": 512}, {"file_name": "ADE_train_00010348.jpg", "width": 761, "id": 10347, "height": 512}, {"file_name": "ADE_train_00010349.jpg", "width": 683, "id": 10348, "height": 512}, {"file_name": "ADE_train_00010350.jpg", "width": 256, "id": 10349, "height": 256}, {"file_name": "ADE_train_00010351.jpg", "width": 768, "id": 10350, "height": 512}, {"file_name": "ADE_train_00010352.jpg", "width": 767, "id": 10351, "height": 512}, {"file_name": "ADE_train_00010353.jpg", "width": 336, "id": 10352, "height": 246}, {"file_name": "ADE_train_00010354.jpg", "width": 683, "id": 10353, "height": 512}, {"file_name": "ADE_train_00010355.jpg", "width": 761, "id": 10354, "height": 512}, {"file_name": "ADE_train_00010356.jpg", "width": 768, "id": 10355, "height": 512}, {"file_name": "ADE_train_00010357.jpg", "width": 256, "id": 10356, "height": 256}, {"file_name": "ADE_train_00010358.jpg", "width": 771, "id": 10357, "height": 512}, {"file_name": "ADE_train_00010359.jpg", "width": 600, "id": 10358, "height": 450}, {"file_name": "ADE_train_00010360.jpg", "width": 683, "id": 10359, "height": 512}, {"file_name": "ADE_train_00010361.jpg", "width": 768, "id": 10360, "height": 512}, {"file_name": "ADE_train_00010362.jpg", "width": 300, "id": 10361, "height": 225}, {"file_name": "ADE_train_00010363.jpg", "width": 752, "id": 10362, "height": 512}, {"file_name": "ADE_train_00010364.jpg", "width": 683, "id": 10363, "height": 512}, {"file_name": "ADE_train_00010365.jpg", "width": 683, "id": 10364, "height": 512}, {"file_name": "ADE_train_00010366.jpg", "width": 683, "id": 10365, "height": 512}, {"file_name": "ADE_train_00010367.jpg", "width": 256, "id": 10366, "height": 256}, {"file_name": "ADE_train_00010368.jpg", "width": 767, "id": 10367, "height": 512}, {"file_name": "ADE_train_00010369.jpg", "width": 640, "id": 10368, "height": 480}, {"file_name": "ADE_train_00010370.jpg", "width": 256, "id": 10369, "height": 256}, {"file_name": "ADE_train_00010371.jpg", "width": 640, "id": 10370, "height": 480}, {"file_name": "ADE_train_00010372.jpg", "width": 768, "id": 10371, "height": 512}, {"file_name": "ADE_train_00010373.jpg", "width": 520, "id": 10372, "height": 512}, {"file_name": "ADE_train_00010374.jpg", "width": 256, "id": 10373, "height": 256}, {"file_name": "ADE_train_00010375.jpg", "width": 693, "id": 10374, "height": 512}, {"file_name": "ADE_train_00010376.jpg", "width": 256, "id": 10375, "height": 256}, {"file_name": "ADE_train_00010377.jpg", "width": 350, "id": 10376, "height": 233}, {"file_name": "ADE_train_00010378.jpg", "width": 640, "id": 10377, "height": 480}, {"file_name": "ADE_train_00010379.jpg", "width": 768, "id": 10378, "height": 512}, {"file_name": "ADE_train_00010380.jpg", "width": 768, "id": 10379, "height": 512}, {"file_name": "ADE_train_00010381.jpg", "width": 683, "id": 10380, "height": 512}, {"file_name": "ADE_train_00010382.jpg", "width": 256, "id": 10381, "height": 256}, {"file_name": "ADE_train_00010383.jpg", "width": 770, "id": 10382, "height": 512}, {"file_name": "ADE_train_00010384.jpg", "width": 757, "id": 10383, "height": 512}, {"file_name": "ADE_train_00010385.jpg", "width": 684, "id": 10384, "height": 512}, {"file_name": "ADE_train_00010386.jpg", "width": 769, "id": 10385, "height": 512}, {"file_name": "ADE_train_00010387.jpg", "width": 858, "id": 10386, "height": 512}, {"file_name": "ADE_train_00010388.jpg", "width": 640, "id": 10387, "height": 480}, {"file_name": "ADE_train_00010389.jpg", "width": 768, "id": 10388, "height": 512}, {"file_name": "ADE_train_00010390.jpg", "width": 512, "id": 10389, "height": 683}, {"file_name": "ADE_train_00010391.jpg", "width": 360, "id": 10390, "height": 240}, {"file_name": "ADE_train_00010392.jpg", "width": 350, "id": 10391, "height": 233}, {"file_name": "ADE_train_00010393.jpg", "width": 743, "id": 10392, "height": 512}, {"file_name": "ADE_train_00010394.jpg", "width": 683, "id": 10393, "height": 512}, {"file_name": "ADE_train_00010395.jpg", "width": 640, "id": 10394, "height": 480}, {"file_name": "ADE_train_00010396.jpg", "width": 757, "id": 10395, "height": 512}, {"file_name": "ADE_train_00010397.jpg", "width": 300, "id": 10396, "height": 225}, {"file_name": "ADE_train_00010398.jpg", "width": 768, "id": 10397, "height": 512}, {"file_name": "ADE_train_00010399.jpg", "width": 720, "id": 10398, "height": 480}, {"file_name": "ADE_train_00010400.jpg", "width": 720, "id": 10399, "height": 480}, {"file_name": "ADE_train_00010401.jpg", "width": 751, "id": 10400, "height": 512}, {"file_name": "ADE_train_00010402.jpg", "width": 256, "id": 10401, "height": 256}, {"file_name": "ADE_train_00010403.jpg", "width": 682, "id": 10402, "height": 512}, {"file_name": "ADE_train_00010404.jpg", "width": 256, "id": 10403, "height": 256}, {"file_name": "ADE_train_00010405.jpg", "width": 683, "id": 10404, "height": 512}, {"file_name": "ADE_train_00010406.jpg", "width": 768, "id": 10405, "height": 512}, {"file_name": "ADE_train_00010407.jpg", "width": 768, "id": 10406, "height": 512}, {"file_name": "ADE_train_00010408.jpg", "width": 512, "id": 10407, "height": 340}, {"file_name": "ADE_train_00010409.jpg", "width": 765, "id": 10408, "height": 512}, {"file_name": "ADE_train_00010410.jpg", "width": 300, "id": 10409, "height": 225}, {"file_name": "ADE_train_00010411.jpg", "width": 681, "id": 10410, "height": 512}, {"file_name": "ADE_train_00010412.jpg", "width": 700, "id": 10411, "height": 482}, {"file_name": "ADE_train_00010413.jpg", "width": 683, "id": 10412, "height": 512}, {"file_name": "ADE_train_00010414.jpg", "width": 764, "id": 10413, "height": 512}, {"file_name": "ADE_train_00010415.jpg", "width": 683, "id": 10414, "height": 512}, {"file_name": "ADE_train_00010416.jpg", "width": 256, "id": 10415, "height": 256}, {"file_name": "ADE_train_00010417.jpg", "width": 683, "id": 10416, "height": 512}, {"file_name": "ADE_train_00010418.jpg", "width": 683, "id": 10417, "height": 512}, {"file_name": "ADE_train_00010419.jpg", "width": 683, "id": 10418, "height": 512}, {"file_name": "ADE_train_00010420.jpg", "width": 683, "id": 10419, "height": 512}, {"file_name": "ADE_train_00010421.jpg", "width": 500, "id": 10420, "height": 296}, {"file_name": "ADE_train_00010422.jpg", "width": 683, "id": 10421, "height": 512}, {"file_name": "ADE_train_00010423.jpg", "width": 400, "id": 10422, "height": 267}, {"file_name": "ADE_train_00010424.jpg", "width": 512, "id": 10423, "height": 340}, {"file_name": "ADE_train_00010425.jpg", "width": 683, "id": 10424, "height": 512}, {"file_name": "ADE_train_00010426.jpg", "width": 769, "id": 10425, "height": 512}, {"file_name": "ADE_train_00010427.jpg", "width": 320, "id": 10426, "height": 240}, {"file_name": "ADE_train_00010428.jpg", "width": 768, "id": 10427, "height": 512}, {"file_name": "ADE_train_00010429.jpg", "width": 600, "id": 10428, "height": 400}, {"file_name": "ADE_train_00010430.jpg", "width": 768, "id": 10429, "height": 512}, {"file_name": "ADE_train_00010431.jpg", "width": 512, "id": 10430, "height": 683}, {"file_name": "ADE_train_00010432.jpg", "width": 683, "id": 10431, "height": 512}, {"file_name": "ADE_train_00010433.jpg", "width": 256, "id": 10432, "height": 256}, {"file_name": "ADE_train_00010434.jpg", "width": 768, "id": 10433, "height": 512}, {"file_name": "ADE_train_00010435.jpg", "width": 256, "id": 10434, "height": 256}, {"file_name": "ADE_train_00010436.jpg", "width": 683, "id": 10435, "height": 512}, {"file_name": "ADE_train_00010437.jpg", "width": 256, "id": 10436, "height": 256}, {"file_name": "ADE_train_00010438.jpg", "width": 300, "id": 10437, "height": 200}, {"file_name": "ADE_train_00010439.jpg", "width": 760, "id": 10438, "height": 512}, {"file_name": "ADE_train_00010440.jpg", "width": 769, "id": 10439, "height": 512}, {"file_name": "ADE_train_00010441.jpg", "width": 683, "id": 10440, "height": 512}, {"file_name": "ADE_train_00010442.jpg", "width": 768, "id": 10441, "height": 512}, {"file_name": "ADE_train_00010443.jpg", "width": 683, "id": 10442, "height": 512}, {"file_name": "ADE_train_00010444.jpg", "width": 300, "id": 10443, "height": 225}, {"file_name": "ADE_train_00010445.jpg", "width": 256, "id": 10444, "height": 256}, {"file_name": "ADE_train_00010446.jpg", "width": 320, "id": 10445, "height": 240}, {"file_name": "ADE_train_00010447.jpg", "width": 616, "id": 10446, "height": 400}, {"file_name": "ADE_train_00010448.jpg", "width": 256, "id": 10447, "height": 256}, {"file_name": "ADE_train_00010449.jpg", "width": 683, "id": 10448, "height": 512}, {"file_name": "ADE_train_00010450.jpg", "width": 432, "id": 10449, "height": 576}, {"file_name": "ADE_train_00010451.jpg", "width": 768, "id": 10450, "height": 512}, {"file_name": "ADE_train_00010452.jpg", "width": 792, "id": 10451, "height": 502}, {"file_name": "ADE_train_00010453.jpg", "width": 683, "id": 10452, "height": 512}, {"file_name": "ADE_train_00010454.jpg", "width": 512, "id": 10453, "height": 744}, {"file_name": "ADE_train_00010455.jpg", "width": 683, "id": 10454, "height": 512}, {"file_name": "ADE_train_00010456.jpg", "width": 768, "id": 10455, "height": 512}, {"file_name": "ADE_train_00010457.jpg", "width": 683, "id": 10456, "height": 512}, {"file_name": "ADE_train_00010458.jpg", "width": 768, "id": 10457, "height": 512}, {"file_name": "ADE_train_00010459.jpg", "width": 683, "id": 10458, "height": 512}, {"file_name": "ADE_train_00010460.jpg", "width": 770, "id": 10459, "height": 512}, {"file_name": "ADE_train_00010461.jpg", "width": 683, "id": 10460, "height": 512}, {"file_name": "ADE_train_00010462.jpg", "width": 683, "id": 10461, "height": 512}, {"file_name": "ADE_train_00010463.jpg", "width": 683, "id": 10462, "height": 512}, {"file_name": "ADE_train_00010464.jpg", "width": 773, "id": 10463, "height": 512}, {"file_name": "ADE_train_00010465.jpg", "width": 256, "id": 10464, "height": 256}, {"file_name": "ADE_train_00010466.jpg", "width": 679, "id": 10465, "height": 512}, {"file_name": "ADE_train_00010467.jpg", "width": 683, "id": 10466, "height": 512}, {"file_name": "ADE_train_00010468.jpg", "width": 640, "id": 10467, "height": 480}, {"file_name": "ADE_train_00010469.jpg", "width": 768, "id": 10468, "height": 512}, {"file_name": "ADE_train_00010470.jpg", "width": 737, "id": 10469, "height": 512}, {"file_name": "ADE_train_00010471.jpg", "width": 683, "id": 10470, "height": 512}, {"file_name": "ADE_train_00010472.jpg", "width": 683, "id": 10471, "height": 512}, {"file_name": "ADE_train_00010473.jpg", "width": 256, "id": 10472, "height": 256}, {"file_name": "ADE_train_00010474.jpg", "width": 300, "id": 10473, "height": 225}, {"file_name": "ADE_train_00010475.jpg", "width": 256, "id": 10474, "height": 256}, {"file_name": "ADE_train_00010476.jpg", "width": 768, "id": 10475, "height": 512}, {"file_name": "ADE_train_00010477.jpg", "width": 576, "id": 10476, "height": 432}, {"file_name": "ADE_train_00010478.jpg", "width": 641, "id": 10477, "height": 512}, {"file_name": "ADE_train_00010479.jpg", "width": 691, "id": 10478, "height": 512}, {"file_name": "ADE_train_00010480.jpg", "width": 700, "id": 10479, "height": 467}, {"file_name": "ADE_train_00010481.jpg", "width": 300, "id": 10480, "height": 225}, {"file_name": "ADE_train_00010482.jpg", "width": 256, "id": 10481, "height": 256}, {"file_name": "ADE_train_00010483.jpg", "width": 512, "id": 10482, "height": 909}, {"file_name": "ADE_train_00010484.jpg", "width": 728, "id": 10483, "height": 512}, {"file_name": "ADE_train_00010485.jpg", "width": 640, "id": 10484, "height": 480}, {"file_name": "ADE_train_00010486.jpg", "width": 256, "id": 10485, "height": 256}, {"file_name": "ADE_train_00010487.jpg", "width": 702, "id": 10486, "height": 512}, {"file_name": "ADE_train_00010488.jpg", "width": 764, "id": 10487, "height": 512}, {"file_name": "ADE_train_00010489.jpg", "width": 256, "id": 10488, "height": 256}, {"file_name": "ADE_train_00010490.jpg", "width": 768, "id": 10489, "height": 512}, {"file_name": "ADE_train_00010491.jpg", "width": 300, "id": 10490, "height": 225}, {"file_name": "ADE_train_00010492.jpg", "width": 256, "id": 10491, "height": 256}, {"file_name": "ADE_train_00010493.jpg", "width": 256, "id": 10492, "height": 256}, {"file_name": "ADE_train_00010494.jpg", "width": 300, "id": 10493, "height": 224}, {"file_name": "ADE_train_00010495.jpg", "width": 771, "id": 10494, "height": 512}, {"file_name": "ADE_train_00010496.jpg", "width": 683, "id": 10495, "height": 512}, {"file_name": "ADE_train_00010497.jpg", "width": 683, "id": 10496, "height": 512}, {"file_name": "ADE_train_00010498.jpg", "width": 683, "id": 10497, "height": 512}, {"file_name": "ADE_train_00010499.jpg", "width": 256, "id": 10498, "height": 256}, {"file_name": "ADE_train_00010500.jpg", "width": 512, "id": 10499, "height": 545}, {"file_name": "ADE_train_00010501.jpg", "width": 683, "id": 10500, "height": 512}, {"file_name": "ADE_train_00010502.jpg", "width": 256, "id": 10501, "height": 256}, {"file_name": "ADE_train_00010503.jpg", "width": 449, "id": 10502, "height": 302}, {"file_name": "ADE_train_00010504.jpg", "width": 512, "id": 10503, "height": 384}, {"file_name": "ADE_train_00010505.jpg", "width": 512, "id": 10504, "height": 340}, {"file_name": "ADE_train_00010506.jpg", "width": 256, "id": 10505, "height": 256}, {"file_name": "ADE_train_00010507.jpg", "width": 683, "id": 10506, "height": 512}, {"file_name": "ADE_train_00010508.jpg", "width": 768, "id": 10507, "height": 512}, {"file_name": "ADE_train_00010509.jpg", "width": 768, "id": 10508, "height": 512}, {"file_name": "ADE_train_00010510.jpg", "width": 512, "id": 10509, "height": 340}, {"file_name": "ADE_train_00010511.jpg", "width": 640, "id": 10510, "height": 480}, {"file_name": "ADE_train_00010512.jpg", "width": 300, "id": 10511, "height": 225}, {"file_name": "ADE_train_00010513.jpg", "width": 683, "id": 10512, "height": 512}, {"file_name": "ADE_train_00010514.jpg", "width": 683, "id": 10513, "height": 512}, {"file_name": "ADE_train_00010515.jpg", "width": 683, "id": 10514, "height": 512}, {"file_name": "ADE_train_00010516.jpg", "width": 640, "id": 10515, "height": 480}, {"file_name": "ADE_train_00010517.jpg", "width": 683, "id": 10516, "height": 512}, {"file_name": "ADE_train_00010518.jpg", "width": 768, "id": 10517, "height": 512}, {"file_name": "ADE_train_00010519.jpg", "width": 768, "id": 10518, "height": 512}, {"file_name": "ADE_train_00010520.jpg", "width": 225, "id": 10519, "height": 300}, {"file_name": "ADE_train_00010521.jpg", "width": 683, "id": 10520, "height": 512}, {"file_name": "ADE_train_00010522.jpg", "width": 256, "id": 10521, "height": 256}, {"file_name": "ADE_train_00010523.jpg", "width": 256, "id": 10522, "height": 256}, {"file_name": "ADE_train_00010524.jpg", "width": 432, "id": 10523, "height": 576}, {"file_name": "ADE_train_00010525.jpg", "width": 480, "id": 10524, "height": 640}, {"file_name": "ADE_train_00010526.jpg", "width": 576, "id": 10525, "height": 431}, {"file_name": "ADE_train_00010527.jpg", "width": 512, "id": 10526, "height": 384}, {"file_name": "ADE_train_00010528.jpg", "width": 256, "id": 10527, "height": 256}, {"file_name": "ADE_train_00010529.jpg", "width": 626, "id": 10528, "height": 512}, {"file_name": "ADE_train_00010530.jpg", "width": 256, "id": 10529, "height": 256}, {"file_name": "ADE_train_00010531.jpg", "width": 683, "id": 10530, "height": 512}, {"file_name": "ADE_train_00010532.jpg", "width": 683, "id": 10531, "height": 512}, {"file_name": "ADE_train_00010533.jpg", "width": 256, "id": 10532, "height": 256}, {"file_name": "ADE_train_00010534.jpg", "width": 683, "id": 10533, "height": 512}, {"file_name": "ADE_train_00010535.jpg", "width": 300, "id": 10534, "height": 225}, {"file_name": "ADE_train_00010536.jpg", "width": 683, "id": 10535, "height": 512}, {"file_name": "ADE_train_00010537.jpg", "width": 683, "id": 10536, "height": 512}, {"file_name": "ADE_train_00010538.jpg", "width": 683, "id": 10537, "height": 512}, {"file_name": "ADE_train_00010539.jpg", "width": 340, "id": 10538, "height": 512}, {"file_name": "ADE_train_00010540.jpg", "width": 300, "id": 10539, "height": 225}, {"file_name": "ADE_train_00010541.jpg", "width": 432, "id": 10540, "height": 576}, {"file_name": "ADE_train_00010542.jpg", "width": 550, "id": 10541, "height": 367}, {"file_name": "ADE_train_00010543.jpg", "width": 432, "id": 10542, "height": 576}, {"file_name": "ADE_train_00010544.jpg", "width": 576, "id": 10543, "height": 432}, {"file_name": "ADE_train_00010545.jpg", "width": 640, "id": 10544, "height": 480}, {"file_name": "ADE_train_00010546.jpg", "width": 256, "id": 10545, "height": 256}, {"file_name": "ADE_train_00010547.jpg", "width": 758, "id": 10546, "height": 512}, {"file_name": "ADE_train_00010548.jpg", "width": 260, "id": 10547, "height": 450}, {"file_name": "ADE_train_00010549.jpg", "width": 432, "id": 10548, "height": 576}, {"file_name": "ADE_train_00010550.jpg", "width": 683, "id": 10549, "height": 512}, {"file_name": "ADE_train_00010551.jpg", "width": 384, "id": 10550, "height": 512}, {"file_name": "ADE_train_00010552.jpg", "width": 768, "id": 10551, "height": 512}, {"file_name": "ADE_train_00010553.jpg", "width": 256, "id": 10552, "height": 256}, {"file_name": "ADE_train_00010554.jpg", "width": 651, "id": 10553, "height": 512}, {"file_name": "ADE_train_00010555.jpg", "width": 683, "id": 10554, "height": 512}, {"file_name": "ADE_train_00010556.jpg", "width": 480, "id": 10555, "height": 640}, {"file_name": "ADE_train_00010557.jpg", "width": 256, "id": 10556, "height": 256}, {"file_name": "ADE_train_00010558.jpg", "width": 683, "id": 10557, "height": 512}, {"file_name": "ADE_train_00010559.jpg", "width": 512, "id": 10558, "height": 683}, {"file_name": "ADE_train_00010560.jpg", "width": 512, "id": 10559, "height": 384}, {"file_name": "ADE_train_00010561.jpg", "width": 765, "id": 10560, "height": 512}, {"file_name": "ADE_train_00010562.jpg", "width": 761, "id": 10561, "height": 512}, {"file_name": "ADE_train_00010563.jpg", "width": 689, "id": 10562, "height": 512}, {"file_name": "ADE_train_00010564.jpg", "width": 576, "id": 10563, "height": 432}, {"file_name": "ADE_train_00010565.jpg", "width": 683, "id": 10564, "height": 512}, {"file_name": "ADE_train_00010566.jpg", "width": 300, "id": 10565, "height": 225}, {"file_name": "ADE_train_00010567.jpg", "width": 300, "id": 10566, "height": 225}, {"file_name": "ADE_train_00010568.jpg", "width": 683, "id": 10567, "height": 512}, {"file_name": "ADE_train_00010569.jpg", "width": 640, "id": 10568, "height": 480}, {"file_name": "ADE_train_00010570.jpg", "width": 377, "id": 10569, "height": 512}, {"file_name": "ADE_train_00010571.jpg", "width": 432, "id": 10570, "height": 576}, {"file_name": "ADE_train_00010572.jpg", "width": 432, "id": 10571, "height": 576}, {"file_name": "ADE_train_00010573.jpg", "width": 683, "id": 10572, "height": 512}, {"file_name": "ADE_train_00010574.jpg", "width": 512, "id": 10573, "height": 768}, {"file_name": "ADE_train_00010575.jpg", "width": 256, "id": 10574, "height": 256}, {"file_name": "ADE_train_00010576.jpg", "width": 383, "id": 10575, "height": 576}, {"file_name": "ADE_train_00010577.jpg", "width": 512, "id": 10576, "height": 340}, {"file_name": "ADE_train_00010578.jpg", "width": 819, "id": 10577, "height": 512}, {"file_name": "ADE_train_00010579.jpg", "width": 765, "id": 10578, "height": 512}, {"file_name": "ADE_train_00010580.jpg", "width": 640, "id": 10579, "height": 480}, {"file_name": "ADE_train_00010581.jpg", "width": 683, "id": 10580, "height": 512}, {"file_name": "ADE_train_00010582.jpg", "width": 256, "id": 10581, "height": 256}, {"file_name": "ADE_train_00010583.jpg", "width": 768, "id": 10582, "height": 512}, {"file_name": "ADE_train_00010584.jpg", "width": 683, "id": 10583, "height": 512}, {"file_name": "ADE_train_00010585.jpg", "width": 600, "id": 10584, "height": 437}, {"file_name": "ADE_train_00010586.jpg", "width": 683, "id": 10585, "height": 512}, {"file_name": "ADE_train_00010587.jpg", "width": 640, "id": 10586, "height": 482}, {"file_name": "ADE_train_00010588.jpg", "width": 400, "id": 10587, "height": 600}, {"file_name": "ADE_train_00010589.jpg", "width": 640, "id": 10588, "height": 479}, {"file_name": "ADE_train_00010590.jpg", "width": 576, "id": 10589, "height": 432}, {"file_name": "ADE_train_00010591.jpg", "width": 576, "id": 10590, "height": 432}, {"file_name": "ADE_train_00010592.jpg", "width": 256, "id": 10591, "height": 256}, {"file_name": "ADE_train_00010593.jpg", "width": 341, "id": 10592, "height": 512}, {"file_name": "ADE_train_00010594.jpg", "width": 256, "id": 10593, "height": 256}, {"file_name": "ADE_train_00010595.jpg", "width": 683, "id": 10594, "height": 512}, {"file_name": "ADE_train_00010596.jpg", "width": 640, "id": 10595, "height": 480}, {"file_name": "ADE_train_00010597.jpg", "width": 256, "id": 10596, "height": 256}, {"file_name": "ADE_train_00010598.jpg", "width": 612, "id": 10597, "height": 512}, {"file_name": "ADE_train_00010599.jpg", "width": 512, "id": 10598, "height": 682}, {"file_name": "ADE_train_00010600.jpg", "width": 683, "id": 10599, "height": 512}, {"file_name": "ADE_train_00010601.jpg", "width": 256, "id": 10600, "height": 256}, {"file_name": "ADE_train_00010602.jpg", "width": 769, "id": 10601, "height": 512}, {"file_name": "ADE_train_00010603.jpg", "width": 683, "id": 10602, "height": 512}, {"file_name": "ADE_train_00010604.jpg", "width": 683, "id": 10603, "height": 512}, {"file_name": "ADE_train_00010605.jpg", "width": 574, "id": 10604, "height": 512}, {"file_name": "ADE_train_00010606.jpg", "width": 256, "id": 10605, "height": 256}, {"file_name": "ADE_train_00010607.jpg", "width": 512, "id": 10606, "height": 351}, {"file_name": "ADE_train_00010608.jpg", "width": 300, "id": 10607, "height": 225}, {"file_name": "ADE_train_00010609.jpg", "width": 512, "id": 10608, "height": 683}, {"file_name": "ADE_train_00010610.jpg", "width": 300, "id": 10609, "height": 225}, {"file_name": "ADE_train_00010611.jpg", "width": 512, "id": 10610, "height": 336}, {"file_name": "ADE_train_00010612.jpg", "width": 683, "id": 10611, "height": 512}, {"file_name": "ADE_train_00010613.jpg", "width": 578, "id": 10612, "height": 512}, {"file_name": "ADE_train_00010614.jpg", "width": 513, "id": 10613, "height": 512}, {"file_name": "ADE_train_00010615.jpg", "width": 401, "id": 10614, "height": 600}, {"file_name": "ADE_train_00010616.jpg", "width": 768, "id": 10615, "height": 512}, {"file_name": "ADE_train_00010617.jpg", "width": 683, "id": 10616, "height": 512}, {"file_name": "ADE_train_00010618.jpg", "width": 256, "id": 10617, "height": 256}, {"file_name": "ADE_train_00010619.jpg", "width": 463, "id": 10618, "height": 512}, {"file_name": "ADE_train_00010620.jpg", "width": 683, "id": 10619, "height": 512}, {"file_name": "ADE_train_00010621.jpg", "width": 256, "id": 10620, "height": 256}, {"file_name": "ADE_train_00010622.jpg", "width": 640, "id": 10621, "height": 512}, {"file_name": "ADE_train_00010623.jpg", "width": 225, "id": 10622, "height": 300}, {"file_name": "ADE_train_00010624.jpg", "width": 576, "id": 10623, "height": 432}, {"file_name": "ADE_train_00010625.jpg", "width": 256, "id": 10624, "height": 256}, {"file_name": "ADE_train_00010626.jpg", "width": 512, "id": 10625, "height": 340}, {"file_name": "ADE_train_00010627.jpg", "width": 256, "id": 10626, "height": 256}, {"file_name": "ADE_train_00010628.jpg", "width": 683, "id": 10627, "height": 512}, {"file_name": "ADE_train_00010629.jpg", "width": 384, "id": 10628, "height": 512}, {"file_name": "ADE_train_00010630.jpg", "width": 256, "id": 10629, "height": 256}, {"file_name": "ADE_train_00010631.jpg", "width": 512, "id": 10630, "height": 725}, {"file_name": "ADE_train_00010632.jpg", "width": 768, "id": 10631, "height": 512}, {"file_name": "ADE_train_00010633.jpg", "width": 638, "id": 10632, "height": 512}, {"file_name": "ADE_train_00010634.jpg", "width": 683, "id": 10633, "height": 512}, {"file_name": "ADE_train_00010635.jpg", "width": 683, "id": 10634, "height": 512}, {"file_name": "ADE_train_00010636.jpg", "width": 512, "id": 10635, "height": 388}, {"file_name": "ADE_train_00010637.jpg", "width": 683, "id": 10636, "height": 512}, {"file_name": "ADE_train_00010638.jpg", "width": 683, "id": 10637, "height": 512}, {"file_name": "ADE_train_00010639.jpg", "width": 683, "id": 10638, "height": 512}, {"file_name": "ADE_train_00010640.jpg", "width": 631, "id": 10639, "height": 512}, {"file_name": "ADE_train_00010641.jpg", "width": 256, "id": 10640, "height": 256}, {"file_name": "ADE_train_00010642.jpg", "width": 683, "id": 10641, "height": 512}, {"file_name": "ADE_train_00010643.jpg", "width": 768, "id": 10642, "height": 512}, {"file_name": "ADE_train_00010644.jpg", "width": 449, "id": 10643, "height": 363}, {"file_name": "ADE_train_00010645.jpg", "width": 683, "id": 10644, "height": 512}, {"file_name": "ADE_train_00010646.jpg", "width": 300, "id": 10645, "height": 225}, {"file_name": "ADE_train_00010647.jpg", "width": 256, "id": 10646, "height": 256}, {"file_name": "ADE_train_00010648.jpg", "width": 512, "id": 10647, "height": 340}, {"file_name": "ADE_train_00010649.jpg", "width": 683, "id": 10648, "height": 512}, {"file_name": "ADE_train_00010650.jpg", "width": 683, "id": 10649, "height": 512}, {"file_name": "ADE_train_00010651.jpg", "width": 512, "id": 10650, "height": 415}, {"file_name": "ADE_train_00010652.jpg", "width": 512, "id": 10651, "height": 364}, {"file_name": "ADE_train_00010653.jpg", "width": 256, "id": 10652, "height": 256}, {"file_name": "ADE_train_00010654.jpg", "width": 256, "id": 10653, "height": 256}, {"file_name": "ADE_train_00010655.jpg", "width": 512, "id": 10654, "height": 340}, {"file_name": "ADE_train_00010656.jpg", "width": 512, "id": 10655, "height": 683}, {"file_name": "ADE_train_00010657.jpg", "width": 512, "id": 10656, "height": 553}, {"file_name": "ADE_train_00010658.jpg", "width": 512, "id": 10657, "height": 340}, {"file_name": "ADE_train_00010659.jpg", "width": 683, "id": 10658, "height": 512}, {"file_name": "ADE_train_00010660.jpg", "width": 683, "id": 10659, "height": 512}, {"file_name": "ADE_train_00010661.jpg", "width": 512, "id": 10660, "height": 355}, {"file_name": "ADE_train_00010662.jpg", "width": 256, "id": 10661, "height": 256}, {"file_name": "ADE_train_00010663.jpg", "width": 512, "id": 10662, "height": 378}, {"file_name": "ADE_train_00010664.jpg", "width": 616, "id": 10663, "height": 512}, {"file_name": "ADE_train_00010665.jpg", "width": 589, "id": 10664, "height": 512}, {"file_name": "ADE_train_00010666.jpg", "width": 256, "id": 10665, "height": 256}, {"file_name": "ADE_train_00010667.jpg", "width": 768, "id": 10666, "height": 512}, {"file_name": "ADE_train_00010668.jpg", "width": 683, "id": 10667, "height": 512}, {"file_name": "ADE_train_00010669.jpg", "width": 256, "id": 10668, "height": 256}, {"file_name": "ADE_train_00010670.jpg", "width": 683, "id": 10669, "height": 512}, {"file_name": "ADE_train_00010671.jpg", "width": 512, "id": 10670, "height": 384}, {"file_name": "ADE_train_00010672.jpg", "width": 256, "id": 10671, "height": 256}, {"file_name": "ADE_train_00010673.jpg", "width": 800, "id": 10672, "height": 500}, {"file_name": "ADE_train_00010674.jpg", "width": 432, "id": 10673, "height": 576}, {"file_name": "ADE_train_00010675.jpg", "width": 384, "id": 10674, "height": 512}, {"file_name": "ADE_train_00010676.jpg", "width": 512, "id": 10675, "height": 539}, {"file_name": "ADE_train_00010677.jpg", "width": 768, "id": 10676, "height": 512}, {"file_name": "ADE_train_00010678.jpg", "width": 512, "id": 10677, "height": 443}, {"file_name": "ADE_train_00010679.jpg", "width": 768, "id": 10678, "height": 512}, {"file_name": "ADE_train_00010680.jpg", "width": 494, "id": 10679, "height": 512}, {"file_name": "ADE_train_00010681.jpg", "width": 300, "id": 10680, "height": 225}, {"file_name": "ADE_train_00010682.jpg", "width": 640, "id": 10681, "height": 480}, {"file_name": "ADE_train_00010683.jpg", "width": 683, "id": 10682, "height": 512}, {"file_name": "ADE_train_00010684.jpg", "width": 771, "id": 10683, "height": 512}, {"file_name": "ADE_train_00010685.jpg", "width": 300, "id": 10684, "height": 268}, {"file_name": "ADE_train_00010686.jpg", "width": 768, "id": 10685, "height": 512}, {"file_name": "ADE_train_00010687.jpg", "width": 640, "id": 10686, "height": 480}, {"file_name": "ADE_train_00010688.jpg", "width": 480, "id": 10687, "height": 640}, {"file_name": "ADE_train_00010689.jpg", "width": 256, "id": 10688, "height": 256}, {"file_name": "ADE_train_00010690.jpg", "width": 588, "id": 10689, "height": 450}, {"file_name": "ADE_train_00010691.jpg", "width": 640, "id": 10690, "height": 427}, {"file_name": "ADE_train_00010692.jpg", "width": 256, "id": 10691, "height": 256}, {"file_name": "ADE_train_00010693.jpg", "width": 512, "id": 10692, "height": 393}, {"file_name": "ADE_train_00010694.jpg", "width": 256, "id": 10693, "height": 256}, {"file_name": "ADE_train_00010695.jpg", "width": 256, "id": 10694, "height": 256}, {"file_name": "ADE_train_00010696.jpg", "width": 256, "id": 10695, "height": 256}, {"file_name": "ADE_train_00010697.jpg", "width": 340, "id": 10696, "height": 512}, {"file_name": "ADE_train_00010698.jpg", "width": 640, "id": 10697, "height": 480}, {"file_name": "ADE_train_00010699.jpg", "width": 640, "id": 10698, "height": 480}, {"file_name": "ADE_train_00010700.jpg", "width": 300, "id": 10699, "height": 225}, {"file_name": "ADE_train_00010701.jpg", "width": 225, "id": 10700, "height": 300}, {"file_name": "ADE_train_00010702.jpg", "width": 300, "id": 10701, "height": 225}, {"file_name": "ADE_train_00010703.jpg", "width": 683, "id": 10702, "height": 512}, {"file_name": "ADE_train_00010704.jpg", "width": 683, "id": 10703, "height": 512}, {"file_name": "ADE_train_00010705.jpg", "width": 300, "id": 10704, "height": 225}, {"file_name": "ADE_train_00010706.jpg", "width": 300, "id": 10705, "height": 225}, {"file_name": "ADE_train_00010707.jpg", "width": 683, "id": 10706, "height": 512}, {"file_name": "ADE_train_00010708.jpg", "width": 512, "id": 10707, "height": 341}, {"file_name": "ADE_train_00010709.jpg", "width": 683, "id": 10708, "height": 512}, {"file_name": "ADE_train_00010710.jpg", "width": 739, "id": 10709, "height": 512}, {"file_name": "ADE_train_00010711.jpg", "width": 225, "id": 10710, "height": 300}, {"file_name": "ADE_train_00010712.jpg", "width": 300, "id": 10711, "height": 240}, {"file_name": "ADE_train_00010713.jpg", "width": 256, "id": 10712, "height": 256}, {"file_name": "ADE_train_00010714.jpg", "width": 576, "id": 10713, "height": 432}, {"file_name": "ADE_train_00010715.jpg", "width": 512, "id": 10714, "height": 361}, {"file_name": "ADE_train_00010716.jpg", "width": 256, "id": 10715, "height": 256}, {"file_name": "ADE_train_00010717.jpg", "width": 256, "id": 10716, "height": 256}, {"file_name": "ADE_train_00010718.jpg", "width": 256, "id": 10717, "height": 256}, {"file_name": "ADE_train_00010719.jpg", "width": 1024, "id": 10718, "height": 1024}, {"file_name": "ADE_train_00010720.jpg", "width": 512, "id": 10719, "height": 384}, {"file_name": "ADE_train_00010721.jpg", "width": 683, "id": 10720, "height": 512}, {"file_name": "ADE_train_00010722.jpg", "width": 512, "id": 10721, "height": 384}, {"file_name": "ADE_train_00010723.jpg", "width": 683, "id": 10722, "height": 512}, {"file_name": "ADE_train_00010724.jpg", "width": 432, "id": 10723, "height": 576}, {"file_name": "ADE_train_00010725.jpg", "width": 256, "id": 10724, "height": 256}, {"file_name": "ADE_train_00010726.jpg", "width": 646, "id": 10725, "height": 512}, {"file_name": "ADE_train_00010727.jpg", "width": 683, "id": 10726, "height": 512}, {"file_name": "ADE_train_00010728.jpg", "width": 683, "id": 10727, "height": 512}, {"file_name": "ADE_train_00010729.jpg", "width": 512, "id": 10728, "height": 683}, {"file_name": "ADE_train_00010730.jpg", "width": 512, "id": 10729, "height": 552}, {"file_name": "ADE_train_00010731.jpg", "width": 683, "id": 10730, "height": 512}, {"file_name": "ADE_train_00010732.jpg", "width": 845, "id": 10731, "height": 512}, {"file_name": "ADE_train_00010733.jpg", "width": 256, "id": 10732, "height": 256}, {"file_name": "ADE_train_00010734.jpg", "width": 384, "id": 10733, "height": 512}, {"file_name": "ADE_train_00010735.jpg", "width": 450, "id": 10734, "height": 300}, {"file_name": "ADE_train_00010736.jpg", "width": 300, "id": 10735, "height": 225}, {"file_name": "ADE_train_00010737.jpg", "width": 512, "id": 10736, "height": 340}, {"file_name": "ADE_train_00010738.jpg", "width": 352, "id": 10737, "height": 512}, {"file_name": "ADE_train_00010739.jpg", "width": 256, "id": 10738, "height": 256}, {"file_name": "ADE_train_00010740.jpg", "width": 683, "id": 10739, "height": 512}, {"file_name": "ADE_train_00010741.jpg", "width": 256, "id": 10740, "height": 256}, {"file_name": "ADE_train_00010742.jpg", "width": 683, "id": 10741, "height": 512}, {"file_name": "ADE_train_00010743.jpg", "width": 683, "id": 10742, "height": 512}, {"file_name": "ADE_train_00010744.jpg", "width": 500, "id": 10743, "height": 333}, {"file_name": "ADE_train_00010745.jpg", "width": 683, "id": 10744, "height": 512}, {"file_name": "ADE_train_00010746.jpg", "width": 256, "id": 10745, "height": 256}, {"file_name": "ADE_train_00010747.jpg", "width": 512, "id": 10746, "height": 770}, {"file_name": "ADE_train_00010748.jpg", "width": 250, "id": 10747, "height": 333}, {"file_name": "ADE_train_00010749.jpg", "width": 683, "id": 10748, "height": 512}, {"file_name": "ADE_train_00010750.jpg", "width": 640, "id": 10749, "height": 480}, {"file_name": "ADE_train_00010751.jpg", "width": 683, "id": 10750, "height": 512}, {"file_name": "ADE_train_00010752.jpg", "width": 384, "id": 10751, "height": 512}, {"file_name": "ADE_train_00010753.jpg", "width": 295, "id": 10752, "height": 200}, {"file_name": "ADE_train_00010754.jpg", "width": 640, "id": 10753, "height": 425}, {"file_name": "ADE_train_00010755.jpg", "width": 640, "id": 10754, "height": 427}, {"file_name": "ADE_train_00010756.jpg", "width": 270, "id": 10755, "height": 270}, {"file_name": "ADE_train_00010757.jpg", "width": 512, "id": 10756, "height": 683}, {"file_name": "ADE_train_00010758.jpg", "width": 683, "id": 10757, "height": 512}, {"file_name": "ADE_train_00010759.jpg", "width": 683, "id": 10758, "height": 512}, {"file_name": "ADE_train_00010760.jpg", "width": 512, "id": 10759, "height": 683}, {"file_name": "ADE_train_00010761.jpg", "width": 529, "id": 10760, "height": 353}, {"file_name": "ADE_train_00010762.jpg", "width": 777, "id": 10761, "height": 512}, {"file_name": "ADE_train_00010763.jpg", "width": 640, "id": 10762, "height": 480}, {"file_name": "ADE_train_00010764.jpg", "width": 314, "id": 10763, "height": 235}, {"file_name": "ADE_train_00010765.jpg", "width": 683, "id": 10764, "height": 512}, {"file_name": "ADE_train_00010766.jpg", "width": 771, "id": 10765, "height": 512}, {"file_name": "ADE_train_00010767.jpg", "width": 683, "id": 10766, "height": 512}, {"file_name": "ADE_train_00010768.jpg", "width": 717, "id": 10767, "height": 512}, {"file_name": "ADE_train_00010769.jpg", "width": 450, "id": 10768, "height": 338}, {"file_name": "ADE_train_00010770.jpg", "width": 320, "id": 10769, "height": 240}, {"file_name": "ADE_train_00010771.jpg", "width": 320, "id": 10770, "height": 240}, {"file_name": "ADE_train_00010772.jpg", "width": 300, "id": 10771, "height": 224}, {"file_name": "ADE_train_00010773.jpg", "width": 320, "id": 10772, "height": 240}, {"file_name": "ADE_train_00010774.jpg", "width": 683, "id": 10773, "height": 512}, {"file_name": "ADE_train_00010775.jpg", "width": 717, "id": 10774, "height": 512}, {"file_name": "ADE_train_00010776.jpg", "width": 719, "id": 10775, "height": 512}, {"file_name": "ADE_train_00010777.jpg", "width": 320, "id": 10776, "height": 207}, {"file_name": "ADE_train_00010778.jpg", "width": 250, "id": 10777, "height": 214}, {"file_name": "ADE_train_00010779.jpg", "width": 250, "id": 10778, "height": 175}, {"file_name": "ADE_train_00010780.jpg", "width": 605, "id": 10779, "height": 435}, {"file_name": "ADE_train_00010781.jpg", "width": 300, "id": 10780, "height": 200}, {"file_name": "ADE_train_00010782.jpg", "width": 768, "id": 10781, "height": 512}, {"file_name": "ADE_train_00010783.jpg", "width": 765, "id": 10782, "height": 512}, {"file_name": "ADE_train_00010784.jpg", "width": 683, "id": 10783, "height": 512}, {"file_name": "ADE_train_00010785.jpg", "width": 376, "id": 10784, "height": 237}, {"file_name": "ADE_train_00010786.jpg", "width": 683, "id": 10785, "height": 512}, {"file_name": "ADE_train_00010787.jpg", "width": 683, "id": 10786, "height": 512}, {"file_name": "ADE_train_00010788.jpg", "width": 457, "id": 10787, "height": 303}, {"file_name": "ADE_train_00010789.jpg", "width": 512, "id": 10788, "height": 649}, {"file_name": "ADE_train_00010790.jpg", "width": 722, "id": 10789, "height": 512}, {"file_name": "ADE_train_00010791.jpg", "width": 704, "id": 10790, "height": 461}, {"file_name": "ADE_train_00010792.jpg", "width": 300, "id": 10791, "height": 199}, {"file_name": "ADE_train_00010793.jpg", "width": 512, "id": 10792, "height": 683}, {"file_name": "ADE_train_00010794.jpg", "width": 683, "id": 10793, "height": 512}, {"file_name": "ADE_train_00010795.jpg", "width": 683, "id": 10794, "height": 512}, {"file_name": "ADE_train_00010796.jpg", "width": 512, "id": 10795, "height": 534}, {"file_name": "ADE_train_00010797.jpg", "width": 300, "id": 10796, "height": 225}, {"file_name": "ADE_train_00010798.jpg", "width": 256, "id": 10797, "height": 256}, {"file_name": "ADE_train_00010799.jpg", "width": 288, "id": 10798, "height": 234}, {"file_name": "ADE_train_00010800.jpg", "width": 683, "id": 10799, "height": 512}, {"file_name": "ADE_train_00010801.jpg", "width": 683, "id": 10800, "height": 512}, {"file_name": "ADE_train_00010802.jpg", "width": 683, "id": 10801, "height": 512}, {"file_name": "ADE_train_00010803.jpg", "width": 300, "id": 10802, "height": 225}, {"file_name": "ADE_train_00010804.jpg", "width": 709, "id": 10803, "height": 512}, {"file_name": "ADE_train_00010805.jpg", "width": 300, "id": 10804, "height": 201}, {"file_name": "ADE_train_00010806.jpg", "width": 768, "id": 10805, "height": 512}, {"file_name": "ADE_train_00010807.jpg", "width": 256, "id": 10806, "height": 256}, {"file_name": "ADE_train_00010808.jpg", "width": 256, "id": 10807, "height": 256}, {"file_name": "ADE_train_00010809.jpg", "width": 256, "id": 10808, "height": 256}, {"file_name": "ADE_train_00010810.jpg", "width": 256, "id": 10809, "height": 256}, {"file_name": "ADE_train_00010811.jpg", "width": 256, "id": 10810, "height": 256}, {"file_name": "ADE_train_00010812.jpg", "width": 256, "id": 10811, "height": 256}, {"file_name": "ADE_train_00010813.jpg", "width": 256, "id": 10812, "height": 256}, {"file_name": "ADE_train_00010814.jpg", "width": 256, "id": 10813, "height": 256}, {"file_name": "ADE_train_00010815.jpg", "width": 256, "id": 10814, "height": 256}, {"file_name": "ADE_train_00010816.jpg", "width": 256, "id": 10815, "height": 256}, {"file_name": "ADE_train_00010817.jpg", "width": 256, "id": 10816, "height": 256}, {"file_name": "ADE_train_00010818.jpg", "width": 256, "id": 10817, "height": 256}, {"file_name": "ADE_train_00010819.jpg", "width": 256, "id": 10818, "height": 256}, {"file_name": "ADE_train_00010820.jpg", "width": 256, "id": 10819, "height": 256}, {"file_name": "ADE_train_00010821.jpg", "width": 256, "id": 10820, "height": 256}, {"file_name": "ADE_train_00010822.jpg", "width": 256, "id": 10821, "height": 256}, {"file_name": "ADE_train_00010823.jpg", "width": 256, "id": 10822, "height": 256}, {"file_name": "ADE_train_00010824.jpg", "width": 256, "id": 10823, "height": 256}, {"file_name": "ADE_train_00010825.jpg", "width": 256, "id": 10824, "height": 256}, {"file_name": "ADE_train_00010826.jpg", "width": 256, "id": 10825, "height": 256}, {"file_name": "ADE_train_00010827.jpg", "width": 256, "id": 10826, "height": 256}, {"file_name": "ADE_train_00010828.jpg", "width": 256, "id": 10827, "height": 256}, {"file_name": "ADE_train_00010829.jpg", "width": 256, "id": 10828, "height": 256}, {"file_name": "ADE_train_00010830.jpg", "width": 256, "id": 10829, "height": 256}, {"file_name": "ADE_train_00010831.jpg", "width": 256, "id": 10830, "height": 256}, {"file_name": "ADE_train_00010832.jpg", "width": 256, "id": 10831, "height": 256}, {"file_name": "ADE_train_00010833.jpg", "width": 256, "id": 10832, "height": 256}, {"file_name": "ADE_train_00010834.jpg", "width": 256, "id": 10833, "height": 256}, {"file_name": "ADE_train_00010835.jpg", "width": 256, "id": 10834, "height": 256}, {"file_name": "ADE_train_00010836.jpg", "width": 256, "id": 10835, "height": 256}, {"file_name": "ADE_train_00010837.jpg", "width": 256, "id": 10836, "height": 256}, {"file_name": "ADE_train_00010838.jpg", "width": 256, "id": 10837, "height": 256}, {"file_name": "ADE_train_00010839.jpg", "width": 256, "id": 10838, "height": 256}, {"file_name": "ADE_train_00010840.jpg", "width": 256, "id": 10839, "height": 256}, {"file_name": "ADE_train_00010841.jpg", "width": 256, "id": 10840, "height": 256}, {"file_name": "ADE_train_00010842.jpg", "width": 256, "id": 10841, "height": 256}, {"file_name": "ADE_train_00010843.jpg", "width": 256, "id": 10842, "height": 256}, {"file_name": "ADE_train_00010844.jpg", "width": 256, "id": 10843, "height": 256}, {"file_name": "ADE_train_00010845.jpg", "width": 256, "id": 10844, "height": 256}, {"file_name": "ADE_train_00010846.jpg", "width": 256, "id": 10845, "height": 256}, {"file_name": "ADE_train_00010847.jpg", "width": 512, "id": 10846, "height": 737}, {"file_name": "ADE_train_00010848.jpg", "width": 683, "id": 10847, "height": 512}, {"file_name": "ADE_train_00010849.jpg", "width": 300, "id": 10848, "height": 300}, {"file_name": "ADE_train_00010850.jpg", "width": 430, "id": 10849, "height": 274}, {"file_name": "ADE_train_00010851.jpg", "width": 640, "id": 10850, "height": 480}, {"file_name": "ADE_train_00010852.jpg", "width": 674, "id": 10851, "height": 512}, {"file_name": "ADE_train_00010853.jpg", "width": 683, "id": 10852, "height": 512}, {"file_name": "ADE_train_00010854.jpg", "width": 650, "id": 10853, "height": 431}, {"file_name": "ADE_train_00010855.jpg", "width": 370, "id": 10854, "height": 527}, {"file_name": "ADE_train_00010856.jpg", "width": 512, "id": 10855, "height": 346}, {"file_name": "ADE_train_00010857.jpg", "width": 788, "id": 10856, "height": 512}, {"file_name": "ADE_train_00010858.jpg", "width": 683, "id": 10857, "height": 512}, {"file_name": "ADE_train_00010859.jpg", "width": 693, "id": 10858, "height": 512}, {"file_name": "ADE_train_00010860.jpg", "width": 683, "id": 10859, "height": 512}, {"file_name": "ADE_train_00010861.jpg", "width": 769, "id": 10860, "height": 512}, {"file_name": "ADE_train_00010862.jpg", "width": 768, "id": 10861, "height": 512}, {"file_name": "ADE_train_00010863.jpg", "width": 780, "id": 10862, "height": 512}, {"file_name": "ADE_train_00010864.jpg", "width": 512, "id": 10863, "height": 288}, {"file_name": "ADE_train_00010865.jpg", "width": 650, "id": 10864, "height": 419}, {"file_name": "ADE_train_00010866.jpg", "width": 683, "id": 10865, "height": 512}, {"file_name": "ADE_train_00010867.jpg", "width": 988, "id": 10866, "height": 512}, {"file_name": "ADE_train_00010868.jpg", "width": 764, "id": 10867, "height": 512}, {"file_name": "ADE_train_00010869.jpg", "width": 717, "id": 10868, "height": 512}, {"file_name": "ADE_train_00010870.jpg", "width": 807, "id": 10869, "height": 512}, {"file_name": "ADE_train_00010871.jpg", "width": 250, "id": 10870, "height": 351}, {"file_name": "ADE_train_00010872.jpg", "width": 765, "id": 10871, "height": 512}, {"file_name": "ADE_train_00010873.jpg", "width": 649, "id": 10872, "height": 512}, {"file_name": "ADE_train_00010874.jpg", "width": 400, "id": 10873, "height": 300}, {"file_name": "ADE_train_00010875.jpg", "width": 683, "id": 10874, "height": 512}, {"file_name": "ADE_train_00010876.jpg", "width": 609, "id": 10875, "height": 383}, {"file_name": "ADE_train_00010877.jpg", "width": 500, "id": 10876, "height": 420}, {"file_name": "ADE_train_00010878.jpg", "width": 683, "id": 10877, "height": 512}, {"file_name": "ADE_train_00010879.jpg", "width": 765, "id": 10878, "height": 512}, {"file_name": "ADE_train_00010880.jpg", "width": 400, "id": 10879, "height": 275}, {"file_name": "ADE_train_00010881.jpg", "width": 512, "id": 10880, "height": 626}, {"file_name": "ADE_train_00010882.jpg", "width": 450, "id": 10881, "height": 264}, {"file_name": "ADE_train_00010883.jpg", "width": 500, "id": 10882, "height": 389}, {"file_name": "ADE_train_00010884.jpg", "width": 225, "id": 10883, "height": 307}, {"file_name": "ADE_train_00010885.jpg", "width": 683, "id": 10884, "height": 512}, {"file_name": "ADE_train_00010886.jpg", "width": 683, "id": 10885, "height": 512}, {"file_name": "ADE_train_00010887.jpg", "width": 683, "id": 10886, "height": 512}, {"file_name": "ADE_train_00010888.jpg", "width": 354, "id": 10887, "height": 228}, {"file_name": "ADE_train_00010889.jpg", "width": 500, "id": 10888, "height": 375}, {"file_name": "ADE_train_00010890.jpg", "width": 500, "id": 10889, "height": 332}, {"file_name": "ADE_train_00010891.jpg", "width": 256, "id": 10890, "height": 256}, {"file_name": "ADE_train_00010892.jpg", "width": 320, "id": 10891, "height": 240}, {"file_name": "ADE_train_00010893.jpg", "width": 512, "id": 10892, "height": 384}, {"file_name": "ADE_train_00010894.jpg", "width": 500, "id": 10893, "height": 375}, {"file_name": "ADE_train_00010895.jpg", "width": 500, "id": 10894, "height": 375}, {"file_name": "ADE_train_00010896.jpg", "width": 500, "id": 10895, "height": 332}, {"file_name": "ADE_train_00010897.jpg", "width": 300, "id": 10896, "height": 200}, {"file_name": "ADE_train_00010898.jpg", "width": 500, "id": 10897, "height": 375}, {"file_name": "ADE_train_00010899.jpg", "width": 500, "id": 10898, "height": 375}, {"file_name": "ADE_train_00010900.jpg", "width": 683, "id": 10899, "height": 512}, {"file_name": "ADE_train_00010901.jpg", "width": 400, "id": 10900, "height": 300}, {"file_name": "ADE_train_00010902.jpg", "width": 500, "id": 10901, "height": 375}, {"file_name": "ADE_train_00010903.jpg", "width": 375, "id": 10902, "height": 500}, {"file_name": "ADE_train_00010904.jpg", "width": 640, "id": 10903, "height": 480}, {"file_name": "ADE_train_00010905.jpg", "width": 640, "id": 10904, "height": 480}, {"file_name": "ADE_train_00010906.jpg", "width": 300, "id": 10905, "height": 237}, {"file_name": "ADE_train_00010907.jpg", "width": 256, "id": 10906, "height": 256}, {"file_name": "ADE_train_00010908.jpg", "width": 500, "id": 10907, "height": 375}, {"file_name": "ADE_train_00010909.jpg", "width": 350, "id": 10908, "height": 262}, {"file_name": "ADE_train_00010910.jpg", "width": 500, "id": 10909, "height": 375}, {"file_name": "ADE_train_00010911.jpg", "width": 500, "id": 10910, "height": 375}, {"file_name": "ADE_train_00010912.jpg", "width": 500, "id": 10911, "height": 375}, {"file_name": "ADE_train_00010913.jpg", "width": 350, "id": 10912, "height": 219}, {"file_name": "ADE_train_00010914.jpg", "width": 300, "id": 10913, "height": 225}, {"file_name": "ADE_train_00010915.jpg", "width": 683, "id": 10914, "height": 512}, {"file_name": "ADE_train_00010916.jpg", "width": 640, "id": 10915, "height": 480}, {"file_name": "ADE_train_00010917.jpg", "width": 683, "id": 10916, "height": 512}, {"file_name": "ADE_train_00010918.jpg", "width": 683, "id": 10917, "height": 512}, {"file_name": "ADE_train_00010919.jpg", "width": 375, "id": 10918, "height": 283}, {"file_name": "ADE_train_00010920.jpg", "width": 252, "id": 10919, "height": 229}, {"file_name": "ADE_train_00010921.jpg", "width": 764, "id": 10920, "height": 512}, {"file_name": "ADE_train_00010922.jpg", "width": 683, "id": 10921, "height": 512}, {"file_name": "ADE_train_00010923.jpg", "width": 683, "id": 10922, "height": 512}, {"file_name": "ADE_train_00010924.jpg", "width": 683, "id": 10923, "height": 512}, {"file_name": "ADE_train_00010925.jpg", "width": 683, "id": 10924, "height": 512}, {"file_name": "ADE_train_00010926.jpg", "width": 300, "id": 10925, "height": 300}, {"file_name": "ADE_train_00010927.jpg", "width": 819, "id": 10926, "height": 512}, {"file_name": "ADE_train_00010928.jpg", "width": 683, "id": 10927, "height": 512}, {"file_name": "ADE_train_00010929.jpg", "width": 352, "id": 10928, "height": 252}, {"file_name": "ADE_train_00010930.jpg", "width": 361, "id": 10929, "height": 248}, {"file_name": "ADE_train_00010931.jpg", "width": 660, "id": 10930, "height": 512}, {"file_name": "ADE_train_00010932.jpg", "width": 408, "id": 10931, "height": 308}, {"file_name": "ADE_train_00010933.jpg", "width": 683, "id": 10932, "height": 512}, {"file_name": "ADE_train_00010934.jpg", "width": 724, "id": 10933, "height": 512}, {"file_name": "ADE_train_00010935.jpg", "width": 768, "id": 10934, "height": 512}, {"file_name": "ADE_train_00010936.jpg", "width": 683, "id": 10935, "height": 512}, {"file_name": "ADE_train_00010937.jpg", "width": 683, "id": 10936, "height": 512}, {"file_name": "ADE_train_00010938.jpg", "width": 768, "id": 10937, "height": 512}, {"file_name": "ADE_train_00010939.jpg", "width": 256, "id": 10938, "height": 256}, {"file_name": "ADE_train_00010940.jpg", "width": 256, "id": 10939, "height": 256}, {"file_name": "ADE_train_00010941.jpg", "width": 683, "id": 10940, "height": 512}, {"file_name": "ADE_train_00010942.jpg", "width": 256, "id": 10941, "height": 256}, {"file_name": "ADE_train_00010943.jpg", "width": 256, "id": 10942, "height": 256}, {"file_name": "ADE_train_00010944.jpg", "width": 256, "id": 10943, "height": 256}, {"file_name": "ADE_train_00010945.jpg", "width": 256, "id": 10944, "height": 256}, {"file_name": "ADE_train_00010946.jpg", "width": 256, "id": 10945, "height": 256}, {"file_name": "ADE_train_00010947.jpg", "width": 256, "id": 10946, "height": 256}, {"file_name": "ADE_train_00010948.jpg", "width": 682, "id": 10947, "height": 512}, {"file_name": "ADE_train_00010949.jpg", "width": 256, "id": 10948, "height": 256}, {"file_name": "ADE_train_00010950.jpg", "width": 256, "id": 10949, "height": 256}, {"file_name": "ADE_train_00010951.jpg", "width": 512, "id": 10950, "height": 384}, {"file_name": "ADE_train_00010952.jpg", "width": 683, "id": 10951, "height": 512}, {"file_name": "ADE_train_00010953.jpg", "width": 683, "id": 10952, "height": 512}, {"file_name": "ADE_train_00010954.jpg", "width": 300, "id": 10953, "height": 204}, {"file_name": "ADE_train_00010955.jpg", "width": 640, "id": 10954, "height": 423}, {"file_name": "ADE_train_00010956.jpg", "width": 256, "id": 10955, "height": 256}, {"file_name": "ADE_train_00010957.jpg", "width": 300, "id": 10956, "height": 200}, {"file_name": "ADE_train_00010958.jpg", "width": 418, "id": 10957, "height": 280}, {"file_name": "ADE_train_00010959.jpg", "width": 400, "id": 10958, "height": 265}, {"file_name": "ADE_train_00010960.jpg", "width": 768, "id": 10959, "height": 512}, {"file_name": "ADE_train_00010961.jpg", "width": 300, "id": 10960, "height": 225}, {"file_name": "ADE_train_00010962.jpg", "width": 683, "id": 10961, "height": 512}, {"file_name": "ADE_train_00010963.jpg", "width": 683, "id": 10962, "height": 512}, {"file_name": "ADE_train_00010964.jpg", "width": 324, "id": 10963, "height": 205}, {"file_name": "ADE_train_00010965.jpg", "width": 245, "id": 10964, "height": 368}, {"file_name": "ADE_train_00010966.jpg", "width": 762, "id": 10965, "height": 512}, {"file_name": "ADE_train_00010967.jpg", "width": 256, "id": 10966, "height": 256}, {"file_name": "ADE_train_00010968.jpg", "width": 727, "id": 10967, "height": 512}, {"file_name": "ADE_train_00010969.jpg", "width": 280, "id": 10968, "height": 210}, {"file_name": "ADE_train_00010970.jpg", "width": 466, "id": 10969, "height": 307}, {"file_name": "ADE_train_00010971.jpg", "width": 448, "id": 10970, "height": 339}, {"file_name": "ADE_train_00010972.jpg", "width": 256, "id": 10971, "height": 256}, {"file_name": "ADE_train_00010973.jpg", "width": 256, "id": 10972, "height": 256}, {"file_name": "ADE_train_00010974.jpg", "width": 256, "id": 10973, "height": 256}, {"file_name": "ADE_train_00010975.jpg", "width": 256, "id": 10974, "height": 256}, {"file_name": "ADE_train_00010976.jpg", "width": 256, "id": 10975, "height": 256}, {"file_name": "ADE_train_00010977.jpg", "width": 256, "id": 10976, "height": 256}, {"file_name": "ADE_train_00010978.jpg", "width": 300, "id": 10977, "height": 200}, {"file_name": "ADE_train_00010979.jpg", "width": 256, "id": 10978, "height": 256}, {"file_name": "ADE_train_00010980.jpg", "width": 256, "id": 10979, "height": 256}, {"file_name": "ADE_train_00010981.jpg", "width": 256, "id": 10980, "height": 256}, {"file_name": "ADE_train_00010982.jpg", "width": 256, "id": 10981, "height": 256}, {"file_name": "ADE_train_00010983.jpg", "width": 256, "id": 10982, "height": 256}, {"file_name": "ADE_train_00010984.jpg", "width": 256, "id": 10983, "height": 256}, {"file_name": "ADE_train_00010985.jpg", "width": 256, "id": 10984, "height": 256}, {"file_name": "ADE_train_00010986.jpg", "width": 256, "id": 10985, "height": 256}, {"file_name": "ADE_train_00010987.jpg", "width": 270, "id": 10986, "height": 240}, {"file_name": "ADE_train_00010988.jpg", "width": 505, "id": 10987, "height": 400}, {"file_name": "ADE_train_00010989.jpg", "width": 432, "id": 10988, "height": 576}, {"file_name": "ADE_train_00010990.jpg", "width": 698, "id": 10989, "height": 512}, {"file_name": "ADE_train_00010991.jpg", "width": 802, "id": 10990, "height": 512}, {"file_name": "ADE_train_00010992.jpg", "width": 300, "id": 10991, "height": 225}, {"file_name": "ADE_train_00010993.jpg", "width": 550, "id": 10992, "height": 432}, {"file_name": "ADE_train_00010994.jpg", "width": 1178, "id": 10993, "height": 512}, {"file_name": "ADE_train_00010995.jpg", "width": 900, "id": 10994, "height": 465}, {"file_name": "ADE_train_00010996.jpg", "width": 400, "id": 10995, "height": 300}, {"file_name": "ADE_train_00010997.jpg", "width": 400, "id": 10996, "height": 300}, {"file_name": "ADE_train_00010998.jpg", "width": 450, "id": 10997, "height": 338}, {"file_name": "ADE_train_00010999.jpg", "width": 723, "id": 10998, "height": 480}, {"file_name": "ADE_train_00011000.jpg", "width": 450, "id": 10999, "height": 338}, {"file_name": "ADE_train_00011001.jpg", "width": 450, "id": 11000, "height": 338}, {"file_name": "ADE_train_00011002.jpg", "width": 350, "id": 11001, "height": 235}, {"file_name": "ADE_train_00011003.jpg", "width": 640, "id": 11002, "height": 480}, {"file_name": "ADE_train_00011004.jpg", "width": 360, "id": 11003, "height": 492}, {"file_name": "ADE_train_00011005.jpg", "width": 450, "id": 11004, "height": 338}, {"file_name": "ADE_train_00011006.jpg", "width": 450, "id": 11005, "height": 338}, {"file_name": "ADE_train_00011007.jpg", "width": 320, "id": 11006, "height": 209}, {"file_name": "ADE_train_00011008.jpg", "width": 683, "id": 11007, "height": 512}, {"file_name": "ADE_train_00011009.jpg", "width": 683, "id": 11008, "height": 512}, {"file_name": "ADE_train_00011010.jpg", "width": 683, "id": 11009, "height": 512}, {"file_name": "ADE_train_00011011.jpg", "width": 350, "id": 11010, "height": 232}, {"file_name": "ADE_train_00011012.jpg", "width": 548, "id": 11011, "height": 350}, {"file_name": "ADE_train_00011013.jpg", "width": 789, "id": 11012, "height": 512}, {"file_name": "ADE_train_00011014.jpg", "width": 432, "id": 11013, "height": 324}, {"file_name": "ADE_train_00011015.jpg", "width": 707, "id": 11014, "height": 504}, {"file_name": "ADE_train_00011016.jpg", "width": 600, "id": 11015, "height": 400}, {"file_name": "ADE_train_00011017.jpg", "width": 683, "id": 11016, "height": 512}, {"file_name": "ADE_train_00011018.jpg", "width": 400, "id": 11017, "height": 226}, {"file_name": "ADE_train_00011019.jpg", "width": 683, "id": 11018, "height": 512}, {"file_name": "ADE_train_00011020.jpg", "width": 360, "id": 11019, "height": 240}, {"file_name": "ADE_train_00011021.jpg", "width": 686, "id": 11020, "height": 512}, {"file_name": "ADE_train_00011022.jpg", "width": 683, "id": 11021, "height": 512}, {"file_name": "ADE_train_00011023.jpg", "width": 819, "id": 11022, "height": 512}, {"file_name": "ADE_train_00011024.jpg", "width": 512, "id": 11023, "height": 683}, {"file_name": "ADE_train_00011025.jpg", "width": 512, "id": 11024, "height": 775}, {"file_name": "ADE_train_00011026.jpg", "width": 590, "id": 11025, "height": 512}, {"file_name": "ADE_train_00011027.jpg", "width": 320, "id": 11026, "height": 240}, {"file_name": "ADE_train_00011028.jpg", "width": 300, "id": 11027, "height": 300}, {"file_name": "ADE_train_00011029.jpg", "width": 683, "id": 11028, "height": 512}, {"file_name": "ADE_train_00011030.jpg", "width": 920, "id": 11029, "height": 512}, {"file_name": "ADE_train_00011031.jpg", "width": 683, "id": 11030, "height": 512}, {"file_name": "ADE_train_00011032.jpg", "width": 224, "id": 11031, "height": 300}, {"file_name": "ADE_train_00011033.jpg", "width": 683, "id": 11032, "height": 512}, {"file_name": "ADE_train_00011034.jpg", "width": 512, "id": 11033, "height": 768}, {"file_name": "ADE_train_00011035.jpg", "width": 819, "id": 11034, "height": 512}, {"file_name": "ADE_train_00011036.jpg", "width": 768, "id": 11035, "height": 512}, {"file_name": "ADE_train_00011037.jpg", "width": 683, "id": 11036, "height": 512}, {"file_name": "ADE_train_00011038.jpg", "width": 512, "id": 11037, "height": 683}, {"file_name": "ADE_train_00011039.jpg", "width": 512, "id": 11038, "height": 683}, {"file_name": "ADE_train_00011040.jpg", "width": 512, "id": 11039, "height": 683}, {"file_name": "ADE_train_00011041.jpg", "width": 683, "id": 11040, "height": 512}, {"file_name": "ADE_train_00011042.jpg", "width": 679, "id": 11041, "height": 512}, {"file_name": "ADE_train_00011043.jpg", "width": 770, "id": 11042, "height": 512}, {"file_name": "ADE_train_00011044.jpg", "width": 683, "id": 11043, "height": 512}, {"file_name": "ADE_train_00011045.jpg", "width": 512, "id": 11044, "height": 792}, {"file_name": "ADE_train_00011046.jpg", "width": 682, "id": 11045, "height": 512}, {"file_name": "ADE_train_00011047.jpg", "width": 238, "id": 11046, "height": 313}, {"file_name": "ADE_train_00011048.jpg", "width": 695, "id": 11047, "height": 512}, {"file_name": "ADE_train_00011049.jpg", "width": 739, "id": 11048, "height": 512}, {"file_name": "ADE_train_00011050.jpg", "width": 683, "id": 11049, "height": 512}, {"file_name": "ADE_train_00011051.jpg", "width": 512, "id": 11050, "height": 780}, {"file_name": "ADE_train_00011052.jpg", "width": 512, "id": 11051, "height": 710}, {"file_name": "ADE_train_00011053.jpg", "width": 512, "id": 11052, "height": 683}, {"file_name": "ADE_train_00011054.jpg", "width": 714, "id": 11053, "height": 512}, {"file_name": "ADE_train_00011055.jpg", "width": 683, "id": 11054, "height": 512}, {"file_name": "ADE_train_00011056.jpg", "width": 512, "id": 11055, "height": 788}, {"file_name": "ADE_train_00011057.jpg", "width": 773, "id": 11056, "height": 512}, {"file_name": "ADE_train_00011058.jpg", "width": 512, "id": 11057, "height": 683}, {"file_name": "ADE_train_00011059.jpg", "width": 512, "id": 11058, "height": 682}, {"file_name": "ADE_train_00011060.jpg", "width": 320, "id": 11059, "height": 240}, {"file_name": "ADE_train_00011061.jpg", "width": 683, "id": 11060, "height": 512}, {"file_name": "ADE_train_00011062.jpg", "width": 683, "id": 11061, "height": 512}, {"file_name": "ADE_train_00011063.jpg", "width": 683, "id": 11062, "height": 512}, {"file_name": "ADE_train_00011064.jpg", "width": 512, "id": 11063, "height": 768}, {"file_name": "ADE_train_00011065.jpg", "width": 850, "id": 11064, "height": 512}, {"file_name": "ADE_train_00011066.jpg", "width": 683, "id": 11065, "height": 512}, {"file_name": "ADE_train_00011067.jpg", "width": 683, "id": 11066, "height": 512}, {"file_name": "ADE_train_00011068.jpg", "width": 768, "id": 11067, "height": 512}, {"file_name": "ADE_train_00011069.jpg", "width": 771, "id": 11068, "height": 512}, {"file_name": "ADE_train_00011070.jpg", "width": 683, "id": 11069, "height": 512}, {"file_name": "ADE_train_00011071.jpg", "width": 683, "id": 11070, "height": 512}, {"file_name": "ADE_train_00011072.jpg", "width": 561, "id": 11071, "height": 414}, {"file_name": "ADE_train_00011073.jpg", "width": 883, "id": 11072, "height": 512}, {"file_name": "ADE_train_00011074.jpg", "width": 764, "id": 11073, "height": 512}, {"file_name": "ADE_train_00011075.jpg", "width": 300, "id": 11074, "height": 228}, {"file_name": "ADE_train_00011076.jpg", "width": 449, "id": 11075, "height": 299}, {"file_name": "ADE_train_00011077.jpg", "width": 640, "id": 11076, "height": 480}, {"file_name": "ADE_train_00011078.jpg", "width": 640, "id": 11077, "height": 480}, {"file_name": "ADE_train_00011079.jpg", "width": 328, "id": 11078, "height": 246}, {"file_name": "ADE_train_00011080.jpg", "width": 320, "id": 11079, "height": 240}, {"file_name": "ADE_train_00011081.jpg", "width": 683, "id": 11080, "height": 512}, {"file_name": "ADE_train_00011082.jpg", "width": 309, "id": 11081, "height": 233}, {"file_name": "ADE_train_00011083.jpg", "width": 683, "id": 11082, "height": 512}, {"file_name": "ADE_train_00011084.jpg", "width": 683, "id": 11083, "height": 512}, {"file_name": "ADE_train_00011085.jpg", "width": 368, "id": 11084, "height": 576}, {"file_name": "ADE_train_00011086.jpg", "width": 400, "id": 11085, "height": 400}, {"file_name": "ADE_train_00011087.jpg", "width": 300, "id": 11086, "height": 225}, {"file_name": "ADE_train_00011088.jpg", "width": 683, "id": 11087, "height": 512}, {"file_name": "ADE_train_00011089.jpg", "width": 683, "id": 11088, "height": 512}, {"file_name": "ADE_train_00011090.jpg", "width": 281, "id": 11089, "height": 237}, {"file_name": "ADE_train_00011091.jpg", "width": 723, "id": 11090, "height": 512}, {"file_name": "ADE_train_00011092.jpg", "width": 681, "id": 11091, "height": 512}, {"file_name": "ADE_train_00011093.jpg", "width": 400, "id": 11092, "height": 600}, {"file_name": "ADE_train_00011094.jpg", "width": 640, "id": 11093, "height": 428}, {"file_name": "ADE_train_00011095.jpg", "width": 683, "id": 11094, "height": 512}, {"file_name": "ADE_train_00011096.jpg", "width": 683, "id": 11095, "height": 512}, {"file_name": "ADE_train_00011097.jpg", "width": 683, "id": 11096, "height": 512}, {"file_name": "ADE_train_00011098.jpg", "width": 768, "id": 11097, "height": 512}, {"file_name": "ADE_train_00011099.jpg", "width": 512, "id": 11098, "height": 407}, {"file_name": "ADE_train_00011100.jpg", "width": 683, "id": 11099, "height": 512}, {"file_name": "ADE_train_00011101.jpg", "width": 640, "id": 11100, "height": 428}, {"file_name": "ADE_train_00011102.jpg", "width": 683, "id": 11101, "height": 512}, {"file_name": "ADE_train_00011103.jpg", "width": 683, "id": 11102, "height": 512}, {"file_name": "ADE_train_00011104.jpg", "width": 683, "id": 11103, "height": 512}, {"file_name": "ADE_train_00011105.jpg", "width": 683, "id": 11104, "height": 512}, {"file_name": "ADE_train_00011106.jpg", "width": 640, "id": 11105, "height": 480}, {"file_name": "ADE_train_00011107.jpg", "width": 400, "id": 11106, "height": 600}, {"file_name": "ADE_train_00011108.jpg", "width": 683, "id": 11107, "height": 512}, {"file_name": "ADE_train_00011109.jpg", "width": 512, "id": 11108, "height": 683}, {"file_name": "ADE_train_00011110.jpg", "width": 683, "id": 11109, "height": 512}, {"file_name": "ADE_train_00011111.jpg", "width": 767, "id": 11110, "height": 512}, {"file_name": "ADE_train_00011112.jpg", "width": 640, "id": 11111, "height": 480}, {"file_name": "ADE_train_00011113.jpg", "width": 683, "id": 11112, "height": 512}, {"file_name": "ADE_train_00011114.jpg", "width": 683, "id": 11113, "height": 512}, {"file_name": "ADE_train_00011115.jpg", "width": 683, "id": 11114, "height": 512}, {"file_name": "ADE_train_00011116.jpg", "width": 683, "id": 11115, "height": 512}, {"file_name": "ADE_train_00011117.jpg", "width": 683, "id": 11116, "height": 512}, {"file_name": "ADE_train_00011118.jpg", "width": 683, "id": 11117, "height": 512}, {"file_name": "ADE_train_00011119.jpg", "width": 683, "id": 11118, "height": 512}, {"file_name": "ADE_train_00011120.jpg", "width": 768, "id": 11119, "height": 512}, {"file_name": "ADE_train_00011121.jpg", "width": 683, "id": 11120, "height": 512}, {"file_name": "ADE_train_00011122.jpg", "width": 730, "id": 11121, "height": 512}, {"file_name": "ADE_train_00011123.jpg", "width": 683, "id": 11122, "height": 512}, {"file_name": "ADE_train_00011124.jpg", "width": 683, "id": 11123, "height": 512}, {"file_name": "ADE_train_00011125.jpg", "width": 512, "id": 11124, "height": 396}, {"file_name": "ADE_train_00011126.jpg", "width": 683, "id": 11125, "height": 512}, {"file_name": "ADE_train_00011127.jpg", "width": 683, "id": 11126, "height": 512}, {"file_name": "ADE_train_00011128.jpg", "width": 683, "id": 11127, "height": 512}, {"file_name": "ADE_train_00011129.jpg", "width": 683, "id": 11128, "height": 512}, {"file_name": "ADE_train_00011130.jpg", "width": 768, "id": 11129, "height": 512}, {"file_name": "ADE_train_00011131.jpg", "width": 512, "id": 11130, "height": 425}, {"file_name": "ADE_train_00011132.jpg", "width": 512, "id": 11131, "height": 405}, {"file_name": "ADE_train_00011133.jpg", "width": 683, "id": 11132, "height": 512}, {"file_name": "ADE_train_00011134.jpg", "width": 683, "id": 11133, "height": 512}, {"file_name": "ADE_train_00011135.jpg", "width": 512, "id": 11134, "height": 400}, {"file_name": "ADE_train_00011136.jpg", "width": 783, "id": 11135, "height": 512}, {"file_name": "ADE_train_00011137.jpg", "width": 683, "id": 11136, "height": 512}, {"file_name": "ADE_train_00011138.jpg", "width": 640, "id": 11137, "height": 427}, {"file_name": "ADE_train_00011139.jpg", "width": 512, "id": 11138, "height": 433}, {"file_name": "ADE_train_00011140.jpg", "width": 683, "id": 11139, "height": 512}, {"file_name": "ADE_train_00011141.jpg", "width": 683, "id": 11140, "height": 512}, {"file_name": "ADE_train_00011142.jpg", "width": 683, "id": 11141, "height": 512}, {"file_name": "ADE_train_00011143.jpg", "width": 256, "id": 11142, "height": 256}, {"file_name": "ADE_train_00011144.jpg", "width": 256, "id": 11143, "height": 256}, {"file_name": "ADE_train_00011145.jpg", "width": 300, "id": 11144, "height": 239}, {"file_name": "ADE_train_00011146.jpg", "width": 256, "id": 11145, "height": 256}, {"file_name": "ADE_train_00011147.jpg", "width": 768, "id": 11146, "height": 512}, {"file_name": "ADE_train_00011148.jpg", "width": 256, "id": 11147, "height": 256}, {"file_name": "ADE_train_00011149.jpg", "width": 256, "id": 11148, "height": 256}, {"file_name": "ADE_train_00011150.jpg", "width": 256, "id": 11149, "height": 256}, {"file_name": "ADE_train_00011151.jpg", "width": 256, "id": 11150, "height": 256}, {"file_name": "ADE_train_00011152.jpg", "width": 512, "id": 11151, "height": 404}, {"file_name": "ADE_train_00011153.jpg", "width": 256, "id": 11152, "height": 256}, {"file_name": "ADE_train_00011154.jpg", "width": 256, "id": 11153, "height": 256}, {"file_name": "ADE_train_00011155.jpg", "width": 256, "id": 11154, "height": 256}, {"file_name": "ADE_train_00011156.jpg", "width": 256, "id": 11155, "height": 256}, {"file_name": "ADE_train_00011157.jpg", "width": 768, "id": 11156, "height": 512}, {"file_name": "ADE_train_00011158.jpg", "width": 852, "id": 11157, "height": 512}, {"file_name": "ADE_train_00011159.jpg", "width": 256, "id": 11158, "height": 256}, {"file_name": "ADE_train_00011160.jpg", "width": 640, "id": 11159, "height": 480}, {"file_name": "ADE_train_00011161.jpg", "width": 300, "id": 11160, "height": 225}, {"file_name": "ADE_train_00011162.jpg", "width": 768, "id": 11161, "height": 512}, {"file_name": "ADE_train_00011163.jpg", "width": 256, "id": 11162, "height": 256}, {"file_name": "ADE_train_00011164.jpg", "width": 256, "id": 11163, "height": 256}, {"file_name": "ADE_train_00011165.jpg", "width": 400, "id": 11164, "height": 261}, {"file_name": "ADE_train_00011166.jpg", "width": 512, "id": 11165, "height": 768}, {"file_name": "ADE_train_00011167.jpg", "width": 512, "id": 11166, "height": 384}, {"file_name": "ADE_train_00011168.jpg", "width": 256, "id": 11167, "height": 256}, {"file_name": "ADE_train_00011169.jpg", "width": 768, "id": 11168, "height": 512}, {"file_name": "ADE_train_00011170.jpg", "width": 640, "id": 11169, "height": 266}, {"file_name": "ADE_train_00011171.jpg", "width": 300, "id": 11170, "height": 225}, {"file_name": "ADE_train_00011172.jpg", "width": 512, "id": 11171, "height": 340}, {"file_name": "ADE_train_00011173.jpg", "width": 256, "id": 11172, "height": 256}, {"file_name": "ADE_train_00011174.jpg", "width": 683, "id": 11173, "height": 512}, {"file_name": "ADE_train_00011175.jpg", "width": 640, "id": 11174, "height": 480}, {"file_name": "ADE_train_00011176.jpg", "width": 300, "id": 11175, "height": 225}, {"file_name": "ADE_train_00011177.jpg", "width": 300, "id": 11176, "height": 225}, {"file_name": "ADE_train_00011178.jpg", "width": 512, "id": 11177, "height": 406}, {"file_name": "ADE_train_00011179.jpg", "width": 768, "id": 11178, "height": 512}, {"file_name": "ADE_train_00011180.jpg", "width": 256, "id": 11179, "height": 256}, {"file_name": "ADE_train_00011181.jpg", "width": 300, "id": 11180, "height": 225}, {"file_name": "ADE_train_00011182.jpg", "width": 256, "id": 11181, "height": 256}, {"file_name": "ADE_train_00011183.jpg", "width": 768, "id": 11182, "height": 512}, {"file_name": "ADE_train_00011184.jpg", "width": 256, "id": 11183, "height": 256}, {"file_name": "ADE_train_00011185.jpg", "width": 768, "id": 11184, "height": 512}, {"file_name": "ADE_train_00011186.jpg", "width": 256, "id": 11185, "height": 256}, {"file_name": "ADE_train_00011187.jpg", "width": 768, "id": 11186, "height": 512}, {"file_name": "ADE_train_00011188.jpg", "width": 256, "id": 11187, "height": 256}, {"file_name": "ADE_train_00011189.jpg", "width": 768, "id": 11188, "height": 512}, {"file_name": "ADE_train_00011190.jpg", "width": 771, "id": 11189, "height": 512}, {"file_name": "ADE_train_00011191.jpg", "width": 256, "id": 11190, "height": 256}, {"file_name": "ADE_train_00011192.jpg", "width": 256, "id": 11191, "height": 256}, {"file_name": "ADE_train_00011193.jpg", "width": 768, "id": 11192, "height": 512}, {"file_name": "ADE_train_00011194.jpg", "width": 256, "id": 11193, "height": 256}, {"file_name": "ADE_train_00011195.jpg", "width": 256, "id": 11194, "height": 256}, {"file_name": "ADE_train_00011196.jpg", "width": 600, "id": 11195, "height": 409}, {"file_name": "ADE_train_00011197.jpg", "width": 256, "id": 11196, "height": 256}, {"file_name": "ADE_train_00011198.jpg", "width": 300, "id": 11197, "height": 225}, {"file_name": "ADE_train_00011199.jpg", "width": 450, "id": 11198, "height": 326}, {"file_name": "ADE_train_00011200.jpg", "width": 525, "id": 11199, "height": 512}, {"file_name": "ADE_train_00011201.jpg", "width": 256, "id": 11200, "height": 256}, {"file_name": "ADE_train_00011202.jpg", "width": 300, "id": 11201, "height": 225}, {"file_name": "ADE_train_00011203.jpg", "width": 512, "id": 11202, "height": 340}, {"file_name": "ADE_train_00011204.jpg", "width": 300, "id": 11203, "height": 225}, {"file_name": "ADE_train_00011205.jpg", "width": 256, "id": 11204, "height": 256}, {"file_name": "ADE_train_00011206.jpg", "width": 680, "id": 11205, "height": 512}, {"file_name": "ADE_train_00011207.jpg", "width": 256, "id": 11206, "height": 256}, {"file_name": "ADE_train_00011208.jpg", "width": 256, "id": 11207, "height": 256}, {"file_name": "ADE_train_00011209.jpg", "width": 256, "id": 11208, "height": 256}, {"file_name": "ADE_train_00011210.jpg", "width": 768, "id": 11209, "height": 512}, {"file_name": "ADE_train_00011211.jpg", "width": 256, "id": 11210, "height": 256}, {"file_name": "ADE_train_00011212.jpg", "width": 256, "id": 11211, "height": 256}, {"file_name": "ADE_train_00011213.jpg", "width": 683, "id": 11212, "height": 512}, {"file_name": "ADE_train_00011214.jpg", "width": 250, "id": 11213, "height": 285}, {"file_name": "ADE_train_00011215.jpg", "width": 765, "id": 11214, "height": 512}, {"file_name": "ADE_train_00011216.jpg", "width": 768, "id": 11215, "height": 512}, {"file_name": "ADE_train_00011217.jpg", "width": 256, "id": 11216, "height": 256}, {"file_name": "ADE_train_00011218.jpg", "width": 738, "id": 11217, "height": 512}, {"file_name": "ADE_train_00011219.jpg", "width": 256, "id": 11218, "height": 256}, {"file_name": "ADE_train_00011220.jpg", "width": 256, "id": 11219, "height": 256}, {"file_name": "ADE_train_00011221.jpg", "width": 700, "id": 11220, "height": 466}, {"file_name": "ADE_train_00011222.jpg", "width": 256, "id": 11221, "height": 256}, {"file_name": "ADE_train_00011223.jpg", "width": 768, "id": 11222, "height": 512}, {"file_name": "ADE_train_00011224.jpg", "width": 683, "id": 11223, "height": 512}, {"file_name": "ADE_train_00011225.jpg", "width": 768, "id": 11224, "height": 512}, {"file_name": "ADE_train_00011226.jpg", "width": 512, "id": 11225, "height": 731}, {"file_name": "ADE_train_00011227.jpg", "width": 256, "id": 11226, "height": 256}, {"file_name": "ADE_train_00011228.jpg", "width": 512, "id": 11227, "height": 712}, {"file_name": "ADE_train_00011229.jpg", "width": 256, "id": 11228, "height": 256}, {"file_name": "ADE_train_00011230.jpg", "width": 256, "id": 11229, "height": 256}, {"file_name": "ADE_train_00011231.jpg", "width": 256, "id": 11230, "height": 256}, {"file_name": "ADE_train_00011232.jpg", "width": 300, "id": 11231, "height": 225}, {"file_name": "ADE_train_00011233.jpg", "width": 256, "id": 11232, "height": 256}, {"file_name": "ADE_train_00011234.jpg", "width": 256, "id": 11233, "height": 256}, {"file_name": "ADE_train_00011235.jpg", "width": 731, "id": 11234, "height": 512}, {"file_name": "ADE_train_00011236.jpg", "width": 771, "id": 11235, "height": 512}, {"file_name": "ADE_train_00011237.jpg", "width": 558, "id": 11236, "height": 512}, {"file_name": "ADE_train_00011238.jpg", "width": 765, "id": 11237, "height": 512}, {"file_name": "ADE_train_00011239.jpg", "width": 512, "id": 11238, "height": 751}, {"file_name": "ADE_train_00011240.jpg", "width": 512, "id": 11239, "height": 483}, {"file_name": "ADE_train_00011241.jpg", "width": 683, "id": 11240, "height": 512}, {"file_name": "ADE_train_00011242.jpg", "width": 768, "id": 11241, "height": 512}, {"file_name": "ADE_train_00011243.jpg", "width": 768, "id": 11242, "height": 512}, {"file_name": "ADE_train_00011244.jpg", "width": 683, "id": 11243, "height": 512}, {"file_name": "ADE_train_00011245.jpg", "width": 256, "id": 11244, "height": 256}, {"file_name": "ADE_train_00011246.jpg", "width": 256, "id": 11245, "height": 256}, {"file_name": "ADE_train_00011247.jpg", "width": 256, "id": 11246, "height": 256}, {"file_name": "ADE_train_00011248.jpg", "width": 256, "id": 11247, "height": 256}, {"file_name": "ADE_train_00011249.jpg", "width": 256, "id": 11248, "height": 256}, {"file_name": "ADE_train_00011250.jpg", "width": 683, "id": 11249, "height": 512}, {"file_name": "ADE_train_00011251.jpg", "width": 256, "id": 11250, "height": 256}, {"file_name": "ADE_train_00011252.jpg", "width": 768, "id": 11251, "height": 512}, {"file_name": "ADE_train_00011253.jpg", "width": 300, "id": 11252, "height": 225}, {"file_name": "ADE_train_00011254.jpg", "width": 640, "id": 11253, "height": 428}, {"file_name": "ADE_train_00011255.jpg", "width": 256, "id": 11254, "height": 256}, {"file_name": "ADE_train_00011256.jpg", "width": 683, "id": 11255, "height": 512}, {"file_name": "ADE_train_00011257.jpg", "width": 683, "id": 11256, "height": 512}, {"file_name": "ADE_train_00011258.jpg", "width": 768, "id": 11257, "height": 512}, {"file_name": "ADE_train_00011259.jpg", "width": 683, "id": 11258, "height": 512}, {"file_name": "ADE_train_00011260.jpg", "width": 256, "id": 11259, "height": 256}, {"file_name": "ADE_train_00011261.jpg", "width": 426, "id": 11260, "height": 285}, {"file_name": "ADE_train_00011262.jpg", "width": 256, "id": 11261, "height": 256}, {"file_name": "ADE_train_00011263.jpg", "width": 683, "id": 11262, "height": 512}, {"file_name": "ADE_train_00011264.jpg", "width": 512, "id": 11263, "height": 720}, {"file_name": "ADE_train_00011265.jpg", "width": 512, "id": 11264, "height": 768}, {"file_name": "ADE_train_00011266.jpg", "width": 512, "id": 11265, "height": 384}, {"file_name": "ADE_train_00011267.jpg", "width": 640, "id": 11266, "height": 480}, {"file_name": "ADE_train_00011268.jpg", "width": 512, "id": 11267, "height": 677}, {"file_name": "ADE_train_00011269.jpg", "width": 768, "id": 11268, "height": 512}, {"file_name": "ADE_train_00011270.jpg", "width": 256, "id": 11269, "height": 256}, {"file_name": "ADE_train_00011271.jpg", "width": 683, "id": 11270, "height": 512}, {"file_name": "ADE_train_00011272.jpg", "width": 768, "id": 11271, "height": 512}, {"file_name": "ADE_train_00011273.jpg", "width": 300, "id": 11272, "height": 225}, {"file_name": "ADE_train_00011274.jpg", "width": 256, "id": 11273, "height": 256}, {"file_name": "ADE_train_00011275.jpg", "width": 768, "id": 11274, "height": 512}, {"file_name": "ADE_train_00011276.jpg", "width": 683, "id": 11275, "height": 512}, {"file_name": "ADE_train_00011277.jpg", "width": 776, "id": 11276, "height": 512}, {"file_name": "ADE_train_00011278.jpg", "width": 640, "id": 11277, "height": 480}, {"file_name": "ADE_train_00011279.jpg", "width": 768, "id": 11278, "height": 512}, {"file_name": "ADE_train_00011280.jpg", "width": 768, "id": 11279, "height": 512}, {"file_name": "ADE_train_00011281.jpg", "width": 256, "id": 11280, "height": 256}, {"file_name": "ADE_train_00011282.jpg", "width": 512, "id": 11281, "height": 725}, {"file_name": "ADE_train_00011283.jpg", "width": 256, "id": 11282, "height": 256}, {"file_name": "ADE_train_00011284.jpg", "width": 765, "id": 11283, "height": 512}, {"file_name": "ADE_train_00011285.jpg", "width": 256, "id": 11284, "height": 256}, {"file_name": "ADE_train_00011286.jpg", "width": 771, "id": 11285, "height": 512}, {"file_name": "ADE_train_00011287.jpg", "width": 769, "id": 11286, "height": 512}, {"file_name": "ADE_train_00011288.jpg", "width": 256, "id": 11287, "height": 256}, {"file_name": "ADE_train_00011289.jpg", "width": 256, "id": 11288, "height": 256}, {"file_name": "ADE_train_00011290.jpg", "width": 768, "id": 11289, "height": 512}, {"file_name": "ADE_train_00011291.jpg", "width": 256, "id": 11290, "height": 256}, {"file_name": "ADE_train_00011292.jpg", "width": 256, "id": 11291, "height": 256}, {"file_name": "ADE_train_00011293.jpg", "width": 512, "id": 11292, "height": 635}, {"file_name": "ADE_train_00011294.jpg", "width": 768, "id": 11293, "height": 512}, {"file_name": "ADE_train_00011295.jpg", "width": 768, "id": 11294, "height": 512}, {"file_name": "ADE_train_00011296.jpg", "width": 768, "id": 11295, "height": 512}, {"file_name": "ADE_train_00011297.jpg", "width": 512, "id": 11296, "height": 663}, {"file_name": "ADE_train_00011298.jpg", "width": 764, "id": 11297, "height": 512}, {"file_name": "ADE_train_00011299.jpg", "width": 818, "id": 11298, "height": 512}, {"file_name": "ADE_train_00011300.jpg", "width": 683, "id": 11299, "height": 512}, {"file_name": "ADE_train_00011301.jpg", "width": 767, "id": 11300, "height": 512}, {"file_name": "ADE_train_00011302.jpg", "width": 256, "id": 11301, "height": 256}, {"file_name": "ADE_train_00011303.jpg", "width": 763, "id": 11302, "height": 512}, {"file_name": "ADE_train_00011304.jpg", "width": 763, "id": 11303, "height": 512}, {"file_name": "ADE_train_00011305.jpg", "width": 512, "id": 11304, "height": 384}, {"file_name": "ADE_train_00011306.jpg", "width": 683, "id": 11305, "height": 512}, {"file_name": "ADE_train_00011307.jpg", "width": 512, "id": 11306, "height": 593}, {"file_name": "ADE_train_00011308.jpg", "width": 768, "id": 11307, "height": 512}, {"file_name": "ADE_train_00011309.jpg", "width": 256, "id": 11308, "height": 256}, {"file_name": "ADE_train_00011310.jpg", "width": 400, "id": 11309, "height": 600}, {"file_name": "ADE_train_00011311.jpg", "width": 256, "id": 11310, "height": 256}, {"file_name": "ADE_train_00011312.jpg", "width": 300, "id": 11311, "height": 225}, {"file_name": "ADE_train_00011313.jpg", "width": 768, "id": 11312, "height": 512}, {"file_name": "ADE_train_00011314.jpg", "width": 785, "id": 11313, "height": 512}, {"file_name": "ADE_train_00011315.jpg", "width": 776, "id": 11314, "height": 512}, {"file_name": "ADE_train_00011316.jpg", "width": 768, "id": 11315, "height": 512}, {"file_name": "ADE_train_00011317.jpg", "width": 683, "id": 11316, "height": 512}, {"file_name": "ADE_train_00011318.jpg", "width": 770, "id": 11317, "height": 512}, {"file_name": "ADE_train_00011319.jpg", "width": 768, "id": 11318, "height": 512}, {"file_name": "ADE_train_00011320.jpg", "width": 256, "id": 11319, "height": 256}, {"file_name": "ADE_train_00011321.jpg", "width": 768, "id": 11320, "height": 512}, {"file_name": "ADE_train_00011322.jpg", "width": 256, "id": 11321, "height": 256}, {"file_name": "ADE_train_00011323.jpg", "width": 600, "id": 11322, "height": 450}, {"file_name": "ADE_train_00011324.jpg", "width": 683, "id": 11323, "height": 512}, {"file_name": "ADE_train_00011325.jpg", "width": 683, "id": 11324, "height": 512}, {"file_name": "ADE_train_00011326.jpg", "width": 770, "id": 11325, "height": 512}, {"file_name": "ADE_train_00011327.jpg", "width": 256, "id": 11326, "height": 256}, {"file_name": "ADE_train_00011328.jpg", "width": 512, "id": 11327, "height": 669}, {"file_name": "ADE_train_00011329.jpg", "width": 768, "id": 11328, "height": 512}, {"file_name": "ADE_train_00011330.jpg", "width": 683, "id": 11329, "height": 512}, {"file_name": "ADE_train_00011331.jpg", "width": 768, "id": 11330, "height": 512}, {"file_name": "ADE_train_00011332.jpg", "width": 683, "id": 11331, "height": 512}, {"file_name": "ADE_train_00011333.jpg", "width": 768, "id": 11332, "height": 512}, {"file_name": "ADE_train_00011334.jpg", "width": 768, "id": 11333, "height": 512}, {"file_name": "ADE_train_00011335.jpg", "width": 768, "id": 11334, "height": 512}, {"file_name": "ADE_train_00011336.jpg", "width": 768, "id": 11335, "height": 512}, {"file_name": "ADE_train_00011337.jpg", "width": 768, "id": 11336, "height": 512}, {"file_name": "ADE_train_00011338.jpg", "width": 768, "id": 11337, "height": 512}, {"file_name": "ADE_train_00011339.jpg", "width": 716, "id": 11338, "height": 512}, {"file_name": "ADE_train_00011340.jpg", "width": 779, "id": 11339, "height": 512}, {"file_name": "ADE_train_00011341.jpg", "width": 683, "id": 11340, "height": 512}, {"file_name": "ADE_train_00011342.jpg", "width": 765, "id": 11341, "height": 512}, {"file_name": "ADE_train_00011343.jpg", "width": 683, "id": 11342, "height": 512}, {"file_name": "ADE_train_00011344.jpg", "width": 256, "id": 11343, "height": 256}, {"file_name": "ADE_train_00011345.jpg", "width": 350, "id": 11344, "height": 263}, {"file_name": "ADE_train_00011346.jpg", "width": 500, "id": 11345, "height": 377}, {"file_name": "ADE_train_00011347.jpg", "width": 256, "id": 11346, "height": 256}, {"file_name": "ADE_train_00011348.jpg", "width": 512, "id": 11347, "height": 640}, {"file_name": "ADE_train_00011349.jpg", "width": 300, "id": 11348, "height": 225}, {"file_name": "ADE_train_00011350.jpg", "width": 684, "id": 11349, "height": 512}, {"file_name": "ADE_train_00011351.jpg", "width": 256, "id": 11350, "height": 256}, {"file_name": "ADE_train_00011352.jpg", "width": 512, "id": 11351, "height": 829}, {"file_name": "ADE_train_00011353.jpg", "width": 256, "id": 11352, "height": 256}, {"file_name": "ADE_train_00011354.jpg", "width": 256, "id": 11353, "height": 256}, {"file_name": "ADE_train_00011355.jpg", "width": 683, "id": 11354, "height": 512}, {"file_name": "ADE_train_00011356.jpg", "width": 768, "id": 11355, "height": 512}, {"file_name": "ADE_train_00011357.jpg", "width": 768, "id": 11356, "height": 512}, {"file_name": "ADE_train_00011358.jpg", "width": 256, "id": 11357, "height": 256}, {"file_name": "ADE_train_00011359.jpg", "width": 683, "id": 11358, "height": 512}, {"file_name": "ADE_train_00011360.jpg", "width": 640, "id": 11359, "height": 480}, {"file_name": "ADE_train_00011361.jpg", "width": 768, "id": 11360, "height": 512}, {"file_name": "ADE_train_00011362.jpg", "width": 256, "id": 11361, "height": 256}, {"file_name": "ADE_train_00011363.jpg", "width": 512, "id": 11362, "height": 384}, {"file_name": "ADE_train_00011364.jpg", "width": 768, "id": 11363, "height": 512}, {"file_name": "ADE_train_00011365.jpg", "width": 256, "id": 11364, "height": 256}, {"file_name": "ADE_train_00011366.jpg", "width": 787, "id": 11365, "height": 512}, {"file_name": "ADE_train_00011367.jpg", "width": 771, "id": 11366, "height": 512}, {"file_name": "ADE_train_00011368.jpg", "width": 300, "id": 11367, "height": 225}, {"file_name": "ADE_train_00011369.jpg", "width": 640, "id": 11368, "height": 459}, {"file_name": "ADE_train_00011370.jpg", "width": 768, "id": 11369, "height": 512}, {"file_name": "ADE_train_00011371.jpg", "width": 771, "id": 11370, "height": 512}, {"file_name": "ADE_train_00011372.jpg", "width": 768, "id": 11371, "height": 512}, {"file_name": "ADE_train_00011373.jpg", "width": 683, "id": 11372, "height": 512}, {"file_name": "ADE_train_00011374.jpg", "width": 768, "id": 11373, "height": 512}, {"file_name": "ADE_train_00011375.jpg", "width": 256, "id": 11374, "height": 256}, {"file_name": "ADE_train_00011376.jpg", "width": 768, "id": 11375, "height": 512}, {"file_name": "ADE_train_00011377.jpg", "width": 670, "id": 11376, "height": 512}, {"file_name": "ADE_train_00011378.jpg", "width": 525, "id": 11377, "height": 512}, {"file_name": "ADE_train_00011379.jpg", "width": 940, "id": 11378, "height": 512}, {"file_name": "ADE_train_00011380.jpg", "width": 683, "id": 11379, "height": 512}, {"file_name": "ADE_train_00011381.jpg", "width": 768, "id": 11380, "height": 512}, {"file_name": "ADE_train_00011382.jpg", "width": 683, "id": 11381, "height": 512}, {"file_name": "ADE_train_00011383.jpg", "width": 771, "id": 11382, "height": 512}, {"file_name": "ADE_train_00011384.jpg", "width": 683, "id": 11383, "height": 512}, {"file_name": "ADE_train_00011385.jpg", "width": 683, "id": 11384, "height": 512}, {"file_name": "ADE_train_00011386.jpg", "width": 683, "id": 11385, "height": 512}, {"file_name": "ADE_train_00011387.jpg", "width": 683, "id": 11386, "height": 512}, {"file_name": "ADE_train_00011388.jpg", "width": 769, "id": 11387, "height": 512}, {"file_name": "ADE_train_00011389.jpg", "width": 683, "id": 11388, "height": 512}, {"file_name": "ADE_train_00011390.jpg", "width": 687, "id": 11389, "height": 512}, {"file_name": "ADE_train_00011391.jpg", "width": 683, "id": 11390, "height": 512}, {"file_name": "ADE_train_00011392.jpg", "width": 768, "id": 11391, "height": 512}, {"file_name": "ADE_train_00011393.jpg", "width": 512, "id": 11392, "height": 514}, {"file_name": "ADE_train_00011394.jpg", "width": 512, "id": 11393, "height": 640}, {"file_name": "ADE_train_00011395.jpg", "width": 785, "id": 11394, "height": 512}, {"file_name": "ADE_train_00011396.jpg", "width": 768, "id": 11395, "height": 512}, {"file_name": "ADE_train_00011397.jpg", "width": 683, "id": 11396, "height": 512}, {"file_name": "ADE_train_00011398.jpg", "width": 683, "id": 11397, "height": 512}, {"file_name": "ADE_train_00011399.jpg", "width": 683, "id": 11398, "height": 512}, {"file_name": "ADE_train_00011400.jpg", "width": 683, "id": 11399, "height": 512}, {"file_name": "ADE_train_00011401.jpg", "width": 683, "id": 11400, "height": 512}, {"file_name": "ADE_train_00011402.jpg", "width": 683, "id": 11401, "height": 512}, {"file_name": "ADE_train_00011403.jpg", "width": 768, "id": 11402, "height": 512}, {"file_name": "ADE_train_00011404.jpg", "width": 683, "id": 11403, "height": 512}, {"file_name": "ADE_train_00011405.jpg", "width": 683, "id": 11404, "height": 512}, {"file_name": "ADE_train_00011406.jpg", "width": 765, "id": 11405, "height": 512}, {"file_name": "ADE_train_00011407.jpg", "width": 683, "id": 11406, "height": 512}, {"file_name": "ADE_train_00011408.jpg", "width": 768, "id": 11407, "height": 512}, {"file_name": "ADE_train_00011409.jpg", "width": 768, "id": 11408, "height": 512}, {"file_name": "ADE_train_00011410.jpg", "width": 683, "id": 11409, "height": 512}, {"file_name": "ADE_train_00011411.jpg", "width": 683, "id": 11410, "height": 512}, {"file_name": "ADE_train_00011412.jpg", "width": 683, "id": 11411, "height": 512}, {"file_name": "ADE_train_00011413.jpg", "width": 683, "id": 11412, "height": 512}, {"file_name": "ADE_train_00011414.jpg", "width": 770, "id": 11413, "height": 512}, {"file_name": "ADE_train_00011415.jpg", "width": 683, "id": 11414, "height": 512}, {"file_name": "ADE_train_00011416.jpg", "width": 765, "id": 11415, "height": 512}, {"file_name": "ADE_train_00011417.jpg", "width": 683, "id": 11416, "height": 512}, {"file_name": "ADE_train_00011418.jpg", "width": 683, "id": 11417, "height": 512}, {"file_name": "ADE_train_00011419.jpg", "width": 683, "id": 11418, "height": 512}, {"file_name": "ADE_train_00011420.jpg", "width": 683, "id": 11419, "height": 512}, {"file_name": "ADE_train_00011421.jpg", "width": 768, "id": 11420, "height": 512}, {"file_name": "ADE_train_00011422.jpg", "width": 683, "id": 11421, "height": 512}, {"file_name": "ADE_train_00011423.jpg", "width": 683, "id": 11422, "height": 512}, {"file_name": "ADE_train_00011424.jpg", "width": 683, "id": 11423, "height": 512}, {"file_name": "ADE_train_00011425.jpg", "width": 683, "id": 11424, "height": 512}, {"file_name": "ADE_train_00011426.jpg", "width": 683, "id": 11425, "height": 512}, {"file_name": "ADE_train_00011427.jpg", "width": 683, "id": 11426, "height": 512}, {"file_name": "ADE_train_00011428.jpg", "width": 683, "id": 11427, "height": 512}, {"file_name": "ADE_train_00011429.jpg", "width": 768, "id": 11428, "height": 512}, {"file_name": "ADE_train_00011430.jpg", "width": 512, "id": 11429, "height": 680}, {"file_name": "ADE_train_00011431.jpg", "width": 683, "id": 11430, "height": 512}, {"file_name": "ADE_train_00011432.jpg", "width": 683, "id": 11431, "height": 512}, {"file_name": "ADE_train_00011433.jpg", "width": 768, "id": 11432, "height": 512}, {"file_name": "ADE_train_00011434.jpg", "width": 768, "id": 11433, "height": 512}, {"file_name": "ADE_train_00011435.jpg", "width": 683, "id": 11434, "height": 512}, {"file_name": "ADE_train_00011436.jpg", "width": 760, "id": 11435, "height": 512}, {"file_name": "ADE_train_00011437.jpg", "width": 683, "id": 11436, "height": 512}, {"file_name": "ADE_train_00011438.jpg", "width": 512, "id": 11437, "height": 768}, {"file_name": "ADE_train_00011439.jpg", "width": 683, "id": 11438, "height": 512}, {"file_name": "ADE_train_00011440.jpg", "width": 683, "id": 11439, "height": 512}, {"file_name": "ADE_train_00011441.jpg", "width": 683, "id": 11440, "height": 512}, {"file_name": "ADE_train_00011442.jpg", "width": 683, "id": 11441, "height": 512}, {"file_name": "ADE_train_00011443.jpg", "width": 769, "id": 11442, "height": 512}, {"file_name": "ADE_train_00011444.jpg", "width": 820, "id": 11443, "height": 512}, {"file_name": "ADE_train_00011445.jpg", "width": 512, "id": 11444, "height": 682}, {"file_name": "ADE_train_00011446.jpg", "width": 683, "id": 11445, "height": 512}, {"file_name": "ADE_train_00011447.jpg", "width": 683, "id": 11446, "height": 512}, {"file_name": "ADE_train_00011448.jpg", "width": 683, "id": 11447, "height": 512}, {"file_name": "ADE_train_00011449.jpg", "width": 683, "id": 11448, "height": 512}, {"file_name": "ADE_train_00011450.jpg", "width": 768, "id": 11449, "height": 512}, {"file_name": "ADE_train_00011451.jpg", "width": 683, "id": 11450, "height": 512}, {"file_name": "ADE_train_00011452.jpg", "width": 683, "id": 11451, "height": 512}, {"file_name": "ADE_train_00011453.jpg", "width": 683, "id": 11452, "height": 512}, {"file_name": "ADE_train_00011454.jpg", "width": 683, "id": 11453, "height": 512}, {"file_name": "ADE_train_00011455.jpg", "width": 683, "id": 11454, "height": 512}, {"file_name": "ADE_train_00011456.jpg", "width": 765, "id": 11455, "height": 512}, {"file_name": "ADE_train_00011457.jpg", "width": 769, "id": 11456, "height": 512}, {"file_name": "ADE_train_00011458.jpg", "width": 683, "id": 11457, "height": 512}, {"file_name": "ADE_train_00011459.jpg", "width": 826, "id": 11458, "height": 512}, {"file_name": "ADE_train_00011460.jpg", "width": 683, "id": 11459, "height": 512}, {"file_name": "ADE_train_00011461.jpg", "width": 683, "id": 11460, "height": 512}, {"file_name": "ADE_train_00011462.jpg", "width": 683, "id": 11461, "height": 512}, {"file_name": "ADE_train_00011463.jpg", "width": 683, "id": 11462, "height": 512}, {"file_name": "ADE_train_00011464.jpg", "width": 683, "id": 11463, "height": 512}, {"file_name": "ADE_train_00011465.jpg", "width": 717, "id": 11464, "height": 512}, {"file_name": "ADE_train_00011466.jpg", "width": 717, "id": 11465, "height": 512}, {"file_name": "ADE_train_00011467.jpg", "width": 683, "id": 11466, "height": 512}, {"file_name": "ADE_train_00011468.jpg", "width": 770, "id": 11467, "height": 512}, {"file_name": "ADE_train_00011469.jpg", "width": 683, "id": 11468, "height": 512}, {"file_name": "ADE_train_00011470.jpg", "width": 683, "id": 11469, "height": 512}, {"file_name": "ADE_train_00011471.jpg", "width": 681, "id": 11470, "height": 512}, {"file_name": "ADE_train_00011472.jpg", "width": 768, "id": 11471, "height": 512}, {"file_name": "ADE_train_00011473.jpg", "width": 805, "id": 11472, "height": 512}, {"file_name": "ADE_train_00011474.jpg", "width": 683, "id": 11473, "height": 512}, {"file_name": "ADE_train_00011475.jpg", "width": 683, "id": 11474, "height": 512}, {"file_name": "ADE_train_00011476.jpg", "width": 683, "id": 11475, "height": 512}, {"file_name": "ADE_train_00011477.jpg", "width": 682, "id": 11476, "height": 512}, {"file_name": "ADE_train_00011478.jpg", "width": 683, "id": 11477, "height": 512}, {"file_name": "ADE_train_00011479.jpg", "width": 683, "id": 11478, "height": 512}, {"file_name": "ADE_train_00011480.jpg", "width": 683, "id": 11479, "height": 512}, {"file_name": "ADE_train_00011481.jpg", "width": 763, "id": 11480, "height": 512}, {"file_name": "ADE_train_00011482.jpg", "width": 683, "id": 11481, "height": 512}, {"file_name": "ADE_train_00011483.jpg", "width": 682, "id": 11482, "height": 512}, {"file_name": "ADE_train_00011484.jpg", "width": 683, "id": 11483, "height": 512}, {"file_name": "ADE_train_00011485.jpg", "width": 683, "id": 11484, "height": 512}, {"file_name": "ADE_train_00011486.jpg", "width": 683, "id": 11485, "height": 512}, {"file_name": "ADE_train_00011487.jpg", "width": 683, "id": 11486, "height": 512}, {"file_name": "ADE_train_00011488.jpg", "width": 683, "id": 11487, "height": 512}, {"file_name": "ADE_train_00011489.jpg", "width": 683, "id": 11488, "height": 512}, {"file_name": "ADE_train_00011490.jpg", "width": 683, "id": 11489, "height": 512}, {"file_name": "ADE_train_00011491.jpg", "width": 784, "id": 11490, "height": 512}, {"file_name": "ADE_train_00011492.jpg", "width": 683, "id": 11491, "height": 512}, {"file_name": "ADE_train_00011493.jpg", "width": 683, "id": 11492, "height": 512}, {"file_name": "ADE_train_00011494.jpg", "width": 683, "id": 11493, "height": 512}, {"file_name": "ADE_train_00011495.jpg", "width": 768, "id": 11494, "height": 512}, {"file_name": "ADE_train_00011496.jpg", "width": 768, "id": 11495, "height": 512}, {"file_name": "ADE_train_00011497.jpg", "width": 740, "id": 11496, "height": 512}, {"file_name": "ADE_train_00011498.jpg", "width": 768, "id": 11497, "height": 512}, {"file_name": "ADE_train_00011499.jpg", "width": 683, "id": 11498, "height": 512}, {"file_name": "ADE_train_00011500.jpg", "width": 683, "id": 11499, "height": 512}, {"file_name": "ADE_train_00011501.jpg", "width": 683, "id": 11500, "height": 512}, {"file_name": "ADE_train_00011502.jpg", "width": 683, "id": 11501, "height": 512}, {"file_name": "ADE_train_00011503.jpg", "width": 683, "id": 11502, "height": 512}, {"file_name": "ADE_train_00011504.jpg", "width": 1516, "id": 11503, "height": 1516}, {"file_name": "ADE_train_00011505.jpg", "width": 670, "id": 11504, "height": 512}, {"file_name": "ADE_train_00011506.jpg", "width": 768, "id": 11505, "height": 512}, {"file_name": "ADE_train_00011507.jpg", "width": 683, "id": 11506, "height": 512}, {"file_name": "ADE_train_00011508.jpg", "width": 683, "id": 11507, "height": 512}, {"file_name": "ADE_train_00011509.jpg", "width": 683, "id": 11508, "height": 512}, {"file_name": "ADE_train_00011510.jpg", "width": 640, "id": 11509, "height": 512}, {"file_name": "ADE_train_00011511.jpg", "width": 750, "id": 11510, "height": 500}, {"file_name": "ADE_train_00011512.jpg", "width": 414, "id": 11511, "height": 283}, {"file_name": "ADE_train_00011513.jpg", "width": 683, "id": 11512, "height": 512}, {"file_name": "ADE_train_00011514.jpg", "width": 676, "id": 11513, "height": 429}, {"file_name": "ADE_train_00011515.jpg", "width": 356, "id": 11514, "height": 534}, {"file_name": "ADE_train_00011516.jpg", "width": 498, "id": 11515, "height": 330}, {"file_name": "ADE_train_00011517.jpg", "width": 400, "id": 11516, "height": 300}, {"file_name": "ADE_train_00011518.jpg", "width": 320, "id": 11517, "height": 213}, {"file_name": "ADE_train_00011519.jpg", "width": 683, "id": 11518, "height": 512}, {"file_name": "ADE_train_00011520.jpg", "width": 256, "id": 11519, "height": 256}, {"file_name": "ADE_train_00011521.jpg", "width": 683, "id": 11520, "height": 512}, {"file_name": "ADE_train_00011522.jpg", "width": 256, "id": 11521, "height": 256}, {"file_name": "ADE_train_00011523.jpg", "width": 256, "id": 11522, "height": 256}, {"file_name": "ADE_train_00011524.jpg", "width": 256, "id": 11523, "height": 256}, {"file_name": "ADE_train_00011525.jpg", "width": 256, "id": 11524, "height": 256}, {"file_name": "ADE_train_00011526.jpg", "width": 479, "id": 11525, "height": 600}, {"file_name": "ADE_train_00011527.jpg", "width": 256, "id": 11526, "height": 256}, {"file_name": "ADE_train_00011528.jpg", "width": 640, "id": 11527, "height": 480}, {"file_name": "ADE_train_00011529.jpg", "width": 256, "id": 11528, "height": 256}, {"file_name": "ADE_train_00011530.jpg", "width": 256, "id": 11529, "height": 256}, {"file_name": "ADE_train_00011531.jpg", "width": 256, "id": 11530, "height": 256}, {"file_name": "ADE_train_00011532.jpg", "width": 256, "id": 11531, "height": 256}, {"file_name": "ADE_train_00011533.jpg", "width": 256, "id": 11532, "height": 256}, {"file_name": "ADE_train_00011534.jpg", "width": 683, "id": 11533, "height": 512}, {"file_name": "ADE_train_00011535.jpg", "width": 256, "id": 11534, "height": 256}, {"file_name": "ADE_train_00011536.jpg", "width": 450, "id": 11535, "height": 600}, {"file_name": "ADE_train_00011537.jpg", "width": 256, "id": 11536, "height": 256}, {"file_name": "ADE_train_00011538.jpg", "width": 256, "id": 11537, "height": 256}, {"file_name": "ADE_train_00011539.jpg", "width": 256, "id": 11538, "height": 256}, {"file_name": "ADE_train_00011540.jpg", "width": 400, "id": 11539, "height": 300}, {"file_name": "ADE_train_00011541.jpg", "width": 256, "id": 11540, "height": 256}, {"file_name": "ADE_train_00011542.jpg", "width": 683, "id": 11541, "height": 512}, {"file_name": "ADE_train_00011543.jpg", "width": 771, "id": 11542, "height": 512}, {"file_name": "ADE_train_00011544.jpg", "width": 683, "id": 11543, "height": 512}, {"file_name": "ADE_train_00011545.jpg", "width": 765, "id": 11544, "height": 512}, {"file_name": "ADE_train_00011546.jpg", "width": 512, "id": 11545, "height": 632}, {"file_name": "ADE_train_00011547.jpg", "width": 768, "id": 11546, "height": 512}, {"file_name": "ADE_train_00011548.jpg", "width": 699, "id": 11547, "height": 512}, {"file_name": "ADE_train_00011549.jpg", "width": 777, "id": 11548, "height": 512}, {"file_name": "ADE_train_00011550.jpg", "width": 699, "id": 11549, "height": 512}, {"file_name": "ADE_train_00011551.jpg", "width": 780, "id": 11550, "height": 512}, {"file_name": "ADE_train_00011552.jpg", "width": 784, "id": 11551, "height": 512}, {"file_name": "ADE_train_00011553.jpg", "width": 682, "id": 11552, "height": 512}, {"file_name": "ADE_train_00011554.jpg", "width": 683, "id": 11553, "height": 512}, {"file_name": "ADE_train_00011555.jpg", "width": 765, "id": 11554, "height": 512}, {"file_name": "ADE_train_00011556.jpg", "width": 768, "id": 11555, "height": 512}, {"file_name": "ADE_train_00011557.jpg", "width": 512, "id": 11556, "height": 640}, {"file_name": "ADE_train_00011558.jpg", "width": 683, "id": 11557, "height": 512}, {"file_name": "ADE_train_00011559.jpg", "width": 512, "id": 11558, "height": 748}, {"file_name": "ADE_train_00011560.jpg", "width": 752, "id": 11559, "height": 512}, {"file_name": "ADE_train_00011561.jpg", "width": 765, "id": 11560, "height": 512}, {"file_name": "ADE_train_00011562.jpg", "width": 683, "id": 11561, "height": 512}, {"file_name": "ADE_train_00011563.jpg", "width": 683, "id": 11562, "height": 512}, {"file_name": "ADE_train_00011564.jpg", "width": 683, "id": 11563, "height": 512}, {"file_name": "ADE_train_00011565.jpg", "width": 683, "id": 11564, "height": 512}, {"file_name": "ADE_train_00011566.jpg", "width": 639, "id": 11565, "height": 512}, {"file_name": "ADE_train_00011567.jpg", "width": 771, "id": 11566, "height": 512}, {"file_name": "ADE_train_00011568.jpg", "width": 683, "id": 11567, "height": 512}, {"file_name": "ADE_train_00011569.jpg", "width": 768, "id": 11568, "height": 512}, {"file_name": "ADE_train_00011570.jpg", "width": 683, "id": 11569, "height": 512}, {"file_name": "ADE_train_00011571.jpg", "width": 512, "id": 11570, "height": 765}, {"file_name": "ADE_train_00011572.jpg", "width": 768, "id": 11571, "height": 512}, {"file_name": "ADE_train_00011573.jpg", "width": 683, "id": 11572, "height": 512}, {"file_name": "ADE_train_00011574.jpg", "width": 770, "id": 11573, "height": 512}, {"file_name": "ADE_train_00011575.jpg", "width": 683, "id": 11574, "height": 512}, {"file_name": "ADE_train_00011576.jpg", "width": 683, "id": 11575, "height": 512}, {"file_name": "ADE_train_00011577.jpg", "width": 684, "id": 11576, "height": 512}, {"file_name": "ADE_train_00011578.jpg", "width": 765, "id": 11577, "height": 512}, {"file_name": "ADE_train_00011579.jpg", "width": 683, "id": 11578, "height": 512}, {"file_name": "ADE_train_00011580.jpg", "width": 586, "id": 11579, "height": 389}, {"file_name": "ADE_train_00011581.jpg", "width": 682, "id": 11580, "height": 512}, {"file_name": "ADE_train_00011582.jpg", "width": 683, "id": 11581, "height": 512}, {"file_name": "ADE_train_00011583.jpg", "width": 512, "id": 11582, "height": 384}, {"file_name": "ADE_train_00011584.jpg", "width": 512, "id": 11583, "height": 375}, {"file_name": "ADE_train_00011585.jpg", "width": 400, "id": 11584, "height": 205}, {"file_name": "ADE_train_00011586.jpg", "width": 300, "id": 11585, "height": 225}, {"file_name": "ADE_train_00011587.jpg", "width": 320, "id": 11586, "height": 240}, {"file_name": "ADE_train_00011588.jpg", "width": 508, "id": 11587, "height": 336}, {"file_name": "ADE_train_00011589.jpg", "width": 300, "id": 11588, "height": 402}, {"file_name": "ADE_train_00011590.jpg", "width": 640, "id": 11589, "height": 480}, {"file_name": "ADE_train_00011591.jpg", "width": 640, "id": 11590, "height": 480}, {"file_name": "ADE_train_00011592.jpg", "width": 513, "id": 11591, "height": 415}, {"file_name": "ADE_train_00011593.jpg", "width": 637, "id": 11592, "height": 425}, {"file_name": "ADE_train_00011594.jpg", "width": 320, "id": 11593, "height": 240}, {"file_name": "ADE_train_00011595.jpg", "width": 275, "id": 11594, "height": 200}, {"file_name": "ADE_train_00011596.jpg", "width": 320, "id": 11595, "height": 240}, {"file_name": "ADE_train_00011597.jpg", "width": 625, "id": 11596, "height": 469}, {"file_name": "ADE_train_00011598.jpg", "width": 585, "id": 11597, "height": 462}, {"file_name": "ADE_train_00011599.jpg", "width": 640, "id": 11598, "height": 480}, {"file_name": "ADE_train_00011600.jpg", "width": 397, "id": 11599, "height": 604}, {"file_name": "ADE_train_00011601.jpg", "width": 360, "id": 11600, "height": 480}, {"file_name": "ADE_train_00011602.jpg", "width": 600, "id": 11601, "height": 450}, {"file_name": "ADE_train_00011603.jpg", "width": 600, "id": 11602, "height": 449}, {"file_name": "ADE_train_00011604.jpg", "width": 300, "id": 11603, "height": 300}, {"file_name": "ADE_train_00011605.jpg", "width": 683, "id": 11604, "height": 512}, {"file_name": "ADE_train_00011606.jpg", "width": 640, "id": 11605, "height": 512}, {"file_name": "ADE_train_00011607.jpg", "width": 683, "id": 11606, "height": 512}, {"file_name": "ADE_train_00011608.jpg", "width": 600, "id": 11607, "height": 396}, {"file_name": "ADE_train_00011609.jpg", "width": 683, "id": 11608, "height": 512}, {"file_name": "ADE_train_00011610.jpg", "width": 372, "id": 11609, "height": 433}, {"file_name": "ADE_train_00011611.jpg", "width": 280, "id": 11610, "height": 420}, {"file_name": "ADE_train_00011612.jpg", "width": 640, "id": 11611, "height": 512}, {"file_name": "ADE_train_00011613.jpg", "width": 375, "id": 11612, "height": 500}, {"file_name": "ADE_train_00011614.jpg", "width": 480, "id": 11613, "height": 640}, {"file_name": "ADE_train_00011615.jpg", "width": 590, "id": 11614, "height": 512}, {"file_name": "ADE_train_00011616.jpg", "width": 273, "id": 11615, "height": 341}, {"file_name": "ADE_train_00011617.jpg", "width": 430, "id": 11616, "height": 281}, {"file_name": "ADE_train_00011618.jpg", "width": 683, "id": 11617, "height": 512}, {"file_name": "ADE_train_00011619.jpg", "width": 300, "id": 11618, "height": 225}, {"file_name": "ADE_train_00011620.jpg", "width": 683, "id": 11619, "height": 512}, {"file_name": "ADE_train_00011621.jpg", "width": 768, "id": 11620, "height": 512}, {"file_name": "ADE_train_00011622.jpg", "width": 436, "id": 11621, "height": 273}, {"file_name": "ADE_train_00011623.jpg", "width": 280, "id": 11622, "height": 210}, {"file_name": "ADE_train_00011624.jpg", "width": 326, "id": 11623, "height": 245}, {"file_name": "ADE_train_00011625.jpg", "width": 683, "id": 11624, "height": 512}, {"file_name": "ADE_train_00011626.jpg", "width": 440, "id": 11625, "height": 300}, {"file_name": "ADE_train_00011627.jpg", "width": 682, "id": 11626, "height": 512}, {"file_name": "ADE_train_00011628.jpg", "width": 600, "id": 11627, "height": 450}, {"file_name": "ADE_train_00011629.jpg", "width": 773, "id": 11628, "height": 512}, {"file_name": "ADE_train_00011630.jpg", "width": 640, "id": 11629, "height": 480}, {"file_name": "ADE_train_00011631.jpg", "width": 275, "id": 11630, "height": 206}, {"file_name": "ADE_train_00011632.jpg", "width": 683, "id": 11631, "height": 512}, {"file_name": "ADE_train_00011633.jpg", "width": 683, "id": 11632, "height": 512}, {"file_name": "ADE_train_00011634.jpg", "width": 770, "id": 11633, "height": 512}, {"file_name": "ADE_train_00011635.jpg", "width": 300, "id": 11634, "height": 225}, {"file_name": "ADE_train_00011636.jpg", "width": 450, "id": 11635, "height": 338}, {"file_name": "ADE_train_00011637.jpg", "width": 446, "id": 11636, "height": 265}, {"file_name": "ADE_train_00011638.jpg", "width": 409, "id": 11637, "height": 230}, {"file_name": "ADE_train_00011639.jpg", "width": 365, "id": 11638, "height": 490}, {"file_name": "ADE_train_00011640.jpg", "width": 290, "id": 11639, "height": 217}, {"file_name": "ADE_train_00011641.jpg", "width": 296, "id": 11640, "height": 222}, {"file_name": "ADE_train_00011642.jpg", "width": 348, "id": 11641, "height": 232}, {"file_name": "ADE_train_00011643.jpg", "width": 628, "id": 11642, "height": 512}, {"file_name": "ADE_train_00011644.jpg", "width": 270, "id": 11643, "height": 396}, {"file_name": "ADE_train_00011645.jpg", "width": 513, "id": 11644, "height": 332}, {"file_name": "ADE_train_00011646.jpg", "width": 300, "id": 11645, "height": 200}, {"file_name": "ADE_train_00011647.jpg", "width": 500, "id": 11646, "height": 342}, {"file_name": "ADE_train_00011648.jpg", "width": 410, "id": 11647, "height": 250}, {"file_name": "ADE_train_00011649.jpg", "width": 416, "id": 11648, "height": 300}, {"file_name": "ADE_train_00011650.jpg", "width": 200, "id": 11649, "height": 215}, {"file_name": "ADE_train_00011651.jpg", "width": 683, "id": 11650, "height": 512}, {"file_name": "ADE_train_00011652.jpg", "width": 683, "id": 11651, "height": 512}, {"file_name": "ADE_train_00011653.jpg", "width": 536, "id": 11652, "height": 377}, {"file_name": "ADE_train_00011654.jpg", "width": 498, "id": 11653, "height": 286}, {"file_name": "ADE_train_00011655.jpg", "width": 640, "id": 11654, "height": 480}, {"file_name": "ADE_train_00011656.jpg", "width": 683, "id": 11655, "height": 512}, {"file_name": "ADE_train_00011657.jpg", "width": 322, "id": 11656, "height": 242}, {"file_name": "ADE_train_00011658.jpg", "width": 360, "id": 11657, "height": 205}, {"file_name": "ADE_train_00011659.jpg", "width": 683, "id": 11658, "height": 512}, {"file_name": "ADE_train_00011660.jpg", "width": 683, "id": 11659, "height": 512}, {"file_name": "ADE_train_00011661.jpg", "width": 322, "id": 11660, "height": 242}, {"file_name": "ADE_train_00011662.jpg", "width": 733, "id": 11661, "height": 512}, {"file_name": "ADE_train_00011663.jpg", "width": 640, "id": 11662, "height": 480}, {"file_name": "ADE_train_00011664.jpg", "width": 683, "id": 11663, "height": 512}, {"file_name": "ADE_train_00011665.jpg", "width": 683, "id": 11664, "height": 512}, {"file_name": "ADE_train_00011666.jpg", "width": 683, "id": 11665, "height": 512}, {"file_name": "ADE_train_00011667.jpg", "width": 333, "id": 11666, "height": 250}, {"file_name": "ADE_train_00011668.jpg", "width": 683, "id": 11667, "height": 512}, {"file_name": "ADE_train_00011669.jpg", "width": 683, "id": 11668, "height": 512}, {"file_name": "ADE_train_00011670.jpg", "width": 683, "id": 11669, "height": 512}, {"file_name": "ADE_train_00011671.jpg", "width": 512, "id": 11670, "height": 683}, {"file_name": "ADE_train_00011672.jpg", "width": 683, "id": 11671, "height": 512}, {"file_name": "ADE_train_00011673.jpg", "width": 683, "id": 11672, "height": 512}, {"file_name": "ADE_train_00011674.jpg", "width": 683, "id": 11673, "height": 512}, {"file_name": "ADE_train_00011675.jpg", "width": 512, "id": 11674, "height": 683}, {"file_name": "ADE_train_00011676.jpg", "width": 683, "id": 11675, "height": 512}, {"file_name": "ADE_train_00011677.jpg", "width": 683, "id": 11676, "height": 512}, {"file_name": "ADE_train_00011678.jpg", "width": 683, "id": 11677, "height": 512}, {"file_name": "ADE_train_00011679.jpg", "width": 683, "id": 11678, "height": 512}, {"file_name": "ADE_train_00011680.jpg", "width": 683, "id": 11679, "height": 512}, {"file_name": "ADE_train_00011681.jpg", "width": 683, "id": 11680, "height": 512}, {"file_name": "ADE_train_00011682.jpg", "width": 683, "id": 11681, "height": 512}, {"file_name": "ADE_train_00011683.jpg", "width": 680, "id": 11682, "height": 512}, {"file_name": "ADE_train_00011684.jpg", "width": 500, "id": 11683, "height": 375}, {"file_name": "ADE_train_00011685.jpg", "width": 300, "id": 11684, "height": 200}, {"file_name": "ADE_train_00011686.jpg", "width": 500, "id": 11685, "height": 333}, {"file_name": "ADE_train_00011687.jpg", "width": 677, "id": 11686, "height": 512}, {"file_name": "ADE_train_00011688.jpg", "width": 250, "id": 11687, "height": 188}, {"file_name": "ADE_train_00011689.jpg", "width": 420, "id": 11688, "height": 436}, {"file_name": "ADE_train_00011690.jpg", "width": 640, "id": 11689, "height": 480}, {"file_name": "ADE_train_00011691.jpg", "width": 640, "id": 11690, "height": 431}, {"file_name": "ADE_train_00011692.jpg", "width": 323, "id": 11691, "height": 257}, {"file_name": "ADE_train_00011693.jpg", "width": 600, "id": 11692, "height": 450}, {"file_name": "ADE_train_00011694.jpg", "width": 400, "id": 11693, "height": 308}, {"file_name": "ADE_train_00011695.jpg", "width": 632, "id": 11694, "height": 512}, {"file_name": "ADE_train_00011696.jpg", "width": 683, "id": 11695, "height": 512}, {"file_name": "ADE_train_00011697.jpg", "width": 683, "id": 11696, "height": 512}, {"file_name": "ADE_train_00011698.jpg", "width": 768, "id": 11697, "height": 512}, {"file_name": "ADE_train_00011699.jpg", "width": 630, "id": 11698, "height": 462}, {"file_name": "ADE_train_00011700.jpg", "width": 386, "id": 11699, "height": 213}, {"file_name": "ADE_train_00011701.jpg", "width": 683, "id": 11700, "height": 512}, {"file_name": "ADE_train_00011702.jpg", "width": 640, "id": 11701, "height": 480}, {"file_name": "ADE_train_00011703.jpg", "width": 300, "id": 11702, "height": 225}, {"file_name": "ADE_train_00011704.jpg", "width": 631, "id": 11703, "height": 480}, {"file_name": "ADE_train_00011705.jpg", "width": 400, "id": 11704, "height": 300}, {"file_name": "ADE_train_00011706.jpg", "width": 300, "id": 11705, "height": 196}, {"file_name": "ADE_train_00011707.jpg", "width": 683, "id": 11706, "height": 512}, {"file_name": "ADE_train_00011708.jpg", "width": 640, "id": 11707, "height": 480}, {"file_name": "ADE_train_00011709.jpg", "width": 446, "id": 11708, "height": 276}, {"file_name": "ADE_train_00011710.jpg", "width": 274, "id": 11709, "height": 205}, {"file_name": "ADE_train_00011711.jpg", "width": 512, "id": 11710, "height": 531}, {"file_name": "ADE_train_00011712.jpg", "width": 640, "id": 11711, "height": 428}, {"file_name": "ADE_train_00011713.jpg", "width": 300, "id": 11712, "height": 244}, {"file_name": "ADE_train_00011714.jpg", "width": 320, "id": 11713, "height": 289}, {"file_name": "ADE_train_00011715.jpg", "width": 400, "id": 11714, "height": 266}, {"file_name": "ADE_train_00011716.jpg", "width": 320, "id": 11715, "height": 240}, {"file_name": "ADE_train_00011717.jpg", "width": 564, "id": 11716, "height": 512}, {"file_name": "ADE_train_00011718.jpg", "width": 512, "id": 11717, "height": 640}, {"file_name": "ADE_train_00011719.jpg", "width": 683, "id": 11718, "height": 512}, {"file_name": "ADE_train_00011720.jpg", "width": 240, "id": 11719, "height": 320}, {"file_name": "ADE_train_00011721.jpg", "width": 683, "id": 11720, "height": 512}, {"file_name": "ADE_train_00011722.jpg", "width": 320, "id": 11721, "height": 240}, {"file_name": "ADE_train_00011723.jpg", "width": 683, "id": 11722, "height": 512}, {"file_name": "ADE_train_00011724.jpg", "width": 400, "id": 11723, "height": 300}, {"file_name": "ADE_train_00011725.jpg", "width": 629, "id": 11724, "height": 491}, {"file_name": "ADE_train_00011726.jpg", "width": 218, "id": 11725, "height": 216}, {"file_name": "ADE_train_00011727.jpg", "width": 350, "id": 11726, "height": 230}, {"file_name": "ADE_train_00011728.jpg", "width": 372, "id": 11727, "height": 508}, {"file_name": "ADE_train_00011729.jpg", "width": 500, "id": 11728, "height": 336}, {"file_name": "ADE_train_00011730.jpg", "width": 1055, "id": 11729, "height": 512}, {"file_name": "ADE_train_00011731.jpg", "width": 300, "id": 11730, "height": 277}, {"file_name": "ADE_train_00011732.jpg", "width": 410, "id": 11731, "height": 276}, {"file_name": "ADE_train_00011733.jpg", "width": 504, "id": 11732, "height": 337}, {"file_name": "ADE_train_00011734.jpg", "width": 311, "id": 11733, "height": 336}, {"file_name": "ADE_train_00011735.jpg", "width": 640, "id": 11734, "height": 480}, {"file_name": "ADE_train_00011736.jpg", "width": 302, "id": 11735, "height": 227}, {"file_name": "ADE_train_00011737.jpg", "width": 300, "id": 11736, "height": 225}, {"file_name": "ADE_train_00011738.jpg", "width": 300, "id": 11737, "height": 201}, {"file_name": "ADE_train_00011739.jpg", "width": 683, "id": 11738, "height": 512}, {"file_name": "ADE_train_00011740.jpg", "width": 512, "id": 11739, "height": 683}, {"file_name": "ADE_train_00011741.jpg", "width": 240, "id": 11740, "height": 320}, {"file_name": "ADE_train_00011742.jpg", "width": 683, "id": 11741, "height": 512}, {"file_name": "ADE_train_00011743.jpg", "width": 512, "id": 11742, "height": 683}, {"file_name": "ADE_train_00011744.jpg", "width": 354, "id": 11743, "height": 352}, {"file_name": "ADE_train_00011745.jpg", "width": 449, "id": 11744, "height": 600}, {"file_name": "ADE_train_00011746.jpg", "width": 512, "id": 11745, "height": 683}, {"file_name": "ADE_train_00011747.jpg", "width": 631, "id": 11746, "height": 512}, {"file_name": "ADE_train_00011748.jpg", "width": 375, "id": 11747, "height": 500}, {"file_name": "ADE_train_00011749.jpg", "width": 333, "id": 11748, "height": 500}, {"file_name": "ADE_train_00011750.jpg", "width": 333, "id": 11749, "height": 500}, {"file_name": "ADE_train_00011751.jpg", "width": 375, "id": 11750, "height": 500}, {"file_name": "ADE_train_00011752.jpg", "width": 412, "id": 11751, "height": 550}, {"file_name": "ADE_train_00011753.jpg", "width": 550, "id": 11752, "height": 365}, {"file_name": "ADE_train_00011754.jpg", "width": 500, "id": 11753, "height": 334}, {"file_name": "ADE_train_00011755.jpg", "width": 257, "id": 11754, "height": 284}, {"file_name": "ADE_train_00011756.jpg", "width": 360, "id": 11755, "height": 239}, {"file_name": "ADE_train_00011757.jpg", "width": 242, "id": 11756, "height": 294}, {"file_name": "ADE_train_00011758.jpg", "width": 250, "id": 11757, "height": 333}, {"file_name": "ADE_train_00011759.jpg", "width": 270, "id": 11758, "height": 203}, {"file_name": "ADE_train_00011760.jpg", "width": 240, "id": 11759, "height": 296}, {"file_name": "ADE_train_00011761.jpg", "width": 512, "id": 11760, "height": 683}, {"file_name": "ADE_train_00011762.jpg", "width": 200, "id": 11761, "height": 244}, {"file_name": "ADE_train_00011763.jpg", "width": 1000, "id": 11762, "height": 327}, {"file_name": "ADE_train_00011764.jpg", "width": 363, "id": 11763, "height": 220}, {"file_name": "ADE_train_00011765.jpg", "width": 500, "id": 11764, "height": 333}, {"file_name": "ADE_train_00011766.jpg", "width": 717, "id": 11765, "height": 512}, {"file_name": "ADE_train_00011767.jpg", "width": 300, "id": 11766, "height": 297}, {"file_name": "ADE_train_00011768.jpg", "width": 640, "id": 11767, "height": 434}, {"file_name": "ADE_train_00011769.jpg", "width": 768, "id": 11768, "height": 512}, {"file_name": "ADE_train_00011770.jpg", "width": 683, "id": 11769, "height": 512}, {"file_name": "ADE_train_00011771.jpg", "width": 260, "id": 11770, "height": 243}, {"file_name": "ADE_train_00011772.jpg", "width": 355, "id": 11771, "height": 237}, {"file_name": "ADE_train_00011773.jpg", "width": 300, "id": 11772, "height": 222}, {"file_name": "ADE_train_00011774.jpg", "width": 283, "id": 11773, "height": 192}, {"file_name": "ADE_train_00011775.jpg", "width": 350, "id": 11774, "height": 283}, {"file_name": "ADE_train_00011776.jpg", "width": 350, "id": 11775, "height": 298}, {"file_name": "ADE_train_00011777.jpg", "width": 350, "id": 11776, "height": 263}, {"file_name": "ADE_train_00011778.jpg", "width": 576, "id": 11777, "height": 432}, {"file_name": "ADE_train_00011779.jpg", "width": 576, "id": 11778, "height": 432}, {"file_name": "ADE_train_00011780.jpg", "width": 683, "id": 11779, "height": 512}, {"file_name": "ADE_train_00011781.jpg", "width": 640, "id": 11780, "height": 480}, {"file_name": "ADE_train_00011782.jpg", "width": 683, "id": 11781, "height": 512}, {"file_name": "ADE_train_00011783.jpg", "width": 665, "id": 11782, "height": 440}, {"file_name": "ADE_train_00011784.jpg", "width": 640, "id": 11783, "height": 480}, {"file_name": "ADE_train_00011785.jpg", "width": 665, "id": 11784, "height": 442}, {"file_name": "ADE_train_00011786.jpg", "width": 384, "id": 11785, "height": 260}, {"file_name": "ADE_train_00011787.jpg", "width": 683, "id": 11786, "height": 512}, {"file_name": "ADE_train_00011788.jpg", "width": 384, "id": 11787, "height": 259}, {"file_name": "ADE_train_00011789.jpg", "width": 274, "id": 11788, "height": 221}, {"file_name": "ADE_train_00011790.jpg", "width": 600, "id": 11789, "height": 450}, {"file_name": "ADE_train_00011791.jpg", "width": 320, "id": 11790, "height": 240}, {"file_name": "ADE_train_00011792.jpg", "width": 683, "id": 11791, "height": 512}, {"file_name": "ADE_train_00011793.jpg", "width": 320, "id": 11792, "height": 240}, {"file_name": "ADE_train_00011794.jpg", "width": 240, "id": 11793, "height": 240}, {"file_name": "ADE_train_00011795.jpg", "width": 360, "id": 11794, "height": 239}, {"file_name": "ADE_train_00011796.jpg", "width": 863, "id": 11795, "height": 512}, {"file_name": "ADE_train_00011797.jpg", "width": 400, "id": 11796, "height": 264}, {"file_name": "ADE_train_00011798.jpg", "width": 224, "id": 11797, "height": 300}, {"file_name": "ADE_train_00011799.jpg", "width": 480, "id": 11798, "height": 319}, {"file_name": "ADE_train_00011800.jpg", "width": 281, "id": 11799, "height": 209}, {"file_name": "ADE_train_00011801.jpg", "width": 400, "id": 11800, "height": 268}, {"file_name": "ADE_train_00011802.jpg", "width": 350, "id": 11801, "height": 263}, {"file_name": "ADE_train_00011803.jpg", "width": 683, "id": 11802, "height": 512}, {"file_name": "ADE_train_00011804.jpg", "width": 683, "id": 11803, "height": 512}, {"file_name": "ADE_train_00011805.jpg", "width": 683, "id": 11804, "height": 512}, {"file_name": "ADE_train_00011806.jpg", "width": 327, "id": 11805, "height": 245}, {"file_name": "ADE_train_00011807.jpg", "width": 288, "id": 11806, "height": 216}, {"file_name": "ADE_train_00011808.jpg", "width": 683, "id": 11807, "height": 512}, {"file_name": "ADE_train_00011809.jpg", "width": 400, "id": 11808, "height": 300}, {"file_name": "ADE_train_00011810.jpg", "width": 683, "id": 11809, "height": 512}, {"file_name": "ADE_train_00011811.jpg", "width": 683, "id": 11810, "height": 512}, {"file_name": "ADE_train_00011812.jpg", "width": 512, "id": 11811, "height": 683}, {"file_name": "ADE_train_00011813.jpg", "width": 768, "id": 11812, "height": 512}, {"file_name": "ADE_train_00011814.jpg", "width": 600, "id": 11813, "height": 402}, {"file_name": "ADE_train_00011815.jpg", "width": 505, "id": 11814, "height": 378}, {"file_name": "ADE_train_00011816.jpg", "width": 600, "id": 11815, "height": 451}, {"file_name": "ADE_train_00011817.jpg", "width": 600, "id": 11816, "height": 355}, {"file_name": "ADE_train_00011818.jpg", "width": 683, "id": 11817, "height": 512}, {"file_name": "ADE_train_00011819.jpg", "width": 683, "id": 11818, "height": 512}, {"file_name": "ADE_train_00011820.jpg", "width": 683, "id": 11819, "height": 512}, {"file_name": "ADE_train_00011821.jpg", "width": 500, "id": 11820, "height": 331}, {"file_name": "ADE_train_00011822.jpg", "width": 580, "id": 11821, "height": 326}, {"file_name": "ADE_train_00011823.jpg", "width": 550, "id": 11822, "height": 412}, {"file_name": "ADE_train_00011824.jpg", "width": 576, "id": 11823, "height": 385}, {"file_name": "ADE_train_00011825.jpg", "width": 640, "id": 11824, "height": 480}, {"file_name": "ADE_train_00011826.jpg", "width": 451, "id": 11825, "height": 300}, {"file_name": "ADE_train_00011827.jpg", "width": 400, "id": 11826, "height": 600}, {"file_name": "ADE_train_00011828.jpg", "width": 680, "id": 11827, "height": 484}, {"file_name": "ADE_train_00011829.jpg", "width": 288, "id": 11828, "height": 216}, {"file_name": "ADE_train_00011830.jpg", "width": 400, "id": 11829, "height": 300}, {"file_name": "ADE_train_00011831.jpg", "width": 400, "id": 11830, "height": 301}, {"file_name": "ADE_train_00011832.jpg", "width": 683, "id": 11831, "height": 512}, {"file_name": "ADE_train_00011833.jpg", "width": 314, "id": 11832, "height": 226}, {"file_name": "ADE_train_00011834.jpg", "width": 398, "id": 11833, "height": 600}, {"file_name": "ADE_train_00011835.jpg", "width": 400, "id": 11834, "height": 300}, {"file_name": "ADE_train_00011836.jpg", "width": 707, "id": 11835, "height": 475}, {"file_name": "ADE_train_00011837.jpg", "width": 512, "id": 11836, "height": 683}, {"file_name": "ADE_train_00011838.jpg", "width": 512, "id": 11837, "height": 683}, {"file_name": "ADE_train_00011839.jpg", "width": 512, "id": 11838, "height": 683}, {"file_name": "ADE_train_00011840.jpg", "width": 222, "id": 11839, "height": 270}, {"file_name": "ADE_train_00011841.jpg", "width": 683, "id": 11840, "height": 512}, {"file_name": "ADE_train_00011842.jpg", "width": 683, "id": 11841, "height": 512}, {"file_name": "ADE_train_00011843.jpg", "width": 640, "id": 11842, "height": 480}, {"file_name": "ADE_train_00011844.jpg", "width": 512, "id": 11843, "height": 683}, {"file_name": "ADE_train_00011845.jpg", "width": 350, "id": 11844, "height": 234}, {"file_name": "ADE_train_00011846.jpg", "width": 683, "id": 11845, "height": 512}, {"file_name": "ADE_train_00011847.jpg", "width": 512, "id": 11846, "height": 683}, {"file_name": "ADE_train_00011848.jpg", "width": 528, "id": 11847, "height": 435}, {"file_name": "ADE_train_00011849.jpg", "width": 784, "id": 11848, "height": 512}, {"file_name": "ADE_train_00011850.jpg", "width": 306, "id": 11849, "height": 394}, {"file_name": "ADE_train_00011851.jpg", "width": 683, "id": 11850, "height": 512}, {"file_name": "ADE_train_00011852.jpg", "width": 300, "id": 11851, "height": 221}, {"file_name": "ADE_train_00011853.jpg", "width": 683, "id": 11852, "height": 512}, {"file_name": "ADE_train_00011854.jpg", "width": 400, "id": 11853, "height": 266}, {"file_name": "ADE_train_00011855.jpg", "width": 395, "id": 11854, "height": 269}, {"file_name": "ADE_train_00011856.jpg", "width": 320, "id": 11855, "height": 221}, {"file_name": "ADE_train_00011857.jpg", "width": 250, "id": 11856, "height": 313}, {"file_name": "ADE_train_00011858.jpg", "width": 300, "id": 11857, "height": 225}, {"file_name": "ADE_train_00011859.jpg", "width": 260, "id": 11858, "height": 255}, {"file_name": "ADE_train_00011860.jpg", "width": 300, "id": 11859, "height": 225}, {"file_name": "ADE_train_00011861.jpg", "width": 298, "id": 11860, "height": 257}, {"file_name": "ADE_train_00011862.jpg", "width": 288, "id": 11861, "height": 216}, {"file_name": "ADE_train_00011863.jpg", "width": 512, "id": 11862, "height": 778}, {"file_name": "ADE_train_00011864.jpg", "width": 512, "id": 11863, "height": 768}, {"file_name": "ADE_train_00011865.jpg", "width": 300, "id": 11864, "height": 225}, {"file_name": "ADE_train_00011866.jpg", "width": 400, "id": 11865, "height": 257}, {"file_name": "ADE_train_00011867.jpg", "width": 250, "id": 11866, "height": 273}, {"file_name": "ADE_train_00011868.jpg", "width": 500, "id": 11867, "height": 667}, {"file_name": "ADE_train_00011869.jpg", "width": 727, "id": 11868, "height": 512}, {"file_name": "ADE_train_00011870.jpg", "width": 459, "id": 11869, "height": 295}, {"file_name": "ADE_train_00011871.jpg", "width": 450, "id": 11870, "height": 600}, {"file_name": "ADE_train_00011872.jpg", "width": 581, "id": 11871, "height": 512}, {"file_name": "ADE_train_00011873.jpg", "width": 512, "id": 11872, "height": 683}, {"file_name": "ADE_train_00011874.jpg", "width": 683, "id": 11873, "height": 512}, {"file_name": "ADE_train_00011875.jpg", "width": 300, "id": 11874, "height": 225}, {"file_name": "ADE_train_00011876.jpg", "width": 683, "id": 11875, "height": 512}, {"file_name": "ADE_train_00011877.jpg", "width": 925, "id": 11876, "height": 512}, {"file_name": "ADE_train_00011878.jpg", "width": 683, "id": 11877, "height": 512}, {"file_name": "ADE_train_00011879.jpg", "width": 683, "id": 11878, "height": 512}, {"file_name": "ADE_train_00011880.jpg", "width": 320, "id": 11879, "height": 210}, {"file_name": "ADE_train_00011881.jpg", "width": 300, "id": 11880, "height": 225}, {"file_name": "ADE_train_00011882.jpg", "width": 683, "id": 11881, "height": 512}, {"file_name": "ADE_train_00011883.jpg", "width": 300, "id": 11882, "height": 220}, {"file_name": "ADE_train_00011884.jpg", "width": 308, "id": 11883, "height": 231}, {"file_name": "ADE_train_00011885.jpg", "width": 692, "id": 11884, "height": 512}, {"file_name": "ADE_train_00011886.jpg", "width": 300, "id": 11885, "height": 225}, {"file_name": "ADE_train_00011887.jpg", "width": 683, "id": 11886, "height": 512}, {"file_name": "ADE_train_00011888.jpg", "width": 300, "id": 11887, "height": 225}, {"file_name": "ADE_train_00011889.jpg", "width": 768, "id": 11888, "height": 512}, {"file_name": "ADE_train_00011890.jpg", "width": 382, "id": 11889, "height": 340}, {"file_name": "ADE_train_00011891.jpg", "width": 683, "id": 11890, "height": 512}, {"file_name": "ADE_train_00011892.jpg", "width": 640, "id": 11891, "height": 427}, {"file_name": "ADE_train_00011893.jpg", "width": 512, "id": 11892, "height": 764}, {"file_name": "ADE_train_00011894.jpg", "width": 350, "id": 11893, "height": 234}, {"file_name": "ADE_train_00011895.jpg", "width": 694, "id": 11894, "height": 512}, {"file_name": "ADE_train_00011896.jpg", "width": 794, "id": 11895, "height": 512}, {"file_name": "ADE_train_00011897.jpg", "width": 683, "id": 11896, "height": 512}, {"file_name": "ADE_train_00011898.jpg", "width": 683, "id": 11897, "height": 512}, {"file_name": "ADE_train_00011899.jpg", "width": 683, "id": 11898, "height": 512}, {"file_name": "ADE_train_00011900.jpg", "width": 684, "id": 11899, "height": 512}, {"file_name": "ADE_train_00011901.jpg", "width": 691, "id": 11900, "height": 512}, {"file_name": "ADE_train_00011902.jpg", "width": 764, "id": 11901, "height": 512}, {"file_name": "ADE_train_00011903.jpg", "width": 775, "id": 11902, "height": 512}, {"file_name": "ADE_train_00011904.jpg", "width": 280, "id": 11903, "height": 225}, {"file_name": "ADE_train_00011905.jpg", "width": 291, "id": 11904, "height": 225}, {"file_name": "ADE_train_00011906.jpg", "width": 770, "id": 11905, "height": 512}, {"file_name": "ADE_train_00011907.jpg", "width": 770, "id": 11906, "height": 512}, {"file_name": "ADE_train_00011908.jpg", "width": 512, "id": 11907, "height": 683}, {"file_name": "ADE_train_00011909.jpg", "width": 492, "id": 11908, "height": 344}, {"file_name": "ADE_train_00011910.jpg", "width": 683, "id": 11909, "height": 512}, {"file_name": "ADE_train_00011911.jpg", "width": 721, "id": 11910, "height": 512}, {"file_name": "ADE_train_00011912.jpg", "width": 683, "id": 11911, "height": 512}, {"file_name": "ADE_train_00011913.jpg", "width": 512, "id": 11912, "height": 683}, {"file_name": "ADE_train_00011914.jpg", "width": 512, "id": 11913, "height": 683}, {"file_name": "ADE_train_00011915.jpg", "width": 512, "id": 11914, "height": 683}, {"file_name": "ADE_train_00011916.jpg", "width": 768, "id": 11915, "height": 512}, {"file_name": "ADE_train_00011917.jpg", "width": 683, "id": 11916, "height": 512}, {"file_name": "ADE_train_00011918.jpg", "width": 683, "id": 11917, "height": 512}, {"file_name": "ADE_train_00011919.jpg", "width": 300, "id": 11918, "height": 240}, {"file_name": "ADE_train_00011920.jpg", "width": 300, "id": 11919, "height": 267}, {"file_name": "ADE_train_00011921.jpg", "width": 684, "id": 11920, "height": 512}, {"file_name": "ADE_train_00011922.jpg", "width": 683, "id": 11921, "height": 512}, {"file_name": "ADE_train_00011923.jpg", "width": 772, "id": 11922, "height": 512}, {"file_name": "ADE_train_00011924.jpg", "width": 550, "id": 11923, "height": 400}, {"file_name": "ADE_train_00011925.jpg", "width": 683, "id": 11924, "height": 512}, {"file_name": "ADE_train_00011926.jpg", "width": 512, "id": 11925, "height": 683}, {"file_name": "ADE_train_00011927.jpg", "width": 244, "id": 11926, "height": 360}, {"file_name": "ADE_train_00011928.jpg", "width": 300, "id": 11927, "height": 225}, {"file_name": "ADE_train_00011929.jpg", "width": 683, "id": 11928, "height": 512}, {"file_name": "ADE_train_00011930.jpg", "width": 765, "id": 11929, "height": 512}, {"file_name": "ADE_train_00011931.jpg", "width": 683, "id": 11930, "height": 512}, {"file_name": "ADE_train_00011932.jpg", "width": 683, "id": 11931, "height": 512}, {"file_name": "ADE_train_00011933.jpg", "width": 400, "id": 11932, "height": 400}, {"file_name": "ADE_train_00011934.jpg", "width": 275, "id": 11933, "height": 206}, {"file_name": "ADE_train_00011935.jpg", "width": 300, "id": 11934, "height": 228}, {"file_name": "ADE_train_00011936.jpg", "width": 721, "id": 11935, "height": 512}, {"file_name": "ADE_train_00011937.jpg", "width": 400, "id": 11936, "height": 316}, {"file_name": "ADE_train_00011938.jpg", "width": 336, "id": 11937, "height": 220}, {"file_name": "ADE_train_00011939.jpg", "width": 338, "id": 11938, "height": 257}, {"file_name": "ADE_train_00011940.jpg", "width": 338, "id": 11939, "height": 257}, {"file_name": "ADE_train_00011941.jpg", "width": 590, "id": 11940, "height": 299}, {"file_name": "ADE_train_00011942.jpg", "width": 324, "id": 11941, "height": 243}, {"file_name": "ADE_train_00011943.jpg", "width": 338, "id": 11942, "height": 257}, {"file_name": "ADE_train_00011944.jpg", "width": 256, "id": 11943, "height": 256}, {"file_name": "ADE_train_00011945.jpg", "width": 256, "id": 11944, "height": 256}, {"file_name": "ADE_train_00011946.jpg", "width": 256, "id": 11945, "height": 256}, {"file_name": "ADE_train_00011947.jpg", "width": 256, "id": 11946, "height": 256}, {"file_name": "ADE_train_00011948.jpg", "width": 256, "id": 11947, "height": 256}, {"file_name": "ADE_train_00011949.jpg", "width": 256, "id": 11948, "height": 256}, {"file_name": "ADE_train_00011950.jpg", "width": 256, "id": 11949, "height": 256}, {"file_name": "ADE_train_00011951.jpg", "width": 256, "id": 11950, "height": 256}, {"file_name": "ADE_train_00011952.jpg", "width": 256, "id": 11951, "height": 256}, {"file_name": "ADE_train_00011953.jpg", "width": 256, "id": 11952, "height": 256}, {"file_name": "ADE_train_00011954.jpg", "width": 256, "id": 11953, "height": 256}, {"file_name": "ADE_train_00011955.jpg", "width": 256, "id": 11954, "height": 256}, {"file_name": "ADE_train_00011956.jpg", "width": 256, "id": 11955, "height": 256}, {"file_name": "ADE_train_00011957.jpg", "width": 256, "id": 11956, "height": 256}, {"file_name": "ADE_train_00011958.jpg", "width": 256, "id": 11957, "height": 256}, {"file_name": "ADE_train_00011959.jpg", "width": 256, "id": 11958, "height": 256}, {"file_name": "ADE_train_00011960.jpg", "width": 256, "id": 11959, "height": 256}, {"file_name": "ADE_train_00011961.jpg", "width": 256, "id": 11960, "height": 256}, {"file_name": "ADE_train_00011962.jpg", "width": 256, "id": 11961, "height": 256}, {"file_name": "ADE_train_00011963.jpg", "width": 256, "id": 11962, "height": 256}, {"file_name": "ADE_train_00011964.jpg", "width": 256, "id": 11963, "height": 256}, {"file_name": "ADE_train_00011965.jpg", "width": 256, "id": 11964, "height": 256}, {"file_name": "ADE_train_00011966.jpg", "width": 256, "id": 11965, "height": 256}, {"file_name": "ADE_train_00011967.jpg", "width": 256, "id": 11966, "height": 256}, {"file_name": "ADE_train_00011968.jpg", "width": 256, "id": 11967, "height": 256}, {"file_name": "ADE_train_00011969.jpg", "width": 256, "id": 11968, "height": 256}, {"file_name": "ADE_train_00011970.jpg", "width": 256, "id": 11969, "height": 256}, {"file_name": "ADE_train_00011971.jpg", "width": 256, "id": 11970, "height": 256}, {"file_name": "ADE_train_00011972.jpg", "width": 256, "id": 11971, "height": 256}, {"file_name": "ADE_train_00011973.jpg", "width": 256, "id": 11972, "height": 256}, {"file_name": "ADE_train_00011974.jpg", "width": 256, "id": 11973, "height": 256}, {"file_name": "ADE_train_00011975.jpg", "width": 256, "id": 11974, "height": 256}, {"file_name": "ADE_train_00011976.jpg", "width": 256, "id": 11975, "height": 256}, {"file_name": "ADE_train_00011977.jpg", "width": 256, "id": 11976, "height": 256}, {"file_name": "ADE_train_00011978.jpg", "width": 256, "id": 11977, "height": 256}, {"file_name": "ADE_train_00011979.jpg", "width": 256, "id": 11978, "height": 256}, {"file_name": "ADE_train_00011980.jpg", "width": 256, "id": 11979, "height": 256}, {"file_name": "ADE_train_00011981.jpg", "width": 256, "id": 11980, "height": 256}, {"file_name": "ADE_train_00011982.jpg", "width": 256, "id": 11981, "height": 256}, {"file_name": "ADE_train_00011983.jpg", "width": 256, "id": 11982, "height": 256}, {"file_name": "ADE_train_00011984.jpg", "width": 256, "id": 11983, "height": 256}, {"file_name": "ADE_train_00011985.jpg", "width": 256, "id": 11984, "height": 256}, {"file_name": "ADE_train_00011986.jpg", "width": 256, "id": 11985, "height": 256}, {"file_name": "ADE_train_00011987.jpg", "width": 256, "id": 11986, "height": 256}, {"file_name": "ADE_train_00011988.jpg", "width": 256, "id": 11987, "height": 256}, {"file_name": "ADE_train_00011989.jpg", "width": 256, "id": 11988, "height": 256}, {"file_name": "ADE_train_00011990.jpg", "width": 256, "id": 11989, "height": 256}, {"file_name": "ADE_train_00011991.jpg", "width": 256, "id": 11990, "height": 256}, {"file_name": "ADE_train_00011992.jpg", "width": 256, "id": 11991, "height": 256}, {"file_name": "ADE_train_00011993.jpg", "width": 256, "id": 11992, "height": 256}, {"file_name": "ADE_train_00011994.jpg", "width": 256, "id": 11993, "height": 256}, {"file_name": "ADE_train_00011995.jpg", "width": 256, "id": 11994, "height": 256}, {"file_name": "ADE_train_00011996.jpg", "width": 256, "id": 11995, "height": 256}, {"file_name": "ADE_train_00011997.jpg", "width": 256, "id": 11996, "height": 256}, {"file_name": "ADE_train_00011998.jpg", "width": 256, "id": 11997, "height": 256}, {"file_name": "ADE_train_00011999.jpg", "width": 256, "id": 11998, "height": 256}, {"file_name": "ADE_train_00012000.jpg", "width": 256, "id": 11999, "height": 256}, {"file_name": "ADE_train_00012001.jpg", "width": 256, "id": 12000, "height": 256}, {"file_name": "ADE_train_00012002.jpg", "width": 256, "id": 12001, "height": 256}, {"file_name": "ADE_train_00012003.jpg", "width": 256, "id": 12002, "height": 256}, {"file_name": "ADE_train_00012004.jpg", "width": 256, "id": 12003, "height": 256}, {"file_name": "ADE_train_00012005.jpg", "width": 256, "id": 12004, "height": 256}, {"file_name": "ADE_train_00012006.jpg", "width": 256, "id": 12005, "height": 256}, {"file_name": "ADE_train_00012007.jpg", "width": 256, "id": 12006, "height": 256}, {"file_name": "ADE_train_00012008.jpg", "width": 256, "id": 12007, "height": 256}, {"file_name": "ADE_train_00012009.jpg", "width": 256, "id": 12008, "height": 256}, {"file_name": "ADE_train_00012010.jpg", "width": 256, "id": 12009, "height": 256}, {"file_name": "ADE_train_00012011.jpg", "width": 256, "id": 12010, "height": 256}, {"file_name": "ADE_train_00012012.jpg", "width": 256, "id": 12011, "height": 256}, {"file_name": "ADE_train_00012013.jpg", "width": 1056, "id": 12012, "height": 512}, {"file_name": "ADE_train_00012014.jpg", "width": 683, "id": 12013, "height": 512}, {"file_name": "ADE_train_00012015.jpg", "width": 512, "id": 12014, "height": 750}, {"file_name": "ADE_train_00012016.jpg", "width": 683, "id": 12015, "height": 512}, {"file_name": "ADE_train_00012017.jpg", "width": 683, "id": 12016, "height": 512}, {"file_name": "ADE_train_00012018.jpg", "width": 683, "id": 12017, "height": 512}, {"file_name": "ADE_train_00012019.jpg", "width": 683, "id": 12018, "height": 512}, {"file_name": "ADE_train_00012020.jpg", "width": 512, "id": 12019, "height": 778}, {"file_name": "ADE_train_00012021.jpg", "width": 512, "id": 12020, "height": 683}, {"file_name": "ADE_train_00012022.jpg", "width": 683, "id": 12021, "height": 512}, {"file_name": "ADE_train_00012023.jpg", "width": 910, "id": 12022, "height": 512}, {"file_name": "ADE_train_00012024.jpg", "width": 791, "id": 12023, "height": 512}, {"file_name": "ADE_train_00012025.jpg", "width": 683, "id": 12024, "height": 512}, {"file_name": "ADE_train_00012026.jpg", "width": 683, "id": 12025, "height": 512}, {"file_name": "ADE_train_00012027.jpg", "width": 683, "id": 12026, "height": 512}, {"file_name": "ADE_train_00012028.jpg", "width": 683, "id": 12027, "height": 512}, {"file_name": "ADE_train_00012029.jpg", "width": 764, "id": 12028, "height": 512}, {"file_name": "ADE_train_00012030.jpg", "width": 640, "id": 12029, "height": 480}, {"file_name": "ADE_train_00012031.jpg", "width": 299, "id": 12030, "height": 447}, {"file_name": "ADE_train_00012032.jpg", "width": 489, "id": 12031, "height": 346}, {"file_name": "ADE_train_00012033.jpg", "width": 450, "id": 12032, "height": 338}, {"file_name": "ADE_train_00012034.jpg", "width": 640, "id": 12033, "height": 480}, {"file_name": "ADE_train_00012035.jpg", "width": 504, "id": 12034, "height": 340}, {"file_name": "ADE_train_00012036.jpg", "width": 683, "id": 12035, "height": 512}, {"file_name": "ADE_train_00012037.jpg", "width": 768, "id": 12036, "height": 512}, {"file_name": "ADE_train_00012038.jpg", "width": 1460, "id": 12037, "height": 512}, {"file_name": "ADE_train_00012039.jpg", "width": 776, "id": 12038, "height": 512}, {"file_name": "ADE_train_00012040.jpg", "width": 256, "id": 12039, "height": 256}, {"file_name": "ADE_train_00012041.jpg", "width": 256, "id": 12040, "height": 256}, {"file_name": "ADE_train_00012042.jpg", "width": 256, "id": 12041, "height": 256}, {"file_name": "ADE_train_00012043.jpg", "width": 256, "id": 12042, "height": 256}, {"file_name": "ADE_train_00012044.jpg", "width": 256, "id": 12043, "height": 256}, {"file_name": "ADE_train_00012045.jpg", "width": 256, "id": 12044, "height": 256}, {"file_name": "ADE_train_00012046.jpg", "width": 256, "id": 12045, "height": 256}, {"file_name": "ADE_train_00012047.jpg", "width": 256, "id": 12046, "height": 256}, {"file_name": "ADE_train_00012048.jpg", "width": 256, "id": 12047, "height": 256}, {"file_name": "ADE_train_00012049.jpg", "width": 256, "id": 12048, "height": 256}, {"file_name": "ADE_train_00012050.jpg", "width": 256, "id": 12049, "height": 256}, {"file_name": "ADE_train_00012051.jpg", "width": 256, "id": 12050, "height": 256}, {"file_name": "ADE_train_00012052.jpg", "width": 256, "id": 12051, "height": 256}, {"file_name": "ADE_train_00012053.jpg", "width": 256, "id": 12052, "height": 256}, {"file_name": "ADE_train_00012054.jpg", "width": 256, "id": 12053, "height": 256}, {"file_name": "ADE_train_00012055.jpg", "width": 256, "id": 12054, "height": 256}, {"file_name": "ADE_train_00012056.jpg", "width": 256, "id": 12055, "height": 256}, {"file_name": "ADE_train_00012057.jpg", "width": 256, "id": 12056, "height": 256}, {"file_name": "ADE_train_00012058.jpg", "width": 256, "id": 12057, "height": 256}, {"file_name": "ADE_train_00012059.jpg", "width": 256, "id": 12058, "height": 256}, {"file_name": "ADE_train_00012060.jpg", "width": 256, "id": 12059, "height": 256}, {"file_name": "ADE_train_00012061.jpg", "width": 256, "id": 12060, "height": 256}, {"file_name": "ADE_train_00012062.jpg", "width": 256, "id": 12061, "height": 256}, {"file_name": "ADE_train_00012063.jpg", "width": 256, "id": 12062, "height": 256}, {"file_name": "ADE_train_00012064.jpg", "width": 256, "id": 12063, "height": 256}, {"file_name": "ADE_train_00012065.jpg", "width": 256, "id": 12064, "height": 256}, {"file_name": "ADE_train_00012066.jpg", "width": 256, "id": 12065, "height": 256}, {"file_name": "ADE_train_00012067.jpg", "width": 256, "id": 12066, "height": 256}, {"file_name": "ADE_train_00012068.jpg", "width": 256, "id": 12067, "height": 256}, {"file_name": "ADE_train_00012069.jpg", "width": 256, "id": 12068, "height": 256}, {"file_name": "ADE_train_00012070.jpg", "width": 256, "id": 12069, "height": 256}, {"file_name": "ADE_train_00012071.jpg", "width": 256, "id": 12070, "height": 256}, {"file_name": "ADE_train_00012072.jpg", "width": 256, "id": 12071, "height": 256}, {"file_name": "ADE_train_00012073.jpg", "width": 256, "id": 12072, "height": 256}, {"file_name": "ADE_train_00012074.jpg", "width": 256, "id": 12073, "height": 256}, {"file_name": "ADE_train_00012075.jpg", "width": 256, "id": 12074, "height": 256}, {"file_name": "ADE_train_00012076.jpg", "width": 256, "id": 12075, "height": 256}, {"file_name": "ADE_train_00012077.jpg", "width": 256, "id": 12076, "height": 256}, {"file_name": "ADE_train_00012078.jpg", "width": 256, "id": 12077, "height": 256}, {"file_name": "ADE_train_00012079.jpg", "width": 256, "id": 12078, "height": 256}, {"file_name": "ADE_train_00012080.jpg", "width": 256, "id": 12079, "height": 256}, {"file_name": "ADE_train_00012081.jpg", "width": 256, "id": 12080, "height": 256}, {"file_name": "ADE_train_00012082.jpg", "width": 256, "id": 12081, "height": 256}, {"file_name": "ADE_train_00012083.jpg", "width": 256, "id": 12082, "height": 256}, {"file_name": "ADE_train_00012084.jpg", "width": 256, "id": 12083, "height": 256}, {"file_name": "ADE_train_00012085.jpg", "width": 256, "id": 12084, "height": 256}, {"file_name": "ADE_train_00012086.jpg", "width": 256, "id": 12085, "height": 256}, {"file_name": "ADE_train_00012087.jpg", "width": 256, "id": 12086, "height": 256}, {"file_name": "ADE_train_00012088.jpg", "width": 256, "id": 12087, "height": 256}, {"file_name": "ADE_train_00012089.jpg", "width": 256, "id": 12088, "height": 256}, {"file_name": "ADE_train_00012090.jpg", "width": 256, "id": 12089, "height": 256}, {"file_name": "ADE_train_00012091.jpg", "width": 256, "id": 12090, "height": 256}, {"file_name": "ADE_train_00012092.jpg", "width": 256, "id": 12091, "height": 256}, {"file_name": "ADE_train_00012093.jpg", "width": 256, "id": 12092, "height": 256}, {"file_name": "ADE_train_00012094.jpg", "width": 256, "id": 12093, "height": 256}, {"file_name": "ADE_train_00012095.jpg", "width": 256, "id": 12094, "height": 256}, {"file_name": "ADE_train_00012096.jpg", "width": 256, "id": 12095, "height": 256}, {"file_name": "ADE_train_00012097.jpg", "width": 256, "id": 12096, "height": 256}, {"file_name": "ADE_train_00012098.jpg", "width": 256, "id": 12097, "height": 256}, {"file_name": "ADE_train_00012099.jpg", "width": 256, "id": 12098, "height": 256}, {"file_name": "ADE_train_00012100.jpg", "width": 256, "id": 12099, "height": 256}, {"file_name": "ADE_train_00012101.jpg", "width": 256, "id": 12100, "height": 256}, {"file_name": "ADE_train_00012102.jpg", "width": 256, "id": 12101, "height": 256}, {"file_name": "ADE_train_00012103.jpg", "width": 256, "id": 12102, "height": 256}, {"file_name": "ADE_train_00012104.jpg", "width": 256, "id": 12103, "height": 256}, {"file_name": "ADE_train_00012105.jpg", "width": 256, "id": 12104, "height": 256}, {"file_name": "ADE_train_00012106.jpg", "width": 256, "id": 12105, "height": 256}, {"file_name": "ADE_train_00012107.jpg", "width": 256, "id": 12106, "height": 256}, {"file_name": "ADE_train_00012108.jpg", "width": 256, "id": 12107, "height": 256}, {"file_name": "ADE_train_00012109.jpg", "width": 256, "id": 12108, "height": 256}, {"file_name": "ADE_train_00012110.jpg", "width": 256, "id": 12109, "height": 256}, {"file_name": "ADE_train_00012111.jpg", "width": 256, "id": 12110, "height": 256}, {"file_name": "ADE_train_00012112.jpg", "width": 256, "id": 12111, "height": 256}, {"file_name": "ADE_train_00012113.jpg", "width": 256, "id": 12112, "height": 256}, {"file_name": "ADE_train_00012114.jpg", "width": 256, "id": 12113, "height": 256}, {"file_name": "ADE_train_00012115.jpg", "width": 256, "id": 12114, "height": 256}, {"file_name": "ADE_train_00012116.jpg", "width": 256, "id": 12115, "height": 256}, {"file_name": "ADE_train_00012117.jpg", "width": 256, "id": 12116, "height": 256}, {"file_name": "ADE_train_00012118.jpg", "width": 256, "id": 12117, "height": 256}, {"file_name": "ADE_train_00012119.jpg", "width": 256, "id": 12118, "height": 256}, {"file_name": "ADE_train_00012120.jpg", "width": 256, "id": 12119, "height": 256}, {"file_name": "ADE_train_00012121.jpg", "width": 256, "id": 12120, "height": 256}, {"file_name": "ADE_train_00012122.jpg", "width": 256, "id": 12121, "height": 256}, {"file_name": "ADE_train_00012123.jpg", "width": 256, "id": 12122, "height": 256}, {"file_name": "ADE_train_00012124.jpg", "width": 256, "id": 12123, "height": 256}, {"file_name": "ADE_train_00012125.jpg", "width": 256, "id": 12124, "height": 256}, {"file_name": "ADE_train_00012126.jpg", "width": 256, "id": 12125, "height": 256}, {"file_name": "ADE_train_00012127.jpg", "width": 256, "id": 12126, "height": 256}, {"file_name": "ADE_train_00012128.jpg", "width": 256, "id": 12127, "height": 256}, {"file_name": "ADE_train_00012129.jpg", "width": 256, "id": 12128, "height": 256}, {"file_name": "ADE_train_00012130.jpg", "width": 256, "id": 12129, "height": 256}, {"file_name": "ADE_train_00012131.jpg", "width": 256, "id": 12130, "height": 256}, {"file_name": "ADE_train_00012132.jpg", "width": 256, "id": 12131, "height": 256}, {"file_name": "ADE_train_00012133.jpg", "width": 256, "id": 12132, "height": 256}, {"file_name": "ADE_train_00012134.jpg", "width": 256, "id": 12133, "height": 256}, {"file_name": "ADE_train_00012135.jpg", "width": 256, "id": 12134, "height": 256}, {"file_name": "ADE_train_00012136.jpg", "width": 256, "id": 12135, "height": 256}, {"file_name": "ADE_train_00012137.jpg", "width": 256, "id": 12136, "height": 256}, {"file_name": "ADE_train_00012138.jpg", "width": 256, "id": 12137, "height": 256}, {"file_name": "ADE_train_00012139.jpg", "width": 256, "id": 12138, "height": 256}, {"file_name": "ADE_train_00012140.jpg", "width": 256, "id": 12139, "height": 256}, {"file_name": "ADE_train_00012141.jpg", "width": 256, "id": 12140, "height": 256}, {"file_name": "ADE_train_00012142.jpg", "width": 256, "id": 12141, "height": 256}, {"file_name": "ADE_train_00012143.jpg", "width": 256, "id": 12142, "height": 256}, {"file_name": "ADE_train_00012144.jpg", "width": 256, "id": 12143, "height": 256}, {"file_name": "ADE_train_00012145.jpg", "width": 256, "id": 12144, "height": 256}, {"file_name": "ADE_train_00012146.jpg", "width": 256, "id": 12145, "height": 256}, {"file_name": "ADE_train_00012147.jpg", "width": 256, "id": 12146, "height": 256}, {"file_name": "ADE_train_00012148.jpg", "width": 256, "id": 12147, "height": 256}, {"file_name": "ADE_train_00012149.jpg", "width": 256, "id": 12148, "height": 256}, {"file_name": "ADE_train_00012150.jpg", "width": 256, "id": 12149, "height": 256}, {"file_name": "ADE_train_00012151.jpg", "width": 256, "id": 12150, "height": 256}, {"file_name": "ADE_train_00012152.jpg", "width": 256, "id": 12151, "height": 256}, {"file_name": "ADE_train_00012153.jpg", "width": 256, "id": 12152, "height": 256}, {"file_name": "ADE_train_00012154.jpg", "width": 256, "id": 12153, "height": 256}, {"file_name": "ADE_train_00012155.jpg", "width": 256, "id": 12154, "height": 256}, {"file_name": "ADE_train_00012156.jpg", "width": 256, "id": 12155, "height": 256}, {"file_name": "ADE_train_00012157.jpg", "width": 256, "id": 12156, "height": 256}, {"file_name": "ADE_train_00012158.jpg", "width": 256, "id": 12157, "height": 256}, {"file_name": "ADE_train_00012159.jpg", "width": 256, "id": 12158, "height": 256}, {"file_name": "ADE_train_00012160.jpg", "width": 256, "id": 12159, "height": 256}, {"file_name": "ADE_train_00012161.jpg", "width": 256, "id": 12160, "height": 256}, {"file_name": "ADE_train_00012162.jpg", "width": 256, "id": 12161, "height": 256}, {"file_name": "ADE_train_00012163.jpg", "width": 256, "id": 12162, "height": 256}, {"file_name": "ADE_train_00012164.jpg", "width": 256, "id": 12163, "height": 256}, {"file_name": "ADE_train_00012165.jpg", "width": 256, "id": 12164, "height": 256}, {"file_name": "ADE_train_00012166.jpg", "width": 256, "id": 12165, "height": 256}, {"file_name": "ADE_train_00012167.jpg", "width": 256, "id": 12166, "height": 256}, {"file_name": "ADE_train_00012168.jpg", "width": 256, "id": 12167, "height": 256}, {"file_name": "ADE_train_00012169.jpg", "width": 256, "id": 12168, "height": 256}, {"file_name": "ADE_train_00012170.jpg", "width": 256, "id": 12169, "height": 256}, {"file_name": "ADE_train_00012171.jpg", "width": 256, "id": 12170, "height": 256}, {"file_name": "ADE_train_00012172.jpg", "width": 256, "id": 12171, "height": 256}, {"file_name": "ADE_train_00012173.jpg", "width": 256, "id": 12172, "height": 256}, {"file_name": "ADE_train_00012174.jpg", "width": 256, "id": 12173, "height": 256}, {"file_name": "ADE_train_00012175.jpg", "width": 256, "id": 12174, "height": 256}, {"file_name": "ADE_train_00012176.jpg", "width": 256, "id": 12175, "height": 256}, {"file_name": "ADE_train_00012177.jpg", "width": 256, "id": 12176, "height": 256}, {"file_name": "ADE_train_00012178.jpg", "width": 256, "id": 12177, "height": 256}, {"file_name": "ADE_train_00012179.jpg", "width": 256, "id": 12178, "height": 256}, {"file_name": "ADE_train_00012180.jpg", "width": 773, "id": 12179, "height": 512}, {"file_name": "ADE_train_00012181.jpg", "width": 778, "id": 12180, "height": 512}, {"file_name": "ADE_train_00012182.jpg", "width": 350, "id": 12181, "height": 233}, {"file_name": "ADE_train_00012183.jpg", "width": 256, "id": 12182, "height": 256}, {"file_name": "ADE_train_00012184.jpg", "width": 256, "id": 12183, "height": 256}, {"file_name": "ADE_train_00012185.jpg", "width": 256, "id": 12184, "height": 256}, {"file_name": "ADE_train_00012186.jpg", "width": 200, "id": 12185, "height": 200}, {"file_name": "ADE_train_00012187.jpg", "width": 256, "id": 12186, "height": 256}, {"file_name": "ADE_train_00012188.jpg", "width": 256, "id": 12187, "height": 256}, {"file_name": "ADE_train_00012189.jpg", "width": 510, "id": 12188, "height": 382}, {"file_name": "ADE_train_00012190.jpg", "width": 256, "id": 12189, "height": 256}, {"file_name": "ADE_train_00012191.jpg", "width": 256, "id": 12190, "height": 256}, {"file_name": "ADE_train_00012192.jpg", "width": 256, "id": 12191, "height": 256}, {"file_name": "ADE_train_00012193.jpg", "width": 300, "id": 12192, "height": 400}, {"file_name": "ADE_train_00012194.jpg", "width": 256, "id": 12193, "height": 256}, {"file_name": "ADE_train_00012195.jpg", "width": 256, "id": 12194, "height": 256}, {"file_name": "ADE_train_00012196.jpg", "width": 256, "id": 12195, "height": 256}, {"file_name": "ADE_train_00012197.jpg", "width": 640, "id": 12196, "height": 480}, {"file_name": "ADE_train_00012198.jpg", "width": 256, "id": 12197, "height": 256}, {"file_name": "ADE_train_00012199.jpg", "width": 343, "id": 12198, "height": 240}, {"file_name": "ADE_train_00012200.jpg", "width": 683, "id": 12199, "height": 512}, {"file_name": "ADE_train_00012201.jpg", "width": 270, "id": 12200, "height": 202}, {"file_name": "ADE_train_00012202.jpg", "width": 683, "id": 12201, "height": 512}, {"file_name": "ADE_train_00012203.jpg", "width": 683, "id": 12202, "height": 512}, {"file_name": "ADE_train_00012204.jpg", "width": 684, "id": 12203, "height": 512}, {"file_name": "ADE_train_00012205.jpg", "width": 237, "id": 12204, "height": 322}, {"file_name": "ADE_train_00012206.jpg", "width": 256, "id": 12205, "height": 241}, {"file_name": "ADE_train_00012207.jpg", "width": 568, "id": 12206, "height": 512}, {"file_name": "ADE_train_00012208.jpg", "width": 905, "id": 12207, "height": 512}, {"file_name": "ADE_train_00012209.jpg", "width": 324, "id": 12208, "height": 432}, {"file_name": "ADE_train_00012210.jpg", "width": 500, "id": 12209, "height": 333}, {"file_name": "ADE_train_00012211.jpg", "width": 517, "id": 12210, "height": 320}, {"file_name": "ADE_train_00012212.jpg", "width": 399, "id": 12211, "height": 585}, {"file_name": "ADE_train_00012213.jpg", "width": 500, "id": 12212, "height": 379}, {"file_name": "ADE_train_00012214.jpg", "width": 454, "id": 12213, "height": 591}, {"file_name": "ADE_train_00012215.jpg", "width": 500, "id": 12214, "height": 320}, {"file_name": "ADE_train_00012216.jpg", "width": 500, "id": 12215, "height": 375}, {"file_name": "ADE_train_00012217.jpg", "width": 338, "id": 12216, "height": 500}, {"file_name": "ADE_train_00012218.jpg", "width": 500, "id": 12217, "height": 375}, {"file_name": "ADE_train_00012219.jpg", "width": 418, "id": 12218, "height": 500}, {"file_name": "ADE_train_00012220.jpg", "width": 500, "id": 12219, "height": 375}, {"file_name": "ADE_train_00012221.jpg", "width": 620, "id": 12220, "height": 465}, {"file_name": "ADE_train_00012222.jpg", "width": 500, "id": 12221, "height": 282}, {"file_name": "ADE_train_00012223.jpg", "width": 500, "id": 12222, "height": 358}, {"file_name": "ADE_train_00012224.jpg", "width": 375, "id": 12223, "height": 500}, {"file_name": "ADE_train_00012225.jpg", "width": 674, "id": 12224, "height": 500}, {"file_name": "ADE_train_00012226.jpg", "width": 359, "id": 12225, "height": 500}, {"file_name": "ADE_train_00012227.jpg", "width": 640, "id": 12226, "height": 512}, {"file_name": "ADE_train_00012228.jpg", "width": 500, "id": 12227, "height": 375}, {"file_name": "ADE_train_00012229.jpg", "width": 440, "id": 12228, "height": 500}, {"file_name": "ADE_train_00012230.jpg", "width": 421, "id": 12229, "height": 261}, {"file_name": "ADE_train_00012231.jpg", "width": 600, "id": 12230, "height": 399}, {"file_name": "ADE_train_00012232.jpg", "width": 500, "id": 12231, "height": 333}, {"file_name": "ADE_train_00012233.jpg", "width": 500, "id": 12232, "height": 333}, {"file_name": "ADE_train_00012234.jpg", "width": 500, "id": 12233, "height": 375}, {"file_name": "ADE_train_00012235.jpg", "width": 512, "id": 12234, "height": 689}, {"file_name": "ADE_train_00012236.jpg", "width": 500, "id": 12235, "height": 353}, {"file_name": "ADE_train_00012237.jpg", "width": 457, "id": 12236, "height": 466}, {"file_name": "ADE_train_00012238.jpg", "width": 460, "id": 12237, "height": 276}, {"file_name": "ADE_train_00012239.jpg", "width": 444, "id": 12238, "height": 442}, {"file_name": "ADE_train_00012240.jpg", "width": 500, "id": 12239, "height": 333}, {"file_name": "ADE_train_00012241.jpg", "width": 500, "id": 12240, "height": 338}, {"file_name": "ADE_train_00012242.jpg", "width": 500, "id": 12241, "height": 375}, {"file_name": "ADE_train_00012243.jpg", "width": 500, "id": 12242, "height": 333}, {"file_name": "ADE_train_00012244.jpg", "width": 500, "id": 12243, "height": 333}, {"file_name": "ADE_train_00012245.jpg", "width": 500, "id": 12244, "height": 375}, {"file_name": "ADE_train_00012246.jpg", "width": 500, "id": 12245, "height": 332}, {"file_name": "ADE_train_00012247.jpg", "width": 401, "id": 12246, "height": 500}, {"file_name": "ADE_train_00012248.jpg", "width": 434, "id": 12247, "height": 434}, {"file_name": "ADE_train_00012249.jpg", "width": 450, "id": 12248, "height": 300}, {"file_name": "ADE_train_00012250.jpg", "width": 349, "id": 12249, "height": 500}, {"file_name": "ADE_train_00012251.jpg", "width": 500, "id": 12250, "height": 354}, {"file_name": "ADE_train_00012252.jpg", "width": 500, "id": 12251, "height": 347}, {"file_name": "ADE_train_00012253.jpg", "width": 451, "id": 12252, "height": 648}, {"file_name": "ADE_train_00012254.jpg", "width": 683, "id": 12253, "height": 512}, {"file_name": "ADE_train_00012255.jpg", "width": 744, "id": 12254, "height": 512}, {"file_name": "ADE_train_00012256.jpg", "width": 512, "id": 12255, "height": 770}, {"file_name": "ADE_train_00012257.jpg", "width": 683, "id": 12256, "height": 512}, {"file_name": "ADE_train_00012258.jpg", "width": 600, "id": 12257, "height": 450}, {"file_name": "ADE_train_00012259.jpg", "width": 1024, "id": 12258, "height": 1024}, {"file_name": "ADE_train_00012260.jpg", "width": 600, "id": 12259, "height": 450}, {"file_name": "ADE_train_00012261.jpg", "width": 400, "id": 12260, "height": 300}, {"file_name": "ADE_train_00012262.jpg", "width": 715, "id": 12261, "height": 512}, {"file_name": "ADE_train_00012263.jpg", "width": 342, "id": 12262, "height": 222}, {"file_name": "ADE_train_00012264.jpg", "width": 640, "id": 12263, "height": 480}, {"file_name": "ADE_train_00012265.jpg", "width": 336, "id": 12264, "height": 448}, {"file_name": "ADE_train_00012266.jpg", "width": 400, "id": 12265, "height": 300}, {"file_name": "ADE_train_00012267.jpg", "width": 708, "id": 12266, "height": 379}, {"file_name": "ADE_train_00012268.jpg", "width": 683, "id": 12267, "height": 512}, {"file_name": "ADE_train_00012269.jpg", "width": 600, "id": 12268, "height": 400}, {"file_name": "ADE_train_00012270.jpg", "width": 768, "id": 12269, "height": 512}, {"file_name": "ADE_train_00012271.jpg", "width": 683, "id": 12270, "height": 512}, {"file_name": "ADE_train_00012272.jpg", "width": 600, "id": 12271, "height": 400}, {"file_name": "ADE_train_00012273.jpg", "width": 684, "id": 12272, "height": 512}, {"file_name": "ADE_train_00012274.jpg", "width": 771, "id": 12273, "height": 512}, {"file_name": "ADE_train_00012275.jpg", "width": 256, "id": 12274, "height": 256}, {"file_name": "ADE_train_00012276.jpg", "width": 600, "id": 12275, "height": 450}, {"file_name": "ADE_train_00012277.jpg", "width": 492, "id": 12276, "height": 369}, {"file_name": "ADE_train_00012278.jpg", "width": 683, "id": 12277, "height": 512}, {"file_name": "ADE_train_00012279.jpg", "width": 683, "id": 12278, "height": 512}, {"file_name": "ADE_train_00012280.jpg", "width": 765, "id": 12279, "height": 512}, {"file_name": "ADE_train_00012281.jpg", "width": 500, "id": 12280, "height": 375}, {"file_name": "ADE_train_00012282.jpg", "width": 256, "id": 12281, "height": 256}, {"file_name": "ADE_train_00012283.jpg", "width": 500, "id": 12282, "height": 375}, {"file_name": "ADE_train_00012284.jpg", "width": 550, "id": 12283, "height": 413}, {"file_name": "ADE_train_00012285.jpg", "width": 506, "id": 12284, "height": 295}, {"file_name": "ADE_train_00012286.jpg", "width": 256, "id": 12285, "height": 256}, {"file_name": "ADE_train_00012287.jpg", "width": 400, "id": 12286, "height": 300}, {"file_name": "ADE_train_00012288.jpg", "width": 256, "id": 12287, "height": 256}, {"file_name": "ADE_train_00012289.jpg", "width": 450, "id": 12288, "height": 338}, {"file_name": "ADE_train_00012290.jpg", "width": 683, "id": 12289, "height": 512}, {"file_name": "ADE_train_00012291.jpg", "width": 683, "id": 12290, "height": 512}, {"file_name": "ADE_train_00012292.jpg", "width": 683, "id": 12291, "height": 512}, {"file_name": "ADE_train_00012293.jpg", "width": 683, "id": 12292, "height": 512}, {"file_name": "ADE_train_00012294.jpg", "width": 683, "id": 12293, "height": 512}, {"file_name": "ADE_train_00012295.jpg", "width": 683, "id": 12294, "height": 512}, {"file_name": "ADE_train_00012296.jpg", "width": 512, "id": 12295, "height": 683}, {"file_name": "ADE_train_00012297.jpg", "width": 683, "id": 12296, "height": 512}, {"file_name": "ADE_train_00012298.jpg", "width": 683, "id": 12297, "height": 512}, {"file_name": "ADE_train_00012299.jpg", "width": 767, "id": 12298, "height": 512}, {"file_name": "ADE_train_00012300.jpg", "width": 683, "id": 12299, "height": 512}, {"file_name": "ADE_train_00012301.jpg", "width": 683, "id": 12300, "height": 512}, {"file_name": "ADE_train_00012302.jpg", "width": 683, "id": 12301, "height": 512}, {"file_name": "ADE_train_00012303.jpg", "width": 683, "id": 12302, "height": 512}, {"file_name": "ADE_train_00012304.jpg", "width": 683, "id": 12303, "height": 512}, {"file_name": "ADE_train_00012305.jpg", "width": 683, "id": 12304, "height": 512}, {"file_name": "ADE_train_00012306.jpg", "width": 683, "id": 12305, "height": 512}, {"file_name": "ADE_train_00012307.jpg", "width": 683, "id": 12306, "height": 512}, {"file_name": "ADE_train_00012308.jpg", "width": 684, "id": 12307, "height": 512}, {"file_name": "ADE_train_00012309.jpg", "width": 683, "id": 12308, "height": 512}, {"file_name": "ADE_train_00012310.jpg", "width": 683, "id": 12309, "height": 512}, {"file_name": "ADE_train_00012311.jpg", "width": 683, "id": 12310, "height": 512}, {"file_name": "ADE_train_00012312.jpg", "width": 683, "id": 12311, "height": 512}, {"file_name": "ADE_train_00012313.jpg", "width": 683, "id": 12312, "height": 512}, {"file_name": "ADE_train_00012314.jpg", "width": 683, "id": 12313, "height": 512}, {"file_name": "ADE_train_00012315.jpg", "width": 683, "id": 12314, "height": 512}, {"file_name": "ADE_train_00012316.jpg", "width": 683, "id": 12315, "height": 512}, {"file_name": "ADE_train_00012317.jpg", "width": 683, "id": 12316, "height": 512}, {"file_name": "ADE_train_00012318.jpg", "width": 512, "id": 12317, "height": 683}, {"file_name": "ADE_train_00012319.jpg", "width": 512, "id": 12318, "height": 683}, {"file_name": "ADE_train_00012320.jpg", "width": 512, "id": 12319, "height": 683}, {"file_name": "ADE_train_00012321.jpg", "width": 683, "id": 12320, "height": 512}, {"file_name": "ADE_train_00012322.jpg", "width": 683, "id": 12321, "height": 512}, {"file_name": "ADE_train_00012323.jpg", "width": 768, "id": 12322, "height": 512}, {"file_name": "ADE_train_00012324.jpg", "width": 683, "id": 12323, "height": 512}, {"file_name": "ADE_train_00012325.jpg", "width": 683, "id": 12324, "height": 512}, {"file_name": "ADE_train_00012326.jpg", "width": 683, "id": 12325, "height": 512}, {"file_name": "ADE_train_00012327.jpg", "width": 683, "id": 12326, "height": 512}, {"file_name": "ADE_train_00012328.jpg", "width": 683, "id": 12327, "height": 512}, {"file_name": "ADE_train_00012329.jpg", "width": 683, "id": 12328, "height": 512}, {"file_name": "ADE_train_00012330.jpg", "width": 683, "id": 12329, "height": 512}, {"file_name": "ADE_train_00012331.jpg", "width": 683, "id": 12330, "height": 512}, {"file_name": "ADE_train_00012332.jpg", "width": 683, "id": 12331, "height": 512}, {"file_name": "ADE_train_00012333.jpg", "width": 683, "id": 12332, "height": 512}, {"file_name": "ADE_train_00012334.jpg", "width": 683, "id": 12333, "height": 512}, {"file_name": "ADE_train_00012335.jpg", "width": 683, "id": 12334, "height": 512}, {"file_name": "ADE_train_00012336.jpg", "width": 683, "id": 12335, "height": 512}, {"file_name": "ADE_train_00012337.jpg", "width": 683, "id": 12336, "height": 512}, {"file_name": "ADE_train_00012338.jpg", "width": 683, "id": 12337, "height": 512}, {"file_name": "ADE_train_00012339.jpg", "width": 683, "id": 12338, "height": 512}, {"file_name": "ADE_train_00012340.jpg", "width": 683, "id": 12339, "height": 512}, {"file_name": "ADE_train_00012341.jpg", "width": 683, "id": 12340, "height": 512}, {"file_name": "ADE_train_00012342.jpg", "width": 683, "id": 12341, "height": 512}, {"file_name": "ADE_train_00012343.jpg", "width": 683, "id": 12342, "height": 512}, {"file_name": "ADE_train_00012344.jpg", "width": 683, "id": 12343, "height": 512}, {"file_name": "ADE_train_00012345.jpg", "width": 512, "id": 12344, "height": 683}, {"file_name": "ADE_train_00012346.jpg", "width": 683, "id": 12345, "height": 512}, {"file_name": "ADE_train_00012347.jpg", "width": 400, "id": 12346, "height": 600}, {"file_name": "ADE_train_00012348.jpg", "width": 683, "id": 12347, "height": 512}, {"file_name": "ADE_train_00012349.jpg", "width": 683, "id": 12348, "height": 512}, {"file_name": "ADE_train_00012350.jpg", "width": 683, "id": 12349, "height": 512}, {"file_name": "ADE_train_00012351.jpg", "width": 683, "id": 12350, "height": 512}, {"file_name": "ADE_train_00012352.jpg", "width": 770, "id": 12351, "height": 512}, {"file_name": "ADE_train_00012353.jpg", "width": 683, "id": 12352, "height": 512}, {"file_name": "ADE_train_00012354.jpg", "width": 683, "id": 12353, "height": 512}, {"file_name": "ADE_train_00012355.jpg", "width": 683, "id": 12354, "height": 512}, {"file_name": "ADE_train_00012356.jpg", "width": 683, "id": 12355, "height": 512}, {"file_name": "ADE_train_00012357.jpg", "width": 683, "id": 12356, "height": 512}, {"file_name": "ADE_train_00012358.jpg", "width": 683, "id": 12357, "height": 512}, {"file_name": "ADE_train_00012359.jpg", "width": 683, "id": 12358, "height": 512}, {"file_name": "ADE_train_00012360.jpg", "width": 683, "id": 12359, "height": 512}, {"file_name": "ADE_train_00012361.jpg", "width": 683, "id": 12360, "height": 512}, {"file_name": "ADE_train_00012362.jpg", "width": 768, "id": 12361, "height": 512}, {"file_name": "ADE_train_00012363.jpg", "width": 683, "id": 12362, "height": 512}, {"file_name": "ADE_train_00012364.jpg", "width": 683, "id": 12363, "height": 512}, {"file_name": "ADE_train_00012365.jpg", "width": 678, "id": 12364, "height": 512}, {"file_name": "ADE_train_00012366.jpg", "width": 683, "id": 12365, "height": 512}, {"file_name": "ADE_train_00012367.jpg", "width": 560, "id": 12366, "height": 420}, {"file_name": "ADE_train_00012368.jpg", "width": 683, "id": 12367, "height": 512}, {"file_name": "ADE_train_00012369.jpg", "width": 560, "id": 12368, "height": 420}, {"file_name": "ADE_train_00012370.jpg", "width": 683, "id": 12369, "height": 512}, {"file_name": "ADE_train_00012371.jpg", "width": 683, "id": 12370, "height": 512}, {"file_name": "ADE_train_00012372.jpg", "width": 768, "id": 12371, "height": 512}, {"file_name": "ADE_train_00012373.jpg", "width": 683, "id": 12372, "height": 512}, {"file_name": "ADE_train_00012374.jpg", "width": 683, "id": 12373, "height": 512}, {"file_name": "ADE_train_00012375.jpg", "width": 512, "id": 12374, "height": 761}, {"file_name": "ADE_train_00012376.jpg", "width": 683, "id": 12375, "height": 512}, {"file_name": "ADE_train_00012377.jpg", "width": 400, "id": 12376, "height": 600}, {"file_name": "ADE_train_00012378.jpg", "width": 683, "id": 12377, "height": 512}, {"file_name": "ADE_train_00012379.jpg", "width": 683, "id": 12378, "height": 512}, {"file_name": "ADE_train_00012380.jpg", "width": 512, "id": 12379, "height": 683}, {"file_name": "ADE_train_00012381.jpg", "width": 683, "id": 12380, "height": 512}, {"file_name": "ADE_train_00012382.jpg", "width": 683, "id": 12381, "height": 512}, {"file_name": "ADE_train_00012383.jpg", "width": 683, "id": 12382, "height": 512}, {"file_name": "ADE_train_00012384.jpg", "width": 683, "id": 12383, "height": 512}, {"file_name": "ADE_train_00012385.jpg", "width": 683, "id": 12384, "height": 512}, {"file_name": "ADE_train_00012386.jpg", "width": 683, "id": 12385, "height": 512}, {"file_name": "ADE_train_00012387.jpg", "width": 683, "id": 12386, "height": 512}, {"file_name": "ADE_train_00012388.jpg", "width": 480, "id": 12387, "height": 640}, {"file_name": "ADE_train_00012389.jpg", "width": 683, "id": 12388, "height": 512}, {"file_name": "ADE_train_00012390.jpg", "width": 683, "id": 12389, "height": 512}, {"file_name": "ADE_train_00012391.jpg", "width": 683, "id": 12390, "height": 512}, {"file_name": "ADE_train_00012392.jpg", "width": 683, "id": 12391, "height": 512}, {"file_name": "ADE_train_00012393.jpg", "width": 683, "id": 12392, "height": 512}, {"file_name": "ADE_train_00012394.jpg", "width": 683, "id": 12393, "height": 512}, {"file_name": "ADE_train_00012395.jpg", "width": 683, "id": 12394, "height": 512}, {"file_name": "ADE_train_00012396.jpg", "width": 683, "id": 12395, "height": 512}, {"file_name": "ADE_train_00012397.jpg", "width": 683, "id": 12396, "height": 512}, {"file_name": "ADE_train_00012398.jpg", "width": 683, "id": 12397, "height": 512}, {"file_name": "ADE_train_00012399.jpg", "width": 683, "id": 12398, "height": 512}, {"file_name": "ADE_train_00012400.jpg", "width": 683, "id": 12399, "height": 512}, {"file_name": "ADE_train_00012401.jpg", "width": 683, "id": 12400, "height": 512}, {"file_name": "ADE_train_00012402.jpg", "width": 683, "id": 12401, "height": 512}, {"file_name": "ADE_train_00012403.jpg", "width": 683, "id": 12402, "height": 512}, {"file_name": "ADE_train_00012404.jpg", "width": 683, "id": 12403, "height": 512}, {"file_name": "ADE_train_00012405.jpg", "width": 683, "id": 12404, "height": 512}, {"file_name": "ADE_train_00012406.jpg", "width": 683, "id": 12405, "height": 512}, {"file_name": "ADE_train_00012407.jpg", "width": 560, "id": 12406, "height": 420}, {"file_name": "ADE_train_00012408.jpg", "width": 683, "id": 12407, "height": 512}, {"file_name": "ADE_train_00012409.jpg", "width": 683, "id": 12408, "height": 512}, {"file_name": "ADE_train_00012410.jpg", "width": 512, "id": 12409, "height": 486}, {"file_name": "ADE_train_00012411.jpg", "width": 683, "id": 12410, "height": 512}, {"file_name": "ADE_train_00012412.jpg", "width": 683, "id": 12411, "height": 512}, {"file_name": "ADE_train_00012413.jpg", "width": 683, "id": 12412, "height": 512}, {"file_name": "ADE_train_00012414.jpg", "width": 512, "id": 12413, "height": 683}, {"file_name": "ADE_train_00012415.jpg", "width": 683, "id": 12414, "height": 512}, {"file_name": "ADE_train_00012416.jpg", "width": 683, "id": 12415, "height": 512}, {"file_name": "ADE_train_00012417.jpg", "width": 683, "id": 12416, "height": 512}, {"file_name": "ADE_train_00012418.jpg", "width": 683, "id": 12417, "height": 512}, {"file_name": "ADE_train_00012419.jpg", "width": 512, "id": 12418, "height": 683}, {"file_name": "ADE_train_00012420.jpg", "width": 683, "id": 12419, "height": 512}, {"file_name": "ADE_train_00012421.jpg", "width": 683, "id": 12420, "height": 512}, {"file_name": "ADE_train_00012422.jpg", "width": 683, "id": 12421, "height": 512}, {"file_name": "ADE_train_00012423.jpg", "width": 683, "id": 12422, "height": 512}, {"file_name": "ADE_train_00012424.jpg", "width": 683, "id": 12423, "height": 512}, {"file_name": "ADE_train_00012425.jpg", "width": 683, "id": 12424, "height": 512}, {"file_name": "ADE_train_00012426.jpg", "width": 683, "id": 12425, "height": 512}, {"file_name": "ADE_train_00012427.jpg", "width": 683, "id": 12426, "height": 512}, {"file_name": "ADE_train_00012428.jpg", "width": 512, "id": 12427, "height": 683}, {"file_name": "ADE_train_00012429.jpg", "width": 683, "id": 12428, "height": 512}, {"file_name": "ADE_train_00012430.jpg", "width": 683, "id": 12429, "height": 512}, {"file_name": "ADE_train_00012431.jpg", "width": 683, "id": 12430, "height": 512}, {"file_name": "ADE_train_00012432.jpg", "width": 683, "id": 12431, "height": 512}, {"file_name": "ADE_train_00012433.jpg", "width": 683, "id": 12432, "height": 512}, {"file_name": "ADE_train_00012434.jpg", "width": 683, "id": 12433, "height": 512}, {"file_name": "ADE_train_00012435.jpg", "width": 683, "id": 12434, "height": 512}, {"file_name": "ADE_train_00012436.jpg", "width": 683, "id": 12435, "height": 512}, {"file_name": "ADE_train_00012437.jpg", "width": 683, "id": 12436, "height": 512}, {"file_name": "ADE_train_00012438.jpg", "width": 683, "id": 12437, "height": 512}, {"file_name": "ADE_train_00012439.jpg", "width": 683, "id": 12438, "height": 512}, {"file_name": "ADE_train_00012440.jpg", "width": 683, "id": 12439, "height": 512}, {"file_name": "ADE_train_00012441.jpg", "width": 683, "id": 12440, "height": 512}, {"file_name": "ADE_train_00012442.jpg", "width": 683, "id": 12441, "height": 512}, {"file_name": "ADE_train_00012443.jpg", "width": 683, "id": 12442, "height": 512}, {"file_name": "ADE_train_00012444.jpg", "width": 683, "id": 12443, "height": 512}, {"file_name": "ADE_train_00012445.jpg", "width": 683, "id": 12444, "height": 512}, {"file_name": "ADE_train_00012446.jpg", "width": 683, "id": 12445, "height": 512}, {"file_name": "ADE_train_00012447.jpg", "width": 683, "id": 12446, "height": 512}, {"file_name": "ADE_train_00012448.jpg", "width": 683, "id": 12447, "height": 512}, {"file_name": "ADE_train_00012449.jpg", "width": 683, "id": 12448, "height": 512}, {"file_name": "ADE_train_00012450.jpg", "width": 683, "id": 12449, "height": 512}, {"file_name": "ADE_train_00012451.jpg", "width": 683, "id": 12450, "height": 512}, {"file_name": "ADE_train_00012452.jpg", "width": 683, "id": 12451, "height": 512}, {"file_name": "ADE_train_00012453.jpg", "width": 683, "id": 12452, "height": 512}, {"file_name": "ADE_train_00012454.jpg", "width": 683, "id": 12453, "height": 512}, {"file_name": "ADE_train_00012455.jpg", "width": 768, "id": 12454, "height": 512}, {"file_name": "ADE_train_00012456.jpg", "width": 683, "id": 12455, "height": 512}, {"file_name": "ADE_train_00012457.jpg", "width": 512, "id": 12456, "height": 683}, {"file_name": "ADE_train_00012458.jpg", "width": 683, "id": 12457, "height": 512}, {"file_name": "ADE_train_00012459.jpg", "width": 683, "id": 12458, "height": 512}, {"file_name": "ADE_train_00012460.jpg", "width": 683, "id": 12459, "height": 512}, {"file_name": "ADE_train_00012461.jpg", "width": 512, "id": 12460, "height": 683}, {"file_name": "ADE_train_00012462.jpg", "width": 683, "id": 12461, "height": 512}, {"file_name": "ADE_train_00012463.jpg", "width": 683, "id": 12462, "height": 512}, {"file_name": "ADE_train_00012464.jpg", "width": 683, "id": 12463, "height": 512}, {"file_name": "ADE_train_00012465.jpg", "width": 683, "id": 12464, "height": 512}, {"file_name": "ADE_train_00012466.jpg", "width": 683, "id": 12465, "height": 512}, {"file_name": "ADE_train_00012467.jpg", "width": 614, "id": 12466, "height": 461}, {"file_name": "ADE_train_00012468.jpg", "width": 683, "id": 12467, "height": 512}, {"file_name": "ADE_train_00012469.jpg", "width": 683, "id": 12468, "height": 512}, {"file_name": "ADE_train_00012470.jpg", "width": 512, "id": 12469, "height": 683}, {"file_name": "ADE_train_00012471.jpg", "width": 683, "id": 12470, "height": 512}, {"file_name": "ADE_train_00012472.jpg", "width": 683, "id": 12471, "height": 512}, {"file_name": "ADE_train_00012473.jpg", "width": 683, "id": 12472, "height": 512}, {"file_name": "ADE_train_00012474.jpg", "width": 683, "id": 12473, "height": 512}, {"file_name": "ADE_train_00012475.jpg", "width": 683, "id": 12474, "height": 512}, {"file_name": "ADE_train_00012476.jpg", "width": 683, "id": 12475, "height": 512}, {"file_name": "ADE_train_00012477.jpg", "width": 683, "id": 12476, "height": 512}, {"file_name": "ADE_train_00012478.jpg", "width": 683, "id": 12477, "height": 512}, {"file_name": "ADE_train_00012479.jpg", "width": 683, "id": 12478, "height": 512}, {"file_name": "ADE_train_00012480.jpg", "width": 683, "id": 12479, "height": 512}, {"file_name": "ADE_train_00012481.jpg", "width": 683, "id": 12480, "height": 512}, {"file_name": "ADE_train_00012482.jpg", "width": 512, "id": 12481, "height": 683}, {"file_name": "ADE_train_00012483.jpg", "width": 683, "id": 12482, "height": 512}, {"file_name": "ADE_train_00012484.jpg", "width": 770, "id": 12483, "height": 512}, {"file_name": "ADE_train_00012485.jpg", "width": 683, "id": 12484, "height": 512}, {"file_name": "ADE_train_00012486.jpg", "width": 683, "id": 12485, "height": 512}, {"file_name": "ADE_train_00012487.jpg", "width": 683, "id": 12486, "height": 512}, {"file_name": "ADE_train_00012488.jpg", "width": 683, "id": 12487, "height": 512}, {"file_name": "ADE_train_00012489.jpg", "width": 683, "id": 12488, "height": 512}, {"file_name": "ADE_train_00012490.jpg", "width": 683, "id": 12489, "height": 512}, {"file_name": "ADE_train_00012491.jpg", "width": 683, "id": 12490, "height": 512}, {"file_name": "ADE_train_00012492.jpg", "width": 683, "id": 12491, "height": 512}, {"file_name": "ADE_train_00012493.jpg", "width": 683, "id": 12492, "height": 512}, {"file_name": "ADE_train_00012494.jpg", "width": 683, "id": 12493, "height": 512}, {"file_name": "ADE_train_00012495.jpg", "width": 765, "id": 12494, "height": 512}, {"file_name": "ADE_train_00012496.jpg", "width": 683, "id": 12495, "height": 512}, {"file_name": "ADE_train_00012497.jpg", "width": 683, "id": 12496, "height": 512}, {"file_name": "ADE_train_00012498.jpg", "width": 683, "id": 12497, "height": 512}, {"file_name": "ADE_train_00012499.jpg", "width": 683, "id": 12498, "height": 512}, {"file_name": "ADE_train_00012500.jpg", "width": 683, "id": 12499, "height": 512}, {"file_name": "ADE_train_00012501.jpg", "width": 770, "id": 12500, "height": 512}, {"file_name": "ADE_train_00012502.jpg", "width": 700, "id": 12501, "height": 468}, {"file_name": "ADE_train_00012503.jpg", "width": 683, "id": 12502, "height": 512}, {"file_name": "ADE_train_00012504.jpg", "width": 683, "id": 12503, "height": 512}, {"file_name": "ADE_train_00012505.jpg", "width": 683, "id": 12504, "height": 512}, {"file_name": "ADE_train_00012506.jpg", "width": 683, "id": 12505, "height": 512}, {"file_name": "ADE_train_00012507.jpg", "width": 683, "id": 12506, "height": 512}, {"file_name": "ADE_train_00012508.jpg", "width": 683, "id": 12507, "height": 512}, {"file_name": "ADE_train_00012509.jpg", "width": 683, "id": 12508, "height": 512}, {"file_name": "ADE_train_00012510.jpg", "width": 683, "id": 12509, "height": 512}, {"file_name": "ADE_train_00012511.jpg", "width": 683, "id": 12510, "height": 512}, {"file_name": "ADE_train_00012512.jpg", "width": 576, "id": 12511, "height": 432}, {"file_name": "ADE_train_00012513.jpg", "width": 683, "id": 12512, "height": 512}, {"file_name": "ADE_train_00012514.jpg", "width": 683, "id": 12513, "height": 512}, {"file_name": "ADE_train_00012515.jpg", "width": 513, "id": 12514, "height": 512}, {"file_name": "ADE_train_00012516.jpg", "width": 683, "id": 12515, "height": 512}, {"file_name": "ADE_train_00012517.jpg", "width": 683, "id": 12516, "height": 512}, {"file_name": "ADE_train_00012518.jpg", "width": 683, "id": 12517, "height": 512}, {"file_name": "ADE_train_00012519.jpg", "width": 683, "id": 12518, "height": 512}, {"file_name": "ADE_train_00012520.jpg", "width": 683, "id": 12519, "height": 512}, {"file_name": "ADE_train_00012521.jpg", "width": 512, "id": 12520, "height": 683}, {"file_name": "ADE_train_00012522.jpg", "width": 683, "id": 12521, "height": 512}, {"file_name": "ADE_train_00012523.jpg", "width": 683, "id": 12522, "height": 512}, {"file_name": "ADE_train_00012524.jpg", "width": 683, "id": 12523, "height": 512}, {"file_name": "ADE_train_00012525.jpg", "width": 683, "id": 12524, "height": 512}, {"file_name": "ADE_train_00012526.jpg", "width": 683, "id": 12525, "height": 512}, {"file_name": "ADE_train_00012527.jpg", "width": 683, "id": 12526, "height": 512}, {"file_name": "ADE_train_00012528.jpg", "width": 683, "id": 12527, "height": 512}, {"file_name": "ADE_train_00012529.jpg", "width": 683, "id": 12528, "height": 512}, {"file_name": "ADE_train_00012530.jpg", "width": 683, "id": 12529, "height": 512}, {"file_name": "ADE_train_00012531.jpg", "width": 512, "id": 12530, "height": 683}, {"file_name": "ADE_train_00012532.jpg", "width": 683, "id": 12531, "height": 512}, {"file_name": "ADE_train_00012533.jpg", "width": 683, "id": 12532, "height": 512}, {"file_name": "ADE_train_00012534.jpg", "width": 683, "id": 12533, "height": 512}, {"file_name": "ADE_train_00012535.jpg", "width": 683, "id": 12534, "height": 512}, {"file_name": "ADE_train_00012536.jpg", "width": 683, "id": 12535, "height": 512}, {"file_name": "ADE_train_00012537.jpg", "width": 683, "id": 12536, "height": 512}, {"file_name": "ADE_train_00012538.jpg", "width": 683, "id": 12537, "height": 512}, {"file_name": "ADE_train_00012539.jpg", "width": 683, "id": 12538, "height": 512}, {"file_name": "ADE_train_00012540.jpg", "width": 683, "id": 12539, "height": 512}, {"file_name": "ADE_train_00012541.jpg", "width": 683, "id": 12540, "height": 512}, {"file_name": "ADE_train_00012542.jpg", "width": 683, "id": 12541, "height": 512}, {"file_name": "ADE_train_00012543.jpg", "width": 683, "id": 12542, "height": 512}, {"file_name": "ADE_train_00012544.jpg", "width": 683, "id": 12543, "height": 512}, {"file_name": "ADE_train_00012545.jpg", "width": 683, "id": 12544, "height": 512}, {"file_name": "ADE_train_00012546.jpg", "width": 683, "id": 12545, "height": 512}, {"file_name": "ADE_train_00012547.jpg", "width": 683, "id": 12546, "height": 512}, {"file_name": "ADE_train_00012548.jpg", "width": 683, "id": 12547, "height": 512}, {"file_name": "ADE_train_00012549.jpg", "width": 683, "id": 12548, "height": 512}, {"file_name": "ADE_train_00012550.jpg", "width": 683, "id": 12549, "height": 512}, {"file_name": "ADE_train_00012551.jpg", "width": 683, "id": 12550, "height": 512}, {"file_name": "ADE_train_00012552.jpg", "width": 512, "id": 12551, "height": 683}, {"file_name": "ADE_train_00012553.jpg", "width": 683, "id": 12552, "height": 512}, {"file_name": "ADE_train_00012554.jpg", "width": 683, "id": 12553, "height": 512}, {"file_name": "ADE_train_00012555.jpg", "width": 683, "id": 12554, "height": 512}, {"file_name": "ADE_train_00012556.jpg", "width": 683, "id": 12555, "height": 512}, {"file_name": "ADE_train_00012557.jpg", "width": 683, "id": 12556, "height": 512}, {"file_name": "ADE_train_00012558.jpg", "width": 683, "id": 12557, "height": 512}, {"file_name": "ADE_train_00012559.jpg", "width": 512, "id": 12558, "height": 683}, {"file_name": "ADE_train_00012560.jpg", "width": 683, "id": 12559, "height": 512}, {"file_name": "ADE_train_00012561.jpg", "width": 683, "id": 12560, "height": 512}, {"file_name": "ADE_train_00012562.jpg", "width": 683, "id": 12561, "height": 512}, {"file_name": "ADE_train_00012563.jpg", "width": 683, "id": 12562, "height": 512}, {"file_name": "ADE_train_00012564.jpg", "width": 683, "id": 12563, "height": 512}, {"file_name": "ADE_train_00012565.jpg", "width": 683, "id": 12564, "height": 512}, {"file_name": "ADE_train_00012566.jpg", "width": 683, "id": 12565, "height": 512}, {"file_name": "ADE_train_00012567.jpg", "width": 683, "id": 12566, "height": 512}, {"file_name": "ADE_train_00012568.jpg", "width": 683, "id": 12567, "height": 512}, {"file_name": "ADE_train_00012569.jpg", "width": 683, "id": 12568, "height": 512}, {"file_name": "ADE_train_00012570.jpg", "width": 683, "id": 12569, "height": 512}, {"file_name": "ADE_train_00012571.jpg", "width": 683, "id": 12570, "height": 512}, {"file_name": "ADE_train_00012572.jpg", "width": 683, "id": 12571, "height": 512}, {"file_name": "ADE_train_00012573.jpg", "width": 683, "id": 12572, "height": 512}, {"file_name": "ADE_train_00012574.jpg", "width": 683, "id": 12573, "height": 512}, {"file_name": "ADE_train_00012575.jpg", "width": 683, "id": 12574, "height": 512}, {"file_name": "ADE_train_00012576.jpg", "width": 683, "id": 12575, "height": 512}, {"file_name": "ADE_train_00012577.jpg", "width": 683, "id": 12576, "height": 512}, {"file_name": "ADE_train_00012578.jpg", "width": 683, "id": 12577, "height": 512}, {"file_name": "ADE_train_00012579.jpg", "width": 683, "id": 12578, "height": 512}, {"file_name": "ADE_train_00012580.jpg", "width": 683, "id": 12579, "height": 512}, {"file_name": "ADE_train_00012581.jpg", "width": 640, "id": 12580, "height": 480}, {"file_name": "ADE_train_00012582.jpg", "width": 683, "id": 12581, "height": 512}, {"file_name": "ADE_train_00012583.jpg", "width": 512, "id": 12582, "height": 683}, {"file_name": "ADE_train_00012584.jpg", "width": 683, "id": 12583, "height": 512}, {"file_name": "ADE_train_00012585.jpg", "width": 683, "id": 12584, "height": 512}, {"file_name": "ADE_train_00012586.jpg", "width": 683, "id": 12585, "height": 512}, {"file_name": "ADE_train_00012587.jpg", "width": 683, "id": 12586, "height": 512}, {"file_name": "ADE_train_00012588.jpg", "width": 512, "id": 12587, "height": 683}, {"file_name": "ADE_train_00012589.jpg", "width": 683, "id": 12588, "height": 512}, {"file_name": "ADE_train_00012590.jpg", "width": 683, "id": 12589, "height": 512}, {"file_name": "ADE_train_00012591.jpg", "width": 683, "id": 12590, "height": 512}, {"file_name": "ADE_train_00012592.jpg", "width": 757, "id": 12591, "height": 512}, {"file_name": "ADE_train_00012593.jpg", "width": 683, "id": 12592, "height": 512}, {"file_name": "ADE_train_00012594.jpg", "width": 683, "id": 12593, "height": 512}, {"file_name": "ADE_train_00012595.jpg", "width": 683, "id": 12594, "height": 512}, {"file_name": "ADE_train_00012596.jpg", "width": 512, "id": 12595, "height": 768}, {"file_name": "ADE_train_00012597.jpg", "width": 683, "id": 12596, "height": 512}, {"file_name": "ADE_train_00012598.jpg", "width": 683, "id": 12597, "height": 512}, {"file_name": "ADE_train_00012599.jpg", "width": 683, "id": 12598, "height": 512}, {"file_name": "ADE_train_00012600.jpg", "width": 683, "id": 12599, "height": 512}, {"file_name": "ADE_train_00012601.jpg", "width": 683, "id": 12600, "height": 512}, {"file_name": "ADE_train_00012602.jpg", "width": 683, "id": 12601, "height": 512}, {"file_name": "ADE_train_00012603.jpg", "width": 683, "id": 12602, "height": 512}, {"file_name": "ADE_train_00012604.jpg", "width": 683, "id": 12603, "height": 512}, {"file_name": "ADE_train_00012605.jpg", "width": 683, "id": 12604, "height": 512}, {"file_name": "ADE_train_00012606.jpg", "width": 432, "id": 12605, "height": 576}, {"file_name": "ADE_train_00012607.jpg", "width": 683, "id": 12606, "height": 512}, {"file_name": "ADE_train_00012608.jpg", "width": 683, "id": 12607, "height": 512}, {"file_name": "ADE_train_00012609.jpg", "width": 683, "id": 12608, "height": 512}, {"file_name": "ADE_train_00012610.jpg", "width": 683, "id": 12609, "height": 512}, {"file_name": "ADE_train_00012611.jpg", "width": 683, "id": 12610, "height": 512}, {"file_name": "ADE_train_00012612.jpg", "width": 683, "id": 12611, "height": 512}, {"file_name": "ADE_train_00012613.jpg", "width": 683, "id": 12612, "height": 512}, {"file_name": "ADE_train_00012614.jpg", "width": 683, "id": 12613, "height": 512}, {"file_name": "ADE_train_00012615.jpg", "width": 683, "id": 12614, "height": 512}, {"file_name": "ADE_train_00012616.jpg", "width": 683, "id": 12615, "height": 512}, {"file_name": "ADE_train_00012617.jpg", "width": 512, "id": 12616, "height": 683}, {"file_name": "ADE_train_00012618.jpg", "width": 683, "id": 12617, "height": 512}, {"file_name": "ADE_train_00012619.jpg", "width": 683, "id": 12618, "height": 512}, {"file_name": "ADE_train_00012620.jpg", "width": 683, "id": 12619, "height": 512}, {"file_name": "ADE_train_00012621.jpg", "width": 683, "id": 12620, "height": 512}, {"file_name": "ADE_train_00012622.jpg", "width": 683, "id": 12621, "height": 512}, {"file_name": "ADE_train_00012623.jpg", "width": 683, "id": 12622, "height": 512}, {"file_name": "ADE_train_00012624.jpg", "width": 640, "id": 12623, "height": 480}, {"file_name": "ADE_train_00012625.jpg", "width": 512, "id": 12624, "height": 683}, {"file_name": "ADE_train_00012626.jpg", "width": 683, "id": 12625, "height": 512}, {"file_name": "ADE_train_00012627.jpg", "width": 512, "id": 12626, "height": 683}, {"file_name": "ADE_train_00012628.jpg", "width": 683, "id": 12627, "height": 512}, {"file_name": "ADE_train_00012629.jpg", "width": 767, "id": 12628, "height": 512}, {"file_name": "ADE_train_00012630.jpg", "width": 512, "id": 12629, "height": 683}, {"file_name": "ADE_train_00012631.jpg", "width": 683, "id": 12630, "height": 512}, {"file_name": "ADE_train_00012632.jpg", "width": 683, "id": 12631, "height": 512}, {"file_name": "ADE_train_00012633.jpg", "width": 768, "id": 12632, "height": 512}, {"file_name": "ADE_train_00012634.jpg", "width": 683, "id": 12633, "height": 512}, {"file_name": "ADE_train_00012635.jpg", "width": 683, "id": 12634, "height": 512}, {"file_name": "ADE_train_00012636.jpg", "width": 768, "id": 12635, "height": 512}, {"file_name": "ADE_train_00012637.jpg", "width": 683, "id": 12636, "height": 512}, {"file_name": "ADE_train_00012638.jpg", "width": 640, "id": 12637, "height": 480}, {"file_name": "ADE_train_00012639.jpg", "width": 683, "id": 12638, "height": 512}, {"file_name": "ADE_train_00012640.jpg", "width": 683, "id": 12639, "height": 512}, {"file_name": "ADE_train_00012641.jpg", "width": 683, "id": 12640, "height": 512}, {"file_name": "ADE_train_00012642.jpg", "width": 683, "id": 12641, "height": 512}, {"file_name": "ADE_train_00012643.jpg", "width": 683, "id": 12642, "height": 512}, {"file_name": "ADE_train_00012644.jpg", "width": 683, "id": 12643, "height": 512}, {"file_name": "ADE_train_00012645.jpg", "width": 683, "id": 12644, "height": 512}, {"file_name": "ADE_train_00012646.jpg", "width": 683, "id": 12645, "height": 512}, {"file_name": "ADE_train_00012647.jpg", "width": 683, "id": 12646, "height": 512}, {"file_name": "ADE_train_00012648.jpg", "width": 683, "id": 12647, "height": 512}, {"file_name": "ADE_train_00012649.jpg", "width": 512, "id": 12648, "height": 683}, {"file_name": "ADE_train_00012650.jpg", "width": 683, "id": 12649, "height": 512}, {"file_name": "ADE_train_00012651.jpg", "width": 683, "id": 12650, "height": 512}, {"file_name": "ADE_train_00012652.jpg", "width": 683, "id": 12651, "height": 512}, {"file_name": "ADE_train_00012653.jpg", "width": 683, "id": 12652, "height": 512}, {"file_name": "ADE_train_00012654.jpg", "width": 683, "id": 12653, "height": 512}, {"file_name": "ADE_train_00012655.jpg", "width": 512, "id": 12654, "height": 683}, {"file_name": "ADE_train_00012656.jpg", "width": 512, "id": 12655, "height": 683}, {"file_name": "ADE_train_00012657.jpg", "width": 683, "id": 12656, "height": 512}, {"file_name": "ADE_train_00012658.jpg", "width": 683, "id": 12657, "height": 512}, {"file_name": "ADE_train_00012659.jpg", "width": 768, "id": 12658, "height": 512}, {"file_name": "ADE_train_00012660.jpg", "width": 683, "id": 12659, "height": 512}, {"file_name": "ADE_train_00012661.jpg", "width": 683, "id": 12660, "height": 512}, {"file_name": "ADE_train_00012662.jpg", "width": 683, "id": 12661, "height": 512}, {"file_name": "ADE_train_00012663.jpg", "width": 683, "id": 12662, "height": 512}, {"file_name": "ADE_train_00012664.jpg", "width": 770, "id": 12663, "height": 512}, {"file_name": "ADE_train_00012665.jpg", "width": 683, "id": 12664, "height": 512}, {"file_name": "ADE_train_00012666.jpg", "width": 683, "id": 12665, "height": 512}, {"file_name": "ADE_train_00012667.jpg", "width": 683, "id": 12666, "height": 512}, {"file_name": "ADE_train_00012668.jpg", "width": 683, "id": 12667, "height": 512}, {"file_name": "ADE_train_00012669.jpg", "width": 683, "id": 12668, "height": 512}, {"file_name": "ADE_train_00012670.jpg", "width": 683, "id": 12669, "height": 512}, {"file_name": "ADE_train_00012671.jpg", "width": 683, "id": 12670, "height": 512}, {"file_name": "ADE_train_00012672.jpg", "width": 683, "id": 12671, "height": 512}, {"file_name": "ADE_train_00012673.jpg", "width": 683, "id": 12672, "height": 512}, {"file_name": "ADE_train_00012674.jpg", "width": 683, "id": 12673, "height": 512}, {"file_name": "ADE_train_00012675.jpg", "width": 683, "id": 12674, "height": 512}, {"file_name": "ADE_train_00012676.jpg", "width": 683, "id": 12675, "height": 512}, {"file_name": "ADE_train_00012677.jpg", "width": 683, "id": 12676, "height": 512}, {"file_name": "ADE_train_00012678.jpg", "width": 767, "id": 12677, "height": 512}, {"file_name": "ADE_train_00012679.jpg", "width": 683, "id": 12678, "height": 512}, {"file_name": "ADE_train_00012680.jpg", "width": 683, "id": 12679, "height": 512}, {"file_name": "ADE_train_00012681.jpg", "width": 683, "id": 12680, "height": 512}, {"file_name": "ADE_train_00012682.jpg", "width": 683, "id": 12681, "height": 512}, {"file_name": "ADE_train_00012683.jpg", "width": 683, "id": 12682, "height": 512}, {"file_name": "ADE_train_00012684.jpg", "width": 683, "id": 12683, "height": 512}, {"file_name": "ADE_train_00012685.jpg", "width": 768, "id": 12684, "height": 512}, {"file_name": "ADE_train_00012686.jpg", "width": 683, "id": 12685, "height": 512}, {"file_name": "ADE_train_00012687.jpg", "width": 683, "id": 12686, "height": 512}, {"file_name": "ADE_train_00012688.jpg", "width": 683, "id": 12687, "height": 512}, {"file_name": "ADE_train_00012689.jpg", "width": 683, "id": 12688, "height": 512}, {"file_name": "ADE_train_00012690.jpg", "width": 683, "id": 12689, "height": 512}, {"file_name": "ADE_train_00012691.jpg", "width": 683, "id": 12690, "height": 512}, {"file_name": "ADE_train_00012692.jpg", "width": 683, "id": 12691, "height": 512}, {"file_name": "ADE_train_00012693.jpg", "width": 683, "id": 12692, "height": 512}, {"file_name": "ADE_train_00012694.jpg", "width": 683, "id": 12693, "height": 512}, {"file_name": "ADE_train_00012695.jpg", "width": 683, "id": 12694, "height": 512}, {"file_name": "ADE_train_00012696.jpg", "width": 512, "id": 12695, "height": 683}, {"file_name": "ADE_train_00012697.jpg", "width": 683, "id": 12696, "height": 512}, {"file_name": "ADE_train_00012698.jpg", "width": 683, "id": 12697, "height": 512}, {"file_name": "ADE_train_00012699.jpg", "width": 683, "id": 12698, "height": 512}, {"file_name": "ADE_train_00012700.jpg", "width": 683, "id": 12699, "height": 512}, {"file_name": "ADE_train_00012701.jpg", "width": 683, "id": 12700, "height": 512}, {"file_name": "ADE_train_00012702.jpg", "width": 683, "id": 12701, "height": 512}, {"file_name": "ADE_train_00012703.jpg", "width": 683, "id": 12702, "height": 512}, {"file_name": "ADE_train_00012704.jpg", "width": 683, "id": 12703, "height": 512}, {"file_name": "ADE_train_00012705.jpg", "width": 683, "id": 12704, "height": 512}, {"file_name": "ADE_train_00012706.jpg", "width": 683, "id": 12705, "height": 512}, {"file_name": "ADE_train_00012707.jpg", "width": 683, "id": 12706, "height": 512}, {"file_name": "ADE_train_00012708.jpg", "width": 683, "id": 12707, "height": 512}, {"file_name": "ADE_train_00012709.jpg", "width": 683, "id": 12708, "height": 512}, {"file_name": "ADE_train_00012710.jpg", "width": 683, "id": 12709, "height": 512}, {"file_name": "ADE_train_00012711.jpg", "width": 683, "id": 12710, "height": 512}, {"file_name": "ADE_train_00012712.jpg", "width": 683, "id": 12711, "height": 512}, {"file_name": "ADE_train_00012713.jpg", "width": 683, "id": 12712, "height": 512}, {"file_name": "ADE_train_00012714.jpg", "width": 683, "id": 12713, "height": 512}, {"file_name": "ADE_train_00012715.jpg", "width": 683, "id": 12714, "height": 512}, {"file_name": "ADE_train_00012716.jpg", "width": 683, "id": 12715, "height": 512}, {"file_name": "ADE_train_00012717.jpg", "width": 683, "id": 12716, "height": 512}, {"file_name": "ADE_train_00012718.jpg", "width": 683, "id": 12717, "height": 512}, {"file_name": "ADE_train_00012719.jpg", "width": 512, "id": 12718, "height": 683}, {"file_name": "ADE_train_00012720.jpg", "width": 512, "id": 12719, "height": 683}, {"file_name": "ADE_train_00012721.jpg", "width": 512, "id": 12720, "height": 683}, {"file_name": "ADE_train_00012722.jpg", "width": 683, "id": 12721, "height": 512}, {"file_name": "ADE_train_00012723.jpg", "width": 683, "id": 12722, "height": 512}, {"file_name": "ADE_train_00012724.jpg", "width": 683, "id": 12723, "height": 512}, {"file_name": "ADE_train_00012725.jpg", "width": 683, "id": 12724, "height": 512}, {"file_name": "ADE_train_00012726.jpg", "width": 683, "id": 12725, "height": 512}, {"file_name": "ADE_train_00012727.jpg", "width": 683, "id": 12726, "height": 512}, {"file_name": "ADE_train_00012728.jpg", "width": 683, "id": 12727, "height": 512}, {"file_name": "ADE_train_00012729.jpg", "width": 683, "id": 12728, "height": 512}, {"file_name": "ADE_train_00012730.jpg", "width": 431, "id": 12729, "height": 512}, {"file_name": "ADE_train_00012731.jpg", "width": 683, "id": 12730, "height": 512}, {"file_name": "ADE_train_00012732.jpg", "width": 683, "id": 12731, "height": 512}, {"file_name": "ADE_train_00012733.jpg", "width": 768, "id": 12732, "height": 512}, {"file_name": "ADE_train_00012734.jpg", "width": 683, "id": 12733, "height": 512}, {"file_name": "ADE_train_00012735.jpg", "width": 568, "id": 12734, "height": 426}, {"file_name": "ADE_train_00012736.jpg", "width": 683, "id": 12735, "height": 512}, {"file_name": "ADE_train_00012737.jpg", "width": 683, "id": 12736, "height": 512}, {"file_name": "ADE_train_00012738.jpg", "width": 640, "id": 12737, "height": 480}, {"file_name": "ADE_train_00012739.jpg", "width": 683, "id": 12738, "height": 512}, {"file_name": "ADE_train_00012740.jpg", "width": 683, "id": 12739, "height": 512}, {"file_name": "ADE_train_00012741.jpg", "width": 683, "id": 12740, "height": 512}, {"file_name": "ADE_train_00012742.jpg", "width": 1385, "id": 12741, "height": 512}, {"file_name": "ADE_train_00012743.jpg", "width": 512, "id": 12742, "height": 683}, {"file_name": "ADE_train_00012744.jpg", "width": 683, "id": 12743, "height": 512}, {"file_name": "ADE_train_00012745.jpg", "width": 683, "id": 12744, "height": 512}, {"file_name": "ADE_train_00012746.jpg", "width": 683, "id": 12745, "height": 512}, {"file_name": "ADE_train_00012747.jpg", "width": 683, "id": 12746, "height": 512}, {"file_name": "ADE_train_00012748.jpg", "width": 683, "id": 12747, "height": 512}, {"file_name": "ADE_train_00012749.jpg", "width": 683, "id": 12748, "height": 512}, {"file_name": "ADE_train_00012750.jpg", "width": 683, "id": 12749, "height": 512}, {"file_name": "ADE_train_00012751.jpg", "width": 768, "id": 12750, "height": 512}, {"file_name": "ADE_train_00012752.jpg", "width": 683, "id": 12751, "height": 512}, {"file_name": "ADE_train_00012753.jpg", "width": 683, "id": 12752, "height": 512}, {"file_name": "ADE_train_00012754.jpg", "width": 683, "id": 12753, "height": 512}, {"file_name": "ADE_train_00012755.jpg", "width": 683, "id": 12754, "height": 512}, {"file_name": "ADE_train_00012756.jpg", "width": 683, "id": 12755, "height": 512}, {"file_name": "ADE_train_00012757.jpg", "width": 683, "id": 12756, "height": 512}, {"file_name": "ADE_train_00012758.jpg", "width": 683, "id": 12757, "height": 512}, {"file_name": "ADE_train_00012759.jpg", "width": 683, "id": 12758, "height": 512}, {"file_name": "ADE_train_00012760.jpg", "width": 683, "id": 12759, "height": 512}, {"file_name": "ADE_train_00012761.jpg", "width": 480, "id": 12760, "height": 640}, {"file_name": "ADE_train_00012762.jpg", "width": 683, "id": 12761, "height": 512}, {"file_name": "ADE_train_00012763.jpg", "width": 683, "id": 12762, "height": 512}, {"file_name": "ADE_train_00012764.jpg", "width": 683, "id": 12763, "height": 512}, {"file_name": "ADE_train_00012765.jpg", "width": 568, "id": 12764, "height": 426}, {"file_name": "ADE_train_00012766.jpg", "width": 683, "id": 12765, "height": 512}, {"file_name": "ADE_train_00012767.jpg", "width": 420, "id": 12766, "height": 420}, {"file_name": "ADE_train_00012768.jpg", "width": 683, "id": 12767, "height": 512}, {"file_name": "ADE_train_00012769.jpg", "width": 512, "id": 12768, "height": 395}, {"file_name": "ADE_train_00012770.jpg", "width": 768, "id": 12769, "height": 512}, {"file_name": "ADE_train_00012771.jpg", "width": 683, "id": 12770, "height": 512}, {"file_name": "ADE_train_00012772.jpg", "width": 683, "id": 12771, "height": 512}, {"file_name": "ADE_train_00012773.jpg", "width": 683, "id": 12772, "height": 512}, {"file_name": "ADE_train_00012774.jpg", "width": 512, "id": 12773, "height": 683}, {"file_name": "ADE_train_00012775.jpg", "width": 683, "id": 12774, "height": 512}, {"file_name": "ADE_train_00012776.jpg", "width": 683, "id": 12775, "height": 512}, {"file_name": "ADE_train_00012777.jpg", "width": 683, "id": 12776, "height": 512}, {"file_name": "ADE_train_00012778.jpg", "width": 683, "id": 12777, "height": 512}, {"file_name": "ADE_train_00012779.jpg", "width": 683, "id": 12778, "height": 512}, {"file_name": "ADE_train_00012780.jpg", "width": 683, "id": 12779, "height": 512}, {"file_name": "ADE_train_00012781.jpg", "width": 683, "id": 12780, "height": 512}, {"file_name": "ADE_train_00012782.jpg", "width": 683, "id": 12781, "height": 512}, {"file_name": "ADE_train_00012783.jpg", "width": 683, "id": 12782, "height": 512}, {"file_name": "ADE_train_00012784.jpg", "width": 683, "id": 12783, "height": 512}, {"file_name": "ADE_train_00012785.jpg", "width": 683, "id": 12784, "height": 512}, {"file_name": "ADE_train_00012786.jpg", "width": 683, "id": 12785, "height": 512}, {"file_name": "ADE_train_00012787.jpg", "width": 683, "id": 12786, "height": 512}, {"file_name": "ADE_train_00012788.jpg", "width": 683, "id": 12787, "height": 512}, {"file_name": "ADE_train_00012789.jpg", "width": 683, "id": 12788, "height": 512}, {"file_name": "ADE_train_00012790.jpg", "width": 683, "id": 12789, "height": 512}, {"file_name": "ADE_train_00012791.jpg", "width": 683, "id": 12790, "height": 512}, {"file_name": "ADE_train_00012792.jpg", "width": 683, "id": 12791, "height": 512}, {"file_name": "ADE_train_00012793.jpg", "width": 683, "id": 12792, "height": 512}, {"file_name": "ADE_train_00012794.jpg", "width": 683, "id": 12793, "height": 512}, {"file_name": "ADE_train_00012795.jpg", "width": 683, "id": 12794, "height": 512}, {"file_name": "ADE_train_00012796.jpg", "width": 683, "id": 12795, "height": 512}, {"file_name": "ADE_train_00012797.jpg", "width": 512, "id": 12796, "height": 683}, {"file_name": "ADE_train_00012798.jpg", "width": 683, "id": 12797, "height": 512}, {"file_name": "ADE_train_00012799.jpg", "width": 683, "id": 12798, "height": 512}, {"file_name": "ADE_train_00012800.jpg", "width": 683, "id": 12799, "height": 512}, {"file_name": "ADE_train_00012801.jpg", "width": 683, "id": 12800, "height": 512}, {"file_name": "ADE_train_00012802.jpg", "width": 512, "id": 12801, "height": 683}, {"file_name": "ADE_train_00012803.jpg", "width": 683, "id": 12802, "height": 512}, {"file_name": "ADE_train_00012804.jpg", "width": 568, "id": 12803, "height": 426}, {"file_name": "ADE_train_00012805.jpg", "width": 683, "id": 12804, "height": 512}, {"file_name": "ADE_train_00012806.jpg", "width": 568, "id": 12805, "height": 426}, {"file_name": "ADE_train_00012807.jpg", "width": 683, "id": 12806, "height": 512}, {"file_name": "ADE_train_00012808.jpg", "width": 683, "id": 12807, "height": 512}, {"file_name": "ADE_train_00012809.jpg", "width": 683, "id": 12808, "height": 512}, {"file_name": "ADE_train_00012810.jpg", "width": 683, "id": 12809, "height": 512}, {"file_name": "ADE_train_00012811.jpg", "width": 512, "id": 12810, "height": 683}, {"file_name": "ADE_train_00012812.jpg", "width": 683, "id": 12811, "height": 512}, {"file_name": "ADE_train_00012813.jpg", "width": 512, "id": 12812, "height": 683}, {"file_name": "ADE_train_00012814.jpg", "width": 640, "id": 12813, "height": 427}, {"file_name": "ADE_train_00012815.jpg", "width": 768, "id": 12814, "height": 512}, {"file_name": "ADE_train_00012816.jpg", "width": 683, "id": 12815, "height": 512}, {"file_name": "ADE_train_00012817.jpg", "width": 683, "id": 12816, "height": 512}, {"file_name": "ADE_train_00012818.jpg", "width": 768, "id": 12817, "height": 512}, {"file_name": "ADE_train_00012819.jpg", "width": 693, "id": 12818, "height": 512}, {"file_name": "ADE_train_00012820.jpg", "width": 683, "id": 12819, "height": 512}, {"file_name": "ADE_train_00012821.jpg", "width": 768, "id": 12820, "height": 512}, {"file_name": "ADE_train_00012822.jpg", "width": 683, "id": 12821, "height": 512}, {"file_name": "ADE_train_00012823.jpg", "width": 683, "id": 12822, "height": 512}, {"file_name": "ADE_train_00012824.jpg", "width": 683, "id": 12823, "height": 512}, {"file_name": "ADE_train_00012825.jpg", "width": 683, "id": 12824, "height": 512}, {"file_name": "ADE_train_00012826.jpg", "width": 683, "id": 12825, "height": 512}, {"file_name": "ADE_train_00012827.jpg", "width": 683, "id": 12826, "height": 512}, {"file_name": "ADE_train_00012828.jpg", "width": 683, "id": 12827, "height": 512}, {"file_name": "ADE_train_00012829.jpg", "width": 683, "id": 12828, "height": 512}, {"file_name": "ADE_train_00012830.jpg", "width": 768, "id": 12829, "height": 512}, {"file_name": "ADE_train_00012831.jpg", "width": 683, "id": 12830, "height": 512}, {"file_name": "ADE_train_00012832.jpg", "width": 683, "id": 12831, "height": 512}, {"file_name": "ADE_train_00012833.jpg", "width": 683, "id": 12832, "height": 512}, {"file_name": "ADE_train_00012834.jpg", "width": 683, "id": 12833, "height": 512}, {"file_name": "ADE_train_00012835.jpg", "width": 683, "id": 12834, "height": 512}, {"file_name": "ADE_train_00012836.jpg", "width": 683, "id": 12835, "height": 512}, {"file_name": "ADE_train_00012837.jpg", "width": 683, "id": 12836, "height": 512}, {"file_name": "ADE_train_00012838.jpg", "width": 683, "id": 12837, "height": 512}, {"file_name": "ADE_train_00012839.jpg", "width": 683, "id": 12838, "height": 512}, {"file_name": "ADE_train_00012840.jpg", "width": 683, "id": 12839, "height": 512}, {"file_name": "ADE_train_00012841.jpg", "width": 683, "id": 12840, "height": 512}, {"file_name": "ADE_train_00012842.jpg", "width": 683, "id": 12841, "height": 512}, {"file_name": "ADE_train_00012843.jpg", "width": 683, "id": 12842, "height": 512}, {"file_name": "ADE_train_00012844.jpg", "width": 512, "id": 12843, "height": 683}, {"file_name": "ADE_train_00012845.jpg", "width": 683, "id": 12844, "height": 512}, {"file_name": "ADE_train_00012846.jpg", "width": 683, "id": 12845, "height": 512}, {"file_name": "ADE_train_00012847.jpg", "width": 683, "id": 12846, "height": 512}, {"file_name": "ADE_train_00012848.jpg", "width": 683, "id": 12847, "height": 512}, {"file_name": "ADE_train_00012849.jpg", "width": 684, "id": 12848, "height": 512}, {"file_name": "ADE_train_00012850.jpg", "width": 512, "id": 12849, "height": 683}, {"file_name": "ADE_train_00012851.jpg", "width": 683, "id": 12850, "height": 512}, {"file_name": "ADE_train_00012852.jpg", "width": 683, "id": 12851, "height": 512}, {"file_name": "ADE_train_00012853.jpg", "width": 512, "id": 12852, "height": 683}, {"file_name": "ADE_train_00012854.jpg", "width": 683, "id": 12853, "height": 512}, {"file_name": "ADE_train_00012855.jpg", "width": 768, "id": 12854, "height": 512}, {"file_name": "ADE_train_00012856.jpg", "width": 683, "id": 12855, "height": 512}, {"file_name": "ADE_train_00012857.jpg", "width": 683, "id": 12856, "height": 512}, {"file_name": "ADE_train_00012858.jpg", "width": 683, "id": 12857, "height": 512}, {"file_name": "ADE_train_00012859.jpg", "width": 683, "id": 12858, "height": 512}, {"file_name": "ADE_train_00012860.jpg", "width": 683, "id": 12859, "height": 512}, {"file_name": "ADE_train_00012861.jpg", "width": 512, "id": 12860, "height": 683}, {"file_name": "ADE_train_00012862.jpg", "width": 683, "id": 12861, "height": 512}, {"file_name": "ADE_train_00012863.jpg", "width": 683, "id": 12862, "height": 512}, {"file_name": "ADE_train_00012864.jpg", "width": 683, "id": 12863, "height": 512}, {"file_name": "ADE_train_00012865.jpg", "width": 683, "id": 12864, "height": 512}, {"file_name": "ADE_train_00012866.jpg", "width": 683, "id": 12865, "height": 512}, {"file_name": "ADE_train_00012867.jpg", "width": 683, "id": 12866, "height": 512}, {"file_name": "ADE_train_00012868.jpg", "width": 683, "id": 12867, "height": 512}, {"file_name": "ADE_train_00012869.jpg", "width": 683, "id": 12868, "height": 512}, {"file_name": "ADE_train_00012870.jpg", "width": 683, "id": 12869, "height": 512}, {"file_name": "ADE_train_00012871.jpg", "width": 683, "id": 12870, "height": 512}, {"file_name": "ADE_train_00012872.jpg", "width": 683, "id": 12871, "height": 512}, {"file_name": "ADE_train_00012873.jpg", "width": 683, "id": 12872, "height": 512}, {"file_name": "ADE_train_00012874.jpg", "width": 683, "id": 12873, "height": 512}, {"file_name": "ADE_train_00012875.jpg", "width": 683, "id": 12874, "height": 512}, {"file_name": "ADE_train_00012876.jpg", "width": 683, "id": 12875, "height": 512}, {"file_name": "ADE_train_00012877.jpg", "width": 683, "id": 12876, "height": 512}, {"file_name": "ADE_train_00012878.jpg", "width": 683, "id": 12877, "height": 512}, {"file_name": "ADE_train_00012879.jpg", "width": 683, "id": 12878, "height": 512}, {"file_name": "ADE_train_00012880.jpg", "width": 683, "id": 12879, "height": 512}, {"file_name": "ADE_train_00012881.jpg", "width": 568, "id": 12880, "height": 426}, {"file_name": "ADE_train_00012882.jpg", "width": 683, "id": 12881, "height": 512}, {"file_name": "ADE_train_00012883.jpg", "width": 683, "id": 12882, "height": 512}, {"file_name": "ADE_train_00012884.jpg", "width": 683, "id": 12883, "height": 512}, {"file_name": "ADE_train_00012885.jpg", "width": 683, "id": 12884, "height": 512}, {"file_name": "ADE_train_00012886.jpg", "width": 683, "id": 12885, "height": 512}, {"file_name": "ADE_train_00012887.jpg", "width": 683, "id": 12886, "height": 512}, {"file_name": "ADE_train_00012888.jpg", "width": 683, "id": 12887, "height": 512}, {"file_name": "ADE_train_00012889.jpg", "width": 683, "id": 12888, "height": 512}, {"file_name": "ADE_train_00012890.jpg", "width": 743, "id": 12889, "height": 512}, {"file_name": "ADE_train_00012891.jpg", "width": 683, "id": 12890, "height": 512}, {"file_name": "ADE_train_00012892.jpg", "width": 512, "id": 12891, "height": 683}, {"file_name": "ADE_train_00012893.jpg", "width": 683, "id": 12892, "height": 512}, {"file_name": "ADE_train_00012894.jpg", "width": 750, "id": 12893, "height": 512}, {"file_name": "ADE_train_00012895.jpg", "width": 683, "id": 12894, "height": 512}, {"file_name": "ADE_train_00012896.jpg", "width": 683, "id": 12895, "height": 512}, {"file_name": "ADE_train_00012897.jpg", "width": 683, "id": 12896, "height": 512}, {"file_name": "ADE_train_00012898.jpg", "width": 683, "id": 12897, "height": 512}, {"file_name": "ADE_train_00012899.jpg", "width": 683, "id": 12898, "height": 512}, {"file_name": "ADE_train_00012900.jpg", "width": 683, "id": 12899, "height": 512}, {"file_name": "ADE_train_00012901.jpg", "width": 683, "id": 12900, "height": 512}, {"file_name": "ADE_train_00012902.jpg", "width": 512, "id": 12901, "height": 683}, {"file_name": "ADE_train_00012903.jpg", "width": 683, "id": 12902, "height": 512}, {"file_name": "ADE_train_00012904.jpg", "width": 683, "id": 12903, "height": 512}, {"file_name": "ADE_train_00012905.jpg", "width": 683, "id": 12904, "height": 512}, {"file_name": "ADE_train_00012906.jpg", "width": 683, "id": 12905, "height": 512}, {"file_name": "ADE_train_00012907.jpg", "width": 480, "id": 12906, "height": 640}, {"file_name": "ADE_train_00012908.jpg", "width": 714, "id": 12907, "height": 512}, {"file_name": "ADE_train_00012909.jpg", "width": 683, "id": 12908, "height": 512}, {"file_name": "ADE_train_00012910.jpg", "width": 683, "id": 12909, "height": 512}, {"file_name": "ADE_train_00012911.jpg", "width": 683, "id": 12910, "height": 512}, {"file_name": "ADE_train_00012912.jpg", "width": 683, "id": 12911, "height": 512}, {"file_name": "ADE_train_00012913.jpg", "width": 700, "id": 12912, "height": 468}, {"file_name": "ADE_train_00012914.jpg", "width": 683, "id": 12913, "height": 512}, {"file_name": "ADE_train_00012915.jpg", "width": 512, "id": 12914, "height": 683}, {"file_name": "ADE_train_00012916.jpg", "width": 683, "id": 12915, "height": 512}, {"file_name": "ADE_train_00012917.jpg", "width": 768, "id": 12916, "height": 512}, {"file_name": "ADE_train_00012918.jpg", "width": 683, "id": 12917, "height": 512}, {"file_name": "ADE_train_00012919.jpg", "width": 683, "id": 12918, "height": 512}, {"file_name": "ADE_train_00012920.jpg", "width": 683, "id": 12919, "height": 512}, {"file_name": "ADE_train_00012921.jpg", "width": 683, "id": 12920, "height": 512}, {"file_name": "ADE_train_00012922.jpg", "width": 683, "id": 12921, "height": 512}, {"file_name": "ADE_train_00012923.jpg", "width": 683, "id": 12922, "height": 512}, {"file_name": "ADE_train_00012924.jpg", "width": 683, "id": 12923, "height": 512}, {"file_name": "ADE_train_00012925.jpg", "width": 683, "id": 12924, "height": 512}, {"file_name": "ADE_train_00012926.jpg", "width": 683, "id": 12925, "height": 512}, {"file_name": "ADE_train_00012927.jpg", "width": 640, "id": 12926, "height": 480}, {"file_name": "ADE_train_00012928.jpg", "width": 683, "id": 12927, "height": 512}, {"file_name": "ADE_train_00012929.jpg", "width": 683, "id": 12928, "height": 512}, {"file_name": "ADE_train_00012930.jpg", "width": 683, "id": 12929, "height": 512}, {"file_name": "ADE_train_00012931.jpg", "width": 683, "id": 12930, "height": 512}, {"file_name": "ADE_train_00012932.jpg", "width": 683, "id": 12931, "height": 512}, {"file_name": "ADE_train_00012933.jpg", "width": 683, "id": 12932, "height": 512}, {"file_name": "ADE_train_00012934.jpg", "width": 683, "id": 12933, "height": 512}, {"file_name": "ADE_train_00012935.jpg", "width": 683, "id": 12934, "height": 512}, {"file_name": "ADE_train_00012936.jpg", "width": 683, "id": 12935, "height": 512}, {"file_name": "ADE_train_00012937.jpg", "width": 683, "id": 12936, "height": 512}, {"file_name": "ADE_train_00012938.jpg", "width": 683, "id": 12937, "height": 512}, {"file_name": "ADE_train_00012939.jpg", "width": 683, "id": 12938, "height": 512}, {"file_name": "ADE_train_00012940.jpg", "width": 683, "id": 12939, "height": 512}, {"file_name": "ADE_train_00012941.jpg", "width": 683, "id": 12940, "height": 512}, {"file_name": "ADE_train_00012942.jpg", "width": 683, "id": 12941, "height": 512}, {"file_name": "ADE_train_00012943.jpg", "width": 683, "id": 12942, "height": 512}, {"file_name": "ADE_train_00012944.jpg", "width": 683, "id": 12943, "height": 512}, {"file_name": "ADE_train_00012945.jpg", "width": 683, "id": 12944, "height": 512}, {"file_name": "ADE_train_00012946.jpg", "width": 683, "id": 12945, "height": 512}, {"file_name": "ADE_train_00012947.jpg", "width": 683, "id": 12946, "height": 512}, {"file_name": "ADE_train_00012948.jpg", "width": 683, "id": 12947, "height": 512}, {"file_name": "ADE_train_00012949.jpg", "width": 683, "id": 12948, "height": 512}, {"file_name": "ADE_train_00012950.jpg", "width": 683, "id": 12949, "height": 512}, {"file_name": "ADE_train_00012951.jpg", "width": 512, "id": 12950, "height": 683}, {"file_name": "ADE_train_00012952.jpg", "width": 512, "id": 12951, "height": 683}, {"file_name": "ADE_train_00012953.jpg", "width": 683, "id": 12952, "height": 512}, {"file_name": "ADE_train_00012954.jpg", "width": 683, "id": 12953, "height": 512}, {"file_name": "ADE_train_00012955.jpg", "width": 683, "id": 12954, "height": 512}, {"file_name": "ADE_train_00012956.jpg", "width": 683, "id": 12955, "height": 512}, {"file_name": "ADE_train_00012957.jpg", "width": 683, "id": 12956, "height": 512}, {"file_name": "ADE_train_00012958.jpg", "width": 683, "id": 12957, "height": 512}, {"file_name": "ADE_train_00012959.jpg", "width": 683, "id": 12958, "height": 512}, {"file_name": "ADE_train_00012960.jpg", "width": 683, "id": 12959, "height": 512}, {"file_name": "ADE_train_00012961.jpg", "width": 683, "id": 12960, "height": 512}, {"file_name": "ADE_train_00012962.jpg", "width": 683, "id": 12961, "height": 512}, {"file_name": "ADE_train_00012963.jpg", "width": 683, "id": 12962, "height": 512}, {"file_name": "ADE_train_00012964.jpg", "width": 683, "id": 12963, "height": 512}, {"file_name": "ADE_train_00012965.jpg", "width": 683, "id": 12964, "height": 512}, {"file_name": "ADE_train_00012966.jpg", "width": 512, "id": 12965, "height": 683}, {"file_name": "ADE_train_00012967.jpg", "width": 683, "id": 12966, "height": 512}, {"file_name": "ADE_train_00012968.jpg", "width": 512, "id": 12967, "height": 683}, {"file_name": "ADE_train_00012969.jpg", "width": 683, "id": 12968, "height": 512}, {"file_name": "ADE_train_00012970.jpg", "width": 560, "id": 12969, "height": 420}, {"file_name": "ADE_train_00012971.jpg", "width": 683, "id": 12970, "height": 512}, {"file_name": "ADE_train_00012972.jpg", "width": 683, "id": 12971, "height": 512}, {"file_name": "ADE_train_00012973.jpg", "width": 683, "id": 12972, "height": 512}, {"file_name": "ADE_train_00012974.jpg", "width": 683, "id": 12973, "height": 512}, {"file_name": "ADE_train_00012975.jpg", "width": 683, "id": 12974, "height": 512}, {"file_name": "ADE_train_00012976.jpg", "width": 683, "id": 12975, "height": 512}, {"file_name": "ADE_train_00012977.jpg", "width": 683, "id": 12976, "height": 512}, {"file_name": "ADE_train_00012978.jpg", "width": 640, "id": 12977, "height": 480}, {"file_name": "ADE_train_00012979.jpg", "width": 683, "id": 12978, "height": 512}, {"file_name": "ADE_train_00012980.jpg", "width": 683, "id": 12979, "height": 512}, {"file_name": "ADE_train_00012981.jpg", "width": 683, "id": 12980, "height": 512}, {"file_name": "ADE_train_00012982.jpg", "width": 683, "id": 12981, "height": 512}, {"file_name": "ADE_train_00012983.jpg", "width": 683, "id": 12982, "height": 512}, {"file_name": "ADE_train_00012984.jpg", "width": 256, "id": 12983, "height": 256}, {"file_name": "ADE_train_00012985.jpg", "width": 455, "id": 12984, "height": 243}, {"file_name": "ADE_train_00012986.jpg", "width": 256, "id": 12985, "height": 256}, {"file_name": "ADE_train_00012987.jpg", "width": 450, "id": 12986, "height": 253}, {"file_name": "ADE_train_00012988.jpg", "width": 256, "id": 12987, "height": 256}, {"file_name": "ADE_train_00012989.jpg", "width": 640, "id": 12988, "height": 480}, {"file_name": "ADE_train_00012990.jpg", "width": 375, "id": 12989, "height": 351}, {"file_name": "ADE_train_00012991.jpg", "width": 459, "id": 12990, "height": 354}, {"file_name": "ADE_train_00012992.jpg", "width": 256, "id": 12991, "height": 256}, {"file_name": "ADE_train_00012993.jpg", "width": 768, "id": 12992, "height": 512}, {"file_name": "ADE_train_00012994.jpg", "width": 700, "id": 12993, "height": 468}, {"file_name": "ADE_train_00012995.jpg", "width": 284, "id": 12994, "height": 440}, {"file_name": "ADE_train_00012996.jpg", "width": 270, "id": 12995, "height": 203}, {"file_name": "ADE_train_00012997.jpg", "width": 683, "id": 12996, "height": 512}, {"file_name": "ADE_train_00012998.jpg", "width": 256, "id": 12997, "height": 256}, {"file_name": "ADE_train_00012999.jpg", "width": 256, "id": 12998, "height": 256}, {"file_name": "ADE_train_00013000.jpg", "width": 256, "id": 12999, "height": 256}, {"file_name": "ADE_train_00013001.jpg", "width": 256, "id": 13000, "height": 256}, {"file_name": "ADE_train_00013002.jpg", "width": 354, "id": 13001, "height": 227}, {"file_name": "ADE_train_00013003.jpg", "width": 256, "id": 13002, "height": 256}, {"file_name": "ADE_train_00013004.jpg", "width": 256, "id": 13003, "height": 256}, {"file_name": "ADE_train_00013005.jpg", "width": 705, "id": 13004, "height": 412}, {"file_name": "ADE_train_00013006.jpg", "width": 400, "id": 13005, "height": 264}, {"file_name": "ADE_train_00013007.jpg", "width": 501, "id": 13006, "height": 400}, {"file_name": "ADE_train_00013008.jpg", "width": 300, "id": 13007, "height": 206}, {"file_name": "ADE_train_00013009.jpg", "width": 256, "id": 13008, "height": 256}, {"file_name": "ADE_train_00013010.jpg", "width": 356, "id": 13009, "height": 333}, {"file_name": "ADE_train_00013011.jpg", "width": 256, "id": 13010, "height": 256}, {"file_name": "ADE_train_00013012.jpg", "width": 256, "id": 13011, "height": 256}, {"file_name": "ADE_train_00013013.jpg", "width": 512, "id": 13012, "height": 773}, {"file_name": "ADE_train_00013014.jpg", "width": 770, "id": 13013, "height": 512}, {"file_name": "ADE_train_00013015.jpg", "width": 450, "id": 13014, "height": 600}, {"file_name": "ADE_train_00013016.jpg", "width": 640, "id": 13015, "height": 480}, {"file_name": "ADE_train_00013017.jpg", "width": 256, "id": 13016, "height": 256}, {"file_name": "ADE_train_00013018.jpg", "width": 256, "id": 13017, "height": 256}, {"file_name": "ADE_train_00013019.jpg", "width": 350, "id": 13018, "height": 519}, {"file_name": "ADE_train_00013020.jpg", "width": 623, "id": 13019, "height": 512}, {"file_name": "ADE_train_00013021.jpg", "width": 256, "id": 13020, "height": 256}, {"file_name": "ADE_train_00013022.jpg", "width": 256, "id": 13021, "height": 256}, {"file_name": "ADE_train_00013023.jpg", "width": 331, "id": 13022, "height": 245}, {"file_name": "ADE_train_00013024.jpg", "width": 296, "id": 13023, "height": 222}, {"file_name": "ADE_train_00013025.jpg", "width": 450, "id": 13024, "height": 366}, {"file_name": "ADE_train_00013026.jpg", "width": 300, "id": 13025, "height": 248}, {"file_name": "ADE_train_00013027.jpg", "width": 246, "id": 13026, "height": 310}, {"file_name": "ADE_train_00013028.jpg", "width": 309, "id": 13027, "height": 308}, {"file_name": "ADE_train_00013029.jpg", "width": 640, "id": 13028, "height": 480}, {"file_name": "ADE_train_00013030.jpg", "width": 256, "id": 13029, "height": 256}, {"file_name": "ADE_train_00013031.jpg", "width": 292, "id": 13030, "height": 216}, {"file_name": "ADE_train_00013032.jpg", "width": 256, "id": 13031, "height": 256}, {"file_name": "ADE_train_00013033.jpg", "width": 256, "id": 13032, "height": 256}, {"file_name": "ADE_train_00013034.jpg", "width": 450, "id": 13033, "height": 338}, {"file_name": "ADE_train_00013035.jpg", "width": 226, "id": 13034, "height": 146}, {"file_name": "ADE_train_00013036.jpg", "width": 256, "id": 13035, "height": 256}, {"file_name": "ADE_train_00013037.jpg", "width": 375, "id": 13036, "height": 303}, {"file_name": "ADE_train_00013038.jpg", "width": 300, "id": 13037, "height": 225}, {"file_name": "ADE_train_00013039.jpg", "width": 335, "id": 13038, "height": 516}, {"file_name": "ADE_train_00013040.jpg", "width": 500, "id": 13039, "height": 285}, {"file_name": "ADE_train_00013041.jpg", "width": 768, "id": 13040, "height": 512}, {"file_name": "ADE_train_00013042.jpg", "width": 256, "id": 13041, "height": 256}, {"file_name": "ADE_train_00013043.jpg", "width": 256, "id": 13042, "height": 256}, {"file_name": "ADE_train_00013044.jpg", "width": 250, "id": 13043, "height": 222}, {"file_name": "ADE_train_00013045.jpg", "width": 256, "id": 13044, "height": 256}, {"file_name": "ADE_train_00013046.jpg", "width": 256, "id": 13045, "height": 256}, {"file_name": "ADE_train_00013047.jpg", "width": 371, "id": 13046, "height": 225}, {"file_name": "ADE_train_00013048.jpg", "width": 600, "id": 13047, "height": 450}, {"file_name": "ADE_train_00013049.jpg", "width": 256, "id": 13048, "height": 256}, {"file_name": "ADE_train_00013050.jpg", "width": 256, "id": 13049, "height": 256}, {"file_name": "ADE_train_00013051.jpg", "width": 350, "id": 13050, "height": 200}, {"file_name": "ADE_train_00013052.jpg", "width": 694, "id": 13051, "height": 512}, {"file_name": "ADE_train_00013053.jpg", "width": 240, "id": 13052, "height": 183}, {"file_name": "ADE_train_00013054.jpg", "width": 400, "id": 13053, "height": 533}, {"file_name": "ADE_train_00013055.jpg", "width": 375, "id": 13054, "height": 500}, {"file_name": "ADE_train_00013056.jpg", "width": 256, "id": 13055, "height": 256}, {"file_name": "ADE_train_00013057.jpg", "width": 420, "id": 13056, "height": 305}, {"file_name": "ADE_train_00013058.jpg", "width": 432, "id": 13057, "height": 384}, {"file_name": "ADE_train_00013059.jpg", "width": 250, "id": 13058, "height": 160}, {"file_name": "ADE_train_00013060.jpg", "width": 683, "id": 13059, "height": 512}, {"file_name": "ADE_train_00013061.jpg", "width": 256, "id": 13060, "height": 256}, {"file_name": "ADE_train_00013062.jpg", "width": 400, "id": 13061, "height": 300}, {"file_name": "ADE_train_00013063.jpg", "width": 470, "id": 13062, "height": 327}, {"file_name": "ADE_train_00013064.jpg", "width": 256, "id": 13063, "height": 256}, {"file_name": "ADE_train_00013065.jpg", "width": 328, "id": 13064, "height": 216}, {"file_name": "ADE_train_00013066.jpg", "width": 400, "id": 13065, "height": 388}, {"file_name": "ADE_train_00013067.jpg", "width": 683, "id": 13066, "height": 512}, {"file_name": "ADE_train_00013068.jpg", "width": 298, "id": 13067, "height": 201}, {"file_name": "ADE_train_00013069.jpg", "width": 600, "id": 13068, "height": 392}, {"file_name": "ADE_train_00013070.jpg", "width": 767, "id": 13069, "height": 512}, {"file_name": "ADE_train_00013071.jpg", "width": 256, "id": 13070, "height": 256}, {"file_name": "ADE_train_00013072.jpg", "width": 520, "id": 13071, "height": 333}, {"file_name": "ADE_train_00013073.jpg", "width": 683, "id": 13072, "height": 512}, {"file_name": "ADE_train_00013074.jpg", "width": 512, "id": 13073, "height": 770}, {"file_name": "ADE_train_00013075.jpg", "width": 335, "id": 13074, "height": 275}, {"file_name": "ADE_train_00013076.jpg", "width": 288, "id": 13075, "height": 216}, {"file_name": "ADE_train_00013077.jpg", "width": 683, "id": 13076, "height": 512}, {"file_name": "ADE_train_00013078.jpg", "width": 500, "id": 13077, "height": 375}, {"file_name": "ADE_train_00013079.jpg", "width": 200, "id": 13078, "height": 267}, {"file_name": "ADE_train_00013080.jpg", "width": 350, "id": 13079, "height": 410}, {"file_name": "ADE_train_00013081.jpg", "width": 479, "id": 13080, "height": 319}, {"file_name": "ADE_train_00013082.jpg", "width": 450, "id": 13081, "height": 376}, {"file_name": "ADE_train_00013083.jpg", "width": 256, "id": 13082, "height": 256}, {"file_name": "ADE_train_00013084.jpg", "width": 320, "id": 13083, "height": 240}, {"file_name": "ADE_train_00013085.jpg", "width": 500, "id": 13084, "height": 374}, {"file_name": "ADE_train_00013086.jpg", "width": 256, "id": 13085, "height": 256}, {"file_name": "ADE_train_00013087.jpg", "width": 768, "id": 13086, "height": 512}, {"file_name": "ADE_train_00013088.jpg", "width": 400, "id": 13087, "height": 299}, {"file_name": "ADE_train_00013089.jpg", "width": 268, "id": 13088, "height": 300}, {"file_name": "ADE_train_00013090.jpg", "width": 640, "id": 13089, "height": 480}, {"file_name": "ADE_train_00013091.jpg", "width": 219, "id": 13090, "height": 340}, {"file_name": "ADE_train_00013092.jpg", "width": 256, "id": 13091, "height": 256}, {"file_name": "ADE_train_00013093.jpg", "width": 551, "id": 13092, "height": 512}, {"file_name": "ADE_train_00013094.jpg", "width": 285, "id": 13093, "height": 233}, {"file_name": "ADE_train_00013095.jpg", "width": 500, "id": 13094, "height": 375}, {"file_name": "ADE_train_00013096.jpg", "width": 772, "id": 13095, "height": 512}, {"file_name": "ADE_train_00013097.jpg", "width": 256, "id": 13096, "height": 256}, {"file_name": "ADE_train_00013098.jpg", "width": 500, "id": 13097, "height": 498}, {"file_name": "ADE_train_00013099.jpg", "width": 640, "id": 13098, "height": 483}, {"file_name": "ADE_train_00013100.jpg", "width": 683, "id": 13099, "height": 512}, {"file_name": "ADE_train_00013101.jpg", "width": 256, "id": 13100, "height": 256}, {"file_name": "ADE_train_00013102.jpg", "width": 683, "id": 13101, "height": 512}, {"file_name": "ADE_train_00013103.jpg", "width": 680, "id": 13102, "height": 512}, {"file_name": "ADE_train_00013104.jpg", "width": 683, "id": 13103, "height": 512}, {"file_name": "ADE_train_00013105.jpg", "width": 256, "id": 13104, "height": 256}, {"file_name": "ADE_train_00013106.jpg", "width": 256, "id": 13105, "height": 256}, {"file_name": "ADE_train_00013107.jpg", "width": 256, "id": 13106, "height": 256}, {"file_name": "ADE_train_00013108.jpg", "width": 250, "id": 13107, "height": 333}, {"file_name": "ADE_train_00013109.jpg", "width": 360, "id": 13108, "height": 256}, {"file_name": "ADE_train_00013110.jpg", "width": 476, "id": 13109, "height": 400}, {"file_name": "ADE_train_00013111.jpg", "width": 360, "id": 13110, "height": 548}, {"file_name": "ADE_train_00013112.jpg", "width": 347, "id": 13111, "height": 233}, {"file_name": "ADE_train_00013113.jpg", "width": 400, "id": 13112, "height": 300}, {"file_name": "ADE_train_00013114.jpg", "width": 640, "id": 13113, "height": 480}, {"file_name": "ADE_train_00013115.jpg", "width": 280, "id": 13114, "height": 280}, {"file_name": "ADE_train_00013116.jpg", "width": 288, "id": 13115, "height": 228}, {"file_name": "ADE_train_00013117.jpg", "width": 768, "id": 13116, "height": 512}, {"file_name": "ADE_train_00013118.jpg", "width": 640, "id": 13117, "height": 480}, {"file_name": "ADE_train_00013119.jpg", "width": 256, "id": 13118, "height": 256}, {"file_name": "ADE_train_00013120.jpg", "width": 312, "id": 13119, "height": 223}, {"file_name": "ADE_train_00013121.jpg", "width": 256, "id": 13120, "height": 256}, {"file_name": "ADE_train_00013122.jpg", "width": 470, "id": 13121, "height": 448}, {"file_name": "ADE_train_00013123.jpg", "width": 256, "id": 13122, "height": 256}, {"file_name": "ADE_train_00013124.jpg", "width": 331, "id": 13123, "height": 500}, {"file_name": "ADE_train_00013125.jpg", "width": 256, "id": 13124, "height": 256}, {"file_name": "ADE_train_00013126.jpg", "width": 318, "id": 13125, "height": 233}, {"file_name": "ADE_train_00013127.jpg", "width": 741, "id": 13126, "height": 512}, {"file_name": "ADE_train_00013128.jpg", "width": 256, "id": 13127, "height": 256}, {"file_name": "ADE_train_00013129.jpg", "width": 683, "id": 13128, "height": 512}, {"file_name": "ADE_train_00013130.jpg", "width": 450, "id": 13129, "height": 681}, {"file_name": "ADE_train_00013131.jpg", "width": 200, "id": 13130, "height": 200}, {"file_name": "ADE_train_00013132.jpg", "width": 550, "id": 13131, "height": 376}, {"file_name": "ADE_train_00013133.jpg", "width": 350, "id": 13132, "height": 232}, {"file_name": "ADE_train_00013134.jpg", "width": 683, "id": 13133, "height": 512}, {"file_name": "ADE_train_00013135.jpg", "width": 781, "id": 13134, "height": 512}, {"file_name": "ADE_train_00013136.jpg", "width": 250, "id": 13135, "height": 330}, {"file_name": "ADE_train_00013137.jpg", "width": 256, "id": 13136, "height": 256}, {"file_name": "ADE_train_00013138.jpg", "width": 300, "id": 13137, "height": 184}, {"file_name": "ADE_train_00013139.jpg", "width": 350, "id": 13138, "height": 263}, {"file_name": "ADE_train_00013140.jpg", "width": 538, "id": 13139, "height": 311}, {"file_name": "ADE_train_00013141.jpg", "width": 457, "id": 13140, "height": 700}, {"file_name": "ADE_train_00013142.jpg", "width": 500, "id": 13141, "height": 375}, {"file_name": "ADE_train_00013143.jpg", "width": 300, "id": 13142, "height": 208}, {"file_name": "ADE_train_00013144.jpg", "width": 532, "id": 13143, "height": 399}, {"file_name": "ADE_train_00013145.jpg", "width": 768, "id": 13144, "height": 512}, {"file_name": "ADE_train_00013146.jpg", "width": 256, "id": 13145, "height": 256}, {"file_name": "ADE_train_00013147.jpg", "width": 296, "id": 13146, "height": 429}, {"file_name": "ADE_train_00013148.jpg", "width": 375, "id": 13147, "height": 500}, {"file_name": "ADE_train_00013149.jpg", "width": 493, "id": 13148, "height": 338}, {"file_name": "ADE_train_00013150.jpg", "width": 256, "id": 13149, "height": 256}, {"file_name": "ADE_train_00013151.jpg", "width": 450, "id": 13150, "height": 336}, {"file_name": "ADE_train_00013152.jpg", "width": 853, "id": 13151, "height": 512}, {"file_name": "ADE_train_00013153.jpg", "width": 288, "id": 13152, "height": 200}, {"file_name": "ADE_train_00013154.jpg", "width": 350, "id": 13153, "height": 377}, {"file_name": "ADE_train_00013155.jpg", "width": 360, "id": 13154, "height": 252}, {"file_name": "ADE_train_00013156.jpg", "width": 758, "id": 13155, "height": 512}, {"file_name": "ADE_train_00013157.jpg", "width": 640, "id": 13156, "height": 480}, {"file_name": "ADE_train_00013158.jpg", "width": 256, "id": 13157, "height": 256}, {"file_name": "ADE_train_00013159.jpg", "width": 256, "id": 13158, "height": 256}, {"file_name": "ADE_train_00013160.jpg", "width": 474, "id": 13159, "height": 316}, {"file_name": "ADE_train_00013161.jpg", "width": 252, "id": 13160, "height": 163}, {"file_name": "ADE_train_00013162.jpg", "width": 400, "id": 13161, "height": 300}, {"file_name": "ADE_train_00013163.jpg", "width": 371, "id": 13162, "height": 247}, {"file_name": "ADE_train_00013164.jpg", "width": 500, "id": 13163, "height": 427}, {"file_name": "ADE_train_00013165.jpg", "width": 301, "id": 13164, "height": 350}, {"file_name": "ADE_train_00013166.jpg", "width": 256, "id": 13165, "height": 256}, {"file_name": "ADE_train_00013167.jpg", "width": 256, "id": 13166, "height": 256}, {"file_name": "ADE_train_00013168.jpg", "width": 768, "id": 13167, "height": 512}, {"file_name": "ADE_train_00013169.jpg", "width": 256, "id": 13168, "height": 256}, {"file_name": "ADE_train_00013170.jpg", "width": 320, "id": 13169, "height": 256}, {"file_name": "ADE_train_00013171.jpg", "width": 256, "id": 13170, "height": 256}, {"file_name": "ADE_train_00013172.jpg", "width": 317, "id": 13171, "height": 275}, {"file_name": "ADE_train_00013173.jpg", "width": 256, "id": 13172, "height": 256}, {"file_name": "ADE_train_00013174.jpg", "width": 256, "id": 13173, "height": 256}, {"file_name": "ADE_train_00013175.jpg", "width": 256, "id": 13174, "height": 256}, {"file_name": "ADE_train_00013176.jpg", "width": 339, "id": 13175, "height": 337}, {"file_name": "ADE_train_00013177.jpg", "width": 256, "id": 13176, "height": 256}, {"file_name": "ADE_train_00013178.jpg", "width": 375, "id": 13177, "height": 300}, {"file_name": "ADE_train_00013179.jpg", "width": 256, "id": 13178, "height": 256}, {"file_name": "ADE_train_00013180.jpg", "width": 256, "id": 13179, "height": 256}, {"file_name": "ADE_train_00013181.jpg", "width": 773, "id": 13180, "height": 512}, {"file_name": "ADE_train_00013182.jpg", "width": 430, "id": 13181, "height": 237}, {"file_name": "ADE_train_00013183.jpg", "width": 256, "id": 13182, "height": 256}, {"file_name": "ADE_train_00013184.jpg", "width": 512, "id": 13183, "height": 384}, {"file_name": "ADE_train_00013185.jpg", "width": 768, "id": 13184, "height": 512}, {"file_name": "ADE_train_00013186.jpg", "width": 614, "id": 13185, "height": 411}, {"file_name": "ADE_train_00013187.jpg", "width": 684, "id": 13186, "height": 512}, {"file_name": "ADE_train_00013188.jpg", "width": 256, "id": 13187, "height": 256}, {"file_name": "ADE_train_00013189.jpg", "width": 256, "id": 13188, "height": 256}, {"file_name": "ADE_train_00013190.jpg", "width": 256, "id": 13189, "height": 256}, {"file_name": "ADE_train_00013191.jpg", "width": 256, "id": 13190, "height": 256}, {"file_name": "ADE_train_00013192.jpg", "width": 640, "id": 13191, "height": 480}, {"file_name": "ADE_train_00013193.jpg", "width": 797, "id": 13192, "height": 512}, {"file_name": "ADE_train_00013194.jpg", "width": 400, "id": 13193, "height": 300}, {"file_name": "ADE_train_00013195.jpg", "width": 256, "id": 13194, "height": 256}, {"file_name": "ADE_train_00013196.jpg", "width": 300, "id": 13195, "height": 239}, {"file_name": "ADE_train_00013197.jpg", "width": 400, "id": 13196, "height": 500}, {"file_name": "ADE_train_00013198.jpg", "width": 256, "id": 13197, "height": 256}, {"file_name": "ADE_train_00013199.jpg", "width": 683, "id": 13198, "height": 512}, {"file_name": "ADE_train_00013200.jpg", "width": 640, "id": 13199, "height": 480}, {"file_name": "ADE_train_00013201.jpg", "width": 683, "id": 13200, "height": 512}, {"file_name": "ADE_train_00013202.jpg", "width": 600, "id": 13201, "height": 400}, {"file_name": "ADE_train_00013203.jpg", "width": 300, "id": 13202, "height": 200}, {"file_name": "ADE_train_00013204.jpg", "width": 256, "id": 13203, "height": 256}, {"file_name": "ADE_train_00013205.jpg", "width": 256, "id": 13204, "height": 256}, {"file_name": "ADE_train_00013206.jpg", "width": 247, "id": 13205, "height": 360}, {"file_name": "ADE_train_00013207.jpg", "width": 600, "id": 13206, "height": 450}, {"file_name": "ADE_train_00013208.jpg", "width": 256, "id": 13207, "height": 256}, {"file_name": "ADE_train_00013209.jpg", "width": 451, "id": 13208, "height": 300}, {"file_name": "ADE_train_00013210.jpg", "width": 457, "id": 13209, "height": 300}, {"file_name": "ADE_train_00013211.jpg", "width": 600, "id": 13210, "height": 450}, {"file_name": "ADE_train_00013212.jpg", "width": 683, "id": 13211, "height": 512}, {"file_name": "ADE_train_00013213.jpg", "width": 256, "id": 13212, "height": 256}, {"file_name": "ADE_train_00013214.jpg", "width": 512, "id": 13213, "height": 771}, {"file_name": "ADE_train_00013215.jpg", "width": 308, "id": 13214, "height": 470}, {"file_name": "ADE_train_00013216.jpg", "width": 550, "id": 13215, "height": 393}, {"file_name": "ADE_train_00013217.jpg", "width": 256, "id": 13216, "height": 256}, {"file_name": "ADE_train_00013218.jpg", "width": 256, "id": 13217, "height": 256}, {"file_name": "ADE_train_00013219.jpg", "width": 256, "id": 13218, "height": 256}, {"file_name": "ADE_train_00013220.jpg", "width": 669, "id": 13219, "height": 512}, {"file_name": "ADE_train_00013221.jpg", "width": 683, "id": 13220, "height": 512}, {"file_name": "ADE_train_00013222.jpg", "width": 525, "id": 13221, "height": 394}, {"file_name": "ADE_train_00013223.jpg", "width": 324, "id": 13222, "height": 243}, {"file_name": "ADE_train_00013224.jpg", "width": 448, "id": 13223, "height": 288}, {"file_name": "ADE_train_00013225.jpg", "width": 450, "id": 13224, "height": 278}, {"file_name": "ADE_train_00013226.jpg", "width": 300, "id": 13225, "height": 225}, {"file_name": "ADE_train_00013227.jpg", "width": 256, "id": 13226, "height": 256}, {"file_name": "ADE_train_00013228.jpg", "width": 256, "id": 13227, "height": 256}, {"file_name": "ADE_train_00013229.jpg", "width": 815, "id": 13228, "height": 487}, {"file_name": "ADE_train_00013230.jpg", "width": 256, "id": 13229, "height": 256}, {"file_name": "ADE_train_00013231.jpg", "width": 308, "id": 13230, "height": 240}, {"file_name": "ADE_train_00013232.jpg", "width": 256, "id": 13231, "height": 256}, {"file_name": "ADE_train_00013233.jpg", "width": 700, "id": 13232, "height": 415}, {"file_name": "ADE_train_00013234.jpg", "width": 256, "id": 13233, "height": 256}, {"file_name": "ADE_train_00013235.jpg", "width": 400, "id": 13234, "height": 300}, {"file_name": "ADE_train_00013236.jpg", "width": 221, "id": 13235, "height": 381}, {"file_name": "ADE_train_00013237.jpg", "width": 256, "id": 13236, "height": 256}, {"file_name": "ADE_train_00013238.jpg", "width": 256, "id": 13237, "height": 256}, {"file_name": "ADE_train_00013239.jpg", "width": 763, "id": 13238, "height": 512}, {"file_name": "ADE_train_00013240.jpg", "width": 256, "id": 13239, "height": 256}, {"file_name": "ADE_train_00013241.jpg", "width": 684, "id": 13240, "height": 512}, {"file_name": "ADE_train_00013242.jpg", "width": 221, "id": 13241, "height": 164}, {"file_name": "ADE_train_00013243.jpg", "width": 256, "id": 13242, "height": 256}, {"file_name": "ADE_train_00013244.jpg", "width": 291, "id": 13243, "height": 157}, {"file_name": "ADE_train_00013245.jpg", "width": 338, "id": 13244, "height": 484}, {"file_name": "ADE_train_00013246.jpg", "width": 256, "id": 13245, "height": 256}, {"file_name": "ADE_train_00013247.jpg", "width": 480, "id": 13246, "height": 640}, {"file_name": "ADE_train_00013248.jpg", "width": 320, "id": 13247, "height": 240}, {"file_name": "ADE_train_00013249.jpg", "width": 802, "id": 13248, "height": 512}, {"file_name": "ADE_train_00013250.jpg", "width": 395, "id": 13249, "height": 527}, {"file_name": "ADE_train_00013251.jpg", "width": 300, "id": 13250, "height": 225}, {"file_name": "ADE_train_00013252.jpg", "width": 300, "id": 13251, "height": 240}, {"file_name": "ADE_train_00013253.jpg", "width": 450, "id": 13252, "height": 338}, {"file_name": "ADE_train_00013254.jpg", "width": 375, "id": 13253, "height": 300}, {"file_name": "ADE_train_00013255.jpg", "width": 256, "id": 13254, "height": 256}, {"file_name": "ADE_train_00013256.jpg", "width": 256, "id": 13255, "height": 256}, {"file_name": "ADE_train_00013257.jpg", "width": 296, "id": 13256, "height": 230}, {"file_name": "ADE_train_00013258.jpg", "width": 579, "id": 13257, "height": 512}, {"file_name": "ADE_train_00013259.jpg", "width": 493, "id": 13258, "height": 371}, {"file_name": "ADE_train_00013260.jpg", "width": 351, "id": 13259, "height": 272}, {"file_name": "ADE_train_00013261.jpg", "width": 500, "id": 13260, "height": 375}, {"file_name": "ADE_train_00013262.jpg", "width": 672, "id": 13261, "height": 512}, {"file_name": "ADE_train_00013263.jpg", "width": 500, "id": 13262, "height": 372}, {"file_name": "ADE_train_00013264.jpg", "width": 300, "id": 13263, "height": 300}, {"file_name": "ADE_train_00013265.jpg", "width": 872, "id": 13264, "height": 512}, {"file_name": "ADE_train_00013266.jpg", "width": 500, "id": 13265, "height": 375}, {"file_name": "ADE_train_00013267.jpg", "width": 700, "id": 13266, "height": 469}, {"file_name": "ADE_train_00013268.jpg", "width": 513, "id": 13267, "height": 323}, {"file_name": "ADE_train_00013269.jpg", "width": 623, "id": 13268, "height": 440}, {"file_name": "ADE_train_00013270.jpg", "width": 384, "id": 13269, "height": 576}, {"file_name": "ADE_train_00013271.jpg", "width": 256, "id": 13270, "height": 256}, {"file_name": "ADE_train_00013272.jpg", "width": 300, "id": 13271, "height": 203}, {"file_name": "ADE_train_00013273.jpg", "width": 684, "id": 13272, "height": 512}, {"file_name": "ADE_train_00013274.jpg", "width": 230, "id": 13273, "height": 335}, {"file_name": "ADE_train_00013275.jpg", "width": 256, "id": 13274, "height": 256}, {"file_name": "ADE_train_00013276.jpg", "width": 640, "id": 13275, "height": 422}, {"file_name": "ADE_train_00013277.jpg", "width": 350, "id": 13276, "height": 228}, {"file_name": "ADE_train_00013278.jpg", "width": 256, "id": 13277, "height": 256}, {"file_name": "ADE_train_00013279.jpg", "width": 256, "id": 13278, "height": 256}, {"file_name": "ADE_train_00013280.jpg", "width": 683, "id": 13279, "height": 512}, {"file_name": "ADE_train_00013281.jpg", "width": 256, "id": 13280, "height": 256}, {"file_name": "ADE_train_00013282.jpg", "width": 256, "id": 13281, "height": 256}, {"file_name": "ADE_train_00013283.jpg", "width": 256, "id": 13282, "height": 256}, {"file_name": "ADE_train_00013284.jpg", "width": 328, "id": 13283, "height": 286}, {"file_name": "ADE_train_00013285.jpg", "width": 256, "id": 13284, "height": 256}, {"file_name": "ADE_train_00013286.jpg", "width": 300, "id": 13285, "height": 400}, {"file_name": "ADE_train_00013287.jpg", "width": 600, "id": 13286, "height": 402}, {"file_name": "ADE_train_00013288.jpg", "width": 256, "id": 13287, "height": 256}, {"file_name": "ADE_train_00013289.jpg", "width": 256, "id": 13288, "height": 256}, {"file_name": "ADE_train_00013290.jpg", "width": 725, "id": 13289, "height": 512}, {"file_name": "ADE_train_00013291.jpg", "width": 512, "id": 13290, "height": 683}, {"file_name": "ADE_train_00013292.jpg", "width": 700, "id": 13291, "height": 494}, {"file_name": "ADE_train_00013293.jpg", "width": 500, "id": 13292, "height": 400}, {"file_name": "ADE_train_00013294.jpg", "width": 256, "id": 13293, "height": 256}, {"file_name": "ADE_train_00013295.jpg", "width": 640, "id": 13294, "height": 512}, {"file_name": "ADE_train_00013296.jpg", "width": 256, "id": 13295, "height": 256}, {"file_name": "ADE_train_00013297.jpg", "width": 256, "id": 13296, "height": 256}, {"file_name": "ADE_train_00013298.jpg", "width": 432, "id": 13297, "height": 258}, {"file_name": "ADE_train_00013299.jpg", "width": 500, "id": 13298, "height": 375}, {"file_name": "ADE_train_00013300.jpg", "width": 683, "id": 13299, "height": 512}, {"file_name": "ADE_train_00013301.jpg", "width": 436, "id": 13300, "height": 276}, {"file_name": "ADE_train_00013302.jpg", "width": 600, "id": 13301, "height": 450}, {"file_name": "ADE_train_00013303.jpg", "width": 288, "id": 13302, "height": 216}, {"file_name": "ADE_train_00013304.jpg", "width": 683, "id": 13303, "height": 512}, {"file_name": "ADE_train_00013305.jpg", "width": 640, "id": 13304, "height": 487}, {"file_name": "ADE_train_00013306.jpg", "width": 480, "id": 13305, "height": 350}, {"file_name": "ADE_train_00013307.jpg", "width": 683, "id": 13306, "height": 512}, {"file_name": "ADE_train_00013308.jpg", "width": 728, "id": 13307, "height": 512}, {"file_name": "ADE_train_00013309.jpg", "width": 684, "id": 13308, "height": 512}, {"file_name": "ADE_train_00013310.jpg", "width": 256, "id": 13309, "height": 256}, {"file_name": "ADE_train_00013311.jpg", "width": 350, "id": 13310, "height": 236}, {"file_name": "ADE_train_00013312.jpg", "width": 256, "id": 13311, "height": 256}, {"file_name": "ADE_train_00013313.jpg", "width": 256, "id": 13312, "height": 256}, {"file_name": "ADE_train_00013314.jpg", "width": 453, "id": 13313, "height": 439}, {"file_name": "ADE_train_00013315.jpg", "width": 360, "id": 13314, "height": 540}, {"file_name": "ADE_train_00013316.jpg", "width": 384, "id": 13315, "height": 256}, {"file_name": "ADE_train_00013317.jpg", "width": 250, "id": 13316, "height": 312}, {"file_name": "ADE_train_00013318.jpg", "width": 600, "id": 13317, "height": 402}, {"file_name": "ADE_train_00013319.jpg", "width": 333, "id": 13318, "height": 500}, {"file_name": "ADE_train_00013320.jpg", "width": 256, "id": 13319, "height": 256}, {"file_name": "ADE_train_00013321.jpg", "width": 256, "id": 13320, "height": 256}, {"file_name": "ADE_train_00013322.jpg", "width": 321, "id": 13321, "height": 278}, {"file_name": "ADE_train_00013323.jpg", "width": 256, "id": 13322, "height": 256}, {"file_name": "ADE_train_00013324.jpg", "width": 717, "id": 13323, "height": 512}, {"file_name": "ADE_train_00013325.jpg", "width": 256, "id": 13324, "height": 256}, {"file_name": "ADE_train_00013326.jpg", "width": 432, "id": 13325, "height": 569}, {"file_name": "ADE_train_00013327.jpg", "width": 399, "id": 13326, "height": 276}, {"file_name": "ADE_train_00013328.jpg", "width": 512, "id": 13327, "height": 683}, {"file_name": "ADE_train_00013329.jpg", "width": 765, "id": 13328, "height": 512}, {"file_name": "ADE_train_00013330.jpg", "width": 683, "id": 13329, "height": 512}, {"file_name": "ADE_train_00013331.jpg", "width": 200, "id": 13330, "height": 224}, {"file_name": "ADE_train_00013332.jpg", "width": 450, "id": 13331, "height": 338}, {"file_name": "ADE_train_00013333.jpg", "width": 480, "id": 13332, "height": 640}, {"file_name": "ADE_train_00013334.jpg", "width": 286, "id": 13333, "height": 442}, {"file_name": "ADE_train_00013335.jpg", "width": 360, "id": 13334, "height": 480}, {"file_name": "ADE_train_00013336.jpg", "width": 600, "id": 13335, "height": 450}, {"file_name": "ADE_train_00013337.jpg", "width": 330, "id": 13336, "height": 248}, {"file_name": "ADE_train_00013338.jpg", "width": 827, "id": 13337, "height": 512}, {"file_name": "ADE_train_00013339.jpg", "width": 300, "id": 13338, "height": 200}, {"file_name": "ADE_train_00013340.jpg", "width": 256, "id": 13339, "height": 256}, {"file_name": "ADE_train_00013341.jpg", "width": 256, "id": 13340, "height": 256}, {"file_name": "ADE_train_00013342.jpg", "width": 256, "id": 13341, "height": 256}, {"file_name": "ADE_train_00013343.jpg", "width": 256, "id": 13342, "height": 256}, {"file_name": "ADE_train_00013344.jpg", "width": 400, "id": 13343, "height": 386}, {"file_name": "ADE_train_00013345.jpg", "width": 256, "id": 13344, "height": 256}, {"file_name": "ADE_train_00013346.jpg", "width": 300, "id": 13345, "height": 200}, {"file_name": "ADE_train_00013347.jpg", "width": 556, "id": 13346, "height": 417}, {"file_name": "ADE_train_00013348.jpg", "width": 200, "id": 13347, "height": 269}, {"file_name": "ADE_train_00013349.jpg", "width": 291, "id": 13348, "height": 179}, {"file_name": "ADE_train_00013350.jpg", "width": 487, "id": 13349, "height": 297}, {"file_name": "ADE_train_00013351.jpg", "width": 600, "id": 13350, "height": 450}, {"file_name": "ADE_train_00013352.jpg", "width": 481, "id": 13351, "height": 333}, {"file_name": "ADE_train_00013353.jpg", "width": 522, "id": 13352, "height": 392}, {"file_name": "ADE_train_00013354.jpg", "width": 490, "id": 13353, "height": 314}, {"file_name": "ADE_train_00013355.jpg", "width": 334, "id": 13354, "height": 442}, {"file_name": "ADE_train_00013356.jpg", "width": 320, "id": 13355, "height": 240}, {"file_name": "ADE_train_00013357.jpg", "width": 450, "id": 13356, "height": 300}, {"file_name": "ADE_train_00013358.jpg", "width": 683, "id": 13357, "height": 512}, {"file_name": "ADE_train_00013359.jpg", "width": 256, "id": 13358, "height": 256}, {"file_name": "ADE_train_00013360.jpg", "width": 216, "id": 13359, "height": 144}, {"file_name": "ADE_train_00013361.jpg", "width": 320, "id": 13360, "height": 217}, {"file_name": "ADE_train_00013362.jpg", "width": 256, "id": 13361, "height": 256}, {"file_name": "ADE_train_00013363.jpg", "width": 683, "id": 13362, "height": 512}, {"file_name": "ADE_train_00013364.jpg", "width": 200, "id": 13363, "height": 133}, {"file_name": "ADE_train_00013365.jpg", "width": 330, "id": 13364, "height": 246}, {"file_name": "ADE_train_00013366.jpg", "width": 320, "id": 13365, "height": 240}, {"file_name": "ADE_train_00013367.jpg", "width": 256, "id": 13366, "height": 256}, {"file_name": "ADE_train_00013368.jpg", "width": 551, "id": 13367, "height": 180}, {"file_name": "ADE_train_00013369.jpg", "width": 683, "id": 13368, "height": 512}, {"file_name": "ADE_train_00013370.jpg", "width": 576, "id": 13369, "height": 460}, {"file_name": "ADE_train_00013371.jpg", "width": 256, "id": 13370, "height": 256}, {"file_name": "ADE_train_00013372.jpg", "width": 297, "id": 13371, "height": 225}, {"file_name": "ADE_train_00013373.jpg", "width": 300, "id": 13372, "height": 225}, {"file_name": "ADE_train_00013374.jpg", "width": 339, "id": 13373, "height": 297}, {"file_name": "ADE_train_00013375.jpg", "width": 655, "id": 13374, "height": 439}, {"file_name": "ADE_train_00013376.jpg", "width": 338, "id": 13375, "height": 450}, {"file_name": "ADE_train_00013377.jpg", "width": 683, "id": 13376, "height": 512}, {"file_name": "ADE_train_00013378.jpg", "width": 256, "id": 13377, "height": 256}, {"file_name": "ADE_train_00013379.jpg", "width": 256, "id": 13378, "height": 256}, {"file_name": "ADE_train_00013380.jpg", "width": 200, "id": 13379, "height": 201}, {"file_name": "ADE_train_00013381.jpg", "width": 256, "id": 13380, "height": 256}, {"file_name": "ADE_train_00013382.jpg", "width": 480, "id": 13381, "height": 261}, {"file_name": "ADE_train_00013383.jpg", "width": 256, "id": 13382, "height": 256}, {"file_name": "ADE_train_00013384.jpg", "width": 300, "id": 13383, "height": 225}, {"file_name": "ADE_train_00013385.jpg", "width": 600, "id": 13384, "height": 441}, {"file_name": "ADE_train_00013386.jpg", "width": 409, "id": 13385, "height": 274}, {"file_name": "ADE_train_00013387.jpg", "width": 256, "id": 13386, "height": 256}, {"file_name": "ADE_train_00013388.jpg", "width": 364, "id": 13387, "height": 208}, {"file_name": "ADE_train_00013389.jpg", "width": 256, "id": 13388, "height": 256}, {"file_name": "ADE_train_00013390.jpg", "width": 407, "id": 13389, "height": 215}, {"file_name": "ADE_train_00013391.jpg", "width": 256, "id": 13390, "height": 256}, {"file_name": "ADE_train_00013392.jpg", "width": 256, "id": 13391, "height": 256}, {"file_name": "ADE_train_00013393.jpg", "width": 400, "id": 13392, "height": 268}, {"file_name": "ADE_train_00013394.jpg", "width": 512, "id": 13393, "height": 683}, {"file_name": "ADE_train_00013395.jpg", "width": 747, "id": 13394, "height": 500}, {"file_name": "ADE_train_00013396.jpg", "width": 500, "id": 13395, "height": 375}, {"file_name": "ADE_train_00013397.jpg", "width": 348, "id": 13396, "height": 259}, {"file_name": "ADE_train_00013398.jpg", "width": 400, "id": 13397, "height": 291}, {"file_name": "ADE_train_00013399.jpg", "width": 256, "id": 13398, "height": 256}, {"file_name": "ADE_train_00013400.jpg", "width": 256, "id": 13399, "height": 256}, {"file_name": "ADE_train_00013401.jpg", "width": 358, "id": 13400, "height": 250}, {"file_name": "ADE_train_00013402.jpg", "width": 683, "id": 13401, "height": 512}, {"file_name": "ADE_train_00013403.jpg", "width": 588, "id": 13402, "height": 391}, {"file_name": "ADE_train_00013404.jpg", "width": 253, "id": 13403, "height": 160}, {"file_name": "ADE_train_00013405.jpg", "width": 256, "id": 13404, "height": 256}, {"file_name": "ADE_train_00013406.jpg", "width": 260, "id": 13405, "height": 390}, {"file_name": "ADE_train_00013407.jpg", "width": 400, "id": 13406, "height": 300}, {"file_name": "ADE_train_00013408.jpg", "width": 339, "id": 13407, "height": 450}, {"file_name": "ADE_train_00013409.jpg", "width": 400, "id": 13408, "height": 236}, {"file_name": "ADE_train_00013410.jpg", "width": 256, "id": 13409, "height": 256}, {"file_name": "ADE_train_00013411.jpg", "width": 256, "id": 13410, "height": 256}, {"file_name": "ADE_train_00013412.jpg", "width": 400, "id": 13411, "height": 507}, {"file_name": "ADE_train_00013413.jpg", "width": 695, "id": 13412, "height": 512}, {"file_name": "ADE_train_00013414.jpg", "width": 627, "id": 13413, "height": 431}, {"file_name": "ADE_train_00013415.jpg", "width": 450, "id": 13414, "height": 338}, {"file_name": "ADE_train_00013416.jpg", "width": 256, "id": 13415, "height": 256}, {"file_name": "ADE_train_00013417.jpg", "width": 256, "id": 13416, "height": 256}, {"file_name": "ADE_train_00013418.jpg", "width": 250, "id": 13417, "height": 190}, {"file_name": "ADE_train_00013419.jpg", "width": 600, "id": 13418, "height": 450}, {"file_name": "ADE_train_00013420.jpg", "width": 325, "id": 13419, "height": 240}, {"file_name": "ADE_train_00013421.jpg", "width": 723, "id": 13420, "height": 512}, {"file_name": "ADE_train_00013422.jpg", "width": 332, "id": 13421, "height": 262}, {"file_name": "ADE_train_00013423.jpg", "width": 700, "id": 13422, "height": 488}, {"file_name": "ADE_train_00013424.jpg", "width": 256, "id": 13423, "height": 256}, {"file_name": "ADE_train_00013425.jpg", "width": 512, "id": 13424, "height": 617}, {"file_name": "ADE_train_00013426.jpg", "width": 508, "id": 13425, "height": 312}, {"file_name": "ADE_train_00013427.jpg", "width": 256, "id": 13426, "height": 256}, {"file_name": "ADE_train_00013428.jpg", "width": 683, "id": 13427, "height": 512}, {"file_name": "ADE_train_00013429.jpg", "width": 335, "id": 13428, "height": 335}, {"file_name": "ADE_train_00013430.jpg", "width": 300, "id": 13429, "height": 225}, {"file_name": "ADE_train_00013431.jpg", "width": 256, "id": 13430, "height": 256}, {"file_name": "ADE_train_00013432.jpg", "width": 225, "id": 13431, "height": 225}, {"file_name": "ADE_train_00013433.jpg", "width": 307, "id": 13432, "height": 205}, {"file_name": "ADE_train_00013434.jpg", "width": 801, "id": 13433, "height": 512}, {"file_name": "ADE_train_00013435.jpg", "width": 772, "id": 13434, "height": 512}, {"file_name": "ADE_train_00013436.jpg", "width": 626, "id": 13435, "height": 328}, {"file_name": "ADE_train_00013437.jpg", "width": 365, "id": 13436, "height": 274}, {"file_name": "ADE_train_00013438.jpg", "width": 550, "id": 13437, "height": 362}, {"file_name": "ADE_train_00013439.jpg", "width": 372, "id": 13438, "height": 135}, {"file_name": "ADE_train_00013440.jpg", "width": 765, "id": 13439, "height": 512}, {"file_name": "ADE_train_00013441.jpg", "width": 321, "id": 13440, "height": 480}, {"file_name": "ADE_train_00013442.jpg", "width": 725, "id": 13441, "height": 384}, {"file_name": "ADE_train_00013443.jpg", "width": 683, "id": 13442, "height": 512}, {"file_name": "ADE_train_00013444.jpg", "width": 256, "id": 13443, "height": 256}, {"file_name": "ADE_train_00013445.jpg", "width": 512, "id": 13444, "height": 683}, {"file_name": "ADE_train_00013446.jpg", "width": 256, "id": 13445, "height": 256}, {"file_name": "ADE_train_00013447.jpg", "width": 385, "id": 13446, "height": 270}, {"file_name": "ADE_train_00013448.jpg", "width": 600, "id": 13447, "height": 450}, {"file_name": "ADE_train_00013449.jpg", "width": 215, "id": 13448, "height": 287}, {"file_name": "ADE_train_00013450.jpg", "width": 256, "id": 13449, "height": 256}, {"file_name": "ADE_train_00013451.jpg", "width": 256, "id": 13450, "height": 256}, {"file_name": "ADE_train_00013452.jpg", "width": 422, "id": 13451, "height": 600}, {"file_name": "ADE_train_00013453.jpg", "width": 256, "id": 13452, "height": 257}, {"file_name": "ADE_train_00013454.jpg", "width": 300, "id": 13453, "height": 362}, {"file_name": "ADE_train_00013455.jpg", "width": 275, "id": 13454, "height": 206}, {"file_name": "ADE_train_00013456.jpg", "width": 601, "id": 13455, "height": 450}, {"file_name": "ADE_train_00013457.jpg", "width": 270, "id": 13456, "height": 205}, {"file_name": "ADE_train_00013458.jpg", "width": 300, "id": 13457, "height": 400}, {"file_name": "ADE_train_00013459.jpg", "width": 600, "id": 13458, "height": 450}, {"file_name": "ADE_train_00013460.jpg", "width": 450, "id": 13459, "height": 337}, {"file_name": "ADE_train_00013461.jpg", "width": 375, "id": 13460, "height": 281}, {"file_name": "ADE_train_00013462.jpg", "width": 512, "id": 13461, "height": 694}, {"file_name": "ADE_train_00013463.jpg", "width": 231, "id": 13462, "height": 301}, {"file_name": "ADE_train_00013464.jpg", "width": 256, "id": 13463, "height": 256}, {"file_name": "ADE_train_00013465.jpg", "width": 233, "id": 13464, "height": 300}, {"file_name": "ADE_train_00013466.jpg", "width": 255, "id": 13465, "height": 400}, {"file_name": "ADE_train_00013467.jpg", "width": 302, "id": 13466, "height": 200}, {"file_name": "ADE_train_00013468.jpg", "width": 350, "id": 13467, "height": 276}, {"file_name": "ADE_train_00013469.jpg", "width": 360, "id": 13468, "height": 540}, {"file_name": "ADE_train_00013470.jpg", "width": 480, "id": 13469, "height": 370}, {"file_name": "ADE_train_00013471.jpg", "width": 500, "id": 13470, "height": 333}, {"file_name": "ADE_train_00013472.jpg", "width": 770, "id": 13471, "height": 512}, {"file_name": "ADE_train_00013473.jpg", "width": 600, "id": 13472, "height": 402}, {"file_name": "ADE_train_00013474.jpg", "width": 256, "id": 13473, "height": 256}, {"file_name": "ADE_train_00013475.jpg", "width": 288, "id": 13474, "height": 425}, {"file_name": "ADE_train_00013476.jpg", "width": 640, "id": 13475, "height": 480}, {"file_name": "ADE_train_00013477.jpg", "width": 600, "id": 13476, "height": 400}, {"file_name": "ADE_train_00013478.jpg", "width": 750, "id": 13477, "height": 492}, {"file_name": "ADE_train_00013479.jpg", "width": 256, "id": 13478, "height": 256}, {"file_name": "ADE_train_00013480.jpg", "width": 263, "id": 13479, "height": 350}, {"file_name": "ADE_train_00013481.jpg", "width": 201, "id": 13480, "height": 225}, {"file_name": "ADE_train_00013482.jpg", "width": 256, "id": 13481, "height": 256}, {"file_name": "ADE_train_00013483.jpg", "width": 683, "id": 13482, "height": 512}, {"file_name": "ADE_train_00013484.jpg", "width": 480, "id": 13483, "height": 360}, {"file_name": "ADE_train_00013485.jpg", "width": 500, "id": 13484, "height": 333}, {"file_name": "ADE_train_00013486.jpg", "width": 646, "id": 13485, "height": 512}, {"file_name": "ADE_train_00013487.jpg", "width": 300, "id": 13486, "height": 225}, {"file_name": "ADE_train_00013488.jpg", "width": 256, "id": 13487, "height": 256}, {"file_name": "ADE_train_00013489.jpg", "width": 430, "id": 13488, "height": 323}, {"file_name": "ADE_train_00013490.jpg", "width": 638, "id": 13489, "height": 478}, {"file_name": "ADE_train_00013491.jpg", "width": 256, "id": 13490, "height": 256}, {"file_name": "ADE_train_00013492.jpg", "width": 683, "id": 13491, "height": 512}, {"file_name": "ADE_train_00013493.jpg", "width": 256, "id": 13492, "height": 256}, {"file_name": "ADE_train_00013494.jpg", "width": 640, "id": 13493, "height": 480}, {"file_name": "ADE_train_00013495.jpg", "width": 687, "id": 13494, "height": 512}, {"file_name": "ADE_train_00013496.jpg", "width": 450, "id": 13495, "height": 618}, {"file_name": "ADE_train_00013497.jpg", "width": 600, "id": 13496, "height": 450}, {"file_name": "ADE_train_00013498.jpg", "width": 256, "id": 13497, "height": 256}, {"file_name": "ADE_train_00013499.jpg", "width": 256, "id": 13498, "height": 256}, {"file_name": "ADE_train_00013500.jpg", "width": 256, "id": 13499, "height": 256}, {"file_name": "ADE_train_00013501.jpg", "width": 333, "id": 13500, "height": 500}, {"file_name": "ADE_train_00013502.jpg", "width": 512, "id": 13501, "height": 519}, {"file_name": "ADE_train_00013503.jpg", "width": 450, "id": 13502, "height": 338}, {"file_name": "ADE_train_00013504.jpg", "width": 768, "id": 13503, "height": 512}, {"file_name": "ADE_train_00013505.jpg", "width": 254, "id": 13504, "height": 171}, {"file_name": "ADE_train_00013506.jpg", "width": 277, "id": 13505, "height": 206}, {"file_name": "ADE_train_00013507.jpg", "width": 256, "id": 13506, "height": 256}, {"file_name": "ADE_train_00013508.jpg", "width": 700, "id": 13507, "height": 455}, {"file_name": "ADE_train_00013509.jpg", "width": 512, "id": 13508, "height": 623}, {"file_name": "ADE_train_00013510.jpg", "width": 256, "id": 13509, "height": 256}, {"file_name": "ADE_train_00013511.jpg", "width": 450, "id": 13510, "height": 338}, {"file_name": "ADE_train_00013512.jpg", "width": 320, "id": 13511, "height": 240}, {"file_name": "ADE_train_00013513.jpg", "width": 256, "id": 13512, "height": 256}, {"file_name": "ADE_train_00013514.jpg", "width": 350, "id": 13513, "height": 257}, {"file_name": "ADE_train_00013515.jpg", "width": 537, "id": 13514, "height": 512}, {"file_name": "ADE_train_00013516.jpg", "width": 683, "id": 13515, "height": 512}, {"file_name": "ADE_train_00013517.jpg", "width": 207, "id": 13516, "height": 334}, {"file_name": "ADE_train_00013518.jpg", "width": 448, "id": 13517, "height": 336}, {"file_name": "ADE_train_00013519.jpg", "width": 256, "id": 13518, "height": 256}, {"file_name": "ADE_train_00013520.jpg", "width": 256, "id": 13519, "height": 256}, {"file_name": "ADE_train_00013521.jpg", "width": 683, "id": 13520, "height": 512}, {"file_name": "ADE_train_00013522.jpg", "width": 500, "id": 13521, "height": 335}, {"file_name": "ADE_train_00013523.jpg", "width": 540, "id": 13522, "height": 300}, {"file_name": "ADE_train_00013524.jpg", "width": 350, "id": 13523, "height": 206}, {"file_name": "ADE_train_00013525.jpg", "width": 256, "id": 13524, "height": 256}, {"file_name": "ADE_train_00013526.jpg", "width": 500, "id": 13525, "height": 383}, {"file_name": "ADE_train_00013527.jpg", "width": 256, "id": 13526, "height": 256}, {"file_name": "ADE_train_00013528.jpg", "width": 720, "id": 13527, "height": 474}, {"file_name": "ADE_train_00013529.jpg", "width": 200, "id": 13528, "height": 243}, {"file_name": "ADE_train_00013530.jpg", "width": 256, "id": 13529, "height": 256}, {"file_name": "ADE_train_00013531.jpg", "width": 768, "id": 13530, "height": 512}, {"file_name": "ADE_train_00013532.jpg", "width": 594, "id": 13531, "height": 333}, {"file_name": "ADE_train_00013533.jpg", "width": 800, "id": 13532, "height": 512}, {"file_name": "ADE_train_00013534.jpg", "width": 256, "id": 13533, "height": 256}, {"file_name": "ADE_train_00013535.jpg", "width": 256, "id": 13534, "height": 256}, {"file_name": "ADE_train_00013536.jpg", "width": 683, "id": 13535, "height": 512}, {"file_name": "ADE_train_00013537.jpg", "width": 256, "id": 13536, "height": 256}, {"file_name": "ADE_train_00013538.jpg", "width": 256, "id": 13537, "height": 256}, {"file_name": "ADE_train_00013539.jpg", "width": 420, "id": 13538, "height": 315}, {"file_name": "ADE_train_00013540.jpg", "width": 512, "id": 13539, "height": 524}, {"file_name": "ADE_train_00013541.jpg", "width": 683, "id": 13540, "height": 512}, {"file_name": "ADE_train_00013542.jpg", "width": 512, "id": 13541, "height": 683}, {"file_name": "ADE_train_00013543.jpg", "width": 480, "id": 13542, "height": 640}, {"file_name": "ADE_train_00013544.jpg", "width": 620, "id": 13543, "height": 413}, {"file_name": "ADE_train_00013545.jpg", "width": 520, "id": 13544, "height": 343}, {"file_name": "ADE_train_00013546.jpg", "width": 256, "id": 13545, "height": 256}, {"file_name": "ADE_train_00013547.jpg", "width": 200, "id": 13546, "height": 134}, {"file_name": "ADE_train_00013548.jpg", "width": 256, "id": 13547, "height": 256}, {"file_name": "ADE_train_00013549.jpg", "width": 200, "id": 13548, "height": 300}, {"file_name": "ADE_train_00013550.jpg", "width": 640, "id": 13549, "height": 480}, {"file_name": "ADE_train_00013551.jpg", "width": 329, "id": 13550, "height": 250}, {"file_name": "ADE_train_00013552.jpg", "width": 500, "id": 13551, "height": 375}, {"file_name": "ADE_train_00013553.jpg", "width": 768, "id": 13552, "height": 512}, {"file_name": "ADE_train_00013554.jpg", "width": 200, "id": 13553, "height": 300}, {"file_name": "ADE_train_00013555.jpg", "width": 256, "id": 13554, "height": 256}, {"file_name": "ADE_train_00013556.jpg", "width": 256, "id": 13555, "height": 256}, {"file_name": "ADE_train_00013557.jpg", "width": 769, "id": 13556, "height": 512}, {"file_name": "ADE_train_00013558.jpg", "width": 500, "id": 13557, "height": 333}, {"file_name": "ADE_train_00013559.jpg", "width": 253, "id": 13558, "height": 380}, {"file_name": "ADE_train_00013560.jpg", "width": 427, "id": 13559, "height": 640}, {"file_name": "ADE_train_00013561.jpg", "width": 450, "id": 13560, "height": 600}, {"file_name": "ADE_train_00013562.jpg", "width": 676, "id": 13561, "height": 512}, {"file_name": "ADE_train_00013563.jpg", "width": 256, "id": 13562, "height": 256}, {"file_name": "ADE_train_00013564.jpg", "width": 500, "id": 13563, "height": 267}, {"file_name": "ADE_train_00013565.jpg", "width": 200, "id": 13564, "height": 267}, {"file_name": "ADE_train_00013566.jpg", "width": 300, "id": 13565, "height": 400}, {"file_name": "ADE_train_00013567.jpg", "width": 256, "id": 13566, "height": 256}, {"file_name": "ADE_train_00013568.jpg", "width": 432, "id": 13567, "height": 640}, {"file_name": "ADE_train_00013569.jpg", "width": 600, "id": 13568, "height": 444}, {"file_name": "ADE_train_00013570.jpg", "width": 256, "id": 13569, "height": 256}, {"file_name": "ADE_train_00013571.jpg", "width": 212, "id": 13570, "height": 320}, {"file_name": "ADE_train_00013572.jpg", "width": 293, "id": 13571, "height": 450}, {"file_name": "ADE_train_00013573.jpg", "width": 450, "id": 13572, "height": 265}, {"file_name": "ADE_train_00013574.jpg", "width": 256, "id": 13573, "height": 256}, {"file_name": "ADE_train_00013575.jpg", "width": 683, "id": 13574, "height": 512}, {"file_name": "ADE_train_00013576.jpg", "width": 683, "id": 13575, "height": 512}, {"file_name": "ADE_train_00013577.jpg", "width": 683, "id": 13576, "height": 512}, {"file_name": "ADE_train_00013578.jpg", "width": 400, "id": 13577, "height": 300}, {"file_name": "ADE_train_00013579.jpg", "width": 683, "id": 13578, "height": 512}, {"file_name": "ADE_train_00013580.jpg", "width": 640, "id": 13579, "height": 448}, {"file_name": "ADE_train_00013581.jpg", "width": 653, "id": 13580, "height": 453}, {"file_name": "ADE_train_00013582.jpg", "width": 256, "id": 13581, "height": 256}, {"file_name": "ADE_train_00013583.jpg", "width": 768, "id": 13582, "height": 512}, {"file_name": "ADE_train_00013584.jpg", "width": 280, "id": 13583, "height": 210}, {"file_name": "ADE_train_00013585.jpg", "width": 384, "id": 13584, "height": 256}, {"file_name": "ADE_train_00013586.jpg", "width": 550, "id": 13585, "height": 412}, {"file_name": "ADE_train_00013587.jpg", "width": 300, "id": 13586, "height": 400}, {"file_name": "ADE_train_00013588.jpg", "width": 319, "id": 13587, "height": 248}, {"file_name": "ADE_train_00013589.jpg", "width": 354, "id": 13588, "height": 454}, {"file_name": "ADE_train_00013590.jpg", "width": 765, "id": 13589, "height": 512}, {"file_name": "ADE_train_00013591.jpg", "width": 347, "id": 13590, "height": 260}, {"file_name": "ADE_train_00013592.jpg", "width": 350, "id": 13591, "height": 263}, {"file_name": "ADE_train_00013593.jpg", "width": 397, "id": 13592, "height": 299}, {"file_name": "ADE_train_00013594.jpg", "width": 500, "id": 13593, "height": 375}, {"file_name": "ADE_train_00013595.jpg", "width": 299, "id": 13594, "height": 280}, {"file_name": "ADE_train_00013596.jpg", "width": 252, "id": 13595, "height": 300}, {"file_name": "ADE_train_00013597.jpg", "width": 683, "id": 13596, "height": 512}, {"file_name": "ADE_train_00013598.jpg", "width": 633, "id": 13597, "height": 512}, {"file_name": "ADE_train_00013599.jpg", "width": 432, "id": 13598, "height": 324}, {"file_name": "ADE_train_00013600.jpg", "width": 683, "id": 13599, "height": 512}, {"file_name": "ADE_train_00013601.jpg", "width": 261, "id": 13600, "height": 200}, {"file_name": "ADE_train_00013602.jpg", "width": 450, "id": 13601, "height": 317}, {"file_name": "ADE_train_00013603.jpg", "width": 300, "id": 13602, "height": 424}, {"file_name": "ADE_train_00013604.jpg", "width": 256, "id": 13603, "height": 256}, {"file_name": "ADE_train_00013605.jpg", "width": 256, "id": 13604, "height": 256}, {"file_name": "ADE_train_00013606.jpg", "width": 357, "id": 13605, "height": 250}, {"file_name": "ADE_train_00013607.jpg", "width": 525, "id": 13606, "height": 512}, {"file_name": "ADE_train_00013608.jpg", "width": 640, "id": 13607, "height": 480}, {"file_name": "ADE_train_00013609.jpg", "width": 300, "id": 13608, "height": 225}, {"file_name": "ADE_train_00013610.jpg", "width": 683, "id": 13609, "height": 512}, {"file_name": "ADE_train_00013611.jpg", "width": 504, "id": 13610, "height": 378}, {"file_name": "ADE_train_00013612.jpg", "width": 358, "id": 13611, "height": 235}, {"file_name": "ADE_train_00013613.jpg", "width": 256, "id": 13612, "height": 256}, {"file_name": "ADE_train_00013614.jpg", "width": 614, "id": 13613, "height": 461}, {"file_name": "ADE_train_00013615.jpg", "width": 320, "id": 13614, "height": 240}, {"file_name": "ADE_train_00013616.jpg", "width": 300, "id": 13615, "height": 202}, {"file_name": "ADE_train_00013617.jpg", "width": 250, "id": 13616, "height": 250}, {"file_name": "ADE_train_00013618.jpg", "width": 406, "id": 13617, "height": 269}, {"file_name": "ADE_train_00013619.jpg", "width": 256, "id": 13618, "height": 256}, {"file_name": "ADE_train_00013620.jpg", "width": 583, "id": 13619, "height": 512}, {"file_name": "ADE_train_00013621.jpg", "width": 288, "id": 13620, "height": 216}, {"file_name": "ADE_train_00013622.jpg", "width": 283, "id": 13621, "height": 213}, {"file_name": "ADE_train_00013623.jpg", "width": 256, "id": 13622, "height": 256}, {"file_name": "ADE_train_00013624.jpg", "width": 256, "id": 13623, "height": 256}, {"file_name": "ADE_train_00013625.jpg", "width": 320, "id": 13624, "height": 240}, {"file_name": "ADE_train_00013626.jpg", "width": 256, "id": 13625, "height": 256}, {"file_name": "ADE_train_00013627.jpg", "width": 500, "id": 13626, "height": 335}, {"file_name": "ADE_train_00013628.jpg", "width": 360, "id": 13627, "height": 210}, {"file_name": "ADE_train_00013629.jpg", "width": 130, "id": 13628, "height": 96}, {"file_name": "ADE_train_00013630.jpg", "width": 512, "id": 13629, "height": 623}, {"file_name": "ADE_train_00013631.jpg", "width": 723, "id": 13630, "height": 512}, {"file_name": "ADE_train_00013632.jpg", "width": 769, "id": 13631, "height": 512}, {"file_name": "ADE_train_00013633.jpg", "width": 512, "id": 13632, "height": 384}, {"file_name": "ADE_train_00013634.jpg", "width": 537, "id": 13633, "height": 384}, {"file_name": "ADE_train_00013635.jpg", "width": 661, "id": 13634, "height": 512}, {"file_name": "ADE_train_00013636.jpg", "width": 175, "id": 13635, "height": 132}, {"file_name": "ADE_train_00013637.jpg", "width": 683, "id": 13636, "height": 512}, {"file_name": "ADE_train_00013638.jpg", "width": 683, "id": 13637, "height": 512}, {"file_name": "ADE_train_00013639.jpg", "width": 522, "id": 13638, "height": 300}, {"file_name": "ADE_train_00013640.jpg", "width": 450, "id": 13639, "height": 325}, {"file_name": "ADE_train_00013641.jpg", "width": 250, "id": 13640, "height": 188}, {"file_name": "ADE_train_00013642.jpg", "width": 256, "id": 13641, "height": 256}, {"file_name": "ADE_train_00013643.jpg", "width": 256, "id": 13642, "height": 256}, {"file_name": "ADE_train_00013644.jpg", "width": 648, "id": 13643, "height": 430}, {"file_name": "ADE_train_00013645.jpg", "width": 400, "id": 13644, "height": 265}, {"file_name": "ADE_train_00013646.jpg", "width": 550, "id": 13645, "height": 384}, {"file_name": "ADE_train_00013647.jpg", "width": 256, "id": 13646, "height": 256}, {"file_name": "ADE_train_00013648.jpg", "width": 360, "id": 13647, "height": 239}, {"file_name": "ADE_train_00013649.jpg", "width": 400, "id": 13648, "height": 304}, {"file_name": "ADE_train_00013650.jpg", "width": 500, "id": 13649, "height": 335}, {"file_name": "ADE_train_00013651.jpg", "width": 256, "id": 13650, "height": 256}, {"file_name": "ADE_train_00013652.jpg", "width": 683, "id": 13651, "height": 512}, {"file_name": "ADE_train_00013653.jpg", "width": 500, "id": 13652, "height": 300}, {"file_name": "ADE_train_00013654.jpg", "width": 288, "id": 13653, "height": 384}, {"file_name": "ADE_train_00013655.jpg", "width": 161, "id": 13654, "height": 248}, {"file_name": "ADE_train_00013656.jpg", "width": 500, "id": 13655, "height": 340}, {"file_name": "ADE_train_00013657.jpg", "width": 384, "id": 13656, "height": 260}, {"file_name": "ADE_train_00013658.jpg", "width": 256, "id": 13657, "height": 256}, {"file_name": "ADE_train_00013659.jpg", "width": 640, "id": 13658, "height": 480}, {"file_name": "ADE_train_00013660.jpg", "width": 640, "id": 13659, "height": 480}, {"file_name": "ADE_train_00013661.jpg", "width": 256, "id": 13660, "height": 256}, {"file_name": "ADE_train_00013662.jpg", "width": 256, "id": 13661, "height": 256}, {"file_name": "ADE_train_00013663.jpg", "width": 256, "id": 13662, "height": 256}, {"file_name": "ADE_train_00013664.jpg", "width": 656, "id": 13663, "height": 512}, {"file_name": "ADE_train_00013665.jpg", "width": 444, "id": 13664, "height": 290}, {"file_name": "ADE_train_00013666.jpg", "width": 700, "id": 13665, "height": 301}, {"file_name": "ADE_train_00013667.jpg", "width": 300, "id": 13666, "height": 221}, {"file_name": "ADE_train_00013668.jpg", "width": 640, "id": 13667, "height": 480}, {"file_name": "ADE_train_00013669.jpg", "width": 256, "id": 13668, "height": 256}, {"file_name": "ADE_train_00013670.jpg", "width": 256, "id": 13669, "height": 256}, {"file_name": "ADE_train_00013671.jpg", "width": 400, "id": 13670, "height": 246}, {"file_name": "ADE_train_00013672.jpg", "width": 267, "id": 13671, "height": 200}, {"file_name": "ADE_train_00013673.jpg", "width": 567, "id": 13672, "height": 414}, {"file_name": "ADE_train_00013674.jpg", "width": 320, "id": 13673, "height": 240}, {"file_name": "ADE_train_00013675.jpg", "width": 256, "id": 13674, "height": 256}, {"file_name": "ADE_train_00013676.jpg", "width": 252, "id": 13675, "height": 336}, {"file_name": "ADE_train_00013677.jpg", "width": 640, "id": 13676, "height": 512}, {"file_name": "ADE_train_00013678.jpg", "width": 300, "id": 13677, "height": 225}, {"file_name": "ADE_train_00013679.jpg", "width": 280, "id": 13678, "height": 210}, {"file_name": "ADE_train_00013680.jpg", "width": 609, "id": 13679, "height": 451}, {"file_name": "ADE_train_00013681.jpg", "width": 683, "id": 13680, "height": 512}, {"file_name": "ADE_train_00013682.jpg", "width": 300, "id": 13681, "height": 225}, {"file_name": "ADE_train_00013683.jpg", "width": 640, "id": 13682, "height": 480}, {"file_name": "ADE_train_00013684.jpg", "width": 640, "id": 13683, "height": 480}, {"file_name": "ADE_train_00013685.jpg", "width": 300, "id": 13684, "height": 240}, {"file_name": "ADE_train_00013686.jpg", "width": 256, "id": 13685, "height": 256}, {"file_name": "ADE_train_00013687.jpg", "width": 640, "id": 13686, "height": 426}, {"file_name": "ADE_train_00013688.jpg", "width": 450, "id": 13687, "height": 600}, {"file_name": "ADE_train_00013689.jpg", "width": 320, "id": 13688, "height": 240}, {"file_name": "ADE_train_00013690.jpg", "width": 683, "id": 13689, "height": 512}, {"file_name": "ADE_train_00013691.jpg", "width": 240, "id": 13690, "height": 183}, {"file_name": "ADE_train_00013692.jpg", "width": 461, "id": 13691, "height": 366}, {"file_name": "ADE_train_00013693.jpg", "width": 256, "id": 13692, "height": 256}, {"file_name": "ADE_train_00013694.jpg", "width": 256, "id": 13693, "height": 256}, {"file_name": "ADE_train_00013695.jpg", "width": 225, "id": 13694, "height": 300}, {"file_name": "ADE_train_00013696.jpg", "width": 256, "id": 13695, "height": 256}, {"file_name": "ADE_train_00013697.jpg", "width": 640, "id": 13696, "height": 442}, {"file_name": "ADE_train_00013698.jpg", "width": 256, "id": 13697, "height": 256}, {"file_name": "ADE_train_00013699.jpg", "width": 600, "id": 13698, "height": 450}, {"file_name": "ADE_train_00013700.jpg", "width": 256, "id": 13699, "height": 256}, {"file_name": "ADE_train_00013701.jpg", "width": 375, "id": 13700, "height": 250}, {"file_name": "ADE_train_00013702.jpg", "width": 256, "id": 13701, "height": 256}, {"file_name": "ADE_train_00013703.jpg", "width": 600, "id": 13702, "height": 399}, {"file_name": "ADE_train_00013704.jpg", "width": 500, "id": 13703, "height": 277}, {"file_name": "ADE_train_00013705.jpg", "width": 300, "id": 13704, "height": 448}, {"file_name": "ADE_train_00013706.jpg", "width": 476, "id": 13705, "height": 326}, {"file_name": "ADE_train_00013707.jpg", "width": 683, "id": 13706, "height": 512}, {"file_name": "ADE_train_00013708.jpg", "width": 450, "id": 13707, "height": 300}, {"file_name": "ADE_train_00013709.jpg", "width": 387, "id": 13708, "height": 290}, {"file_name": "ADE_train_00013710.jpg", "width": 400, "id": 13709, "height": 300}, {"file_name": "ADE_train_00013711.jpg", "width": 420, "id": 13710, "height": 315}, {"file_name": "ADE_train_00013712.jpg", "width": 256, "id": 13711, "height": 256}, {"file_name": "ADE_train_00013713.jpg", "width": 329, "id": 13712, "height": 206}, {"file_name": "ADE_train_00013714.jpg", "width": 234, "id": 13713, "height": 235}, {"file_name": "ADE_train_00013715.jpg", "width": 676, "id": 13714, "height": 512}, {"file_name": "ADE_train_00013716.jpg", "width": 412, "id": 13715, "height": 270}, {"file_name": "ADE_train_00013717.jpg", "width": 683, "id": 13716, "height": 512}, {"file_name": "ADE_train_00013718.jpg", "width": 280, "id": 13717, "height": 300}, {"file_name": "ADE_train_00013719.jpg", "width": 354, "id": 13718, "height": 313}, {"file_name": "ADE_train_00013720.jpg", "width": 768, "id": 13719, "height": 512}, {"file_name": "ADE_train_00013721.jpg", "width": 256, "id": 13720, "height": 256}, {"file_name": "ADE_train_00013722.jpg", "width": 256, "id": 13721, "height": 256}, {"file_name": "ADE_train_00013723.jpg", "width": 256, "id": 13722, "height": 256}, {"file_name": "ADE_train_00013724.jpg", "width": 810, "id": 13723, "height": 509}, {"file_name": "ADE_train_00013725.jpg", "width": 683, "id": 13724, "height": 512}, {"file_name": "ADE_train_00013726.jpg", "width": 320, "id": 13725, "height": 240}, {"file_name": "ADE_train_00013727.jpg", "width": 456, "id": 13726, "height": 368}, {"file_name": "ADE_train_00013728.jpg", "width": 256, "id": 13727, "height": 256}, {"file_name": "ADE_train_00013729.jpg", "width": 518, "id": 13728, "height": 388}, {"file_name": "ADE_train_00013730.jpg", "width": 324, "id": 13729, "height": 218}, {"file_name": "ADE_train_00013731.jpg", "width": 256, "id": 13730, "height": 256}, {"file_name": "ADE_train_00013732.jpg", "width": 480, "id": 13731, "height": 640}, {"file_name": "ADE_train_00013733.jpg", "width": 256, "id": 13732, "height": 256}, {"file_name": "ADE_train_00013734.jpg", "width": 270, "id": 13733, "height": 180}, {"file_name": "ADE_train_00013735.jpg", "width": 600, "id": 13734, "height": 416}, {"file_name": "ADE_train_00013736.jpg", "width": 350, "id": 13735, "height": 289}, {"file_name": "ADE_train_00013737.jpg", "width": 500, "id": 13736, "height": 500}, {"file_name": "ADE_train_00013738.jpg", "width": 416, "id": 13737, "height": 267}, {"file_name": "ADE_train_00013739.jpg", "width": 256, "id": 13738, "height": 256}, {"file_name": "ADE_train_00013740.jpg", "width": 256, "id": 13739, "height": 256}, {"file_name": "ADE_train_00013741.jpg", "width": 705, "id": 13740, "height": 512}, {"file_name": "ADE_train_00013742.jpg", "width": 564, "id": 13741, "height": 375}, {"file_name": "ADE_train_00013743.jpg", "width": 256, "id": 13742, "height": 256}, {"file_name": "ADE_train_00013744.jpg", "width": 400, "id": 13743, "height": 305}, {"file_name": "ADE_train_00013745.jpg", "width": 487, "id": 13744, "height": 405}, {"file_name": "ADE_train_00013746.jpg", "width": 256, "id": 13745, "height": 256}, {"file_name": "ADE_train_00013747.jpg", "width": 690, "id": 13746, "height": 512}, {"file_name": "ADE_train_00013748.jpg", "width": 640, "id": 13747, "height": 480}, {"file_name": "ADE_train_00013749.jpg", "width": 587, "id": 13748, "height": 512}, {"file_name": "ADE_train_00013750.jpg", "width": 256, "id": 13749, "height": 256}, {"file_name": "ADE_train_00013751.jpg", "width": 220, "id": 13750, "height": 212}, {"file_name": "ADE_train_00013752.jpg", "width": 256, "id": 13751, "height": 256}, {"file_name": "ADE_train_00013753.jpg", "width": 500, "id": 13752, "height": 375}, {"file_name": "ADE_train_00013754.jpg", "width": 256, "id": 13753, "height": 256}, {"file_name": "ADE_train_00013755.jpg", "width": 263, "id": 13754, "height": 352}, {"file_name": "ADE_train_00013756.jpg", "width": 400, "id": 13755, "height": 318}, {"file_name": "ADE_train_00013757.jpg", "width": 256, "id": 13756, "height": 256}, {"file_name": "ADE_train_00013758.jpg", "width": 683, "id": 13757, "height": 512}, {"file_name": "ADE_train_00013759.jpg", "width": 512, "id": 13758, "height": 585}, {"file_name": "ADE_train_00013760.jpg", "width": 224, "id": 13759, "height": 300}, {"file_name": "ADE_train_00013761.jpg", "width": 256, "id": 13760, "height": 256}, {"file_name": "ADE_train_00013762.jpg", "width": 256, "id": 13761, "height": 256}, {"file_name": "ADE_train_00013763.jpg", "width": 683, "id": 13762, "height": 512}, {"file_name": "ADE_train_00013764.jpg", "width": 300, "id": 13763, "height": 308}, {"file_name": "ADE_train_00013765.jpg", "width": 314, "id": 13764, "height": 219}, {"file_name": "ADE_train_00013766.jpg", "width": 308, "id": 13765, "height": 295}, {"file_name": "ADE_train_00013767.jpg", "width": 713, "id": 13766, "height": 479}, {"file_name": "ADE_train_00013768.jpg", "width": 256, "id": 13767, "height": 256}, {"file_name": "ADE_train_00013769.jpg", "width": 400, "id": 13768, "height": 300}, {"file_name": "ADE_train_00013770.jpg", "width": 683, "id": 13769, "height": 512}, {"file_name": "ADE_train_00013771.jpg", "width": 683, "id": 13770, "height": 512}, {"file_name": "ADE_train_00013772.jpg", "width": 256, "id": 13771, "height": 256}, {"file_name": "ADE_train_00013773.jpg", "width": 256, "id": 13772, "height": 256}, {"file_name": "ADE_train_00013774.jpg", "width": 640, "id": 13773, "height": 480}, {"file_name": "ADE_train_00013775.jpg", "width": 256, "id": 13774, "height": 256}, {"file_name": "ADE_train_00013776.jpg", "width": 198, "id": 13775, "height": 198}, {"file_name": "ADE_train_00013777.jpg", "width": 256, "id": 13776, "height": 256}, {"file_name": "ADE_train_00013778.jpg", "width": 500, "id": 13777, "height": 333}, {"file_name": "ADE_train_00013779.jpg", "width": 1024, "id": 13778, "height": 489}, {"file_name": "ADE_train_00013780.jpg", "width": 500, "id": 13779, "height": 375}, {"file_name": "ADE_train_00013781.jpg", "width": 256, "id": 13780, "height": 256}, {"file_name": "ADE_train_00013782.jpg", "width": 256, "id": 13781, "height": 256}, {"file_name": "ADE_train_00013783.jpg", "width": 256, "id": 13782, "height": 256}, {"file_name": "ADE_train_00013784.jpg", "width": 256, "id": 13783, "height": 256}, {"file_name": "ADE_train_00013785.jpg", "width": 425, "id": 13784, "height": 567}, {"file_name": "ADE_train_00013786.jpg", "width": 281, "id": 13785, "height": 375}, {"file_name": "ADE_train_00013787.jpg", "width": 577, "id": 13786, "height": 185}, {"file_name": "ADE_train_00013788.jpg", "width": 683, "id": 13787, "height": 512}, {"file_name": "ADE_train_00013789.jpg", "width": 500, "id": 13788, "height": 333}, {"file_name": "ADE_train_00013790.jpg", "width": 256, "id": 13789, "height": 256}, {"file_name": "ADE_train_00013791.jpg", "width": 250, "id": 13790, "height": 235}, {"file_name": "ADE_train_00013792.jpg", "width": 512, "id": 13791, "height": 522}, {"file_name": "ADE_train_00013793.jpg", "width": 446, "id": 13792, "height": 595}, {"file_name": "ADE_train_00013794.jpg", "width": 683, "id": 13793, "height": 512}, {"file_name": "ADE_train_00013795.jpg", "width": 256, "id": 13794, "height": 256}, {"file_name": "ADE_train_00013796.jpg", "width": 300, "id": 13795, "height": 225}, {"file_name": "ADE_train_00013797.jpg", "width": 450, "id": 13796, "height": 302}, {"file_name": "ADE_train_00013798.jpg", "width": 256, "id": 13797, "height": 256}, {"file_name": "ADE_train_00013799.jpg", "width": 800, "id": 13798, "height": 800}, {"file_name": "ADE_train_00013800.jpg", "width": 220, "id": 13799, "height": 289}, {"file_name": "ADE_train_00013801.jpg", "width": 302, "id": 13800, "height": 227}, {"file_name": "ADE_train_00013802.jpg", "width": 300, "id": 13801, "height": 238}, {"file_name": "ADE_train_00013803.jpg", "width": 256, "id": 13802, "height": 256}, {"file_name": "ADE_train_00013804.jpg", "width": 256, "id": 13803, "height": 256}, {"file_name": "ADE_train_00013805.jpg", "width": 256, "id": 13804, "height": 256}, {"file_name": "ADE_train_00013806.jpg", "width": 320, "id": 13805, "height": 240}, {"file_name": "ADE_train_00013807.jpg", "width": 512, "id": 13806, "height": 768}, {"file_name": "ADE_train_00013808.jpg", "width": 512, "id": 13807, "height": 683}, {"file_name": "ADE_train_00013809.jpg", "width": 512, "id": 13808, "height": 522}, {"file_name": "ADE_train_00013810.jpg", "width": 683, "id": 13809, "height": 512}, {"file_name": "ADE_train_00013811.jpg", "width": 683, "id": 13810, "height": 512}, {"file_name": "ADE_train_00013812.jpg", "width": 254, "id": 13811, "height": 300}, {"file_name": "ADE_train_00013813.jpg", "width": 682, "id": 13812, "height": 512}, {"file_name": "ADE_train_00013814.jpg", "width": 704, "id": 13813, "height": 512}, {"file_name": "ADE_train_00013815.jpg", "width": 600, "id": 13814, "height": 408}, {"file_name": "ADE_train_00013816.jpg", "width": 650, "id": 13815, "height": 380}, {"file_name": "ADE_train_00013817.jpg", "width": 776, "id": 13816, "height": 512}, {"file_name": "ADE_train_00013818.jpg", "width": 813, "id": 13817, "height": 512}, {"file_name": "ADE_train_00013819.jpg", "width": 765, "id": 13818, "height": 512}, {"file_name": "ADE_train_00013820.jpg", "width": 512, "id": 13819, "height": 683}, {"file_name": "ADE_train_00013821.jpg", "width": 320, "id": 13820, "height": 210}, {"file_name": "ADE_train_00013822.jpg", "width": 683, "id": 13821, "height": 512}, {"file_name": "ADE_train_00013823.jpg", "width": 300, "id": 13822, "height": 200}, {"file_name": "ADE_train_00013824.jpg", "width": 640, "id": 13823, "height": 480}, {"file_name": "ADE_train_00013825.jpg", "width": 360, "id": 13824, "height": 239}, {"file_name": "ADE_train_00013826.jpg", "width": 360, "id": 13825, "height": 239}, {"file_name": "ADE_train_00013827.jpg", "width": 320, "id": 13826, "height": 250}, {"file_name": "ADE_train_00013828.jpg", "width": 450, "id": 13827, "height": 292}, {"file_name": "ADE_train_00013829.jpg", "width": 288, "id": 13828, "height": 216}, {"file_name": "ADE_train_00013830.jpg", "width": 765, "id": 13829, "height": 512}, {"file_name": "ADE_train_00013831.jpg", "width": 640, "id": 13830, "height": 480}, {"file_name": "ADE_train_00013832.jpg", "width": 383, "id": 13831, "height": 288}, {"file_name": "ADE_train_00013833.jpg", "width": 640, "id": 13832, "height": 480}, {"file_name": "ADE_train_00013834.jpg", "width": 225, "id": 13833, "height": 313}, {"file_name": "ADE_train_00013835.jpg", "width": 683, "id": 13834, "height": 512}, {"file_name": "ADE_train_00013836.jpg", "width": 683, "id": 13835, "height": 512}, {"file_name": "ADE_train_00013837.jpg", "width": 768, "id": 13836, "height": 512}, {"file_name": "ADE_train_00013838.jpg", "width": 683, "id": 13837, "height": 512}, {"file_name": "ADE_train_00013839.jpg", "width": 227, "id": 13838, "height": 320}, {"file_name": "ADE_train_00013840.jpg", "width": 576, "id": 13839, "height": 411}, {"file_name": "ADE_train_00013841.jpg", "width": 400, "id": 13840, "height": 300}, {"file_name": "ADE_train_00013842.jpg", "width": 700, "id": 13841, "height": 376}, {"file_name": "ADE_train_00013843.jpg", "width": 700, "id": 13842, "height": 466}, {"file_name": "ADE_train_00013844.jpg", "width": 768, "id": 13843, "height": 512}, {"file_name": "ADE_train_00013845.jpg", "width": 350, "id": 13844, "height": 233}, {"file_name": "ADE_train_00013846.jpg", "width": 300, "id": 13845, "height": 300}, {"file_name": "ADE_train_00013847.jpg", "width": 729, "id": 13846, "height": 512}, {"file_name": "ADE_train_00013848.jpg", "width": 220, "id": 13847, "height": 220}, {"file_name": "ADE_train_00013849.jpg", "width": 500, "id": 13848, "height": 333}, {"file_name": "ADE_train_00013850.jpg", "width": 799, "id": 13849, "height": 512}, {"file_name": "ADE_train_00013851.jpg", "width": 325, "id": 13850, "height": 259}, {"file_name": "ADE_train_00013852.jpg", "width": 342, "id": 13851, "height": 273}, {"file_name": "ADE_train_00013853.jpg", "width": 485, "id": 13852, "height": 364}, {"file_name": "ADE_train_00013854.jpg", "width": 512, "id": 13853, "height": 716}, {"file_name": "ADE_train_00013855.jpg", "width": 769, "id": 13854, "height": 512}, {"file_name": "ADE_train_00013856.jpg", "width": 283, "id": 13855, "height": 288}, {"file_name": "ADE_train_00013857.jpg", "width": 358, "id": 13856, "height": 240}, {"file_name": "ADE_train_00013858.jpg", "width": 330, "id": 13857, "height": 270}, {"file_name": "ADE_train_00013859.jpg", "width": 707, "id": 13858, "height": 491}, {"file_name": "ADE_train_00013860.jpg", "width": 379, "id": 13859, "height": 301}, {"file_name": "ADE_train_00013861.jpg", "width": 432, "id": 13860, "height": 324}, {"file_name": "ADE_train_00013862.jpg", "width": 541, "id": 13861, "height": 362}, {"file_name": "ADE_train_00013863.jpg", "width": 860, "id": 13862, "height": 512}, {"file_name": "ADE_train_00013864.jpg", "width": 826, "id": 13863, "height": 512}, {"file_name": "ADE_train_00013865.jpg", "width": 562, "id": 13864, "height": 316}, {"file_name": "ADE_train_00013866.jpg", "width": 680, "id": 13865, "height": 512}, {"file_name": "ADE_train_00013867.jpg", "width": 683, "id": 13866, "height": 512}, {"file_name": "ADE_train_00013868.jpg", "width": 256, "id": 13867, "height": 256}, {"file_name": "ADE_train_00013869.jpg", "width": 768, "id": 13868, "height": 512}, {"file_name": "ADE_train_00013870.jpg", "width": 500, "id": 13869, "height": 326}, {"file_name": "ADE_train_00013871.jpg", "width": 300, "id": 13870, "height": 450}, {"file_name": "ADE_train_00013872.jpg", "width": 610, "id": 13871, "height": 512}, {"file_name": "ADE_train_00013873.jpg", "width": 360, "id": 13872, "height": 243}, {"file_name": "ADE_train_00013874.jpg", "width": 683, "id": 13873, "height": 512}, {"file_name": "ADE_train_00013875.jpg", "width": 683, "id": 13874, "height": 512}, {"file_name": "ADE_train_00013876.jpg", "width": 256, "id": 13875, "height": 256}, {"file_name": "ADE_train_00013877.jpg", "width": 320, "id": 13876, "height": 240}, {"file_name": "ADE_train_00013878.jpg", "width": 360, "id": 13877, "height": 243}, {"file_name": "ADE_train_00013879.jpg", "width": 683, "id": 13878, "height": 512}, {"file_name": "ADE_train_00013880.jpg", "width": 512, "id": 13879, "height": 683}, {"file_name": "ADE_train_00013881.jpg", "width": 350, "id": 13880, "height": 233}, {"file_name": "ADE_train_00013882.jpg", "width": 683, "id": 13881, "height": 512}, {"file_name": "ADE_train_00013883.jpg", "width": 683, "id": 13882, "height": 512}, {"file_name": "ADE_train_00013884.jpg", "width": 576, "id": 13883, "height": 438}, {"file_name": "ADE_train_00013885.jpg", "width": 683, "id": 13884, "height": 512}, {"file_name": "ADE_train_00013886.jpg", "width": 256, "id": 13885, "height": 256}, {"file_name": "ADE_train_00013887.jpg", "width": 683, "id": 13886, "height": 512}, {"file_name": "ADE_train_00013888.jpg", "width": 256, "id": 13887, "height": 256}, {"file_name": "ADE_train_00013889.jpg", "width": 400, "id": 13888, "height": 292}, {"file_name": "ADE_train_00013890.jpg", "width": 683, "id": 13889, "height": 512}, {"file_name": "ADE_train_00013891.jpg", "width": 267, "id": 13890, "height": 400}, {"file_name": "ADE_train_00013892.jpg", "width": 370, "id": 13891, "height": 235}, {"file_name": "ADE_train_00013893.jpg", "width": 480, "id": 13892, "height": 319}, {"file_name": "ADE_train_00013894.jpg", "width": 690, "id": 13893, "height": 459}, {"file_name": "ADE_train_00013895.jpg", "width": 320, "id": 13894, "height": 256}, {"file_name": "ADE_train_00013896.jpg", "width": 683, "id": 13895, "height": 512}, {"file_name": "ADE_train_00013897.jpg", "width": 374, "id": 13896, "height": 400}, {"file_name": "ADE_train_00013898.jpg", "width": 256, "id": 13897, "height": 256}, {"file_name": "ADE_train_00013899.jpg", "width": 325, "id": 13898, "height": 325}, {"file_name": "ADE_train_00013900.jpg", "width": 600, "id": 13899, "height": 450}, {"file_name": "ADE_train_00013901.jpg", "width": 256, "id": 13900, "height": 256}, {"file_name": "ADE_train_00013902.jpg", "width": 512, "id": 13901, "height": 595}, {"file_name": "ADE_train_00013903.jpg", "width": 332, "id": 13902, "height": 442}, {"file_name": "ADE_train_00013904.jpg", "width": 500, "id": 13903, "height": 375}, {"file_name": "ADE_train_00013905.jpg", "width": 256, "id": 13904, "height": 256}, {"file_name": "ADE_train_00013906.jpg", "width": 682, "id": 13905, "height": 511}, {"file_name": "ADE_train_00013907.jpg", "width": 770, "id": 13906, "height": 512}, {"file_name": "ADE_train_00013908.jpg", "width": 683, "id": 13907, "height": 512}, {"file_name": "ADE_train_00013909.jpg", "width": 300, "id": 13908, "height": 290}, {"file_name": "ADE_train_00013910.jpg", "width": 400, "id": 13909, "height": 320}, {"file_name": "ADE_train_00013911.jpg", "width": 609, "id": 13910, "height": 405}, {"file_name": "ADE_train_00013912.jpg", "width": 256, "id": 13911, "height": 256}, {"file_name": "ADE_train_00013913.jpg", "width": 256, "id": 13912, "height": 256}, {"file_name": "ADE_train_00013914.jpg", "width": 256, "id": 13913, "height": 256}, {"file_name": "ADE_train_00013915.jpg", "width": 256, "id": 13914, "height": 256}, {"file_name": "ADE_train_00013916.jpg", "width": 683, "id": 13915, "height": 512}, {"file_name": "ADE_train_00013917.jpg", "width": 200, "id": 13916, "height": 200}, {"file_name": "ADE_train_00013918.jpg", "width": 256, "id": 13917, "height": 256}, {"file_name": "ADE_train_00013919.jpg", "width": 375, "id": 13918, "height": 500}, {"file_name": "ADE_train_00013920.jpg", "width": 460, "id": 13919, "height": 305}, {"file_name": "ADE_train_00013921.jpg", "width": 256, "id": 13920, "height": 256}, {"file_name": "ADE_train_00013922.jpg", "width": 400, "id": 13921, "height": 267}, {"file_name": "ADE_train_00013923.jpg", "width": 910, "id": 13922, "height": 512}, {"file_name": "ADE_train_00013924.jpg", "width": 680, "id": 13923, "height": 512}, {"file_name": "ADE_train_00013925.jpg", "width": 683, "id": 13924, "height": 512}, {"file_name": "ADE_train_00013926.jpg", "width": 400, "id": 13925, "height": 302}, {"file_name": "ADE_train_00013927.jpg", "width": 300, "id": 13926, "height": 300}, {"file_name": "ADE_train_00013928.jpg", "width": 300, "id": 13927, "height": 210}, {"file_name": "ADE_train_00013929.jpg", "width": 333, "id": 13928, "height": 500}, {"file_name": "ADE_train_00013930.jpg", "width": 640, "id": 13929, "height": 480}, {"file_name": "ADE_train_00013931.jpg", "width": 400, "id": 13930, "height": 297}, {"file_name": "ADE_train_00013932.jpg", "width": 320, "id": 13931, "height": 240}, {"file_name": "ADE_train_00013933.jpg", "width": 268, "id": 13932, "height": 308}, {"file_name": "ADE_train_00013934.jpg", "width": 683, "id": 13933, "height": 512}, {"file_name": "ADE_train_00013935.jpg", "width": 355, "id": 13934, "height": 240}, {"file_name": "ADE_train_00013936.jpg", "width": 512, "id": 13935, "height": 683}, {"file_name": "ADE_train_00013937.jpg", "width": 634, "id": 13936, "height": 512}, {"file_name": "ADE_train_00013938.jpg", "width": 683, "id": 13937, "height": 512}, {"file_name": "ADE_train_00013939.jpg", "width": 768, "id": 13938, "height": 512}, {"file_name": "ADE_train_00013940.jpg", "width": 300, "id": 13939, "height": 225}, {"file_name": "ADE_train_00013941.jpg", "width": 683, "id": 13940, "height": 512}, {"file_name": "ADE_train_00013942.jpg", "width": 683, "id": 13941, "height": 512}, {"file_name": "ADE_train_00013943.jpg", "width": 683, "id": 13942, "height": 512}, {"file_name": "ADE_train_00013944.jpg", "width": 500, "id": 13943, "height": 265}, {"file_name": "ADE_train_00013945.jpg", "width": 262, "id": 13944, "height": 197}, {"file_name": "ADE_train_00013946.jpg", "width": 533, "id": 13945, "height": 350}, {"file_name": "ADE_train_00013947.jpg", "width": 300, "id": 13946, "height": 225}, {"file_name": "ADE_train_00013948.jpg", "width": 727, "id": 13947, "height": 512}, {"file_name": "ADE_train_00013949.jpg", "width": 600, "id": 13948, "height": 407}, {"file_name": "ADE_train_00013950.jpg", "width": 589, "id": 13949, "height": 370}, {"file_name": "ADE_train_00013951.jpg", "width": 415, "id": 13950, "height": 640}, {"file_name": "ADE_train_00013952.jpg", "width": 387, "id": 13951, "height": 275}, {"file_name": "ADE_train_00013953.jpg", "width": 175, "id": 13952, "height": 175}, {"file_name": "ADE_train_00013954.jpg", "width": 300, "id": 13953, "height": 199}, {"file_name": "ADE_train_00013955.jpg", "width": 512, "id": 13954, "height": 683}, {"file_name": "ADE_train_00013956.jpg", "width": 683, "id": 13955, "height": 512}, {"file_name": "ADE_train_00013957.jpg", "width": 683, "id": 13956, "height": 512}, {"file_name": "ADE_train_00013958.jpg", "width": 683, "id": 13957, "height": 512}, {"file_name": "ADE_train_00013959.jpg", "width": 258, "id": 13958, "height": 329}, {"file_name": "ADE_train_00013960.jpg", "width": 320, "id": 13959, "height": 244}, {"file_name": "ADE_train_00013961.jpg", "width": 681, "id": 13960, "height": 512}, {"file_name": "ADE_train_00013962.jpg", "width": 765, "id": 13961, "height": 512}, {"file_name": "ADE_train_00013963.jpg", "width": 683, "id": 13962, "height": 512}, {"file_name": "ADE_train_00013964.jpg", "width": 683, "id": 13963, "height": 512}, {"file_name": "ADE_train_00013965.jpg", "width": 500, "id": 13964, "height": 362}, {"file_name": "ADE_train_00013966.jpg", "width": 300, "id": 13965, "height": 225}, {"file_name": "ADE_train_00013967.jpg", "width": 335, "id": 13966, "height": 235}, {"file_name": "ADE_train_00013968.jpg", "width": 400, "id": 13967, "height": 300}, {"file_name": "ADE_train_00013969.jpg", "width": 683, "id": 13968, "height": 512}, {"file_name": "ADE_train_00013970.jpg", "width": 300, "id": 13969, "height": 225}, {"file_name": "ADE_train_00013971.jpg", "width": 671, "id": 13970, "height": 512}, {"file_name": "ADE_train_00013972.jpg", "width": 560, "id": 13971, "height": 420}, {"file_name": "ADE_train_00013973.jpg", "width": 812, "id": 13972, "height": 512}, {"file_name": "ADE_train_00013974.jpg", "width": 400, "id": 13973, "height": 300}, {"file_name": "ADE_train_00013975.jpg", "width": 560, "id": 13974, "height": 420}, {"file_name": "ADE_train_00013976.jpg", "width": 512, "id": 13975, "height": 910}, {"file_name": "ADE_train_00013977.jpg", "width": 256, "id": 13976, "height": 256}, {"file_name": "ADE_train_00013978.jpg", "width": 256, "id": 13977, "height": 256}, {"file_name": "ADE_train_00013979.jpg", "width": 256, "id": 13978, "height": 256}, {"file_name": "ADE_train_00013980.jpg", "width": 778, "id": 13979, "height": 512}, {"file_name": "ADE_train_00013981.jpg", "width": 256, "id": 13980, "height": 256}, {"file_name": "ADE_train_00013982.jpg", "width": 256, "id": 13981, "height": 256}, {"file_name": "ADE_train_00013983.jpg", "width": 256, "id": 13982, "height": 256}, {"file_name": "ADE_train_00013984.jpg", "width": 256, "id": 13983, "height": 256}, {"file_name": "ADE_train_00013985.jpg", "width": 256, "id": 13984, "height": 256}, {"file_name": "ADE_train_00013986.jpg", "width": 256, "id": 13985, "height": 256}, {"file_name": "ADE_train_00013987.jpg", "width": 256, "id": 13986, "height": 256}, {"file_name": "ADE_train_00013988.jpg", "width": 256, "id": 13987, "height": 256}, {"file_name": "ADE_train_00013989.jpg", "width": 256, "id": 13988, "height": 256}, {"file_name": "ADE_train_00013990.jpg", "width": 256, "id": 13989, "height": 256}, {"file_name": "ADE_train_00013991.jpg", "width": 256, "id": 13990, "height": 256}, {"file_name": "ADE_train_00013992.jpg", "width": 256, "id": 13991, "height": 256}, {"file_name": "ADE_train_00013993.jpg", "width": 256, "id": 13992, "height": 256}, {"file_name": "ADE_train_00013994.jpg", "width": 256, "id": 13993, "height": 256}, {"file_name": "ADE_train_00013995.jpg", "width": 256, "id": 13994, "height": 256}, {"file_name": "ADE_train_00013996.jpg", "width": 500, "id": 13995, "height": 375}, {"file_name": "ADE_train_00013997.jpg", "width": 256, "id": 13996, "height": 256}, {"file_name": "ADE_train_00013998.jpg", "width": 256, "id": 13997, "height": 256}, {"file_name": "ADE_train_00013999.jpg", "width": 256, "id": 13998, "height": 256}, {"file_name": "ADE_train_00014000.jpg", "width": 683, "id": 13999, "height": 512}, {"file_name": "ADE_train_00014001.jpg", "width": 672, "id": 14000, "height": 512}, {"file_name": "ADE_train_00014002.jpg", "width": 765, "id": 14001, "height": 512}, {"file_name": "ADE_train_00014003.jpg", "width": 683, "id": 14002, "height": 512}, {"file_name": "ADE_train_00014004.jpg", "width": 683, "id": 14003, "height": 512}, {"file_name": "ADE_train_00014005.jpg", "width": 683, "id": 14004, "height": 512}, {"file_name": "ADE_train_00014006.jpg", "width": 765, "id": 14005, "height": 512}, {"file_name": "ADE_train_00014007.jpg", "width": 683, "id": 14006, "height": 512}, {"file_name": "ADE_train_00014008.jpg", "width": 683, "id": 14007, "height": 512}, {"file_name": "ADE_train_00014009.jpg", "width": 683, "id": 14008, "height": 512}, {"file_name": "ADE_train_00014010.jpg", "width": 600, "id": 14009, "height": 400}, {"file_name": "ADE_train_00014011.jpg", "width": 683, "id": 14010, "height": 512}, {"file_name": "ADE_train_00014012.jpg", "width": 640, "id": 14011, "height": 480}, {"file_name": "ADE_train_00014013.jpg", "width": 640, "id": 14012, "height": 480}, {"file_name": "ADE_train_00014014.jpg", "width": 640, "id": 14013, "height": 480}, {"file_name": "ADE_train_00014015.jpg", "width": 683, "id": 14014, "height": 512}, {"file_name": "ADE_train_00014016.jpg", "width": 683, "id": 14015, "height": 512}, {"file_name": "ADE_train_00014017.jpg", "width": 683, "id": 14016, "height": 512}, {"file_name": "ADE_train_00014018.jpg", "width": 683, "id": 14017, "height": 512}, {"file_name": "ADE_train_00014019.jpg", "width": 683, "id": 14018, "height": 512}, {"file_name": "ADE_train_00014020.jpg", "width": 640, "id": 14019, "height": 480}, {"file_name": "ADE_train_00014021.jpg", "width": 683, "id": 14020, "height": 512}, {"file_name": "ADE_train_00014022.jpg", "width": 683, "id": 14021, "height": 512}, {"file_name": "ADE_train_00014023.jpg", "width": 683, "id": 14022, "height": 512}, {"file_name": "ADE_train_00014024.jpg", "width": 683, "id": 14023, "height": 512}, {"file_name": "ADE_train_00014025.jpg", "width": 683, "id": 14024, "height": 512}, {"file_name": "ADE_train_00014026.jpg", "width": 640, "id": 14025, "height": 480}, {"file_name": "ADE_train_00014027.jpg", "width": 683, "id": 14026, "height": 512}, {"file_name": "ADE_train_00014028.jpg", "width": 765, "id": 14027, "height": 512}, {"file_name": "ADE_train_00014029.jpg", "width": 683, "id": 14028, "height": 512}, {"file_name": "ADE_train_00014030.jpg", "width": 683, "id": 14029, "height": 512}, {"file_name": "ADE_train_00014031.jpg", "width": 683, "id": 14030, "height": 512}, {"file_name": "ADE_train_00014032.jpg", "width": 765, "id": 14031, "height": 512}, {"file_name": "ADE_train_00014033.jpg", "width": 683, "id": 14032, "height": 512}, {"file_name": "ADE_train_00014034.jpg", "width": 640, "id": 14033, "height": 480}, {"file_name": "ADE_train_00014035.jpg", "width": 683, "id": 14034, "height": 512}, {"file_name": "ADE_train_00014036.jpg", "width": 640, "id": 14035, "height": 480}, {"file_name": "ADE_train_00014037.jpg", "width": 640, "id": 14036, "height": 480}, {"file_name": "ADE_train_00014038.jpg", "width": 683, "id": 14037, "height": 512}, {"file_name": "ADE_train_00014039.jpg", "width": 683, "id": 14038, "height": 512}, {"file_name": "ADE_train_00014040.jpg", "width": 640, "id": 14039, "height": 480}, {"file_name": "ADE_train_00014041.jpg", "width": 683, "id": 14040, "height": 512}, {"file_name": "ADE_train_00014042.jpg", "width": 640, "id": 14041, "height": 480}, {"file_name": "ADE_train_00014043.jpg", "width": 600, "id": 14042, "height": 450}, {"file_name": "ADE_train_00014044.jpg", "width": 256, "id": 14043, "height": 256}, {"file_name": "ADE_train_00014045.jpg", "width": 256, "id": 14044, "height": 256}, {"file_name": "ADE_train_00014046.jpg", "width": 640, "id": 14045, "height": 480}, {"file_name": "ADE_train_00014047.jpg", "width": 683, "id": 14046, "height": 512}, {"file_name": "ADE_train_00014048.jpg", "width": 256, "id": 14047, "height": 256}, {"file_name": "ADE_train_00014049.jpg", "width": 256, "id": 14048, "height": 256}, {"file_name": "ADE_train_00014050.jpg", "width": 256, "id": 14049, "height": 256}, {"file_name": "ADE_train_00014051.jpg", "width": 400, "id": 14050, "height": 289}, {"file_name": "ADE_train_00014052.jpg", "width": 384, "id": 14051, "height": 512}, {"file_name": "ADE_train_00014053.jpg", "width": 256, "id": 14052, "height": 256}, {"file_name": "ADE_train_00014054.jpg", "width": 320, "id": 14053, "height": 240}, {"file_name": "ADE_train_00014055.jpg", "width": 683, "id": 14054, "height": 512}, {"file_name": "ADE_train_00014056.jpg", "width": 256, "id": 14055, "height": 256}, {"file_name": "ADE_train_00014057.jpg", "width": 256, "id": 14056, "height": 256}, {"file_name": "ADE_train_00014058.jpg", "width": 256, "id": 14057, "height": 256}, {"file_name": "ADE_train_00014059.jpg", "width": 256, "id": 14058, "height": 256}, {"file_name": "ADE_train_00014060.jpg", "width": 256, "id": 14059, "height": 256}, {"file_name": "ADE_train_00014061.jpg", "width": 256, "id": 14060, "height": 256}, {"file_name": "ADE_train_00014062.jpg", "width": 256, "id": 14061, "height": 256}, {"file_name": "ADE_train_00014063.jpg", "width": 400, "id": 14062, "height": 289}, {"file_name": "ADE_train_00014064.jpg", "width": 256, "id": 14063, "height": 256}, {"file_name": "ADE_train_00014065.jpg", "width": 683, "id": 14064, "height": 512}, {"file_name": "ADE_train_00014066.jpg", "width": 500, "id": 14065, "height": 375}, {"file_name": "ADE_train_00014067.jpg", "width": 256, "id": 14066, "height": 256}, {"file_name": "ADE_train_00014068.jpg", "width": 256, "id": 14067, "height": 256}, {"file_name": "ADE_train_00014069.jpg", "width": 400, "id": 14068, "height": 600}, {"file_name": "ADE_train_00014070.jpg", "width": 384, "id": 14069, "height": 512}, {"file_name": "ADE_train_00014071.jpg", "width": 256, "id": 14070, "height": 256}, {"file_name": "ADE_train_00014072.jpg", "width": 256, "id": 14071, "height": 256}, {"file_name": "ADE_train_00014073.jpg", "width": 683, "id": 14072, "height": 512}, {"file_name": "ADE_train_00014074.jpg", "width": 683, "id": 14073, "height": 512}, {"file_name": "ADE_train_00014075.jpg", "width": 256, "id": 14074, "height": 256}, {"file_name": "ADE_train_00014076.jpg", "width": 512, "id": 14075, "height": 683}, {"file_name": "ADE_train_00014077.jpg", "width": 256, "id": 14076, "height": 256}, {"file_name": "ADE_train_00014078.jpg", "width": 256, "id": 14077, "height": 256}, {"file_name": "ADE_train_00014079.jpg", "width": 256, "id": 14078, "height": 256}, {"file_name": "ADE_train_00014080.jpg", "width": 683, "id": 14079, "height": 512}, {"file_name": "ADE_train_00014081.jpg", "width": 400, "id": 14080, "height": 300}, {"file_name": "ADE_train_00014082.jpg", "width": 256, "id": 14081, "height": 256}, {"file_name": "ADE_train_00014083.jpg", "width": 400, "id": 14082, "height": 285}, {"file_name": "ADE_train_00014084.jpg", "width": 256, "id": 14083, "height": 256}, {"file_name": "ADE_train_00014085.jpg", "width": 256, "id": 14084, "height": 256}, {"file_name": "ADE_train_00014086.jpg", "width": 256, "id": 14085, "height": 256}, {"file_name": "ADE_train_00014087.jpg", "width": 683, "id": 14086, "height": 512}, {"file_name": "ADE_train_00014088.jpg", "width": 256, "id": 14087, "height": 256}, {"file_name": "ADE_train_00014089.jpg", "width": 284, "id": 14088, "height": 213}, {"file_name": "ADE_train_00014090.jpg", "width": 256, "id": 14089, "height": 256}, {"file_name": "ADE_train_00014091.jpg", "width": 256, "id": 14090, "height": 256}, {"file_name": "ADE_train_00014092.jpg", "width": 640, "id": 14091, "height": 512}, {"file_name": "ADE_train_00014093.jpg", "width": 683, "id": 14092, "height": 512}, {"file_name": "ADE_train_00014094.jpg", "width": 256, "id": 14093, "height": 256}, {"file_name": "ADE_train_00014095.jpg", "width": 256, "id": 14094, "height": 256}, {"file_name": "ADE_train_00014096.jpg", "width": 256, "id": 14095, "height": 256}, {"file_name": "ADE_train_00014097.jpg", "width": 640, "id": 14096, "height": 480}, {"file_name": "ADE_train_00014098.jpg", "width": 768, "id": 14097, "height": 512}, {"file_name": "ADE_train_00014099.jpg", "width": 320, "id": 14098, "height": 240}, {"file_name": "ADE_train_00014100.jpg", "width": 256, "id": 14099, "height": 256}, {"file_name": "ADE_train_00014101.jpg", "width": 368, "id": 14100, "height": 250}, {"file_name": "ADE_train_00014102.jpg", "width": 256, "id": 14101, "height": 256}, {"file_name": "ADE_train_00014103.jpg", "width": 256, "id": 14102, "height": 256}, {"file_name": "ADE_train_00014104.jpg", "width": 256, "id": 14103, "height": 256}, {"file_name": "ADE_train_00014105.jpg", "width": 256, "id": 14104, "height": 256}, {"file_name": "ADE_train_00014106.jpg", "width": 320, "id": 14105, "height": 240}, {"file_name": "ADE_train_00014107.jpg", "width": 512, "id": 14106, "height": 661}, {"file_name": "ADE_train_00014108.jpg", "width": 256, "id": 14107, "height": 256}, {"file_name": "ADE_train_00014109.jpg", "width": 256, "id": 14108, "height": 256}, {"file_name": "ADE_train_00014110.jpg", "width": 256, "id": 14109, "height": 256}, {"file_name": "ADE_train_00014111.jpg", "width": 500, "id": 14110, "height": 375}, {"file_name": "ADE_train_00014112.jpg", "width": 808, "id": 14111, "height": 512}, {"file_name": "ADE_train_00014113.jpg", "width": 185, "id": 14112, "height": 300}, {"file_name": "ADE_train_00014114.jpg", "width": 512, "id": 14113, "height": 683}, {"file_name": "ADE_train_00014115.jpg", "width": 400, "id": 14114, "height": 300}, {"file_name": "ADE_train_00014116.jpg", "width": 753, "id": 14115, "height": 512}, {"file_name": "ADE_train_00014117.jpg", "width": 250, "id": 14116, "height": 334}, {"file_name": "ADE_train_00014118.jpg", "width": 640, "id": 14117, "height": 480}, {"file_name": "ADE_train_00014119.jpg", "width": 500, "id": 14118, "height": 375}, {"file_name": "ADE_train_00014120.jpg", "width": 512, "id": 14119, "height": 683}, {"file_name": "ADE_train_00014121.jpg", "width": 683, "id": 14120, "height": 512}, {"file_name": "ADE_train_00014122.jpg", "width": 683, "id": 14121, "height": 512}, {"file_name": "ADE_train_00014123.jpg", "width": 320, "id": 14122, "height": 240}, {"file_name": "ADE_train_00014124.jpg", "width": 683, "id": 14123, "height": 512}, {"file_name": "ADE_train_00014125.jpg", "width": 350, "id": 14124, "height": 204}, {"file_name": "ADE_train_00014126.jpg", "width": 683, "id": 14125, "height": 512}, {"file_name": "ADE_train_00014127.jpg", "width": 240, "id": 14126, "height": 290}, {"file_name": "ADE_train_00014128.jpg", "width": 512, "id": 14127, "height": 717}, {"file_name": "ADE_train_00014129.jpg", "width": 683, "id": 14128, "height": 512}, {"file_name": "ADE_train_00014130.jpg", "width": 245, "id": 14129, "height": 245}, {"file_name": "ADE_train_00014131.jpg", "width": 320, "id": 14130, "height": 240}, {"file_name": "ADE_train_00014132.jpg", "width": 683, "id": 14131, "height": 512}, {"file_name": "ADE_train_00014133.jpg", "width": 725, "id": 14132, "height": 512}, {"file_name": "ADE_train_00014134.jpg", "width": 683, "id": 14133, "height": 512}, {"file_name": "ADE_train_00014135.jpg", "width": 400, "id": 14134, "height": 226}, {"file_name": "ADE_train_00014136.jpg", "width": 300, "id": 14135, "height": 254}, {"file_name": "ADE_train_00014137.jpg", "width": 300, "id": 14136, "height": 293}, {"file_name": "ADE_train_00014138.jpg", "width": 1024, "id": 14137, "height": 512}, {"file_name": "ADE_train_00014139.jpg", "width": 320, "id": 14138, "height": 240}, {"file_name": "ADE_train_00014140.jpg", "width": 683, "id": 14139, "height": 512}, {"file_name": "ADE_train_00014141.jpg", "width": 315, "id": 14140, "height": 274}, {"file_name": "ADE_train_00014142.jpg", "width": 683, "id": 14141, "height": 512}, {"file_name": "ADE_train_00014143.jpg", "width": 300, "id": 14142, "height": 225}, {"file_name": "ADE_train_00014144.jpg", "width": 350, "id": 14143, "height": 217}, {"file_name": "ADE_train_00014145.jpg", "width": 683, "id": 14144, "height": 512}, {"file_name": "ADE_train_00014146.jpg", "width": 350, "id": 14145, "height": 263}, {"file_name": "ADE_train_00014147.jpg", "width": 250, "id": 14146, "height": 212}, {"file_name": "ADE_train_00014148.jpg", "width": 300, "id": 14147, "height": 200}, {"file_name": "ADE_train_00014149.jpg", "width": 368, "id": 14148, "height": 250}, {"file_name": "ADE_train_00014150.jpg", "width": 650, "id": 14149, "height": 487}, {"file_name": "ADE_train_00014151.jpg", "width": 550, "id": 14150, "height": 413}, {"file_name": "ADE_train_00014152.jpg", "width": 604, "id": 14151, "height": 400}, {"file_name": "ADE_train_00014153.jpg", "width": 300, "id": 14152, "height": 229}, {"file_name": "ADE_train_00014154.jpg", "width": 354, "id": 14153, "height": 247}, {"file_name": "ADE_train_00014155.jpg", "width": 300, "id": 14154, "height": 200}, {"file_name": "ADE_train_00014156.jpg", "width": 576, "id": 14155, "height": 435}, {"file_name": "ADE_train_00014157.jpg", "width": 723, "id": 14156, "height": 480}, {"file_name": "ADE_train_00014158.jpg", "width": 300, "id": 14157, "height": 198}, {"file_name": "ADE_train_00014159.jpg", "width": 721, "id": 14158, "height": 512}, {"file_name": "ADE_train_00014160.jpg", "width": 500, "id": 14159, "height": 749}, {"file_name": "ADE_train_00014161.jpg", "width": 470, "id": 14160, "height": 352}, {"file_name": "ADE_train_00014162.jpg", "width": 770, "id": 14161, "height": 512}, {"file_name": "ADE_train_00014163.jpg", "width": 640, "id": 14162, "height": 421}, {"file_name": "ADE_train_00014164.jpg", "width": 500, "id": 14163, "height": 375}, {"file_name": "ADE_train_00014165.jpg", "width": 600, "id": 14164, "height": 385}, {"file_name": "ADE_train_00014166.jpg", "width": 566, "id": 14165, "height": 378}, {"file_name": "ADE_train_00014167.jpg", "width": 838, "id": 14166, "height": 512}, {"file_name": "ADE_train_00014168.jpg", "width": 683, "id": 14167, "height": 512}, {"file_name": "ADE_train_00014169.jpg", "width": 762, "id": 14168, "height": 512}, {"file_name": "ADE_train_00014170.jpg", "width": 334, "id": 14169, "height": 220}, {"file_name": "ADE_train_00014171.jpg", "width": 350, "id": 14170, "height": 231}, {"file_name": "ADE_train_00014172.jpg", "width": 276, "id": 14171, "height": 450}, {"file_name": "ADE_train_00014173.jpg", "width": 256, "id": 14172, "height": 256}, {"file_name": "ADE_train_00014174.jpg", "width": 683, "id": 14173, "height": 512}, {"file_name": "ADE_train_00014175.jpg", "width": 600, "id": 14174, "height": 398}, {"file_name": "ADE_train_00014176.jpg", "width": 500, "id": 14175, "height": 333}, {"file_name": "ADE_train_00014177.jpg", "width": 683, "id": 14176, "height": 512}, {"file_name": "ADE_train_00014178.jpg", "width": 300, "id": 14177, "height": 211}, {"file_name": "ADE_train_00014179.jpg", "width": 320, "id": 14178, "height": 240}, {"file_name": "ADE_train_00014180.jpg", "width": 512, "id": 14179, "height": 683}, {"file_name": "ADE_train_00014181.jpg", "width": 300, "id": 14180, "height": 225}, {"file_name": "ADE_train_00014182.jpg", "width": 683, "id": 14181, "height": 512}, {"file_name": "ADE_train_00014183.jpg", "width": 300, "id": 14182, "height": 200}, {"file_name": "ADE_train_00014184.jpg", "width": 400, "id": 14183, "height": 300}, {"file_name": "ADE_train_00014185.jpg", "width": 683, "id": 14184, "height": 512}, {"file_name": "ADE_train_00014186.jpg", "width": 306, "id": 14185, "height": 229}, {"file_name": "ADE_train_00014187.jpg", "width": 713, "id": 14186, "height": 499}, {"file_name": "ADE_train_00014188.jpg", "width": 382, "id": 14187, "height": 571}, {"file_name": "ADE_train_00014189.jpg", "width": 512, "id": 14188, "height": 769}, {"file_name": "ADE_train_00014190.jpg", "width": 773, "id": 14189, "height": 512}, {"file_name": "ADE_train_00014191.jpg", "width": 240, "id": 14190, "height": 320}, {"file_name": "ADE_train_00014192.jpg", "width": 280, "id": 14191, "height": 210}, {"file_name": "ADE_train_00014193.jpg", "width": 768, "id": 14192, "height": 512}, {"file_name": "ADE_train_00014194.jpg", "width": 512, "id": 14193, "height": 683}, {"file_name": "ADE_train_00014195.jpg", "width": 512, "id": 14194, "height": 536}, {"file_name": "ADE_train_00014196.jpg", "width": 683, "id": 14195, "height": 512}, {"file_name": "ADE_train_00014197.jpg", "width": 246, "id": 14196, "height": 274}, {"file_name": "ADE_train_00014198.jpg", "width": 793, "id": 14197, "height": 512}, {"file_name": "ADE_train_00014199.jpg", "width": 200, "id": 14198, "height": 298}, {"file_name": "ADE_train_00014200.jpg", "width": 432, "id": 14199, "height": 324}, {"file_name": "ADE_train_00014201.jpg", "width": 683, "id": 14200, "height": 512}, {"file_name": "ADE_train_00014202.jpg", "width": 233, "id": 14201, "height": 360}, {"file_name": "ADE_train_00014203.jpg", "width": 683, "id": 14202, "height": 512}, {"file_name": "ADE_train_00014204.jpg", "width": 320, "id": 14203, "height": 240}, {"file_name": "ADE_train_00014205.jpg", "width": 750, "id": 14204, "height": 469}, {"file_name": "ADE_train_00014206.jpg", "width": 512, "id": 14205, "height": 341}, {"file_name": "ADE_train_00014207.jpg", "width": 687, "id": 14206, "height": 512}, {"file_name": "ADE_train_00014208.jpg", "width": 312, "id": 14207, "height": 403}, {"file_name": "ADE_train_00014209.jpg", "width": 300, "id": 14208, "height": 187}, {"file_name": "ADE_train_00014210.jpg", "width": 683, "id": 14209, "height": 512}, {"file_name": "ADE_train_00014211.jpg", "width": 842, "id": 14210, "height": 512}, {"file_name": "ADE_train_00014212.jpg", "width": 640, "id": 14211, "height": 480}, {"file_name": "ADE_train_00014213.jpg", "width": 467, "id": 14212, "height": 350}, {"file_name": "ADE_train_00014214.jpg", "width": 500, "id": 14213, "height": 375}, {"file_name": "ADE_train_00014215.jpg", "width": 725, "id": 14214, "height": 512}, {"file_name": "ADE_train_00014216.jpg", "width": 266, "id": 14215, "height": 200}, {"file_name": "ADE_train_00014217.jpg", "width": 398, "id": 14216, "height": 500}, {"file_name": "ADE_train_00014218.jpg", "width": 347, "id": 14217, "height": 222}, {"file_name": "ADE_train_00014219.jpg", "width": 700, "id": 14218, "height": 405}, {"file_name": "ADE_train_00014220.jpg", "width": 600, "id": 14219, "height": 390}, {"file_name": "ADE_train_00014221.jpg", "width": 250, "id": 14220, "height": 350}, {"file_name": "ADE_train_00014222.jpg", "width": 683, "id": 14221, "height": 512}, {"file_name": "ADE_train_00014223.jpg", "width": 765, "id": 14222, "height": 512}, {"file_name": "ADE_train_00014224.jpg", "width": 489, "id": 14223, "height": 322}, {"file_name": "ADE_train_00014225.jpg", "width": 728, "id": 14224, "height": 512}, {"file_name": "ADE_train_00014226.jpg", "width": 683, "id": 14225, "height": 512}, {"file_name": "ADE_train_00014227.jpg", "width": 638, "id": 14226, "height": 512}, {"file_name": "ADE_train_00014228.jpg", "width": 240, "id": 14227, "height": 320}, {"file_name": "ADE_train_00014229.jpg", "width": 320, "id": 14228, "height": 213}, {"file_name": "ADE_train_00014230.jpg", "width": 480, "id": 14229, "height": 360}, {"file_name": "ADE_train_00014231.jpg", "width": 250, "id": 14230, "height": 285}, {"file_name": "ADE_train_00014232.jpg", "width": 683, "id": 14231, "height": 512}, {"file_name": "ADE_train_00014233.jpg", "width": 770, "id": 14232, "height": 512}, {"file_name": "ADE_train_00014234.jpg", "width": 283, "id": 14233, "height": 420}, {"file_name": "ADE_train_00014235.jpg", "width": 768, "id": 14234, "height": 512}, {"file_name": "ADE_train_00014236.jpg", "width": 683, "id": 14235, "height": 512}, {"file_name": "ADE_train_00014237.jpg", "width": 280, "id": 14236, "height": 261}, {"file_name": "ADE_train_00014238.jpg", "width": 283, "id": 14237, "height": 350}, {"file_name": "ADE_train_00014239.jpg", "width": 316, "id": 14238, "height": 227}, {"file_name": "ADE_train_00014240.jpg", "width": 559, "id": 14239, "height": 373}, {"file_name": "ADE_train_00014241.jpg", "width": 683, "id": 14240, "height": 512}, {"file_name": "ADE_train_00014242.jpg", "width": 700, "id": 14241, "height": 436}, {"file_name": "ADE_train_00014243.jpg", "width": 468, "id": 14242, "height": 313}, {"file_name": "ADE_train_00014244.jpg", "width": 468, "id": 14243, "height": 313}, {"file_name": "ADE_train_00014245.jpg", "width": 598, "id": 14244, "height": 365}, {"file_name": "ADE_train_00014246.jpg", "width": 290, "id": 14245, "height": 218}, {"file_name": "ADE_train_00014247.jpg", "width": 245, "id": 14246, "height": 245}, {"file_name": "ADE_train_00014248.jpg", "width": 683, "id": 14247, "height": 512}, {"file_name": "ADE_train_00014249.jpg", "width": 512, "id": 14248, "height": 683}, {"file_name": "ADE_train_00014250.jpg", "width": 683, "id": 14249, "height": 512}, {"file_name": "ADE_train_00014251.jpg", "width": 683, "id": 14250, "height": 512}, {"file_name": "ADE_train_00014252.jpg", "width": 282, "id": 14251, "height": 275}, {"file_name": "ADE_train_00014253.jpg", "width": 400, "id": 14252, "height": 300}, {"file_name": "ADE_train_00014254.jpg", "width": 229, "id": 14253, "height": 304}, {"file_name": "ADE_train_00014255.jpg", "width": 521, "id": 14254, "height": 340}, {"file_name": "ADE_train_00014256.jpg", "width": 683, "id": 14255, "height": 512}, {"file_name": "ADE_train_00014257.jpg", "width": 434, "id": 14256, "height": 290}, {"file_name": "ADE_train_00014258.jpg", "width": 289, "id": 14257, "height": 350}, {"file_name": "ADE_train_00014259.jpg", "width": 380, "id": 14258, "height": 270}, {"file_name": "ADE_train_00014260.jpg", "width": 640, "id": 14259, "height": 439}, {"file_name": "ADE_train_00014261.jpg", "width": 640, "id": 14260, "height": 480}, {"file_name": "ADE_train_00014262.jpg", "width": 300, "id": 14261, "height": 225}, {"file_name": "ADE_train_00014263.jpg", "width": 683, "id": 14262, "height": 512}, {"file_name": "ADE_train_00014264.jpg", "width": 320, "id": 14263, "height": 240}, {"file_name": "ADE_train_00014265.jpg", "width": 400, "id": 14264, "height": 263}, {"file_name": "ADE_train_00014266.jpg", "width": 677, "id": 14265, "height": 512}, {"file_name": "ADE_train_00014267.jpg", "width": 274, "id": 14266, "height": 250}, {"file_name": "ADE_train_00014268.jpg", "width": 500, "id": 14267, "height": 480}, {"file_name": "ADE_train_00014269.jpg", "width": 360, "id": 14268, "height": 240}, {"file_name": "ADE_train_00014270.jpg", "width": 470, "id": 14269, "height": 370}, {"file_name": "ADE_train_00014271.jpg", "width": 250, "id": 14270, "height": 227}, {"file_name": "ADE_train_00014272.jpg", "width": 640, "id": 14271, "height": 480}, {"file_name": "ADE_train_00014273.jpg", "width": 299, "id": 14272, "height": 202}, {"file_name": "ADE_train_00014274.jpg", "width": 320, "id": 14273, "height": 205}, {"file_name": "ADE_train_00014275.jpg", "width": 640, "id": 14274, "height": 428}, {"file_name": "ADE_train_00014276.jpg", "width": 450, "id": 14275, "height": 380}, {"file_name": "ADE_train_00014277.jpg", "width": 400, "id": 14276, "height": 262}, {"file_name": "ADE_train_00014278.jpg", "width": 480, "id": 14277, "height": 295}, {"file_name": "ADE_train_00014279.jpg", "width": 479, "id": 14278, "height": 332}, {"file_name": "ADE_train_00014280.jpg", "width": 250, "id": 14279, "height": 200}, {"file_name": "ADE_train_00014281.jpg", "width": 366, "id": 14280, "height": 295}, {"file_name": "ADE_train_00014282.jpg", "width": 476, "id": 14281, "height": 356}, {"file_name": "ADE_train_00014283.jpg", "width": 325, "id": 14282, "height": 300}, {"file_name": "ADE_train_00014284.jpg", "width": 378, "id": 14283, "height": 504}, {"file_name": "ADE_train_00014285.jpg", "width": 500, "id": 14284, "height": 329}, {"file_name": "ADE_train_00014286.jpg", "width": 314, "id": 14285, "height": 235}, {"file_name": "ADE_train_00014287.jpg", "width": 450, "id": 14286, "height": 348}, {"file_name": "ADE_train_00014288.jpg", "width": 392, "id": 14287, "height": 610}, {"file_name": "ADE_train_00014289.jpg", "width": 400, "id": 14288, "height": 300}, {"file_name": "ADE_train_00014290.jpg", "width": 683, "id": 14289, "height": 512}, {"file_name": "ADE_train_00014291.jpg", "width": 683, "id": 14290, "height": 512}, {"file_name": "ADE_train_00014292.jpg", "width": 683, "id": 14291, "height": 512}, {"file_name": "ADE_train_00014293.jpg", "width": 670, "id": 14292, "height": 502}, {"file_name": "ADE_train_00014294.jpg", "width": 800, "id": 14293, "height": 426}, {"file_name": "ADE_train_00014295.jpg", "width": 485, "id": 14294, "height": 383}, {"file_name": "ADE_train_00014296.jpg", "width": 522, "id": 14295, "height": 392}, {"file_name": "ADE_train_00014297.jpg", "width": 543, "id": 14296, "height": 512}, {"file_name": "ADE_train_00014298.jpg", "width": 683, "id": 14297, "height": 512}, {"file_name": "ADE_train_00014299.jpg", "width": 420, "id": 14298, "height": 300}, {"file_name": "ADE_train_00014300.jpg", "width": 400, "id": 14299, "height": 300}, {"file_name": "ADE_train_00014301.jpg", "width": 480, "id": 14300, "height": 360}, {"file_name": "ADE_train_00014302.jpg", "width": 481, "id": 14301, "height": 472}, {"file_name": "ADE_train_00014303.jpg", "width": 400, "id": 14302, "height": 307}, {"file_name": "ADE_train_00014304.jpg", "width": 410, "id": 14303, "height": 307}, {"file_name": "ADE_train_00014305.jpg", "width": 480, "id": 14304, "height": 640}, {"file_name": "ADE_train_00014306.jpg", "width": 500, "id": 14305, "height": 375}, {"file_name": "ADE_train_00014307.jpg", "width": 432, "id": 14306, "height": 324}, {"file_name": "ADE_train_00014308.jpg", "width": 597, "id": 14307, "height": 400}, {"file_name": "ADE_train_00014309.jpg", "width": 596, "id": 14308, "height": 449}, {"file_name": "ADE_train_00014310.jpg", "width": 240, "id": 14309, "height": 320}, {"file_name": "ADE_train_00014311.jpg", "width": 435, "id": 14310, "height": 640}, {"file_name": "ADE_train_00014312.jpg", "width": 765, "id": 14311, "height": 512}, {"file_name": "ADE_train_00014313.jpg", "width": 300, "id": 14312, "height": 400}, {"file_name": "ADE_train_00014314.jpg", "width": 640, "id": 14313, "height": 480}, {"file_name": "ADE_train_00014315.jpg", "width": 384, "id": 14314, "height": 300}, {"file_name": "ADE_train_00014316.jpg", "width": 512, "id": 14315, "height": 683}, {"file_name": "ADE_train_00014317.jpg", "width": 512, "id": 14316, "height": 678}, {"file_name": "ADE_train_00014318.jpg", "width": 333, "id": 14317, "height": 500}, {"file_name": "ADE_train_00014319.jpg", "width": 216, "id": 14318, "height": 288}, {"file_name": "ADE_train_00014320.jpg", "width": 683, "id": 14319, "height": 512}, {"file_name": "ADE_train_00014321.jpg", "width": 683, "id": 14320, "height": 512}, {"file_name": "ADE_train_00014322.jpg", "width": 350, "id": 14321, "height": 262}, {"file_name": "ADE_train_00014323.jpg", "width": 600, "id": 14322, "height": 391}, {"file_name": "ADE_train_00014324.jpg", "width": 319, "id": 14323, "height": 200}, {"file_name": "ADE_train_00014325.jpg", "width": 445, "id": 14324, "height": 230}, {"file_name": "ADE_train_00014326.jpg", "width": 600, "id": 14325, "height": 480}, {"file_name": "ADE_train_00014327.jpg", "width": 300, "id": 14326, "height": 189}, {"file_name": "ADE_train_00014328.jpg", "width": 300, "id": 14327, "height": 450}, {"file_name": "ADE_train_00014329.jpg", "width": 319, "id": 14328, "height": 200}, {"file_name": "ADE_train_00014330.jpg", "width": 360, "id": 14329, "height": 480}, {"file_name": "ADE_train_00014331.jpg", "width": 238, "id": 14330, "height": 301}, {"file_name": "ADE_train_00014332.jpg", "width": 319, "id": 14331, "height": 200}, {"file_name": "ADE_train_00014333.jpg", "width": 300, "id": 14332, "height": 269}, {"file_name": "ADE_train_00014334.jpg", "width": 683, "id": 14333, "height": 512}, {"file_name": "ADE_train_00014335.jpg", "width": 683, "id": 14334, "height": 512}, {"file_name": "ADE_train_00014336.jpg", "width": 683, "id": 14335, "height": 512}, {"file_name": "ADE_train_00014337.jpg", "width": 500, "id": 14336, "height": 403}, {"file_name": "ADE_train_00014338.jpg", "width": 600, "id": 14337, "height": 450}, {"file_name": "ADE_train_00014339.jpg", "width": 300, "id": 14338, "height": 375}, {"file_name": "ADE_train_00014340.jpg", "width": 640, "id": 14339, "height": 480}, {"file_name": "ADE_train_00014341.jpg", "width": 300, "id": 14340, "height": 200}, {"file_name": "ADE_train_00014342.jpg", "width": 375, "id": 14341, "height": 500}, {"file_name": "ADE_train_00014343.jpg", "width": 512, "id": 14342, "height": 683}, {"file_name": "ADE_train_00014344.jpg", "width": 512, "id": 14343, "height": 754}, {"file_name": "ADE_train_00014345.jpg", "width": 725, "id": 14344, "height": 477}, {"file_name": "ADE_train_00014346.jpg", "width": 489, "id": 14345, "height": 411}, {"file_name": "ADE_train_00014347.jpg", "width": 500, "id": 14346, "height": 375}, {"file_name": "ADE_train_00014348.jpg", "width": 300, "id": 14347, "height": 400}, {"file_name": "ADE_train_00014349.jpg", "width": 686, "id": 14348, "height": 512}, {"file_name": "ADE_train_00014350.jpg", "width": 500, "id": 14349, "height": 494}, {"file_name": "ADE_train_00014351.jpg", "width": 280, "id": 14350, "height": 228}, {"file_name": "ADE_train_00014352.jpg", "width": 765, "id": 14351, "height": 512}, {"file_name": "ADE_train_00014353.jpg", "width": 512, "id": 14352, "height": 799}, {"file_name": "ADE_train_00014354.jpg", "width": 600, "id": 14353, "height": 469}, {"file_name": "ADE_train_00014355.jpg", "width": 600, "id": 14354, "height": 400}, {"file_name": "ADE_train_00014356.jpg", "width": 716, "id": 14355, "height": 483}, {"file_name": "ADE_train_00014357.jpg", "width": 600, "id": 14356, "height": 400}, {"file_name": "ADE_train_00014358.jpg", "width": 640, "id": 14357, "height": 480}, {"file_name": "ADE_train_00014359.jpg", "width": 765, "id": 14358, "height": 512}, {"file_name": "ADE_train_00014360.jpg", "width": 326, "id": 14359, "height": 217}, {"file_name": "ADE_train_00014361.jpg", "width": 666, "id": 14360, "height": 500}, {"file_name": "ADE_train_00014362.jpg", "width": 450, "id": 14361, "height": 600}, {"file_name": "ADE_train_00014363.jpg", "width": 530, "id": 14362, "height": 280}, {"file_name": "ADE_train_00014364.jpg", "width": 400, "id": 14363, "height": 300}, {"file_name": "ADE_train_00014365.jpg", "width": 400, "id": 14364, "height": 300}, {"file_name": "ADE_train_00014366.jpg", "width": 350, "id": 14365, "height": 268}, {"file_name": "ADE_train_00014367.jpg", "width": 640, "id": 14366, "height": 480}, {"file_name": "ADE_train_00014368.jpg", "width": 690, "id": 14367, "height": 450}, {"file_name": "ADE_train_00014369.jpg", "width": 350, "id": 14368, "height": 263}, {"file_name": "ADE_train_00014370.jpg", "width": 611, "id": 14369, "height": 512}, {"file_name": "ADE_train_00014371.jpg", "width": 300, "id": 14370, "height": 223}, {"file_name": "ADE_train_00014372.jpg", "width": 250, "id": 14371, "height": 333}, {"file_name": "ADE_train_00014373.jpg", "width": 474, "id": 14372, "height": 241}, {"file_name": "ADE_train_00014374.jpg", "width": 300, "id": 14373, "height": 201}, {"file_name": "ADE_train_00014375.jpg", "width": 696, "id": 14374, "height": 512}, {"file_name": "ADE_train_00014376.jpg", "width": 512, "id": 14375, "height": 683}, {"file_name": "ADE_train_00014377.jpg", "width": 450, "id": 14376, "height": 600}, {"file_name": "ADE_train_00014378.jpg", "width": 256, "id": 14377, "height": 256}, {"file_name": "ADE_train_00014379.jpg", "width": 256, "id": 14378, "height": 256}, {"file_name": "ADE_train_00014380.jpg", "width": 256, "id": 14379, "height": 256}, {"file_name": "ADE_train_00014381.jpg", "width": 256, "id": 14380, "height": 256}, {"file_name": "ADE_train_00014382.jpg", "width": 256, "id": 14381, "height": 256}, {"file_name": "ADE_train_00014383.jpg", "width": 500, "id": 14382, "height": 385}, {"file_name": "ADE_train_00014384.jpg", "width": 256, "id": 14383, "height": 256}, {"file_name": "ADE_train_00014385.jpg", "width": 350, "id": 14384, "height": 300}, {"file_name": "ADE_train_00014386.jpg", "width": 256, "id": 14385, "height": 256}, {"file_name": "ADE_train_00014387.jpg", "width": 256, "id": 14386, "height": 256}, {"file_name": "ADE_train_00014388.jpg", "width": 256, "id": 14387, "height": 256}, {"file_name": "ADE_train_00014389.jpg", "width": 720, "id": 14388, "height": 479}, {"file_name": "ADE_train_00014390.jpg", "width": 256, "id": 14389, "height": 256}, {"file_name": "ADE_train_00014391.jpg", "width": 256, "id": 14390, "height": 256}, {"file_name": "ADE_train_00014392.jpg", "width": 256, "id": 14391, "height": 256}, {"file_name": "ADE_train_00014393.jpg", "width": 256, "id": 14392, "height": 256}, {"file_name": "ADE_train_00014394.jpg", "width": 256, "id": 14393, "height": 256}, {"file_name": "ADE_train_00014395.jpg", "width": 936, "id": 14394, "height": 512}, {"file_name": "ADE_train_00014396.jpg", "width": 500, "id": 14395, "height": 375}, {"file_name": "ADE_train_00014397.jpg", "width": 996, "id": 14396, "height": 512}, {"file_name": "ADE_train_00014398.jpg", "width": 420, "id": 14397, "height": 384}, {"file_name": "ADE_train_00014399.jpg", "width": 250, "id": 14398, "height": 221}, {"file_name": "ADE_train_00014400.jpg", "width": 683, "id": 14399, "height": 512}, {"file_name": "ADE_train_00014401.jpg", "width": 485, "id": 14400, "height": 320}, {"file_name": "ADE_train_00014402.jpg", "width": 683, "id": 14401, "height": 512}, {"file_name": "ADE_train_00014403.jpg", "width": 300, "id": 14402, "height": 225}, {"file_name": "ADE_train_00014404.jpg", "width": 640, "id": 14403, "height": 480}, {"file_name": "ADE_train_00014405.jpg", "width": 500, "id": 14404, "height": 375}, {"file_name": "ADE_train_00014406.jpg", "width": 683, "id": 14405, "height": 512}, {"file_name": "ADE_train_00014407.jpg", "width": 400, "id": 14406, "height": 261}, {"file_name": "ADE_train_00014408.jpg", "width": 600, "id": 14407, "height": 399}, {"file_name": "ADE_train_00014409.jpg", "width": 682, "id": 14408, "height": 512}, {"file_name": "ADE_train_00014410.jpg", "width": 350, "id": 14409, "height": 238}, {"file_name": "ADE_train_00014411.jpg", "width": 683, "id": 14410, "height": 512}, {"file_name": "ADE_train_00014412.jpg", "width": 400, "id": 14411, "height": 265}, {"file_name": "ADE_train_00014413.jpg", "width": 277, "id": 14412, "height": 211}, {"file_name": "ADE_train_00014414.jpg", "width": 683, "id": 14413, "height": 512}, {"file_name": "ADE_train_00014415.jpg", "width": 204, "id": 14414, "height": 356}, {"file_name": "ADE_train_00014416.jpg", "width": 402, "id": 14415, "height": 302}, {"file_name": "ADE_train_00014417.jpg", "width": 375, "id": 14416, "height": 250}, {"file_name": "ADE_train_00014418.jpg", "width": 350, "id": 14417, "height": 232}, {"file_name": "ADE_train_00014419.jpg", "width": 256, "id": 14418, "height": 256}, {"file_name": "ADE_train_00014420.jpg", "width": 256, "id": 14419, "height": 256}, {"file_name": "ADE_train_00014421.jpg", "width": 256, "id": 14420, "height": 256}, {"file_name": "ADE_train_00014422.jpg", "width": 256, "id": 14421, "height": 256}, {"file_name": "ADE_train_00014423.jpg", "width": 256, "id": 14422, "height": 256}, {"file_name": "ADE_train_00014424.jpg", "width": 256, "id": 14423, "height": 256}, {"file_name": "ADE_train_00014425.jpg", "width": 256, "id": 14424, "height": 256}, {"file_name": "ADE_train_00014426.jpg", "width": 256, "id": 14425, "height": 256}, {"file_name": "ADE_train_00014427.jpg", "width": 683, "id": 14426, "height": 512}, {"file_name": "ADE_train_00014428.jpg", "width": 256, "id": 14427, "height": 256}, {"file_name": "ADE_train_00014429.jpg", "width": 256, "id": 14428, "height": 256}, {"file_name": "ADE_train_00014430.jpg", "width": 256, "id": 14429, "height": 256}, {"file_name": "ADE_train_00014431.jpg", "width": 512, "id": 14430, "height": 513}, {"file_name": "ADE_train_00014432.jpg", "width": 480, "id": 14431, "height": 360}, {"file_name": "ADE_train_00014433.jpg", "width": 400, "id": 14432, "height": 253}, {"file_name": "ADE_train_00014434.jpg", "width": 288, "id": 14433, "height": 216}, {"file_name": "ADE_train_00014435.jpg", "width": 324, "id": 14434, "height": 243}, {"file_name": "ADE_train_00014436.jpg", "width": 478, "id": 14435, "height": 342}, {"file_name": "ADE_train_00014437.jpg", "width": 490, "id": 14436, "height": 395}, {"file_name": "ADE_train_00014438.jpg", "width": 263, "id": 14437, "height": 265}, {"file_name": "ADE_train_00014439.jpg", "width": 300, "id": 14438, "height": 408}, {"file_name": "ADE_train_00014440.jpg", "width": 300, "id": 14439, "height": 450}, {"file_name": "ADE_train_00014441.jpg", "width": 683, "id": 14440, "height": 512}, {"file_name": "ADE_train_00014442.jpg", "width": 240, "id": 14441, "height": 320}, {"file_name": "ADE_train_00014443.jpg", "width": 360, "id": 14442, "height": 480}, {"file_name": "ADE_train_00014444.jpg", "width": 640, "id": 14443, "height": 480}, {"file_name": "ADE_train_00014445.jpg", "width": 432, "id": 14444, "height": 324}, {"file_name": "ADE_train_00014446.jpg", "width": 472, "id": 14445, "height": 630}, {"file_name": "ADE_train_00014447.jpg", "width": 240, "id": 14446, "height": 170}, {"file_name": "ADE_train_00014448.jpg", "width": 640, "id": 14447, "height": 480}, {"file_name": "ADE_train_00014449.jpg", "width": 220, "id": 14448, "height": 278}, {"file_name": "ADE_train_00014450.jpg", "width": 734, "id": 14449, "height": 512}, {"file_name": "ADE_train_00014451.jpg", "width": 640, "id": 14450, "height": 480}, {"file_name": "ADE_train_00014452.jpg", "width": 775, "id": 14451, "height": 512}, {"file_name": "ADE_train_00014453.jpg", "width": 766, "id": 14452, "height": 512}, {"file_name": "ADE_train_00014454.jpg", "width": 640, "id": 14453, "height": 480}, {"file_name": "ADE_train_00014455.jpg", "width": 640, "id": 14454, "height": 480}, {"file_name": "ADE_train_00014456.jpg", "width": 926, "id": 14455, "height": 512}, {"file_name": "ADE_train_00014457.jpg", "width": 326, "id": 14456, "height": 220}, {"file_name": "ADE_train_00014458.jpg", "width": 906, "id": 14457, "height": 512}, {"file_name": "ADE_train_00014459.jpg", "width": 525, "id": 14458, "height": 347}, {"file_name": "ADE_train_00014460.jpg", "width": 480, "id": 14459, "height": 359}, {"file_name": "ADE_train_00014461.jpg", "width": 650, "id": 14460, "height": 438}, {"file_name": "ADE_train_00014462.jpg", "width": 400, "id": 14461, "height": 265}, {"file_name": "ADE_train_00014463.jpg", "width": 581, "id": 14462, "height": 367}, {"file_name": "ADE_train_00014464.jpg", "width": 241, "id": 14463, "height": 303}, {"file_name": "ADE_train_00014465.jpg", "width": 300, "id": 14464, "height": 216}, {"file_name": "ADE_train_00014466.jpg", "width": 400, "id": 14465, "height": 300}, {"file_name": "ADE_train_00014467.jpg", "width": 355, "id": 14466, "height": 480}, {"file_name": "ADE_train_00014468.jpg", "width": 360, "id": 14467, "height": 270}, {"file_name": "ADE_train_00014469.jpg", "width": 640, "id": 14468, "height": 480}, {"file_name": "ADE_train_00014470.jpg", "width": 683, "id": 14469, "height": 512}, {"file_name": "ADE_train_00014471.jpg", "width": 512, "id": 14470, "height": 384}, {"file_name": "ADE_train_00014472.jpg", "width": 439, "id": 14471, "height": 530}, {"file_name": "ADE_train_00014473.jpg", "width": 331, "id": 14472, "height": 237}, {"file_name": "ADE_train_00014474.jpg", "width": 640, "id": 14473, "height": 360}, {"file_name": "ADE_train_00014475.jpg", "width": 308, "id": 14474, "height": 255}, {"file_name": "ADE_train_00014476.jpg", "width": 640, "id": 14475, "height": 480}, {"file_name": "ADE_train_00014477.jpg", "width": 300, "id": 14476, "height": 225}, {"file_name": "ADE_train_00014478.jpg", "width": 540, "id": 14477, "height": 297}, {"file_name": "ADE_train_00014479.jpg", "width": 421, "id": 14478, "height": 282}, {"file_name": "ADE_train_00014480.jpg", "width": 683, "id": 14479, "height": 512}, {"file_name": "ADE_train_00014481.jpg", "width": 300, "id": 14480, "height": 211}, {"file_name": "ADE_train_00014482.jpg", "width": 730, "id": 14481, "height": 512}, {"file_name": "ADE_train_00014483.jpg", "width": 600, "id": 14482, "height": 450}, {"file_name": "ADE_train_00014484.jpg", "width": 640, "id": 14483, "height": 480}, {"file_name": "ADE_train_00014485.jpg", "width": 300, "id": 14484, "height": 204}, {"file_name": "ADE_train_00014486.jpg", "width": 283, "id": 14485, "height": 322}, {"file_name": "ADE_train_00014487.jpg", "width": 356, "id": 14486, "height": 477}, {"file_name": "ADE_train_00014488.jpg", "width": 618, "id": 14487, "height": 463}, {"file_name": "ADE_train_00014489.jpg", "width": 626, "id": 14488, "height": 407}, {"file_name": "ADE_train_00014490.jpg", "width": 300, "id": 14489, "height": 191}, {"file_name": "ADE_train_00014491.jpg", "width": 668, "id": 14490, "height": 497}, {"file_name": "ADE_train_00014492.jpg", "width": 315, "id": 14491, "height": 440}, {"file_name": "ADE_train_00014493.jpg", "width": 512, "id": 14492, "height": 683}, {"file_name": "ADE_train_00014494.jpg", "width": 500, "id": 14493, "height": 392}, {"file_name": "ADE_train_00014495.jpg", "width": 613, "id": 14494, "height": 452}, {"file_name": "ADE_train_00014496.jpg", "width": 351, "id": 14495, "height": 262}, {"file_name": "ADE_train_00014497.jpg", "width": 384, "id": 14496, "height": 256}, {"file_name": "ADE_train_00014498.jpg", "width": 384, "id": 14497, "height": 256}, {"file_name": "ADE_train_00014499.jpg", "width": 256, "id": 14498, "height": 256}, {"file_name": "ADE_train_00014500.jpg", "width": 540, "id": 14499, "height": 358}, {"file_name": "ADE_train_00014501.jpg", "width": 256, "id": 14500, "height": 256}, {"file_name": "ADE_train_00014502.jpg", "width": 256, "id": 14501, "height": 384}, {"file_name": "ADE_train_00014503.jpg", "width": 384, "id": 14502, "height": 256}, {"file_name": "ADE_train_00014504.jpg", "width": 604, "id": 14503, "height": 512}, {"file_name": "ADE_train_00014505.jpg", "width": 256, "id": 14504, "height": 256}, {"file_name": "ADE_train_00014506.jpg", "width": 500, "id": 14505, "height": 312}, {"file_name": "ADE_train_00014507.jpg", "width": 375, "id": 14506, "height": 249}, {"file_name": "ADE_train_00014508.jpg", "width": 325, "id": 14507, "height": 220}, {"file_name": "ADE_train_00014509.jpg", "width": 683, "id": 14508, "height": 512}, {"file_name": "ADE_train_00014510.jpg", "width": 200, "id": 14509, "height": 270}, {"file_name": "ADE_train_00014511.jpg", "width": 400, "id": 14510, "height": 239}, {"file_name": "ADE_train_00014512.jpg", "width": 750, "id": 14511, "height": 492}, {"file_name": "ADE_train_00014513.jpg", "width": 400, "id": 14512, "height": 300}, {"file_name": "ADE_train_00014514.jpg", "width": 600, "id": 14513, "height": 369}, {"file_name": "ADE_train_00014515.jpg", "width": 598, "id": 14514, "height": 422}, {"file_name": "ADE_train_00014516.jpg", "width": 574, "id": 14515, "height": 411}, {"file_name": "ADE_train_00014517.jpg", "width": 500, "id": 14516, "height": 222}, {"file_name": "ADE_train_00014518.jpg", "width": 231, "id": 14517, "height": 300}, {"file_name": "ADE_train_00014519.jpg", "width": 356, "id": 14518, "height": 232}, {"file_name": "ADE_train_00014520.jpg", "width": 640, "id": 14519, "height": 480}, {"file_name": "ADE_train_00014521.jpg", "width": 300, "id": 14520, "height": 225}, {"file_name": "ADE_train_00014522.jpg", "width": 441, "id": 14521, "height": 299}, {"file_name": "ADE_train_00014523.jpg", "width": 432, "id": 14522, "height": 324}, {"file_name": "ADE_train_00014524.jpg", "width": 480, "id": 14523, "height": 360}, {"file_name": "ADE_train_00014525.jpg", "width": 300, "id": 14524, "height": 200}, {"file_name": "ADE_train_00014526.jpg", "width": 683, "id": 14525, "height": 512}, {"file_name": "ADE_train_00014527.jpg", "width": 760, "id": 14526, "height": 449}, {"file_name": "ADE_train_00014528.jpg", "width": 300, "id": 14527, "height": 265}, {"file_name": "ADE_train_00014529.jpg", "width": 450, "id": 14528, "height": 262}, {"file_name": "ADE_train_00014530.jpg", "width": 450, "id": 14529, "height": 300}, {"file_name": "ADE_train_00014531.jpg", "width": 394, "id": 14530, "height": 280}, {"file_name": "ADE_train_00014532.jpg", "width": 679, "id": 14531, "height": 452}, {"file_name": "ADE_train_00014533.jpg", "width": 763, "id": 14532, "height": 512}, {"file_name": "ADE_train_00014534.jpg", "width": 668, "id": 14533, "height": 262}, {"file_name": "ADE_train_00014535.jpg", "width": 774, "id": 14534, "height": 512}, {"file_name": "ADE_train_00014536.jpg", "width": 512, "id": 14535, "height": 288}, {"file_name": "ADE_train_00014537.jpg", "width": 400, "id": 14536, "height": 266}, {"file_name": "ADE_train_00014538.jpg", "width": 350, "id": 14537, "height": 217}, {"file_name": "ADE_train_00014539.jpg", "width": 768, "id": 14538, "height": 512}, {"file_name": "ADE_train_00014540.jpg", "width": 640, "id": 14539, "height": 480}, {"file_name": "ADE_train_00014541.jpg", "width": 512, "id": 14540, "height": 683}, {"file_name": "ADE_train_00014542.jpg", "width": 793, "id": 14541, "height": 512}, {"file_name": "ADE_train_00014543.jpg", "width": 573, "id": 14542, "height": 388}, {"file_name": "ADE_train_00014544.jpg", "width": 352, "id": 14543, "height": 210}, {"file_name": "ADE_train_00014545.jpg", "width": 720, "id": 14544, "height": 480}, {"file_name": "ADE_train_00014546.jpg", "width": 380, "id": 14545, "height": 243}, {"file_name": "ADE_train_00014547.jpg", "width": 820, "id": 14546, "height": 512}, {"file_name": "ADE_train_00014548.jpg", "width": 384, "id": 14547, "height": 288}, {"file_name": "ADE_train_00014549.jpg", "width": 361, "id": 14548, "height": 241}, {"file_name": "ADE_train_00014550.jpg", "width": 384, "id": 14549, "height": 288}, {"file_name": "ADE_train_00014551.jpg", "width": 765, "id": 14550, "height": 512}, {"file_name": "ADE_train_00014552.jpg", "width": 780, "id": 14551, "height": 512}, {"file_name": "ADE_train_00014553.jpg", "width": 200, "id": 14552, "height": 200}, {"file_name": "ADE_train_00014554.jpg", "width": 351, "id": 14553, "height": 270}, {"file_name": "ADE_train_00014555.jpg", "width": 400, "id": 14554, "height": 388}, {"file_name": "ADE_train_00014556.jpg", "width": 368, "id": 14555, "height": 338}, {"file_name": "ADE_train_00014557.jpg", "width": 759, "id": 14556, "height": 512}, {"file_name": "ADE_train_00014558.jpg", "width": 350, "id": 14557, "height": 214}, {"file_name": "ADE_train_00014559.jpg", "width": 683, "id": 14558, "height": 512}, {"file_name": "ADE_train_00014560.jpg", "width": 450, "id": 14559, "height": 300}, {"file_name": "ADE_train_00014561.jpg", "width": 512, "id": 14560, "height": 683}, {"file_name": "ADE_train_00014562.jpg", "width": 400, "id": 14561, "height": 258}, {"file_name": "ADE_train_00014563.jpg", "width": 500, "id": 14562, "height": 375}, {"file_name": "ADE_train_00014564.jpg", "width": 320, "id": 14563, "height": 240}, {"file_name": "ADE_train_00014565.jpg", "width": 340, "id": 14564, "height": 246}, {"file_name": "ADE_train_00014566.jpg", "width": 440, "id": 14565, "height": 330}, {"file_name": "ADE_train_00014567.jpg", "width": 640, "id": 14566, "height": 480}, {"file_name": "ADE_train_00014568.jpg", "width": 300, "id": 14567, "height": 225}, {"file_name": "ADE_train_00014569.jpg", "width": 500, "id": 14568, "height": 375}, {"file_name": "ADE_train_00014570.jpg", "width": 256, "id": 14569, "height": 256}, {"file_name": "ADE_train_00014571.jpg", "width": 379, "id": 14570, "height": 283}, {"file_name": "ADE_train_00014572.jpg", "width": 300, "id": 14571, "height": 225}, {"file_name": "ADE_train_00014573.jpg", "width": 291, "id": 14572, "height": 388}, {"file_name": "ADE_train_00014574.jpg", "width": 480, "id": 14573, "height": 640}, {"file_name": "ADE_train_00014575.jpg", "width": 256, "id": 14574, "height": 256}, {"file_name": "ADE_train_00014576.jpg", "width": 256, "id": 14575, "height": 256}, {"file_name": "ADE_train_00014577.jpg", "width": 396, "id": 14576, "height": 296}, {"file_name": "ADE_train_00014578.jpg", "width": 760, "id": 14577, "height": 512}, {"file_name": "ADE_train_00014579.jpg", "width": 220, "id": 14578, "height": 200}, {"file_name": "ADE_train_00014580.jpg", "width": 705, "id": 14579, "height": 512}, {"file_name": "ADE_train_00014581.jpg", "width": 375, "id": 14580, "height": 281}, {"file_name": "ADE_train_00014582.jpg", "width": 759, "id": 14581, "height": 504}, {"file_name": "ADE_train_00014583.jpg", "width": 550, "id": 14582, "height": 412}, {"file_name": "ADE_train_00014584.jpg", "width": 640, "id": 14583, "height": 480}, {"file_name": "ADE_train_00014585.jpg", "width": 767, "id": 14584, "height": 512}, {"file_name": "ADE_train_00014586.jpg", "width": 576, "id": 14585, "height": 432}, {"file_name": "ADE_train_00014587.jpg", "width": 359, "id": 14586, "height": 240}, {"file_name": "ADE_train_00014588.jpg", "width": 355, "id": 14587, "height": 240}, {"file_name": "ADE_train_00014589.jpg", "width": 640, "id": 14588, "height": 398}, {"file_name": "ADE_train_00014590.jpg", "width": 515, "id": 14589, "height": 297}, {"file_name": "ADE_train_00014591.jpg", "width": 448, "id": 14590, "height": 336}, {"file_name": "ADE_train_00014592.jpg", "width": 350, "id": 14591, "height": 401}, {"file_name": "ADE_train_00014593.jpg", "width": 500, "id": 14592, "height": 328}, {"file_name": "ADE_train_00014594.jpg", "width": 560, "id": 14593, "height": 413}, {"file_name": "ADE_train_00014595.jpg", "width": 450, "id": 14594, "height": 600}, {"file_name": "ADE_train_00014596.jpg", "width": 250, "id": 14595, "height": 205}, {"file_name": "ADE_train_00014597.jpg", "width": 612, "id": 14596, "height": 408}, {"file_name": "ADE_train_00014598.jpg", "width": 300, "id": 14597, "height": 200}, {"file_name": "ADE_train_00014599.jpg", "width": 292, "id": 14598, "height": 215}, {"file_name": "ADE_train_00014600.jpg", "width": 350, "id": 14599, "height": 254}, {"file_name": "ADE_train_00014601.jpg", "width": 640, "id": 14600, "height": 480}, {"file_name": "ADE_train_00014602.jpg", "width": 400, "id": 14601, "height": 300}, {"file_name": "ADE_train_00014603.jpg", "width": 484, "id": 14602, "height": 324}, {"file_name": "ADE_train_00014604.jpg", "width": 770, "id": 14603, "height": 512}, {"file_name": "ADE_train_00014605.jpg", "width": 483, "id": 14604, "height": 360}, {"file_name": "ADE_train_00014606.jpg", "width": 350, "id": 14605, "height": 263}, {"file_name": "ADE_train_00014607.jpg", "width": 474, "id": 14606, "height": 301}, {"file_name": "ADE_train_00014608.jpg", "width": 472, "id": 14607, "height": 600}, {"file_name": "ADE_train_00014609.jpg", "width": 305, "id": 14608, "height": 230}, {"file_name": "ADE_train_00014610.jpg", "width": 640, "id": 14609, "height": 480}, {"file_name": "ADE_train_00014611.jpg", "width": 320, "id": 14610, "height": 240}, {"file_name": "ADE_train_00014612.jpg", "width": 640, "id": 14611, "height": 480}, {"file_name": "ADE_train_00014613.jpg", "width": 683, "id": 14612, "height": 512}, {"file_name": "ADE_train_00014614.jpg", "width": 581, "id": 14613, "height": 512}, {"file_name": "ADE_train_00014615.jpg", "width": 600, "id": 14614, "height": 450}, {"file_name": "ADE_train_00014616.jpg", "width": 400, "id": 14615, "height": 295}, {"file_name": "ADE_train_00014617.jpg", "width": 450, "id": 14616, "height": 337}, {"file_name": "ADE_train_00014618.jpg", "width": 640, "id": 14617, "height": 480}, {"file_name": "ADE_train_00014619.jpg", "width": 512, "id": 14618, "height": 521}, {"file_name": "ADE_train_00014620.jpg", "width": 683, "id": 14619, "height": 512}, {"file_name": "ADE_train_00014621.jpg", "width": 640, "id": 14620, "height": 480}, {"file_name": "ADE_train_00014622.jpg", "width": 274, "id": 14621, "height": 274}, {"file_name": "ADE_train_00014623.jpg", "width": 512, "id": 14622, "height": 689}, {"file_name": "ADE_train_00014624.jpg", "width": 576, "id": 14623, "height": 432}, {"file_name": "ADE_train_00014625.jpg", "width": 360, "id": 14624, "height": 279}, {"file_name": "ADE_train_00014626.jpg", "width": 250, "id": 14625, "height": 244}, {"file_name": "ADE_train_00014627.jpg", "width": 275, "id": 14626, "height": 201}, {"file_name": "ADE_train_00014628.jpg", "width": 683, "id": 14627, "height": 512}, {"file_name": "ADE_train_00014629.jpg", "width": 640, "id": 14628, "height": 480}, {"file_name": "ADE_train_00014630.jpg", "width": 512, "id": 14629, "height": 768}, {"file_name": "ADE_train_00014631.jpg", "width": 640, "id": 14630, "height": 480}, {"file_name": "ADE_train_00014632.jpg", "width": 500, "id": 14631, "height": 319}, {"file_name": "ADE_train_00014633.jpg", "width": 320, "id": 14632, "height": 240}, {"file_name": "ADE_train_00014634.jpg", "width": 293, "id": 14633, "height": 220}, {"file_name": "ADE_train_00014635.jpg", "width": 550, "id": 14634, "height": 408}, {"file_name": "ADE_train_00014636.jpg", "width": 231, "id": 14635, "height": 203}, {"file_name": "ADE_train_00014637.jpg", "width": 300, "id": 14636, "height": 215}, {"file_name": "ADE_train_00014638.jpg", "width": 300, "id": 14637, "height": 209}, {"file_name": "ADE_train_00014639.jpg", "width": 280, "id": 14638, "height": 202}, {"file_name": "ADE_train_00014640.jpg", "width": 421, "id": 14639, "height": 450}, {"file_name": "ADE_train_00014641.jpg", "width": 432, "id": 14640, "height": 324}, {"file_name": "ADE_train_00014642.jpg", "width": 450, "id": 14641, "height": 338}, {"file_name": "ADE_train_00014643.jpg", "width": 480, "id": 14642, "height": 360}, {"file_name": "ADE_train_00014644.jpg", "width": 250, "id": 14643, "height": 250}, {"file_name": "ADE_train_00014645.jpg", "width": 420, "id": 14644, "height": 317}, {"file_name": "ADE_train_00014646.jpg", "width": 612, "id": 14645, "height": 512}, {"file_name": "ADE_train_00014647.jpg", "width": 768, "id": 14646, "height": 512}, {"file_name": "ADE_train_00014648.jpg", "width": 420, "id": 14647, "height": 317}, {"file_name": "ADE_train_00014649.jpg", "width": 766, "id": 14648, "height": 512}, {"file_name": "ADE_train_00014650.jpg", "width": 515, "id": 14649, "height": 456}, {"file_name": "ADE_train_00014651.jpg", "width": 200, "id": 14650, "height": 326}, {"file_name": "ADE_train_00014652.jpg", "width": 285, "id": 14651, "height": 224}, {"file_name": "ADE_train_00014653.jpg", "width": 836, "id": 14652, "height": 512}, {"file_name": "ADE_train_00014654.jpg", "width": 338, "id": 14653, "height": 294}, {"file_name": "ADE_train_00014655.jpg", "width": 263, "id": 14654, "height": 200}, {"file_name": "ADE_train_00014656.jpg", "width": 604, "id": 14655, "height": 402}, {"file_name": "ADE_train_00014657.jpg", "width": 683, "id": 14656, "height": 512}, {"file_name": "ADE_train_00014658.jpg", "width": 345, "id": 14657, "height": 379}, {"file_name": "ADE_train_00014659.jpg", "width": 243, "id": 14658, "height": 220}, {"file_name": "ADE_train_00014660.jpg", "width": 266, "id": 14659, "height": 199}, {"file_name": "ADE_train_00014661.jpg", "width": 320, "id": 14660, "height": 207}, {"file_name": "ADE_train_00014662.jpg", "width": 242, "id": 14661, "height": 180}, {"file_name": "ADE_train_00014663.jpg", "width": 683, "id": 14662, "height": 512}, {"file_name": "ADE_train_00014664.jpg", "width": 240, "id": 14663, "height": 240}, {"file_name": "ADE_train_00014665.jpg", "width": 350, "id": 14664, "height": 225}, {"file_name": "ADE_train_00014666.jpg", "width": 640, "id": 14665, "height": 480}, {"file_name": "ADE_train_00014667.jpg", "width": 655, "id": 14666, "height": 432}, {"file_name": "ADE_train_00014668.jpg", "width": 689, "id": 14667, "height": 512}, {"file_name": "ADE_train_00014669.jpg", "width": 689, "id": 14668, "height": 512}, {"file_name": "ADE_train_00014670.jpg", "width": 750, "id": 14669, "height": 500}, {"file_name": "ADE_train_00014671.jpg", "width": 250, "id": 14670, "height": 186}, {"file_name": "ADE_train_00014672.jpg", "width": 405, "id": 14671, "height": 203}, {"file_name": "ADE_train_00014673.jpg", "width": 375, "id": 14672, "height": 500}, {"file_name": "ADE_train_00014674.jpg", "width": 250, "id": 14673, "height": 188}, {"file_name": "ADE_train_00014675.jpg", "width": 350, "id": 14674, "height": 260}, {"file_name": "ADE_train_00014676.jpg", "width": 300, "id": 14675, "height": 199}, {"file_name": "ADE_train_00014677.jpg", "width": 450, "id": 14676, "height": 328}, {"file_name": "ADE_train_00014678.jpg", "width": 600, "id": 14677, "height": 600}, {"file_name": "ADE_train_00014679.jpg", "width": 345, "id": 14678, "height": 232}, {"file_name": "ADE_train_00014680.jpg", "width": 770, "id": 14679, "height": 512}, {"file_name": "ADE_train_00014681.jpg", "width": 384, "id": 14680, "height": 288}, {"file_name": "ADE_train_00014682.jpg", "width": 683, "id": 14681, "height": 512}, {"file_name": "ADE_train_00014683.jpg", "width": 640, "id": 14682, "height": 480}, {"file_name": "ADE_train_00014684.jpg", "width": 324, "id": 14683, "height": 234}, {"file_name": "ADE_train_00014685.jpg", "width": 483, "id": 14684, "height": 318}, {"file_name": "ADE_train_00014686.jpg", "width": 610, "id": 14685, "height": 411}, {"file_name": "ADE_train_00014687.jpg", "width": 300, "id": 14686, "height": 225}, {"file_name": "ADE_train_00014688.jpg", "width": 640, "id": 14687, "height": 480}, {"file_name": "ADE_train_00014689.jpg", "width": 755, "id": 14688, "height": 512}, {"file_name": "ADE_train_00014690.jpg", "width": 534, "id": 14689, "height": 361}, {"file_name": "ADE_train_00014691.jpg", "width": 640, "id": 14690, "height": 480}, {"file_name": "ADE_train_00014692.jpg", "width": 285, "id": 14691, "height": 214}, {"file_name": "ADE_train_00014693.jpg", "width": 640, "id": 14692, "height": 480}, {"file_name": "ADE_train_00014694.jpg", "width": 640, "id": 14693, "height": 480}, {"file_name": "ADE_train_00014695.jpg", "width": 640, "id": 14694, "height": 480}, {"file_name": "ADE_train_00014696.jpg", "width": 640, "id": 14695, "height": 480}, {"file_name": "ADE_train_00014697.jpg", "width": 410, "id": 14696, "height": 281}, {"file_name": "ADE_train_00014698.jpg", "width": 288, "id": 14697, "height": 205}, {"file_name": "ADE_train_00014699.jpg", "width": 640, "id": 14698, "height": 480}, {"file_name": "ADE_train_00014700.jpg", "width": 683, "id": 14699, "height": 512}, {"file_name": "ADE_train_00014701.jpg", "width": 640, "id": 14700, "height": 480}, {"file_name": "ADE_train_00014702.jpg", "width": 500, "id": 14701, "height": 335}, {"file_name": "ADE_train_00014703.jpg", "width": 450, "id": 14702, "height": 337}, {"file_name": "ADE_train_00014704.jpg", "width": 223, "id": 14703, "height": 300}, {"file_name": "ADE_train_00014705.jpg", "width": 700, "id": 14704, "height": 460}, {"file_name": "ADE_train_00014706.jpg", "width": 300, "id": 14705, "height": 225}, {"file_name": "ADE_train_00014707.jpg", "width": 300, "id": 14706, "height": 223}, {"file_name": "ADE_train_00014708.jpg", "width": 750, "id": 14707, "height": 502}, {"file_name": "ADE_train_00014709.jpg", "width": 540, "id": 14708, "height": 344}, {"file_name": "ADE_train_00014710.jpg", "width": 400, "id": 14709, "height": 281}, {"file_name": "ADE_train_00014711.jpg", "width": 775, "id": 14710, "height": 512}, {"file_name": "ADE_train_00014712.jpg", "width": 768, "id": 14711, "height": 512}, {"file_name": "ADE_train_00014713.jpg", "width": 813, "id": 14712, "height": 512}, {"file_name": "ADE_train_00014714.jpg", "width": 743, "id": 14713, "height": 512}, {"file_name": "ADE_train_00014715.jpg", "width": 320, "id": 14714, "height": 241}, {"file_name": "ADE_train_00014716.jpg", "width": 640, "id": 14715, "height": 480}, {"file_name": "ADE_train_00014717.jpg", "width": 515, "id": 14716, "height": 330}, {"file_name": "ADE_train_00014718.jpg", "width": 199, "id": 14717, "height": 149}, {"file_name": "ADE_train_00014719.jpg", "width": 768, "id": 14718, "height": 512}, {"file_name": "ADE_train_00014720.jpg", "width": 519, "id": 14719, "height": 340}, {"file_name": "ADE_train_00014721.jpg", "width": 640, "id": 14720, "height": 480}, {"file_name": "ADE_train_00014722.jpg", "width": 300, "id": 14721, "height": 234}, {"file_name": "ADE_train_00014723.jpg", "width": 300, "id": 14722, "height": 426}, {"file_name": "ADE_train_00014724.jpg", "width": 319, "id": 14723, "height": 261}, {"file_name": "ADE_train_00014725.jpg", "width": 520, "id": 14724, "height": 434}, {"file_name": "ADE_train_00014726.jpg", "width": 768, "id": 14725, "height": 512}, {"file_name": "ADE_train_00014727.jpg", "width": 280, "id": 14726, "height": 200}, {"file_name": "ADE_train_00014728.jpg", "width": 500, "id": 14727, "height": 355}, {"file_name": "ADE_train_00014729.jpg", "width": 500, "id": 14728, "height": 375}, {"file_name": "ADE_train_00014730.jpg", "width": 683, "id": 14729, "height": 512}, {"file_name": "ADE_train_00014731.jpg", "width": 750, "id": 14730, "height": 500}, {"file_name": "ADE_train_00014732.jpg", "width": 280, "id": 14731, "height": 186}, {"file_name": "ADE_train_00014733.jpg", "width": 500, "id": 14732, "height": 375}, {"file_name": "ADE_train_00014734.jpg", "width": 500, "id": 14733, "height": 375}, {"file_name": "ADE_train_00014735.jpg", "width": 393, "id": 14734, "height": 262}, {"file_name": "ADE_train_00014736.jpg", "width": 420, "id": 14735, "height": 315}, {"file_name": "ADE_train_00014737.jpg", "width": 683, "id": 14736, "height": 512}, {"file_name": "ADE_train_00014738.jpg", "width": 367, "id": 14737, "height": 259}, {"file_name": "ADE_train_00014739.jpg", "width": 400, "id": 14738, "height": 300}, {"file_name": "ADE_train_00014740.jpg", "width": 275, "id": 14739, "height": 206}, {"file_name": "ADE_train_00014741.jpg", "width": 300, "id": 14740, "height": 237}, {"file_name": "ADE_train_00014742.jpg", "width": 300, "id": 14741, "height": 225}, {"file_name": "ADE_train_00014743.jpg", "width": 730, "id": 14742, "height": 369}, {"file_name": "ADE_train_00014744.jpg", "width": 586, "id": 14743, "height": 389}, {"file_name": "ADE_train_00014745.jpg", "width": 156, "id": 14744, "height": 233}, {"file_name": "ADE_train_00014746.jpg", "width": 500, "id": 14745, "height": 335}, {"file_name": "ADE_train_00014747.jpg", "width": 360, "id": 14746, "height": 214}, {"file_name": "ADE_train_00014748.jpg", "width": 350, "id": 14747, "height": 236}, {"file_name": "ADE_train_00014749.jpg", "width": 320, "id": 14748, "height": 240}, {"file_name": "ADE_train_00014750.jpg", "width": 650, "id": 14749, "height": 411}, {"file_name": "ADE_train_00014751.jpg", "width": 600, "id": 14750, "height": 392}, {"file_name": "ADE_train_00014752.jpg", "width": 252, "id": 14751, "height": 234}, {"file_name": "ADE_train_00014753.jpg", "width": 683, "id": 14752, "height": 512}, {"file_name": "ADE_train_00014754.jpg", "width": 683, "id": 14753, "height": 512}, {"file_name": "ADE_train_00014755.jpg", "width": 683, "id": 14754, "height": 512}, {"file_name": "ADE_train_00014756.jpg", "width": 400, "id": 14755, "height": 266}, {"file_name": "ADE_train_00014757.jpg", "width": 640, "id": 14756, "height": 480}, {"file_name": "ADE_train_00014758.jpg", "width": 288, "id": 14757, "height": 229}, {"file_name": "ADE_train_00014759.jpg", "width": 432, "id": 14758, "height": 247}, {"file_name": "ADE_train_00014760.jpg", "width": 500, "id": 14759, "height": 400}, {"file_name": "ADE_train_00014761.jpg", "width": 350, "id": 14760, "height": 424}, {"file_name": "ADE_train_00014762.jpg", "width": 640, "id": 14761, "height": 480}, {"file_name": "ADE_train_00014763.jpg", "width": 519, "id": 14762, "height": 512}, {"file_name": "ADE_train_00014764.jpg", "width": 448, "id": 14763, "height": 336}, {"file_name": "ADE_train_00014765.jpg", "width": 777, "id": 14764, "height": 512}, {"file_name": "ADE_train_00014766.jpg", "width": 571, "id": 14765, "height": 480}, {"file_name": "ADE_train_00014767.jpg", "width": 540, "id": 14766, "height": 355}, {"file_name": "ADE_train_00014768.jpg", "width": 300, "id": 14767, "height": 237}, {"file_name": "ADE_train_00014769.jpg", "width": 225, "id": 14768, "height": 160}, {"file_name": "ADE_train_00014770.jpg", "width": 283, "id": 14769, "height": 212}, {"file_name": "ADE_train_00014771.jpg", "width": 492, "id": 14770, "height": 369}, {"file_name": "ADE_train_00014772.jpg", "width": 733, "id": 14771, "height": 512}, {"file_name": "ADE_train_00014773.jpg", "width": 400, "id": 14772, "height": 300}, {"file_name": "ADE_train_00014774.jpg", "width": 412, "id": 14773, "height": 312}, {"file_name": "ADE_train_00014775.jpg", "width": 285, "id": 14774, "height": 220}, {"file_name": "ADE_train_00014776.jpg", "width": 252, "id": 14775, "height": 189}, {"file_name": "ADE_train_00014777.jpg", "width": 640, "id": 14776, "height": 480}, {"file_name": "ADE_train_00014778.jpg", "width": 300, "id": 14777, "height": 387}, {"file_name": "ADE_train_00014779.jpg", "width": 300, "id": 14778, "height": 225}, {"file_name": "ADE_train_00014780.jpg", "width": 371, "id": 14779, "height": 500}, {"file_name": "ADE_train_00014781.jpg", "width": 569, "id": 14780, "height": 473}, {"file_name": "ADE_train_00014782.jpg", "width": 425, "id": 14781, "height": 281}, {"file_name": "ADE_train_00014783.jpg", "width": 425, "id": 14782, "height": 250}, {"file_name": "ADE_train_00014784.jpg", "width": 310, "id": 14783, "height": 439}, {"file_name": "ADE_train_00014785.jpg", "width": 250, "id": 14784, "height": 375}, {"file_name": "ADE_train_00014786.jpg", "width": 683, "id": 14785, "height": 512}, {"file_name": "ADE_train_00014787.jpg", "width": 720, "id": 14786, "height": 480}, {"file_name": "ADE_train_00014788.jpg", "width": 640, "id": 14787, "height": 480}, {"file_name": "ADE_train_00014789.jpg", "width": 720, "id": 14788, "height": 480}, {"file_name": "ADE_train_00014790.jpg", "width": 771, "id": 14789, "height": 512}, {"file_name": "ADE_train_00014791.jpg", "width": 330, "id": 14790, "height": 205}, {"file_name": "ADE_train_00014792.jpg", "width": 350, "id": 14791, "height": 263}, {"file_name": "ADE_train_00014793.jpg", "width": 285, "id": 14792, "height": 225}, {"file_name": "ADE_train_00014794.jpg", "width": 683, "id": 14793, "height": 512}, {"file_name": "ADE_train_00014795.jpg", "width": 370, "id": 14794, "height": 248}, {"file_name": "ADE_train_00014796.jpg", "width": 683, "id": 14795, "height": 512}, {"file_name": "ADE_train_00014797.jpg", "width": 285, "id": 14796, "height": 204}, {"file_name": "ADE_train_00014798.jpg", "width": 320, "id": 14797, "height": 240}, {"file_name": "ADE_train_00014799.jpg", "width": 300, "id": 14798, "height": 200}, {"file_name": "ADE_train_00014800.jpg", "width": 352, "id": 14799, "height": 265}, {"file_name": "ADE_train_00014801.jpg", "width": 368, "id": 14800, "height": 460}, {"file_name": "ADE_train_00014802.jpg", "width": 480, "id": 14801, "height": 360}, {"file_name": "ADE_train_00014803.jpg", "width": 640, "id": 14802, "height": 480}, {"file_name": "ADE_train_00014804.jpg", "width": 640, "id": 14803, "height": 480}, {"file_name": "ADE_train_00014805.jpg", "width": 600, "id": 14804, "height": 314}, {"file_name": "ADE_train_00014806.jpg", "width": 504, "id": 14805, "height": 378}, {"file_name": "ADE_train_00014807.jpg", "width": 500, "id": 14806, "height": 375}, {"file_name": "ADE_train_00014808.jpg", "width": 440, "id": 14807, "height": 330}, {"file_name": "ADE_train_00014809.jpg", "width": 768, "id": 14808, "height": 512}, {"file_name": "ADE_train_00014810.jpg", "width": 512, "id": 14809, "height": 768}, {"file_name": "ADE_train_00014811.jpg", "width": 400, "id": 14810, "height": 300}, {"file_name": "ADE_train_00014812.jpg", "width": 367, "id": 14811, "height": 280}, {"file_name": "ADE_train_00014813.jpg", "width": 202, "id": 14812, "height": 248}, {"file_name": "ADE_train_00014814.jpg", "width": 300, "id": 14813, "height": 208}, {"file_name": "ADE_train_00014815.jpg", "width": 600, "id": 14814, "height": 400}, {"file_name": "ADE_train_00014816.jpg", "width": 200, "id": 14815, "height": 299}, {"file_name": "ADE_train_00014817.jpg", "width": 480, "id": 14816, "height": 296}, {"file_name": "ADE_train_00014818.jpg", "width": 360, "id": 14817, "height": 480}, {"file_name": "ADE_train_00014819.jpg", "width": 683, "id": 14818, "height": 512}, {"file_name": "ADE_train_00014820.jpg", "width": 528, "id": 14819, "height": 512}, {"file_name": "ADE_train_00014821.jpg", "width": 781, "id": 14820, "height": 512}, {"file_name": "ADE_train_00014822.jpg", "width": 700, "id": 14821, "height": 512}, {"file_name": "ADE_train_00014823.jpg", "width": 357, "id": 14822, "height": 476}, {"file_name": "ADE_train_00014824.jpg", "width": 800, "id": 14823, "height": 488}, {"file_name": "ADE_train_00014825.jpg", "width": 600, "id": 14824, "height": 400}, {"file_name": "ADE_train_00014826.jpg", "width": 640, "id": 14825, "height": 480}, {"file_name": "ADE_train_00014827.jpg", "width": 320, "id": 14826, "height": 481}, {"file_name": "ADE_train_00014828.jpg", "width": 520, "id": 14827, "height": 350}, {"file_name": "ADE_train_00014829.jpg", "width": 768, "id": 14828, "height": 512}, {"file_name": "ADE_train_00014830.jpg", "width": 350, "id": 14829, "height": 234}, {"file_name": "ADE_train_00014831.jpg", "width": 490, "id": 14830, "height": 386}, {"file_name": "ADE_train_00014832.jpg", "width": 400, "id": 14831, "height": 299}, {"file_name": "ADE_train_00014833.jpg", "width": 400, "id": 14832, "height": 289}, {"file_name": "ADE_train_00014834.jpg", "width": 600, "id": 14833, "height": 450}, {"file_name": "ADE_train_00014835.jpg", "width": 350, "id": 14834, "height": 247}, {"file_name": "ADE_train_00014836.jpg", "width": 325, "id": 14835, "height": 433}, {"file_name": "ADE_train_00014837.jpg", "width": 300, "id": 14836, "height": 200}, {"file_name": "ADE_train_00014838.jpg", "width": 640, "id": 14837, "height": 480}, {"file_name": "ADE_train_00014839.jpg", "width": 360, "id": 14838, "height": 255}, {"file_name": "ADE_train_00014840.jpg", "width": 638, "id": 14839, "height": 441}, {"file_name": "ADE_train_00014841.jpg", "width": 374, "id": 14840, "height": 256}, {"file_name": "ADE_train_00014842.jpg", "width": 640, "id": 14841, "height": 480}, {"file_name": "ADE_train_00014843.jpg", "width": 600, "id": 14842, "height": 427}, {"file_name": "ADE_train_00014844.jpg", "width": 590, "id": 14843, "height": 386}, {"file_name": "ADE_train_00014845.jpg", "width": 512, "id": 14844, "height": 768}, {"file_name": "ADE_train_00014846.jpg", "width": 600, "id": 14845, "height": 322}, {"file_name": "ADE_train_00014847.jpg", "width": 728, "id": 14846, "height": 512}, {"file_name": "ADE_train_00014848.jpg", "width": 426, "id": 14847, "height": 640}, {"file_name": "ADE_train_00014849.jpg", "width": 500, "id": 14848, "height": 340}, {"file_name": "ADE_train_00014850.jpg", "width": 480, "id": 14849, "height": 325}, {"file_name": "ADE_train_00014851.jpg", "width": 332, "id": 14850, "height": 224}, {"file_name": "ADE_train_00014852.jpg", "width": 600, "id": 14851, "height": 367}, {"file_name": "ADE_train_00014853.jpg", "width": 224, "id": 14852, "height": 263}, {"file_name": "ADE_train_00014854.jpg", "width": 683, "id": 14853, "height": 512}, {"file_name": "ADE_train_00014855.jpg", "width": 683, "id": 14854, "height": 512}, {"file_name": "ADE_train_00014856.jpg", "width": 500, "id": 14855, "height": 375}, {"file_name": "ADE_train_00014857.jpg", "width": 400, "id": 14856, "height": 300}, {"file_name": "ADE_train_00014858.jpg", "width": 432, "id": 14857, "height": 289}, {"file_name": "ADE_train_00014859.jpg", "width": 640, "id": 14858, "height": 480}, {"file_name": "ADE_train_00014860.jpg", "width": 512, "id": 14859, "height": 683}, {"file_name": "ADE_train_00014861.jpg", "width": 550, "id": 14860, "height": 200}, {"file_name": "ADE_train_00014862.jpg", "width": 800, "id": 14861, "height": 357}, {"file_name": "ADE_train_00014863.jpg", "width": 768, "id": 14862, "height": 512}, {"file_name": "ADE_train_00014864.jpg", "width": 684, "id": 14863, "height": 512}, {"file_name": "ADE_train_00014865.jpg", "width": 800, "id": 14864, "height": 421}, {"file_name": "ADE_train_00014866.jpg", "width": 216, "id": 14865, "height": 207}, {"file_name": "ADE_train_00014867.jpg", "width": 756, "id": 14866, "height": 512}, {"file_name": "ADE_train_00014868.jpg", "width": 320, "id": 14867, "height": 240}, {"file_name": "ADE_train_00014869.jpg", "width": 320, "id": 14868, "height": 240}, {"file_name": "ADE_train_00014870.jpg", "width": 576, "id": 14869, "height": 383}, {"file_name": "ADE_train_00014871.jpg", "width": 600, "id": 14870, "height": 403}, {"file_name": "ADE_train_00014872.jpg", "width": 320, "id": 14871, "height": 240}, {"file_name": "ADE_train_00014873.jpg", "width": 390, "id": 14872, "height": 292}, {"file_name": "ADE_train_00014874.jpg", "width": 348, "id": 14873, "height": 242}, {"file_name": "ADE_train_00014875.jpg", "width": 208, "id": 14874, "height": 300}, {"file_name": "ADE_train_00014876.jpg", "width": 450, "id": 14875, "height": 300}, {"file_name": "ADE_train_00014877.jpg", "width": 512, "id": 14876, "height": 683}, {"file_name": "ADE_train_00014878.jpg", "width": 295, "id": 14877, "height": 375}, {"file_name": "ADE_train_00014879.jpg", "width": 600, "id": 14878, "height": 450}, {"file_name": "ADE_train_00014880.jpg", "width": 452, "id": 14879, "height": 300}, {"file_name": "ADE_train_00014881.jpg", "width": 640, "id": 14880, "height": 480}, {"file_name": "ADE_train_00014882.jpg", "width": 500, "id": 14881, "height": 750}, {"file_name": "ADE_train_00014883.jpg", "width": 225, "id": 14882, "height": 300}, {"file_name": "ADE_train_00014884.jpg", "width": 629, "id": 14883, "height": 428}, {"file_name": "ADE_train_00014885.jpg", "width": 300, "id": 14884, "height": 244}, {"file_name": "ADE_train_00014886.jpg", "width": 683, "id": 14885, "height": 512}, {"file_name": "ADE_train_00014887.jpg", "width": 297, "id": 14886, "height": 224}, {"file_name": "ADE_train_00014888.jpg", "width": 270, "id": 14887, "height": 202}, {"file_name": "ADE_train_00014889.jpg", "width": 640, "id": 14888, "height": 480}, {"file_name": "ADE_train_00014890.jpg", "width": 683, "id": 14889, "height": 512}, {"file_name": "ADE_train_00014891.jpg", "width": 435, "id": 14890, "height": 640}, {"file_name": "ADE_train_00014892.jpg", "width": 224, "id": 14891, "height": 152}, {"file_name": "ADE_train_00014893.jpg", "width": 640, "id": 14892, "height": 480}, {"file_name": "ADE_train_00014894.jpg", "width": 230, "id": 14893, "height": 232}, {"file_name": "ADE_train_00014895.jpg", "width": 512, "id": 14894, "height": 384}, {"file_name": "ADE_train_00014896.jpg", "width": 261, "id": 14895, "height": 384}, {"file_name": "ADE_train_00014897.jpg", "width": 367, "id": 14896, "height": 220}, {"file_name": "ADE_train_00014898.jpg", "width": 384, "id": 14897, "height": 288}, {"file_name": "ADE_train_00014899.jpg", "width": 535, "id": 14898, "height": 401}, {"file_name": "ADE_train_00014900.jpg", "width": 300, "id": 14899, "height": 199}, {"file_name": "ADE_train_00014901.jpg", "width": 580, "id": 14900, "height": 435}, {"file_name": "ADE_train_00014902.jpg", "width": 787, "id": 14901, "height": 512}, {"file_name": "ADE_train_00014903.jpg", "width": 683, "id": 14902, "height": 512}, {"file_name": "ADE_train_00014904.jpg", "width": 683, "id": 14903, "height": 512}, {"file_name": "ADE_train_00014905.jpg", "width": 343, "id": 14904, "height": 287}, {"file_name": "ADE_train_00014906.jpg", "width": 300, "id": 14905, "height": 225}, {"file_name": "ADE_train_00014907.jpg", "width": 300, "id": 14906, "height": 400}, {"file_name": "ADE_train_00014908.jpg", "width": 640, "id": 14907, "height": 483}, {"file_name": "ADE_train_00014909.jpg", "width": 375, "id": 14908, "height": 500}, {"file_name": "ADE_train_00014910.jpg", "width": 765, "id": 14909, "height": 512}, {"file_name": "ADE_train_00014911.jpg", "width": 759, "id": 14910, "height": 512}, {"file_name": "ADE_train_00014912.jpg", "width": 320, "id": 14911, "height": 427}, {"file_name": "ADE_train_00014913.jpg", "width": 300, "id": 14912, "height": 200}, {"file_name": "ADE_train_00014914.jpg", "width": 500, "id": 14913, "height": 376}, {"file_name": "ADE_train_00014915.jpg", "width": 392, "id": 14914, "height": 610}, {"file_name": "ADE_train_00014916.jpg", "width": 200, "id": 14915, "height": 221}, {"file_name": "ADE_train_00014917.jpg", "width": 768, "id": 14916, "height": 512}, {"file_name": "ADE_train_00014918.jpg", "width": 683, "id": 14917, "height": 512}, {"file_name": "ADE_train_00014919.jpg", "width": 423, "id": 14918, "height": 300}, {"file_name": "ADE_train_00014920.jpg", "width": 770, "id": 14919, "height": 512}, {"file_name": "ADE_train_00014921.jpg", "width": 683, "id": 14920, "height": 512}, {"file_name": "ADE_train_00014922.jpg", "width": 309, "id": 14921, "height": 233}, {"file_name": "ADE_train_00014923.jpg", "width": 432, "id": 14922, "height": 288}, {"file_name": "ADE_train_00014924.jpg", "width": 763, "id": 14923, "height": 512}, {"file_name": "ADE_train_00014925.jpg", "width": 620, "id": 14924, "height": 318}, {"file_name": "ADE_train_00014926.jpg", "width": 656, "id": 14925, "height": 433}, {"file_name": "ADE_train_00014927.jpg", "width": 455, "id": 14926, "height": 334}, {"file_name": "ADE_train_00014928.jpg", "width": 683, "id": 14927, "height": 512}, {"file_name": "ADE_train_00014929.jpg", "width": 360, "id": 14928, "height": 270}, {"file_name": "ADE_train_00014930.jpg", "width": 366, "id": 14929, "height": 244}, {"file_name": "ADE_train_00014931.jpg", "width": 512, "id": 14930, "height": 542}, {"file_name": "ADE_train_00014932.jpg", "width": 600, "id": 14931, "height": 482}, {"file_name": "ADE_train_00014933.jpg", "width": 250, "id": 14932, "height": 188}, {"file_name": "ADE_train_00014934.jpg", "width": 450, "id": 14933, "height": 338}, {"file_name": "ADE_train_00014935.jpg", "width": 800, "id": 14934, "height": 512}, {"file_name": "ADE_train_00014936.jpg", "width": 180, "id": 14935, "height": 240}, {"file_name": "ADE_train_00014937.jpg", "width": 198, "id": 14936, "height": 152}, {"file_name": "ADE_train_00014938.jpg", "width": 512, "id": 14937, "height": 384}, {"file_name": "ADE_train_00014939.jpg", "width": 728, "id": 14938, "height": 399}, {"file_name": "ADE_train_00014940.jpg", "width": 683, "id": 14939, "height": 512}, {"file_name": "ADE_train_00014941.jpg", "width": 512, "id": 14940, "height": 384}, {"file_name": "ADE_train_00014942.jpg", "width": 203, "id": 14941, "height": 258}, {"file_name": "ADE_train_00014943.jpg", "width": 292, "id": 14942, "height": 443}, {"file_name": "ADE_train_00014944.jpg", "width": 512, "id": 14943, "height": 648}, {"file_name": "ADE_train_00014945.jpg", "width": 512, "id": 14944, "height": 683}, {"file_name": "ADE_train_00014946.jpg", "width": 375, "id": 14945, "height": 575}, {"file_name": "ADE_train_00014947.jpg", "width": 274, "id": 14946, "height": 274}, {"file_name": "ADE_train_00014948.jpg", "width": 225, "id": 14947, "height": 300}, {"file_name": "ADE_train_00014949.jpg", "width": 512, "id": 14948, "height": 682}, {"file_name": "ADE_train_00014950.jpg", "width": 512, "id": 14949, "height": 706}, {"file_name": "ADE_train_00014951.jpg", "width": 512, "id": 14950, "height": 683}, {"file_name": "ADE_train_00014952.jpg", "width": 683, "id": 14951, "height": 512}, {"file_name": "ADE_train_00014953.jpg", "width": 500, "id": 14952, "height": 330}, {"file_name": "ADE_train_00014954.jpg", "width": 683, "id": 14953, "height": 512}, {"file_name": "ADE_train_00014955.jpg", "width": 450, "id": 14954, "height": 338}, {"file_name": "ADE_train_00014956.jpg", "width": 725, "id": 14955, "height": 512}, {"file_name": "ADE_train_00014957.jpg", "width": 640, "id": 14956, "height": 480}, {"file_name": "ADE_train_00014958.jpg", "width": 765, "id": 14957, "height": 306}, {"file_name": "ADE_train_00014959.jpg", "width": 270, "id": 14958, "height": 202}, {"file_name": "ADE_train_00014960.jpg", "width": 330, "id": 14959, "height": 220}, {"file_name": "ADE_train_00014961.jpg", "width": 683, "id": 14960, "height": 512}, {"file_name": "ADE_train_00014962.jpg", "width": 256, "id": 14961, "height": 256}, {"file_name": "ADE_train_00014963.jpg", "width": 346, "id": 14962, "height": 260}, {"file_name": "ADE_train_00014964.jpg", "width": 606, "id": 14963, "height": 339}, {"file_name": "ADE_train_00014965.jpg", "width": 550, "id": 14964, "height": 368}, {"file_name": "ADE_train_00014966.jpg", "width": 500, "id": 14965, "height": 375}, {"file_name": "ADE_train_00014967.jpg", "width": 320, "id": 14966, "height": 240}, {"file_name": "ADE_train_00014968.jpg", "width": 460, "id": 14967, "height": 394}, {"file_name": "ADE_train_00014969.jpg", "width": 635, "id": 14968, "height": 512}, {"file_name": "ADE_train_00014970.jpg", "width": 320, "id": 14969, "height": 258}, {"file_name": "ADE_train_00014971.jpg", "width": 600, "id": 14970, "height": 452}, {"file_name": "ADE_train_00014972.jpg", "width": 500, "id": 14971, "height": 375}, {"file_name": "ADE_train_00014973.jpg", "width": 512, "id": 14972, "height": 683}, {"file_name": "ADE_train_00014974.jpg", "width": 477, "id": 14973, "height": 640}, {"file_name": "ADE_train_00014975.jpg", "width": 261, "id": 14974, "height": 400}, {"file_name": "ADE_train_00014976.jpg", "width": 396, "id": 14975, "height": 361}, {"file_name": "ADE_train_00014977.jpg", "width": 360, "id": 14976, "height": 480}, {"file_name": "ADE_train_00014978.jpg", "width": 400, "id": 14977, "height": 311}, {"file_name": "ADE_train_00014979.jpg", "width": 683, "id": 14978, "height": 512}, {"file_name": "ADE_train_00014980.jpg", "width": 384, "id": 14979, "height": 480}, {"file_name": "ADE_train_00014981.jpg", "width": 512, "id": 14980, "height": 683}, {"file_name": "ADE_train_00014982.jpg", "width": 341, "id": 14981, "height": 512}, {"file_name": "ADE_train_00014983.jpg", "width": 600, "id": 14982, "height": 490}, {"file_name": "ADE_train_00014984.jpg", "width": 512, "id": 14983, "height": 683}, {"file_name": "ADE_train_00014985.jpg", "width": 256, "id": 14984, "height": 256}, {"file_name": "ADE_train_00014986.jpg", "width": 646, "id": 14985, "height": 512}, {"file_name": "ADE_train_00014987.jpg", "width": 256, "id": 14986, "height": 256}, {"file_name": "ADE_train_00014988.jpg", "width": 512, "id": 14987, "height": 514}, {"file_name": "ADE_train_00014989.jpg", "width": 256, "id": 14988, "height": 256}, {"file_name": "ADE_train_00014990.jpg", "width": 293, "id": 14989, "height": 390}, {"file_name": "ADE_train_00014991.jpg", "width": 375, "id": 14990, "height": 500}, {"file_name": "ADE_train_00014992.jpg", "width": 256, "id": 14991, "height": 256}, {"file_name": "ADE_train_00014993.jpg", "width": 500, "id": 14992, "height": 375}, {"file_name": "ADE_train_00014994.jpg", "width": 512, "id": 14993, "height": 640}, {"file_name": "ADE_train_00014995.jpg", "width": 240, "id": 14994, "height": 320}, {"file_name": "ADE_train_00014996.jpg", "width": 512, "id": 14995, "height": 340}, {"file_name": "ADE_train_00014997.jpg", "width": 683, "id": 14996, "height": 512}, {"file_name": "ADE_train_00014998.jpg", "width": 683, "id": 14997, "height": 512}, {"file_name": "ADE_train_00014999.jpg", "width": 683, "id": 14998, "height": 512}, {"file_name": "ADE_train_00015000.jpg", "width": 683, "id": 14999, "height": 512}, {"file_name": "ADE_train_00015001.jpg", "width": 683, "id": 15000, "height": 512}, {"file_name": "ADE_train_00015002.jpg", "width": 683, "id": 15001, "height": 512}, {"file_name": "ADE_train_00015003.jpg", "width": 683, "id": 15002, "height": 512}, {"file_name": "ADE_train_00015004.jpg", "width": 683, "id": 15003, "height": 512}, {"file_name": "ADE_train_00015005.jpg", "width": 683, "id": 15004, "height": 512}, {"file_name": "ADE_train_00015006.jpg", "width": 512, "id": 15005, "height": 683}, {"file_name": "ADE_train_00015007.jpg", "width": 683, "id": 15006, "height": 512}, {"file_name": "ADE_train_00015008.jpg", "width": 683, "id": 15007, "height": 512}, {"file_name": "ADE_train_00015009.jpg", "width": 683, "id": 15008, "height": 512}, {"file_name": "ADE_train_00015010.jpg", "width": 683, "id": 15009, "height": 512}, {"file_name": "ADE_train_00015011.jpg", "width": 683, "id": 15010, "height": 512}, {"file_name": "ADE_train_00015012.jpg", "width": 683, "id": 15011, "height": 512}, {"file_name": "ADE_train_00015013.jpg", "width": 683, "id": 15012, "height": 512}, {"file_name": "ADE_train_00015014.jpg", "width": 683, "id": 15013, "height": 512}, {"file_name": "ADE_train_00015015.jpg", "width": 683, "id": 15014, "height": 512}, {"file_name": "ADE_train_00015016.jpg", "width": 683, "id": 15015, "height": 512}, {"file_name": "ADE_train_00015017.jpg", "width": 683, "id": 15016, "height": 512}, {"file_name": "ADE_train_00015018.jpg", "width": 683, "id": 15017, "height": 512}, {"file_name": "ADE_train_00015019.jpg", "width": 683, "id": 15018, "height": 512}, {"file_name": "ADE_train_00015020.jpg", "width": 640, "id": 15019, "height": 480}, {"file_name": "ADE_train_00015021.jpg", "width": 683, "id": 15020, "height": 512}, {"file_name": "ADE_train_00015022.jpg", "width": 683, "id": 15021, "height": 512}, {"file_name": "ADE_train_00015023.jpg", "width": 683, "id": 15022, "height": 512}, {"file_name": "ADE_train_00015024.jpg", "width": 683, "id": 15023, "height": 512}, {"file_name": "ADE_train_00015025.jpg", "width": 683, "id": 15024, "height": 512}, {"file_name": "ADE_train_00015026.jpg", "width": 683, "id": 15025, "height": 512}, {"file_name": "ADE_train_00015027.jpg", "width": 683, "id": 15026, "height": 512}, {"file_name": "ADE_train_00015028.jpg", "width": 683, "id": 15027, "height": 512}, {"file_name": "ADE_train_00015029.jpg", "width": 683, "id": 15028, "height": 512}, {"file_name": "ADE_train_00015030.jpg", "width": 683, "id": 15029, "height": 512}, {"file_name": "ADE_train_00015031.jpg", "width": 683, "id": 15030, "height": 512}, {"file_name": "ADE_train_00015032.jpg", "width": 683, "id": 15031, "height": 512}, {"file_name": "ADE_train_00015033.jpg", "width": 683, "id": 15032, "height": 512}, {"file_name": "ADE_train_00015034.jpg", "width": 683, "id": 15033, "height": 512}, {"file_name": "ADE_train_00015035.jpg", "width": 683, "id": 15034, "height": 512}, {"file_name": "ADE_train_00015036.jpg", "width": 683, "id": 15035, "height": 512}, {"file_name": "ADE_train_00015037.jpg", "width": 683, "id": 15036, "height": 512}, {"file_name": "ADE_train_00015038.jpg", "width": 683, "id": 15037, "height": 512}, {"file_name": "ADE_train_00015039.jpg", "width": 683, "id": 15038, "height": 512}, {"file_name": "ADE_train_00015040.jpg", "width": 683, "id": 15039, "height": 512}, {"file_name": "ADE_train_00015041.jpg", "width": 683, "id": 15040, "height": 512}, {"file_name": "ADE_train_00015042.jpg", "width": 683, "id": 15041, "height": 512}, {"file_name": "ADE_train_00015043.jpg", "width": 683, "id": 15042, "height": 512}, {"file_name": "ADE_train_00015044.jpg", "width": 683, "id": 15043, "height": 512}, {"file_name": "ADE_train_00015045.jpg", "width": 683, "id": 15044, "height": 512}, {"file_name": "ADE_train_00015046.jpg", "width": 683, "id": 15045, "height": 512}, {"file_name": "ADE_train_00015047.jpg", "width": 683, "id": 15046, "height": 512}, {"file_name": "ADE_train_00015048.jpg", "width": 683, "id": 15047, "height": 512}, {"file_name": "ADE_train_00015049.jpg", "width": 683, "id": 15048, "height": 512}, {"file_name": "ADE_train_00015050.jpg", "width": 683, "id": 15049, "height": 512}, {"file_name": "ADE_train_00015051.jpg", "width": 683, "id": 15050, "height": 512}, {"file_name": "ADE_train_00015052.jpg", "width": 683, "id": 15051, "height": 512}, {"file_name": "ADE_train_00015053.jpg", "width": 683, "id": 15052, "height": 512}, {"file_name": "ADE_train_00015054.jpg", "width": 683, "id": 15053, "height": 512}, {"file_name": "ADE_train_00015055.jpg", "width": 683, "id": 15054, "height": 512}, {"file_name": "ADE_train_00015056.jpg", "width": 683, "id": 15055, "height": 512}, {"file_name": "ADE_train_00015057.jpg", "width": 683, "id": 15056, "height": 512}, {"file_name": "ADE_train_00015058.jpg", "width": 683, "id": 15057, "height": 512}, {"file_name": "ADE_train_00015059.jpg", "width": 683, "id": 15058, "height": 512}, {"file_name": "ADE_train_00015060.jpg", "width": 683, "id": 15059, "height": 512}, {"file_name": "ADE_train_00015061.jpg", "width": 683, "id": 15060, "height": 512}, {"file_name": "ADE_train_00015062.jpg", "width": 683, "id": 15061, "height": 512}, {"file_name": "ADE_train_00015063.jpg", "width": 683, "id": 15062, "height": 512}, {"file_name": "ADE_train_00015064.jpg", "width": 683, "id": 15063, "height": 512}, {"file_name": "ADE_train_00015065.jpg", "width": 683, "id": 15064, "height": 512}, {"file_name": "ADE_train_00015066.jpg", "width": 683, "id": 15065, "height": 512}, {"file_name": "ADE_train_00015067.jpg", "width": 683, "id": 15066, "height": 512}, {"file_name": "ADE_train_00015068.jpg", "width": 683, "id": 15067, "height": 512}, {"file_name": "ADE_train_00015069.jpg", "width": 683, "id": 15068, "height": 512}, {"file_name": "ADE_train_00015070.jpg", "width": 683, "id": 15069, "height": 512}, {"file_name": "ADE_train_00015071.jpg", "width": 683, "id": 15070, "height": 512}, {"file_name": "ADE_train_00015072.jpg", "width": 256, "id": 15071, "height": 256}, {"file_name": "ADE_train_00015073.jpg", "width": 256, "id": 15072, "height": 256}, {"file_name": "ADE_train_00015074.jpg", "width": 256, "id": 15073, "height": 256}, {"file_name": "ADE_train_00015075.jpg", "width": 256, "id": 15074, "height": 256}, {"file_name": "ADE_train_00015076.jpg", "width": 256, "id": 15075, "height": 256}, {"file_name": "ADE_train_00015077.jpg", "width": 256, "id": 15076, "height": 256}, {"file_name": "ADE_train_00015078.jpg", "width": 256, "id": 15077, "height": 256}, {"file_name": "ADE_train_00015079.jpg", "width": 256, "id": 15078, "height": 256}, {"file_name": "ADE_train_00015080.jpg", "width": 256, "id": 15079, "height": 256}, {"file_name": "ADE_train_00015081.jpg", "width": 480, "id": 15080, "height": 360}, {"file_name": "ADE_train_00015082.jpg", "width": 550, "id": 15081, "height": 412}, {"file_name": "ADE_train_00015083.jpg", "width": 500, "id": 15082, "height": 357}, {"file_name": "ADE_train_00015084.jpg", "width": 640, "id": 15083, "height": 432}, {"file_name": "ADE_train_00015085.jpg", "width": 500, "id": 15084, "height": 331}, {"file_name": "ADE_train_00015086.jpg", "width": 500, "id": 15085, "height": 375}, {"file_name": "ADE_train_00015087.jpg", "width": 682, "id": 15086, "height": 512}, {"file_name": "ADE_train_00015088.jpg", "width": 600, "id": 15087, "height": 450}, {"file_name": "ADE_train_00015089.jpg", "width": 683, "id": 15088, "height": 512}, {"file_name": "ADE_train_00015090.jpg", "width": 573, "id": 15089, "height": 382}, {"file_name": "ADE_train_00015091.jpg", "width": 683, "id": 15090, "height": 512}, {"file_name": "ADE_train_00015092.jpg", "width": 680, "id": 15091, "height": 512}, {"file_name": "ADE_train_00015093.jpg", "width": 640, "id": 15092, "height": 432}, {"file_name": "ADE_train_00015094.jpg", "width": 544, "id": 15093, "height": 338}, {"file_name": "ADE_train_00015095.jpg", "width": 600, "id": 15094, "height": 450}, {"file_name": "ADE_train_00015096.jpg", "width": 300, "id": 15095, "height": 237}, {"file_name": "ADE_train_00015097.jpg", "width": 550, "id": 15096, "height": 365}, {"file_name": "ADE_train_00015098.jpg", "width": 640, "id": 15097, "height": 480}, {"file_name": "ADE_train_00015099.jpg", "width": 410, "id": 15098, "height": 285}, {"file_name": "ADE_train_00015100.jpg", "width": 600, "id": 15099, "height": 285}, {"file_name": "ADE_train_00015101.jpg", "width": 480, "id": 15100, "height": 360}, {"file_name": "ADE_train_00015102.jpg", "width": 224, "id": 15101, "height": 300}, {"file_name": "ADE_train_00015103.jpg", "width": 512, "id": 15102, "height": 683}, {"file_name": "ADE_train_00015104.jpg", "width": 320, "id": 15103, "height": 227}, {"file_name": "ADE_train_00015105.jpg", "width": 400, "id": 15104, "height": 240}, {"file_name": "ADE_train_00015106.jpg", "width": 540, "id": 15105, "height": 414}, {"file_name": "ADE_train_00015107.jpg", "width": 464, "id": 15106, "height": 238}, {"file_name": "ADE_train_00015108.jpg", "width": 640, "id": 15107, "height": 480}, {"file_name": "ADE_train_00015109.jpg", "width": 700, "id": 15108, "height": 466}, {"file_name": "ADE_train_00015110.jpg", "width": 640, "id": 15109, "height": 480}, {"file_name": "ADE_train_00015111.jpg", "width": 683, "id": 15110, "height": 512}, {"file_name": "ADE_train_00015112.jpg", "width": 650, "id": 15111, "height": 438}, {"file_name": "ADE_train_00015113.jpg", "width": 683, "id": 15112, "height": 512}, {"file_name": "ADE_train_00015114.jpg", "width": 683, "id": 15113, "height": 512}, {"file_name": "ADE_train_00015115.jpg", "width": 683, "id": 15114, "height": 512}, {"file_name": "ADE_train_00015116.jpg", "width": 683, "id": 15115, "height": 512}, {"file_name": "ADE_train_00015117.jpg", "width": 683, "id": 15116, "height": 512}, {"file_name": "ADE_train_00015118.jpg", "width": 683, "id": 15117, "height": 512}, {"file_name": "ADE_train_00015119.jpg", "width": 683, "id": 15118, "height": 512}, {"file_name": "ADE_train_00015120.jpg", "width": 683, "id": 15119, "height": 512}, {"file_name": "ADE_train_00015121.jpg", "width": 683, "id": 15120, "height": 512}, {"file_name": "ADE_train_00015122.jpg", "width": 683, "id": 15121, "height": 512}, {"file_name": "ADE_train_00015123.jpg", "width": 683, "id": 15122, "height": 512}, {"file_name": "ADE_train_00015124.jpg", "width": 683, "id": 15123, "height": 512}, {"file_name": "ADE_train_00015125.jpg", "width": 683, "id": 15124, "height": 512}, {"file_name": "ADE_train_00015126.jpg", "width": 683, "id": 15125, "height": 512}, {"file_name": "ADE_train_00015127.jpg", "width": 683, "id": 15126, "height": 512}, {"file_name": "ADE_train_00015128.jpg", "width": 683, "id": 15127, "height": 512}, {"file_name": "ADE_train_00015129.jpg", "width": 683, "id": 15128, "height": 512}, {"file_name": "ADE_train_00015130.jpg", "width": 683, "id": 15129, "height": 512}, {"file_name": "ADE_train_00015131.jpg", "width": 683, "id": 15130, "height": 512}, {"file_name": "ADE_train_00015132.jpg", "width": 683, "id": 15131, "height": 512}, {"file_name": "ADE_train_00015133.jpg", "width": 683, "id": 15132, "height": 512}, {"file_name": "ADE_train_00015134.jpg", "width": 683, "id": 15133, "height": 512}, {"file_name": "ADE_train_00015135.jpg", "width": 683, "id": 15134, "height": 512}, {"file_name": "ADE_train_00015136.jpg", "width": 683, "id": 15135, "height": 512}, {"file_name": "ADE_train_00015137.jpg", "width": 683, "id": 15136, "height": 512}, {"file_name": "ADE_train_00015138.jpg", "width": 683, "id": 15137, "height": 512}, {"file_name": "ADE_train_00015139.jpg", "width": 683, "id": 15138, "height": 512}, {"file_name": "ADE_train_00015140.jpg", "width": 683, "id": 15139, "height": 512}, {"file_name": "ADE_train_00015141.jpg", "width": 683, "id": 15140, "height": 512}, {"file_name": "ADE_train_00015142.jpg", "width": 683, "id": 15141, "height": 512}, {"file_name": "ADE_train_00015143.jpg", "width": 683, "id": 15142, "height": 512}, {"file_name": "ADE_train_00015144.jpg", "width": 683, "id": 15143, "height": 512}, {"file_name": "ADE_train_00015145.jpg", "width": 683, "id": 15144, "height": 512}, {"file_name": "ADE_train_00015146.jpg", "width": 683, "id": 15145, "height": 512}, {"file_name": "ADE_train_00015147.jpg", "width": 683, "id": 15146, "height": 512}, {"file_name": "ADE_train_00015148.jpg", "width": 683, "id": 15147, "height": 512}, {"file_name": "ADE_train_00015149.jpg", "width": 400, "id": 15148, "height": 300}, {"file_name": "ADE_train_00015150.jpg", "width": 480, "id": 15149, "height": 640}, {"file_name": "ADE_train_00015151.jpg", "width": 450, "id": 15150, "height": 338}, {"file_name": "ADE_train_00015152.jpg", "width": 771, "id": 15151, "height": 512}, {"file_name": "ADE_train_00015153.jpg", "width": 310, "id": 15152, "height": 233}, {"file_name": "ADE_train_00015154.jpg", "width": 606, "id": 15153, "height": 512}, {"file_name": "ADE_train_00015155.jpg", "width": 717, "id": 15154, "height": 512}, {"file_name": "ADE_train_00015156.jpg", "width": 640, "id": 15155, "height": 480}, {"file_name": "ADE_train_00015157.jpg", "width": 500, "id": 15156, "height": 604}, {"file_name": "ADE_train_00015158.jpg", "width": 300, "id": 15157, "height": 400}, {"file_name": "ADE_train_00015159.jpg", "width": 640, "id": 15158, "height": 480}, {"file_name": "ADE_train_00015160.jpg", "width": 450, "id": 15159, "height": 336}, {"file_name": "ADE_train_00015161.jpg", "width": 450, "id": 15160, "height": 299}, {"file_name": "ADE_train_00015162.jpg", "width": 549, "id": 15161, "height": 352}, {"file_name": "ADE_train_00015163.jpg", "width": 640, "id": 15162, "height": 480}, {"file_name": "ADE_train_00015164.jpg", "width": 391, "id": 15163, "height": 600}, {"file_name": "ADE_train_00015165.jpg", "width": 683, "id": 15164, "height": 512}, {"file_name": "ADE_train_00015166.jpg", "width": 300, "id": 15165, "height": 225}, {"file_name": "ADE_train_00015167.jpg", "width": 512, "id": 15166, "height": 683}, {"file_name": "ADE_train_00015168.jpg", "width": 593, "id": 15167, "height": 512}, {"file_name": "ADE_train_00015169.jpg", "width": 400, "id": 15168, "height": 283}, {"file_name": "ADE_train_00015170.jpg", "width": 375, "id": 15169, "height": 479}, {"file_name": "ADE_train_00015171.jpg", "width": 250, "id": 15170, "height": 257}, {"file_name": "ADE_train_00015172.jpg", "width": 683, "id": 15171, "height": 512}, {"file_name": "ADE_train_00015173.jpg", "width": 640, "id": 15172, "height": 426}, {"file_name": "ADE_train_00015174.jpg", "width": 464, "id": 15173, "height": 650}, {"file_name": "ADE_train_00015175.jpg", "width": 450, "id": 15174, "height": 293}, {"file_name": "ADE_train_00015176.jpg", "width": 683, "id": 15175, "height": 512}, {"file_name": "ADE_train_00015177.jpg", "width": 320, "id": 15176, "height": 240}, {"file_name": "ADE_train_00015178.jpg", "width": 284, "id": 15177, "height": 370}, {"file_name": "ADE_train_00015179.jpg", "width": 450, "id": 15178, "height": 340}, {"file_name": "ADE_train_00015180.jpg", "width": 640, "id": 15179, "height": 480}, {"file_name": "ADE_train_00015181.jpg", "width": 768, "id": 15180, "height": 512}, {"file_name": "ADE_train_00015182.jpg", "width": 320, "id": 15181, "height": 240}, {"file_name": "ADE_train_00015183.jpg", "width": 305, "id": 15182, "height": 370}, {"file_name": "ADE_train_00015184.jpg", "width": 400, "id": 15183, "height": 267}, {"file_name": "ADE_train_00015185.jpg", "width": 370, "id": 15184, "height": 275}, {"file_name": "ADE_train_00015186.jpg", "width": 470, "id": 15185, "height": 353}, {"file_name": "ADE_train_00015187.jpg", "width": 683, "id": 15186, "height": 512}, {"file_name": "ADE_train_00015188.jpg", "width": 512, "id": 15187, "height": 683}, {"file_name": "ADE_train_00015189.jpg", "width": 356, "id": 15188, "height": 247}, {"file_name": "ADE_train_00015190.jpg", "width": 356, "id": 15189, "height": 247}, {"file_name": "ADE_train_00015191.jpg", "width": 316, "id": 15190, "height": 250}, {"file_name": "ADE_train_00015192.jpg", "width": 300, "id": 15191, "height": 300}, {"file_name": "ADE_train_00015193.jpg", "width": 300, "id": 15192, "height": 245}, {"file_name": "ADE_train_00015194.jpg", "width": 350, "id": 15193, "height": 234}, {"file_name": "ADE_train_00015195.jpg", "width": 341, "id": 15194, "height": 256}, {"file_name": "ADE_train_00015196.jpg", "width": 683, "id": 15195, "height": 512}, {"file_name": "ADE_train_00015197.jpg", "width": 300, "id": 15196, "height": 232}, {"file_name": "ADE_train_00015198.jpg", "width": 308, "id": 15197, "height": 280}, {"file_name": "ADE_train_00015199.jpg", "width": 300, "id": 15198, "height": 223}, {"file_name": "ADE_train_00015200.jpg", "width": 683, "id": 15199, "height": 512}, {"file_name": "ADE_train_00015201.jpg", "width": 300, "id": 15200, "height": 225}, {"file_name": "ADE_train_00015202.jpg", "width": 683, "id": 15201, "height": 512}, {"file_name": "ADE_train_00015203.jpg", "width": 768, "id": 15202, "height": 512}, {"file_name": "ADE_train_00015204.jpg", "width": 300, "id": 15203, "height": 225}, {"file_name": "ADE_train_00015205.jpg", "width": 300, "id": 15204, "height": 225}, {"file_name": "ADE_train_00015206.jpg", "width": 683, "id": 15205, "height": 512}, {"file_name": "ADE_train_00015207.jpg", "width": 356, "id": 15206, "height": 247}, {"file_name": "ADE_train_00015208.jpg", "width": 683, "id": 15207, "height": 512}, {"file_name": "ADE_train_00015209.jpg", "width": 360, "id": 15208, "height": 250}, {"file_name": "ADE_train_00015210.jpg", "width": 768, "id": 15209, "height": 512}, {"file_name": "ADE_train_00015211.jpg", "width": 768, "id": 15210, "height": 512}, {"file_name": "ADE_train_00015212.jpg", "width": 341, "id": 15211, "height": 256}, {"file_name": "ADE_train_00015213.jpg", "width": 684, "id": 15212, "height": 512}, {"file_name": "ADE_train_00015214.jpg", "width": 298, "id": 15213, "height": 222}, {"file_name": "ADE_train_00015215.jpg", "width": 340, "id": 15214, "height": 255}, {"file_name": "ADE_train_00015216.jpg", "width": 300, "id": 15215, "height": 225}, {"file_name": "ADE_train_00015217.jpg", "width": 683, "id": 15216, "height": 512}, {"file_name": "ADE_train_00015218.jpg", "width": 765, "id": 15217, "height": 512}, {"file_name": "ADE_train_00015219.jpg", "width": 683, "id": 15218, "height": 512}, {"file_name": "ADE_train_00015220.jpg", "width": 230, "id": 15219, "height": 288}, {"file_name": "ADE_train_00015221.jpg", "width": 679, "id": 15220, "height": 512}, {"file_name": "ADE_train_00015222.jpg", "width": 683, "id": 15221, "height": 512}, {"file_name": "ADE_train_00015223.jpg", "width": 657, "id": 15222, "height": 510}, {"file_name": "ADE_train_00015224.jpg", "width": 640, "id": 15223, "height": 480}, {"file_name": "ADE_train_00015225.jpg", "width": 300, "id": 15224, "height": 250}, {"file_name": "ADE_train_00015226.jpg", "width": 326, "id": 15225, "height": 217}, {"file_name": "ADE_train_00015227.jpg", "width": 300, "id": 15226, "height": 180}, {"file_name": "ADE_train_00015228.jpg", "width": 456, "id": 15227, "height": 341}, {"file_name": "ADE_train_00015229.jpg", "width": 256, "id": 15228, "height": 256}, {"file_name": "ADE_train_00015230.jpg", "width": 256, "id": 15229, "height": 256}, {"file_name": "ADE_train_00015231.jpg", "width": 256, "id": 15230, "height": 256}, {"file_name": "ADE_train_00015232.jpg", "width": 256, "id": 15231, "height": 256}, {"file_name": "ADE_train_00015233.jpg", "width": 256, "id": 15232, "height": 256}, {"file_name": "ADE_train_00015234.jpg", "width": 256, "id": 15233, "height": 256}, {"file_name": "ADE_train_00015235.jpg", "width": 400, "id": 15234, "height": 290}, {"file_name": "ADE_train_00015236.jpg", "width": 256, "id": 15235, "height": 256}, {"file_name": "ADE_train_00015237.jpg", "width": 256, "id": 15236, "height": 256}, {"file_name": "ADE_train_00015238.jpg", "width": 256, "id": 15237, "height": 256}, {"file_name": "ADE_train_00015239.jpg", "width": 1001, "id": 15238, "height": 512}, {"file_name": "ADE_train_00015240.jpg", "width": 768, "id": 15239, "height": 512}, {"file_name": "ADE_train_00015241.jpg", "width": 256, "id": 15240, "height": 256}, {"file_name": "ADE_train_00015242.jpg", "width": 256, "id": 15241, "height": 256}, {"file_name": "ADE_train_00015243.jpg", "width": 256, "id": 15242, "height": 256}, {"file_name": "ADE_train_00015244.jpg", "width": 800, "id": 15243, "height": 437}, {"file_name": "ADE_train_00015245.jpg", "width": 256, "id": 15244, "height": 256}, {"file_name": "ADE_train_00015246.jpg", "width": 256, "id": 15245, "height": 256}, {"file_name": "ADE_train_00015247.jpg", "width": 516, "id": 15246, "height": 348}, {"file_name": "ADE_train_00015248.jpg", "width": 450, "id": 15247, "height": 270}, {"file_name": "ADE_train_00015249.jpg", "width": 256, "id": 15248, "height": 256}, {"file_name": "ADE_train_00015250.jpg", "width": 256, "id": 15249, "height": 256}, {"file_name": "ADE_train_00015251.jpg", "width": 770, "id": 15250, "height": 512}, {"file_name": "ADE_train_00015252.jpg", "width": 256, "id": 15251, "height": 256}, {"file_name": "ADE_train_00015253.jpg", "width": 682, "id": 15252, "height": 512}, {"file_name": "ADE_train_00015254.jpg", "width": 256, "id": 15253, "height": 256}, {"file_name": "ADE_train_00015255.jpg", "width": 256, "id": 15254, "height": 256}, {"file_name": "ADE_train_00015256.jpg", "width": 256, "id": 15255, "height": 256}, {"file_name": "ADE_train_00015257.jpg", "width": 256, "id": 15256, "height": 256}, {"file_name": "ADE_train_00015258.jpg", "width": 256, "id": 15257, "height": 256}, {"file_name": "ADE_train_00015259.jpg", "width": 256, "id": 15258, "height": 256}, {"file_name": "ADE_train_00015260.jpg", "width": 512, "id": 15259, "height": 684}, {"file_name": "ADE_train_00015261.jpg", "width": 256, "id": 15260, "height": 256}, {"file_name": "ADE_train_00015262.jpg", "width": 256, "id": 15261, "height": 256}, {"file_name": "ADE_train_00015263.jpg", "width": 683, "id": 15262, "height": 512}, {"file_name": "ADE_train_00015264.jpg", "width": 838, "id": 15263, "height": 512}, {"file_name": "ADE_train_00015265.jpg", "width": 683, "id": 15264, "height": 512}, {"file_name": "ADE_train_00015266.jpg", "width": 961, "id": 15265, "height": 512}, {"file_name": "ADE_train_00015267.jpg", "width": 683, "id": 15266, "height": 512}, {"file_name": "ADE_train_00015268.jpg", "width": 683, "id": 15267, "height": 512}, {"file_name": "ADE_train_00015269.jpg", "width": 683, "id": 15268, "height": 512}, {"file_name": "ADE_train_00015270.jpg", "width": 1220, "id": 15269, "height": 512}, {"file_name": "ADE_train_00015271.jpg", "width": 683, "id": 15270, "height": 512}, {"file_name": "ADE_train_00015272.jpg", "width": 683, "id": 15271, "height": 512}, {"file_name": "ADE_train_00015273.jpg", "width": 683, "id": 15272, "height": 512}, {"file_name": "ADE_train_00015274.jpg", "width": 683, "id": 15273, "height": 512}, {"file_name": "ADE_train_00015275.jpg", "width": 683, "id": 15274, "height": 512}, {"file_name": "ADE_train_00015276.jpg", "width": 723, "id": 15275, "height": 512}, {"file_name": "ADE_train_00015277.jpg", "width": 769, "id": 15276, "height": 512}, {"file_name": "ADE_train_00015278.jpg", "width": 683, "id": 15277, "height": 512}, {"file_name": "ADE_train_00015279.jpg", "width": 512, "id": 15278, "height": 683}, {"file_name": "ADE_train_00015280.jpg", "width": 683, "id": 15279, "height": 512}, {"file_name": "ADE_train_00015281.jpg", "width": 683, "id": 15280, "height": 512}, {"file_name": "ADE_train_00015282.jpg", "width": 683, "id": 15281, "height": 512}, {"file_name": "ADE_train_00015283.jpg", "width": 679, "id": 15282, "height": 512}, {"file_name": "ADE_train_00015284.jpg", "width": 683, "id": 15283, "height": 512}, {"file_name": "ADE_train_00015285.jpg", "width": 683, "id": 15284, "height": 512}, {"file_name": "ADE_train_00015286.jpg", "width": 683, "id": 15285, "height": 512}, {"file_name": "ADE_train_00015287.jpg", "width": 683, "id": 15286, "height": 512}, {"file_name": "ADE_train_00015288.jpg", "width": 683, "id": 15287, "height": 512}, {"file_name": "ADE_train_00015289.jpg", "width": 718, "id": 15288, "height": 512}, {"file_name": "ADE_train_00015290.jpg", "width": 400, "id": 15289, "height": 300}, {"file_name": "ADE_train_00015291.jpg", "width": 512, "id": 15290, "height": 577}, {"file_name": "ADE_train_00015292.jpg", "width": 500, "id": 15291, "height": 400}, {"file_name": "ADE_train_00015293.jpg", "width": 300, "id": 15292, "height": 200}, {"file_name": "ADE_train_00015294.jpg", "width": 334, "id": 15293, "height": 227}, {"file_name": "ADE_train_00015295.jpg", "width": 640, "id": 15294, "height": 480}, {"file_name": "ADE_train_00015296.jpg", "width": 504, "id": 15295, "height": 378}, {"file_name": "ADE_train_00015297.jpg", "width": 260, "id": 15296, "height": 333}, {"file_name": "ADE_train_00015298.jpg", "width": 293, "id": 15297, "height": 415}, {"file_name": "ADE_train_00015299.jpg", "width": 300, "id": 15298, "height": 225}, {"file_name": "ADE_train_00015300.jpg", "width": 317, "id": 15299, "height": 388}, {"file_name": "ADE_train_00015301.jpg", "width": 683, "id": 15300, "height": 512}, {"file_name": "ADE_train_00015302.jpg", "width": 683, "id": 15301, "height": 512}, {"file_name": "ADE_train_00015303.jpg", "width": 320, "id": 15302, "height": 240}, {"file_name": "ADE_train_00015304.jpg", "width": 683, "id": 15303, "height": 512}, {"file_name": "ADE_train_00015305.jpg", "width": 400, "id": 15304, "height": 280}, {"file_name": "ADE_train_00015306.jpg", "width": 683, "id": 15305, "height": 512}, {"file_name": "ADE_train_00015307.jpg", "width": 300, "id": 15306, "height": 275}, {"file_name": "ADE_train_00015308.jpg", "width": 540, "id": 15307, "height": 405}, {"file_name": "ADE_train_00015309.jpg", "width": 683, "id": 15308, "height": 512}, {"file_name": "ADE_train_00015310.jpg", "width": 688, "id": 15309, "height": 512}, {"file_name": "ADE_train_00015311.jpg", "width": 464, "id": 15310, "height": 285}, {"file_name": "ADE_train_00015312.jpg", "width": 576, "id": 15311, "height": 374}, {"file_name": "ADE_train_00015313.jpg", "width": 350, "id": 15312, "height": 233}, {"file_name": "ADE_train_00015314.jpg", "width": 640, "id": 15313, "height": 480}, {"file_name": "ADE_train_00015315.jpg", "width": 716, "id": 15314, "height": 477}, {"file_name": "ADE_train_00015316.jpg", "width": 300, "id": 15315, "height": 400}, {"file_name": "ADE_train_00015317.jpg", "width": 354, "id": 15316, "height": 265}, {"file_name": "ADE_train_00015318.jpg", "width": 278, "id": 15317, "height": 371}, {"file_name": "ADE_train_00015319.jpg", "width": 350, "id": 15318, "height": 263}, {"file_name": "ADE_train_00015320.jpg", "width": 360, "id": 15319, "height": 270}, {"file_name": "ADE_train_00015321.jpg", "width": 370, "id": 15320, "height": 295}, {"file_name": "ADE_train_00015322.jpg", "width": 500, "id": 15321, "height": 300}, {"file_name": "ADE_train_00015323.jpg", "width": 643, "id": 15322, "height": 512}, {"file_name": "ADE_train_00015324.jpg", "width": 493, "id": 15323, "height": 399}, {"file_name": "ADE_train_00015325.jpg", "width": 683, "id": 15324, "height": 512}, {"file_name": "ADE_train_00015326.jpg", "width": 683, "id": 15325, "height": 512}, {"file_name": "ADE_train_00015327.jpg", "width": 683, "id": 15326, "height": 512}, {"file_name": "ADE_train_00015328.jpg", "width": 380, "id": 15327, "height": 248}, {"file_name": "ADE_train_00015329.jpg", "width": 640, "id": 15328, "height": 480}, {"file_name": "ADE_train_00015330.jpg", "width": 288, "id": 15329, "height": 346}, {"file_name": "ADE_train_00015331.jpg", "width": 512, "id": 15330, "height": 341}, {"file_name": "ADE_train_00015332.jpg", "width": 317, "id": 15331, "height": 208}, {"file_name": "ADE_train_00015333.jpg", "width": 400, "id": 15332, "height": 301}, {"file_name": "ADE_train_00015334.jpg", "width": 300, "id": 15333, "height": 210}, {"file_name": "ADE_train_00015335.jpg", "width": 683, "id": 15334, "height": 512}, {"file_name": "ADE_train_00015336.jpg", "width": 683, "id": 15335, "height": 512}, {"file_name": "ADE_train_00015337.jpg", "width": 683, "id": 15336, "height": 512}, {"file_name": "ADE_train_00015338.jpg", "width": 778, "id": 15337, "height": 512}, {"file_name": "ADE_train_00015339.jpg", "width": 684, "id": 15338, "height": 512}, {"file_name": "ADE_train_00015340.jpg", "width": 1191, "id": 15339, "height": 512}, {"file_name": "ADE_train_00015341.jpg", "width": 768, "id": 15340, "height": 512}, {"file_name": "ADE_train_00015342.jpg", "width": 272, "id": 15341, "height": 204}, {"file_name": "ADE_train_00015343.jpg", "width": 680, "id": 15342, "height": 512}, {"file_name": "ADE_train_00015344.jpg", "width": 890, "id": 15343, "height": 512}, {"file_name": "ADE_train_00015345.jpg", "width": 289, "id": 15344, "height": 240}, {"file_name": "ADE_train_00015346.jpg", "width": 768, "id": 15345, "height": 512}, {"file_name": "ADE_train_00015347.jpg", "width": 393, "id": 15346, "height": 292}, {"file_name": "ADE_train_00015348.jpg", "width": 400, "id": 15347, "height": 300}, {"file_name": "ADE_train_00015349.jpg", "width": 320, "id": 15348, "height": 240}, {"file_name": "ADE_train_00015350.jpg", "width": 683, "id": 15349, "height": 512}, {"file_name": "ADE_train_00015351.jpg", "width": 683, "id": 15350, "height": 512}, {"file_name": "ADE_train_00015352.jpg", "width": 256, "id": 15351, "height": 256}, {"file_name": "ADE_train_00015353.jpg", "width": 320, "id": 15352, "height": 241}, {"file_name": "ADE_train_00015354.jpg", "width": 768, "id": 15353, "height": 512}, {"file_name": "ADE_train_00015355.jpg", "width": 683, "id": 15354, "height": 512}, {"file_name": "ADE_train_00015356.jpg", "width": 683, "id": 15355, "height": 512}, {"file_name": "ADE_train_00015357.jpg", "width": 654, "id": 15356, "height": 512}, {"file_name": "ADE_train_00015358.jpg", "width": 683, "id": 15357, "height": 512}, {"file_name": "ADE_train_00015359.jpg", "width": 675, "id": 15358, "height": 512}, {"file_name": "ADE_train_00015360.jpg", "width": 683, "id": 15359, "height": 512}, {"file_name": "ADE_train_00015361.jpg", "width": 683, "id": 15360, "height": 512}, {"file_name": "ADE_train_00015362.jpg", "width": 683, "id": 15361, "height": 512}, {"file_name": "ADE_train_00015363.jpg", "width": 683, "id": 15362, "height": 512}, {"file_name": "ADE_train_00015364.jpg", "width": 772, "id": 15363, "height": 512}, {"file_name": "ADE_train_00015365.jpg", "width": 987, "id": 15364, "height": 512}, {"file_name": "ADE_train_00015366.jpg", "width": 683, "id": 15365, "height": 512}, {"file_name": "ADE_train_00015367.jpg", "width": 683, "id": 15366, "height": 512}, {"file_name": "ADE_train_00015368.jpg", "width": 683, "id": 15367, "height": 512}, {"file_name": "ADE_train_00015369.jpg", "width": 683, "id": 15368, "height": 512}, {"file_name": "ADE_train_00015370.jpg", "width": 682, "id": 15369, "height": 512}, {"file_name": "ADE_train_00015371.jpg", "width": 765, "id": 15370, "height": 512}, {"file_name": "ADE_train_00015372.jpg", "width": 795, "id": 15371, "height": 512}, {"file_name": "ADE_train_00015373.jpg", "width": 683, "id": 15372, "height": 512}, {"file_name": "ADE_train_00015374.jpg", "width": 683, "id": 15373, "height": 512}, {"file_name": "ADE_train_00015375.jpg", "width": 1001, "id": 15374, "height": 512}, {"file_name": "ADE_train_00015376.jpg", "width": 683, "id": 15375, "height": 512}, {"file_name": "ADE_train_00015377.jpg", "width": 683, "id": 15376, "height": 512}, {"file_name": "ADE_train_00015378.jpg", "width": 805, "id": 15377, "height": 512}, {"file_name": "ADE_train_00015379.jpg", "width": 756, "id": 15378, "height": 512}, {"file_name": "ADE_train_00015380.jpg", "width": 683, "id": 15379, "height": 512}, {"file_name": "ADE_train_00015381.jpg", "width": 683, "id": 15380, "height": 512}, {"file_name": "ADE_train_00015382.jpg", "width": 770, "id": 15381, "height": 512}, {"file_name": "ADE_train_00015383.jpg", "width": 990, "id": 15382, "height": 512}, {"file_name": "ADE_train_00015384.jpg", "width": 683, "id": 15383, "height": 512}, {"file_name": "ADE_train_00015385.jpg", "width": 683, "id": 15384, "height": 512}, {"file_name": "ADE_train_00015386.jpg", "width": 400, "id": 15385, "height": 300}, {"file_name": "ADE_train_00015387.jpg", "width": 250, "id": 15386, "height": 331}, {"file_name": "ADE_train_00015388.jpg", "width": 345, "id": 15387, "height": 340}, {"file_name": "ADE_train_00015389.jpg", "width": 400, "id": 15388, "height": 300}, {"file_name": "ADE_train_00015390.jpg", "width": 475, "id": 15389, "height": 356}, {"file_name": "ADE_train_00015391.jpg", "width": 350, "id": 15390, "height": 269}, {"file_name": "ADE_train_00015392.jpg", "width": 683, "id": 15391, "height": 512}, {"file_name": "ADE_train_00015393.jpg", "width": 683, "id": 15392, "height": 512}, {"file_name": "ADE_train_00015394.jpg", "width": 335, "id": 15393, "height": 260}, {"file_name": "ADE_train_00015395.jpg", "width": 400, "id": 15394, "height": 266}, {"file_name": "ADE_train_00015396.jpg", "width": 683, "id": 15395, "height": 512}, {"file_name": "ADE_train_00015397.jpg", "width": 280, "id": 15396, "height": 234}, {"file_name": "ADE_train_00015398.jpg", "width": 400, "id": 15397, "height": 300}, {"file_name": "ADE_train_00015399.jpg", "width": 500, "id": 15398, "height": 334}, {"file_name": "ADE_train_00015400.jpg", "width": 683, "id": 15399, "height": 512}, {"file_name": "ADE_train_00015401.jpg", "width": 640, "id": 15400, "height": 480}, {"file_name": "ADE_train_00015402.jpg", "width": 500, "id": 15401, "height": 375}, {"file_name": "ADE_train_00015403.jpg", "width": 448, "id": 15402, "height": 336}, {"file_name": "ADE_train_00015404.jpg", "width": 682, "id": 15403, "height": 512}, {"file_name": "ADE_train_00015405.jpg", "width": 400, "id": 15404, "height": 300}, {"file_name": "ADE_train_00015406.jpg", "width": 400, "id": 15405, "height": 321}, {"file_name": "ADE_train_00015407.jpg", "width": 640, "id": 15406, "height": 480}, {"file_name": "ADE_train_00015408.jpg", "width": 435, "id": 15407, "height": 295}, {"file_name": "ADE_train_00015409.jpg", "width": 350, "id": 15408, "height": 233}, {"file_name": "ADE_train_00015410.jpg", "width": 512, "id": 15409, "height": 580}, {"file_name": "ADE_train_00015411.jpg", "width": 683, "id": 15410, "height": 512}, {"file_name": "ADE_train_00015412.jpg", "width": 683, "id": 15411, "height": 512}, {"file_name": "ADE_train_00015413.jpg", "width": 250, "id": 15412, "height": 235}, {"file_name": "ADE_train_00015414.jpg", "width": 683, "id": 15413, "height": 512}, {"file_name": "ADE_train_00015415.jpg", "width": 320, "id": 15414, "height": 240}, {"file_name": "ADE_train_00015416.jpg", "width": 683, "id": 15415, "height": 512}, {"file_name": "ADE_train_00015417.jpg", "width": 320, "id": 15416, "height": 240}, {"file_name": "ADE_train_00015418.jpg", "width": 768, "id": 15417, "height": 512}, {"file_name": "ADE_train_00015419.jpg", "width": 683, "id": 15418, "height": 512}, {"file_name": "ADE_train_00015420.jpg", "width": 683, "id": 15419, "height": 512}, {"file_name": "ADE_train_00015421.jpg", "width": 683, "id": 15420, "height": 512}, {"file_name": "ADE_train_00015422.jpg", "width": 640, "id": 15421, "height": 480}, {"file_name": "ADE_train_00015423.jpg", "width": 683, "id": 15422, "height": 512}, {"file_name": "ADE_train_00015424.jpg", "width": 640, "id": 15423, "height": 480}, {"file_name": "ADE_train_00015425.jpg", "width": 683, "id": 15424, "height": 512}, {"file_name": "ADE_train_00015426.jpg", "width": 683, "id": 15425, "height": 512}, {"file_name": "ADE_train_00015427.jpg", "width": 683, "id": 15426, "height": 512}, {"file_name": "ADE_train_00015428.jpg", "width": 683, "id": 15427, "height": 512}, {"file_name": "ADE_train_00015429.jpg", "width": 683, "id": 15428, "height": 512}, {"file_name": "ADE_train_00015430.jpg", "width": 683, "id": 15429, "height": 512}, {"file_name": "ADE_train_00015431.jpg", "width": 683, "id": 15430, "height": 512}, {"file_name": "ADE_train_00015432.jpg", "width": 683, "id": 15431, "height": 512}, {"file_name": "ADE_train_00015433.jpg", "width": 683, "id": 15432, "height": 512}, {"file_name": "ADE_train_00015434.jpg", "width": 760, "id": 15433, "height": 512}, {"file_name": "ADE_train_00015435.jpg", "width": 640, "id": 15434, "height": 480}, {"file_name": "ADE_train_00015436.jpg", "width": 683, "id": 15435, "height": 512}, {"file_name": "ADE_train_00015437.jpg", "width": 683, "id": 15436, "height": 512}, {"file_name": "ADE_train_00015438.jpg", "width": 683, "id": 15437, "height": 512}, {"file_name": "ADE_train_00015439.jpg", "width": 683, "id": 15438, "height": 512}, {"file_name": "ADE_train_00015440.jpg", "width": 683, "id": 15439, "height": 512}, {"file_name": "ADE_train_00015441.jpg", "width": 683, "id": 15440, "height": 512}, {"file_name": "ADE_train_00015442.jpg", "width": 683, "id": 15441, "height": 512}, {"file_name": "ADE_train_00015443.jpg", "width": 323, "id": 15442, "height": 202}, {"file_name": "ADE_train_00015444.jpg", "width": 322, "id": 15443, "height": 218}, {"file_name": "ADE_train_00015445.jpg", "width": 300, "id": 15444, "height": 205}, {"file_name": "ADE_train_00015446.jpg", "width": 442, "id": 15445, "height": 298}, {"file_name": "ADE_train_00015447.jpg", "width": 500, "id": 15446, "height": 327}, {"file_name": "ADE_train_00015448.jpg", "width": 311, "id": 15447, "height": 187}, {"file_name": "ADE_train_00015449.jpg", "width": 683, "id": 15448, "height": 512}, {"file_name": "ADE_train_00015450.jpg", "width": 300, "id": 15449, "height": 269}, {"file_name": "ADE_train_00015451.jpg", "width": 683, "id": 15450, "height": 512}, {"file_name": "ADE_train_00015452.jpg", "width": 250, "id": 15451, "height": 333}, {"file_name": "ADE_train_00015453.jpg", "width": 683, "id": 15452, "height": 512}, {"file_name": "ADE_train_00015454.jpg", "width": 336, "id": 15453, "height": 292}, {"file_name": "ADE_train_00015455.jpg", "width": 400, "id": 15454, "height": 300}, {"file_name": "ADE_train_00015456.jpg", "width": 512, "id": 15455, "height": 742}, {"file_name": "ADE_train_00015457.jpg", "width": 400, "id": 15456, "height": 600}, {"file_name": "ADE_train_00015458.jpg", "width": 500, "id": 15457, "height": 458}, {"file_name": "ADE_train_00015459.jpg", "width": 512, "id": 15458, "height": 701}, {"file_name": "ADE_train_00015460.jpg", "width": 400, "id": 15459, "height": 600}, {"file_name": "ADE_train_00015461.jpg", "width": 491, "id": 15460, "height": 665}, {"file_name": "ADE_train_00015462.jpg", "width": 640, "id": 15461, "height": 480}, {"file_name": "ADE_train_00015463.jpg", "width": 288, "id": 15462, "height": 432}, {"file_name": "ADE_train_00015464.jpg", "width": 700, "id": 15463, "height": 498}, {"file_name": "ADE_train_00015465.jpg", "width": 641, "id": 15464, "height": 512}, {"file_name": "ADE_train_00015466.jpg", "width": 320, "id": 15465, "height": 246}, {"file_name": "ADE_train_00015467.jpg", "width": 518, "id": 15466, "height": 389}, {"file_name": "ADE_train_00015468.jpg", "width": 641, "id": 15467, "height": 512}, {"file_name": "ADE_train_00015469.jpg", "width": 350, "id": 15468, "height": 277}, {"file_name": "ADE_train_00015470.jpg", "width": 471, "id": 15469, "height": 326}, {"file_name": "ADE_train_00015471.jpg", "width": 768, "id": 15470, "height": 512}, {"file_name": "ADE_train_00015472.jpg", "width": 400, "id": 15471, "height": 300}, {"file_name": "ADE_train_00015473.jpg", "width": 640, "id": 15472, "height": 480}, {"file_name": "ADE_train_00015474.jpg", "width": 400, "id": 15473, "height": 300}, {"file_name": "ADE_train_00015475.jpg", "width": 683, "id": 15474, "height": 512}, {"file_name": "ADE_train_00015476.jpg", "width": 312, "id": 15475, "height": 235}, {"file_name": "ADE_train_00015477.jpg", "width": 390, "id": 15476, "height": 285}, {"file_name": "ADE_train_00015478.jpg", "width": 835, "id": 15477, "height": 500}, {"file_name": "ADE_train_00015479.jpg", "width": 360, "id": 15478, "height": 240}, {"file_name": "ADE_train_00015480.jpg", "width": 351, "id": 15479, "height": 221}, {"file_name": "ADE_train_00015481.jpg", "width": 683, "id": 15480, "height": 512}, {"file_name": "ADE_train_00015482.jpg", "width": 512, "id": 15481, "height": 384}, {"file_name": "ADE_train_00015483.jpg", "width": 640, "id": 15482, "height": 480}, {"file_name": "ADE_train_00015484.jpg", "width": 768, "id": 15483, "height": 512}, {"file_name": "ADE_train_00015485.jpg", "width": 408, "id": 15484, "height": 270}, {"file_name": "ADE_train_00015486.jpg", "width": 500, "id": 15485, "height": 375}, {"file_name": "ADE_train_00015487.jpg", "width": 400, "id": 15486, "height": 300}, {"file_name": "ADE_train_00015488.jpg", "width": 325, "id": 15487, "height": 216}, {"file_name": "ADE_train_00015489.jpg", "width": 758, "id": 15488, "height": 512}, {"file_name": "ADE_train_00015490.jpg", "width": 715, "id": 15489, "height": 500}, {"file_name": "ADE_train_00015491.jpg", "width": 290, "id": 15490, "height": 218}, {"file_name": "ADE_train_00015492.jpg", "width": 288, "id": 15491, "height": 214}, {"file_name": "ADE_train_00015493.jpg", "width": 300, "id": 15492, "height": 225}, {"file_name": "ADE_train_00015494.jpg", "width": 768, "id": 15493, "height": 512}, {"file_name": "ADE_train_00015495.jpg", "width": 512, "id": 15494, "height": 683}, {"file_name": "ADE_train_00015496.jpg", "width": 576, "id": 15495, "height": 512}, {"file_name": "ADE_train_00015497.jpg", "width": 449, "id": 15496, "height": 680}, {"file_name": "ADE_train_00015498.jpg", "width": 300, "id": 15497, "height": 290}, {"file_name": "ADE_train_00015499.jpg", "width": 683, "id": 15498, "height": 512}, {"file_name": "ADE_train_00015500.jpg", "width": 340, "id": 15499, "height": 255}, {"file_name": "ADE_train_00015501.jpg", "width": 640, "id": 15500, "height": 480}, {"file_name": "ADE_train_00015502.jpg", "width": 400, "id": 15501, "height": 300}, {"file_name": "ADE_train_00015503.jpg", "width": 360, "id": 15502, "height": 240}, {"file_name": "ADE_train_00015504.jpg", "width": 752, "id": 15503, "height": 512}, {"file_name": "ADE_train_00015505.jpg", "width": 687, "id": 15504, "height": 458}, {"file_name": "ADE_train_00015506.jpg", "width": 676, "id": 15505, "height": 512}, {"file_name": "ADE_train_00015507.jpg", "width": 512, "id": 15506, "height": 683}, {"file_name": "ADE_train_00015508.jpg", "width": 404, "id": 15507, "height": 274}, {"file_name": "ADE_train_00015509.jpg", "width": 310, "id": 15508, "height": 203}, {"file_name": "ADE_train_00015510.jpg", "width": 684, "id": 15509, "height": 512}, {"file_name": "ADE_train_00015511.jpg", "width": 400, "id": 15510, "height": 267}, {"file_name": "ADE_train_00015512.jpg", "width": 333, "id": 15511, "height": 250}, {"file_name": "ADE_train_00015513.jpg", "width": 640, "id": 15512, "height": 480}, {"file_name": "ADE_train_00015514.jpg", "width": 683, "id": 15513, "height": 512}, {"file_name": "ADE_train_00015515.jpg", "width": 300, "id": 15514, "height": 200}, {"file_name": "ADE_train_00015516.jpg", "width": 690, "id": 15515, "height": 459}, {"file_name": "ADE_train_00015517.jpg", "width": 768, "id": 15516, "height": 512}, {"file_name": "ADE_train_00015518.jpg", "width": 510, "id": 15517, "height": 336}, {"file_name": "ADE_train_00015519.jpg", "width": 320, "id": 15518, "height": 240}, {"file_name": "ADE_train_00015520.jpg", "width": 320, "id": 15519, "height": 214}, {"file_name": "ADE_train_00015521.jpg", "width": 683, "id": 15520, "height": 512}, {"file_name": "ADE_train_00015522.jpg", "width": 320, "id": 15521, "height": 240}, {"file_name": "ADE_train_00015523.jpg", "width": 445, "id": 15522, "height": 292}, {"file_name": "ADE_train_00015524.jpg", "width": 640, "id": 15523, "height": 480}, {"file_name": "ADE_train_00015525.jpg", "width": 450, "id": 15524, "height": 338}, {"file_name": "ADE_train_00015526.jpg", "width": 360, "id": 15525, "height": 250}, {"file_name": "ADE_train_00015527.jpg", "width": 686, "id": 15526, "height": 481}, {"file_name": "ADE_train_00015528.jpg", "width": 690, "id": 15527, "height": 459}, {"file_name": "ADE_train_00015529.jpg", "width": 682, "id": 15528, "height": 512}, {"file_name": "ADE_train_00015530.jpg", "width": 633, "id": 15529, "height": 512}, {"file_name": "ADE_train_00015531.jpg", "width": 683, "id": 15530, "height": 512}, {"file_name": "ADE_train_00015532.jpg", "width": 686, "id": 15531, "height": 481}, {"file_name": "ADE_train_00015533.jpg", "width": 300, "id": 15532, "height": 225}, {"file_name": "ADE_train_00015534.jpg", "width": 358, "id": 15533, "height": 269}, {"file_name": "ADE_train_00015535.jpg", "width": 350, "id": 15534, "height": 262}, {"file_name": "ADE_train_00015536.jpg", "width": 300, "id": 15535, "height": 200}, {"file_name": "ADE_train_00015537.jpg", "width": 250, "id": 15536, "height": 300}, {"file_name": "ADE_train_00015538.jpg", "width": 250, "id": 15537, "height": 204}, {"file_name": "ADE_train_00015539.jpg", "width": 320, "id": 15538, "height": 320}, {"file_name": "ADE_train_00015540.jpg", "width": 300, "id": 15539, "height": 225}, {"file_name": "ADE_train_00015541.jpg", "width": 356, "id": 15540, "height": 238}, {"file_name": "ADE_train_00015542.jpg", "width": 640, "id": 15541, "height": 480}, {"file_name": "ADE_train_00015543.jpg", "width": 320, "id": 15542, "height": 240}, {"file_name": "ADE_train_00015544.jpg", "width": 320, "id": 15543, "height": 212}, {"file_name": "ADE_train_00015545.jpg", "width": 512, "id": 15544, "height": 683}, {"file_name": "ADE_train_00015546.jpg", "width": 683, "id": 15545, "height": 512}, {"file_name": "ADE_train_00015547.jpg", "width": 683, "id": 15546, "height": 512}, {"file_name": "ADE_train_00015548.jpg", "width": 600, "id": 15547, "height": 400}, {"file_name": "ADE_train_00015549.jpg", "width": 683, "id": 15548, "height": 512}, {"file_name": "ADE_train_00015550.jpg", "width": 683, "id": 15549, "height": 512}, {"file_name": "ADE_train_00015551.jpg", "width": 684, "id": 15550, "height": 512}, {"file_name": "ADE_train_00015552.jpg", "width": 684, "id": 15551, "height": 512}, {"file_name": "ADE_train_00015553.jpg", "width": 690, "id": 15552, "height": 459}, {"file_name": "ADE_train_00015554.jpg", "width": 512, "id": 15553, "height": 637}, {"file_name": "ADE_train_00015555.jpg", "width": 789, "id": 15554, "height": 512}, {"file_name": "ADE_train_00015556.jpg", "width": 683, "id": 15555, "height": 512}, {"file_name": "ADE_train_00015557.jpg", "width": 683, "id": 15556, "height": 512}, {"file_name": "ADE_train_00015558.jpg", "width": 400, "id": 15557, "height": 266}, {"file_name": "ADE_train_00015559.jpg", "width": 389, "id": 15558, "height": 286}, {"file_name": "ADE_train_00015560.jpg", "width": 683, "id": 15559, "height": 512}, {"file_name": "ADE_train_00015561.jpg", "width": 683, "id": 15560, "height": 512}, {"file_name": "ADE_train_00015562.jpg", "width": 320, "id": 15561, "height": 240}, {"file_name": "ADE_train_00015563.jpg", "width": 764, "id": 15562, "height": 512}, {"file_name": "ADE_train_00015564.jpg", "width": 683, "id": 15563, "height": 512}, {"file_name": "ADE_train_00015565.jpg", "width": 683, "id": 15564, "height": 512}, {"file_name": "ADE_train_00015566.jpg", "width": 675, "id": 15565, "height": 512}, {"file_name": "ADE_train_00015567.jpg", "width": 784, "id": 15566, "height": 512}, {"file_name": "ADE_train_00015568.jpg", "width": 683, "id": 15567, "height": 512}, {"file_name": "ADE_train_00015569.jpg", "width": 768, "id": 15568, "height": 512}, {"file_name": "ADE_train_00015570.jpg", "width": 400, "id": 15569, "height": 225}, {"file_name": "ADE_train_00015571.jpg", "width": 683, "id": 15570, "height": 512}, {"file_name": "ADE_train_00015572.jpg", "width": 683, "id": 15571, "height": 512}, {"file_name": "ADE_train_00015573.jpg", "width": 683, "id": 15572, "height": 512}, {"file_name": "ADE_train_00015574.jpg", "width": 330, "id": 15573, "height": 232}, {"file_name": "ADE_train_00015575.jpg", "width": 320, "id": 15574, "height": 240}, {"file_name": "ADE_train_00015576.jpg", "width": 332, "id": 15575, "height": 249}, {"file_name": "ADE_train_00015577.jpg", "width": 683, "id": 15576, "height": 512}, {"file_name": "ADE_train_00015578.jpg", "width": 683, "id": 15577, "height": 512}, {"file_name": "ADE_train_00015579.jpg", "width": 280, "id": 15578, "height": 210}, {"file_name": "ADE_train_00015580.jpg", "width": 683, "id": 15579, "height": 512}, {"file_name": "ADE_train_00015581.jpg", "width": 683, "id": 15580, "height": 512}, {"file_name": "ADE_train_00015582.jpg", "width": 320, "id": 15581, "height": 240}, {"file_name": "ADE_train_00015583.jpg", "width": 320, "id": 15582, "height": 240}, {"file_name": "ADE_train_00015584.jpg", "width": 300, "id": 15583, "height": 225}, {"file_name": "ADE_train_00015585.jpg", "width": 683, "id": 15584, "height": 512}, {"file_name": "ADE_train_00015586.jpg", "width": 683, "id": 15585, "height": 512}, {"file_name": "ADE_train_00015587.jpg", "width": 300, "id": 15586, "height": 225}, {"file_name": "ADE_train_00015588.jpg", "width": 753, "id": 15587, "height": 500}, {"file_name": "ADE_train_00015589.jpg", "width": 711, "id": 15588, "height": 512}, {"file_name": "ADE_train_00015590.jpg", "width": 640, "id": 15589, "height": 480}, {"file_name": "ADE_train_00015591.jpg", "width": 500, "id": 15590, "height": 333}, {"file_name": "ADE_train_00015592.jpg", "width": 256, "id": 15591, "height": 256}, {"file_name": "ADE_train_00015593.jpg", "width": 390, "id": 15592, "height": 563}, {"file_name": "ADE_train_00015594.jpg", "width": 512, "id": 15593, "height": 382}, {"file_name": "ADE_train_00015595.jpg", "width": 535, "id": 15594, "height": 300}, {"file_name": "ADE_train_00015596.jpg", "width": 283, "id": 15595, "height": 260}, {"file_name": "ADE_train_00015597.jpg", "width": 500, "id": 15596, "height": 331}, {"file_name": "ADE_train_00015598.jpg", "width": 233, "id": 15597, "height": 350}, {"file_name": "ADE_train_00015599.jpg", "width": 487, "id": 15598, "height": 500}, {"file_name": "ADE_train_00015600.jpg", "width": 766, "id": 15599, "height": 512}, {"file_name": "ADE_train_00015601.jpg", "width": 400, "id": 15600, "height": 229}, {"file_name": "ADE_train_00015602.jpg", "width": 512, "id": 15601, "height": 640}, {"file_name": "ADE_train_00015603.jpg", "width": 640, "id": 15602, "height": 480}, {"file_name": "ADE_train_00015604.jpg", "width": 683, "id": 15603, "height": 512}, {"file_name": "ADE_train_00015605.jpg", "width": 310, "id": 15604, "height": 210}, {"file_name": "ADE_train_00015606.jpg", "width": 338, "id": 15605, "height": 450}, {"file_name": "ADE_train_00015607.jpg", "width": 450, "id": 15606, "height": 338}, {"file_name": "ADE_train_00015608.jpg", "width": 758, "id": 15607, "height": 512}, {"file_name": "ADE_train_00015609.jpg", "width": 683, "id": 15608, "height": 512}, {"file_name": "ADE_train_00015610.jpg", "width": 390, "id": 15609, "height": 315}, {"file_name": "ADE_train_00015611.jpg", "width": 683, "id": 15610, "height": 512}, {"file_name": "ADE_train_00015612.jpg", "width": 980, "id": 15611, "height": 512}, {"file_name": "ADE_train_00015613.jpg", "width": 786, "id": 15612, "height": 512}, {"file_name": "ADE_train_00015614.jpg", "width": 216, "id": 15613, "height": 288}, {"file_name": "ADE_train_00015615.jpg", "width": 540, "id": 15614, "height": 406}, {"file_name": "ADE_train_00015616.jpg", "width": 683, "id": 15615, "height": 512}, {"file_name": "ADE_train_00015617.jpg", "width": 250, "id": 15616, "height": 218}, {"file_name": "ADE_train_00015618.jpg", "width": 320, "id": 15617, "height": 240}, {"file_name": "ADE_train_00015619.jpg", "width": 599, "id": 15618, "height": 419}, {"file_name": "ADE_train_00015620.jpg", "width": 716, "id": 15619, "height": 512}, {"file_name": "ADE_train_00015621.jpg", "width": 768, "id": 15620, "height": 512}, {"file_name": "ADE_train_00015622.jpg", "width": 683, "id": 15621, "height": 512}, {"file_name": "ADE_train_00015623.jpg", "width": 277, "id": 15622, "height": 500}, {"file_name": "ADE_train_00015624.jpg", "width": 768, "id": 15623, "height": 512}, {"file_name": "ADE_train_00015625.jpg", "width": 391, "id": 15624, "height": 500}, {"file_name": "ADE_train_00015626.jpg", "width": 506, "id": 15625, "height": 380}, {"file_name": "ADE_train_00015627.jpg", "width": 512, "id": 15626, "height": 683}, {"file_name": "ADE_train_00015628.jpg", "width": 512, "id": 15627, "height": 683}, {"file_name": "ADE_train_00015629.jpg", "width": 683, "id": 15628, "height": 512}, {"file_name": "ADE_train_00015630.jpg", "width": 512, "id": 15629, "height": 683}, {"file_name": "ADE_train_00015631.jpg", "width": 512, "id": 15630, "height": 683}, {"file_name": "ADE_train_00015632.jpg", "width": 512, "id": 15631, "height": 843}, {"file_name": "ADE_train_00015633.jpg", "width": 512, "id": 15632, "height": 765}, {"file_name": "ADE_train_00015634.jpg", "width": 300, "id": 15633, "height": 225}, {"file_name": "ADE_train_00015635.jpg", "width": 408, "id": 15634, "height": 308}, {"file_name": "ADE_train_00015636.jpg", "width": 350, "id": 15635, "height": 229}, {"file_name": "ADE_train_00015637.jpg", "width": 683, "id": 15636, "height": 512}, {"file_name": "ADE_train_00015638.jpg", "width": 683, "id": 15637, "height": 512}, {"file_name": "ADE_train_00015639.jpg", "width": 350, "id": 15638, "height": 228}, {"file_name": "ADE_train_00015640.jpg", "width": 300, "id": 15639, "height": 209}, {"file_name": "ADE_train_00015641.jpg", "width": 330, "id": 15640, "height": 220}, {"file_name": "ADE_train_00015642.jpg", "width": 683, "id": 15641, "height": 512}, {"file_name": "ADE_train_00015643.jpg", "width": 678, "id": 15642, "height": 512}, {"file_name": "ADE_train_00015644.jpg", "width": 469, "id": 15643, "height": 375}, {"file_name": "ADE_train_00015645.jpg", "width": 340, "id": 15644, "height": 454}, {"file_name": "ADE_train_00015646.jpg", "width": 300, "id": 15645, "height": 450}, {"file_name": "ADE_train_00015647.jpg", "width": 380, "id": 15646, "height": 287}, {"file_name": "ADE_train_00015648.jpg", "width": 705, "id": 15647, "height": 512}, {"file_name": "ADE_train_00015649.jpg", "width": 768, "id": 15648, "height": 512}, {"file_name": "ADE_train_00015650.jpg", "width": 700, "id": 15649, "height": 459}, {"file_name": "ADE_train_00015651.jpg", "width": 360, "id": 15650, "height": 241}, {"file_name": "ADE_train_00015652.jpg", "width": 1270, "id": 15651, "height": 1270}, {"file_name": "ADE_train_00015653.jpg", "width": 350, "id": 15652, "height": 236}, {"file_name": "ADE_train_00015654.jpg", "width": 500, "id": 15653, "height": 291}, {"file_name": "ADE_train_00015655.jpg", "width": 768, "id": 15654, "height": 512}, {"file_name": "ADE_train_00015656.jpg", "width": 637, "id": 15655, "height": 512}, {"file_name": "ADE_train_00015657.jpg", "width": 333, "id": 15656, "height": 266}, {"file_name": "ADE_train_00015658.jpg", "width": 752, "id": 15657, "height": 512}, {"file_name": "ADE_train_00015659.jpg", "width": 504, "id": 15658, "height": 412}, {"file_name": "ADE_train_00015660.jpg", "width": 640, "id": 15659, "height": 480}, {"file_name": "ADE_train_00015661.jpg", "width": 579, "id": 15660, "height": 387}, {"file_name": "ADE_train_00015662.jpg", "width": 794, "id": 15661, "height": 512}, {"file_name": "ADE_train_00015663.jpg", "width": 256, "id": 15662, "height": 256}, {"file_name": "ADE_train_00015664.jpg", "width": 370, "id": 15663, "height": 319}, {"file_name": "ADE_train_00015665.jpg", "width": 500, "id": 15664, "height": 332}, {"file_name": "ADE_train_00015666.jpg", "width": 250, "id": 15665, "height": 243}, {"file_name": "ADE_train_00015667.jpg", "width": 300, "id": 15666, "height": 225}, {"file_name": "ADE_train_00015668.jpg", "width": 640, "id": 15667, "height": 480}, {"file_name": "ADE_train_00015669.jpg", "width": 323, "id": 15668, "height": 255}, {"file_name": "ADE_train_00015670.jpg", "width": 300, "id": 15669, "height": 248}, {"file_name": "ADE_train_00015671.jpg", "width": 759, "id": 15670, "height": 512}, {"file_name": "ADE_train_00015672.jpg", "width": 400, "id": 15671, "height": 270}, {"file_name": "ADE_train_00015673.jpg", "width": 800, "id": 15672, "height": 456}, {"file_name": "ADE_train_00015674.jpg", "width": 386, "id": 15673, "height": 325}, {"file_name": "ADE_train_00015675.jpg", "width": 600, "id": 15674, "height": 450}, {"file_name": "ADE_train_00015676.jpg", "width": 683, "id": 15675, "height": 512}, {"file_name": "ADE_train_00015677.jpg", "width": 300, "id": 15676, "height": 453}, {"file_name": "ADE_train_00015678.jpg", "width": 438, "id": 15677, "height": 300}, {"file_name": "ADE_train_00015679.jpg", "width": 500, "id": 15678, "height": 328}, {"file_name": "ADE_train_00015680.jpg", "width": 400, "id": 15679, "height": 201}, {"file_name": "ADE_train_00015681.jpg", "width": 300, "id": 15680, "height": 248}, {"file_name": "ADE_train_00015682.jpg", "width": 600, "id": 15681, "height": 400}, {"file_name": "ADE_train_00015683.jpg", "width": 448, "id": 15682, "height": 287}, {"file_name": "ADE_train_00015684.jpg", "width": 512, "id": 15683, "height": 683}, {"file_name": "ADE_train_00015685.jpg", "width": 683, "id": 15684, "height": 512}, {"file_name": "ADE_train_00015686.jpg", "width": 640, "id": 15685, "height": 426}, {"file_name": "ADE_train_00015687.jpg", "width": 600, "id": 15686, "height": 324}, {"file_name": "ADE_train_00015688.jpg", "width": 595, "id": 15687, "height": 389}, {"file_name": "ADE_train_00015689.jpg", "width": 756, "id": 15688, "height": 512}, {"file_name": "ADE_train_00015690.jpg", "width": 768, "id": 15689, "height": 512}, {"file_name": "ADE_train_00015691.jpg", "width": 580, "id": 15690, "height": 325}, {"file_name": "ADE_train_00015692.jpg", "width": 479, "id": 15691, "height": 277}, {"file_name": "ADE_train_00015693.jpg", "width": 540, "id": 15692, "height": 337}, {"file_name": "ADE_train_00015694.jpg", "width": 341, "id": 15693, "height": 256}, {"file_name": "ADE_train_00015695.jpg", "width": 270, "id": 15694, "height": 230}, {"file_name": "ADE_train_00015696.jpg", "width": 320, "id": 15695, "height": 213}, {"file_name": "ADE_train_00015697.jpg", "width": 320, "id": 15696, "height": 240}, {"file_name": "ADE_train_00015698.jpg", "width": 300, "id": 15697, "height": 200}, {"file_name": "ADE_train_00015699.jpg", "width": 682, "id": 15698, "height": 512}, {"file_name": "ADE_train_00015700.jpg", "width": 267, "id": 15699, "height": 339}, {"file_name": "ADE_train_00015701.jpg", "width": 298, "id": 15700, "height": 274}, {"file_name": "ADE_train_00015702.jpg", "width": 683, "id": 15701, "height": 512}, {"file_name": "ADE_train_00015703.jpg", "width": 275, "id": 15702, "height": 280}, {"file_name": "ADE_train_00015704.jpg", "width": 320, "id": 15703, "height": 240}, {"file_name": "ADE_train_00015705.jpg", "width": 300, "id": 15704, "height": 225}, {"file_name": "ADE_train_00015706.jpg", "width": 300, "id": 15705, "height": 225}, {"file_name": "ADE_train_00015707.jpg", "width": 260, "id": 15706, "height": 347}, {"file_name": "ADE_train_00015708.jpg", "width": 379, "id": 15707, "height": 215}, {"file_name": "ADE_train_00015709.jpg", "width": 683, "id": 15708, "height": 512}, {"file_name": "ADE_train_00015710.jpg", "width": 379, "id": 15709, "height": 215}, {"file_name": "ADE_train_00015711.jpg", "width": 300, "id": 15710, "height": 225}, {"file_name": "ADE_train_00015712.jpg", "width": 360, "id": 15711, "height": 244}, {"file_name": "ADE_train_00015713.jpg", "width": 438, "id": 15712, "height": 314}, {"file_name": "ADE_train_00015714.jpg", "width": 683, "id": 15713, "height": 512}, {"file_name": "ADE_train_00015715.jpg", "width": 354, "id": 15714, "height": 245}, {"file_name": "ADE_train_00015716.jpg", "width": 765, "id": 15715, "height": 512}, {"file_name": "ADE_train_00015717.jpg", "width": 350, "id": 15716, "height": 253}, {"file_name": "ADE_train_00015718.jpg", "width": 683, "id": 15717, "height": 512}, {"file_name": "ADE_train_00015719.jpg", "width": 400, "id": 15718, "height": 265}, {"file_name": "ADE_train_00015720.jpg", "width": 683, "id": 15719, "height": 512}, {"file_name": "ADE_train_00015721.jpg", "width": 683, "id": 15720, "height": 512}, {"file_name": "ADE_train_00015722.jpg", "width": 683, "id": 15721, "height": 512}, {"file_name": "ADE_train_00015723.jpg", "width": 683, "id": 15722, "height": 512}, {"file_name": "ADE_train_00015724.jpg", "width": 683, "id": 15723, "height": 512}, {"file_name": "ADE_train_00015725.jpg", "width": 812, "id": 15724, "height": 512}, {"file_name": "ADE_train_00015726.jpg", "width": 765, "id": 15725, "height": 512}, {"file_name": "ADE_train_00015727.jpg", "width": 360, "id": 15726, "height": 240}, {"file_name": "ADE_train_00015728.jpg", "width": 477, "id": 15727, "height": 489}, {"file_name": "ADE_train_00015729.jpg", "width": 771, "id": 15728, "height": 512}, {"file_name": "ADE_train_00015730.jpg", "width": 400, "id": 15729, "height": 400}, {"file_name": "ADE_train_00015731.jpg", "width": 320, "id": 15730, "height": 213}, {"file_name": "ADE_train_00015732.jpg", "width": 330, "id": 15731, "height": 220}, {"file_name": "ADE_train_00015733.jpg", "width": 432, "id": 15732, "height": 285}, {"file_name": "ADE_train_00015734.jpg", "width": 500, "id": 15733, "height": 315}, {"file_name": "ADE_train_00015735.jpg", "width": 400, "id": 15734, "height": 258}, {"file_name": "ADE_train_00015736.jpg", "width": 770, "id": 15735, "height": 512}, {"file_name": "ADE_train_00015737.jpg", "width": 683, "id": 15736, "height": 512}, {"file_name": "ADE_train_00015738.jpg", "width": 300, "id": 15737, "height": 300}, {"file_name": "ADE_train_00015739.jpg", "width": 340, "id": 15738, "height": 254}, {"file_name": "ADE_train_00015740.jpg", "width": 683, "id": 15739, "height": 512}, {"file_name": "ADE_train_00015741.jpg", "width": 324, "id": 15740, "height": 342}, {"file_name": "ADE_train_00015742.jpg", "width": 649, "id": 15741, "height": 512}, {"file_name": "ADE_train_00015743.jpg", "width": 683, "id": 15742, "height": 512}, {"file_name": "ADE_train_00015744.jpg", "width": 568, "id": 15743, "height": 426}, {"file_name": "ADE_train_00015745.jpg", "width": 300, "id": 15744, "height": 225}, {"file_name": "ADE_train_00015746.jpg", "width": 458, "id": 15745, "height": 323}, {"file_name": "ADE_train_00015747.jpg", "width": 721, "id": 15746, "height": 512}, {"file_name": "ADE_train_00015748.jpg", "width": 305, "id": 15747, "height": 225}, {"file_name": "ADE_train_00015749.jpg", "width": 320, "id": 15748, "height": 240}, {"file_name": "ADE_train_00015750.jpg", "width": 683, "id": 15749, "height": 512}, {"file_name": "ADE_train_00015751.jpg", "width": 640, "id": 15750, "height": 480}, {"file_name": "ADE_train_00015752.jpg", "width": 301, "id": 15751, "height": 201}, {"file_name": "ADE_train_00015753.jpg", "width": 684, "id": 15752, "height": 512}, {"file_name": "ADE_train_00015754.jpg", "width": 339, "id": 15753, "height": 253}, {"file_name": "ADE_train_00015755.jpg", "width": 319, "id": 15754, "height": 240}, {"file_name": "ADE_train_00015756.jpg", "width": 300, "id": 15755, "height": 214}, {"file_name": "ADE_train_00015757.jpg", "width": 450, "id": 15756, "height": 350}, {"file_name": "ADE_train_00015758.jpg", "width": 600, "id": 15757, "height": 419}, {"file_name": "ADE_train_00015759.jpg", "width": 250, "id": 15758, "height": 233}, {"file_name": "ADE_train_00015760.jpg", "width": 353, "id": 15759, "height": 235}, {"file_name": "ADE_train_00015761.jpg", "width": 400, "id": 15760, "height": 253}, {"file_name": "ADE_train_00015762.jpg", "width": 788, "id": 15761, "height": 512}, {"file_name": "ADE_train_00015763.jpg", "width": 683, "id": 15762, "height": 512}, {"file_name": "ADE_train_00015764.jpg", "width": 759, "id": 15763, "height": 512}, {"file_name": "ADE_train_00015765.jpg", "width": 683, "id": 15764, "height": 512}, {"file_name": "ADE_train_00015766.jpg", "width": 400, "id": 15765, "height": 359}, {"file_name": "ADE_train_00015767.jpg", "width": 635, "id": 15766, "height": 512}, {"file_name": "ADE_train_00015768.jpg", "width": 338, "id": 15767, "height": 254}, {"file_name": "ADE_train_00015769.jpg", "width": 320, "id": 15768, "height": 240}, {"file_name": "ADE_train_00015770.jpg", "width": 683, "id": 15769, "height": 512}, {"file_name": "ADE_train_00015771.jpg", "width": 683, "id": 15770, "height": 512}, {"file_name": "ADE_train_00015772.jpg", "width": 360, "id": 15771, "height": 270}, {"file_name": "ADE_train_00015773.jpg", "width": 640, "id": 15772, "height": 480}, {"file_name": "ADE_train_00015774.jpg", "width": 683, "id": 15773, "height": 512}, {"file_name": "ADE_train_00015775.jpg", "width": 300, "id": 15774, "height": 225}, {"file_name": "ADE_train_00015776.jpg", "width": 683, "id": 15775, "height": 512}, {"file_name": "ADE_train_00015777.jpg", "width": 240, "id": 15776, "height": 320}, {"file_name": "ADE_train_00015778.jpg", "width": 200, "id": 15777, "height": 200}, {"file_name": "ADE_train_00015779.jpg", "width": 240, "id": 15778, "height": 320}, {"file_name": "ADE_train_00015780.jpg", "width": 640, "id": 15779, "height": 480}, {"file_name": "ADE_train_00015781.jpg", "width": 768, "id": 15780, "height": 512}, {"file_name": "ADE_train_00015782.jpg", "width": 535, "id": 15781, "height": 408}, {"file_name": "ADE_train_00015783.jpg", "width": 683, "id": 15782, "height": 512}, {"file_name": "ADE_train_00015784.jpg", "width": 533, "id": 15783, "height": 400}, {"file_name": "ADE_train_00015785.jpg", "width": 618, "id": 15784, "height": 444}, {"file_name": "ADE_train_00015786.jpg", "width": 518, "id": 15785, "height": 333}, {"file_name": "ADE_train_00015787.jpg", "width": 256, "id": 15786, "height": 256}, {"file_name": "ADE_train_00015788.jpg", "width": 320, "id": 15787, "height": 212}, {"file_name": "ADE_train_00015789.jpg", "width": 532, "id": 15788, "height": 399}, {"file_name": "ADE_train_00015790.jpg", "width": 500, "id": 15789, "height": 317}, {"file_name": "ADE_train_00015791.jpg", "width": 523, "id": 15790, "height": 512}, {"file_name": "ADE_train_00015792.jpg", "width": 420, "id": 15791, "height": 315}, {"file_name": "ADE_train_00015793.jpg", "width": 256, "id": 15792, "height": 256}, {"file_name": "ADE_train_00015794.jpg", "width": 360, "id": 15793, "height": 241}, {"file_name": "ADE_train_00015795.jpg", "width": 640, "id": 15794, "height": 480}, {"file_name": "ADE_train_00015796.jpg", "width": 500, "id": 15795, "height": 338}, {"file_name": "ADE_train_00015797.jpg", "width": 350, "id": 15796, "height": 235}, {"file_name": "ADE_train_00015798.jpg", "width": 323, "id": 15797, "height": 288}, {"file_name": "ADE_train_00015799.jpg", "width": 500, "id": 15798, "height": 335}, {"file_name": "ADE_train_00015800.jpg", "width": 464, "id": 15799, "height": 400}, {"file_name": "ADE_train_00015801.jpg", "width": 400, "id": 15800, "height": 267}, {"file_name": "ADE_train_00015802.jpg", "width": 500, "id": 15801, "height": 333}, {"file_name": "ADE_train_00015803.jpg", "width": 256, "id": 15802, "height": 256}, {"file_name": "ADE_train_00015804.jpg", "width": 437, "id": 15803, "height": 295}, {"file_name": "ADE_train_00015805.jpg", "width": 480, "id": 15804, "height": 358}, {"file_name": "ADE_train_00015806.jpg", "width": 683, "id": 15805, "height": 512}, {"file_name": "ADE_train_00015807.jpg", "width": 256, "id": 15806, "height": 256}, {"file_name": "ADE_train_00015808.jpg", "width": 455, "id": 15807, "height": 343}, {"file_name": "ADE_train_00015809.jpg", "width": 300, "id": 15808, "height": 225}, {"file_name": "ADE_train_00015810.jpg", "width": 450, "id": 15809, "height": 336}, {"file_name": "ADE_train_00015811.jpg", "width": 404, "id": 15810, "height": 271}, {"file_name": "ADE_train_00015812.jpg", "width": 400, "id": 15811, "height": 267}, {"file_name": "ADE_train_00015813.jpg", "width": 512, "id": 15812, "height": 682}, {"file_name": "ADE_train_00015814.jpg", "width": 550, "id": 15813, "height": 412}, {"file_name": "ADE_train_00015815.jpg", "width": 512, "id": 15814, "height": 683}, {"file_name": "ADE_train_00015816.jpg", "width": 683, "id": 15815, "height": 512}, {"file_name": "ADE_train_00015817.jpg", "width": 456, "id": 15816, "height": 500}, {"file_name": "ADE_train_00015818.jpg", "width": 683, "id": 15817, "height": 512}, {"file_name": "ADE_train_00015819.jpg", "width": 683, "id": 15818, "height": 512}, {"file_name": "ADE_train_00015820.jpg", "width": 683, "id": 15819, "height": 512}, {"file_name": "ADE_train_00015821.jpg", "width": 768, "id": 15820, "height": 512}, {"file_name": "ADE_train_00015822.jpg", "width": 683, "id": 15821, "height": 512}, {"file_name": "ADE_train_00015823.jpg", "width": 683, "id": 15822, "height": 512}, {"file_name": "ADE_train_00015824.jpg", "width": 683, "id": 15823, "height": 512}, {"file_name": "ADE_train_00015825.jpg", "width": 256, "id": 15824, "height": 256}, {"file_name": "ADE_train_00015826.jpg", "width": 362, "id": 15825, "height": 265}, {"file_name": "ADE_train_00015827.jpg", "width": 256, "id": 15826, "height": 256}, {"file_name": "ADE_train_00015828.jpg", "width": 350, "id": 15827, "height": 233}, {"file_name": "ADE_train_00015829.jpg", "width": 256, "id": 15828, "height": 256}, {"file_name": "ADE_train_00015830.jpg", "width": 683, "id": 15829, "height": 512}, {"file_name": "ADE_train_00015831.jpg", "width": 256, "id": 15830, "height": 256}, {"file_name": "ADE_train_00015832.jpg", "width": 256, "id": 15831, "height": 256}, {"file_name": "ADE_train_00015833.jpg", "width": 683, "id": 15832, "height": 512}, {"file_name": "ADE_train_00015834.jpg", "width": 683, "id": 15833, "height": 512}, {"file_name": "ADE_train_00015835.jpg", "width": 500, "id": 15834, "height": 360}, {"file_name": "ADE_train_00015836.jpg", "width": 445, "id": 15835, "height": 300}, {"file_name": "ADE_train_00015837.jpg", "width": 640, "id": 15836, "height": 480}, {"file_name": "ADE_train_00015838.jpg", "width": 244, "id": 15837, "height": 325}, {"file_name": "ADE_train_00015839.jpg", "width": 400, "id": 15838, "height": 300}, {"file_name": "ADE_train_00015840.jpg", "width": 312, "id": 15839, "height": 237}, {"file_name": "ADE_train_00015841.jpg", "width": 683, "id": 15840, "height": 512}, {"file_name": "ADE_train_00015842.jpg", "width": 314, "id": 15841, "height": 234}, {"file_name": "ADE_train_00015843.jpg", "width": 341, "id": 15842, "height": 450}, {"file_name": "ADE_train_00015844.jpg", "width": 512, "id": 15843, "height": 684}, {"file_name": "ADE_train_00015845.jpg", "width": 600, "id": 15844, "height": 450}, {"file_name": "ADE_train_00015846.jpg", "width": 290, "id": 15845, "height": 239}, {"file_name": "ADE_train_00015847.jpg", "width": 768, "id": 15846, "height": 512}, {"file_name": "ADE_train_00015848.jpg", "width": 350, "id": 15847, "height": 368}, {"file_name": "ADE_train_00015849.jpg", "width": 750, "id": 15848, "height": 512}, {"file_name": "ADE_train_00015850.jpg", "width": 207, "id": 15849, "height": 300}, {"file_name": "ADE_train_00015851.jpg", "width": 520, "id": 15850, "height": 318}, {"file_name": "ADE_train_00015852.jpg", "width": 500, "id": 15851, "height": 333}, {"file_name": "ADE_train_00015853.jpg", "width": 245, "id": 15852, "height": 246}, {"file_name": "ADE_train_00015854.jpg", "width": 300, "id": 15853, "height": 225}, {"file_name": "ADE_train_00015855.jpg", "width": 320, "id": 15854, "height": 240}, {"file_name": "ADE_train_00015856.jpg", "width": 400, "id": 15855, "height": 250}, {"file_name": "ADE_train_00015857.jpg", "width": 518, "id": 15856, "height": 389}, {"file_name": "ADE_train_00015858.jpg", "width": 683, "id": 15857, "height": 512}, {"file_name": "ADE_train_00015859.jpg", "width": 683, "id": 15858, "height": 512}, {"file_name": "ADE_train_00015860.jpg", "width": 426, "id": 15859, "height": 200}, {"file_name": "ADE_train_00015861.jpg", "width": 256, "id": 15860, "height": 256}, {"file_name": "ADE_train_00015862.jpg", "width": 256, "id": 15861, "height": 256}, {"file_name": "ADE_train_00015863.jpg", "width": 256, "id": 15862, "height": 256}, {"file_name": "ADE_train_00015864.jpg", "width": 256, "id": 15863, "height": 256}, {"file_name": "ADE_train_00015865.jpg", "width": 256, "id": 15864, "height": 256}, {"file_name": "ADE_train_00015866.jpg", "width": 256, "id": 15865, "height": 256}, {"file_name": "ADE_train_00015867.jpg", "width": 256, "id": 15866, "height": 256}, {"file_name": "ADE_train_00015868.jpg", "width": 256, "id": 15867, "height": 256}, {"file_name": "ADE_train_00015869.jpg", "width": 256, "id": 15868, "height": 256}, {"file_name": "ADE_train_00015870.jpg", "width": 256, "id": 15869, "height": 256}, {"file_name": "ADE_train_00015871.jpg", "width": 256, "id": 15870, "height": 256}, {"file_name": "ADE_train_00015872.jpg", "width": 430, "id": 15871, "height": 249}, {"file_name": "ADE_train_00015873.jpg", "width": 256, "id": 15872, "height": 256}, {"file_name": "ADE_train_00015874.jpg", "width": 683, "id": 15873, "height": 512}, {"file_name": "ADE_train_00015875.jpg", "width": 256, "id": 15874, "height": 256}, {"file_name": "ADE_train_00015876.jpg", "width": 375, "id": 15875, "height": 300}, {"file_name": "ADE_train_00015877.jpg", "width": 256, "id": 15876, "height": 256}, {"file_name": "ADE_train_00015878.jpg", "width": 256, "id": 15877, "height": 256}, {"file_name": "ADE_train_00015879.jpg", "width": 256, "id": 15878, "height": 256}, {"file_name": "ADE_train_00015880.jpg", "width": 256, "id": 15879, "height": 256}, {"file_name": "ADE_train_00015881.jpg", "width": 256, "id": 15880, "height": 256}, {"file_name": "ADE_train_00015882.jpg", "width": 256, "id": 15881, "height": 256}, {"file_name": "ADE_train_00015883.jpg", "width": 256, "id": 15882, "height": 256}, {"file_name": "ADE_train_00015884.jpg", "width": 256, "id": 15883, "height": 256}, {"file_name": "ADE_train_00015885.jpg", "width": 256, "id": 15884, "height": 256}, {"file_name": "ADE_train_00015886.jpg", "width": 256, "id": 15885, "height": 256}, {"file_name": "ADE_train_00015887.jpg", "width": 680, "id": 15886, "height": 510}, {"file_name": "ADE_train_00015888.jpg", "width": 256, "id": 15887, "height": 256}, {"file_name": "ADE_train_00015889.jpg", "width": 256, "id": 15888, "height": 256}, {"file_name": "ADE_train_00015890.jpg", "width": 256, "id": 15889, "height": 256}, {"file_name": "ADE_train_00015891.jpg", "width": 256, "id": 15890, "height": 256}, {"file_name": "ADE_train_00015892.jpg", "width": 256, "id": 15891, "height": 256}, {"file_name": "ADE_train_00015893.jpg", "width": 256, "id": 15892, "height": 256}, {"file_name": "ADE_train_00015894.jpg", "width": 256, "id": 15893, "height": 256}, {"file_name": "ADE_train_00015895.jpg", "width": 256, "id": 15894, "height": 256}, {"file_name": "ADE_train_00015896.jpg", "width": 256, "id": 15895, "height": 256}, {"file_name": "ADE_train_00015897.jpg", "width": 256, "id": 15896, "height": 256}, {"file_name": "ADE_train_00015898.jpg", "width": 256, "id": 15897, "height": 256}, {"file_name": "ADE_train_00015899.jpg", "width": 256, "id": 15898, "height": 256}, {"file_name": "ADE_train_00015900.jpg", "width": 683, "id": 15899, "height": 512}, {"file_name": "ADE_train_00015901.jpg", "width": 256, "id": 15900, "height": 256}, {"file_name": "ADE_train_00015902.jpg", "width": 256, "id": 15901, "height": 256}, {"file_name": "ADE_train_00015903.jpg", "width": 470, "id": 15902, "height": 315}, {"file_name": "ADE_train_00015904.jpg", "width": 256, "id": 15903, "height": 256}, {"file_name": "ADE_train_00015905.jpg", "width": 256, "id": 15904, "height": 256}, {"file_name": "ADE_train_00015906.jpg", "width": 400, "id": 15905, "height": 265}, {"file_name": "ADE_train_00015907.jpg", "width": 1011, "id": 15906, "height": 512}, {"file_name": "ADE_train_00015908.jpg", "width": 640, "id": 15907, "height": 474}, {"file_name": "ADE_train_00015909.jpg", "width": 700, "id": 15908, "height": 465}, {"file_name": "ADE_train_00015910.jpg", "width": 683, "id": 15909, "height": 512}, {"file_name": "ADE_train_00015911.jpg", "width": 544, "id": 15910, "height": 337}, {"file_name": "ADE_train_00015912.jpg", "width": 380, "id": 15911, "height": 507}, {"file_name": "ADE_train_00015913.jpg", "width": 593, "id": 15912, "height": 410}, {"file_name": "ADE_train_00015914.jpg", "width": 576, "id": 15913, "height": 432}, {"file_name": "ADE_train_00015915.jpg", "width": 787, "id": 15914, "height": 512}, {"file_name": "ADE_train_00015916.jpg", "width": 256, "id": 15915, "height": 256}, {"file_name": "ADE_train_00015917.jpg", "width": 300, "id": 15916, "height": 240}, {"file_name": "ADE_train_00015918.jpg", "width": 256, "id": 15917, "height": 256}, {"file_name": "ADE_train_00015919.jpg", "width": 240, "id": 15918, "height": 361}, {"file_name": "ADE_train_00015920.jpg", "width": 512, "id": 15919, "height": 683}, {"file_name": "ADE_train_00015921.jpg", "width": 685, "id": 15920, "height": 512}, {"file_name": "ADE_train_00015922.jpg", "width": 683, "id": 15921, "height": 512}, {"file_name": "ADE_train_00015923.jpg", "width": 332, "id": 15922, "height": 243}, {"file_name": "ADE_train_00015924.jpg", "width": 400, "id": 15923, "height": 300}, {"file_name": "ADE_train_00015925.jpg", "width": 683, "id": 15924, "height": 512}, {"file_name": "ADE_train_00015926.jpg", "width": 400, "id": 15925, "height": 300}, {"file_name": "ADE_train_00015927.jpg", "width": 600, "id": 15926, "height": 450}, {"file_name": "ADE_train_00015928.jpg", "width": 567, "id": 15927, "height": 371}, {"file_name": "ADE_train_00015929.jpg", "width": 683, "id": 15928, "height": 512}, {"file_name": "ADE_train_00015930.jpg", "width": 640, "id": 15929, "height": 480}, {"file_name": "ADE_train_00015931.jpg", "width": 240, "id": 15930, "height": 340}, {"file_name": "ADE_train_00015932.jpg", "width": 300, "id": 15931, "height": 215}, {"file_name": "ADE_train_00015933.jpg", "width": 400, "id": 15932, "height": 301}, {"file_name": "ADE_train_00015934.jpg", "width": 327, "id": 15933, "height": 217}, {"file_name": "ADE_train_00015935.jpg", "width": 329, "id": 15934, "height": 248}, {"file_name": "ADE_train_00015936.jpg", "width": 350, "id": 15935, "height": 253}, {"file_name": "ADE_train_00015937.jpg", "width": 479, "id": 15936, "height": 377}, {"file_name": "ADE_train_00015938.jpg", "width": 731, "id": 15937, "height": 512}, {"file_name": "ADE_train_00015939.jpg", "width": 350, "id": 15938, "height": 466}, {"file_name": "ADE_train_00015940.jpg", "width": 300, "id": 15939, "height": 225}, {"file_name": "ADE_train_00015941.jpg", "width": 699, "id": 15940, "height": 484}, {"file_name": "ADE_train_00015942.jpg", "width": 348, "id": 15941, "height": 223}, {"file_name": "ADE_train_00015943.jpg", "width": 676, "id": 15942, "height": 512}, {"file_name": "ADE_train_00015944.jpg", "width": 600, "id": 15943, "height": 487}, {"file_name": "ADE_train_00015945.jpg", "width": 225, "id": 15944, "height": 300}, {"file_name": "ADE_train_00015946.jpg", "width": 683, "id": 15945, "height": 512}, {"file_name": "ADE_train_00015947.jpg", "width": 303, "id": 15946, "height": 227}, {"file_name": "ADE_train_00015948.jpg", "width": 300, "id": 15947, "height": 225}, {"file_name": "ADE_train_00015949.jpg", "width": 300, "id": 15948, "height": 215}, {"file_name": "ADE_train_00015950.jpg", "width": 400, "id": 15949, "height": 300}, {"file_name": "ADE_train_00015951.jpg", "width": 512, "id": 15950, "height": 682}, {"file_name": "ADE_train_00015952.jpg", "width": 250, "id": 15951, "height": 313}, {"file_name": "ADE_train_00015953.jpg", "width": 442, "id": 15952, "height": 757}, {"file_name": "ADE_train_00015954.jpg", "width": 640, "id": 15953, "height": 480}, {"file_name": "ADE_train_00015955.jpg", "width": 487, "id": 15954, "height": 350}, {"file_name": "ADE_train_00015956.jpg", "width": 512, "id": 15955, "height": 683}, {"file_name": "ADE_train_00015957.jpg", "width": 336, "id": 15956, "height": 448}, {"file_name": "ADE_train_00015958.jpg", "width": 213, "id": 15957, "height": 201}, {"file_name": "ADE_train_00015959.jpg", "width": 441, "id": 15958, "height": 300}, {"file_name": "ADE_train_00015960.jpg", "width": 683, "id": 15959, "height": 512}, {"file_name": "ADE_train_00015961.jpg", "width": 450, "id": 15960, "height": 600}, {"file_name": "ADE_train_00015962.jpg", "width": 240, "id": 15961, "height": 242}, {"file_name": "ADE_train_00015963.jpg", "width": 683, "id": 15962, "height": 512}, {"file_name": "ADE_train_00015964.jpg", "width": 683, "id": 15963, "height": 512}, {"file_name": "ADE_train_00015965.jpg", "width": 683, "id": 15964, "height": 512}, {"file_name": "ADE_train_00015966.jpg", "width": 683, "id": 15965, "height": 512}, {"file_name": "ADE_train_00015967.jpg", "width": 683, "id": 15966, "height": 512}, {"file_name": "ADE_train_00015968.jpg", "width": 683, "id": 15967, "height": 512}, {"file_name": "ADE_train_00015969.jpg", "width": 432, "id": 15968, "height": 324}, {"file_name": "ADE_train_00015970.jpg", "width": 683, "id": 15969, "height": 512}, {"file_name": "ADE_train_00015971.jpg", "width": 512, "id": 15970, "height": 683}, {"file_name": "ADE_train_00015972.jpg", "width": 683, "id": 15971, "height": 512}, {"file_name": "ADE_train_00015973.jpg", "width": 683, "id": 15972, "height": 512}, {"file_name": "ADE_train_00015974.jpg", "width": 683, "id": 15973, "height": 512}, {"file_name": "ADE_train_00015975.jpg", "width": 566, "id": 15974, "height": 512}, {"file_name": "ADE_train_00015976.jpg", "width": 350, "id": 15975, "height": 233}, {"file_name": "ADE_train_00015977.jpg", "width": 683, "id": 15976, "height": 512}, {"file_name": "ADE_train_00015978.jpg", "width": 340, "id": 15977, "height": 205}, {"file_name": "ADE_train_00015979.jpg", "width": 768, "id": 15978, "height": 512}, {"file_name": "ADE_train_00015980.jpg", "width": 683, "id": 15979, "height": 512}, {"file_name": "ADE_train_00015981.jpg", "width": 683, "id": 15980, "height": 512}, {"file_name": "ADE_train_00015982.jpg", "width": 770, "id": 15981, "height": 512}, {"file_name": "ADE_train_00015983.jpg", "width": 320, "id": 15982, "height": 240}, {"file_name": "ADE_train_00015984.jpg", "width": 326, "id": 15983, "height": 245}, {"file_name": "ADE_train_00015985.jpg", "width": 350, "id": 15984, "height": 232}, {"file_name": "ADE_train_00015986.jpg", "width": 783, "id": 15985, "height": 512}, {"file_name": "ADE_train_00015987.jpg", "width": 683, "id": 15986, "height": 512}, {"file_name": "ADE_train_00015988.jpg", "width": 683, "id": 15987, "height": 512}, {"file_name": "ADE_train_00015989.jpg", "width": 390, "id": 15988, "height": 251}, {"file_name": "ADE_train_00015990.jpg", "width": 320, "id": 15989, "height": 240}, {"file_name": "ADE_train_00015991.jpg", "width": 640, "id": 15990, "height": 512}, {"file_name": "ADE_train_00015992.jpg", "width": 993, "id": 15991, "height": 512}, {"file_name": "ADE_train_00015993.jpg", "width": 320, "id": 15992, "height": 240}, {"file_name": "ADE_train_00015994.jpg", "width": 275, "id": 15993, "height": 206}, {"file_name": "ADE_train_00015995.jpg", "width": 320, "id": 15994, "height": 237}, {"file_name": "ADE_train_00015996.jpg", "width": 322, "id": 15995, "height": 241}, {"file_name": "ADE_train_00015997.jpg", "width": 270, "id": 15996, "height": 203}, {"file_name": "ADE_train_00015998.jpg", "width": 320, "id": 15997, "height": 240}, {"file_name": "ADE_train_00015999.jpg", "width": 683, "id": 15998, "height": 512}, {"file_name": "ADE_train_00016000.jpg", "width": 500, "id": 15999, "height": 375}, {"file_name": "ADE_train_00016001.jpg", "width": 300, "id": 16000, "height": 232}, {"file_name": "ADE_train_00016002.jpg", "width": 360, "id": 16001, "height": 240}, {"file_name": "ADE_train_00016003.jpg", "width": 770, "id": 16002, "height": 512}, {"file_name": "ADE_train_00016004.jpg", "width": 300, "id": 16003, "height": 225}, {"file_name": "ADE_train_00016005.jpg", "width": 683, "id": 16004, "height": 512}, {"file_name": "ADE_train_00016006.jpg", "width": 640, "id": 16005, "height": 512}, {"file_name": "ADE_train_00016007.jpg", "width": 300, "id": 16006, "height": 202}, {"file_name": "ADE_train_00016008.jpg", "width": 300, "id": 16007, "height": 201}, {"file_name": "ADE_train_00016009.jpg", "width": 640, "id": 16008, "height": 512}, {"file_name": "ADE_train_00016010.jpg", "width": 854, "id": 16009, "height": 512}, {"file_name": "ADE_train_00016011.jpg", "width": 504, "id": 16010, "height": 356}, {"file_name": "ADE_train_00016012.jpg", "width": 711, "id": 16011, "height": 512}, {"file_name": "ADE_train_00016013.jpg", "width": 683, "id": 16012, "height": 512}, {"file_name": "ADE_train_00016014.jpg", "width": 683, "id": 16013, "height": 512}, {"file_name": "ADE_train_00016015.jpg", "width": 445, "id": 16014, "height": 330}, {"file_name": "ADE_train_00016016.jpg", "width": 741, "id": 16015, "height": 452}, {"file_name": "ADE_train_00016017.jpg", "width": 355, "id": 16016, "height": 220}, {"file_name": "ADE_train_00016018.jpg", "width": 664, "id": 16017, "height": 512}, {"file_name": "ADE_train_00016019.jpg", "width": 772, "id": 16018, "height": 512}, {"file_name": "ADE_train_00016020.jpg", "width": 683, "id": 16019, "height": 512}, {"file_name": "ADE_train_00016021.jpg", "width": 384, "id": 16020, "height": 288}, {"file_name": "ADE_train_00016022.jpg", "width": 784, "id": 16021, "height": 512}, {"file_name": "ADE_train_00016023.jpg", "width": 504, "id": 16022, "height": 338}, {"file_name": "ADE_train_00016024.jpg", "width": 450, "id": 16023, "height": 296}, {"file_name": "ADE_train_00016025.jpg", "width": 203, "id": 16024, "height": 203}, {"file_name": "ADE_train_00016026.jpg", "width": 384, "id": 16025, "height": 256}, {"file_name": "ADE_train_00016027.jpg", "width": 384, "id": 16026, "height": 256}, {"file_name": "ADE_train_00016028.jpg", "width": 384, "id": 16027, "height": 256}, {"file_name": "ADE_train_00016029.jpg", "width": 384, "id": 16028, "height": 256}, {"file_name": "ADE_train_00016030.jpg", "width": 256, "id": 16029, "height": 256}, {"file_name": "ADE_train_00016031.jpg", "width": 256, "id": 16030, "height": 256}, {"file_name": "ADE_train_00016032.jpg", "width": 256, "id": 16031, "height": 256}, {"file_name": "ADE_train_00016033.jpg", "width": 256, "id": 16032, "height": 256}, {"file_name": "ADE_train_00016034.jpg", "width": 600, "id": 16033, "height": 405}, {"file_name": "ADE_train_00016035.jpg", "width": 384, "id": 16034, "height": 256}, {"file_name": "ADE_train_00016036.jpg", "width": 384, "id": 16035, "height": 256}, {"file_name": "ADE_train_00016037.jpg", "width": 256, "id": 16036, "height": 384}, {"file_name": "ADE_train_00016038.jpg", "width": 256, "id": 16037, "height": 256}, {"file_name": "ADE_train_00016039.jpg", "width": 683, "id": 16038, "height": 512}, {"file_name": "ADE_train_00016040.jpg", "width": 683, "id": 16039, "height": 512}, {"file_name": "ADE_train_00016041.jpg", "width": 683, "id": 16040, "height": 512}, {"file_name": "ADE_train_00016042.jpg", "width": 683, "id": 16041, "height": 512}, {"file_name": "ADE_train_00016043.jpg", "width": 620, "id": 16042, "height": 407}, {"file_name": "ADE_train_00016044.jpg", "width": 609, "id": 16043, "height": 400}, {"file_name": "ADE_train_00016045.jpg", "width": 700, "id": 16044, "height": 469}, {"file_name": "ADE_train_00016046.jpg", "width": 480, "id": 16045, "height": 279}, {"file_name": "ADE_train_00016047.jpg", "width": 753, "id": 16046, "height": 480}, {"file_name": "ADE_train_00016048.jpg", "width": 683, "id": 16047, "height": 512}, {"file_name": "ADE_train_00016049.jpg", "width": 683, "id": 16048, "height": 512}, {"file_name": "ADE_train_00016050.jpg", "width": 683, "id": 16049, "height": 512}, {"file_name": "ADE_train_00016051.jpg", "width": 512, "id": 16050, "height": 770}, {"file_name": "ADE_train_00016052.jpg", "width": 200, "id": 16051, "height": 287}, {"file_name": "ADE_train_00016053.jpg", "width": 400, "id": 16052, "height": 602}, {"file_name": "ADE_train_00016054.jpg", "width": 400, "id": 16053, "height": 302}, {"file_name": "ADE_train_00016055.jpg", "width": 400, "id": 16054, "height": 296}, {"file_name": "ADE_train_00016056.jpg", "width": 385, "id": 16055, "height": 256}, {"file_name": "ADE_train_00016057.jpg", "width": 687, "id": 16056, "height": 512}, {"file_name": "ADE_train_00016058.jpg", "width": 350, "id": 16057, "height": 262}, {"file_name": "ADE_train_00016059.jpg", "width": 265, "id": 16058, "height": 476}, {"file_name": "ADE_train_00016060.jpg", "width": 400, "id": 16059, "height": 285}, {"file_name": "ADE_train_00016061.jpg", "width": 264, "id": 16060, "height": 351}, {"file_name": "ADE_train_00016062.jpg", "width": 526, "id": 16061, "height": 344}, {"file_name": "ADE_train_00016063.jpg", "width": 683, "id": 16062, "height": 512}, {"file_name": "ADE_train_00016064.jpg", "width": 683, "id": 16063, "height": 512}, {"file_name": "ADE_train_00016065.jpg", "width": 620, "id": 16064, "height": 413}, {"file_name": "ADE_train_00016066.jpg", "width": 450, "id": 16065, "height": 245}, {"file_name": "ADE_train_00016067.jpg", "width": 298, "id": 16066, "height": 400}, {"file_name": "ADE_train_00016068.jpg", "width": 400, "id": 16067, "height": 266}, {"file_name": "ADE_train_00016069.jpg", "width": 300, "id": 16068, "height": 225}, {"file_name": "ADE_train_00016070.jpg", "width": 640, "id": 16069, "height": 480}, {"file_name": "ADE_train_00016071.jpg", "width": 594, "id": 16070, "height": 446}, {"file_name": "ADE_train_00016072.jpg", "width": 450, "id": 16071, "height": 269}, {"file_name": "ADE_train_00016073.jpg", "width": 683, "id": 16072, "height": 512}, {"file_name": "ADE_train_00016074.jpg", "width": 683, "id": 16073, "height": 512}, {"file_name": "ADE_train_00016075.jpg", "width": 512, "id": 16074, "height": 775}, {"file_name": "ADE_train_00016076.jpg", "width": 640, "id": 16075, "height": 480}, {"file_name": "ADE_train_00016077.jpg", "width": 640, "id": 16076, "height": 480}, {"file_name": "ADE_train_00016078.jpg", "width": 400, "id": 16077, "height": 258}, {"file_name": "ADE_train_00016079.jpg", "width": 576, "id": 16078, "height": 384}, {"file_name": "ADE_train_00016080.jpg", "width": 216, "id": 16079, "height": 288}, {"file_name": "ADE_train_00016081.jpg", "width": 683, "id": 16080, "height": 512}, {"file_name": "ADE_train_00016082.jpg", "width": 400, "id": 16081, "height": 259}, {"file_name": "ADE_train_00016083.jpg", "width": 640, "id": 16082, "height": 480}, {"file_name": "ADE_train_00016084.jpg", "width": 784, "id": 16083, "height": 512}, {"file_name": "ADE_train_00016085.jpg", "width": 300, "id": 16084, "height": 237}, {"file_name": "ADE_train_00016086.jpg", "width": 342, "id": 16085, "height": 186}, {"file_name": "ADE_train_00016087.jpg", "width": 592, "id": 16086, "height": 400}, {"file_name": "ADE_train_00016088.jpg", "width": 351, "id": 16087, "height": 435}, {"file_name": "ADE_train_00016089.jpg", "width": 500, "id": 16088, "height": 375}, {"file_name": "ADE_train_00016090.jpg", "width": 447, "id": 16089, "height": 312}, {"file_name": "ADE_train_00016091.jpg", "width": 240, "id": 16090, "height": 225}, {"file_name": "ADE_train_00016092.jpg", "width": 200, "id": 16091, "height": 200}, {"file_name": "ADE_train_00016093.jpg", "width": 480, "id": 16092, "height": 440}, {"file_name": "ADE_train_00016094.jpg", "width": 768, "id": 16093, "height": 512}, {"file_name": "ADE_train_00016095.jpg", "width": 300, "id": 16094, "height": 261}, {"file_name": "ADE_train_00016096.jpg", "width": 400, "id": 16095, "height": 300}, {"file_name": "ADE_train_00016097.jpg", "width": 683, "id": 16096, "height": 512}, {"file_name": "ADE_train_00016098.jpg", "width": 515, "id": 16097, "height": 512}, {"file_name": "ADE_train_00016099.jpg", "width": 771, "id": 16098, "height": 512}, {"file_name": "ADE_train_00016100.jpg", "width": 399, "id": 16099, "height": 517}, {"file_name": "ADE_train_00016101.jpg", "width": 600, "id": 16100, "height": 478}, {"file_name": "ADE_train_00016102.jpg", "width": 584, "id": 16101, "height": 502}, {"file_name": "ADE_train_00016103.jpg", "width": 160, "id": 16102, "height": 259}, {"file_name": "ADE_train_00016104.jpg", "width": 300, "id": 16103, "height": 225}, {"file_name": "ADE_train_00016105.jpg", "width": 536, "id": 16104, "height": 357}, {"file_name": "ADE_train_00016106.jpg", "width": 338, "id": 16105, "height": 450}, {"file_name": "ADE_train_00016107.jpg", "width": 512, "id": 16106, "height": 697}, {"file_name": "ADE_train_00016108.jpg", "width": 395, "id": 16107, "height": 527}, {"file_name": "ADE_train_00016109.jpg", "width": 402, "id": 16108, "height": 535}, {"file_name": "ADE_train_00016110.jpg", "width": 433, "id": 16109, "height": 301}, {"file_name": "ADE_train_00016111.jpg", "width": 640, "id": 16110, "height": 480}, {"file_name": "ADE_train_00016112.jpg", "width": 683, "id": 16111, "height": 512}, {"file_name": "ADE_train_00016113.jpg", "width": 312, "id": 16112, "height": 235}, {"file_name": "ADE_train_00016114.jpg", "width": 356, "id": 16113, "height": 216}, {"file_name": "ADE_train_00016115.jpg", "width": 512, "id": 16114, "height": 683}, {"file_name": "ADE_train_00016116.jpg", "width": 768, "id": 16115, "height": 512}, {"file_name": "ADE_train_00016117.jpg", "width": 400, "id": 16116, "height": 267}, {"file_name": "ADE_train_00016118.jpg", "width": 603, "id": 16117, "height": 502}, {"file_name": "ADE_train_00016119.jpg", "width": 797, "id": 16118, "height": 503}, {"file_name": "ADE_train_00016120.jpg", "width": 448, "id": 16119, "height": 336}, {"file_name": "ADE_train_00016121.jpg", "width": 400, "id": 16120, "height": 267}, {"file_name": "ADE_train_00016122.jpg", "width": 800, "id": 16121, "height": 415}, {"file_name": "ADE_train_00016123.jpg", "width": 600, "id": 16122, "height": 296}, {"file_name": "ADE_train_00016124.jpg", "width": 550, "id": 16123, "height": 363}, {"file_name": "ADE_train_00016125.jpg", "width": 450, "id": 16124, "height": 600}, {"file_name": "ADE_train_00016126.jpg", "width": 768, "id": 16125, "height": 512}, {"file_name": "ADE_train_00016127.jpg", "width": 791, "id": 16126, "height": 512}, {"file_name": "ADE_train_00016128.jpg", "width": 300, "id": 16127, "height": 213}, {"file_name": "ADE_train_00016129.jpg", "width": 480, "id": 16128, "height": 307}, {"file_name": "ADE_train_00016130.jpg", "width": 500, "id": 16129, "height": 317}, {"file_name": "ADE_train_00016131.jpg", "width": 640, "id": 16130, "height": 429}, {"file_name": "ADE_train_00016132.jpg", "width": 500, "id": 16131, "height": 375}, {"file_name": "ADE_train_00016133.jpg", "width": 640, "id": 16132, "height": 480}, {"file_name": "ADE_train_00016134.jpg", "width": 400, "id": 16133, "height": 303}, {"file_name": "ADE_train_00016135.jpg", "width": 720, "id": 16134, "height": 480}, {"file_name": "ADE_train_00016136.jpg", "width": 330, "id": 16135, "height": 230}, {"file_name": "ADE_train_00016137.jpg", "width": 690, "id": 16136, "height": 512}, {"file_name": "ADE_train_00016138.jpg", "width": 420, "id": 16137, "height": 347}, {"file_name": "ADE_train_00016139.jpg", "width": 202, "id": 16138, "height": 200}, {"file_name": "ADE_train_00016140.jpg", "width": 684, "id": 16139, "height": 512}, {"file_name": "ADE_train_00016141.jpg", "width": 512, "id": 16140, "height": 683}, {"file_name": "ADE_train_00016142.jpg", "width": 658, "id": 16141, "height": 391}, {"file_name": "ADE_train_00016143.jpg", "width": 396, "id": 16142, "height": 275}, {"file_name": "ADE_train_00016144.jpg", "width": 600, "id": 16143, "height": 395}, {"file_name": "ADE_train_00016145.jpg", "width": 400, "id": 16144, "height": 230}, {"file_name": "ADE_train_00016146.jpg", "width": 640, "id": 16145, "height": 480}, {"file_name": "ADE_train_00016147.jpg", "width": 780, "id": 16146, "height": 512}, {"file_name": "ADE_train_00016148.jpg", "width": 375, "id": 16147, "height": 250}, {"file_name": "ADE_train_00016149.jpg", "width": 683, "id": 16148, "height": 512}, {"file_name": "ADE_train_00016150.jpg", "width": 500, "id": 16149, "height": 388}, {"file_name": "ADE_train_00016151.jpg", "width": 281, "id": 16150, "height": 422}, {"file_name": "ADE_train_00016152.jpg", "width": 233, "id": 16151, "height": 339}, {"file_name": "ADE_train_00016153.jpg", "width": 300, "id": 16152, "height": 202}, {"file_name": "ADE_train_00016154.jpg", "width": 593, "id": 16153, "height": 445}, {"file_name": "ADE_train_00016155.jpg", "width": 538, "id": 16154, "height": 353}, {"file_name": "ADE_train_00016156.jpg", "width": 683, "id": 16155, "height": 512}, {"file_name": "ADE_train_00016157.jpg", "width": 590, "id": 16156, "height": 506}, {"file_name": "ADE_train_00016158.jpg", "width": 256, "id": 16157, "height": 256}, {"file_name": "ADE_train_00016159.jpg", "width": 256, "id": 16158, "height": 256}, {"file_name": "ADE_train_00016160.jpg", "width": 320, "id": 16159, "height": 233}, {"file_name": "ADE_train_00016161.jpg", "width": 311, "id": 16160, "height": 233}, {"file_name": "ADE_train_00016162.jpg", "width": 512, "id": 16161, "height": 683}, {"file_name": "ADE_train_00016163.jpg", "width": 774, "id": 16162, "height": 512}, {"file_name": "ADE_train_00016164.jpg", "width": 610, "id": 16163, "height": 397}, {"file_name": "ADE_train_00016165.jpg", "width": 610, "id": 16164, "height": 406}, {"file_name": "ADE_train_00016166.jpg", "width": 500, "id": 16165, "height": 375}, {"file_name": "ADE_train_00016167.jpg", "width": 610, "id": 16166, "height": 435}, {"file_name": "ADE_train_00016168.jpg", "width": 500, "id": 16167, "height": 375}, {"file_name": "ADE_train_00016169.jpg", "width": 512, "id": 16168, "height": 683}, {"file_name": "ADE_train_00016170.jpg", "width": 400, "id": 16169, "height": 300}, {"file_name": "ADE_train_00016171.jpg", "width": 767, "id": 16170, "height": 512}, {"file_name": "ADE_train_00016172.jpg", "width": 450, "id": 16171, "height": 300}, {"file_name": "ADE_train_00016173.jpg", "width": 600, "id": 16172, "height": 370}, {"file_name": "ADE_train_00016174.jpg", "width": 600, "id": 16173, "height": 400}, {"file_name": "ADE_train_00016175.jpg", "width": 600, "id": 16174, "height": 400}, {"file_name": "ADE_train_00016176.jpg", "width": 755, "id": 16175, "height": 512}, {"file_name": "ADE_train_00016177.jpg", "width": 500, "id": 16176, "height": 333}, {"file_name": "ADE_train_00016178.jpg", "width": 500, "id": 16177, "height": 355}, {"file_name": "ADE_train_00016179.jpg", "width": 350, "id": 16178, "height": 247}, {"file_name": "ADE_train_00016180.jpg", "width": 480, "id": 16179, "height": 640}, {"file_name": "ADE_train_00016181.jpg", "width": 240, "id": 16180, "height": 320}, {"file_name": "ADE_train_00016182.jpg", "width": 240, "id": 16181, "height": 320}, {"file_name": "ADE_train_00016183.jpg", "width": 400, "id": 16182, "height": 300}, {"file_name": "ADE_train_00016184.jpg", "width": 400, "id": 16183, "height": 300}, {"file_name": "ADE_train_00016185.jpg", "width": 300, "id": 16184, "height": 225}, {"file_name": "ADE_train_00016186.jpg", "width": 450, "id": 16185, "height": 338}, {"file_name": "ADE_train_00016187.jpg", "width": 683, "id": 16186, "height": 512}, {"file_name": "ADE_train_00016188.jpg", "width": 270, "id": 16187, "height": 358}, {"file_name": "ADE_train_00016189.jpg", "width": 600, "id": 16188, "height": 436}, {"file_name": "ADE_train_00016190.jpg", "width": 250, "id": 16189, "height": 257}, {"file_name": "ADE_train_00016191.jpg", "width": 316, "id": 16190, "height": 215}, {"file_name": "ADE_train_00016192.jpg", "width": 299, "id": 16191, "height": 301}, {"file_name": "ADE_train_00016193.jpg", "width": 300, "id": 16192, "height": 265}, {"file_name": "ADE_train_00016194.jpg", "width": 300, "id": 16193, "height": 300}, {"file_name": "ADE_train_00016195.jpg", "width": 683, "id": 16194, "height": 512}, {"file_name": "ADE_train_00016196.jpg", "width": 300, "id": 16195, "height": 225}, {"file_name": "ADE_train_00016197.jpg", "width": 300, "id": 16196, "height": 242}, {"file_name": "ADE_train_00016198.jpg", "width": 300, "id": 16197, "height": 225}, {"file_name": "ADE_train_00016199.jpg", "width": 560, "id": 16198, "height": 372}, {"file_name": "ADE_train_00016200.jpg", "width": 271, "id": 16199, "height": 179}, {"file_name": "ADE_train_00016201.jpg", "width": 400, "id": 16200, "height": 256}, {"file_name": "ADE_train_00016202.jpg", "width": 500, "id": 16201, "height": 333}, {"file_name": "ADE_train_00016203.jpg", "width": 450, "id": 16202, "height": 304}, {"file_name": "ADE_train_00016204.jpg", "width": 766, "id": 16203, "height": 512}, {"file_name": "ADE_train_00016205.jpg", "width": 500, "id": 16204, "height": 333}, {"file_name": "ADE_train_00016206.jpg", "width": 500, "id": 16205, "height": 333}, {"file_name": "ADE_train_00016207.jpg", "width": 239, "id": 16206, "height": 320}, {"file_name": "ADE_train_00016208.jpg", "width": 500, "id": 16207, "height": 375}, {"file_name": "ADE_train_00016209.jpg", "width": 375, "id": 16208, "height": 500}, {"file_name": "ADE_train_00016210.jpg", "width": 256, "id": 16209, "height": 256}, {"file_name": "ADE_train_00016211.jpg", "width": 390, "id": 16210, "height": 582}, {"file_name": "ADE_train_00016212.jpg", "width": 400, "id": 16211, "height": 308}, {"file_name": "ADE_train_00016213.jpg", "width": 500, "id": 16212, "height": 375}, {"file_name": "ADE_train_00016214.jpg", "width": 511, "id": 16213, "height": 378}, {"file_name": "ADE_train_00016215.jpg", "width": 384, "id": 16214, "height": 280}, {"file_name": "ADE_train_00016216.jpg", "width": 375, "id": 16215, "height": 500}, {"file_name": "ADE_train_00016217.jpg", "width": 400, "id": 16216, "height": 344}, {"file_name": "ADE_train_00016218.jpg", "width": 350, "id": 16217, "height": 262}, {"file_name": "ADE_train_00016219.jpg", "width": 739, "id": 16218, "height": 512}, {"file_name": "ADE_train_00016220.jpg", "width": 256, "id": 16219, "height": 256}, {"file_name": "ADE_train_00016221.jpg", "width": 425, "id": 16220, "height": 283}, {"file_name": "ADE_train_00016222.jpg", "width": 256, "id": 16221, "height": 256}, {"file_name": "ADE_train_00016223.jpg", "width": 350, "id": 16222, "height": 262}, {"file_name": "ADE_train_00016224.jpg", "width": 500, "id": 16223, "height": 333}, {"file_name": "ADE_train_00016225.jpg", "width": 500, "id": 16224, "height": 384}, {"file_name": "ADE_train_00016226.jpg", "width": 375, "id": 16225, "height": 500}, {"file_name": "ADE_train_00016227.jpg", "width": 256, "id": 16226, "height": 256}, {"file_name": "ADE_train_00016228.jpg", "width": 450, "id": 16227, "height": 338}, {"file_name": "ADE_train_00016229.jpg", "width": 461, "id": 16228, "height": 344}, {"file_name": "ADE_train_00016230.jpg", "width": 443, "id": 16229, "height": 340}, {"file_name": "ADE_train_00016231.jpg", "width": 640, "id": 16230, "height": 480}, {"file_name": "ADE_train_00016232.jpg", "width": 256, "id": 16231, "height": 256}, {"file_name": "ADE_train_00016233.jpg", "width": 600, "id": 16232, "height": 450}, {"file_name": "ADE_train_00016234.jpg", "width": 640, "id": 16233, "height": 480}, {"file_name": "ADE_train_00016235.jpg", "width": 500, "id": 16234, "height": 333}, {"file_name": "ADE_train_00016236.jpg", "width": 460, "id": 16235, "height": 318}, {"file_name": "ADE_train_00016237.jpg", "width": 375, "id": 16236, "height": 500}, {"file_name": "ADE_train_00016238.jpg", "width": 400, "id": 16237, "height": 300}, {"file_name": "ADE_train_00016239.jpg", "width": 313, "id": 16238, "height": 225}, {"file_name": "ADE_train_00016240.jpg", "width": 683, "id": 16239, "height": 512}, {"file_name": "ADE_train_00016241.jpg", "width": 683, "id": 16240, "height": 512}, {"file_name": "ADE_train_00016242.jpg", "width": 512, "id": 16241, "height": 683}, {"file_name": "ADE_train_00016243.jpg", "width": 761, "id": 16242, "height": 512}, {"file_name": "ADE_train_00016244.jpg", "width": 683, "id": 16243, "height": 512}, {"file_name": "ADE_train_00016245.jpg", "width": 683, "id": 16244, "height": 512}, {"file_name": "ADE_train_00016246.jpg", "width": 512, "id": 16245, "height": 707}, {"file_name": "ADE_train_00016247.jpg", "width": 256, "id": 16246, "height": 256}, {"file_name": "ADE_train_00016248.jpg", "width": 683, "id": 16247, "height": 512}, {"file_name": "ADE_train_00016249.jpg", "width": 256, "id": 16248, "height": 256}, {"file_name": "ADE_train_00016250.jpg", "width": 256, "id": 16249, "height": 256}, {"file_name": "ADE_train_00016251.jpg", "width": 256, "id": 16250, "height": 256}, {"file_name": "ADE_train_00016252.jpg", "width": 256, "id": 16251, "height": 256}, {"file_name": "ADE_train_00016253.jpg", "width": 522, "id": 16252, "height": 449}, {"file_name": "ADE_train_00016254.jpg", "width": 256, "id": 16253, "height": 256}, {"file_name": "ADE_train_00016255.jpg", "width": 400, "id": 16254, "height": 300}, {"file_name": "ADE_train_00016256.jpg", "width": 320, "id": 16255, "height": 240}, {"file_name": "ADE_train_00016257.jpg", "width": 650, "id": 16256, "height": 444}, {"file_name": "ADE_train_00016258.jpg", "width": 640, "id": 16257, "height": 425}, {"file_name": "ADE_train_00016259.jpg", "width": 256, "id": 16258, "height": 256}, {"file_name": "ADE_train_00016260.jpg", "width": 500, "id": 16259, "height": 332}, {"file_name": "ADE_train_00016261.jpg", "width": 560, "id": 16260, "height": 420}, {"file_name": "ADE_train_00016262.jpg", "width": 320, "id": 16261, "height": 240}, {"file_name": "ADE_train_00016263.jpg", "width": 300, "id": 16262, "height": 400}, {"file_name": "ADE_train_00016264.jpg", "width": 520, "id": 16263, "height": 512}, {"file_name": "ADE_train_00016265.jpg", "width": 683, "id": 16264, "height": 512}, {"file_name": "ADE_train_00016266.jpg", "width": 256, "id": 16265, "height": 256}, {"file_name": "ADE_train_00016267.jpg", "width": 683, "id": 16266, "height": 512}, {"file_name": "ADE_train_00016268.jpg", "width": 512, "id": 16267, "height": 683}, {"file_name": "ADE_train_00016269.jpg", "width": 600, "id": 16268, "height": 389}, {"file_name": "ADE_train_00016270.jpg", "width": 356, "id": 16269, "height": 269}, {"file_name": "ADE_train_00016271.jpg", "width": 240, "id": 16270, "height": 320}, {"file_name": "ADE_train_00016272.jpg", "width": 320, "id": 16271, "height": 240}, {"file_name": "ADE_train_00016273.jpg", "width": 507, "id": 16272, "height": 364}, {"file_name": "ADE_train_00016274.jpg", "width": 320, "id": 16273, "height": 240}, {"file_name": "ADE_train_00016275.jpg", "width": 256, "id": 16274, "height": 256}, {"file_name": "ADE_train_00016276.jpg", "width": 256, "id": 16275, "height": 256}, {"file_name": "ADE_train_00016277.jpg", "width": 770, "id": 16276, "height": 512}, {"file_name": "ADE_train_00016278.jpg", "width": 256, "id": 16277, "height": 256}, {"file_name": "ADE_train_00016279.jpg", "width": 460, "id": 16278, "height": 345}, {"file_name": "ADE_train_00016280.jpg", "width": 500, "id": 16279, "height": 468}, {"file_name": "ADE_train_00016281.jpg", "width": 450, "id": 16280, "height": 773}, {"file_name": "ADE_train_00016282.jpg", "width": 500, "id": 16281, "height": 628}, {"file_name": "ADE_train_00016283.jpg", "width": 450, "id": 16282, "height": 562}, {"file_name": "ADE_train_00016284.jpg", "width": 420, "id": 16283, "height": 625}, {"file_name": "ADE_train_00016285.jpg", "width": 320, "id": 16284, "height": 477}, {"file_name": "ADE_train_00016286.jpg", "width": 512, "id": 16285, "height": 677}, {"file_name": "ADE_train_00016287.jpg", "width": 200, "id": 16286, "height": 378}, {"file_name": "ADE_train_00016288.jpg", "width": 200, "id": 16287, "height": 234}, {"file_name": "ADE_train_00016289.jpg", "width": 380, "id": 16288, "height": 700}, {"file_name": "ADE_train_00016290.jpg", "width": 450, "id": 16289, "height": 600}, {"file_name": "ADE_train_00016291.jpg", "width": 225, "id": 16290, "height": 300}, {"file_name": "ADE_train_00016292.jpg", "width": 512, "id": 16291, "height": 647}, {"file_name": "ADE_train_00016293.jpg", "width": 512, "id": 16292, "height": 683}, {"file_name": "ADE_train_00016294.jpg", "width": 512, "id": 16293, "height": 683}, {"file_name": "ADE_train_00016295.jpg", "width": 512, "id": 16294, "height": 685}, {"file_name": "ADE_train_00016296.jpg", "width": 300, "id": 16295, "height": 291}, {"file_name": "ADE_train_00016297.jpg", "width": 500, "id": 16296, "height": 375}, {"file_name": "ADE_train_00016298.jpg", "width": 250, "id": 16297, "height": 188}, {"file_name": "ADE_train_00016299.jpg", "width": 500, "id": 16298, "height": 375}, {"file_name": "ADE_train_00016300.jpg", "width": 384, "id": 16299, "height": 256}, {"file_name": "ADE_train_00016301.jpg", "width": 586, "id": 16300, "height": 512}, {"file_name": "ADE_train_00016302.jpg", "width": 683, "id": 16301, "height": 512}, {"file_name": "ADE_train_00016303.jpg", "width": 300, "id": 16302, "height": 450}, {"file_name": "ADE_train_00016304.jpg", "width": 683, "id": 16303, "height": 512}, {"file_name": "ADE_train_00016305.jpg", "width": 710, "id": 16304, "height": 512}, {"file_name": "ADE_train_00016306.jpg", "width": 700, "id": 16305, "height": 467}, {"file_name": "ADE_train_00016307.jpg", "width": 550, "id": 16306, "height": 372}, {"file_name": "ADE_train_00016308.jpg", "width": 300, "id": 16307, "height": 200}, {"file_name": "ADE_train_00016309.jpg", "width": 550, "id": 16308, "height": 403}, {"file_name": "ADE_train_00016310.jpg", "width": 400, "id": 16309, "height": 300}, {"file_name": "ADE_train_00016311.jpg", "width": 540, "id": 16310, "height": 390}, {"file_name": "ADE_train_00016312.jpg", "width": 550, "id": 16311, "height": 373}, {"file_name": "ADE_train_00016313.jpg", "width": 735, "id": 16312, "height": 512}, {"file_name": "ADE_train_00016314.jpg", "width": 500, "id": 16313, "height": 323}, {"file_name": "ADE_train_00016315.jpg", "width": 683, "id": 16314, "height": 512}, {"file_name": "ADE_train_00016316.jpg", "width": 684, "id": 16315, "height": 512}, {"file_name": "ADE_train_00016317.jpg", "width": 352, "id": 16316, "height": 440}, {"file_name": "ADE_train_00016318.jpg", "width": 768, "id": 16317, "height": 512}, {"file_name": "ADE_train_00016319.jpg", "width": 294, "id": 16318, "height": 221}, {"file_name": "ADE_train_00016320.jpg", "width": 640, "id": 16319, "height": 439}, {"file_name": "ADE_train_00016321.jpg", "width": 640, "id": 16320, "height": 480}, {"file_name": "ADE_train_00016322.jpg", "width": 300, "id": 16321, "height": 225}, {"file_name": "ADE_train_00016323.jpg", "width": 678, "id": 16322, "height": 512}, {"file_name": "ADE_train_00016324.jpg", "width": 361, "id": 16323, "height": 271}, {"file_name": "ADE_train_00016325.jpg", "width": 640, "id": 16324, "height": 480}, {"file_name": "ADE_train_00016326.jpg", "width": 350, "id": 16325, "height": 262}, {"file_name": "ADE_train_00016327.jpg", "width": 400, "id": 16326, "height": 300}, {"file_name": "ADE_train_00016328.jpg", "width": 640, "id": 16327, "height": 480}, {"file_name": "ADE_train_00016329.jpg", "width": 256, "id": 16328, "height": 256}, {"file_name": "ADE_train_00016330.jpg", "width": 266, "id": 16329, "height": 309}, {"file_name": "ADE_train_00016331.jpg", "width": 256, "id": 16330, "height": 256}, {"file_name": "ADE_train_00016332.jpg", "width": 500, "id": 16331, "height": 337}, {"file_name": "ADE_train_00016333.jpg", "width": 256, "id": 16332, "height": 256}, {"file_name": "ADE_train_00016334.jpg", "width": 540, "id": 16333, "height": 359}, {"file_name": "ADE_train_00016335.jpg", "width": 350, "id": 16334, "height": 263}, {"file_name": "ADE_train_00016336.jpg", "width": 256, "id": 16335, "height": 256}, {"file_name": "ADE_train_00016337.jpg", "width": 256, "id": 16336, "height": 256}, {"file_name": "ADE_train_00016338.jpg", "width": 256, "id": 16337, "height": 256}, {"file_name": "ADE_train_00016339.jpg", "width": 768, "id": 16338, "height": 512}, {"file_name": "ADE_train_00016340.jpg", "width": 315, "id": 16339, "height": 190}, {"file_name": "ADE_train_00016341.jpg", "width": 683, "id": 16340, "height": 512}, {"file_name": "ADE_train_00016342.jpg", "width": 449, "id": 16341, "height": 174}, {"file_name": "ADE_train_00016343.jpg", "width": 600, "id": 16342, "height": 398}, {"file_name": "ADE_train_00016344.jpg", "width": 783, "id": 16343, "height": 512}, {"file_name": "ADE_train_00016345.jpg", "width": 200, "id": 16344, "height": 200}, {"file_name": "ADE_train_00016346.jpg", "width": 227, "id": 16345, "height": 270}, {"file_name": "ADE_train_00016347.jpg", "width": 625, "id": 16346, "height": 468}, {"file_name": "ADE_train_00016348.jpg", "width": 250, "id": 16347, "height": 197}, {"file_name": "ADE_train_00016349.jpg", "width": 652, "id": 16348, "height": 422}, {"file_name": "ADE_train_00016350.jpg", "width": 250, "id": 16349, "height": 188}, {"file_name": "ADE_train_00016351.jpg", "width": 384, "id": 16350, "height": 256}, {"file_name": "ADE_train_00016352.jpg", "width": 765, "id": 16351, "height": 512}, {"file_name": "ADE_train_00016353.jpg", "width": 450, "id": 16352, "height": 450}, {"file_name": "ADE_train_00016354.jpg", "width": 384, "id": 16353, "height": 256}, {"file_name": "ADE_train_00016355.jpg", "width": 384, "id": 16354, "height": 256}, {"file_name": "ADE_train_00016356.jpg", "width": 256, "id": 16355, "height": 256}, {"file_name": "ADE_train_00016357.jpg", "width": 256, "id": 16356, "height": 256}, {"file_name": "ADE_train_00016358.jpg", "width": 256, "id": 16357, "height": 256}, {"file_name": "ADE_train_00016359.jpg", "width": 256, "id": 16358, "height": 256}, {"file_name": "ADE_train_00016360.jpg", "width": 256, "id": 16359, "height": 256}, {"file_name": "ADE_train_00016361.jpg", "width": 450, "id": 16360, "height": 291}, {"file_name": "ADE_train_00016362.jpg", "width": 256, "id": 16361, "height": 256}, {"file_name": "ADE_train_00016363.jpg", "width": 480, "id": 16362, "height": 640}, {"file_name": "ADE_train_00016364.jpg", "width": 256, "id": 16363, "height": 256}, {"file_name": "ADE_train_00016365.jpg", "width": 256, "id": 16364, "height": 256}, {"file_name": "ADE_train_00016366.jpg", "width": 256, "id": 16365, "height": 256}, {"file_name": "ADE_train_00016367.jpg", "width": 256, "id": 16366, "height": 256}, {"file_name": "ADE_train_00016368.jpg", "width": 256, "id": 16367, "height": 256}, {"file_name": "ADE_train_00016369.jpg", "width": 256, "id": 16368, "height": 256}, {"file_name": "ADE_train_00016370.jpg", "width": 256, "id": 16369, "height": 256}, {"file_name": "ADE_train_00016371.jpg", "width": 256, "id": 16370, "height": 256}, {"file_name": "ADE_train_00016372.jpg", "width": 256, "id": 16371, "height": 256}, {"file_name": "ADE_train_00016373.jpg", "width": 256, "id": 16372, "height": 256}, {"file_name": "ADE_train_00016374.jpg", "width": 256, "id": 16373, "height": 256}, {"file_name": "ADE_train_00016375.jpg", "width": 256, "id": 16374, "height": 256}, {"file_name": "ADE_train_00016376.jpg", "width": 256, "id": 16375, "height": 256}, {"file_name": "ADE_train_00016377.jpg", "width": 256, "id": 16376, "height": 256}, {"file_name": "ADE_train_00016378.jpg", "width": 256, "id": 16377, "height": 256}, {"file_name": "ADE_train_00016379.jpg", "width": 256, "id": 16378, "height": 256}, {"file_name": "ADE_train_00016380.jpg", "width": 256, "id": 16379, "height": 256}, {"file_name": "ADE_train_00016381.jpg", "width": 256, "id": 16380, "height": 256}, {"file_name": "ADE_train_00016382.jpg", "width": 256, "id": 16381, "height": 256}, {"file_name": "ADE_train_00016383.jpg", "width": 256, "id": 16382, "height": 256}, {"file_name": "ADE_train_00016384.jpg", "width": 256, "id": 16383, "height": 256}, {"file_name": "ADE_train_00016385.jpg", "width": 256, "id": 16384, "height": 256}, {"file_name": "ADE_train_00016386.jpg", "width": 256, "id": 16385, "height": 256}, {"file_name": "ADE_train_00016387.jpg", "width": 256, "id": 16386, "height": 256}, {"file_name": "ADE_train_00016388.jpg", "width": 256, "id": 16387, "height": 256}, {"file_name": "ADE_train_00016389.jpg", "width": 256, "id": 16388, "height": 256}, {"file_name": "ADE_train_00016390.jpg", "width": 256, "id": 16389, "height": 256}, {"file_name": "ADE_train_00016391.jpg", "width": 256, "id": 16390, "height": 256}, {"file_name": "ADE_train_00016392.jpg", "width": 256, "id": 16391, "height": 256}, {"file_name": "ADE_train_00016393.jpg", "width": 256, "id": 16392, "height": 256}, {"file_name": "ADE_train_00016394.jpg", "width": 256, "id": 16393, "height": 256}, {"file_name": "ADE_train_00016395.jpg", "width": 256, "id": 16394, "height": 256}, {"file_name": "ADE_train_00016396.jpg", "width": 256, "id": 16395, "height": 256}, {"file_name": "ADE_train_00016397.jpg", "width": 256, "id": 16396, "height": 256}, {"file_name": "ADE_train_00016398.jpg", "width": 250, "id": 16397, "height": 197}, {"file_name": "ADE_train_00016399.jpg", "width": 256, "id": 16398, "height": 256}, {"file_name": "ADE_train_00016400.jpg", "width": 256, "id": 16399, "height": 256}, {"file_name": "ADE_train_00016401.jpg", "width": 256, "id": 16400, "height": 256}, {"file_name": "ADE_train_00016402.jpg", "width": 256, "id": 16401, "height": 256}, {"file_name": "ADE_train_00016403.jpg", "width": 256, "id": 16402, "height": 256}, {"file_name": "ADE_train_00016404.jpg", "width": 256, "id": 16403, "height": 256}, {"file_name": "ADE_train_00016405.jpg", "width": 256, "id": 16404, "height": 256}, {"file_name": "ADE_train_00016406.jpg", "width": 300, "id": 16405, "height": 400}, {"file_name": "ADE_train_00016407.jpg", "width": 256, "id": 16406, "height": 256}, {"file_name": "ADE_train_00016408.jpg", "width": 256, "id": 16407, "height": 256}, {"file_name": "ADE_train_00016409.jpg", "width": 256, "id": 16408, "height": 256}, {"file_name": "ADE_train_00016410.jpg", "width": 256, "id": 16409, "height": 256}, {"file_name": "ADE_train_00016411.jpg", "width": 256, "id": 16410, "height": 256}, {"file_name": "ADE_train_00016412.jpg", "width": 256, "id": 16411, "height": 256}, {"file_name": "ADE_train_00016413.jpg", "width": 256, "id": 16412, "height": 256}, {"file_name": "ADE_train_00016414.jpg", "width": 256, "id": 16413, "height": 256}, {"file_name": "ADE_train_00016415.jpg", "width": 256, "id": 16414, "height": 256}, {"file_name": "ADE_train_00016416.jpg", "width": 256, "id": 16415, "height": 256}, {"file_name": "ADE_train_00016417.jpg", "width": 256, "id": 16416, "height": 256}, {"file_name": "ADE_train_00016418.jpg", "width": 256, "id": 16417, "height": 256}, {"file_name": "ADE_train_00016419.jpg", "width": 256, "id": 16418, "height": 256}, {"file_name": "ADE_train_00016420.jpg", "width": 256, "id": 16419, "height": 256}, {"file_name": "ADE_train_00016421.jpg", "width": 256, "id": 16420, "height": 256}, {"file_name": "ADE_train_00016422.jpg", "width": 256, "id": 16421, "height": 256}, {"file_name": "ADE_train_00016423.jpg", "width": 256, "id": 16422, "height": 256}, {"file_name": "ADE_train_00016424.jpg", "width": 256, "id": 16423, "height": 256}, {"file_name": "ADE_train_00016425.jpg", "width": 512, "id": 16424, "height": 640}, {"file_name": "ADE_train_00016426.jpg", "width": 256, "id": 16425, "height": 256}, {"file_name": "ADE_train_00016427.jpg", "width": 256, "id": 16426, "height": 256}, {"file_name": "ADE_train_00016428.jpg", "width": 256, "id": 16427, "height": 256}, {"file_name": "ADE_train_00016429.jpg", "width": 256, "id": 16428, "height": 256}, {"file_name": "ADE_train_00016430.jpg", "width": 256, "id": 16429, "height": 256}, {"file_name": "ADE_train_00016431.jpg", "width": 256, "id": 16430, "height": 256}, {"file_name": "ADE_train_00016432.jpg", "width": 256, "id": 16431, "height": 256}, {"file_name": "ADE_train_00016433.jpg", "width": 256, "id": 16432, "height": 256}, {"file_name": "ADE_train_00016434.jpg", "width": 256, "id": 16433, "height": 256}, {"file_name": "ADE_train_00016435.jpg", "width": 256, "id": 16434, "height": 256}, {"file_name": "ADE_train_00016436.jpg", "width": 256, "id": 16435, "height": 256}, {"file_name": "ADE_train_00016437.jpg", "width": 256, "id": 16436, "height": 256}, {"file_name": "ADE_train_00016438.jpg", "width": 256, "id": 16437, "height": 256}, {"file_name": "ADE_train_00016439.jpg", "width": 256, "id": 16438, "height": 256}, {"file_name": "ADE_train_00016440.jpg", "width": 256, "id": 16439, "height": 256}, {"file_name": "ADE_train_00016441.jpg", "width": 256, "id": 16440, "height": 256}, {"file_name": "ADE_train_00016442.jpg", "width": 256, "id": 16441, "height": 256}, {"file_name": "ADE_train_00016443.jpg", "width": 256, "id": 16442, "height": 256}, {"file_name": "ADE_train_00016444.jpg", "width": 256, "id": 16443, "height": 256}, {"file_name": "ADE_train_00016445.jpg", "width": 256, "id": 16444, "height": 256}, {"file_name": "ADE_train_00016446.jpg", "width": 256, "id": 16445, "height": 256}, {"file_name": "ADE_train_00016447.jpg", "width": 640, "id": 16446, "height": 512}, {"file_name": "ADE_train_00016448.jpg", "width": 256, "id": 16447, "height": 256}, {"file_name": "ADE_train_00016449.jpg", "width": 256, "id": 16448, "height": 256}, {"file_name": "ADE_train_00016450.jpg", "width": 256, "id": 16449, "height": 256}, {"file_name": "ADE_train_00016451.jpg", "width": 256, "id": 16450, "height": 256}, {"file_name": "ADE_train_00016452.jpg", "width": 256, "id": 16451, "height": 256}, {"file_name": "ADE_train_00016453.jpg", "width": 256, "id": 16452, "height": 256}, {"file_name": "ADE_train_00016454.jpg", "width": 256, "id": 16453, "height": 256}, {"file_name": "ADE_train_00016455.jpg", "width": 256, "id": 16454, "height": 256}, {"file_name": "ADE_train_00016456.jpg", "width": 256, "id": 16455, "height": 256}, {"file_name": "ADE_train_00016457.jpg", "width": 256, "id": 16456, "height": 256}, {"file_name": "ADE_train_00016458.jpg", "width": 256, "id": 16457, "height": 256}, {"file_name": "ADE_train_00016459.jpg", "width": 256, "id": 16458, "height": 256}, {"file_name": "ADE_train_00016460.jpg", "width": 256, "id": 16459, "height": 256}, {"file_name": "ADE_train_00016461.jpg", "width": 256, "id": 16460, "height": 256}, {"file_name": "ADE_train_00016462.jpg", "width": 256, "id": 16461, "height": 256}, {"file_name": "ADE_train_00016463.jpg", "width": 256, "id": 16462, "height": 256}, {"file_name": "ADE_train_00016464.jpg", "width": 256, "id": 16463, "height": 256}, {"file_name": "ADE_train_00016465.jpg", "width": 256, "id": 16464, "height": 256}, {"file_name": "ADE_train_00016466.jpg", "width": 256, "id": 16465, "height": 256}, {"file_name": "ADE_train_00016467.jpg", "width": 256, "id": 16466, "height": 256}, {"file_name": "ADE_train_00016468.jpg", "width": 256, "id": 16467, "height": 256}, {"file_name": "ADE_train_00016469.jpg", "width": 256, "id": 16468, "height": 256}, {"file_name": "ADE_train_00016470.jpg", "width": 256, "id": 16469, "height": 256}, {"file_name": "ADE_train_00016471.jpg", "width": 256, "id": 16470, "height": 256}, {"file_name": "ADE_train_00016472.jpg", "width": 256, "id": 16471, "height": 256}, {"file_name": "ADE_train_00016473.jpg", "width": 445, "id": 16472, "height": 290}, {"file_name": "ADE_train_00016474.jpg", "width": 256, "id": 16473, "height": 256}, {"file_name": "ADE_train_00016475.jpg", "width": 256, "id": 16474, "height": 256}, {"file_name": "ADE_train_00016476.jpg", "width": 256, "id": 16475, "height": 256}, {"file_name": "ADE_train_00016477.jpg", "width": 324, "id": 16476, "height": 484}, {"file_name": "ADE_train_00016478.jpg", "width": 300, "id": 16477, "height": 218}, {"file_name": "ADE_train_00016479.jpg", "width": 256, "id": 16478, "height": 256}, {"file_name": "ADE_train_00016480.jpg", "width": 256, "id": 16479, "height": 256}, {"file_name": "ADE_train_00016481.jpg", "width": 256, "id": 16480, "height": 256}, {"file_name": "ADE_train_00016482.jpg", "width": 256, "id": 16481, "height": 256}, {"file_name": "ADE_train_00016483.jpg", "width": 256, "id": 16482, "height": 256}, {"file_name": "ADE_train_00016484.jpg", "width": 256, "id": 16483, "height": 256}, {"file_name": "ADE_train_00016485.jpg", "width": 256, "id": 16484, "height": 256}, {"file_name": "ADE_train_00016486.jpg", "width": 256, "id": 16485, "height": 256}, {"file_name": "ADE_train_00016487.jpg", "width": 256, "id": 16486, "height": 256}, {"file_name": "ADE_train_00016488.jpg", "width": 256, "id": 16487, "height": 256}, {"file_name": "ADE_train_00016489.jpg", "width": 256, "id": 16488, "height": 256}, {"file_name": "ADE_train_00016490.jpg", "width": 256, "id": 16489, "height": 256}, {"file_name": "ADE_train_00016491.jpg", "width": 256, "id": 16490, "height": 256}, {"file_name": "ADE_train_00016492.jpg", "width": 256, "id": 16491, "height": 256}, {"file_name": "ADE_train_00016493.jpg", "width": 256, "id": 16492, "height": 256}, {"file_name": "ADE_train_00016494.jpg", "width": 256, "id": 16493, "height": 256}, {"file_name": "ADE_train_00016495.jpg", "width": 256, "id": 16494, "height": 256}, {"file_name": "ADE_train_00016496.jpg", "width": 512, "id": 16495, "height": 768}, {"file_name": "ADE_train_00016497.jpg", "width": 256, "id": 16496, "height": 256}, {"file_name": "ADE_train_00016498.jpg", "width": 256, "id": 16497, "height": 256}, {"file_name": "ADE_train_00016499.jpg", "width": 256, "id": 16498, "height": 256}, {"file_name": "ADE_train_00016500.jpg", "width": 256, "id": 16499, "height": 256}, {"file_name": "ADE_train_00016501.jpg", "width": 260, "id": 16500, "height": 400}, {"file_name": "ADE_train_00016502.jpg", "width": 256, "id": 16501, "height": 256}, {"file_name": "ADE_train_00016503.jpg", "width": 256, "id": 16502, "height": 256}, {"file_name": "ADE_train_00016504.jpg", "width": 256, "id": 16503, "height": 256}, {"file_name": "ADE_train_00016505.jpg", "width": 256, "id": 16504, "height": 256}, {"file_name": "ADE_train_00016506.jpg", "width": 256, "id": 16505, "height": 256}, {"file_name": "ADE_train_00016507.jpg", "width": 256, "id": 16506, "height": 256}, {"file_name": "ADE_train_00016508.jpg", "width": 256, "id": 16507, "height": 256}, {"file_name": "ADE_train_00016509.jpg", "width": 256, "id": 16508, "height": 256}, {"file_name": "ADE_train_00016510.jpg", "width": 256, "id": 16509, "height": 256}, {"file_name": "ADE_train_00016511.jpg", "width": 256, "id": 16510, "height": 256}, {"file_name": "ADE_train_00016512.jpg", "width": 256, "id": 16511, "height": 256}, {"file_name": "ADE_train_00016513.jpg", "width": 256, "id": 16512, "height": 256}, {"file_name": "ADE_train_00016514.jpg", "width": 256, "id": 16513, "height": 256}, {"file_name": "ADE_train_00016515.jpg", "width": 256, "id": 16514, "height": 256}, {"file_name": "ADE_train_00016516.jpg", "width": 256, "id": 16515, "height": 256}, {"file_name": "ADE_train_00016517.jpg", "width": 256, "id": 16516, "height": 256}, {"file_name": "ADE_train_00016518.jpg", "width": 576, "id": 16517, "height": 388}, {"file_name": "ADE_train_00016519.jpg", "width": 256, "id": 16518, "height": 256}, {"file_name": "ADE_train_00016520.jpg", "width": 256, "id": 16519, "height": 256}, {"file_name": "ADE_train_00016521.jpg", "width": 256, "id": 16520, "height": 256}, {"file_name": "ADE_train_00016522.jpg", "width": 256, "id": 16521, "height": 256}, {"file_name": "ADE_train_00016523.jpg", "width": 256, "id": 16522, "height": 256}, {"file_name": "ADE_train_00016524.jpg", "width": 256, "id": 16523, "height": 256}, {"file_name": "ADE_train_00016525.jpg", "width": 256, "id": 16524, "height": 256}, {"file_name": "ADE_train_00016526.jpg", "width": 256, "id": 16525, "height": 256}, {"file_name": "ADE_train_00016527.jpg", "width": 256, "id": 16526, "height": 256}, {"file_name": "ADE_train_00016528.jpg", "width": 256, "id": 16527, "height": 256}, {"file_name": "ADE_train_00016529.jpg", "width": 256, "id": 16528, "height": 256}, {"file_name": "ADE_train_00016530.jpg", "width": 350, "id": 16529, "height": 233}, {"file_name": "ADE_train_00016531.jpg", "width": 256, "id": 16530, "height": 256}, {"file_name": "ADE_train_00016532.jpg", "width": 256, "id": 16531, "height": 256}, {"file_name": "ADE_train_00016533.jpg", "width": 256, "id": 16532, "height": 256}, {"file_name": "ADE_train_00016534.jpg", "width": 256, "id": 16533, "height": 256}, {"file_name": "ADE_train_00016535.jpg", "width": 256, "id": 16534, "height": 256}, {"file_name": "ADE_train_00016536.jpg", "width": 600, "id": 16535, "height": 450}, {"file_name": "ADE_train_00016537.jpg", "width": 256, "id": 16536, "height": 256}, {"file_name": "ADE_train_00016538.jpg", "width": 256, "id": 16537, "height": 256}, {"file_name": "ADE_train_00016539.jpg", "width": 256, "id": 16538, "height": 256}, {"file_name": "ADE_train_00016540.jpg", "width": 256, "id": 16539, "height": 256}, {"file_name": "ADE_train_00016541.jpg", "width": 256, "id": 16540, "height": 256}, {"file_name": "ADE_train_00016542.jpg", "width": 256, "id": 16541, "height": 256}, {"file_name": "ADE_train_00016543.jpg", "width": 256, "id": 16542, "height": 256}, {"file_name": "ADE_train_00016544.jpg", "width": 256, "id": 16543, "height": 256}, {"file_name": "ADE_train_00016545.jpg", "width": 200, "id": 16544, "height": 300}, {"file_name": "ADE_train_00016546.jpg", "width": 256, "id": 16545, "height": 256}, {"file_name": "ADE_train_00016547.jpg", "width": 256, "id": 16546, "height": 256}, {"file_name": "ADE_train_00016548.jpg", "width": 256, "id": 16547, "height": 256}, {"file_name": "ADE_train_00016549.jpg", "width": 512, "id": 16548, "height": 782}, {"file_name": "ADE_train_00016550.jpg", "width": 256, "id": 16549, "height": 256}, {"file_name": "ADE_train_00016551.jpg", "width": 256, "id": 16550, "height": 256}, {"file_name": "ADE_train_00016552.jpg", "width": 256, "id": 16551, "height": 256}, {"file_name": "ADE_train_00016553.jpg", "width": 256, "id": 16552, "height": 256}, {"file_name": "ADE_train_00016554.jpg", "width": 256, "id": 16553, "height": 256}, {"file_name": "ADE_train_00016555.jpg", "width": 256, "id": 16554, "height": 256}, {"file_name": "ADE_train_00016556.jpg", "width": 256, "id": 16555, "height": 256}, {"file_name": "ADE_train_00016557.jpg", "width": 256, "id": 16556, "height": 256}, {"file_name": "ADE_train_00016558.jpg", "width": 256, "id": 16557, "height": 256}, {"file_name": "ADE_train_00016559.jpg", "width": 256, "id": 16558, "height": 256}, {"file_name": "ADE_train_00016560.jpg", "width": 256, "id": 16559, "height": 256}, {"file_name": "ADE_train_00016561.jpg", "width": 256, "id": 16560, "height": 256}, {"file_name": "ADE_train_00016562.jpg", "width": 256, "id": 16561, "height": 256}, {"file_name": "ADE_train_00016563.jpg", "width": 256, "id": 16562, "height": 256}, {"file_name": "ADE_train_00016564.jpg", "width": 256, "id": 16563, "height": 256}, {"file_name": "ADE_train_00016565.jpg", "width": 256, "id": 16564, "height": 256}, {"file_name": "ADE_train_00016566.jpg", "width": 256, "id": 16565, "height": 256}, {"file_name": "ADE_train_00016567.jpg", "width": 256, "id": 16566, "height": 256}, {"file_name": "ADE_train_00016568.jpg", "width": 256, "id": 16567, "height": 256}, {"file_name": "ADE_train_00016569.jpg", "width": 256, "id": 16568, "height": 256}, {"file_name": "ADE_train_00016570.jpg", "width": 256, "id": 16569, "height": 256}, {"file_name": "ADE_train_00016571.jpg", "width": 256, "id": 16570, "height": 256}, {"file_name": "ADE_train_00016572.jpg", "width": 300, "id": 16571, "height": 241}, {"file_name": "ADE_train_00016573.jpg", "width": 256, "id": 16572, "height": 256}, {"file_name": "ADE_train_00016574.jpg", "width": 256, "id": 16573, "height": 256}, {"file_name": "ADE_train_00016575.jpg", "width": 256, "id": 16574, "height": 256}, {"file_name": "ADE_train_00016576.jpg", "width": 256, "id": 16575, "height": 256}, {"file_name": "ADE_train_00016577.jpg", "width": 256, "id": 16576, "height": 256}, {"file_name": "ADE_train_00016578.jpg", "width": 256, "id": 16577, "height": 256}, {"file_name": "ADE_train_00016579.jpg", "width": 256, "id": 16578, "height": 256}, {"file_name": "ADE_train_00016580.jpg", "width": 256, "id": 16579, "height": 256}, {"file_name": "ADE_train_00016581.jpg", "width": 256, "id": 16580, "height": 256}, {"file_name": "ADE_train_00016582.jpg", "width": 256, "id": 16581, "height": 256}, {"file_name": "ADE_train_00016583.jpg", "width": 256, "id": 16582, "height": 256}, {"file_name": "ADE_train_00016584.jpg", "width": 256, "id": 16583, "height": 256}, {"file_name": "ADE_train_00016585.jpg", "width": 256, "id": 16584, "height": 256}, {"file_name": "ADE_train_00016586.jpg", "width": 256, "id": 16585, "height": 256}, {"file_name": "ADE_train_00016587.jpg", "width": 256, "id": 16586, "height": 256}, {"file_name": "ADE_train_00016588.jpg", "width": 256, "id": 16587, "height": 256}, {"file_name": "ADE_train_00016589.jpg", "width": 256, "id": 16588, "height": 256}, {"file_name": "ADE_train_00016590.jpg", "width": 256, "id": 16589, "height": 256}, {"file_name": "ADE_train_00016591.jpg", "width": 256, "id": 16590, "height": 256}, {"file_name": "ADE_train_00016592.jpg", "width": 256, "id": 16591, "height": 256}, {"file_name": "ADE_train_00016593.jpg", "width": 256, "id": 16592, "height": 256}, {"file_name": "ADE_train_00016594.jpg", "width": 256, "id": 16593, "height": 256}, {"file_name": "ADE_train_00016595.jpg", "width": 256, "id": 16594, "height": 256}, {"file_name": "ADE_train_00016596.jpg", "width": 256, "id": 16595, "height": 256}, {"file_name": "ADE_train_00016597.jpg", "width": 256, "id": 16596, "height": 256}, {"file_name": "ADE_train_00016598.jpg", "width": 256, "id": 16597, "height": 256}, {"file_name": "ADE_train_00016599.jpg", "width": 256, "id": 16598, "height": 256}, {"file_name": "ADE_train_00016600.jpg", "width": 256, "id": 16599, "height": 256}, {"file_name": "ADE_train_00016601.jpg", "width": 256, "id": 16600, "height": 256}, {"file_name": "ADE_train_00016602.jpg", "width": 277, "id": 16601, "height": 432}, {"file_name": "ADE_train_00016603.jpg", "width": 256, "id": 16602, "height": 256}, {"file_name": "ADE_train_00016604.jpg", "width": 256, "id": 16603, "height": 256}, {"file_name": "ADE_train_00016605.jpg", "width": 256, "id": 16604, "height": 256}, {"file_name": "ADE_train_00016606.jpg", "width": 256, "id": 16605, "height": 256}, {"file_name": "ADE_train_00016607.jpg", "width": 256, "id": 16606, "height": 256}, {"file_name": "ADE_train_00016608.jpg", "width": 256, "id": 16607, "height": 256}, {"file_name": "ADE_train_00016609.jpg", "width": 256, "id": 16608, "height": 256}, {"file_name": "ADE_train_00016610.jpg", "width": 256, "id": 16609, "height": 256}, {"file_name": "ADE_train_00016611.jpg", "width": 256, "id": 16610, "height": 256}, {"file_name": "ADE_train_00016612.jpg", "width": 256, "id": 16611, "height": 256}, {"file_name": "ADE_train_00016613.jpg", "width": 683, "id": 16612, "height": 512}, {"file_name": "ADE_train_00016614.jpg", "width": 256, "id": 16613, "height": 256}, {"file_name": "ADE_train_00016615.jpg", "width": 587, "id": 16614, "height": 441}, {"file_name": "ADE_train_00016616.jpg", "width": 480, "id": 16615, "height": 640}, {"file_name": "ADE_train_00016617.jpg", "width": 256, "id": 16616, "height": 256}, {"file_name": "ADE_train_00016618.jpg", "width": 256, "id": 16617, "height": 256}, {"file_name": "ADE_train_00016619.jpg", "width": 256, "id": 16618, "height": 256}, {"file_name": "ADE_train_00016620.jpg", "width": 256, "id": 16619, "height": 256}, {"file_name": "ADE_train_00016621.jpg", "width": 256, "id": 16620, "height": 256}, {"file_name": "ADE_train_00016622.jpg", "width": 256, "id": 16621, "height": 256}, {"file_name": "ADE_train_00016623.jpg", "width": 256, "id": 16622, "height": 256}, {"file_name": "ADE_train_00016624.jpg", "width": 256, "id": 16623, "height": 256}, {"file_name": "ADE_train_00016625.jpg", "width": 256, "id": 16624, "height": 256}, {"file_name": "ADE_train_00016626.jpg", "width": 256, "id": 16625, "height": 256}, {"file_name": "ADE_train_00016627.jpg", "width": 256, "id": 16626, "height": 256}, {"file_name": "ADE_train_00016628.jpg", "width": 397, "id": 16627, "height": 583}, {"file_name": "ADE_train_00016629.jpg", "width": 256, "id": 16628, "height": 256}, {"file_name": "ADE_train_00016630.jpg", "width": 355, "id": 16629, "height": 402}, {"file_name": "ADE_train_00016631.jpg", "width": 256, "id": 16630, "height": 256}, {"file_name": "ADE_train_00016632.jpg", "width": 256, "id": 16631, "height": 256}, {"file_name": "ADE_train_00016633.jpg", "width": 256, "id": 16632, "height": 256}, {"file_name": "ADE_train_00016634.jpg", "width": 256, "id": 16633, "height": 256}, {"file_name": "ADE_train_00016635.jpg", "width": 256, "id": 16634, "height": 256}, {"file_name": "ADE_train_00016636.jpg", "width": 256, "id": 16635, "height": 256}, {"file_name": "ADE_train_00016637.jpg", "width": 256, "id": 16636, "height": 256}, {"file_name": "ADE_train_00016638.jpg", "width": 256, "id": 16637, "height": 256}, {"file_name": "ADE_train_00016639.jpg", "width": 256, "id": 16638, "height": 256}, {"file_name": "ADE_train_00016640.jpg", "width": 256, "id": 16639, "height": 256}, {"file_name": "ADE_train_00016641.jpg", "width": 256, "id": 16640, "height": 256}, {"file_name": "ADE_train_00016642.jpg", "width": 256, "id": 16641, "height": 256}, {"file_name": "ADE_train_00016643.jpg", "width": 256, "id": 16642, "height": 256}, {"file_name": "ADE_train_00016644.jpg", "width": 256, "id": 16643, "height": 256}, {"file_name": "ADE_train_00016645.jpg", "width": 256, "id": 16644, "height": 256}, {"file_name": "ADE_train_00016646.jpg", "width": 260, "id": 16645, "height": 365}, {"file_name": "ADE_train_00016647.jpg", "width": 256, "id": 16646, "height": 256}, {"file_name": "ADE_train_00016648.jpg", "width": 203, "id": 16647, "height": 300}, {"file_name": "ADE_train_00016649.jpg", "width": 203, "id": 16648, "height": 300}, {"file_name": "ADE_train_00016650.jpg", "width": 256, "id": 16649, "height": 256}, {"file_name": "ADE_train_00016651.jpg", "width": 256, "id": 16650, "height": 256}, {"file_name": "ADE_train_00016652.jpg", "width": 256, "id": 16651, "height": 256}, {"file_name": "ADE_train_00016653.jpg", "width": 500, "id": 16652, "height": 375}, {"file_name": "ADE_train_00016654.jpg", "width": 256, "id": 16653, "height": 256}, {"file_name": "ADE_train_00016655.jpg", "width": 256, "id": 16654, "height": 256}, {"file_name": "ADE_train_00016656.jpg", "width": 256, "id": 16655, "height": 256}, {"file_name": "ADE_train_00016657.jpg", "width": 512, "id": 16656, "height": 683}, {"file_name": "ADE_train_00016658.jpg", "width": 768, "id": 16657, "height": 512}, {"file_name": "ADE_train_00016659.jpg", "width": 512, "id": 16658, "height": 768}, {"file_name": "ADE_train_00016660.jpg", "width": 683, "id": 16659, "height": 512}, {"file_name": "ADE_train_00016661.jpg", "width": 512, "id": 16660, "height": 683}, {"file_name": "ADE_train_00016662.jpg", "width": 512, "id": 16661, "height": 683}, {"file_name": "ADE_train_00016663.jpg", "width": 512, "id": 16662, "height": 683}, {"file_name": "ADE_train_00016664.jpg", "width": 683, "id": 16663, "height": 512}, {"file_name": "ADE_train_00016665.jpg", "width": 512, "id": 16664, "height": 683}, {"file_name": "ADE_train_00016666.jpg", "width": 512, "id": 16665, "height": 683}, {"file_name": "ADE_train_00016667.jpg", "width": 683, "id": 16666, "height": 512}, {"file_name": "ADE_train_00016668.jpg", "width": 512, "id": 16667, "height": 683}, {"file_name": "ADE_train_00016669.jpg", "width": 512, "id": 16668, "height": 683}, {"file_name": "ADE_train_00016670.jpg", "width": 512, "id": 16669, "height": 769}, {"file_name": "ADE_train_00016671.jpg", "width": 512, "id": 16670, "height": 685}, {"file_name": "ADE_train_00016672.jpg", "width": 512, "id": 16671, "height": 682}, {"file_name": "ADE_train_00016673.jpg", "width": 512, "id": 16672, "height": 683}, {"file_name": "ADE_train_00016674.jpg", "width": 512, "id": 16673, "height": 684}, {"file_name": "ADE_train_00016675.jpg", "width": 450, "id": 16674, "height": 338}, {"file_name": "ADE_train_00016676.jpg", "width": 683, "id": 16675, "height": 512}, {"file_name": "ADE_train_00016677.jpg", "width": 400, "id": 16676, "height": 300}, {"file_name": "ADE_train_00016678.jpg", "width": 432, "id": 16677, "height": 506}, {"file_name": "ADE_train_00016679.jpg", "width": 683, "id": 16678, "height": 512}, {"file_name": "ADE_train_00016680.jpg", "width": 683, "id": 16679, "height": 512}, {"file_name": "ADE_train_00016681.jpg", "width": 960, "id": 16680, "height": 480}, {"file_name": "ADE_train_00016682.jpg", "width": 457, "id": 16681, "height": 310}, {"file_name": "ADE_train_00016683.jpg", "width": 350, "id": 16682, "height": 232}, {"file_name": "ADE_train_00016684.jpg", "width": 781, "id": 16683, "height": 512}, {"file_name": "ADE_train_00016685.jpg", "width": 683, "id": 16684, "height": 512}, {"file_name": "ADE_train_00016686.jpg", "width": 650, "id": 16685, "height": 430}, {"file_name": "ADE_train_00016687.jpg", "width": 683, "id": 16686, "height": 512}, {"file_name": "ADE_train_00016688.jpg", "width": 640, "id": 16687, "height": 476}, {"file_name": "ADE_train_00016689.jpg", "width": 600, "id": 16688, "height": 450}, {"file_name": "ADE_train_00016690.jpg", "width": 683, "id": 16689, "height": 512}, {"file_name": "ADE_train_00016691.jpg", "width": 320, "id": 16690, "height": 240}, {"file_name": "ADE_train_00016692.jpg", "width": 220, "id": 16691, "height": 165}, {"file_name": "ADE_train_00016693.jpg", "width": 256, "id": 16692, "height": 256}, {"file_name": "ADE_train_00016694.jpg", "width": 683, "id": 16693, "height": 512}, {"file_name": "ADE_train_00016695.jpg", "width": 256, "id": 16694, "height": 256}, {"file_name": "ADE_train_00016696.jpg", "width": 256, "id": 16695, "height": 256}, {"file_name": "ADE_train_00016697.jpg", "width": 256, "id": 16696, "height": 256}, {"file_name": "ADE_train_00016698.jpg", "width": 256, "id": 16697, "height": 256}, {"file_name": "ADE_train_00016699.jpg", "width": 256, "id": 16698, "height": 256}, {"file_name": "ADE_train_00016700.jpg", "width": 256, "id": 16699, "height": 256}, {"file_name": "ADE_train_00016701.jpg", "width": 256, "id": 16700, "height": 256}, {"file_name": "ADE_train_00016702.jpg", "width": 256, "id": 16701, "height": 256}, {"file_name": "ADE_train_00016703.jpg", "width": 360, "id": 16702, "height": 270}, {"file_name": "ADE_train_00016704.jpg", "width": 450, "id": 16703, "height": 600}, {"file_name": "ADE_train_00016705.jpg", "width": 800, "id": 16704, "height": 491}, {"file_name": "ADE_train_00016706.jpg", "width": 256, "id": 16705, "height": 256}, {"file_name": "ADE_train_00016707.jpg", "width": 768, "id": 16706, "height": 512}, {"file_name": "ADE_train_00016708.jpg", "width": 344, "id": 16707, "height": 250}, {"file_name": "ADE_train_00016709.jpg", "width": 683, "id": 16708, "height": 512}, {"file_name": "ADE_train_00016710.jpg", "width": 769, "id": 16709, "height": 512}, {"file_name": "ADE_train_00016711.jpg", "width": 400, "id": 16710, "height": 212}, {"file_name": "ADE_train_00016712.jpg", "width": 358, "id": 16711, "height": 215}, {"file_name": "ADE_train_00016713.jpg", "width": 768, "id": 16712, "height": 512}, {"file_name": "ADE_train_00016714.jpg", "width": 360, "id": 16713, "height": 240}, {"file_name": "ADE_train_00016715.jpg", "width": 512, "id": 16714, "height": 768}, {"file_name": "ADE_train_00016716.jpg", "width": 300, "id": 16715, "height": 300}, {"file_name": "ADE_train_00016717.jpg", "width": 400, "id": 16716, "height": 317}, {"file_name": "ADE_train_00016718.jpg", "width": 296, "id": 16717, "height": 204}, {"file_name": "ADE_train_00016719.jpg", "width": 500, "id": 16718, "height": 348}, {"file_name": "ADE_train_00016720.jpg", "width": 640, "id": 16719, "height": 480}, {"file_name": "ADE_train_00016721.jpg", "width": 600, "id": 16720, "height": 402}, {"file_name": "ADE_train_00016722.jpg", "width": 536, "id": 16721, "height": 512}, {"file_name": "ADE_train_00016723.jpg", "width": 250, "id": 16722, "height": 366}, {"file_name": "ADE_train_00016724.jpg", "width": 423, "id": 16723, "height": 289}, {"file_name": "ADE_train_00016725.jpg", "width": 640, "id": 16724, "height": 480}, {"file_name": "ADE_train_00016726.jpg", "width": 683, "id": 16725, "height": 512}, {"file_name": "ADE_train_00016727.jpg", "width": 640, "id": 16726, "height": 480}, {"file_name": "ADE_train_00016728.jpg", "width": 596, "id": 16727, "height": 400}, {"file_name": "ADE_train_00016729.jpg", "width": 631, "id": 16728, "height": 512}, {"file_name": "ADE_train_00016730.jpg", "width": 640, "id": 16729, "height": 480}, {"file_name": "ADE_train_00016731.jpg", "width": 175, "id": 16730, "height": 263}, {"file_name": "ADE_train_00016732.jpg", "width": 378, "id": 16731, "height": 272}, {"file_name": "ADE_train_00016733.jpg", "width": 480, "id": 16732, "height": 360}, {"file_name": "ADE_train_00016734.jpg", "width": 683, "id": 16733, "height": 512}, {"file_name": "ADE_train_00016735.jpg", "width": 682, "id": 16734, "height": 512}, {"file_name": "ADE_train_00016736.jpg", "width": 300, "id": 16735, "height": 225}, {"file_name": "ADE_train_00016737.jpg", "width": 356, "id": 16736, "height": 263}, {"file_name": "ADE_train_00016738.jpg", "width": 348, "id": 16737, "height": 209}, {"file_name": "ADE_train_00016739.jpg", "width": 400, "id": 16738, "height": 267}, {"file_name": "ADE_train_00016740.jpg", "width": 488, "id": 16739, "height": 366}, {"file_name": "ADE_train_00016741.jpg", "width": 721, "id": 16740, "height": 512}, {"file_name": "ADE_train_00016742.jpg", "width": 700, "id": 16741, "height": 469}, {"file_name": "ADE_train_00016743.jpg", "width": 500, "id": 16742, "height": 375}, {"file_name": "ADE_train_00016744.jpg", "width": 683, "id": 16743, "height": 512}, {"file_name": "ADE_train_00016745.jpg", "width": 256, "id": 16744, "height": 256}, {"file_name": "ADE_train_00016746.jpg", "width": 250, "id": 16745, "height": 357}, {"file_name": "ADE_train_00016747.jpg", "width": 320, "id": 16746, "height": 237}, {"file_name": "ADE_train_00016748.jpg", "width": 370, "id": 16747, "height": 243}, {"file_name": "ADE_train_00016749.jpg", "width": 465, "id": 16748, "height": 349}, {"file_name": "ADE_train_00016750.jpg", "width": 256, "id": 16749, "height": 256}, {"file_name": "ADE_train_00016751.jpg", "width": 500, "id": 16750, "height": 375}, {"file_name": "ADE_train_00016752.jpg", "width": 299, "id": 16751, "height": 224}, {"file_name": "ADE_train_00016753.jpg", "width": 300, "id": 16752, "height": 200}, {"file_name": "ADE_train_00016754.jpg", "width": 640, "id": 16753, "height": 430}, {"file_name": "ADE_train_00016755.jpg", "width": 640, "id": 16754, "height": 430}, {"file_name": "ADE_train_00016756.jpg", "width": 300, "id": 16755, "height": 200}, {"file_name": "ADE_train_00016757.jpg", "width": 743, "id": 16756, "height": 512}, {"file_name": "ADE_train_00016758.jpg", "width": 768, "id": 16757, "height": 512}, {"file_name": "ADE_train_00016759.jpg", "width": 250, "id": 16758, "height": 187}, {"file_name": "ADE_train_00016760.jpg", "width": 735, "id": 16759, "height": 512}, {"file_name": "ADE_train_00016761.jpg", "width": 770, "id": 16760, "height": 512}, {"file_name": "ADE_train_00016762.jpg", "width": 256, "id": 16761, "height": 256}, {"file_name": "ADE_train_00016763.jpg", "width": 516, "id": 16762, "height": 512}, {"file_name": "ADE_train_00016764.jpg", "width": 253, "id": 16763, "height": 160}, {"file_name": "ADE_train_00016765.jpg", "width": 480, "id": 16764, "height": 329}, {"file_name": "ADE_train_00016766.jpg", "width": 450, "id": 16765, "height": 338}, {"file_name": "ADE_train_00016767.jpg", "width": 512, "id": 16766, "height": 523}, {"file_name": "ADE_train_00016768.jpg", "width": 256, "id": 16767, "height": 256}, {"file_name": "ADE_train_00016769.jpg", "width": 683, "id": 16768, "height": 512}, {"file_name": "ADE_train_00016770.jpg", "width": 420, "id": 16769, "height": 254}, {"file_name": "ADE_train_00016771.jpg", "width": 768, "id": 16770, "height": 512}, {"file_name": "ADE_train_00016772.jpg", "width": 588, "id": 16771, "height": 441}, {"file_name": "ADE_train_00016773.jpg", "width": 600, "id": 16772, "height": 450}, {"file_name": "ADE_train_00016774.jpg", "width": 300, "id": 16773, "height": 225}, {"file_name": "ADE_train_00016775.jpg", "width": 200, "id": 16774, "height": 249}, {"file_name": "ADE_train_00016776.jpg", "width": 256, "id": 16775, "height": 256}, {"file_name": "ADE_train_00016777.jpg", "width": 320, "id": 16776, "height": 480}, {"file_name": "ADE_train_00016778.jpg", "width": 256, "id": 16777, "height": 256}, {"file_name": "ADE_train_00016779.jpg", "width": 300, "id": 16778, "height": 385}, {"file_name": "ADE_train_00016780.jpg", "width": 256, "id": 16779, "height": 256}, {"file_name": "ADE_train_00016781.jpg", "width": 452, "id": 16780, "height": 565}, {"file_name": "ADE_train_00016782.jpg", "width": 256, "id": 16781, "height": 256}, {"file_name": "ADE_train_00016783.jpg", "width": 256, "id": 16782, "height": 256}, {"file_name": "ADE_train_00016784.jpg", "width": 256, "id": 16783, "height": 256}, {"file_name": "ADE_train_00016785.jpg", "width": 256, "id": 16784, "height": 256}, {"file_name": "ADE_train_00016786.jpg", "width": 229, "id": 16785, "height": 367}, {"file_name": "ADE_train_00016787.jpg", "width": 256, "id": 16786, "height": 256}, {"file_name": "ADE_train_00016788.jpg", "width": 256, "id": 16787, "height": 256}, {"file_name": "ADE_train_00016789.jpg", "width": 256, "id": 16788, "height": 256}, {"file_name": "ADE_train_00016790.jpg", "width": 256, "id": 16789, "height": 256}, {"file_name": "ADE_train_00016791.jpg", "width": 256, "id": 16790, "height": 256}, {"file_name": "ADE_train_00016792.jpg", "width": 256, "id": 16791, "height": 256}, {"file_name": "ADE_train_00016793.jpg", "width": 348, "id": 16792, "height": 400}, {"file_name": "ADE_train_00016794.jpg", "width": 256, "id": 16793, "height": 256}, {"file_name": "ADE_train_00016795.jpg", "width": 256, "id": 16794, "height": 256}, {"file_name": "ADE_train_00016796.jpg", "width": 371, "id": 16795, "height": 512}, {"file_name": "ADE_train_00016797.jpg", "width": 256, "id": 16796, "height": 256}, {"file_name": "ADE_train_00016798.jpg", "width": 256, "id": 16797, "height": 256}, {"file_name": "ADE_train_00016799.jpg", "width": 256, "id": 16798, "height": 256}, {"file_name": "ADE_train_00016800.jpg", "width": 300, "id": 16799, "height": 384}, {"file_name": "ADE_train_00016801.jpg", "width": 211, "id": 16800, "height": 275}, {"file_name": "ADE_train_00016802.jpg", "width": 480, "id": 16801, "height": 640}, {"file_name": "ADE_train_00016803.jpg", "width": 256, "id": 16802, "height": 256}, {"file_name": "ADE_train_00016804.jpg", "width": 720, "id": 16803, "height": 480}, {"file_name": "ADE_train_00016805.jpg", "width": 256, "id": 16804, "height": 256}, {"file_name": "ADE_train_00016806.jpg", "width": 256, "id": 16805, "height": 256}, {"file_name": "ADE_train_00016807.jpg", "width": 256, "id": 16806, "height": 256}, {"file_name": "ADE_train_00016808.jpg", "width": 256, "id": 16807, "height": 256}, {"file_name": "ADE_train_00016809.jpg", "width": 256, "id": 16808, "height": 256}, {"file_name": "ADE_train_00016810.jpg", "width": 256, "id": 16809, "height": 256}, {"file_name": "ADE_train_00016811.jpg", "width": 429, "id": 16810, "height": 600}, {"file_name": "ADE_train_00016812.jpg", "width": 300, "id": 16811, "height": 458}, {"file_name": "ADE_train_00016813.jpg", "width": 256, "id": 16812, "height": 256}, {"file_name": "ADE_train_00016814.jpg", "width": 256, "id": 16813, "height": 256}, {"file_name": "ADE_train_00016815.jpg", "width": 512, "id": 16814, "height": 683}, {"file_name": "ADE_train_00016816.jpg", "width": 256, "id": 16815, "height": 256}, {"file_name": "ADE_train_00016817.jpg", "width": 230, "id": 16816, "height": 321}, {"file_name": "ADE_train_00016818.jpg", "width": 256, "id": 16817, "height": 256}, {"file_name": "ADE_train_00016819.jpg", "width": 256, "id": 16818, "height": 256}, {"file_name": "ADE_train_00016820.jpg", "width": 256, "id": 16819, "height": 256}, {"file_name": "ADE_train_00016821.jpg", "width": 256, "id": 16820, "height": 256}, {"file_name": "ADE_train_00016822.jpg", "width": 256, "id": 16821, "height": 256}, {"file_name": "ADE_train_00016823.jpg", "width": 256, "id": 16822, "height": 256}, {"file_name": "ADE_train_00016824.jpg", "width": 256, "id": 16823, "height": 256}, {"file_name": "ADE_train_00016825.jpg", "width": 683, "id": 16824, "height": 512}, {"file_name": "ADE_train_00016826.jpg", "width": 512, "id": 16825, "height": 683}, {"file_name": "ADE_train_00016827.jpg", "width": 225, "id": 16826, "height": 300}, {"file_name": "ADE_train_00016828.jpg", "width": 683, "id": 16827, "height": 512}, {"file_name": "ADE_train_00016829.jpg", "width": 683, "id": 16828, "height": 512}, {"file_name": "ADE_train_00016830.jpg", "width": 512, "id": 16829, "height": 768}, {"file_name": "ADE_train_00016831.jpg", "width": 512, "id": 16830, "height": 728}, {"file_name": "ADE_train_00016832.jpg", "width": 320, "id": 16831, "height": 240}, {"file_name": "ADE_train_00016833.jpg", "width": 512, "id": 16832, "height": 738}, {"file_name": "ADE_train_00016834.jpg", "width": 300, "id": 16833, "height": 225}, {"file_name": "ADE_train_00016835.jpg", "width": 253, "id": 16834, "height": 320}, {"file_name": "ADE_train_00016836.jpg", "width": 768, "id": 16835, "height": 512}, {"file_name": "ADE_train_00016837.jpg", "width": 250, "id": 16836, "height": 343}, {"file_name": "ADE_train_00016838.jpg", "width": 275, "id": 16837, "height": 200}, {"file_name": "ADE_train_00016839.jpg", "width": 450, "id": 16838, "height": 248}, {"file_name": "ADE_train_00016840.jpg", "width": 425, "id": 16839, "height": 318}, {"file_name": "ADE_train_00016841.jpg", "width": 683, "id": 16840, "height": 512}, {"file_name": "ADE_train_00016842.jpg", "width": 250, "id": 16841, "height": 306}, {"file_name": "ADE_train_00016843.jpg", "width": 683, "id": 16842, "height": 512}, {"file_name": "ADE_train_00016844.jpg", "width": 509, "id": 16843, "height": 384}, {"file_name": "ADE_train_00016845.jpg", "width": 380, "id": 16844, "height": 507}, {"file_name": "ADE_train_00016846.jpg", "width": 300, "id": 16845, "height": 180}, {"file_name": "ADE_train_00016847.jpg", "width": 300, "id": 16846, "height": 201}, {"file_name": "ADE_train_00016848.jpg", "width": 300, "id": 16847, "height": 225}, {"file_name": "ADE_train_00016849.jpg", "width": 320, "id": 16848, "height": 240}, {"file_name": "ADE_train_00016850.jpg", "width": 683, "id": 16849, "height": 512}, {"file_name": "ADE_train_00016851.jpg", "width": 300, "id": 16850, "height": 400}, {"file_name": "ADE_train_00016852.jpg", "width": 397, "id": 16851, "height": 298}, {"file_name": "ADE_train_00016853.jpg", "width": 640, "id": 16852, "height": 480}, {"file_name": "ADE_train_00016854.jpg", "width": 640, "id": 16853, "height": 480}, {"file_name": "ADE_train_00016855.jpg", "width": 640, "id": 16854, "height": 480}, {"file_name": "ADE_train_00016856.jpg", "width": 438, "id": 16855, "height": 329}, {"file_name": "ADE_train_00016857.jpg", "width": 652, "id": 16856, "height": 512}, {"file_name": "ADE_train_00016858.jpg", "width": 683, "id": 16857, "height": 512}, {"file_name": "ADE_train_00016859.jpg", "width": 683, "id": 16858, "height": 512}, {"file_name": "ADE_train_00016860.jpg", "width": 683, "id": 16859, "height": 512}, {"file_name": "ADE_train_00016861.jpg", "width": 683, "id": 16860, "height": 512}, {"file_name": "ADE_train_00016862.jpg", "width": 683, "id": 16861, "height": 512}, {"file_name": "ADE_train_00016863.jpg", "width": 683, "id": 16862, "height": 512}, {"file_name": "ADE_train_00016864.jpg", "width": 683, "id": 16863, "height": 512}, {"file_name": "ADE_train_00016865.jpg", "width": 683, "id": 16864, "height": 512}, {"file_name": "ADE_train_00016866.jpg", "width": 683, "id": 16865, "height": 512}, {"file_name": "ADE_train_00016867.jpg", "width": 683, "id": 16866, "height": 512}, {"file_name": "ADE_train_00016868.jpg", "width": 683, "id": 16867, "height": 512}, {"file_name": "ADE_train_00016869.jpg", "width": 683, "id": 16868, "height": 512}, {"file_name": "ADE_train_00016870.jpg", "width": 683, "id": 16869, "height": 512}, {"file_name": "ADE_train_00016871.jpg", "width": 683, "id": 16870, "height": 512}, {"file_name": "ADE_train_00016872.jpg", "width": 683, "id": 16871, "height": 512}, {"file_name": "ADE_train_00016873.jpg", "width": 683, "id": 16872, "height": 512}, {"file_name": "ADE_train_00016874.jpg", "width": 683, "id": 16873, "height": 512}, {"file_name": "ADE_train_00016875.jpg", "width": 683, "id": 16874, "height": 512}, {"file_name": "ADE_train_00016876.jpg", "width": 683, "id": 16875, "height": 512}, {"file_name": "ADE_train_00016877.jpg", "width": 683, "id": 16876, "height": 512}, {"file_name": "ADE_train_00016878.jpg", "width": 683, "id": 16877, "height": 512}, {"file_name": "ADE_train_00016879.jpg", "width": 683, "id": 16878, "height": 512}, {"file_name": "ADE_train_00016880.jpg", "width": 683, "id": 16879, "height": 512}, {"file_name": "ADE_train_00016881.jpg", "width": 683, "id": 16880, "height": 512}, {"file_name": "ADE_train_00016882.jpg", "width": 683, "id": 16881, "height": 512}, {"file_name": "ADE_train_00016883.jpg", "width": 683, "id": 16882, "height": 512}, {"file_name": "ADE_train_00016884.jpg", "width": 683, "id": 16883, "height": 512}, {"file_name": "ADE_train_00016885.jpg", "width": 683, "id": 16884, "height": 512}, {"file_name": "ADE_train_00016886.jpg", "width": 683, "id": 16885, "height": 512}, {"file_name": "ADE_train_00016887.jpg", "width": 683, "id": 16886, "height": 512}, {"file_name": "ADE_train_00016888.jpg", "width": 683, "id": 16887, "height": 512}, {"file_name": "ADE_train_00016889.jpg", "width": 683, "id": 16888, "height": 512}, {"file_name": "ADE_train_00016890.jpg", "width": 683, "id": 16889, "height": 512}, {"file_name": "ADE_train_00016891.jpg", "width": 683, "id": 16890, "height": 512}, {"file_name": "ADE_train_00016892.jpg", "width": 512, "id": 16891, "height": 683}, {"file_name": "ADE_train_00016893.jpg", "width": 683, "id": 16892, "height": 512}, {"file_name": "ADE_train_00016894.jpg", "width": 683, "id": 16893, "height": 512}, {"file_name": "ADE_train_00016895.jpg", "width": 683, "id": 16894, "height": 512}, {"file_name": "ADE_train_00016896.jpg", "width": 683, "id": 16895, "height": 512}, {"file_name": "ADE_train_00016897.jpg", "width": 683, "id": 16896, "height": 512}, {"file_name": "ADE_train_00016898.jpg", "width": 683, "id": 16897, "height": 512}, {"file_name": "ADE_train_00016899.jpg", "width": 683, "id": 16898, "height": 512}, {"file_name": "ADE_train_00016900.jpg", "width": 683, "id": 16899, "height": 512}, {"file_name": "ADE_train_00016901.jpg", "width": 683, "id": 16900, "height": 512}, {"file_name": "ADE_train_00016902.jpg", "width": 640, "id": 16901, "height": 480}, {"file_name": "ADE_train_00016903.jpg", "width": 683, "id": 16902, "height": 512}, {"file_name": "ADE_train_00016904.jpg", "width": 640, "id": 16903, "height": 480}, {"file_name": "ADE_train_00016905.jpg", "width": 683, "id": 16904, "height": 512}, {"file_name": "ADE_train_00016906.jpg", "width": 683, "id": 16905, "height": 512}, {"file_name": "ADE_train_00016907.jpg", "width": 683, "id": 16906, "height": 512}, {"file_name": "ADE_train_00016908.jpg", "width": 683, "id": 16907, "height": 512}, {"file_name": "ADE_train_00016909.jpg", "width": 683, "id": 16908, "height": 512}, {"file_name": "ADE_train_00016910.jpg", "width": 683, "id": 16909, "height": 512}, {"file_name": "ADE_train_00016911.jpg", "width": 512, "id": 16910, "height": 683}, {"file_name": "ADE_train_00016912.jpg", "width": 683, "id": 16911, "height": 512}, {"file_name": "ADE_train_00016913.jpg", "width": 683, "id": 16912, "height": 512}, {"file_name": "ADE_train_00016914.jpg", "width": 683, "id": 16913, "height": 512}, {"file_name": "ADE_train_00016915.jpg", "width": 683, "id": 16914, "height": 512}, {"file_name": "ADE_train_00016916.jpg", "width": 683, "id": 16915, "height": 512}, {"file_name": "ADE_train_00016917.jpg", "width": 683, "id": 16916, "height": 512}, {"file_name": "ADE_train_00016918.jpg", "width": 683, "id": 16917, "height": 512}, {"file_name": "ADE_train_00016919.jpg", "width": 683, "id": 16918, "height": 512}, {"file_name": "ADE_train_00016920.jpg", "width": 683, "id": 16919, "height": 512}, {"file_name": "ADE_train_00016921.jpg", "width": 683, "id": 16920, "height": 512}, {"file_name": "ADE_train_00016922.jpg", "width": 683, "id": 16921, "height": 512}, {"file_name": "ADE_train_00016923.jpg", "width": 683, "id": 16922, "height": 512}, {"file_name": "ADE_train_00016924.jpg", "width": 768, "id": 16923, "height": 512}, {"file_name": "ADE_train_00016925.jpg", "width": 768, "id": 16924, "height": 512}, {"file_name": "ADE_train_00016926.jpg", "width": 683, "id": 16925, "height": 512}, {"file_name": "ADE_train_00016927.jpg", "width": 683, "id": 16926, "height": 512}, {"file_name": "ADE_train_00016928.jpg", "width": 683, "id": 16927, "height": 512}, {"file_name": "ADE_train_00016929.jpg", "width": 683, "id": 16928, "height": 512}, {"file_name": "ADE_train_00016930.jpg", "width": 683, "id": 16929, "height": 512}, {"file_name": "ADE_train_00016931.jpg", "width": 683, "id": 16930, "height": 512}, {"file_name": "ADE_train_00016932.jpg", "width": 683, "id": 16931, "height": 512}, {"file_name": "ADE_train_00016933.jpg", "width": 683, "id": 16932, "height": 512}, {"file_name": "ADE_train_00016934.jpg", "width": 683, "id": 16933, "height": 512}, {"file_name": "ADE_train_00016935.jpg", "width": 683, "id": 16934, "height": 512}, {"file_name": "ADE_train_00016936.jpg", "width": 683, "id": 16935, "height": 512}, {"file_name": "ADE_train_00016937.jpg", "width": 683, "id": 16936, "height": 512}, {"file_name": "ADE_train_00016938.jpg", "width": 683, "id": 16937, "height": 512}, {"file_name": "ADE_train_00016939.jpg", "width": 683, "id": 16938, "height": 512}, {"file_name": "ADE_train_00016940.jpg", "width": 768, "id": 16939, "height": 512}, {"file_name": "ADE_train_00016941.jpg", "width": 683, "id": 16940, "height": 512}, {"file_name": "ADE_train_00016942.jpg", "width": 683, "id": 16941, "height": 512}, {"file_name": "ADE_train_00016943.jpg", "width": 683, "id": 16942, "height": 512}, {"file_name": "ADE_train_00016944.jpg", "width": 683, "id": 16943, "height": 512}, {"file_name": "ADE_train_00016945.jpg", "width": 683, "id": 16944, "height": 512}, {"file_name": "ADE_train_00016946.jpg", "width": 683, "id": 16945, "height": 512}, {"file_name": "ADE_train_00016947.jpg", "width": 683, "id": 16946, "height": 512}, {"file_name": "ADE_train_00016948.jpg", "width": 683, "id": 16947, "height": 512}, {"file_name": "ADE_train_00016949.jpg", "width": 683, "id": 16948, "height": 512}, {"file_name": "ADE_train_00016950.jpg", "width": 683, "id": 16949, "height": 512}, {"file_name": "ADE_train_00016951.jpg", "width": 683, "id": 16950, "height": 512}, {"file_name": "ADE_train_00016952.jpg", "width": 683, "id": 16951, "height": 512}, {"file_name": "ADE_train_00016953.jpg", "width": 683, "id": 16952, "height": 512}, {"file_name": "ADE_train_00016954.jpg", "width": 683, "id": 16953, "height": 512}, {"file_name": "ADE_train_00016955.jpg", "width": 683, "id": 16954, "height": 512}, {"file_name": "ADE_train_00016956.jpg", "width": 683, "id": 16955, "height": 512}, {"file_name": "ADE_train_00016957.jpg", "width": 640, "id": 16956, "height": 480}, {"file_name": "ADE_train_00016958.jpg", "width": 683, "id": 16957, "height": 512}, {"file_name": "ADE_train_00016959.jpg", "width": 683, "id": 16958, "height": 512}, {"file_name": "ADE_train_00016960.jpg", "width": 683, "id": 16959, "height": 512}, {"file_name": "ADE_train_00016961.jpg", "width": 683, "id": 16960, "height": 512}, {"file_name": "ADE_train_00016962.jpg", "width": 683, "id": 16961, "height": 512}, {"file_name": "ADE_train_00016963.jpg", "width": 683, "id": 16962, "height": 512}, {"file_name": "ADE_train_00016964.jpg", "width": 768, "id": 16963, "height": 512}, {"file_name": "ADE_train_00016965.jpg", "width": 683, "id": 16964, "height": 512}, {"file_name": "ADE_train_00016966.jpg", "width": 683, "id": 16965, "height": 512}, {"file_name": "ADE_train_00016967.jpg", "width": 683, "id": 16966, "height": 512}, {"file_name": "ADE_train_00016968.jpg", "width": 683, "id": 16967, "height": 512}, {"file_name": "ADE_train_00016969.jpg", "width": 683, "id": 16968, "height": 512}, {"file_name": "ADE_train_00016970.jpg", "width": 683, "id": 16969, "height": 512}, {"file_name": "ADE_train_00016971.jpg", "width": 683, "id": 16970, "height": 512}, {"file_name": "ADE_train_00016972.jpg", "width": 683, "id": 16971, "height": 512}, {"file_name": "ADE_train_00016973.jpg", "width": 512, "id": 16972, "height": 683}, {"file_name": "ADE_train_00016974.jpg", "width": 683, "id": 16973, "height": 512}, {"file_name": "ADE_train_00016975.jpg", "width": 683, "id": 16974, "height": 512}, {"file_name": "ADE_train_00016976.jpg", "width": 512, "id": 16975, "height": 683}, {"file_name": "ADE_train_00016977.jpg", "width": 683, "id": 16976, "height": 512}, {"file_name": "ADE_train_00016978.jpg", "width": 683, "id": 16977, "height": 512}, {"file_name": "ADE_train_00016979.jpg", "width": 683, "id": 16978, "height": 512}, {"file_name": "ADE_train_00016980.jpg", "width": 683, "id": 16979, "height": 512}, {"file_name": "ADE_train_00016981.jpg", "width": 683, "id": 16980, "height": 512}, {"file_name": "ADE_train_00016982.jpg", "width": 683, "id": 16981, "height": 512}, {"file_name": "ADE_train_00016983.jpg", "width": 683, "id": 16982, "height": 512}, {"file_name": "ADE_train_00016984.jpg", "width": 683, "id": 16983, "height": 512}, {"file_name": "ADE_train_00016985.jpg", "width": 683, "id": 16984, "height": 512}, {"file_name": "ADE_train_00016986.jpg", "width": 683, "id": 16985, "height": 512}, {"file_name": "ADE_train_00016987.jpg", "width": 683, "id": 16986, "height": 512}, {"file_name": "ADE_train_00016988.jpg", "width": 683, "id": 16987, "height": 512}, {"file_name": "ADE_train_00016989.jpg", "width": 683, "id": 16988, "height": 512}, {"file_name": "ADE_train_00016990.jpg", "width": 683, "id": 16989, "height": 512}, {"file_name": "ADE_train_00016991.jpg", "width": 768, "id": 16990, "height": 512}, {"file_name": "ADE_train_00016992.jpg", "width": 768, "id": 16991, "height": 512}, {"file_name": "ADE_train_00016993.jpg", "width": 683, "id": 16992, "height": 512}, {"file_name": "ADE_train_00016994.jpg", "width": 512, "id": 16993, "height": 683}, {"file_name": "ADE_train_00016995.jpg", "width": 683, "id": 16994, "height": 512}, {"file_name": "ADE_train_00016996.jpg", "width": 683, "id": 16995, "height": 512}, {"file_name": "ADE_train_00016997.jpg", "width": 683, "id": 16996, "height": 512}, {"file_name": "ADE_train_00016998.jpg", "width": 683, "id": 16997, "height": 512}, {"file_name": "ADE_train_00016999.jpg", "width": 683, "id": 16998, "height": 512}, {"file_name": "ADE_train_00017000.jpg", "width": 683, "id": 16999, "height": 512}, {"file_name": "ADE_train_00017001.jpg", "width": 683, "id": 17000, "height": 512}, {"file_name": "ADE_train_00017002.jpg", "width": 640, "id": 17001, "height": 480}, {"file_name": "ADE_train_00017003.jpg", "width": 683, "id": 17002, "height": 512}, {"file_name": "ADE_train_00017004.jpg", "width": 683, "id": 17003, "height": 512}, {"file_name": "ADE_train_00017005.jpg", "width": 683, "id": 17004, "height": 512}, {"file_name": "ADE_train_00017006.jpg", "width": 512, "id": 17005, "height": 683}, {"file_name": "ADE_train_00017007.jpg", "width": 683, "id": 17006, "height": 512}, {"file_name": "ADE_train_00017008.jpg", "width": 683, "id": 17007, "height": 512}, {"file_name": "ADE_train_00017009.jpg", "width": 683, "id": 17008, "height": 512}, {"file_name": "ADE_train_00017010.jpg", "width": 683, "id": 17009, "height": 512}, {"file_name": "ADE_train_00017011.jpg", "width": 683, "id": 17010, "height": 512}, {"file_name": "ADE_train_00017012.jpg", "width": 683, "id": 17011, "height": 512}, {"file_name": "ADE_train_00017013.jpg", "width": 683, "id": 17012, "height": 512}, {"file_name": "ADE_train_00017014.jpg", "width": 683, "id": 17013, "height": 512}, {"file_name": "ADE_train_00017015.jpg", "width": 683, "id": 17014, "height": 512}, {"file_name": "ADE_train_00017016.jpg", "width": 683, "id": 17015, "height": 512}, {"file_name": "ADE_train_00017017.jpg", "width": 683, "id": 17016, "height": 512}, {"file_name": "ADE_train_00017018.jpg", "width": 683, "id": 17017, "height": 512}, {"file_name": "ADE_train_00017019.jpg", "width": 683, "id": 17018, "height": 512}, {"file_name": "ADE_train_00017020.jpg", "width": 683, "id": 17019, "height": 512}, {"file_name": "ADE_train_00017021.jpg", "width": 683, "id": 17020, "height": 512}, {"file_name": "ADE_train_00017022.jpg", "width": 683, "id": 17021, "height": 512}, {"file_name": "ADE_train_00017023.jpg", "width": 683, "id": 17022, "height": 512}, {"file_name": "ADE_train_00017024.jpg", "width": 683, "id": 17023, "height": 512}, {"file_name": "ADE_train_00017025.jpg", "width": 683, "id": 17024, "height": 512}, {"file_name": "ADE_train_00017026.jpg", "width": 683, "id": 17025, "height": 512}, {"file_name": "ADE_train_00017027.jpg", "width": 683, "id": 17026, "height": 512}, {"file_name": "ADE_train_00017028.jpg", "width": 683, "id": 17027, "height": 512}, {"file_name": "ADE_train_00017029.jpg", "width": 683, "id": 17028, "height": 512}, {"file_name": "ADE_train_00017030.jpg", "width": 683, "id": 17029, "height": 512}, {"file_name": "ADE_train_00017031.jpg", "width": 683, "id": 17030, "height": 512}, {"file_name": "ADE_train_00017032.jpg", "width": 683, "id": 17031, "height": 512}, {"file_name": "ADE_train_00017033.jpg", "width": 683, "id": 17032, "height": 512}, {"file_name": "ADE_train_00017034.jpg", "width": 683, "id": 17033, "height": 512}, {"file_name": "ADE_train_00017035.jpg", "width": 683, "id": 17034, "height": 512}, {"file_name": "ADE_train_00017036.jpg", "width": 683, "id": 17035, "height": 512}, {"file_name": "ADE_train_00017037.jpg", "width": 683, "id": 17036, "height": 512}, {"file_name": "ADE_train_00017038.jpg", "width": 683, "id": 17037, "height": 512}, {"file_name": "ADE_train_00017039.jpg", "width": 683, "id": 17038, "height": 512}, {"file_name": "ADE_train_00017040.jpg", "width": 683, "id": 17039, "height": 512}, {"file_name": "ADE_train_00017041.jpg", "width": 683, "id": 17040, "height": 512}, {"file_name": "ADE_train_00017042.jpg", "width": 683, "id": 17041, "height": 512}, {"file_name": "ADE_train_00017043.jpg", "width": 683, "id": 17042, "height": 512}, {"file_name": "ADE_train_00017044.jpg", "width": 683, "id": 17043, "height": 512}, {"file_name": "ADE_train_00017045.jpg", "width": 683, "id": 17044, "height": 512}, {"file_name": "ADE_train_00017046.jpg", "width": 683, "id": 17045, "height": 512}, {"file_name": "ADE_train_00017047.jpg", "width": 683, "id": 17046, "height": 512}, {"file_name": "ADE_train_00017048.jpg", "width": 683, "id": 17047, "height": 512}, {"file_name": "ADE_train_00017049.jpg", "width": 683, "id": 17048, "height": 512}, {"file_name": "ADE_train_00017050.jpg", "width": 683, "id": 17049, "height": 512}, {"file_name": "ADE_train_00017051.jpg", "width": 683, "id": 17050, "height": 512}, {"file_name": "ADE_train_00017052.jpg", "width": 683, "id": 17051, "height": 512}, {"file_name": "ADE_train_00017053.jpg", "width": 683, "id": 17052, "height": 512}, {"file_name": "ADE_train_00017054.jpg", "width": 683, "id": 17053, "height": 512}, {"file_name": "ADE_train_00017055.jpg", "width": 683, "id": 17054, "height": 512}, {"file_name": "ADE_train_00017056.jpg", "width": 683, "id": 17055, "height": 512}, {"file_name": "ADE_train_00017057.jpg", "width": 683, "id": 17056, "height": 512}, {"file_name": "ADE_train_00017058.jpg", "width": 512, "id": 17057, "height": 683}, {"file_name": "ADE_train_00017059.jpg", "width": 683, "id": 17058, "height": 512}, {"file_name": "ADE_train_00017060.jpg", "width": 683, "id": 17059, "height": 512}, {"file_name": "ADE_train_00017061.jpg", "width": 683, "id": 17060, "height": 512}, {"file_name": "ADE_train_00017062.jpg", "width": 683, "id": 17061, "height": 512}, {"file_name": "ADE_train_00017063.jpg", "width": 683, "id": 17062, "height": 512}, {"file_name": "ADE_train_00017064.jpg", "width": 683, "id": 17063, "height": 512}, {"file_name": "ADE_train_00017065.jpg", "width": 683, "id": 17064, "height": 512}, {"file_name": "ADE_train_00017066.jpg", "width": 683, "id": 17065, "height": 512}, {"file_name": "ADE_train_00017067.jpg", "width": 683, "id": 17066, "height": 512}, {"file_name": "ADE_train_00017068.jpg", "width": 683, "id": 17067, "height": 512}, {"file_name": "ADE_train_00017069.jpg", "width": 683, "id": 17068, "height": 512}, {"file_name": "ADE_train_00017070.jpg", "width": 648, "id": 17069, "height": 486}, {"file_name": "ADE_train_00017071.jpg", "width": 683, "id": 17070, "height": 512}, {"file_name": "ADE_train_00017072.jpg", "width": 768, "id": 17071, "height": 512}, {"file_name": "ADE_train_00017073.jpg", "width": 683, "id": 17072, "height": 512}, {"file_name": "ADE_train_00017074.jpg", "width": 683, "id": 17073, "height": 512}, {"file_name": "ADE_train_00017075.jpg", "width": 683, "id": 17074, "height": 512}, {"file_name": "ADE_train_00017076.jpg", "width": 683, "id": 17075, "height": 512}, {"file_name": "ADE_train_00017077.jpg", "width": 683, "id": 17076, "height": 512}, {"file_name": "ADE_train_00017078.jpg", "width": 683, "id": 17077, "height": 512}, {"file_name": "ADE_train_00017079.jpg", "width": 683, "id": 17078, "height": 512}, {"file_name": "ADE_train_00017080.jpg", "width": 683, "id": 17079, "height": 512}, {"file_name": "ADE_train_00017081.jpg", "width": 683, "id": 17080, "height": 512}, {"file_name": "ADE_train_00017082.jpg", "width": 683, "id": 17081, "height": 512}, {"file_name": "ADE_train_00017083.jpg", "width": 683, "id": 17082, "height": 512}, {"file_name": "ADE_train_00017084.jpg", "width": 683, "id": 17083, "height": 512}, {"file_name": "ADE_train_00017085.jpg", "width": 683, "id": 17084, "height": 512}, {"file_name": "ADE_train_00017086.jpg", "width": 683, "id": 17085, "height": 512}, {"file_name": "ADE_train_00017087.jpg", "width": 683, "id": 17086, "height": 512}, {"file_name": "ADE_train_00017088.jpg", "width": 683, "id": 17087, "height": 512}, {"file_name": "ADE_train_00017089.jpg", "width": 683, "id": 17088, "height": 512}, {"file_name": "ADE_train_00017090.jpg", "width": 683, "id": 17089, "height": 512}, {"file_name": "ADE_train_00017091.jpg", "width": 683, "id": 17090, "height": 512}, {"file_name": "ADE_train_00017092.jpg", "width": 683, "id": 17091, "height": 512}, {"file_name": "ADE_train_00017093.jpg", "width": 683, "id": 17092, "height": 512}, {"file_name": "ADE_train_00017094.jpg", "width": 683, "id": 17093, "height": 512}, {"file_name": "ADE_train_00017095.jpg", "width": 683, "id": 17094, "height": 512}, {"file_name": "ADE_train_00017096.jpg", "width": 683, "id": 17095, "height": 512}, {"file_name": "ADE_train_00017097.jpg", "width": 683, "id": 17096, "height": 512}, {"file_name": "ADE_train_00017098.jpg", "width": 683, "id": 17097, "height": 512}, {"file_name": "ADE_train_00017099.jpg", "width": 683, "id": 17098, "height": 512}, {"file_name": "ADE_train_00017100.jpg", "width": 683, "id": 17099, "height": 512}, {"file_name": "ADE_train_00017101.jpg", "width": 683, "id": 17100, "height": 512}, {"file_name": "ADE_train_00017102.jpg", "width": 683, "id": 17101, "height": 512}, {"file_name": "ADE_train_00017103.jpg", "width": 683, "id": 17102, "height": 512}, {"file_name": "ADE_train_00017104.jpg", "width": 683, "id": 17103, "height": 512}, {"file_name": "ADE_train_00017105.jpg", "width": 683, "id": 17104, "height": 512}, {"file_name": "ADE_train_00017106.jpg", "width": 683, "id": 17105, "height": 512}, {"file_name": "ADE_train_00017107.jpg", "width": 683, "id": 17106, "height": 512}, {"file_name": "ADE_train_00017108.jpg", "width": 683, "id": 17107, "height": 512}, {"file_name": "ADE_train_00017109.jpg", "width": 683, "id": 17108, "height": 512}, {"file_name": "ADE_train_00017110.jpg", "width": 683, "id": 17109, "height": 512}, {"file_name": "ADE_train_00017111.jpg", "width": 683, "id": 17110, "height": 512}, {"file_name": "ADE_train_00017112.jpg", "width": 683, "id": 17111, "height": 512}, {"file_name": "ADE_train_00017113.jpg", "width": 768, "id": 17112, "height": 512}, {"file_name": "ADE_train_00017114.jpg", "width": 512, "id": 17113, "height": 683}, {"file_name": "ADE_train_00017115.jpg", "width": 683, "id": 17114, "height": 512}, {"file_name": "ADE_train_00017116.jpg", "width": 683, "id": 17115, "height": 512}, {"file_name": "ADE_train_00017117.jpg", "width": 683, "id": 17116, "height": 512}, {"file_name": "ADE_train_00017118.jpg", "width": 683, "id": 17117, "height": 512}, {"file_name": "ADE_train_00017119.jpg", "width": 683, "id": 17118, "height": 512}, {"file_name": "ADE_train_00017120.jpg", "width": 683, "id": 17119, "height": 512}, {"file_name": "ADE_train_00017121.jpg", "width": 683, "id": 17120, "height": 512}, {"file_name": "ADE_train_00017122.jpg", "width": 683, "id": 17121, "height": 512}, {"file_name": "ADE_train_00017123.jpg", "width": 683, "id": 17122, "height": 512}, {"file_name": "ADE_train_00017124.jpg", "width": 768, "id": 17123, "height": 512}, {"file_name": "ADE_train_00017125.jpg", "width": 683, "id": 17124, "height": 512}, {"file_name": "ADE_train_00017126.jpg", "width": 683, "id": 17125, "height": 512}, {"file_name": "ADE_train_00017127.jpg", "width": 768, "id": 17126, "height": 512}, {"file_name": "ADE_train_00017128.jpg", "width": 683, "id": 17127, "height": 512}, {"file_name": "ADE_train_00017129.jpg", "width": 683, "id": 17128, "height": 512}, {"file_name": "ADE_train_00017130.jpg", "width": 768, "id": 17129, "height": 512}, {"file_name": "ADE_train_00017131.jpg", "width": 683, "id": 17130, "height": 512}, {"file_name": "ADE_train_00017132.jpg", "width": 683, "id": 17131, "height": 512}, {"file_name": "ADE_train_00017133.jpg", "width": 683, "id": 17132, "height": 512}, {"file_name": "ADE_train_00017134.jpg", "width": 683, "id": 17133, "height": 512}, {"file_name": "ADE_train_00017135.jpg", "width": 683, "id": 17134, "height": 512}, {"file_name": "ADE_train_00017136.jpg", "width": 683, "id": 17135, "height": 512}, {"file_name": "ADE_train_00017137.jpg", "width": 683, "id": 17136, "height": 512}, {"file_name": "ADE_train_00017138.jpg", "width": 683, "id": 17137, "height": 512}, {"file_name": "ADE_train_00017139.jpg", "width": 683, "id": 17138, "height": 512}, {"file_name": "ADE_train_00017140.jpg", "width": 683, "id": 17139, "height": 512}, {"file_name": "ADE_train_00017141.jpg", "width": 683, "id": 17140, "height": 512}, {"file_name": "ADE_train_00017142.jpg", "width": 560, "id": 17141, "height": 420}, {"file_name": "ADE_train_00017143.jpg", "width": 683, "id": 17142, "height": 512}, {"file_name": "ADE_train_00017144.jpg", "width": 683, "id": 17143, "height": 512}, {"file_name": "ADE_train_00017145.jpg", "width": 683, "id": 17144, "height": 512}, {"file_name": "ADE_train_00017146.jpg", "width": 683, "id": 17145, "height": 512}, {"file_name": "ADE_train_00017147.jpg", "width": 683, "id": 17146, "height": 512}, {"file_name": "ADE_train_00017148.jpg", "width": 683, "id": 17147, "height": 512}, {"file_name": "ADE_train_00017149.jpg", "width": 683, "id": 17148, "height": 512}, {"file_name": "ADE_train_00017150.jpg", "width": 683, "id": 17149, "height": 512}, {"file_name": "ADE_train_00017151.jpg", "width": 683, "id": 17150, "height": 512}, {"file_name": "ADE_train_00017152.jpg", "width": 683, "id": 17151, "height": 512}, {"file_name": "ADE_train_00017153.jpg", "width": 683, "id": 17152, "height": 512}, {"file_name": "ADE_train_00017154.jpg", "width": 683, "id": 17153, "height": 512}, {"file_name": "ADE_train_00017155.jpg", "width": 683, "id": 17154, "height": 512}, {"file_name": "ADE_train_00017156.jpg", "width": 683, "id": 17155, "height": 512}, {"file_name": "ADE_train_00017157.jpg", "width": 683, "id": 17156, "height": 512}, {"file_name": "ADE_train_00017158.jpg", "width": 683, "id": 17157, "height": 512}, {"file_name": "ADE_train_00017159.jpg", "width": 683, "id": 17158, "height": 512}, {"file_name": "ADE_train_00017160.jpg", "width": 683, "id": 17159, "height": 512}, {"file_name": "ADE_train_00017161.jpg", "width": 683, "id": 17160, "height": 512}, {"file_name": "ADE_train_00017162.jpg", "width": 683, "id": 17161, "height": 512}, {"file_name": "ADE_train_00017163.jpg", "width": 683, "id": 17162, "height": 512}, {"file_name": "ADE_train_00017164.jpg", "width": 683, "id": 17163, "height": 512}, {"file_name": "ADE_train_00017165.jpg", "width": 512, "id": 17164, "height": 683}, {"file_name": "ADE_train_00017166.jpg", "width": 683, "id": 17165, "height": 512}, {"file_name": "ADE_train_00017167.jpg", "width": 683, "id": 17166, "height": 512}, {"file_name": "ADE_train_00017168.jpg", "width": 768, "id": 17167, "height": 512}, {"file_name": "ADE_train_00017169.jpg", "width": 683, "id": 17168, "height": 512}, {"file_name": "ADE_train_00017170.jpg", "width": 683, "id": 17169, "height": 512}, {"file_name": "ADE_train_00017171.jpg", "width": 683, "id": 17170, "height": 512}, {"file_name": "ADE_train_00017172.jpg", "width": 683, "id": 17171, "height": 512}, {"file_name": "ADE_train_00017173.jpg", "width": 683, "id": 17172, "height": 512}, {"file_name": "ADE_train_00017174.jpg", "width": 683, "id": 17173, "height": 512}, {"file_name": "ADE_train_00017175.jpg", "width": 683, "id": 17174, "height": 512}, {"file_name": "ADE_train_00017176.jpg", "width": 683, "id": 17175, "height": 512}, {"file_name": "ADE_train_00017177.jpg", "width": 683, "id": 17176, "height": 512}, {"file_name": "ADE_train_00017178.jpg", "width": 683, "id": 17177, "height": 512}, {"file_name": "ADE_train_00017179.jpg", "width": 683, "id": 17178, "height": 512}, {"file_name": "ADE_train_00017180.jpg", "width": 683, "id": 17179, "height": 512}, {"file_name": "ADE_train_00017181.jpg", "width": 768, "id": 17180, "height": 512}, {"file_name": "ADE_train_00017182.jpg", "width": 683, "id": 17181, "height": 512}, {"file_name": "ADE_train_00017183.jpg", "width": 683, "id": 17182, "height": 512}, {"file_name": "ADE_train_00017184.jpg", "width": 683, "id": 17183, "height": 512}, {"file_name": "ADE_train_00017185.jpg", "width": 683, "id": 17184, "height": 512}, {"file_name": "ADE_train_00017186.jpg", "width": 683, "id": 17185, "height": 512}, {"file_name": "ADE_train_00017187.jpg", "width": 683, "id": 17186, "height": 512}, {"file_name": "ADE_train_00017188.jpg", "width": 683, "id": 17187, "height": 512}, {"file_name": "ADE_train_00017189.jpg", "width": 683, "id": 17188, "height": 512}, {"file_name": "ADE_train_00017190.jpg", "width": 683, "id": 17189, "height": 512}, {"file_name": "ADE_train_00017191.jpg", "width": 683, "id": 17190, "height": 512}, {"file_name": "ADE_train_00017192.jpg", "width": 683, "id": 17191, "height": 512}, {"file_name": "ADE_train_00017193.jpg", "width": 683, "id": 17192, "height": 512}, {"file_name": "ADE_train_00017194.jpg", "width": 683, "id": 17193, "height": 512}, {"file_name": "ADE_train_00017195.jpg", "width": 683, "id": 17194, "height": 512}, {"file_name": "ADE_train_00017196.jpg", "width": 683, "id": 17195, "height": 512}, {"file_name": "ADE_train_00017197.jpg", "width": 683, "id": 17196, "height": 512}, {"file_name": "ADE_train_00017198.jpg", "width": 683, "id": 17197, "height": 512}, {"file_name": "ADE_train_00017199.jpg", "width": 683, "id": 17198, "height": 512}, {"file_name": "ADE_train_00017200.jpg", "width": 683, "id": 17199, "height": 512}, {"file_name": "ADE_train_00017201.jpg", "width": 683, "id": 17200, "height": 512}, {"file_name": "ADE_train_00017202.jpg", "width": 683, "id": 17201, "height": 512}, {"file_name": "ADE_train_00017203.jpg", "width": 683, "id": 17202, "height": 512}, {"file_name": "ADE_train_00017204.jpg", "width": 683, "id": 17203, "height": 512}, {"file_name": "ADE_train_00017205.jpg", "width": 683, "id": 17204, "height": 512}, {"file_name": "ADE_train_00017206.jpg", "width": 512, "id": 17205, "height": 683}, {"file_name": "ADE_train_00017207.jpg", "width": 683, "id": 17206, "height": 512}, {"file_name": "ADE_train_00017208.jpg", "width": 683, "id": 17207, "height": 512}, {"file_name": "ADE_train_00017209.jpg", "width": 683, "id": 17208, "height": 512}, {"file_name": "ADE_train_00017210.jpg", "width": 683, "id": 17209, "height": 512}, {"file_name": "ADE_train_00017211.jpg", "width": 683, "id": 17210, "height": 512}, {"file_name": "ADE_train_00017212.jpg", "width": 683, "id": 17211, "height": 512}, {"file_name": "ADE_train_00017213.jpg", "width": 683, "id": 17212, "height": 512}, {"file_name": "ADE_train_00017214.jpg", "width": 683, "id": 17213, "height": 512}, {"file_name": "ADE_train_00017215.jpg", "width": 683, "id": 17214, "height": 512}, {"file_name": "ADE_train_00017216.jpg", "width": 512, "id": 17215, "height": 683}, {"file_name": "ADE_train_00017217.jpg", "width": 512, "id": 17216, "height": 683}, {"file_name": "ADE_train_00017218.jpg", "width": 683, "id": 17217, "height": 512}, {"file_name": "ADE_train_00017219.jpg", "width": 683, "id": 17218, "height": 512}, {"file_name": "ADE_train_00017220.jpg", "width": 683, "id": 17219, "height": 512}, {"file_name": "ADE_train_00017221.jpg", "width": 683, "id": 17220, "height": 512}, {"file_name": "ADE_train_00017222.jpg", "width": 683, "id": 17221, "height": 512}, {"file_name": "ADE_train_00017223.jpg", "width": 640, "id": 17222, "height": 480}, {"file_name": "ADE_train_00017224.jpg", "width": 683, "id": 17223, "height": 512}, {"file_name": "ADE_train_00017225.jpg", "width": 683, "id": 17224, "height": 512}, {"file_name": "ADE_train_00017226.jpg", "width": 683, "id": 17225, "height": 512}, {"file_name": "ADE_train_00017227.jpg", "width": 683, "id": 17226, "height": 512}, {"file_name": "ADE_train_00017228.jpg", "width": 683, "id": 17227, "height": 512}, {"file_name": "ADE_train_00017229.jpg", "width": 512, "id": 17228, "height": 683}, {"file_name": "ADE_train_00017230.jpg", "width": 683, "id": 17229, "height": 512}, {"file_name": "ADE_train_00017231.jpg", "width": 683, "id": 17230, "height": 512}, {"file_name": "ADE_train_00017232.jpg", "width": 683, "id": 17231, "height": 512}, {"file_name": "ADE_train_00017233.jpg", "width": 683, "id": 17232, "height": 512}, {"file_name": "ADE_train_00017234.jpg", "width": 683, "id": 17233, "height": 512}, {"file_name": "ADE_train_00017235.jpg", "width": 683, "id": 17234, "height": 512}, {"file_name": "ADE_train_00017236.jpg", "width": 683, "id": 17235, "height": 512}, {"file_name": "ADE_train_00017237.jpg", "width": 683, "id": 17236, "height": 512}, {"file_name": "ADE_train_00017238.jpg", "width": 683, "id": 17237, "height": 512}, {"file_name": "ADE_train_00017239.jpg", "width": 683, "id": 17238, "height": 512}, {"file_name": "ADE_train_00017240.jpg", "width": 683, "id": 17239, "height": 512}, {"file_name": "ADE_train_00017241.jpg", "width": 683, "id": 17240, "height": 512}, {"file_name": "ADE_train_00017242.jpg", "width": 683, "id": 17241, "height": 512}, {"file_name": "ADE_train_00017243.jpg", "width": 512, "id": 17242, "height": 683}, {"file_name": "ADE_train_00017244.jpg", "width": 683, "id": 17243, "height": 512}, {"file_name": "ADE_train_00017245.jpg", "width": 683, "id": 17244, "height": 512}, {"file_name": "ADE_train_00017246.jpg", "width": 683, "id": 17245, "height": 512}, {"file_name": "ADE_train_00017247.jpg", "width": 683, "id": 17246, "height": 512}, {"file_name": "ADE_train_00017248.jpg", "width": 512, "id": 17247, "height": 683}, {"file_name": "ADE_train_00017249.jpg", "width": 683, "id": 17248, "height": 512}, {"file_name": "ADE_train_00017250.jpg", "width": 683, "id": 17249, "height": 512}, {"file_name": "ADE_train_00017251.jpg", "width": 683, "id": 17250, "height": 512}, {"file_name": "ADE_train_00017252.jpg", "width": 512, "id": 17251, "height": 683}, {"file_name": "ADE_train_00017253.jpg", "width": 683, "id": 17252, "height": 512}, {"file_name": "ADE_train_00017254.jpg", "width": 683, "id": 17253, "height": 512}, {"file_name": "ADE_train_00017255.jpg", "width": 683, "id": 17254, "height": 512}, {"file_name": "ADE_train_00017256.jpg", "width": 683, "id": 17255, "height": 512}, {"file_name": "ADE_train_00017257.jpg", "width": 512, "id": 17256, "height": 683}, {"file_name": "ADE_train_00017258.jpg", "width": 683, "id": 17257, "height": 512}, {"file_name": "ADE_train_00017259.jpg", "width": 683, "id": 17258, "height": 512}, {"file_name": "ADE_train_00017260.jpg", "width": 683, "id": 17259, "height": 512}, {"file_name": "ADE_train_00017261.jpg", "width": 683, "id": 17260, "height": 512}, {"file_name": "ADE_train_00017262.jpg", "width": 683, "id": 17261, "height": 512}, {"file_name": "ADE_train_00017263.jpg", "width": 683, "id": 17262, "height": 512}, {"file_name": "ADE_train_00017264.jpg", "width": 683, "id": 17263, "height": 512}, {"file_name": "ADE_train_00017265.jpg", "width": 683, "id": 17264, "height": 512}, {"file_name": "ADE_train_00017266.jpg", "width": 683, "id": 17265, "height": 512}, {"file_name": "ADE_train_00017267.jpg", "width": 683, "id": 17266, "height": 512}, {"file_name": "ADE_train_00017268.jpg", "width": 683, "id": 17267, "height": 512}, {"file_name": "ADE_train_00017269.jpg", "width": 683, "id": 17268, "height": 512}, {"file_name": "ADE_train_00017270.jpg", "width": 512, "id": 17269, "height": 683}, {"file_name": "ADE_train_00017271.jpg", "width": 683, "id": 17270, "height": 512}, {"file_name": "ADE_train_00017272.jpg", "width": 683, "id": 17271, "height": 512}, {"file_name": "ADE_train_00017273.jpg", "width": 683, "id": 17272, "height": 512}, {"file_name": "ADE_train_00017274.jpg", "width": 683, "id": 17273, "height": 512}, {"file_name": "ADE_train_00017275.jpg", "width": 683, "id": 17274, "height": 512}, {"file_name": "ADE_train_00017276.jpg", "width": 683, "id": 17275, "height": 512}, {"file_name": "ADE_train_00017277.jpg", "width": 683, "id": 17276, "height": 512}, {"file_name": "ADE_train_00017278.jpg", "width": 683, "id": 17277, "height": 512}, {"file_name": "ADE_train_00017279.jpg", "width": 683, "id": 17278, "height": 512}, {"file_name": "ADE_train_00017280.jpg", "width": 683, "id": 17279, "height": 512}, {"file_name": "ADE_train_00017281.jpg", "width": 683, "id": 17280, "height": 512}, {"file_name": "ADE_train_00017282.jpg", "width": 683, "id": 17281, "height": 512}, {"file_name": "ADE_train_00017283.jpg", "width": 683, "id": 17282, "height": 512}, {"file_name": "ADE_train_00017284.jpg", "width": 683, "id": 17283, "height": 512}, {"file_name": "ADE_train_00017285.jpg", "width": 683, "id": 17284, "height": 512}, {"file_name": "ADE_train_00017286.jpg", "width": 683, "id": 17285, "height": 512}, {"file_name": "ADE_train_00017287.jpg", "width": 683, "id": 17286, "height": 512}, {"file_name": "ADE_train_00017288.jpg", "width": 683, "id": 17287, "height": 512}, {"file_name": "ADE_train_00017289.jpg", "width": 683, "id": 17288, "height": 512}, {"file_name": "ADE_train_00017290.jpg", "width": 683, "id": 17289, "height": 512}, {"file_name": "ADE_train_00017291.jpg", "width": 683, "id": 17290, "height": 512}, {"file_name": "ADE_train_00017292.jpg", "width": 768, "id": 17291, "height": 512}, {"file_name": "ADE_train_00017293.jpg", "width": 683, "id": 17292, "height": 512}, {"file_name": "ADE_train_00017294.jpg", "width": 683, "id": 17293, "height": 512}, {"file_name": "ADE_train_00017295.jpg", "width": 683, "id": 17294, "height": 512}, {"file_name": "ADE_train_00017296.jpg", "width": 512, "id": 17295, "height": 683}, {"file_name": "ADE_train_00017297.jpg", "width": 683, "id": 17296, "height": 512}, {"file_name": "ADE_train_00017298.jpg", "width": 683, "id": 17297, "height": 512}, {"file_name": "ADE_train_00017299.jpg", "width": 683, "id": 17298, "height": 512}, {"file_name": "ADE_train_00017300.jpg", "width": 683, "id": 17299, "height": 512}, {"file_name": "ADE_train_00017301.jpg", "width": 683, "id": 17300, "height": 512}, {"file_name": "ADE_train_00017302.jpg", "width": 683, "id": 17301, "height": 512}, {"file_name": "ADE_train_00017303.jpg", "width": 683, "id": 17302, "height": 512}, {"file_name": "ADE_train_00017304.jpg", "width": 683, "id": 17303, "height": 512}, {"file_name": "ADE_train_00017305.jpg", "width": 683, "id": 17304, "height": 512}, {"file_name": "ADE_train_00017306.jpg", "width": 683, "id": 17305, "height": 512}, {"file_name": "ADE_train_00017307.jpg", "width": 683, "id": 17306, "height": 512}, {"file_name": "ADE_train_00017308.jpg", "width": 683, "id": 17307, "height": 512}, {"file_name": "ADE_train_00017309.jpg", "width": 683, "id": 17308, "height": 512}, {"file_name": "ADE_train_00017310.jpg", "width": 683, "id": 17309, "height": 512}, {"file_name": "ADE_train_00017311.jpg", "width": 683, "id": 17310, "height": 512}, {"file_name": "ADE_train_00017312.jpg", "width": 683, "id": 17311, "height": 512}, {"file_name": "ADE_train_00017313.jpg", "width": 683, "id": 17312, "height": 512}, {"file_name": "ADE_train_00017314.jpg", "width": 683, "id": 17313, "height": 512}, {"file_name": "ADE_train_00017315.jpg", "width": 683, "id": 17314, "height": 512}, {"file_name": "ADE_train_00017316.jpg", "width": 683, "id": 17315, "height": 512}, {"file_name": "ADE_train_00017317.jpg", "width": 768, "id": 17316, "height": 512}, {"file_name": "ADE_train_00017318.jpg", "width": 683, "id": 17317, "height": 512}, {"file_name": "ADE_train_00017319.jpg", "width": 683, "id": 17318, "height": 512}, {"file_name": "ADE_train_00017320.jpg", "width": 768, "id": 17319, "height": 512}, {"file_name": "ADE_train_00017321.jpg", "width": 683, "id": 17320, "height": 512}, {"file_name": "ADE_train_00017322.jpg", "width": 683, "id": 17321, "height": 512}, {"file_name": "ADE_train_00017323.jpg", "width": 683, "id": 17322, "height": 512}, {"file_name": "ADE_train_00017324.jpg", "width": 683, "id": 17323, "height": 512}, {"file_name": "ADE_train_00017325.jpg", "width": 683, "id": 17324, "height": 512}, {"file_name": "ADE_train_00017326.jpg", "width": 683, "id": 17325, "height": 512}, {"file_name": "ADE_train_00017327.jpg", "width": 683, "id": 17326, "height": 512}, {"file_name": "ADE_train_00017328.jpg", "width": 683, "id": 17327, "height": 512}, {"file_name": "ADE_train_00017329.jpg", "width": 683, "id": 17328, "height": 512}, {"file_name": "ADE_train_00017330.jpg", "width": 683, "id": 17329, "height": 512}, {"file_name": "ADE_train_00017331.jpg", "width": 683, "id": 17330, "height": 512}, {"file_name": "ADE_train_00017332.jpg", "width": 683, "id": 17331, "height": 512}, {"file_name": "ADE_train_00017333.jpg", "width": 683, "id": 17332, "height": 512}, {"file_name": "ADE_train_00017334.jpg", "width": 512, "id": 17333, "height": 683}, {"file_name": "ADE_train_00017335.jpg", "width": 683, "id": 17334, "height": 512}, {"file_name": "ADE_train_00017336.jpg", "width": 683, "id": 17335, "height": 512}, {"file_name": "ADE_train_00017337.jpg", "width": 683, "id": 17336, "height": 512}, {"file_name": "ADE_train_00017338.jpg", "width": 683, "id": 17337, "height": 512}, {"file_name": "ADE_train_00017339.jpg", "width": 683, "id": 17338, "height": 512}, {"file_name": "ADE_train_00017340.jpg", "width": 683, "id": 17339, "height": 512}, {"file_name": "ADE_train_00017341.jpg", "width": 683, "id": 17340, "height": 512}, {"file_name": "ADE_train_00017342.jpg", "width": 683, "id": 17341, "height": 512}, {"file_name": "ADE_train_00017343.jpg", "width": 683, "id": 17342, "height": 512}, {"file_name": "ADE_train_00017344.jpg", "width": 683, "id": 17343, "height": 512}, {"file_name": "ADE_train_00017345.jpg", "width": 683, "id": 17344, "height": 512}, {"file_name": "ADE_train_00017346.jpg", "width": 683, "id": 17345, "height": 512}, {"file_name": "ADE_train_00017347.jpg", "width": 768, "id": 17346, "height": 512}, {"file_name": "ADE_train_00017348.jpg", "width": 683, "id": 17347, "height": 512}, {"file_name": "ADE_train_00017349.jpg", "width": 683, "id": 17348, "height": 512}, {"file_name": "ADE_train_00017350.jpg", "width": 683, "id": 17349, "height": 512}, {"file_name": "ADE_train_00017351.jpg", "width": 683, "id": 17350, "height": 512}, {"file_name": "ADE_train_00017352.jpg", "width": 683, "id": 17351, "height": 512}, {"file_name": "ADE_train_00017353.jpg", "width": 683, "id": 17352, "height": 512}, {"file_name": "ADE_train_00017354.jpg", "width": 683, "id": 17353, "height": 512}, {"file_name": "ADE_train_00017355.jpg", "width": 683, "id": 17354, "height": 512}, {"file_name": "ADE_train_00017356.jpg", "width": 683, "id": 17355, "height": 512}, {"file_name": "ADE_train_00017357.jpg", "width": 683, "id": 17356, "height": 512}, {"file_name": "ADE_train_00017358.jpg", "width": 512, "id": 17357, "height": 768}, {"file_name": "ADE_train_00017359.jpg", "width": 683, "id": 17358, "height": 512}, {"file_name": "ADE_train_00017360.jpg", "width": 683, "id": 17359, "height": 512}, {"file_name": "ADE_train_00017361.jpg", "width": 683, "id": 17360, "height": 512}, {"file_name": "ADE_train_00017362.jpg", "width": 683, "id": 17361, "height": 512}, {"file_name": "ADE_train_00017363.jpg", "width": 683, "id": 17362, "height": 512}, {"file_name": "ADE_train_00017364.jpg", "width": 683, "id": 17363, "height": 512}, {"file_name": "ADE_train_00017365.jpg", "width": 683, "id": 17364, "height": 512}, {"file_name": "ADE_train_00017366.jpg", "width": 683, "id": 17365, "height": 512}, {"file_name": "ADE_train_00017367.jpg", "width": 683, "id": 17366, "height": 512}, {"file_name": "ADE_train_00017368.jpg", "width": 512, "id": 17367, "height": 683}, {"file_name": "ADE_train_00017369.jpg", "width": 683, "id": 17368, "height": 512}, {"file_name": "ADE_train_00017370.jpg", "width": 683, "id": 17369, "height": 512}, {"file_name": "ADE_train_00017371.jpg", "width": 683, "id": 17370, "height": 512}, {"file_name": "ADE_train_00017372.jpg", "width": 683, "id": 17371, "height": 512}, {"file_name": "ADE_train_00017373.jpg", "width": 683, "id": 17372, "height": 512}, {"file_name": "ADE_train_00017374.jpg", "width": 683, "id": 17373, "height": 512}, {"file_name": "ADE_train_00017375.jpg", "width": 683, "id": 17374, "height": 512}, {"file_name": "ADE_train_00017376.jpg", "width": 683, "id": 17375, "height": 512}, {"file_name": "ADE_train_00017377.jpg", "width": 683, "id": 17376, "height": 512}, {"file_name": "ADE_train_00017378.jpg", "width": 683, "id": 17377, "height": 512}, {"file_name": "ADE_train_00017379.jpg", "width": 683, "id": 17378, "height": 512}, {"file_name": "ADE_train_00017380.jpg", "width": 683, "id": 17379, "height": 512}, {"file_name": "ADE_train_00017381.jpg", "width": 683, "id": 17380, "height": 512}, {"file_name": "ADE_train_00017382.jpg", "width": 683, "id": 17381, "height": 512}, {"file_name": "ADE_train_00017383.jpg", "width": 683, "id": 17382, "height": 512}, {"file_name": "ADE_train_00017384.jpg", "width": 683, "id": 17383, "height": 512}, {"file_name": "ADE_train_00017385.jpg", "width": 683, "id": 17384, "height": 512}, {"file_name": "ADE_train_00017386.jpg", "width": 683, "id": 17385, "height": 512}, {"file_name": "ADE_train_00017387.jpg", "width": 683, "id": 17386, "height": 512}, {"file_name": "ADE_train_00017388.jpg", "width": 768, "id": 17387, "height": 512}, {"file_name": "ADE_train_00017389.jpg", "width": 683, "id": 17388, "height": 512}, {"file_name": "ADE_train_00017390.jpg", "width": 683, "id": 17389, "height": 512}, {"file_name": "ADE_train_00017391.jpg", "width": 683, "id": 17390, "height": 512}, {"file_name": "ADE_train_00017392.jpg", "width": 683, "id": 17391, "height": 512}, {"file_name": "ADE_train_00017393.jpg", "width": 683, "id": 17392, "height": 512}, {"file_name": "ADE_train_00017394.jpg", "width": 683, "id": 17393, "height": 512}, {"file_name": "ADE_train_00017395.jpg", "width": 683, "id": 17394, "height": 512}, {"file_name": "ADE_train_00017396.jpg", "width": 683, "id": 17395, "height": 512}, {"file_name": "ADE_train_00017397.jpg", "width": 683, "id": 17396, "height": 512}, {"file_name": "ADE_train_00017398.jpg", "width": 683, "id": 17397, "height": 512}, {"file_name": "ADE_train_00017399.jpg", "width": 683, "id": 17398, "height": 512}, {"file_name": "ADE_train_00017400.jpg", "width": 683, "id": 17399, "height": 512}, {"file_name": "ADE_train_00017401.jpg", "width": 683, "id": 17400, "height": 512}, {"file_name": "ADE_train_00017402.jpg", "width": 683, "id": 17401, "height": 512}, {"file_name": "ADE_train_00017403.jpg", "width": 683, "id": 17402, "height": 512}, {"file_name": "ADE_train_00017404.jpg", "width": 683, "id": 17403, "height": 512}, {"file_name": "ADE_train_00017405.jpg", "width": 683, "id": 17404, "height": 512}, {"file_name": "ADE_train_00017406.jpg", "width": 683, "id": 17405, "height": 512}, {"file_name": "ADE_train_00017407.jpg", "width": 683, "id": 17406, "height": 512}, {"file_name": "ADE_train_00017408.jpg", "width": 683, "id": 17407, "height": 512}, {"file_name": "ADE_train_00017409.jpg", "width": 683, "id": 17408, "height": 512}, {"file_name": "ADE_train_00017410.jpg", "width": 683, "id": 17409, "height": 512}, {"file_name": "ADE_train_00017411.jpg", "width": 683, "id": 17410, "height": 512}, {"file_name": "ADE_train_00017412.jpg", "width": 683, "id": 17411, "height": 512}, {"file_name": "ADE_train_00017413.jpg", "width": 683, "id": 17412, "height": 512}, {"file_name": "ADE_train_00017414.jpg", "width": 512, "id": 17413, "height": 683}, {"file_name": "ADE_train_00017415.jpg", "width": 683, "id": 17414, "height": 512}, {"file_name": "ADE_train_00017416.jpg", "width": 683, "id": 17415, "height": 512}, {"file_name": "ADE_train_00017417.jpg", "width": 683, "id": 17416, "height": 512}, {"file_name": "ADE_train_00017418.jpg", "width": 683, "id": 17417, "height": 512}, {"file_name": "ADE_train_00017419.jpg", "width": 683, "id": 17418, "height": 512}, {"file_name": "ADE_train_00017420.jpg", "width": 683, "id": 17419, "height": 512}, {"file_name": "ADE_train_00017421.jpg", "width": 683, "id": 17420, "height": 512}, {"file_name": "ADE_train_00017422.jpg", "width": 683, "id": 17421, "height": 512}, {"file_name": "ADE_train_00017423.jpg", "width": 640, "id": 17422, "height": 480}, {"file_name": "ADE_train_00017424.jpg", "width": 683, "id": 17423, "height": 512}, {"file_name": "ADE_train_00017425.jpg", "width": 683, "id": 17424, "height": 512}, {"file_name": "ADE_train_00017426.jpg", "width": 683, "id": 17425, "height": 512}, {"file_name": "ADE_train_00017427.jpg", "width": 512, "id": 17426, "height": 683}, {"file_name": "ADE_train_00017428.jpg", "width": 683, "id": 17427, "height": 512}, {"file_name": "ADE_train_00017429.jpg", "width": 683, "id": 17428, "height": 512}, {"file_name": "ADE_train_00017430.jpg", "width": 683, "id": 17429, "height": 512}, {"file_name": "ADE_train_00017431.jpg", "width": 683, "id": 17430, "height": 512}, {"file_name": "ADE_train_00017432.jpg", "width": 683, "id": 17431, "height": 512}, {"file_name": "ADE_train_00017433.jpg", "width": 683, "id": 17432, "height": 512}, {"file_name": "ADE_train_00017434.jpg", "width": 683, "id": 17433, "height": 512}, {"file_name": "ADE_train_00017435.jpg", "width": 683, "id": 17434, "height": 512}, {"file_name": "ADE_train_00017436.jpg", "width": 683, "id": 17435, "height": 512}, {"file_name": "ADE_train_00017437.jpg", "width": 683, "id": 17436, "height": 512}, {"file_name": "ADE_train_00017438.jpg", "width": 683, "id": 17437, "height": 512}, {"file_name": "ADE_train_00017439.jpg", "width": 683, "id": 17438, "height": 512}, {"file_name": "ADE_train_00017440.jpg", "width": 683, "id": 17439, "height": 512}, {"file_name": "ADE_train_00017441.jpg", "width": 683, "id": 17440, "height": 512}, {"file_name": "ADE_train_00017442.jpg", "width": 683, "id": 17441, "height": 512}, {"file_name": "ADE_train_00017443.jpg", "width": 683, "id": 17442, "height": 512}, {"file_name": "ADE_train_00017444.jpg", "width": 683, "id": 17443, "height": 512}, {"file_name": "ADE_train_00017445.jpg", "width": 683, "id": 17444, "height": 512}, {"file_name": "ADE_train_00017446.jpg", "width": 683, "id": 17445, "height": 512}, {"file_name": "ADE_train_00017447.jpg", "width": 683, "id": 17446, "height": 512}, {"file_name": "ADE_train_00017448.jpg", "width": 683, "id": 17447, "height": 512}, {"file_name": "ADE_train_00017449.jpg", "width": 683, "id": 17448, "height": 512}, {"file_name": "ADE_train_00017450.jpg", "width": 683, "id": 17449, "height": 512}, {"file_name": "ADE_train_00017451.jpg", "width": 683, "id": 17450, "height": 512}, {"file_name": "ADE_train_00017452.jpg", "width": 683, "id": 17451, "height": 512}, {"file_name": "ADE_train_00017453.jpg", "width": 683, "id": 17452, "height": 512}, {"file_name": "ADE_train_00017454.jpg", "width": 683, "id": 17453, "height": 512}, {"file_name": "ADE_train_00017455.jpg", "width": 683, "id": 17454, "height": 512}, {"file_name": "ADE_train_00017456.jpg", "width": 683, "id": 17455, "height": 512}, {"file_name": "ADE_train_00017457.jpg", "width": 683, "id": 17456, "height": 512}, {"file_name": "ADE_train_00017458.jpg", "width": 683, "id": 17457, "height": 512}, {"file_name": "ADE_train_00017459.jpg", "width": 683, "id": 17458, "height": 512}, {"file_name": "ADE_train_00017460.jpg", "width": 683, "id": 17459, "height": 512}, {"file_name": "ADE_train_00017461.jpg", "width": 683, "id": 17460, "height": 512}, {"file_name": "ADE_train_00017462.jpg", "width": 683, "id": 17461, "height": 512}, {"file_name": "ADE_train_00017463.jpg", "width": 683, "id": 17462, "height": 512}, {"file_name": "ADE_train_00017464.jpg", "width": 683, "id": 17463, "height": 512}, {"file_name": "ADE_train_00017465.jpg", "width": 683, "id": 17464, "height": 512}, {"file_name": "ADE_train_00017466.jpg", "width": 683, "id": 17465, "height": 512}, {"file_name": "ADE_train_00017467.jpg", "width": 683, "id": 17466, "height": 512}, {"file_name": "ADE_train_00017468.jpg", "width": 683, "id": 17467, "height": 512}, {"file_name": "ADE_train_00017469.jpg", "width": 683, "id": 17468, "height": 512}, {"file_name": "ADE_train_00017470.jpg", "width": 512, "id": 17469, "height": 683}, {"file_name": "ADE_train_00017471.jpg", "width": 683, "id": 17470, "height": 512}, {"file_name": "ADE_train_00017472.jpg", "width": 683, "id": 17471, "height": 512}, {"file_name": "ADE_train_00017473.jpg", "width": 683, "id": 17472, "height": 512}, {"file_name": "ADE_train_00017474.jpg", "width": 683, "id": 17473, "height": 512}, {"file_name": "ADE_train_00017475.jpg", "width": 683, "id": 17474, "height": 512}, {"file_name": "ADE_train_00017476.jpg", "width": 683, "id": 17475, "height": 512}, {"file_name": "ADE_train_00017477.jpg", "width": 683, "id": 17476, "height": 512}, {"file_name": "ADE_train_00017478.jpg", "width": 683, "id": 17477, "height": 512}, {"file_name": "ADE_train_00017479.jpg", "width": 512, "id": 17478, "height": 683}, {"file_name": "ADE_train_00017480.jpg", "width": 640, "id": 17479, "height": 480}, {"file_name": "ADE_train_00017481.jpg", "width": 683, "id": 17480, "height": 512}, {"file_name": "ADE_train_00017482.jpg", "width": 683, "id": 17481, "height": 512}, {"file_name": "ADE_train_00017483.jpg", "width": 683, "id": 17482, "height": 512}, {"file_name": "ADE_train_00017484.jpg", "width": 768, "id": 17483, "height": 512}, {"file_name": "ADE_train_00017485.jpg", "width": 683, "id": 17484, "height": 512}, {"file_name": "ADE_train_00017486.jpg", "width": 683, "id": 17485, "height": 512}, {"file_name": "ADE_train_00017487.jpg", "width": 683, "id": 17486, "height": 512}, {"file_name": "ADE_train_00017488.jpg", "width": 683, "id": 17487, "height": 512}, {"file_name": "ADE_train_00017489.jpg", "width": 640, "id": 17488, "height": 480}, {"file_name": "ADE_train_00017490.jpg", "width": 683, "id": 17489, "height": 512}, {"file_name": "ADE_train_00017491.jpg", "width": 512, "id": 17490, "height": 683}, {"file_name": "ADE_train_00017492.jpg", "width": 640, "id": 17491, "height": 480}, {"file_name": "ADE_train_00017493.jpg", "width": 683, "id": 17492, "height": 512}, {"file_name": "ADE_train_00017494.jpg", "width": 683, "id": 17493, "height": 512}, {"file_name": "ADE_train_00017495.jpg", "width": 683, "id": 17494, "height": 512}, {"file_name": "ADE_train_00017496.jpg", "width": 683, "id": 17495, "height": 512}, {"file_name": "ADE_train_00017497.jpg", "width": 512, "id": 17496, "height": 683}, {"file_name": "ADE_train_00017498.jpg", "width": 683, "id": 17497, "height": 512}, {"file_name": "ADE_train_00017499.jpg", "width": 683, "id": 17498, "height": 512}, {"file_name": "ADE_train_00017500.jpg", "width": 683, "id": 17499, "height": 512}, {"file_name": "ADE_train_00017501.jpg", "width": 683, "id": 17500, "height": 512}, {"file_name": "ADE_train_00017502.jpg", "width": 683, "id": 17501, "height": 512}, {"file_name": "ADE_train_00017503.jpg", "width": 683, "id": 17502, "height": 512}, {"file_name": "ADE_train_00017504.jpg", "width": 683, "id": 17503, "height": 512}, {"file_name": "ADE_train_00017505.jpg", "width": 683, "id": 17504, "height": 512}, {"file_name": "ADE_train_00017506.jpg", "width": 768, "id": 17505, "height": 512}, {"file_name": "ADE_train_00017507.jpg", "width": 683, "id": 17506, "height": 512}, {"file_name": "ADE_train_00017508.jpg", "width": 683, "id": 17507, "height": 512}, {"file_name": "ADE_train_00017509.jpg", "width": 683, "id": 17508, "height": 512}, {"file_name": "ADE_train_00017510.jpg", "width": 683, "id": 17509, "height": 512}, {"file_name": "ADE_train_00017511.jpg", "width": 683, "id": 17510, "height": 512}, {"file_name": "ADE_train_00017512.jpg", "width": 683, "id": 17511, "height": 512}, {"file_name": "ADE_train_00017513.jpg", "width": 683, "id": 17512, "height": 512}, {"file_name": "ADE_train_00017514.jpg", "width": 683, "id": 17513, "height": 512}, {"file_name": "ADE_train_00017515.jpg", "width": 683, "id": 17514, "height": 512}, {"file_name": "ADE_train_00017516.jpg", "width": 683, "id": 17515, "height": 512}, {"file_name": "ADE_train_00017517.jpg", "width": 683, "id": 17516, "height": 512}, {"file_name": "ADE_train_00017518.jpg", "width": 683, "id": 17517, "height": 512}, {"file_name": "ADE_train_00017519.jpg", "width": 683, "id": 17518, "height": 512}, {"file_name": "ADE_train_00017520.jpg", "width": 683, "id": 17519, "height": 512}, {"file_name": "ADE_train_00017521.jpg", "width": 683, "id": 17520, "height": 512}, {"file_name": "ADE_train_00017522.jpg", "width": 683, "id": 17521, "height": 512}, {"file_name": "ADE_train_00017523.jpg", "width": 683, "id": 17522, "height": 512}, {"file_name": "ADE_train_00017524.jpg", "width": 683, "id": 17523, "height": 512}, {"file_name": "ADE_train_00017525.jpg", "width": 683, "id": 17524, "height": 512}, {"file_name": "ADE_train_00017526.jpg", "width": 683, "id": 17525, "height": 512}, {"file_name": "ADE_train_00017527.jpg", "width": 683, "id": 17526, "height": 512}, {"file_name": "ADE_train_00017528.jpg", "width": 683, "id": 17527, "height": 512}, {"file_name": "ADE_train_00017529.jpg", "width": 683, "id": 17528, "height": 512}, {"file_name": "ADE_train_00017530.jpg", "width": 683, "id": 17529, "height": 512}, {"file_name": "ADE_train_00017531.jpg", "width": 768, "id": 17530, "height": 512}, {"file_name": "ADE_train_00017532.jpg", "width": 683, "id": 17531, "height": 512}, {"file_name": "ADE_train_00017533.jpg", "width": 683, "id": 17532, "height": 512}, {"file_name": "ADE_train_00017534.jpg", "width": 683, "id": 17533, "height": 512}, {"file_name": "ADE_train_00017535.jpg", "width": 683, "id": 17534, "height": 512}, {"file_name": "ADE_train_00017536.jpg", "width": 683, "id": 17535, "height": 512}, {"file_name": "ADE_train_00017537.jpg", "width": 512, "id": 17536, "height": 683}, {"file_name": "ADE_train_00017538.jpg", "width": 683, "id": 17537, "height": 512}, {"file_name": "ADE_train_00017539.jpg", "width": 683, "id": 17538, "height": 512}, {"file_name": "ADE_train_00017540.jpg", "width": 683, "id": 17539, "height": 512}, {"file_name": "ADE_train_00017541.jpg", "width": 683, "id": 17540, "height": 512}, {"file_name": "ADE_train_00017542.jpg", "width": 683, "id": 17541, "height": 512}, {"file_name": "ADE_train_00017543.jpg", "width": 683, "id": 17542, "height": 512}, {"file_name": "ADE_train_00017544.jpg", "width": 683, "id": 17543, "height": 512}, {"file_name": "ADE_train_00017545.jpg", "width": 683, "id": 17544, "height": 512}, {"file_name": "ADE_train_00017546.jpg", "width": 683, "id": 17545, "height": 512}, {"file_name": "ADE_train_00017547.jpg", "width": 683, "id": 17546, "height": 512}, {"file_name": "ADE_train_00017548.jpg", "width": 683, "id": 17547, "height": 512}, {"file_name": "ADE_train_00017549.jpg", "width": 683, "id": 17548, "height": 512}, {"file_name": "ADE_train_00017550.jpg", "width": 683, "id": 17549, "height": 512}, {"file_name": "ADE_train_00017551.jpg", "width": 683, "id": 17550, "height": 512}, {"file_name": "ADE_train_00017552.jpg", "width": 683, "id": 17551, "height": 512}, {"file_name": "ADE_train_00017553.jpg", "width": 683, "id": 17552, "height": 512}, {"file_name": "ADE_train_00017554.jpg", "width": 683, "id": 17553, "height": 512}, {"file_name": "ADE_train_00017555.jpg", "width": 683, "id": 17554, "height": 512}, {"file_name": "ADE_train_00017556.jpg", "width": 683, "id": 17555, "height": 512}, {"file_name": "ADE_train_00017557.jpg", "width": 683, "id": 17556, "height": 512}, {"file_name": "ADE_train_00017558.jpg", "width": 683, "id": 17557, "height": 512}, {"file_name": "ADE_train_00017559.jpg", "width": 683, "id": 17558, "height": 512}, {"file_name": "ADE_train_00017560.jpg", "width": 768, "id": 17559, "height": 512}, {"file_name": "ADE_train_00017561.jpg", "width": 512, "id": 17560, "height": 683}, {"file_name": "ADE_train_00017562.jpg", "width": 683, "id": 17561, "height": 512}, {"file_name": "ADE_train_00017563.jpg", "width": 683, "id": 17562, "height": 512}, {"file_name": "ADE_train_00017564.jpg", "width": 683, "id": 17563, "height": 512}, {"file_name": "ADE_train_00017565.jpg", "width": 512, "id": 17564, "height": 683}, {"file_name": "ADE_train_00017566.jpg", "width": 768, "id": 17565, "height": 512}, {"file_name": "ADE_train_00017567.jpg", "width": 683, "id": 17566, "height": 512}, {"file_name": "ADE_train_00017568.jpg", "width": 683, "id": 17567, "height": 512}, {"file_name": "ADE_train_00017569.jpg", "width": 683, "id": 17568, "height": 512}, {"file_name": "ADE_train_00017570.jpg", "width": 683, "id": 17569, "height": 512}, {"file_name": "ADE_train_00017571.jpg", "width": 683, "id": 17570, "height": 512}, {"file_name": "ADE_train_00017572.jpg", "width": 512, "id": 17571, "height": 683}, {"file_name": "ADE_train_00017573.jpg", "width": 683, "id": 17572, "height": 512}, {"file_name": "ADE_train_00017574.jpg", "width": 683, "id": 17573, "height": 512}, {"file_name": "ADE_train_00017575.jpg", "width": 683, "id": 17574, "height": 512}, {"file_name": "ADE_train_00017576.jpg", "width": 683, "id": 17575, "height": 512}, {"file_name": "ADE_train_00017577.jpg", "width": 683, "id": 17576, "height": 512}, {"file_name": "ADE_train_00017578.jpg", "width": 683, "id": 17577, "height": 512}, {"file_name": "ADE_train_00017579.jpg", "width": 683, "id": 17578, "height": 512}, {"file_name": "ADE_train_00017580.jpg", "width": 683, "id": 17579, "height": 512}, {"file_name": "ADE_train_00017581.jpg", "width": 683, "id": 17580, "height": 512}, {"file_name": "ADE_train_00017582.jpg", "width": 683, "id": 17581, "height": 512}, {"file_name": "ADE_train_00017583.jpg", "width": 683, "id": 17582, "height": 512}, {"file_name": "ADE_train_00017584.jpg", "width": 683, "id": 17583, "height": 512}, {"file_name": "ADE_train_00017585.jpg", "width": 683, "id": 17584, "height": 512}, {"file_name": "ADE_train_00017586.jpg", "width": 683, "id": 17585, "height": 512}, {"file_name": "ADE_train_00017587.jpg", "width": 683, "id": 17586, "height": 512}, {"file_name": "ADE_train_00017588.jpg", "width": 683, "id": 17587, "height": 512}, {"file_name": "ADE_train_00017589.jpg", "width": 683, "id": 17588, "height": 512}, {"file_name": "ADE_train_00017590.jpg", "width": 768, "id": 17589, "height": 512}, {"file_name": "ADE_train_00017591.jpg", "width": 683, "id": 17590, "height": 512}, {"file_name": "ADE_train_00017592.jpg", "width": 683, "id": 17591, "height": 512}, {"file_name": "ADE_train_00017593.jpg", "width": 683, "id": 17592, "height": 512}, {"file_name": "ADE_train_00017594.jpg", "width": 683, "id": 17593, "height": 512}, {"file_name": "ADE_train_00017595.jpg", "width": 683, "id": 17594, "height": 512}, {"file_name": "ADE_train_00017596.jpg", "width": 683, "id": 17595, "height": 512}, {"file_name": "ADE_train_00017597.jpg", "width": 683, "id": 17596, "height": 512}, {"file_name": "ADE_train_00017598.jpg", "width": 683, "id": 17597, "height": 512}, {"file_name": "ADE_train_00017599.jpg", "width": 683, "id": 17598, "height": 512}, {"file_name": "ADE_train_00017600.jpg", "width": 512, "id": 17599, "height": 683}, {"file_name": "ADE_train_00017601.jpg", "width": 683, "id": 17600, "height": 512}, {"file_name": "ADE_train_00017602.jpg", "width": 683, "id": 17601, "height": 512}, {"file_name": "ADE_train_00017603.jpg", "width": 683, "id": 17602, "height": 512}, {"file_name": "ADE_train_00017604.jpg", "width": 683, "id": 17603, "height": 512}, {"file_name": "ADE_train_00017605.jpg", "width": 683, "id": 17604, "height": 512}, {"file_name": "ADE_train_00017606.jpg", "width": 683, "id": 17605, "height": 512}, {"file_name": "ADE_train_00017607.jpg", "width": 683, "id": 17606, "height": 512}, {"file_name": "ADE_train_00017608.jpg", "width": 683, "id": 17607, "height": 512}, {"file_name": "ADE_train_00017609.jpg", "width": 512, "id": 17608, "height": 683}, {"file_name": "ADE_train_00017610.jpg", "width": 683, "id": 17609, "height": 512}, {"file_name": "ADE_train_00017611.jpg", "width": 683, "id": 17610, "height": 512}, {"file_name": "ADE_train_00017612.jpg", "width": 683, "id": 17611, "height": 512}, {"file_name": "ADE_train_00017613.jpg", "width": 683, "id": 17612, "height": 512}, {"file_name": "ADE_train_00017614.jpg", "width": 683, "id": 17613, "height": 512}, {"file_name": "ADE_train_00017615.jpg", "width": 683, "id": 17614, "height": 512}, {"file_name": "ADE_train_00017616.jpg", "width": 683, "id": 17615, "height": 512}, {"file_name": "ADE_train_00017617.jpg", "width": 683, "id": 17616, "height": 512}, {"file_name": "ADE_train_00017618.jpg", "width": 768, "id": 17617, "height": 512}, {"file_name": "ADE_train_00017619.jpg", "width": 683, "id": 17618, "height": 512}, {"file_name": "ADE_train_00017620.jpg", "width": 683, "id": 17619, "height": 512}, {"file_name": "ADE_train_00017621.jpg", "width": 683, "id": 17620, "height": 512}, {"file_name": "ADE_train_00017622.jpg", "width": 683, "id": 17621, "height": 512}, {"file_name": "ADE_train_00017623.jpg", "width": 768, "id": 17622, "height": 512}, {"file_name": "ADE_train_00017624.jpg", "width": 683, "id": 17623, "height": 512}, {"file_name": "ADE_train_00017625.jpg", "width": 683, "id": 17624, "height": 512}, {"file_name": "ADE_train_00017626.jpg", "width": 683, "id": 17625, "height": 512}, {"file_name": "ADE_train_00017627.jpg", "width": 683, "id": 17626, "height": 512}, {"file_name": "ADE_train_00017628.jpg", "width": 683, "id": 17627, "height": 512}, {"file_name": "ADE_train_00017629.jpg", "width": 683, "id": 17628, "height": 512}, {"file_name": "ADE_train_00017630.jpg", "width": 683, "id": 17629, "height": 512}, {"file_name": "ADE_train_00017631.jpg", "width": 683, "id": 17630, "height": 512}, {"file_name": "ADE_train_00017632.jpg", "width": 683, "id": 17631, "height": 512}, {"file_name": "ADE_train_00017633.jpg", "width": 683, "id": 17632, "height": 512}, {"file_name": "ADE_train_00017634.jpg", "width": 683, "id": 17633, "height": 512}, {"file_name": "ADE_train_00017635.jpg", "width": 683, "id": 17634, "height": 512}, {"file_name": "ADE_train_00017636.jpg", "width": 683, "id": 17635, "height": 512}, {"file_name": "ADE_train_00017637.jpg", "width": 683, "id": 17636, "height": 512}, {"file_name": "ADE_train_00017638.jpg", "width": 683, "id": 17637, "height": 512}, {"file_name": "ADE_train_00017639.jpg", "width": 683, "id": 17638, "height": 512}, {"file_name": "ADE_train_00017640.jpg", "width": 683, "id": 17639, "height": 512}, {"file_name": "ADE_train_00017641.jpg", "width": 512, "id": 17640, "height": 683}, {"file_name": "ADE_train_00017642.jpg", "width": 512, "id": 17641, "height": 683}, {"file_name": "ADE_train_00017643.jpg", "width": 683, "id": 17642, "height": 512}, {"file_name": "ADE_train_00017644.jpg", "width": 683, "id": 17643, "height": 512}, {"file_name": "ADE_train_00017645.jpg", "width": 683, "id": 17644, "height": 512}, {"file_name": "ADE_train_00017646.jpg", "width": 683, "id": 17645, "height": 512}, {"file_name": "ADE_train_00017647.jpg", "width": 683, "id": 17646, "height": 512}, {"file_name": "ADE_train_00017648.jpg", "width": 683, "id": 17647, "height": 512}, {"file_name": "ADE_train_00017649.jpg", "width": 683, "id": 17648, "height": 512}, {"file_name": "ADE_train_00017650.jpg", "width": 683, "id": 17649, "height": 512}, {"file_name": "ADE_train_00017651.jpg", "width": 683, "id": 17650, "height": 512}, {"file_name": "ADE_train_00017652.jpg", "width": 640, "id": 17651, "height": 480}, {"file_name": "ADE_train_00017653.jpg", "width": 512, "id": 17652, "height": 683}, {"file_name": "ADE_train_00017654.jpg", "width": 683, "id": 17653, "height": 512}, {"file_name": "ADE_train_00017655.jpg", "width": 683, "id": 17654, "height": 512}, {"file_name": "ADE_train_00017656.jpg", "width": 683, "id": 17655, "height": 512}, {"file_name": "ADE_train_00017657.jpg", "width": 683, "id": 17656, "height": 512}, {"file_name": "ADE_train_00017658.jpg", "width": 683, "id": 17657, "height": 512}, {"file_name": "ADE_train_00017659.jpg", "width": 683, "id": 17658, "height": 512}, {"file_name": "ADE_train_00017660.jpg", "width": 683, "id": 17659, "height": 512}, {"file_name": "ADE_train_00017661.jpg", "width": 683, "id": 17660, "height": 512}, {"file_name": "ADE_train_00017662.jpg", "width": 683, "id": 17661, "height": 512}, {"file_name": "ADE_train_00017663.jpg", "width": 683, "id": 17662, "height": 512}, {"file_name": "ADE_train_00017664.jpg", "width": 683, "id": 17663, "height": 512}, {"file_name": "ADE_train_00017665.jpg", "width": 683, "id": 17664, "height": 512}, {"file_name": "ADE_train_00017666.jpg", "width": 683, "id": 17665, "height": 512}, {"file_name": "ADE_train_00017667.jpg", "width": 683, "id": 17666, "height": 512}, {"file_name": "ADE_train_00017668.jpg", "width": 683, "id": 17667, "height": 512}, {"file_name": "ADE_train_00017669.jpg", "width": 683, "id": 17668, "height": 512}, {"file_name": "ADE_train_00017670.jpg", "width": 683, "id": 17669, "height": 512}, {"file_name": "ADE_train_00017671.jpg", "width": 683, "id": 17670, "height": 512}, {"file_name": "ADE_train_00017672.jpg", "width": 683, "id": 17671, "height": 512}, {"file_name": "ADE_train_00017673.jpg", "width": 683, "id": 17672, "height": 512}, {"file_name": "ADE_train_00017674.jpg", "width": 683, "id": 17673, "height": 512}, {"file_name": "ADE_train_00017675.jpg", "width": 683, "id": 17674, "height": 512}, {"file_name": "ADE_train_00017676.jpg", "width": 512, "id": 17675, "height": 683}, {"file_name": "ADE_train_00017677.jpg", "width": 683, "id": 17676, "height": 512}, {"file_name": "ADE_train_00017678.jpg", "width": 683, "id": 17677, "height": 512}, {"file_name": "ADE_train_00017679.jpg", "width": 683, "id": 17678, "height": 512}, {"file_name": "ADE_train_00017680.jpg", "width": 683, "id": 17679, "height": 512}, {"file_name": "ADE_train_00017681.jpg", "width": 683, "id": 17680, "height": 512}, {"file_name": "ADE_train_00017682.jpg", "width": 768, "id": 17681, "height": 512}, {"file_name": "ADE_train_00017683.jpg", "width": 683, "id": 17682, "height": 512}, {"file_name": "ADE_train_00017684.jpg", "width": 768, "id": 17683, "height": 512}, {"file_name": "ADE_train_00017685.jpg", "width": 683, "id": 17684, "height": 512}, {"file_name": "ADE_train_00017686.jpg", "width": 683, "id": 17685, "height": 512}, {"file_name": "ADE_train_00017687.jpg", "width": 683, "id": 17686, "height": 512}, {"file_name": "ADE_train_00017688.jpg", "width": 683, "id": 17687, "height": 512}, {"file_name": "ADE_train_00017689.jpg", "width": 560, "id": 17688, "height": 420}, {"file_name": "ADE_train_00017690.jpg", "width": 683, "id": 17689, "height": 512}, {"file_name": "ADE_train_00017691.jpg", "width": 683, "id": 17690, "height": 512}, {"file_name": "ADE_train_00017692.jpg", "width": 683, "id": 17691, "height": 512}, {"file_name": "ADE_train_00017693.jpg", "width": 683, "id": 17692, "height": 512}, {"file_name": "ADE_train_00017694.jpg", "width": 683, "id": 17693, "height": 512}, {"file_name": "ADE_train_00017695.jpg", "width": 512, "id": 17694, "height": 683}, {"file_name": "ADE_train_00017696.jpg", "width": 683, "id": 17695, "height": 512}, {"file_name": "ADE_train_00017697.jpg", "width": 683, "id": 17696, "height": 512}, {"file_name": "ADE_train_00017698.jpg", "width": 683, "id": 17697, "height": 512}, {"file_name": "ADE_train_00017699.jpg", "width": 683, "id": 17698, "height": 512}, {"file_name": "ADE_train_00017700.jpg", "width": 683, "id": 17699, "height": 512}, {"file_name": "ADE_train_00017701.jpg", "width": 683, "id": 17700, "height": 512}, {"file_name": "ADE_train_00017702.jpg", "width": 683, "id": 17701, "height": 512}, {"file_name": "ADE_train_00017703.jpg", "width": 683, "id": 17702, "height": 512}, {"file_name": "ADE_train_00017704.jpg", "width": 683, "id": 17703, "height": 512}, {"file_name": "ADE_train_00017705.jpg", "width": 683, "id": 17704, "height": 512}, {"file_name": "ADE_train_00017706.jpg", "width": 683, "id": 17705, "height": 512}, {"file_name": "ADE_train_00017707.jpg", "width": 683, "id": 17706, "height": 512}, {"file_name": "ADE_train_00017708.jpg", "width": 683, "id": 17707, "height": 512}, {"file_name": "ADE_train_00017709.jpg", "width": 683, "id": 17708, "height": 512}, {"file_name": "ADE_train_00017710.jpg", "width": 683, "id": 17709, "height": 512}, {"file_name": "ADE_train_00017711.jpg", "width": 683, "id": 17710, "height": 512}, {"file_name": "ADE_train_00017712.jpg", "width": 683, "id": 17711, "height": 512}, {"file_name": "ADE_train_00017713.jpg", "width": 683, "id": 17712, "height": 512}, {"file_name": "ADE_train_00017714.jpg", "width": 683, "id": 17713, "height": 512}, {"file_name": "ADE_train_00017715.jpg", "width": 683, "id": 17714, "height": 512}, {"file_name": "ADE_train_00017716.jpg", "width": 683, "id": 17715, "height": 512}, {"file_name": "ADE_train_00017717.jpg", "width": 683, "id": 17716, "height": 512}, {"file_name": "ADE_train_00017718.jpg", "width": 512, "id": 17717, "height": 683}, {"file_name": "ADE_train_00017719.jpg", "width": 683, "id": 17718, "height": 512}, {"file_name": "ADE_train_00017720.jpg", "width": 683, "id": 17719, "height": 512}, {"file_name": "ADE_train_00017721.jpg", "width": 683, "id": 17720, "height": 512}, {"file_name": "ADE_train_00017722.jpg", "width": 512, "id": 17721, "height": 683}, {"file_name": "ADE_train_00017723.jpg", "width": 683, "id": 17722, "height": 512}, {"file_name": "ADE_train_00017724.jpg", "width": 683, "id": 17723, "height": 512}, {"file_name": "ADE_train_00017725.jpg", "width": 768, "id": 17724, "height": 512}, {"file_name": "ADE_train_00017726.jpg", "width": 683, "id": 17725, "height": 512}, {"file_name": "ADE_train_00017727.jpg", "width": 683, "id": 17726, "height": 512}, {"file_name": "ADE_train_00017728.jpg", "width": 683, "id": 17727, "height": 512}, {"file_name": "ADE_train_00017729.jpg", "width": 683, "id": 17728, "height": 512}, {"file_name": "ADE_train_00017730.jpg", "width": 640, "id": 17729, "height": 480}, {"file_name": "ADE_train_00017731.jpg", "width": 683, "id": 17730, "height": 512}, {"file_name": "ADE_train_00017732.jpg", "width": 683, "id": 17731, "height": 512}, {"file_name": "ADE_train_00017733.jpg", "width": 683, "id": 17732, "height": 512}, {"file_name": "ADE_train_00017734.jpg", "width": 683, "id": 17733, "height": 512}, {"file_name": "ADE_train_00017735.jpg", "width": 683, "id": 17734, "height": 512}, {"file_name": "ADE_train_00017736.jpg", "width": 683, "id": 17735, "height": 512}, {"file_name": "ADE_train_00017737.jpg", "width": 683, "id": 17736, "height": 512}, {"file_name": "ADE_train_00017738.jpg", "width": 683, "id": 17737, "height": 512}, {"file_name": "ADE_train_00017739.jpg", "width": 683, "id": 17738, "height": 512}, {"file_name": "ADE_train_00017740.jpg", "width": 683, "id": 17739, "height": 512}, {"file_name": "ADE_train_00017741.jpg", "width": 683, "id": 17740, "height": 512}, {"file_name": "ADE_train_00017742.jpg", "width": 683, "id": 17741, "height": 512}, {"file_name": "ADE_train_00017743.jpg", "width": 683, "id": 17742, "height": 512}, {"file_name": "ADE_train_00017744.jpg", "width": 683, "id": 17743, "height": 512}, {"file_name": "ADE_train_00017745.jpg", "width": 683, "id": 17744, "height": 512}, {"file_name": "ADE_train_00017746.jpg", "width": 683, "id": 17745, "height": 512}, {"file_name": "ADE_train_00017747.jpg", "width": 683, "id": 17746, "height": 512}, {"file_name": "ADE_train_00017748.jpg", "width": 683, "id": 17747, "height": 512}, {"file_name": "ADE_train_00017749.jpg", "width": 683, "id": 17748, "height": 512}, {"file_name": "ADE_train_00017750.jpg", "width": 683, "id": 17749, "height": 512}, {"file_name": "ADE_train_00017751.jpg", "width": 683, "id": 17750, "height": 512}, {"file_name": "ADE_train_00017752.jpg", "width": 683, "id": 17751, "height": 512}, {"file_name": "ADE_train_00017753.jpg", "width": 683, "id": 17752, "height": 512}, {"file_name": "ADE_train_00017754.jpg", "width": 683, "id": 17753, "height": 512}, {"file_name": "ADE_train_00017755.jpg", "width": 683, "id": 17754, "height": 512}, {"file_name": "ADE_train_00017756.jpg", "width": 683, "id": 17755, "height": 512}, {"file_name": "ADE_train_00017757.jpg", "width": 683, "id": 17756, "height": 512}, {"file_name": "ADE_train_00017758.jpg", "width": 683, "id": 17757, "height": 512}, {"file_name": "ADE_train_00017759.jpg", "width": 683, "id": 17758, "height": 512}, {"file_name": "ADE_train_00017760.jpg", "width": 683, "id": 17759, "height": 512}, {"file_name": "ADE_train_00017761.jpg", "width": 683, "id": 17760, "height": 512}, {"file_name": "ADE_train_00017762.jpg", "width": 683, "id": 17761, "height": 512}, {"file_name": "ADE_train_00017763.jpg", "width": 683, "id": 17762, "height": 512}, {"file_name": "ADE_train_00017764.jpg", "width": 683, "id": 17763, "height": 512}, {"file_name": "ADE_train_00017765.jpg", "width": 683, "id": 17764, "height": 512}, {"file_name": "ADE_train_00017766.jpg", "width": 683, "id": 17765, "height": 512}, {"file_name": "ADE_train_00017767.jpg", "width": 683, "id": 17766, "height": 512}, {"file_name": "ADE_train_00017768.jpg", "width": 683, "id": 17767, "height": 512}, {"file_name": "ADE_train_00017769.jpg", "width": 640, "id": 17768, "height": 480}, {"file_name": "ADE_train_00017770.jpg", "width": 683, "id": 17769, "height": 512}, {"file_name": "ADE_train_00017771.jpg", "width": 683, "id": 17770, "height": 512}, {"file_name": "ADE_train_00017772.jpg", "width": 768, "id": 17771, "height": 512}, {"file_name": "ADE_train_00017773.jpg", "width": 683, "id": 17772, "height": 512}, {"file_name": "ADE_train_00017774.jpg", "width": 683, "id": 17773, "height": 512}, {"file_name": "ADE_train_00017775.jpg", "width": 683, "id": 17774, "height": 512}, {"file_name": "ADE_train_00017776.jpg", "width": 683, "id": 17775, "height": 512}, {"file_name": "ADE_train_00017777.jpg", "width": 683, "id": 17776, "height": 512}, {"file_name": "ADE_train_00017778.jpg", "width": 683, "id": 17777, "height": 512}, {"file_name": "ADE_train_00017779.jpg", "width": 683, "id": 17778, "height": 512}, {"file_name": "ADE_train_00017780.jpg", "width": 683, "id": 17779, "height": 512}, {"file_name": "ADE_train_00017781.jpg", "width": 683, "id": 17780, "height": 512}, {"file_name": "ADE_train_00017782.jpg", "width": 512, "id": 17781, "height": 683}, {"file_name": "ADE_train_00017783.jpg", "width": 683, "id": 17782, "height": 512}, {"file_name": "ADE_train_00017784.jpg", "width": 683, "id": 17783, "height": 512}, {"file_name": "ADE_train_00017785.jpg", "width": 683, "id": 17784, "height": 512}, {"file_name": "ADE_train_00017786.jpg", "width": 768, "id": 17785, "height": 512}, {"file_name": "ADE_train_00017787.jpg", "width": 683, "id": 17786, "height": 512}, {"file_name": "ADE_train_00017788.jpg", "width": 512, "id": 17787, "height": 683}, {"file_name": "ADE_train_00017789.jpg", "width": 683, "id": 17788, "height": 512}, {"file_name": "ADE_train_00017790.jpg", "width": 683, "id": 17789, "height": 512}, {"file_name": "ADE_train_00017791.jpg", "width": 683, "id": 17790, "height": 512}, {"file_name": "ADE_train_00017792.jpg", "width": 683, "id": 17791, "height": 512}, {"file_name": "ADE_train_00017793.jpg", "width": 640, "id": 17792, "height": 480}, {"file_name": "ADE_train_00017794.jpg", "width": 683, "id": 17793, "height": 512}, {"file_name": "ADE_train_00017795.jpg", "width": 683, "id": 17794, "height": 512}, {"file_name": "ADE_train_00017796.jpg", "width": 683, "id": 17795, "height": 512}, {"file_name": "ADE_train_00017797.jpg", "width": 683, "id": 17796, "height": 512}, {"file_name": "ADE_train_00017798.jpg", "width": 683, "id": 17797, "height": 512}, {"file_name": "ADE_train_00017799.jpg", "width": 683, "id": 17798, "height": 512}, {"file_name": "ADE_train_00017800.jpg", "width": 683, "id": 17799, "height": 512}, {"file_name": "ADE_train_00017801.jpg", "width": 683, "id": 17800, "height": 512}, {"file_name": "ADE_train_00017802.jpg", "width": 683, "id": 17801, "height": 512}, {"file_name": "ADE_train_00017803.jpg", "width": 683, "id": 17802, "height": 512}, {"file_name": "ADE_train_00017804.jpg", "width": 683, "id": 17803, "height": 512}, {"file_name": "ADE_train_00017805.jpg", "width": 683, "id": 17804, "height": 512}, {"file_name": "ADE_train_00017806.jpg", "width": 683, "id": 17805, "height": 512}, {"file_name": "ADE_train_00017807.jpg", "width": 683, "id": 17806, "height": 512}, {"file_name": "ADE_train_00017808.jpg", "width": 683, "id": 17807, "height": 512}, {"file_name": "ADE_train_00017809.jpg", "width": 683, "id": 17808, "height": 512}, {"file_name": "ADE_train_00017810.jpg", "width": 683, "id": 17809, "height": 512}, {"file_name": "ADE_train_00017811.jpg", "width": 512, "id": 17810, "height": 683}, {"file_name": "ADE_train_00017812.jpg", "width": 683, "id": 17811, "height": 512}, {"file_name": "ADE_train_00017813.jpg", "width": 683, "id": 17812, "height": 512}, {"file_name": "ADE_train_00017814.jpg", "width": 683, "id": 17813, "height": 512}, {"file_name": "ADE_train_00017815.jpg", "width": 512, "id": 17814, "height": 683}, {"file_name": "ADE_train_00017816.jpg", "width": 683, "id": 17815, "height": 512}, {"file_name": "ADE_train_00017817.jpg", "width": 512, "id": 17816, "height": 682}, {"file_name": "ADE_train_00017818.jpg", "width": 683, "id": 17817, "height": 512}, {"file_name": "ADE_train_00017819.jpg", "width": 683, "id": 17818, "height": 512}, {"file_name": "ADE_train_00017820.jpg", "width": 768, "id": 17819, "height": 512}, {"file_name": "ADE_train_00017821.jpg", "width": 568, "id": 17820, "height": 426}, {"file_name": "ADE_train_00017822.jpg", "width": 683, "id": 17821, "height": 512}, {"file_name": "ADE_train_00017823.jpg", "width": 683, "id": 17822, "height": 512}, {"file_name": "ADE_train_00017824.jpg", "width": 683, "id": 17823, "height": 512}, {"file_name": "ADE_train_00017825.jpg", "width": 683, "id": 17824, "height": 512}, {"file_name": "ADE_train_00017826.jpg", "width": 683, "id": 17825, "height": 512}, {"file_name": "ADE_train_00017827.jpg", "width": 683, "id": 17826, "height": 512}, {"file_name": "ADE_train_00017828.jpg", "width": 683, "id": 17827, "height": 512}, {"file_name": "ADE_train_00017829.jpg", "width": 683, "id": 17828, "height": 512}, {"file_name": "ADE_train_00017830.jpg", "width": 683, "id": 17829, "height": 512}, {"file_name": "ADE_train_00017831.jpg", "width": 683, "id": 17830, "height": 512}, {"file_name": "ADE_train_00017832.jpg", "width": 640, "id": 17831, "height": 480}, {"file_name": "ADE_train_00017833.jpg", "width": 683, "id": 17832, "height": 512}, {"file_name": "ADE_train_00017834.jpg", "width": 683, "id": 17833, "height": 512}, {"file_name": "ADE_train_00017835.jpg", "width": 683, "id": 17834, "height": 512}, {"file_name": "ADE_train_00017836.jpg", "width": 683, "id": 17835, "height": 512}, {"file_name": "ADE_train_00017837.jpg", "width": 768, "id": 17836, "height": 512}, {"file_name": "ADE_train_00017838.jpg", "width": 683, "id": 17837, "height": 512}, {"file_name": "ADE_train_00017839.jpg", "width": 683, "id": 17838, "height": 512}, {"file_name": "ADE_train_00017840.jpg", "width": 683, "id": 17839, "height": 512}, {"file_name": "ADE_train_00017841.jpg", "width": 683, "id": 17840, "height": 512}, {"file_name": "ADE_train_00017842.jpg", "width": 683, "id": 17841, "height": 512}, {"file_name": "ADE_train_00017843.jpg", "width": 683, "id": 17842, "height": 512}, {"file_name": "ADE_train_00017844.jpg", "width": 683, "id": 17843, "height": 512}, {"file_name": "ADE_train_00017845.jpg", "width": 683, "id": 17844, "height": 512}, {"file_name": "ADE_train_00017846.jpg", "width": 683, "id": 17845, "height": 512}, {"file_name": "ADE_train_00017847.jpg", "width": 683, "id": 17846, "height": 512}, {"file_name": "ADE_train_00017848.jpg", "width": 683, "id": 17847, "height": 512}, {"file_name": "ADE_train_00017849.jpg", "width": 683, "id": 17848, "height": 512}, {"file_name": "ADE_train_00017850.jpg", "width": 683, "id": 17849, "height": 512}, {"file_name": "ADE_train_00017851.jpg", "width": 683, "id": 17850, "height": 512}, {"file_name": "ADE_train_00017852.jpg", "width": 683, "id": 17851, "height": 512}, {"file_name": "ADE_train_00017853.jpg", "width": 683, "id": 17852, "height": 512}, {"file_name": "ADE_train_00017854.jpg", "width": 683, "id": 17853, "height": 512}, {"file_name": "ADE_train_00017855.jpg", "width": 683, "id": 17854, "height": 512}, {"file_name": "ADE_train_00017856.jpg", "width": 683, "id": 17855, "height": 512}, {"file_name": "ADE_train_00017857.jpg", "width": 683, "id": 17856, "height": 512}, {"file_name": "ADE_train_00017858.jpg", "width": 683, "id": 17857, "height": 512}, {"file_name": "ADE_train_00017859.jpg", "width": 683, "id": 17858, "height": 512}, {"file_name": "ADE_train_00017860.jpg", "width": 683, "id": 17859, "height": 512}, {"file_name": "ADE_train_00017861.jpg", "width": 512, "id": 17860, "height": 683}, {"file_name": "ADE_train_00017862.jpg", "width": 683, "id": 17861, "height": 512}, {"file_name": "ADE_train_00017863.jpg", "width": 683, "id": 17862, "height": 512}, {"file_name": "ADE_train_00017864.jpg", "width": 768, "id": 17863, "height": 512}, {"file_name": "ADE_train_00017865.jpg", "width": 683, "id": 17864, "height": 512}, {"file_name": "ADE_train_00017866.jpg", "width": 683, "id": 17865, "height": 512}, {"file_name": "ADE_train_00017867.jpg", "width": 683, "id": 17866, "height": 512}, {"file_name": "ADE_train_00017868.jpg", "width": 640, "id": 17867, "height": 480}, {"file_name": "ADE_train_00017869.jpg", "width": 683, "id": 17868, "height": 512}, {"file_name": "ADE_train_00017870.jpg", "width": 683, "id": 17869, "height": 512}, {"file_name": "ADE_train_00017871.jpg", "width": 683, "id": 17870, "height": 512}, {"file_name": "ADE_train_00017872.jpg", "width": 683, "id": 17871, "height": 512}, {"file_name": "ADE_train_00017873.jpg", "width": 683, "id": 17872, "height": 512}, {"file_name": "ADE_train_00017874.jpg", "width": 683, "id": 17873, "height": 512}, {"file_name": "ADE_train_00017875.jpg", "width": 683, "id": 17874, "height": 512}, {"file_name": "ADE_train_00017876.jpg", "width": 683, "id": 17875, "height": 512}, {"file_name": "ADE_train_00017877.jpg", "width": 683, "id": 17876, "height": 512}, {"file_name": "ADE_train_00017878.jpg", "width": 683, "id": 17877, "height": 512}, {"file_name": "ADE_train_00017879.jpg", "width": 640, "id": 17878, "height": 480}, {"file_name": "ADE_train_00017880.jpg", "width": 683, "id": 17879, "height": 512}, {"file_name": "ADE_train_00017881.jpg", "width": 683, "id": 17880, "height": 512}, {"file_name": "ADE_train_00017882.jpg", "width": 683, "id": 17881, "height": 512}, {"file_name": "ADE_train_00017883.jpg", "width": 683, "id": 17882, "height": 512}, {"file_name": "ADE_train_00017884.jpg", "width": 683, "id": 17883, "height": 512}, {"file_name": "ADE_train_00017885.jpg", "width": 683, "id": 17884, "height": 512}, {"file_name": "ADE_train_00017886.jpg", "width": 683, "id": 17885, "height": 512}, {"file_name": "ADE_train_00017887.jpg", "width": 683, "id": 17886, "height": 512}, {"file_name": "ADE_train_00017888.jpg", "width": 683, "id": 17887, "height": 512}, {"file_name": "ADE_train_00017889.jpg", "width": 683, "id": 17888, "height": 512}, {"file_name": "ADE_train_00017890.jpg", "width": 683, "id": 17889, "height": 512}, {"file_name": "ADE_train_00017891.jpg", "width": 683, "id": 17890, "height": 512}, {"file_name": "ADE_train_00017892.jpg", "width": 683, "id": 17891, "height": 512}, {"file_name": "ADE_train_00017893.jpg", "width": 683, "id": 17892, "height": 512}, {"file_name": "ADE_train_00017894.jpg", "width": 683, "id": 17893, "height": 512}, {"file_name": "ADE_train_00017895.jpg", "width": 683, "id": 17894, "height": 512}, {"file_name": "ADE_train_00017896.jpg", "width": 512, "id": 17895, "height": 683}, {"file_name": "ADE_train_00017897.jpg", "width": 683, "id": 17896, "height": 512}, {"file_name": "ADE_train_00017898.jpg", "width": 683, "id": 17897, "height": 512}, {"file_name": "ADE_train_00017899.jpg", "width": 568, "id": 17898, "height": 426}, {"file_name": "ADE_train_00017900.jpg", "width": 683, "id": 17899, "height": 512}, {"file_name": "ADE_train_00017901.jpg", "width": 683, "id": 17900, "height": 512}, {"file_name": "ADE_train_00017902.jpg", "width": 683, "id": 17901, "height": 512}, {"file_name": "ADE_train_00017903.jpg", "width": 512, "id": 17902, "height": 683}, {"file_name": "ADE_train_00017904.jpg", "width": 683, "id": 17903, "height": 512}, {"file_name": "ADE_train_00017905.jpg", "width": 683, "id": 17904, "height": 512}, {"file_name": "ADE_train_00017906.jpg", "width": 683, "id": 17905, "height": 512}, {"file_name": "ADE_train_00017907.jpg", "width": 683, "id": 17906, "height": 512}, {"file_name": "ADE_train_00017908.jpg", "width": 683, "id": 17907, "height": 512}, {"file_name": "ADE_train_00017909.jpg", "width": 683, "id": 17908, "height": 512}, {"file_name": "ADE_train_00017910.jpg", "width": 683, "id": 17909, "height": 512}, {"file_name": "ADE_train_00017911.jpg", "width": 683, "id": 17910, "height": 512}, {"file_name": "ADE_train_00017912.jpg", "width": 683, "id": 17911, "height": 512}, {"file_name": "ADE_train_00017913.jpg", "width": 683, "id": 17912, "height": 512}, {"file_name": "ADE_train_00017914.jpg", "width": 683, "id": 17913, "height": 512}, {"file_name": "ADE_train_00017915.jpg", "width": 683, "id": 17914, "height": 512}, {"file_name": "ADE_train_00017916.jpg", "width": 683, "id": 17915, "height": 512}, {"file_name": "ADE_train_00017917.jpg", "width": 683, "id": 17916, "height": 512}, {"file_name": "ADE_train_00017918.jpg", "width": 683, "id": 17917, "height": 512}, {"file_name": "ADE_train_00017919.jpg", "width": 683, "id": 17918, "height": 512}, {"file_name": "ADE_train_00017920.jpg", "width": 683, "id": 17919, "height": 512}, {"file_name": "ADE_train_00017921.jpg", "width": 683, "id": 17920, "height": 512}, {"file_name": "ADE_train_00017922.jpg", "width": 683, "id": 17921, "height": 512}, {"file_name": "ADE_train_00017923.jpg", "width": 683, "id": 17922, "height": 512}, {"file_name": "ADE_train_00017924.jpg", "width": 683, "id": 17923, "height": 512}, {"file_name": "ADE_train_00017925.jpg", "width": 683, "id": 17924, "height": 512}, {"file_name": "ADE_train_00017926.jpg", "width": 683, "id": 17925, "height": 512}, {"file_name": "ADE_train_00017927.jpg", "width": 683, "id": 17926, "height": 512}, {"file_name": "ADE_train_00017928.jpg", "width": 683, "id": 17927, "height": 512}, {"file_name": "ADE_train_00017929.jpg", "width": 683, "id": 17928, "height": 512}, {"file_name": "ADE_train_00017930.jpg", "width": 683, "id": 17929, "height": 512}, {"file_name": "ADE_train_00017931.jpg", "width": 683, "id": 17930, "height": 512}, {"file_name": "ADE_train_00017932.jpg", "width": 683, "id": 17931, "height": 512}, {"file_name": "ADE_train_00017933.jpg", "width": 683, "id": 17932, "height": 512}, {"file_name": "ADE_train_00017934.jpg", "width": 683, "id": 17933, "height": 512}, {"file_name": "ADE_train_00017935.jpg", "width": 683, "id": 17934, "height": 512}, {"file_name": "ADE_train_00017936.jpg", "width": 683, "id": 17935, "height": 512}, {"file_name": "ADE_train_00017937.jpg", "width": 683, "id": 17936, "height": 512}, {"file_name": "ADE_train_00017938.jpg", "width": 683, "id": 17937, "height": 512}, {"file_name": "ADE_train_00017939.jpg", "width": 683, "id": 17938, "height": 512}, {"file_name": "ADE_train_00017940.jpg", "width": 683, "id": 17939, "height": 512}, {"file_name": "ADE_train_00017941.jpg", "width": 683, "id": 17940, "height": 512}, {"file_name": "ADE_train_00017942.jpg", "width": 683, "id": 17941, "height": 512}, {"file_name": "ADE_train_00017943.jpg", "width": 683, "id": 17942, "height": 512}, {"file_name": "ADE_train_00017944.jpg", "width": 683, "id": 17943, "height": 512}, {"file_name": "ADE_train_00017945.jpg", "width": 683, "id": 17944, "height": 512}, {"file_name": "ADE_train_00017946.jpg", "width": 683, "id": 17945, "height": 512}, {"file_name": "ADE_train_00017947.jpg", "width": 683, "id": 17946, "height": 512}, {"file_name": "ADE_train_00017948.jpg", "width": 768, "id": 17947, "height": 512}, {"file_name": "ADE_train_00017949.jpg", "width": 683, "id": 17948, "height": 512}, {"file_name": "ADE_train_00017950.jpg", "width": 640, "id": 17949, "height": 480}, {"file_name": "ADE_train_00017951.jpg", "width": 683, "id": 17950, "height": 512}, {"file_name": "ADE_train_00017952.jpg", "width": 683, "id": 17951, "height": 512}, {"file_name": "ADE_train_00017953.jpg", "width": 683, "id": 17952, "height": 512}, {"file_name": "ADE_train_00017954.jpg", "width": 512, "id": 17953, "height": 683}, {"file_name": "ADE_train_00017955.jpg", "width": 683, "id": 17954, "height": 512}, {"file_name": "ADE_train_00017956.jpg", "width": 683, "id": 17955, "height": 512}, {"file_name": "ADE_train_00017957.jpg", "width": 683, "id": 17956, "height": 512}, {"file_name": "ADE_train_00017958.jpg", "width": 683, "id": 17957, "height": 512}, {"file_name": "ADE_train_00017959.jpg", "width": 683, "id": 17958, "height": 512}, {"file_name": "ADE_train_00017960.jpg", "width": 683, "id": 17959, "height": 512}, {"file_name": "ADE_train_00017961.jpg", "width": 683, "id": 17960, "height": 512}, {"file_name": "ADE_train_00017962.jpg", "width": 683, "id": 17961, "height": 512}, {"file_name": "ADE_train_00017963.jpg", "width": 683, "id": 17962, "height": 512}, {"file_name": "ADE_train_00017964.jpg", "width": 683, "id": 17963, "height": 512}, {"file_name": "ADE_train_00017965.jpg", "width": 683, "id": 17964, "height": 512}, {"file_name": "ADE_train_00017966.jpg", "width": 683, "id": 17965, "height": 512}, {"file_name": "ADE_train_00017967.jpg", "width": 640, "id": 17966, "height": 480}, {"file_name": "ADE_train_00017968.jpg", "width": 683, "id": 17967, "height": 512}, {"file_name": "ADE_train_00017969.jpg", "width": 683, "id": 17968, "height": 512}, {"file_name": "ADE_train_00017970.jpg", "width": 683, "id": 17969, "height": 512}, {"file_name": "ADE_train_00017971.jpg", "width": 683, "id": 17970, "height": 512}, {"file_name": "ADE_train_00017972.jpg", "width": 683, "id": 17971, "height": 512}, {"file_name": "ADE_train_00017973.jpg", "width": 683, "id": 17972, "height": 512}, {"file_name": "ADE_train_00017974.jpg", "width": 683, "id": 17973, "height": 512}, {"file_name": "ADE_train_00017975.jpg", "width": 640, "id": 17974, "height": 480}, {"file_name": "ADE_train_00017976.jpg", "width": 640, "id": 17975, "height": 480}, {"file_name": "ADE_train_00017977.jpg", "width": 683, "id": 17976, "height": 512}, {"file_name": "ADE_train_00017978.jpg", "width": 683, "id": 17977, "height": 512}, {"file_name": "ADE_train_00017979.jpg", "width": 683, "id": 17978, "height": 512}, {"file_name": "ADE_train_00017980.jpg", "width": 683, "id": 17979, "height": 512}, {"file_name": "ADE_train_00017981.jpg", "width": 683, "id": 17980, "height": 512}, {"file_name": "ADE_train_00017982.jpg", "width": 683, "id": 17981, "height": 512}, {"file_name": "ADE_train_00017983.jpg", "width": 683, "id": 17982, "height": 512}, {"file_name": "ADE_train_00017984.jpg", "width": 640, "id": 17983, "height": 480}, {"file_name": "ADE_train_00017985.jpg", "width": 768, "id": 17984, "height": 512}, {"file_name": "ADE_train_00017986.jpg", "width": 683, "id": 17985, "height": 512}, {"file_name": "ADE_train_00017987.jpg", "width": 683, "id": 17986, "height": 512}, {"file_name": "ADE_train_00017988.jpg", "width": 683, "id": 17987, "height": 512}, {"file_name": "ADE_train_00017989.jpg", "width": 683, "id": 17988, "height": 512}, {"file_name": "ADE_train_00017990.jpg", "width": 683, "id": 17989, "height": 512}, {"file_name": "ADE_train_00017991.jpg", "width": 683, "id": 17990, "height": 512}, {"file_name": "ADE_train_00017992.jpg", "width": 683, "id": 17991, "height": 512}, {"file_name": "ADE_train_00017993.jpg", "width": 683, "id": 17992, "height": 512}, {"file_name": "ADE_train_00017994.jpg", "width": 683, "id": 17993, "height": 512}, {"file_name": "ADE_train_00017995.jpg", "width": 683, "id": 17994, "height": 512}, {"file_name": "ADE_train_00017996.jpg", "width": 683, "id": 17995, "height": 512}, {"file_name": "ADE_train_00017997.jpg", "width": 683, "id": 17996, "height": 512}, {"file_name": "ADE_train_00017998.jpg", "width": 768, "id": 17997, "height": 512}, {"file_name": "ADE_train_00017999.jpg", "width": 683, "id": 17998, "height": 512}, {"file_name": "ADE_train_00018000.jpg", "width": 683, "id": 17999, "height": 512}, {"file_name": "ADE_train_00018001.jpg", "width": 683, "id": 18000, "height": 512}, {"file_name": "ADE_train_00018002.jpg", "width": 512, "id": 18001, "height": 683}, {"file_name": "ADE_train_00018003.jpg", "width": 683, "id": 18002, "height": 512}, {"file_name": "ADE_train_00018004.jpg", "width": 683, "id": 18003, "height": 512}, {"file_name": "ADE_train_00018005.jpg", "width": 683, "id": 18004, "height": 512}, {"file_name": "ADE_train_00018006.jpg", "width": 683, "id": 18005, "height": 512}, {"file_name": "ADE_train_00018007.jpg", "width": 683, "id": 18006, "height": 512}, {"file_name": "ADE_train_00018008.jpg", "width": 683, "id": 18007, "height": 512}, {"file_name": "ADE_train_00018009.jpg", "width": 512, "id": 18008, "height": 683}, {"file_name": "ADE_train_00018010.jpg", "width": 683, "id": 18009, "height": 512}, {"file_name": "ADE_train_00018011.jpg", "width": 683, "id": 18010, "height": 512}, {"file_name": "ADE_train_00018012.jpg", "width": 683, "id": 18011, "height": 512}, {"file_name": "ADE_train_00018013.jpg", "width": 768, "id": 18012, "height": 512}, {"file_name": "ADE_train_00018014.jpg", "width": 683, "id": 18013, "height": 512}, {"file_name": "ADE_train_00018015.jpg", "width": 683, "id": 18014, "height": 512}, {"file_name": "ADE_train_00018016.jpg", "width": 683, "id": 18015, "height": 512}, {"file_name": "ADE_train_00018017.jpg", "width": 683, "id": 18016, "height": 512}, {"file_name": "ADE_train_00018018.jpg", "width": 683, "id": 18017, "height": 512}, {"file_name": "ADE_train_00018019.jpg", "width": 683, "id": 18018, "height": 512}, {"file_name": "ADE_train_00018020.jpg", "width": 512, "id": 18019, "height": 683}, {"file_name": "ADE_train_00018021.jpg", "width": 768, "id": 18020, "height": 512}, {"file_name": "ADE_train_00018022.jpg", "width": 683, "id": 18021, "height": 512}, {"file_name": "ADE_train_00018023.jpg", "width": 683, "id": 18022, "height": 512}, {"file_name": "ADE_train_00018024.jpg", "width": 683, "id": 18023, "height": 512}, {"file_name": "ADE_train_00018025.jpg", "width": 683, "id": 18024, "height": 512}, {"file_name": "ADE_train_00018026.jpg", "width": 683, "id": 18025, "height": 512}, {"file_name": "ADE_train_00018027.jpg", "width": 683, "id": 18026, "height": 512}, {"file_name": "ADE_train_00018028.jpg", "width": 683, "id": 18027, "height": 512}, {"file_name": "ADE_train_00018029.jpg", "width": 683, "id": 18028, "height": 512}, {"file_name": "ADE_train_00018030.jpg", "width": 683, "id": 18029, "height": 512}, {"file_name": "ADE_train_00018031.jpg", "width": 683, "id": 18030, "height": 512}, {"file_name": "ADE_train_00018032.jpg", "width": 683, "id": 18031, "height": 512}, {"file_name": "ADE_train_00018033.jpg", "width": 768, "id": 18032, "height": 512}, {"file_name": "ADE_train_00018034.jpg", "width": 683, "id": 18033, "height": 512}, {"file_name": "ADE_train_00018035.jpg", "width": 683, "id": 18034, "height": 512}, {"file_name": "ADE_train_00018036.jpg", "width": 512, "id": 18035, "height": 683}, {"file_name": "ADE_train_00018037.jpg", "width": 683, "id": 18036, "height": 512}, {"file_name": "ADE_train_00018038.jpg", "width": 683, "id": 18037, "height": 512}, {"file_name": "ADE_train_00018039.jpg", "width": 683, "id": 18038, "height": 512}, {"file_name": "ADE_train_00018040.jpg", "width": 683, "id": 18039, "height": 512}, {"file_name": "ADE_train_00018041.jpg", "width": 683, "id": 18040, "height": 512}, {"file_name": "ADE_train_00018042.jpg", "width": 683, "id": 18041, "height": 512}, {"file_name": "ADE_train_00018043.jpg", "width": 683, "id": 18042, "height": 512}, {"file_name": "ADE_train_00018044.jpg", "width": 683, "id": 18043, "height": 512}, {"file_name": "ADE_train_00018045.jpg", "width": 683, "id": 18044, "height": 512}, {"file_name": "ADE_train_00018046.jpg", "width": 683, "id": 18045, "height": 512}, {"file_name": "ADE_train_00018047.jpg", "width": 683, "id": 18046, "height": 512}, {"file_name": "ADE_train_00018048.jpg", "width": 683, "id": 18047, "height": 512}, {"file_name": "ADE_train_00018049.jpg", "width": 683, "id": 18048, "height": 512}, {"file_name": "ADE_train_00018050.jpg", "width": 683, "id": 18049, "height": 512}, {"file_name": "ADE_train_00018051.jpg", "width": 683, "id": 18050, "height": 512}, {"file_name": "ADE_train_00018052.jpg", "width": 683, "id": 18051, "height": 512}, {"file_name": "ADE_train_00018053.jpg", "width": 683, "id": 18052, "height": 512}, {"file_name": "ADE_train_00018054.jpg", "width": 512, "id": 18053, "height": 683}, {"file_name": "ADE_train_00018055.jpg", "width": 683, "id": 18054, "height": 512}, {"file_name": "ADE_train_00018056.jpg", "width": 683, "id": 18055, "height": 512}, {"file_name": "ADE_train_00018057.jpg", "width": 683, "id": 18056, "height": 512}, {"file_name": "ADE_train_00018058.jpg", "width": 683, "id": 18057, "height": 512}, {"file_name": "ADE_train_00018059.jpg", "width": 683, "id": 18058, "height": 512}, {"file_name": "ADE_train_00018060.jpg", "width": 683, "id": 18059, "height": 512}, {"file_name": "ADE_train_00018061.jpg", "width": 683, "id": 18060, "height": 512}, {"file_name": "ADE_train_00018062.jpg", "width": 768, "id": 18061, "height": 512}, {"file_name": "ADE_train_00018063.jpg", "width": 683, "id": 18062, "height": 512}, {"file_name": "ADE_train_00018064.jpg", "width": 683, "id": 18063, "height": 512}, {"file_name": "ADE_train_00018065.jpg", "width": 683, "id": 18064, "height": 512}, {"file_name": "ADE_train_00018066.jpg", "width": 683, "id": 18065, "height": 512}, {"file_name": "ADE_train_00018067.jpg", "width": 683, "id": 18066, "height": 512}, {"file_name": "ADE_train_00018068.jpg", "width": 683, "id": 18067, "height": 512}, {"file_name": "ADE_train_00018069.jpg", "width": 683, "id": 18068, "height": 512}, {"file_name": "ADE_train_00018070.jpg", "width": 683, "id": 18069, "height": 512}, {"file_name": "ADE_train_00018071.jpg", "width": 640, "id": 18070, "height": 480}, {"file_name": "ADE_train_00018072.jpg", "width": 683, "id": 18071, "height": 512}, {"file_name": "ADE_train_00018073.jpg", "width": 683, "id": 18072, "height": 512}, {"file_name": "ADE_train_00018074.jpg", "width": 512, "id": 18073, "height": 683}, {"file_name": "ADE_train_00018075.jpg", "width": 683, "id": 18074, "height": 512}, {"file_name": "ADE_train_00018076.jpg", "width": 683, "id": 18075, "height": 512}, {"file_name": "ADE_train_00018077.jpg", "width": 683, "id": 18076, "height": 512}, {"file_name": "ADE_train_00018078.jpg", "width": 768, "id": 18077, "height": 512}, {"file_name": "ADE_train_00018079.jpg", "width": 683, "id": 18078, "height": 512}, {"file_name": "ADE_train_00018080.jpg", "width": 683, "id": 18079, "height": 512}, {"file_name": "ADE_train_00018081.jpg", "width": 683, "id": 18080, "height": 512}, {"file_name": "ADE_train_00018082.jpg", "width": 768, "id": 18081, "height": 512}, {"file_name": "ADE_train_00018083.jpg", "width": 683, "id": 18082, "height": 512}, {"file_name": "ADE_train_00018084.jpg", "width": 683, "id": 18083, "height": 512}, {"file_name": "ADE_train_00018085.jpg", "width": 683, "id": 18084, "height": 512}, {"file_name": "ADE_train_00018086.jpg", "width": 683, "id": 18085, "height": 512}, {"file_name": "ADE_train_00018087.jpg", "width": 768, "id": 18086, "height": 512}, {"file_name": "ADE_train_00018088.jpg", "width": 640, "id": 18087, "height": 480}, {"file_name": "ADE_train_00018089.jpg", "width": 683, "id": 18088, "height": 512}, {"file_name": "ADE_train_00018090.jpg", "width": 683, "id": 18089, "height": 512}, {"file_name": "ADE_train_00018091.jpg", "width": 683, "id": 18090, "height": 512}, {"file_name": "ADE_train_00018092.jpg", "width": 683, "id": 18091, "height": 512}, {"file_name": "ADE_train_00018093.jpg", "width": 683, "id": 18092, "height": 512}, {"file_name": "ADE_train_00018094.jpg", "width": 683, "id": 18093, "height": 512}, {"file_name": "ADE_train_00018095.jpg", "width": 683, "id": 18094, "height": 512}, {"file_name": "ADE_train_00018096.jpg", "width": 512, "id": 18095, "height": 683}, {"file_name": "ADE_train_00018097.jpg", "width": 683, "id": 18096, "height": 512}, {"file_name": "ADE_train_00018098.jpg", "width": 683, "id": 18097, "height": 512}, {"file_name": "ADE_train_00018099.jpg", "width": 640, "id": 18098, "height": 480}, {"file_name": "ADE_train_00018100.jpg", "width": 683, "id": 18099, "height": 512}, {"file_name": "ADE_train_00018101.jpg", "width": 683, "id": 18100, "height": 512}, {"file_name": "ADE_train_00018102.jpg", "width": 683, "id": 18101, "height": 512}, {"file_name": "ADE_train_00018103.jpg", "width": 683, "id": 18102, "height": 512}, {"file_name": "ADE_train_00018104.jpg", "width": 683, "id": 18103, "height": 512}, {"file_name": "ADE_train_00018105.jpg", "width": 683, "id": 18104, "height": 512}, {"file_name": "ADE_train_00018106.jpg", "width": 683, "id": 18105, "height": 512}, {"file_name": "ADE_train_00018107.jpg", "width": 683, "id": 18106, "height": 512}, {"file_name": "ADE_train_00018108.jpg", "width": 512, "id": 18107, "height": 683}, {"file_name": "ADE_train_00018109.jpg", "width": 683, "id": 18108, "height": 512}, {"file_name": "ADE_train_00018110.jpg", "width": 683, "id": 18109, "height": 512}, {"file_name": "ADE_train_00018111.jpg", "width": 683, "id": 18110, "height": 512}, {"file_name": "ADE_train_00018112.jpg", "width": 683, "id": 18111, "height": 512}, {"file_name": "ADE_train_00018113.jpg", "width": 683, "id": 18112, "height": 512}, {"file_name": "ADE_train_00018114.jpg", "width": 683, "id": 18113, "height": 512}, {"file_name": "ADE_train_00018115.jpg", "width": 683, "id": 18114, "height": 512}, {"file_name": "ADE_train_00018116.jpg", "width": 683, "id": 18115, "height": 512}, {"file_name": "ADE_train_00018117.jpg", "width": 683, "id": 18116, "height": 512}, {"file_name": "ADE_train_00018118.jpg", "width": 683, "id": 18117, "height": 512}, {"file_name": "ADE_train_00018119.jpg", "width": 683, "id": 18118, "height": 512}, {"file_name": "ADE_train_00018120.jpg", "width": 512, "id": 18119, "height": 683}, {"file_name": "ADE_train_00018121.jpg", "width": 683, "id": 18120, "height": 512}, {"file_name": "ADE_train_00018122.jpg", "width": 683, "id": 18121, "height": 512}, {"file_name": "ADE_train_00018123.jpg", "width": 683, "id": 18122, "height": 512}, {"file_name": "ADE_train_00018124.jpg", "width": 683, "id": 18123, "height": 512}, {"file_name": "ADE_train_00018125.jpg", "width": 683, "id": 18124, "height": 512}, {"file_name": "ADE_train_00018126.jpg", "width": 683, "id": 18125, "height": 512}, {"file_name": "ADE_train_00018127.jpg", "width": 683, "id": 18126, "height": 512}, {"file_name": "ADE_train_00018128.jpg", "width": 683, "id": 18127, "height": 512}, {"file_name": "ADE_train_00018129.jpg", "width": 768, "id": 18128, "height": 512}, {"file_name": "ADE_train_00018130.jpg", "width": 683, "id": 18129, "height": 512}, {"file_name": "ADE_train_00018131.jpg", "width": 683, "id": 18130, "height": 512}, {"file_name": "ADE_train_00018132.jpg", "width": 683, "id": 18131, "height": 512}, {"file_name": "ADE_train_00018133.jpg", "width": 683, "id": 18132, "height": 512}, {"file_name": "ADE_train_00018134.jpg", "width": 683, "id": 18133, "height": 512}, {"file_name": "ADE_train_00018135.jpg", "width": 640, "id": 18134, "height": 480}, {"file_name": "ADE_train_00018136.jpg", "width": 683, "id": 18135, "height": 512}, {"file_name": "ADE_train_00018137.jpg", "width": 683, "id": 18136, "height": 512}, {"file_name": "ADE_train_00018138.jpg", "width": 683, "id": 18137, "height": 512}, {"file_name": "ADE_train_00018139.jpg", "width": 683, "id": 18138, "height": 512}, {"file_name": "ADE_train_00018140.jpg", "width": 683, "id": 18139, "height": 512}, {"file_name": "ADE_train_00018141.jpg", "width": 683, "id": 18140, "height": 512}, {"file_name": "ADE_train_00018142.jpg", "width": 683, "id": 18141, "height": 512}, {"file_name": "ADE_train_00018143.jpg", "width": 683, "id": 18142, "height": 512}, {"file_name": "ADE_train_00018144.jpg", "width": 683, "id": 18143, "height": 512}, {"file_name": "ADE_train_00018145.jpg", "width": 683, "id": 18144, "height": 512}, {"file_name": "ADE_train_00018146.jpg", "width": 683, "id": 18145, "height": 512}, {"file_name": "ADE_train_00018147.jpg", "width": 683, "id": 18146, "height": 512}, {"file_name": "ADE_train_00018148.jpg", "width": 683, "id": 18147, "height": 512}, {"file_name": "ADE_train_00018149.jpg", "width": 683, "id": 18148, "height": 512}, {"file_name": "ADE_train_00018150.jpg", "width": 683, "id": 18149, "height": 512}, {"file_name": "ADE_train_00018151.jpg", "width": 683, "id": 18150, "height": 512}, {"file_name": "ADE_train_00018152.jpg", "width": 683, "id": 18151, "height": 512}, {"file_name": "ADE_train_00018153.jpg", "width": 683, "id": 18152, "height": 512}, {"file_name": "ADE_train_00018154.jpg", "width": 683, "id": 18153, "height": 512}, {"file_name": "ADE_train_00018155.jpg", "width": 683, "id": 18154, "height": 512}, {"file_name": "ADE_train_00018156.jpg", "width": 683, "id": 18155, "height": 512}, {"file_name": "ADE_train_00018157.jpg", "width": 683, "id": 18156, "height": 512}, {"file_name": "ADE_train_00018158.jpg", "width": 683, "id": 18157, "height": 512}, {"file_name": "ADE_train_00018159.jpg", "width": 683, "id": 18158, "height": 512}, {"file_name": "ADE_train_00018160.jpg", "width": 683, "id": 18159, "height": 512}, {"file_name": "ADE_train_00018161.jpg", "width": 683, "id": 18160, "height": 512}, {"file_name": "ADE_train_00018162.jpg", "width": 683, "id": 18161, "height": 512}, {"file_name": "ADE_train_00018163.jpg", "width": 683, "id": 18162, "height": 512}, {"file_name": "ADE_train_00018164.jpg", "width": 683, "id": 18163, "height": 512}, {"file_name": "ADE_train_00018165.jpg", "width": 683, "id": 18164, "height": 512}, {"file_name": "ADE_train_00018166.jpg", "width": 683, "id": 18165, "height": 512}, {"file_name": "ADE_train_00018167.jpg", "width": 683, "id": 18166, "height": 512}, {"file_name": "ADE_train_00018168.jpg", "width": 640, "id": 18167, "height": 480}, {"file_name": "ADE_train_00018169.jpg", "width": 683, "id": 18168, "height": 512}, {"file_name": "ADE_train_00018170.jpg", "width": 683, "id": 18169, "height": 512}, {"file_name": "ADE_train_00018171.jpg", "width": 683, "id": 18170, "height": 512}, {"file_name": "ADE_train_00018172.jpg", "width": 683, "id": 18171, "height": 512}, {"file_name": "ADE_train_00018173.jpg", "width": 683, "id": 18172, "height": 512}, {"file_name": "ADE_train_00018174.jpg", "width": 568, "id": 18173, "height": 426}, {"file_name": "ADE_train_00018175.jpg", "width": 683, "id": 18174, "height": 512}, {"file_name": "ADE_train_00018176.jpg", "width": 683, "id": 18175, "height": 512}, {"file_name": "ADE_train_00018177.jpg", "width": 640, "id": 18176, "height": 480}, {"file_name": "ADE_train_00018178.jpg", "width": 683, "id": 18177, "height": 512}, {"file_name": "ADE_train_00018179.jpg", "width": 683, "id": 18178, "height": 512}, {"file_name": "ADE_train_00018180.jpg", "width": 512, "id": 18179, "height": 683}, {"file_name": "ADE_train_00018181.jpg", "width": 683, "id": 18180, "height": 512}, {"file_name": "ADE_train_00018182.jpg", "width": 683, "id": 18181, "height": 512}, {"file_name": "ADE_train_00018183.jpg", "width": 683, "id": 18182, "height": 512}, {"file_name": "ADE_train_00018184.jpg", "width": 683, "id": 18183, "height": 512}, {"file_name": "ADE_train_00018185.jpg", "width": 683, "id": 18184, "height": 512}, {"file_name": "ADE_train_00018186.jpg", "width": 683, "id": 18185, "height": 512}, {"file_name": "ADE_train_00018187.jpg", "width": 512, "id": 18186, "height": 683}, {"file_name": "ADE_train_00018188.jpg", "width": 768, "id": 18187, "height": 512}, {"file_name": "ADE_train_00018189.jpg", "width": 683, "id": 18188, "height": 512}, {"file_name": "ADE_train_00018190.jpg", "width": 683, "id": 18189, "height": 512}, {"file_name": "ADE_train_00018191.jpg", "width": 683, "id": 18190, "height": 512}, {"file_name": "ADE_train_00018192.jpg", "width": 683, "id": 18191, "height": 512}, {"file_name": "ADE_train_00018193.jpg", "width": 683, "id": 18192, "height": 512}, {"file_name": "ADE_train_00018194.jpg", "width": 683, "id": 18193, "height": 512}, {"file_name": "ADE_train_00018195.jpg", "width": 683, "id": 18194, "height": 512}, {"file_name": "ADE_train_00018196.jpg", "width": 683, "id": 18195, "height": 512}, {"file_name": "ADE_train_00018197.jpg", "width": 683, "id": 18196, "height": 512}, {"file_name": "ADE_train_00018198.jpg", "width": 683, "id": 18197, "height": 512}, {"file_name": "ADE_train_00018199.jpg", "width": 683, "id": 18198, "height": 512}, {"file_name": "ADE_train_00018200.jpg", "width": 683, "id": 18199, "height": 512}, {"file_name": "ADE_train_00018201.jpg", "width": 683, "id": 18200, "height": 512}, {"file_name": "ADE_train_00018202.jpg", "width": 683, "id": 18201, "height": 512}, {"file_name": "ADE_train_00018203.jpg", "width": 683, "id": 18202, "height": 512}, {"file_name": "ADE_train_00018204.jpg", "width": 683, "id": 18203, "height": 512}, {"file_name": "ADE_train_00018205.jpg", "width": 683, "id": 18204, "height": 512}, {"file_name": "ADE_train_00018206.jpg", "width": 683, "id": 18205, "height": 512}, {"file_name": "ADE_train_00018207.jpg", "width": 683, "id": 18206, "height": 512}, {"file_name": "ADE_train_00018208.jpg", "width": 683, "id": 18207, "height": 512}, {"file_name": "ADE_train_00018209.jpg", "width": 683, "id": 18208, "height": 512}, {"file_name": "ADE_train_00018210.jpg", "width": 768, "id": 18209, "height": 512}, {"file_name": "ADE_train_00018211.jpg", "width": 683, "id": 18210, "height": 512}, {"file_name": "ADE_train_00018212.jpg", "width": 683, "id": 18211, "height": 512}, {"file_name": "ADE_train_00018213.jpg", "width": 683, "id": 18212, "height": 512}, {"file_name": "ADE_train_00018214.jpg", "width": 683, "id": 18213, "height": 512}, {"file_name": "ADE_train_00018215.jpg", "width": 683, "id": 18214, "height": 512}, {"file_name": "ADE_train_00018216.jpg", "width": 683, "id": 18215, "height": 512}, {"file_name": "ADE_train_00018217.jpg", "width": 683, "id": 18216, "height": 512}, {"file_name": "ADE_train_00018218.jpg", "width": 768, "id": 18217, "height": 512}, {"file_name": "ADE_train_00018219.jpg", "width": 683, "id": 18218, "height": 512}, {"file_name": "ADE_train_00018220.jpg", "width": 683, "id": 18219, "height": 512}, {"file_name": "ADE_train_00018221.jpg", "width": 683, "id": 18220, "height": 512}, {"file_name": "ADE_train_00018222.jpg", "width": 683, "id": 18221, "height": 512}, {"file_name": "ADE_train_00018223.jpg", "width": 683, "id": 18222, "height": 512}, {"file_name": "ADE_train_00018224.jpg", "width": 683, "id": 18223, "height": 512}, {"file_name": "ADE_train_00018225.jpg", "width": 683, "id": 18224, "height": 512}, {"file_name": "ADE_train_00018226.jpg", "width": 683, "id": 18225, "height": 512}, {"file_name": "ADE_train_00018227.jpg", "width": 683, "id": 18226, "height": 512}, {"file_name": "ADE_train_00018228.jpg", "width": 683, "id": 18227, "height": 512}, {"file_name": "ADE_train_00018229.jpg", "width": 683, "id": 18228, "height": 512}, {"file_name": "ADE_train_00018230.jpg", "width": 683, "id": 18229, "height": 512}, {"file_name": "ADE_train_00018231.jpg", "width": 683, "id": 18230, "height": 512}, {"file_name": "ADE_train_00018232.jpg", "width": 683, "id": 18231, "height": 512}, {"file_name": "ADE_train_00018233.jpg", "width": 683, "id": 18232, "height": 512}, {"file_name": "ADE_train_00018234.jpg", "width": 683, "id": 18233, "height": 512}, {"file_name": "ADE_train_00018235.jpg", "width": 683, "id": 18234, "height": 512}, {"file_name": "ADE_train_00018236.jpg", "width": 683, "id": 18235, "height": 512}, {"file_name": "ADE_train_00018237.jpg", "width": 683, "id": 18236, "height": 512}, {"file_name": "ADE_train_00018238.jpg", "width": 683, "id": 18237, "height": 512}, {"file_name": "ADE_train_00018239.jpg", "width": 640, "id": 18238, "height": 480}, {"file_name": "ADE_train_00018240.jpg", "width": 683, "id": 18239, "height": 512}, {"file_name": "ADE_train_00018241.jpg", "width": 683, "id": 18240, "height": 512}, {"file_name": "ADE_train_00018242.jpg", "width": 683, "id": 18241, "height": 512}, {"file_name": "ADE_train_00018243.jpg", "width": 683, "id": 18242, "height": 512}, {"file_name": "ADE_train_00018244.jpg", "width": 683, "id": 18243, "height": 512}, {"file_name": "ADE_train_00018245.jpg", "width": 512, "id": 18244, "height": 683}, {"file_name": "ADE_train_00018246.jpg", "width": 683, "id": 18245, "height": 512}, {"file_name": "ADE_train_00018247.jpg", "width": 683, "id": 18246, "height": 512}, {"file_name": "ADE_train_00018248.jpg", "width": 683, "id": 18247, "height": 512}, {"file_name": "ADE_train_00018249.jpg", "width": 683, "id": 18248, "height": 512}, {"file_name": "ADE_train_00018250.jpg", "width": 683, "id": 18249, "height": 512}, {"file_name": "ADE_train_00018251.jpg", "width": 683, "id": 18250, "height": 512}, {"file_name": "ADE_train_00018252.jpg", "width": 683, "id": 18251, "height": 512}, {"file_name": "ADE_train_00018253.jpg", "width": 683, "id": 18252, "height": 512}, {"file_name": "ADE_train_00018254.jpg", "width": 683, "id": 18253, "height": 512}, {"file_name": "ADE_train_00018255.jpg", "width": 683, "id": 18254, "height": 512}, {"file_name": "ADE_train_00018256.jpg", "width": 640, "id": 18255, "height": 480}, {"file_name": "ADE_train_00018257.jpg", "width": 480, "id": 18256, "height": 640}, {"file_name": "ADE_train_00018258.jpg", "width": 683, "id": 18257, "height": 512}, {"file_name": "ADE_train_00018259.jpg", "width": 683, "id": 18258, "height": 512}, {"file_name": "ADE_train_00018260.jpg", "width": 683, "id": 18259, "height": 512}, {"file_name": "ADE_train_00018261.jpg", "width": 768, "id": 18260, "height": 512}, {"file_name": "ADE_train_00018262.jpg", "width": 683, "id": 18261, "height": 512}, {"file_name": "ADE_train_00018263.jpg", "width": 683, "id": 18262, "height": 512}, {"file_name": "ADE_train_00018264.jpg", "width": 683, "id": 18263, "height": 512}, {"file_name": "ADE_train_00018265.jpg", "width": 683, "id": 18264, "height": 512}, {"file_name": "ADE_train_00018266.jpg", "width": 683, "id": 18265, "height": 512}, {"file_name": "ADE_train_00018267.jpg", "width": 683, "id": 18266, "height": 512}, {"file_name": "ADE_train_00018268.jpg", "width": 683, "id": 18267, "height": 512}, {"file_name": "ADE_train_00018269.jpg", "width": 683, "id": 18268, "height": 512}, {"file_name": "ADE_train_00018270.jpg", "width": 683, "id": 18269, "height": 512}, {"file_name": "ADE_train_00018271.jpg", "width": 683, "id": 18270, "height": 512}, {"file_name": "ADE_train_00018272.jpg", "width": 683, "id": 18271, "height": 512}, {"file_name": "ADE_train_00018273.jpg", "width": 683, "id": 18272, "height": 512}, {"file_name": "ADE_train_00018274.jpg", "width": 683, "id": 18273, "height": 512}, {"file_name": "ADE_train_00018275.jpg", "width": 683, "id": 18274, "height": 512}, {"file_name": "ADE_train_00018276.jpg", "width": 683, "id": 18275, "height": 512}, {"file_name": "ADE_train_00018277.jpg", "width": 683, "id": 18276, "height": 512}, {"file_name": "ADE_train_00018278.jpg", "width": 683, "id": 18277, "height": 512}, {"file_name": "ADE_train_00018279.jpg", "width": 683, "id": 18278, "height": 512}, {"file_name": "ADE_train_00018280.jpg", "width": 512, "id": 18279, "height": 683}, {"file_name": "ADE_train_00018281.jpg", "width": 683, "id": 18280, "height": 512}, {"file_name": "ADE_train_00018282.jpg", "width": 512, "id": 18281, "height": 683}, {"file_name": "ADE_train_00018283.jpg", "width": 683, "id": 18282, "height": 512}, {"file_name": "ADE_train_00018284.jpg", "width": 683, "id": 18283, "height": 512}, {"file_name": "ADE_train_00018285.jpg", "width": 683, "id": 18284, "height": 512}, {"file_name": "ADE_train_00018286.jpg", "width": 683, "id": 18285, "height": 512}, {"file_name": "ADE_train_00018287.jpg", "width": 683, "id": 18286, "height": 512}, {"file_name": "ADE_train_00018288.jpg", "width": 683, "id": 18287, "height": 512}, {"file_name": "ADE_train_00018289.jpg", "width": 683, "id": 18288, "height": 512}, {"file_name": "ADE_train_00018290.jpg", "width": 683, "id": 18289, "height": 512}, {"file_name": "ADE_train_00018291.jpg", "width": 683, "id": 18290, "height": 512}, {"file_name": "ADE_train_00018292.jpg", "width": 683, "id": 18291, "height": 512}, {"file_name": "ADE_train_00018293.jpg", "width": 512, "id": 18292, "height": 683}, {"file_name": "ADE_train_00018294.jpg", "width": 512, "id": 18293, "height": 683}, {"file_name": "ADE_train_00018295.jpg", "width": 683, "id": 18294, "height": 512}, {"file_name": "ADE_train_00018296.jpg", "width": 683, "id": 18295, "height": 512}, {"file_name": "ADE_train_00018297.jpg", "width": 683, "id": 18296, "height": 512}, {"file_name": "ADE_train_00018298.jpg", "width": 683, "id": 18297, "height": 512}, {"file_name": "ADE_train_00018299.jpg", "width": 683, "id": 18298, "height": 512}, {"file_name": "ADE_train_00018300.jpg", "width": 683, "id": 18299, "height": 512}, {"file_name": "ADE_train_00018301.jpg", "width": 683, "id": 18300, "height": 512}, {"file_name": "ADE_train_00018302.jpg", "width": 683, "id": 18301, "height": 512}, {"file_name": "ADE_train_00018303.jpg", "width": 683, "id": 18302, "height": 512}, {"file_name": "ADE_train_00018304.jpg", "width": 512, "id": 18303, "height": 683}, {"file_name": "ADE_train_00018305.jpg", "width": 683, "id": 18304, "height": 512}, {"file_name": "ADE_train_00018306.jpg", "width": 683, "id": 18305, "height": 512}, {"file_name": "ADE_train_00018307.jpg", "width": 683, "id": 18306, "height": 512}, {"file_name": "ADE_train_00018308.jpg", "width": 683, "id": 18307, "height": 512}, {"file_name": "ADE_train_00018309.jpg", "width": 683, "id": 18308, "height": 512}, {"file_name": "ADE_train_00018310.jpg", "width": 683, "id": 18309, "height": 512}, {"file_name": "ADE_train_00018311.jpg", "width": 640, "id": 18310, "height": 480}, {"file_name": "ADE_train_00018312.jpg", "width": 683, "id": 18311, "height": 512}, {"file_name": "ADE_train_00018313.jpg", "width": 683, "id": 18312, "height": 512}, {"file_name": "ADE_train_00018314.jpg", "width": 683, "id": 18313, "height": 512}, {"file_name": "ADE_train_00018315.jpg", "width": 683, "id": 18314, "height": 512}, {"file_name": "ADE_train_00018316.jpg", "width": 683, "id": 18315, "height": 512}, {"file_name": "ADE_train_00018317.jpg", "width": 683, "id": 18316, "height": 512}, {"file_name": "ADE_train_00018318.jpg", "width": 640, "id": 18317, "height": 480}, {"file_name": "ADE_train_00018319.jpg", "width": 683, "id": 18318, "height": 512}, {"file_name": "ADE_train_00018320.jpg", "width": 683, "id": 18319, "height": 512}, {"file_name": "ADE_train_00018321.jpg", "width": 683, "id": 18320, "height": 512}, {"file_name": "ADE_train_00018322.jpg", "width": 683, "id": 18321, "height": 512}, {"file_name": "ADE_train_00018323.jpg", "width": 683, "id": 18322, "height": 512}, {"file_name": "ADE_train_00018324.jpg", "width": 683, "id": 18323, "height": 512}, {"file_name": "ADE_train_00018325.jpg", "width": 683, "id": 18324, "height": 512}, {"file_name": "ADE_train_00018326.jpg", "width": 683, "id": 18325, "height": 512}, {"file_name": "ADE_train_00018327.jpg", "width": 683, "id": 18326, "height": 512}, {"file_name": "ADE_train_00018328.jpg", "width": 560, "id": 18327, "height": 420}, {"file_name": "ADE_train_00018329.jpg", "width": 683, "id": 18328, "height": 512}, {"file_name": "ADE_train_00018330.jpg", "width": 683, "id": 18329, "height": 512}, {"file_name": "ADE_train_00018331.jpg", "width": 683, "id": 18330, "height": 512}, {"file_name": "ADE_train_00018332.jpg", "width": 683, "id": 18331, "height": 512}, {"file_name": "ADE_train_00018333.jpg", "width": 683, "id": 18332, "height": 512}, {"file_name": "ADE_train_00018334.jpg", "width": 683, "id": 18333, "height": 512}, {"file_name": "ADE_train_00018335.jpg", "width": 512, "id": 18334, "height": 683}, {"file_name": "ADE_train_00018336.jpg", "width": 683, "id": 18335, "height": 512}, {"file_name": "ADE_train_00018337.jpg", "width": 683, "id": 18336, "height": 512}, {"file_name": "ADE_train_00018338.jpg", "width": 683, "id": 18337, "height": 512}, {"file_name": "ADE_train_00018339.jpg", "width": 683, "id": 18338, "height": 512}, {"file_name": "ADE_train_00018340.jpg", "width": 683, "id": 18339, "height": 512}, {"file_name": "ADE_train_00018341.jpg", "width": 683, "id": 18340, "height": 512}, {"file_name": "ADE_train_00018342.jpg", "width": 683, "id": 18341, "height": 512}, {"file_name": "ADE_train_00018343.jpg", "width": 683, "id": 18342, "height": 512}, {"file_name": "ADE_train_00018344.jpg", "width": 683, "id": 18343, "height": 512}, {"file_name": "ADE_train_00018345.jpg", "width": 768, "id": 18344, "height": 512}, {"file_name": "ADE_train_00018346.jpg", "width": 683, "id": 18345, "height": 512}, {"file_name": "ADE_train_00018347.jpg", "width": 683, "id": 18346, "height": 512}, {"file_name": "ADE_train_00018348.jpg", "width": 683, "id": 18347, "height": 512}, {"file_name": "ADE_train_00018349.jpg", "width": 683, "id": 18348, "height": 512}, {"file_name": "ADE_train_00018350.jpg", "width": 512, "id": 18349, "height": 683}, {"file_name": "ADE_train_00018351.jpg", "width": 683, "id": 18350, "height": 512}, {"file_name": "ADE_train_00018352.jpg", "width": 683, "id": 18351, "height": 512}, {"file_name": "ADE_train_00018353.jpg", "width": 683, "id": 18352, "height": 512}, {"file_name": "ADE_train_00018354.jpg", "width": 683, "id": 18353, "height": 512}, {"file_name": "ADE_train_00018355.jpg", "width": 683, "id": 18354, "height": 512}, {"file_name": "ADE_train_00018356.jpg", "width": 512, "id": 18355, "height": 683}, {"file_name": "ADE_train_00018357.jpg", "width": 683, "id": 18356, "height": 512}, {"file_name": "ADE_train_00018358.jpg", "width": 683, "id": 18357, "height": 512}, {"file_name": "ADE_train_00018359.jpg", "width": 683, "id": 18358, "height": 512}, {"file_name": "ADE_train_00018360.jpg", "width": 683, "id": 18359, "height": 512}, {"file_name": "ADE_train_00018361.jpg", "width": 683, "id": 18360, "height": 512}, {"file_name": "ADE_train_00018362.jpg", "width": 683, "id": 18361, "height": 512}, {"file_name": "ADE_train_00018363.jpg", "width": 683, "id": 18362, "height": 512}, {"file_name": "ADE_train_00018364.jpg", "width": 683, "id": 18363, "height": 512}, {"file_name": "ADE_train_00018365.jpg", "width": 683, "id": 18364, "height": 512}, {"file_name": "ADE_train_00018366.jpg", "width": 683, "id": 18365, "height": 512}, {"file_name": "ADE_train_00018367.jpg", "width": 683, "id": 18366, "height": 512}, {"file_name": "ADE_train_00018368.jpg", "width": 683, "id": 18367, "height": 512}, {"file_name": "ADE_train_00018369.jpg", "width": 683, "id": 18368, "height": 512}, {"file_name": "ADE_train_00018370.jpg", "width": 683, "id": 18369, "height": 512}, {"file_name": "ADE_train_00018371.jpg", "width": 683, "id": 18370, "height": 512}, {"file_name": "ADE_train_00018372.jpg", "width": 683, "id": 18371, "height": 512}, {"file_name": "ADE_train_00018373.jpg", "width": 683, "id": 18372, "height": 512}, {"file_name": "ADE_train_00018374.jpg", "width": 640, "id": 18373, "height": 480}, {"file_name": "ADE_train_00018375.jpg", "width": 683, "id": 18374, "height": 512}, {"file_name": "ADE_train_00018376.jpg", "width": 683, "id": 18375, "height": 512}, {"file_name": "ADE_train_00018377.jpg", "width": 683, "id": 18376, "height": 512}, {"file_name": "ADE_train_00018378.jpg", "width": 512, "id": 18377, "height": 683}, {"file_name": "ADE_train_00018379.jpg", "width": 683, "id": 18378, "height": 512}, {"file_name": "ADE_train_00018380.jpg", "width": 683, "id": 18379, "height": 512}, {"file_name": "ADE_train_00018381.jpg", "width": 683, "id": 18380, "height": 512}, {"file_name": "ADE_train_00018382.jpg", "width": 683, "id": 18381, "height": 512}, {"file_name": "ADE_train_00018383.jpg", "width": 683, "id": 18382, "height": 512}, {"file_name": "ADE_train_00018384.jpg", "width": 683, "id": 18383, "height": 512}, {"file_name": "ADE_train_00018385.jpg", "width": 683, "id": 18384, "height": 512}, {"file_name": "ADE_train_00018386.jpg", "width": 683, "id": 18385, "height": 512}, {"file_name": "ADE_train_00018387.jpg", "width": 683, "id": 18386, "height": 512}, {"file_name": "ADE_train_00018388.jpg", "width": 683, "id": 18387, "height": 512}, {"file_name": "ADE_train_00018389.jpg", "width": 683, "id": 18388, "height": 512}, {"file_name": "ADE_train_00018390.jpg", "width": 683, "id": 18389, "height": 512}, {"file_name": "ADE_train_00018391.jpg", "width": 683, "id": 18390, "height": 512}, {"file_name": "ADE_train_00018392.jpg", "width": 640, "id": 18391, "height": 480}, {"file_name": "ADE_train_00018393.jpg", "width": 683, "id": 18392, "height": 512}, {"file_name": "ADE_train_00018394.jpg", "width": 683, "id": 18393, "height": 512}, {"file_name": "ADE_train_00018395.jpg", "width": 683, "id": 18394, "height": 512}, {"file_name": "ADE_train_00018396.jpg", "width": 683, "id": 18395, "height": 512}, {"file_name": "ADE_train_00018397.jpg", "width": 683, "id": 18396, "height": 512}, {"file_name": "ADE_train_00018398.jpg", "width": 640, "id": 18397, "height": 480}, {"file_name": "ADE_train_00018399.jpg", "width": 683, "id": 18398, "height": 512}, {"file_name": "ADE_train_00018400.jpg", "width": 683, "id": 18399, "height": 512}, {"file_name": "ADE_train_00018401.jpg", "width": 512, "id": 18400, "height": 683}, {"file_name": "ADE_train_00018402.jpg", "width": 683, "id": 18401, "height": 512}, {"file_name": "ADE_train_00018403.jpg", "width": 683, "id": 18402, "height": 512}, {"file_name": "ADE_train_00018404.jpg", "width": 683, "id": 18403, "height": 512}, {"file_name": "ADE_train_00018405.jpg", "width": 683, "id": 18404, "height": 512}, {"file_name": "ADE_train_00018406.jpg", "width": 683, "id": 18405, "height": 512}, {"file_name": "ADE_train_00018407.jpg", "width": 683, "id": 18406, "height": 512}, {"file_name": "ADE_train_00018408.jpg", "width": 683, "id": 18407, "height": 512}, {"file_name": "ADE_train_00018409.jpg", "width": 640, "id": 18408, "height": 480}, {"file_name": "ADE_train_00018410.jpg", "width": 683, "id": 18409, "height": 512}, {"file_name": "ADE_train_00018411.jpg", "width": 768, "id": 18410, "height": 512}, {"file_name": "ADE_train_00018412.jpg", "width": 683, "id": 18411, "height": 512}, {"file_name": "ADE_train_00018413.jpg", "width": 683, "id": 18412, "height": 512}, {"file_name": "ADE_train_00018414.jpg", "width": 683, "id": 18413, "height": 512}, {"file_name": "ADE_train_00018415.jpg", "width": 683, "id": 18414, "height": 512}, {"file_name": "ADE_train_00018416.jpg", "width": 683, "id": 18415, "height": 512}, {"file_name": "ADE_train_00018417.jpg", "width": 683, "id": 18416, "height": 512}, {"file_name": "ADE_train_00018418.jpg", "width": 640, "id": 18417, "height": 480}, {"file_name": "ADE_train_00018419.jpg", "width": 683, "id": 18418, "height": 512}, {"file_name": "ADE_train_00018420.jpg", "width": 683, "id": 18419, "height": 512}, {"file_name": "ADE_train_00018421.jpg", "width": 683, "id": 18420, "height": 512}, {"file_name": "ADE_train_00018422.jpg", "width": 683, "id": 18421, "height": 512}, {"file_name": "ADE_train_00018423.jpg", "width": 683, "id": 18422, "height": 512}, {"file_name": "ADE_train_00018424.jpg", "width": 683, "id": 18423, "height": 512}, {"file_name": "ADE_train_00018425.jpg", "width": 640, "id": 18424, "height": 480}, {"file_name": "ADE_train_00018426.jpg", "width": 683, "id": 18425, "height": 512}, {"file_name": "ADE_train_00018427.jpg", "width": 683, "id": 18426, "height": 512}, {"file_name": "ADE_train_00018428.jpg", "width": 683, "id": 18427, "height": 512}, {"file_name": "ADE_train_00018429.jpg", "width": 683, "id": 18428, "height": 512}, {"file_name": "ADE_train_00018430.jpg", "width": 683, "id": 18429, "height": 512}, {"file_name": "ADE_train_00018431.jpg", "width": 683, "id": 18430, "height": 512}, {"file_name": "ADE_train_00018432.jpg", "width": 683, "id": 18431, "height": 512}, {"file_name": "ADE_train_00018433.jpg", "width": 683, "id": 18432, "height": 512}, {"file_name": "ADE_train_00018434.jpg", "width": 512, "id": 18433, "height": 683}, {"file_name": "ADE_train_00018435.jpg", "width": 683, "id": 18434, "height": 512}, {"file_name": "ADE_train_00018436.jpg", "width": 683, "id": 18435, "height": 512}, {"file_name": "ADE_train_00018437.jpg", "width": 683, "id": 18436, "height": 512}, {"file_name": "ADE_train_00018438.jpg", "width": 683, "id": 18437, "height": 512}, {"file_name": "ADE_train_00018439.jpg", "width": 768, "id": 18438, "height": 512}, {"file_name": "ADE_train_00018440.jpg", "width": 512, "id": 18439, "height": 683}, {"file_name": "ADE_train_00018441.jpg", "width": 683, "id": 18440, "height": 512}, {"file_name": "ADE_train_00018442.jpg", "width": 683, "id": 18441, "height": 512}, {"file_name": "ADE_train_00018443.jpg", "width": 683, "id": 18442, "height": 512}, {"file_name": "ADE_train_00018444.jpg", "width": 683, "id": 18443, "height": 512}, {"file_name": "ADE_train_00018445.jpg", "width": 683, "id": 18444, "height": 512}, {"file_name": "ADE_train_00018446.jpg", "width": 683, "id": 18445, "height": 512}, {"file_name": "ADE_train_00018447.jpg", "width": 683, "id": 18446, "height": 512}, {"file_name": "ADE_train_00018448.jpg", "width": 683, "id": 18447, "height": 512}, {"file_name": "ADE_train_00018449.jpg", "width": 683, "id": 18448, "height": 512}, {"file_name": "ADE_train_00018450.jpg", "width": 683, "id": 18449, "height": 512}, {"file_name": "ADE_train_00018451.jpg", "width": 683, "id": 18450, "height": 512}, {"file_name": "ADE_train_00018452.jpg", "width": 683, "id": 18451, "height": 512}, {"file_name": "ADE_train_00018453.jpg", "width": 683, "id": 18452, "height": 512}, {"file_name": "ADE_train_00018454.jpg", "width": 683, "id": 18453, "height": 512}, {"file_name": "ADE_train_00018455.jpg", "width": 683, "id": 18454, "height": 512}, {"file_name": "ADE_train_00018456.jpg", "width": 683, "id": 18455, "height": 512}, {"file_name": "ADE_train_00018457.jpg", "width": 683, "id": 18456, "height": 512}, {"file_name": "ADE_train_00018458.jpg", "width": 768, "id": 18457, "height": 512}, {"file_name": "ADE_train_00018459.jpg", "width": 683, "id": 18458, "height": 512}, {"file_name": "ADE_train_00018460.jpg", "width": 683, "id": 18459, "height": 512}, {"file_name": "ADE_train_00018461.jpg", "width": 683, "id": 18460, "height": 512}, {"file_name": "ADE_train_00018462.jpg", "width": 683, "id": 18461, "height": 512}, {"file_name": "ADE_train_00018463.jpg", "width": 683, "id": 18462, "height": 512}, {"file_name": "ADE_train_00018464.jpg", "width": 683, "id": 18463, "height": 512}, {"file_name": "ADE_train_00018465.jpg", "width": 683, "id": 18464, "height": 512}, {"file_name": "ADE_train_00018466.jpg", "width": 640, "id": 18465, "height": 480}, {"file_name": "ADE_train_00018467.jpg", "width": 683, "id": 18466, "height": 512}, {"file_name": "ADE_train_00018468.jpg", "width": 683, "id": 18467, "height": 512}, {"file_name": "ADE_train_00018469.jpg", "width": 683, "id": 18468, "height": 512}, {"file_name": "ADE_train_00018470.jpg", "width": 683, "id": 18469, "height": 512}, {"file_name": "ADE_train_00018471.jpg", "width": 683, "id": 18470, "height": 512}, {"file_name": "ADE_train_00018472.jpg", "width": 683, "id": 18471, "height": 512}, {"file_name": "ADE_train_00018473.jpg", "width": 683, "id": 18472, "height": 512}, {"file_name": "ADE_train_00018474.jpg", "width": 683, "id": 18473, "height": 512}, {"file_name": "ADE_train_00018475.jpg", "width": 683, "id": 18474, "height": 512}, {"file_name": "ADE_train_00018476.jpg", "width": 683, "id": 18475, "height": 512}, {"file_name": "ADE_train_00018477.jpg", "width": 683, "id": 18476, "height": 512}, {"file_name": "ADE_train_00018478.jpg", "width": 683, "id": 18477, "height": 512}, {"file_name": "ADE_train_00018479.jpg", "width": 683, "id": 18478, "height": 512}, {"file_name": "ADE_train_00018480.jpg", "width": 640, "id": 18479, "height": 480}, {"file_name": "ADE_train_00018481.jpg", "width": 683, "id": 18480, "height": 512}, {"file_name": "ADE_train_00018482.jpg", "width": 683, "id": 18481, "height": 512}, {"file_name": "ADE_train_00018483.jpg", "width": 683, "id": 18482, "height": 512}, {"file_name": "ADE_train_00018484.jpg", "width": 683, "id": 18483, "height": 512}, {"file_name": "ADE_train_00018485.jpg", "width": 640, "id": 18484, "height": 480}, {"file_name": "ADE_train_00018486.jpg", "width": 683, "id": 18485, "height": 512}, {"file_name": "ADE_train_00018487.jpg", "width": 683, "id": 18486, "height": 512}, {"file_name": "ADE_train_00018488.jpg", "width": 683, "id": 18487, "height": 512}, {"file_name": "ADE_train_00018489.jpg", "width": 683, "id": 18488, "height": 512}, {"file_name": "ADE_train_00018490.jpg", "width": 768, "id": 18489, "height": 512}, {"file_name": "ADE_train_00018491.jpg", "width": 683, "id": 18490, "height": 512}, {"file_name": "ADE_train_00018492.jpg", "width": 683, "id": 18491, "height": 512}, {"file_name": "ADE_train_00018493.jpg", "width": 683, "id": 18492, "height": 512}, {"file_name": "ADE_train_00018494.jpg", "width": 683, "id": 18493, "height": 512}, {"file_name": "ADE_train_00018495.jpg", "width": 512, "id": 18494, "height": 683}, {"file_name": "ADE_train_00018496.jpg", "width": 512, "id": 18495, "height": 683}, {"file_name": "ADE_train_00018497.jpg", "width": 683, "id": 18496, "height": 512}, {"file_name": "ADE_train_00018498.jpg", "width": 683, "id": 18497, "height": 512}, {"file_name": "ADE_train_00018499.jpg", "width": 683, "id": 18498, "height": 512}, {"file_name": "ADE_train_00018500.jpg", "width": 768, "id": 18499, "height": 512}, {"file_name": "ADE_train_00018501.jpg", "width": 683, "id": 18500, "height": 512}, {"file_name": "ADE_train_00018502.jpg", "width": 512, "id": 18501, "height": 683}, {"file_name": "ADE_train_00018503.jpg", "width": 683, "id": 18502, "height": 512}, {"file_name": "ADE_train_00018504.jpg", "width": 683, "id": 18503, "height": 512}, {"file_name": "ADE_train_00018505.jpg", "width": 768, "id": 18504, "height": 512}, {"file_name": "ADE_train_00018506.jpg", "width": 683, "id": 18505, "height": 512}, {"file_name": "ADE_train_00018507.jpg", "width": 683, "id": 18506, "height": 512}, {"file_name": "ADE_train_00018508.jpg", "width": 683, "id": 18507, "height": 512}, {"file_name": "ADE_train_00018509.jpg", "width": 683, "id": 18508, "height": 512}, {"file_name": "ADE_train_00018510.jpg", "width": 683, "id": 18509, "height": 512}, {"file_name": "ADE_train_00018511.jpg", "width": 683, "id": 18510, "height": 512}, {"file_name": "ADE_train_00018512.jpg", "width": 683, "id": 18511, "height": 512}, {"file_name": "ADE_train_00018513.jpg", "width": 683, "id": 18512, "height": 512}, {"file_name": "ADE_train_00018514.jpg", "width": 683, "id": 18513, "height": 512}, {"file_name": "ADE_train_00018515.jpg", "width": 683, "id": 18514, "height": 512}, {"file_name": "ADE_train_00018516.jpg", "width": 683, "id": 18515, "height": 512}, {"file_name": "ADE_train_00018517.jpg", "width": 512, "id": 18516, "height": 683}, {"file_name": "ADE_train_00018518.jpg", "width": 683, "id": 18517, "height": 512}, {"file_name": "ADE_train_00018519.jpg", "width": 683, "id": 18518, "height": 512}, {"file_name": "ADE_train_00018520.jpg", "width": 512, "id": 18519, "height": 683}, {"file_name": "ADE_train_00018521.jpg", "width": 768, "id": 18520, "height": 512}, {"file_name": "ADE_train_00018522.jpg", "width": 683, "id": 18521, "height": 512}, {"file_name": "ADE_train_00018523.jpg", "width": 683, "id": 18522, "height": 512}, {"file_name": "ADE_train_00018524.jpg", "width": 683, "id": 18523, "height": 512}, {"file_name": "ADE_train_00018525.jpg", "width": 683, "id": 18524, "height": 512}, {"file_name": "ADE_train_00018526.jpg", "width": 683, "id": 18525, "height": 512}, {"file_name": "ADE_train_00018527.jpg", "width": 683, "id": 18526, "height": 512}, {"file_name": "ADE_train_00018528.jpg", "width": 683, "id": 18527, "height": 512}, {"file_name": "ADE_train_00018529.jpg", "width": 683, "id": 18528, "height": 512}, {"file_name": "ADE_train_00018530.jpg", "width": 683, "id": 18529, "height": 512}, {"file_name": "ADE_train_00018531.jpg", "width": 683, "id": 18530, "height": 512}, {"file_name": "ADE_train_00018532.jpg", "width": 683, "id": 18531, "height": 512}, {"file_name": "ADE_train_00018533.jpg", "width": 683, "id": 18532, "height": 512}, {"file_name": "ADE_train_00018534.jpg", "width": 683, "id": 18533, "height": 512}, {"file_name": "ADE_train_00018535.jpg", "width": 683, "id": 18534, "height": 512}, {"file_name": "ADE_train_00018536.jpg", "width": 683, "id": 18535, "height": 512}, {"file_name": "ADE_train_00018537.jpg", "width": 683, "id": 18536, "height": 512}, {"file_name": "ADE_train_00018538.jpg", "width": 683, "id": 18537, "height": 512}, {"file_name": "ADE_train_00018539.jpg", "width": 683, "id": 18538, "height": 512}, {"file_name": "ADE_train_00018540.jpg", "width": 683, "id": 18539, "height": 512}, {"file_name": "ADE_train_00018541.jpg", "width": 683, "id": 18540, "height": 512}, {"file_name": "ADE_train_00018542.jpg", "width": 683, "id": 18541, "height": 512}, {"file_name": "ADE_train_00018543.jpg", "width": 683, "id": 18542, "height": 512}, {"file_name": "ADE_train_00018544.jpg", "width": 683, "id": 18543, "height": 512}, {"file_name": "ADE_train_00018545.jpg", "width": 683, "id": 18544, "height": 512}, {"file_name": "ADE_train_00018546.jpg", "width": 683, "id": 18545, "height": 512}, {"file_name": "ADE_train_00018547.jpg", "width": 512, "id": 18546, "height": 683}, {"file_name": "ADE_train_00018548.jpg", "width": 683, "id": 18547, "height": 512}, {"file_name": "ADE_train_00018549.jpg", "width": 640, "id": 18548, "height": 480}, {"file_name": "ADE_train_00018550.jpg", "width": 683, "id": 18549, "height": 512}, {"file_name": "ADE_train_00018551.jpg", "width": 768, "id": 18550, "height": 512}, {"file_name": "ADE_train_00018552.jpg", "width": 683, "id": 18551, "height": 512}, {"file_name": "ADE_train_00018553.jpg", "width": 683, "id": 18552, "height": 512}, {"file_name": "ADE_train_00018554.jpg", "width": 683, "id": 18553, "height": 512}, {"file_name": "ADE_train_00018555.jpg", "width": 683, "id": 18554, "height": 512}, {"file_name": "ADE_train_00018556.jpg", "width": 683, "id": 18555, "height": 512}, {"file_name": "ADE_train_00018557.jpg", "width": 683, "id": 18556, "height": 512}, {"file_name": "ADE_train_00018558.jpg", "width": 683, "id": 18557, "height": 512}, {"file_name": "ADE_train_00018559.jpg", "width": 683, "id": 18558, "height": 512}, {"file_name": "ADE_train_00018560.jpg", "width": 683, "id": 18559, "height": 512}, {"file_name": "ADE_train_00018561.jpg", "width": 683, "id": 18560, "height": 512}, {"file_name": "ADE_train_00018562.jpg", "width": 683, "id": 18561, "height": 512}, {"file_name": "ADE_train_00018563.jpg", "width": 683, "id": 18562, "height": 512}, {"file_name": "ADE_train_00018564.jpg", "width": 683, "id": 18563, "height": 512}, {"file_name": "ADE_train_00018565.jpg", "width": 683, "id": 18564, "height": 512}, {"file_name": "ADE_train_00018566.jpg", "width": 683, "id": 18565, "height": 512}, {"file_name": "ADE_train_00018567.jpg", "width": 683, "id": 18566, "height": 512}, {"file_name": "ADE_train_00018568.jpg", "width": 683, "id": 18567, "height": 512}, {"file_name": "ADE_train_00018569.jpg", "width": 683, "id": 18568, "height": 512}, {"file_name": "ADE_train_00018570.jpg", "width": 683, "id": 18569, "height": 512}, {"file_name": "ADE_train_00018571.jpg", "width": 683, "id": 18570, "height": 512}, {"file_name": "ADE_train_00018572.jpg", "width": 683, "id": 18571, "height": 512}, {"file_name": "ADE_train_00018573.jpg", "width": 683, "id": 18572, "height": 512}, {"file_name": "ADE_train_00018574.jpg", "width": 683, "id": 18573, "height": 512}, {"file_name": "ADE_train_00018575.jpg", "width": 683, "id": 18574, "height": 512}, {"file_name": "ADE_train_00018576.jpg", "width": 683, "id": 18575, "height": 512}, {"file_name": "ADE_train_00018577.jpg", "width": 683, "id": 18576, "height": 512}, {"file_name": "ADE_train_00018578.jpg", "width": 683, "id": 18577, "height": 512}, {"file_name": "ADE_train_00018579.jpg", "width": 683, "id": 18578, "height": 512}, {"file_name": "ADE_train_00018580.jpg", "width": 683, "id": 18579, "height": 512}, {"file_name": "ADE_train_00018581.jpg", "width": 683, "id": 18580, "height": 512}, {"file_name": "ADE_train_00018582.jpg", "width": 683, "id": 18581, "height": 512}, {"file_name": "ADE_train_00018583.jpg", "width": 683, "id": 18582, "height": 512}, {"file_name": "ADE_train_00018584.jpg", "width": 683, "id": 18583, "height": 512}, {"file_name": "ADE_train_00018585.jpg", "width": 683, "id": 18584, "height": 512}, {"file_name": "ADE_train_00018586.jpg", "width": 683, "id": 18585, "height": 512}, {"file_name": "ADE_train_00018587.jpg", "width": 683, "id": 18586, "height": 512}, {"file_name": "ADE_train_00018588.jpg", "width": 768, "id": 18587, "height": 512}, {"file_name": "ADE_train_00018589.jpg", "width": 683, "id": 18588, "height": 512}, {"file_name": "ADE_train_00018590.jpg", "width": 683, "id": 18589, "height": 512}, {"file_name": "ADE_train_00018591.jpg", "width": 683, "id": 18590, "height": 512}, {"file_name": "ADE_train_00018592.jpg", "width": 683, "id": 18591, "height": 512}, {"file_name": "ADE_train_00018593.jpg", "width": 683, "id": 18592, "height": 512}, {"file_name": "ADE_train_00018594.jpg", "width": 768, "id": 18593, "height": 512}, {"file_name": "ADE_train_00018595.jpg", "width": 683, "id": 18594, "height": 512}, {"file_name": "ADE_train_00018596.jpg", "width": 683, "id": 18595, "height": 512}, {"file_name": "ADE_train_00018597.jpg", "width": 683, "id": 18596, "height": 512}, {"file_name": "ADE_train_00018598.jpg", "width": 768, "id": 18597, "height": 512}, {"file_name": "ADE_train_00018599.jpg", "width": 768, "id": 18598, "height": 512}, {"file_name": "ADE_train_00018600.jpg", "width": 683, "id": 18599, "height": 512}, {"file_name": "ADE_train_00018601.jpg", "width": 683, "id": 18600, "height": 512}, {"file_name": "ADE_train_00018602.jpg", "width": 683, "id": 18601, "height": 512}, {"file_name": "ADE_train_00018603.jpg", "width": 683, "id": 18602, "height": 512}, {"file_name": "ADE_train_00018604.jpg", "width": 683, "id": 18603, "height": 512}, {"file_name": "ADE_train_00018605.jpg", "width": 683, "id": 18604, "height": 512}, {"file_name": "ADE_train_00018606.jpg", "width": 683, "id": 18605, "height": 512}, {"file_name": "ADE_train_00018607.jpg", "width": 683, "id": 18606, "height": 512}, {"file_name": "ADE_train_00018608.jpg", "width": 683, "id": 18607, "height": 512}, {"file_name": "ADE_train_00018609.jpg", "width": 683, "id": 18608, "height": 512}, {"file_name": "ADE_train_00018610.jpg", "width": 683, "id": 18609, "height": 512}, {"file_name": "ADE_train_00018611.jpg", "width": 683, "id": 18610, "height": 512}, {"file_name": "ADE_train_00018612.jpg", "width": 683, "id": 18611, "height": 512}, {"file_name": "ADE_train_00018613.jpg", "width": 512, "id": 18612, "height": 683}, {"file_name": "ADE_train_00018614.jpg", "width": 683, "id": 18613, "height": 512}, {"file_name": "ADE_train_00018615.jpg", "width": 568, "id": 18614, "height": 426}, {"file_name": "ADE_train_00018616.jpg", "width": 683, "id": 18615, "height": 512}, {"file_name": "ADE_train_00018617.jpg", "width": 683, "id": 18616, "height": 512}, {"file_name": "ADE_train_00018618.jpg", "width": 683, "id": 18617, "height": 512}, {"file_name": "ADE_train_00018619.jpg", "width": 683, "id": 18618, "height": 512}, {"file_name": "ADE_train_00018620.jpg", "width": 683, "id": 18619, "height": 512}, {"file_name": "ADE_train_00018621.jpg", "width": 683, "id": 18620, "height": 512}, {"file_name": "ADE_train_00018622.jpg", "width": 640, "id": 18621, "height": 480}, {"file_name": "ADE_train_00018623.jpg", "width": 683, "id": 18622, "height": 512}, {"file_name": "ADE_train_00018624.jpg", "width": 683, "id": 18623, "height": 512}, {"file_name": "ADE_train_00018625.jpg", "width": 683, "id": 18624, "height": 512}, {"file_name": "ADE_train_00018626.jpg", "width": 683, "id": 18625, "height": 512}, {"file_name": "ADE_train_00018627.jpg", "width": 256, "id": 18626, "height": 256}, {"file_name": "ADE_train_00018628.jpg", "width": 256, "id": 18627, "height": 256}, {"file_name": "ADE_train_00018629.jpg", "width": 256, "id": 18628, "height": 256}, {"file_name": "ADE_train_00018630.jpg", "width": 256, "id": 18629, "height": 256}, {"file_name": "ADE_train_00018631.jpg", "width": 256, "id": 18630, "height": 256}, {"file_name": "ADE_train_00018632.jpg", "width": 256, "id": 18631, "height": 256}, {"file_name": "ADE_train_00018633.jpg", "width": 256, "id": 18632, "height": 256}, {"file_name": "ADE_train_00018634.jpg", "width": 256, "id": 18633, "height": 256}, {"file_name": "ADE_train_00018635.jpg", "width": 256, "id": 18634, "height": 256}, {"file_name": "ADE_train_00018636.jpg", "width": 256, "id": 18635, "height": 256}, {"file_name": "ADE_train_00018637.jpg", "width": 256, "id": 18636, "height": 256}, {"file_name": "ADE_train_00018638.jpg", "width": 256, "id": 18637, "height": 256}, {"file_name": "ADE_train_00018639.jpg", "width": 256, "id": 18638, "height": 256}, {"file_name": "ADE_train_00018640.jpg", "width": 256, "id": 18639, "height": 256}, {"file_name": "ADE_train_00018641.jpg", "width": 256, "id": 18640, "height": 256}, {"file_name": "ADE_train_00018642.jpg", "width": 256, "id": 18641, "height": 256}, {"file_name": "ADE_train_00018643.jpg", "width": 256, "id": 18642, "height": 256}, {"file_name": "ADE_train_00018644.jpg", "width": 256, "id": 18643, "height": 256}, {"file_name": "ADE_train_00018645.jpg", "width": 256, "id": 18644, "height": 256}, {"file_name": "ADE_train_00018646.jpg", "width": 256, "id": 18645, "height": 256}, {"file_name": "ADE_train_00018647.jpg", "width": 256, "id": 18646, "height": 256}, {"file_name": "ADE_train_00018648.jpg", "width": 256, "id": 18647, "height": 256}, {"file_name": "ADE_train_00018649.jpg", "width": 256, "id": 18648, "height": 256}, {"file_name": "ADE_train_00018650.jpg", "width": 256, "id": 18649, "height": 256}, {"file_name": "ADE_train_00018651.jpg", "width": 256, "id": 18650, "height": 256}, {"file_name": "ADE_train_00018652.jpg", "width": 256, "id": 18651, "height": 256}, {"file_name": "ADE_train_00018653.jpg", "width": 256, "id": 18652, "height": 256}, {"file_name": "ADE_train_00018654.jpg", "width": 256, "id": 18653, "height": 256}, {"file_name": "ADE_train_00018655.jpg", "width": 256, "id": 18654, "height": 256}, {"file_name": "ADE_train_00018656.jpg", "width": 256, "id": 18655, "height": 256}, {"file_name": "ADE_train_00018657.jpg", "width": 256, "id": 18656, "height": 256}, {"file_name": "ADE_train_00018658.jpg", "width": 256, "id": 18657, "height": 256}, {"file_name": "ADE_train_00018659.jpg", "width": 256, "id": 18658, "height": 256}, {"file_name": "ADE_train_00018660.jpg", "width": 256, "id": 18659, "height": 256}, {"file_name": "ADE_train_00018661.jpg", "width": 256, "id": 18660, "height": 256}, {"file_name": "ADE_train_00018662.jpg", "width": 256, "id": 18661, "height": 256}, {"file_name": "ADE_train_00018663.jpg", "width": 256, "id": 18662, "height": 256}, {"file_name": "ADE_train_00018664.jpg", "width": 256, "id": 18663, "height": 256}, {"file_name": "ADE_train_00018665.jpg", "width": 256, "id": 18664, "height": 256}, {"file_name": "ADE_train_00018666.jpg", "width": 256, "id": 18665, "height": 256}, {"file_name": "ADE_train_00018667.jpg", "width": 256, "id": 18666, "height": 256}, {"file_name": "ADE_train_00018668.jpg", "width": 256, "id": 18667, "height": 256}, {"file_name": "ADE_train_00018669.jpg", "width": 256, "id": 18668, "height": 256}, {"file_name": "ADE_train_00018670.jpg", "width": 256, "id": 18669, "height": 256}, {"file_name": "ADE_train_00018671.jpg", "width": 256, "id": 18670, "height": 256}, {"file_name": "ADE_train_00018672.jpg", "width": 256, "id": 18671, "height": 256}, {"file_name": "ADE_train_00018673.jpg", "width": 256, "id": 18672, "height": 256}, {"file_name": "ADE_train_00018674.jpg", "width": 256, "id": 18673, "height": 256}, {"file_name": "ADE_train_00018675.jpg", "width": 256, "id": 18674, "height": 256}, {"file_name": "ADE_train_00018676.jpg", "width": 256, "id": 18675, "height": 256}, {"file_name": "ADE_train_00018677.jpg", "width": 256, "id": 18676, "height": 256}, {"file_name": "ADE_train_00018678.jpg", "width": 256, "id": 18677, "height": 256}, {"file_name": "ADE_train_00018679.jpg", "width": 256, "id": 18678, "height": 256}, {"file_name": "ADE_train_00018680.jpg", "width": 256, "id": 18679, "height": 256}, {"file_name": "ADE_train_00018681.jpg", "width": 256, "id": 18680, "height": 256}, {"file_name": "ADE_train_00018682.jpg", "width": 256, "id": 18681, "height": 256}, {"file_name": "ADE_train_00018683.jpg", "width": 256, "id": 18682, "height": 256}, {"file_name": "ADE_train_00018684.jpg", "width": 256, "id": 18683, "height": 256}, {"file_name": "ADE_train_00018685.jpg", "width": 256, "id": 18684, "height": 256}, {"file_name": "ADE_train_00018686.jpg", "width": 256, "id": 18685, "height": 256}, {"file_name": "ADE_train_00018687.jpg", "width": 256, "id": 18686, "height": 256}, {"file_name": "ADE_train_00018688.jpg", "width": 256, "id": 18687, "height": 256}, {"file_name": "ADE_train_00018689.jpg", "width": 256, "id": 18688, "height": 256}, {"file_name": "ADE_train_00018690.jpg", "width": 256, "id": 18689, "height": 256}, {"file_name": "ADE_train_00018691.jpg", "width": 256, "id": 18690, "height": 256}, {"file_name": "ADE_train_00018692.jpg", "width": 256, "id": 18691, "height": 256}, {"file_name": "ADE_train_00018693.jpg", "width": 256, "id": 18692, "height": 256}, {"file_name": "ADE_train_00018694.jpg", "width": 256, "id": 18693, "height": 256}, {"file_name": "ADE_train_00018695.jpg", "width": 256, "id": 18694, "height": 256}, {"file_name": "ADE_train_00018696.jpg", "width": 256, "id": 18695, "height": 256}, {"file_name": "ADE_train_00018697.jpg", "width": 256, "id": 18696, "height": 256}, {"file_name": "ADE_train_00018698.jpg", "width": 256, "id": 18697, "height": 256}, {"file_name": "ADE_train_00018699.jpg", "width": 256, "id": 18698, "height": 256}, {"file_name": "ADE_train_00018700.jpg", "width": 256, "id": 18699, "height": 256}, {"file_name": "ADE_train_00018701.jpg", "width": 256, "id": 18700, "height": 256}, {"file_name": "ADE_train_00018702.jpg", "width": 256, "id": 18701, "height": 256}, {"file_name": "ADE_train_00018703.jpg", "width": 256, "id": 18702, "height": 256}, {"file_name": "ADE_train_00018704.jpg", "width": 256, "id": 18703, "height": 256}, {"file_name": "ADE_train_00018705.jpg", "width": 256, "id": 18704, "height": 256}, {"file_name": "ADE_train_00018706.jpg", "width": 256, "id": 18705, "height": 256}, {"file_name": "ADE_train_00018707.jpg", "width": 256, "id": 18706, "height": 256}, {"file_name": "ADE_train_00018708.jpg", "width": 256, "id": 18707, "height": 256}, {"file_name": "ADE_train_00018709.jpg", "width": 256, "id": 18708, "height": 256}, {"file_name": "ADE_train_00018710.jpg", "width": 256, "id": 18709, "height": 256}, {"file_name": "ADE_train_00018711.jpg", "width": 256, "id": 18710, "height": 256}, {"file_name": "ADE_train_00018712.jpg", "width": 256, "id": 18711, "height": 256}, {"file_name": "ADE_train_00018713.jpg", "width": 256, "id": 18712, "height": 256}, {"file_name": "ADE_train_00018714.jpg", "width": 256, "id": 18713, "height": 256}, {"file_name": "ADE_train_00018715.jpg", "width": 256, "id": 18714, "height": 256}, {"file_name": "ADE_train_00018716.jpg", "width": 256, "id": 18715, "height": 256}, {"file_name": "ADE_train_00018717.jpg", "width": 256, "id": 18716, "height": 256}, {"file_name": "ADE_train_00018718.jpg", "width": 256, "id": 18717, "height": 256}, {"file_name": "ADE_train_00018719.jpg", "width": 256, "id": 18718, "height": 256}, {"file_name": "ADE_train_00018720.jpg", "width": 256, "id": 18719, "height": 256}, {"file_name": "ADE_train_00018721.jpg", "width": 256, "id": 18720, "height": 256}, {"file_name": "ADE_train_00018722.jpg", "width": 256, "id": 18721, "height": 256}, {"file_name": "ADE_train_00018723.jpg", "width": 256, "id": 18722, "height": 256}, {"file_name": "ADE_train_00018724.jpg", "width": 256, "id": 18723, "height": 256}, {"file_name": "ADE_train_00018725.jpg", "width": 256, "id": 18724, "height": 256}, {"file_name": "ADE_train_00018726.jpg", "width": 256, "id": 18725, "height": 256}, {"file_name": "ADE_train_00018727.jpg", "width": 256, "id": 18726, "height": 256}, {"file_name": "ADE_train_00018728.jpg", "width": 256, "id": 18727, "height": 256}, {"file_name": "ADE_train_00018729.jpg", "width": 256, "id": 18728, "height": 256}, {"file_name": "ADE_train_00018730.jpg", "width": 256, "id": 18729, "height": 256}, {"file_name": "ADE_train_00018731.jpg", "width": 400, "id": 18730, "height": 300}, {"file_name": "ADE_train_00018732.jpg", "width": 256, "id": 18731, "height": 256}, {"file_name": "ADE_train_00018733.jpg", "width": 256, "id": 18732, "height": 256}, {"file_name": "ADE_train_00018734.jpg", "width": 256, "id": 18733, "height": 256}, {"file_name": "ADE_train_00018735.jpg", "width": 256, "id": 18734, "height": 256}, {"file_name": "ADE_train_00018736.jpg", "width": 256, "id": 18735, "height": 256}, {"file_name": "ADE_train_00018737.jpg", "width": 256, "id": 18736, "height": 256}, {"file_name": "ADE_train_00018738.jpg", "width": 256, "id": 18737, "height": 256}, {"file_name": "ADE_train_00018739.jpg", "width": 256, "id": 18738, "height": 256}, {"file_name": "ADE_train_00018740.jpg", "width": 256, "id": 18739, "height": 256}, {"file_name": "ADE_train_00018741.jpg", "width": 256, "id": 18740, "height": 256}, {"file_name": "ADE_train_00018742.jpg", "width": 256, "id": 18741, "height": 256}, {"file_name": "ADE_train_00018743.jpg", "width": 256, "id": 18742, "height": 256}, {"file_name": "ADE_train_00018744.jpg", "width": 256, "id": 18743, "height": 256}, {"file_name": "ADE_train_00018745.jpg", "width": 256, "id": 18744, "height": 256}, {"file_name": "ADE_train_00018746.jpg", "width": 256, "id": 18745, "height": 256}, {"file_name": "ADE_train_00018747.jpg", "width": 256, "id": 18746, "height": 256}, {"file_name": "ADE_train_00018748.jpg", "width": 256, "id": 18747, "height": 256}, {"file_name": "ADE_train_00018749.jpg", "width": 256, "id": 18748, "height": 256}, {"file_name": "ADE_train_00018750.jpg", "width": 256, "id": 18749, "height": 256}, {"file_name": "ADE_train_00018751.jpg", "width": 256, "id": 18750, "height": 256}, {"file_name": "ADE_train_00018752.jpg", "width": 256, "id": 18751, "height": 256}, {"file_name": "ADE_train_00018753.jpg", "width": 256, "id": 18752, "height": 256}, {"file_name": "ADE_train_00018754.jpg", "width": 256, "id": 18753, "height": 256}, {"file_name": "ADE_train_00018755.jpg", "width": 256, "id": 18754, "height": 256}, {"file_name": "ADE_train_00018756.jpg", "width": 256, "id": 18755, "height": 256}, {"file_name": "ADE_train_00018757.jpg", "width": 256, "id": 18756, "height": 256}, {"file_name": "ADE_train_00018758.jpg", "width": 256, "id": 18757, "height": 256}, {"file_name": "ADE_train_00018759.jpg", "width": 256, "id": 18758, "height": 256}, {"file_name": "ADE_train_00018760.jpg", "width": 256, "id": 18759, "height": 256}, {"file_name": "ADE_train_00018761.jpg", "width": 256, "id": 18760, "height": 256}, {"file_name": "ADE_train_00018762.jpg", "width": 256, "id": 18761, "height": 256}, {"file_name": "ADE_train_00018763.jpg", "width": 256, "id": 18762, "height": 256}, {"file_name": "ADE_train_00018764.jpg", "width": 256, "id": 18763, "height": 256}, {"file_name": "ADE_train_00018765.jpg", "width": 256, "id": 18764, "height": 256}, {"file_name": "ADE_train_00018766.jpg", "width": 256, "id": 18765, "height": 256}, {"file_name": "ADE_train_00018767.jpg", "width": 256, "id": 18766, "height": 256}, {"file_name": "ADE_train_00018768.jpg", "width": 256, "id": 18767, "height": 256}, {"file_name": "ADE_train_00018769.jpg", "width": 256, "id": 18768, "height": 256}, {"file_name": "ADE_train_00018770.jpg", "width": 256, "id": 18769, "height": 256}, {"file_name": "ADE_train_00018771.jpg", "width": 256, "id": 18770, "height": 256}, {"file_name": "ADE_train_00018772.jpg", "width": 256, "id": 18771, "height": 256}, {"file_name": "ADE_train_00018773.jpg", "width": 256, "id": 18772, "height": 256}, {"file_name": "ADE_train_00018774.jpg", "width": 256, "id": 18773, "height": 256}, {"file_name": "ADE_train_00018775.jpg", "width": 256, "id": 18774, "height": 256}, {"file_name": "ADE_train_00018776.jpg", "width": 256, "id": 18775, "height": 256}, {"file_name": "ADE_train_00018777.jpg", "width": 256, "id": 18776, "height": 256}, {"file_name": "ADE_train_00018778.jpg", "width": 256, "id": 18777, "height": 256}, {"file_name": "ADE_train_00018779.jpg", "width": 256, "id": 18778, "height": 256}, {"file_name": "ADE_train_00018780.jpg", "width": 256, "id": 18779, "height": 256}, {"file_name": "ADE_train_00018781.jpg", "width": 256, "id": 18780, "height": 256}, {"file_name": "ADE_train_00018782.jpg", "width": 256, "id": 18781, "height": 256}, {"file_name": "ADE_train_00018783.jpg", "width": 256, "id": 18782, "height": 256}, {"file_name": "ADE_train_00018784.jpg", "width": 256, "id": 18783, "height": 256}, {"file_name": "ADE_train_00018785.jpg", "width": 256, "id": 18784, "height": 256}, {"file_name": "ADE_train_00018786.jpg", "width": 256, "id": 18785, "height": 256}, {"file_name": "ADE_train_00018787.jpg", "width": 256, "id": 18786, "height": 256}, {"file_name": "ADE_train_00018788.jpg", "width": 256, "id": 18787, "height": 256}, {"file_name": "ADE_train_00018789.jpg", "width": 256, "id": 18788, "height": 256}, {"file_name": "ADE_train_00018790.jpg", "width": 256, "id": 18789, "height": 256}, {"file_name": "ADE_train_00018791.jpg", "width": 256, "id": 18790, "height": 256}, {"file_name": "ADE_train_00018792.jpg", "width": 256, "id": 18791, "height": 256}, {"file_name": "ADE_train_00018793.jpg", "width": 256, "id": 18792, "height": 256}, {"file_name": "ADE_train_00018794.jpg", "width": 256, "id": 18793, "height": 256}, {"file_name": "ADE_train_00018795.jpg", "width": 256, "id": 18794, "height": 256}, {"file_name": "ADE_train_00018796.jpg", "width": 256, "id": 18795, "height": 256}, {"file_name": "ADE_train_00018797.jpg", "width": 256, "id": 18796, "height": 256}, {"file_name": "ADE_train_00018798.jpg", "width": 256, "id": 18797, "height": 256}, {"file_name": "ADE_train_00018799.jpg", "width": 256, "id": 18798, "height": 256}, {"file_name": "ADE_train_00018800.jpg", "width": 256, "id": 18799, "height": 256}, {"file_name": "ADE_train_00018801.jpg", "width": 256, "id": 18800, "height": 256}, {"file_name": "ADE_train_00018802.jpg", "width": 256, "id": 18801, "height": 256}, {"file_name": "ADE_train_00018803.jpg", "width": 256, "id": 18802, "height": 256}, {"file_name": "ADE_train_00018804.jpg", "width": 256, "id": 18803, "height": 256}, {"file_name": "ADE_train_00018805.jpg", "width": 256, "id": 18804, "height": 256}, {"file_name": "ADE_train_00018806.jpg", "width": 256, "id": 18805, "height": 256}, {"file_name": "ADE_train_00018807.jpg", "width": 256, "id": 18806, "height": 256}, {"file_name": "ADE_train_00018808.jpg", "width": 256, "id": 18807, "height": 256}, {"file_name": "ADE_train_00018809.jpg", "width": 256, "id": 18808, "height": 256}, {"file_name": "ADE_train_00018810.jpg", "width": 256, "id": 18809, "height": 256}, {"file_name": "ADE_train_00018811.jpg", "width": 256, "id": 18810, "height": 256}, {"file_name": "ADE_train_00018812.jpg", "width": 256, "id": 18811, "height": 256}, {"file_name": "ADE_train_00018813.jpg", "width": 256, "id": 18812, "height": 256}, {"file_name": "ADE_train_00018814.jpg", "width": 256, "id": 18813, "height": 256}, {"file_name": "ADE_train_00018815.jpg", "width": 256, "id": 18814, "height": 256}, {"file_name": "ADE_train_00018816.jpg", "width": 256, "id": 18815, "height": 256}, {"file_name": "ADE_train_00018817.jpg", "width": 256, "id": 18816, "height": 256}, {"file_name": "ADE_train_00018818.jpg", "width": 256, "id": 18817, "height": 256}, {"file_name": "ADE_train_00018819.jpg", "width": 256, "id": 18818, "height": 256}, {"file_name": "ADE_train_00018820.jpg", "width": 256, "id": 18819, "height": 256}, {"file_name": "ADE_train_00018821.jpg", "width": 256, "id": 18820, "height": 256}, {"file_name": "ADE_train_00018822.jpg", "width": 256, "id": 18821, "height": 256}, {"file_name": "ADE_train_00018823.jpg", "width": 256, "id": 18822, "height": 256}, {"file_name": "ADE_train_00018824.jpg", "width": 256, "id": 18823, "height": 256}, {"file_name": "ADE_train_00018825.jpg", "width": 256, "id": 18824, "height": 256}, {"file_name": "ADE_train_00018826.jpg", "width": 256, "id": 18825, "height": 256}, {"file_name": "ADE_train_00018827.jpg", "width": 256, "id": 18826, "height": 256}, {"file_name": "ADE_train_00018828.jpg", "width": 256, "id": 18827, "height": 256}, {"file_name": "ADE_train_00018829.jpg", "width": 256, "id": 18828, "height": 256}, {"file_name": "ADE_train_00018830.jpg", "width": 256, "id": 18829, "height": 256}, {"file_name": "ADE_train_00018831.jpg", "width": 256, "id": 18830, "height": 256}, {"file_name": "ADE_train_00018832.jpg", "width": 256, "id": 18831, "height": 256}, {"file_name": "ADE_train_00018833.jpg", "width": 700, "id": 18832, "height": 467}, {"file_name": "ADE_train_00018834.jpg", "width": 256, "id": 18833, "height": 256}, {"file_name": "ADE_train_00018835.jpg", "width": 256, "id": 18834, "height": 256}, {"file_name": "ADE_train_00018836.jpg", "width": 256, "id": 18835, "height": 256}, {"file_name": "ADE_train_00018837.jpg", "width": 256, "id": 18836, "height": 256}, {"file_name": "ADE_train_00018838.jpg", "width": 256, "id": 18837, "height": 256}, {"file_name": "ADE_train_00018839.jpg", "width": 256, "id": 18838, "height": 256}, {"file_name": "ADE_train_00018840.jpg", "width": 256, "id": 18839, "height": 256}, {"file_name": "ADE_train_00018841.jpg", "width": 256, "id": 18840, "height": 256}, {"file_name": "ADE_train_00018842.jpg", "width": 256, "id": 18841, "height": 256}, {"file_name": "ADE_train_00018843.jpg", "width": 256, "id": 18842, "height": 256}, {"file_name": "ADE_train_00018844.jpg", "width": 256, "id": 18843, "height": 256}, {"file_name": "ADE_train_00018845.jpg", "width": 256, "id": 18844, "height": 256}, {"file_name": "ADE_train_00018846.jpg", "width": 256, "id": 18845, "height": 256}, {"file_name": "ADE_train_00018847.jpg", "width": 256, "id": 18846, "height": 256}, {"file_name": "ADE_train_00018848.jpg", "width": 256, "id": 18847, "height": 256}, {"file_name": "ADE_train_00018849.jpg", "width": 256, "id": 18848, "height": 256}, {"file_name": "ADE_train_00018850.jpg", "width": 256, "id": 18849, "height": 256}, {"file_name": "ADE_train_00018851.jpg", "width": 256, "id": 18850, "height": 256}, {"file_name": "ADE_train_00018852.jpg", "width": 480, "id": 18851, "height": 691}, {"file_name": "ADE_train_00018853.jpg", "width": 256, "id": 18852, "height": 256}, {"file_name": "ADE_train_00018854.jpg", "width": 256, "id": 18853, "height": 256}, {"file_name": "ADE_train_00018855.jpg", "width": 256, "id": 18854, "height": 256}, {"file_name": "ADE_train_00018856.jpg", "width": 256, "id": 18855, "height": 256}, {"file_name": "ADE_train_00018857.jpg", "width": 256, "id": 18856, "height": 256}, {"file_name": "ADE_train_00018858.jpg", "width": 256, "id": 18857, "height": 256}, {"file_name": "ADE_train_00018859.jpg", "width": 256, "id": 18858, "height": 256}, {"file_name": "ADE_train_00018860.jpg", "width": 256, "id": 18859, "height": 256}, {"file_name": "ADE_train_00018861.jpg", "width": 256, "id": 18860, "height": 256}, {"file_name": "ADE_train_00018862.jpg", "width": 256, "id": 18861, "height": 256}, {"file_name": "ADE_train_00018863.jpg", "width": 256, "id": 18862, "height": 256}, {"file_name": "ADE_train_00018864.jpg", "width": 256, "id": 18863, "height": 256}, {"file_name": "ADE_train_00018865.jpg", "width": 256, "id": 18864, "height": 256}, {"file_name": "ADE_train_00018866.jpg", "width": 256, "id": 18865, "height": 256}, {"file_name": "ADE_train_00018867.jpg", "width": 256, "id": 18866, "height": 256}, {"file_name": "ADE_train_00018868.jpg", "width": 256, "id": 18867, "height": 256}, {"file_name": "ADE_train_00018869.jpg", "width": 256, "id": 18868, "height": 256}, {"file_name": "ADE_train_00018870.jpg", "width": 256, "id": 18869, "height": 256}, {"file_name": "ADE_train_00018871.jpg", "width": 256, "id": 18870, "height": 256}, {"file_name": "ADE_train_00018872.jpg", "width": 256, "id": 18871, "height": 256}, {"file_name": "ADE_train_00018873.jpg", "width": 256, "id": 18872, "height": 256}, {"file_name": "ADE_train_00018874.jpg", "width": 256, "id": 18873, "height": 256}, {"file_name": "ADE_train_00018875.jpg", "width": 256, "id": 18874, "height": 256}, {"file_name": "ADE_train_00018876.jpg", "width": 256, "id": 18875, "height": 256}, {"file_name": "ADE_train_00018877.jpg", "width": 256, "id": 18876, "height": 256}, {"file_name": "ADE_train_00018878.jpg", "width": 256, "id": 18877, "height": 256}, {"file_name": "ADE_train_00018879.jpg", "width": 256, "id": 18878, "height": 256}, {"file_name": "ADE_train_00018880.jpg", "width": 256, "id": 18879, "height": 256}, {"file_name": "ADE_train_00018881.jpg", "width": 256, "id": 18880, "height": 256}, {"file_name": "ADE_train_00018882.jpg", "width": 256, "id": 18881, "height": 256}, {"file_name": "ADE_train_00018883.jpg", "width": 256, "id": 18882, "height": 256}, {"file_name": "ADE_train_00018884.jpg", "width": 256, "id": 18883, "height": 256}, {"file_name": "ADE_train_00018885.jpg", "width": 256, "id": 18884, "height": 256}, {"file_name": "ADE_train_00018886.jpg", "width": 256, "id": 18885, "height": 256}, {"file_name": "ADE_train_00018887.jpg", "width": 256, "id": 18886, "height": 256}, {"file_name": "ADE_train_00018888.jpg", "width": 256, "id": 18887, "height": 256}, {"file_name": "ADE_train_00018889.jpg", "width": 256, "id": 18888, "height": 256}, {"file_name": "ADE_train_00018890.jpg", "width": 256, "id": 18889, "height": 256}, {"file_name": "ADE_train_00018891.jpg", "width": 256, "id": 18890, "height": 256}, {"file_name": "ADE_train_00018892.jpg", "width": 256, "id": 18891, "height": 256}, {"file_name": "ADE_train_00018893.jpg", "width": 256, "id": 18892, "height": 256}, {"file_name": "ADE_train_00018894.jpg", "width": 256, "id": 18893, "height": 256}, {"file_name": "ADE_train_00018895.jpg", "width": 256, "id": 18894, "height": 256}, {"file_name": "ADE_train_00018896.jpg", "width": 640, "id": 18895, "height": 480}, {"file_name": "ADE_train_00018897.jpg", "width": 600, "id": 18896, "height": 395}, {"file_name": "ADE_train_00018898.jpg", "width": 640, "id": 18897, "height": 480}, {"file_name": "ADE_train_00018899.jpg", "width": 530, "id": 18898, "height": 397}, {"file_name": "ADE_train_00018900.jpg", "width": 500, "id": 18899, "height": 331}, {"file_name": "ADE_train_00018901.jpg", "width": 350, "id": 18900, "height": 229}, {"file_name": "ADE_train_00018902.jpg", "width": 350, "id": 18901, "height": 262}, {"file_name": "ADE_train_00018903.jpg", "width": 350, "id": 18902, "height": 262}, {"file_name": "ADE_train_00018904.jpg", "width": 350, "id": 18903, "height": 255}, {"file_name": "ADE_train_00018905.jpg", "width": 396, "id": 18904, "height": 274}, {"file_name": "ADE_train_00018906.jpg", "width": 640, "id": 18905, "height": 480}, {"file_name": "ADE_train_00018907.jpg", "width": 325, "id": 18906, "height": 217}, {"file_name": "ADE_train_00018908.jpg", "width": 300, "id": 18907, "height": 200}, {"file_name": "ADE_train_00018909.jpg", "width": 240, "id": 18908, "height": 176}, {"file_name": "ADE_train_00018910.jpg", "width": 450, "id": 18909, "height": 337}, {"file_name": "ADE_train_00018911.jpg", "width": 220, "id": 18910, "height": 175}, {"file_name": "ADE_train_00018912.jpg", "width": 614, "id": 18911, "height": 461}, {"file_name": "ADE_train_00018913.jpg", "width": 400, "id": 18912, "height": 254}, {"file_name": "ADE_train_00018914.jpg", "width": 167, "id": 18913, "height": 207}, {"file_name": "ADE_train_00018915.jpg", "width": 678, "id": 18914, "height": 512}, {"file_name": "ADE_train_00018916.jpg", "width": 300, "id": 18915, "height": 200}, {"file_name": "ADE_train_00018917.jpg", "width": 500, "id": 18916, "height": 375}, {"file_name": "ADE_train_00018918.jpg", "width": 500, "id": 18917, "height": 333}, {"file_name": "ADE_train_00018919.jpg", "width": 500, "id": 18918, "height": 331}, {"file_name": "ADE_train_00018920.jpg", "width": 411, "id": 18919, "height": 600}, {"file_name": "ADE_train_00018921.jpg", "width": 375, "id": 18920, "height": 500}, {"file_name": "ADE_train_00018922.jpg", "width": 500, "id": 18921, "height": 369}, {"file_name": "ADE_train_00018923.jpg", "width": 500, "id": 18922, "height": 369}, {"file_name": "ADE_train_00018924.jpg", "width": 500, "id": 18923, "height": 380}, {"file_name": "ADE_train_00018925.jpg", "width": 500, "id": 18924, "height": 375}, {"file_name": "ADE_train_00018926.jpg", "width": 362, "id": 18925, "height": 286}, {"file_name": "ADE_train_00018927.jpg", "width": 500, "id": 18926, "height": 375}, {"file_name": "ADE_train_00018928.jpg", "width": 768, "id": 18927, "height": 512}, {"file_name": "ADE_train_00018929.jpg", "width": 500, "id": 18928, "height": 333}, {"file_name": "ADE_train_00018930.jpg", "width": 550, "id": 18929, "height": 372}, {"file_name": "ADE_train_00018931.jpg", "width": 512, "id": 18930, "height": 766}, {"file_name": "ADE_train_00018932.jpg", "width": 500, "id": 18931, "height": 334}, {"file_name": "ADE_train_00018933.jpg", "width": 499, "id": 18932, "height": 499}, {"file_name": "ADE_train_00018934.jpg", "width": 333, "id": 18933, "height": 500}, {"file_name": "ADE_train_00018935.jpg", "width": 500, "id": 18934, "height": 375}, {"file_name": "ADE_train_00018936.jpg", "width": 500, "id": 18935, "height": 475}, {"file_name": "ADE_train_00018937.jpg", "width": 500, "id": 18936, "height": 500}, {"file_name": "ADE_train_00018938.jpg", "width": 644, "id": 18937, "height": 512}, {"file_name": "ADE_train_00018939.jpg", "width": 500, "id": 18938, "height": 375}, {"file_name": "ADE_train_00018940.jpg", "width": 500, "id": 18939, "height": 375}, {"file_name": "ADE_train_00018941.jpg", "width": 500, "id": 18940, "height": 379}, {"file_name": "ADE_train_00018942.jpg", "width": 500, "id": 18941, "height": 333}, {"file_name": "ADE_train_00018943.jpg", "width": 320, "id": 18942, "height": 240}, {"file_name": "ADE_train_00018944.jpg", "width": 500, "id": 18943, "height": 270}, {"file_name": "ADE_train_00018945.jpg", "width": 375, "id": 18944, "height": 500}, {"file_name": "ADE_train_00018946.jpg", "width": 500, "id": 18945, "height": 288}, {"file_name": "ADE_train_00018947.jpg", "width": 500, "id": 18946, "height": 334}, {"file_name": "ADE_train_00018948.jpg", "width": 500, "id": 18947, "height": 333}, {"file_name": "ADE_train_00018949.jpg", "width": 683, "id": 18948, "height": 512}, {"file_name": "ADE_train_00018950.jpg", "width": 500, "id": 18949, "height": 344}, {"file_name": "ADE_train_00018951.jpg", "width": 500, "id": 18950, "height": 375}, {"file_name": "ADE_train_00018952.jpg", "width": 432, "id": 18951, "height": 288}, {"file_name": "ADE_train_00018953.jpg", "width": 500, "id": 18952, "height": 333}, {"file_name": "ADE_train_00018954.jpg", "width": 500, "id": 18953, "height": 333}, {"file_name": "ADE_train_00018955.jpg", "width": 500, "id": 18954, "height": 375}, {"file_name": "ADE_train_00018956.jpg", "width": 500, "id": 18955, "height": 354}, {"file_name": "ADE_train_00018957.jpg", "width": 454, "id": 18956, "height": 500}, {"file_name": "ADE_train_00018958.jpg", "width": 500, "id": 18957, "height": 375}, {"file_name": "ADE_train_00018959.jpg", "width": 400, "id": 18958, "height": 270}, {"file_name": "ADE_train_00018960.jpg", "width": 500, "id": 18959, "height": 375}, {"file_name": "ADE_train_00018961.jpg", "width": 463, "id": 18960, "height": 320}, {"file_name": "ADE_train_00018962.jpg", "width": 400, "id": 18961, "height": 300}, {"file_name": "ADE_train_00018963.jpg", "width": 340, "id": 18962, "height": 227}, {"file_name": "ADE_train_00018964.jpg", "width": 256, "id": 18963, "height": 256}, {"file_name": "ADE_train_00018965.jpg", "width": 400, "id": 18964, "height": 300}, {"file_name": "ADE_train_00018966.jpg", "width": 404, "id": 18965, "height": 500}, {"file_name": "ADE_train_00018967.jpg", "width": 300, "id": 18966, "height": 200}, {"file_name": "ADE_train_00018968.jpg", "width": 300, "id": 18967, "height": 293}, {"file_name": "ADE_train_00018969.jpg", "width": 300, "id": 18968, "height": 200}, {"file_name": "ADE_train_00018970.jpg", "width": 624, "id": 18969, "height": 420}, {"file_name": "ADE_train_00018971.jpg", "width": 614, "id": 18970, "height": 461}, {"file_name": "ADE_train_00018972.jpg", "width": 250, "id": 18971, "height": 202}, {"file_name": "ADE_train_00018973.jpg", "width": 300, "id": 18972, "height": 200}, {"file_name": "ADE_train_00018974.jpg", "width": 762, "id": 18973, "height": 512}, {"file_name": "ADE_train_00018975.jpg", "width": 503, "id": 18974, "height": 332}, {"file_name": "ADE_train_00018976.jpg", "width": 387, "id": 18975, "height": 234}, {"file_name": "ADE_train_00018977.jpg", "width": 256, "id": 18976, "height": 256}, {"file_name": "ADE_train_00018978.jpg", "width": 256, "id": 18977, "height": 256}, {"file_name": "ADE_train_00018979.jpg", "width": 380, "id": 18978, "height": 261}, {"file_name": "ADE_train_00018980.jpg", "width": 494, "id": 18979, "height": 350}, {"file_name": "ADE_train_00018981.jpg", "width": 256, "id": 18980, "height": 256}, {"file_name": "ADE_train_00018982.jpg", "width": 683, "id": 18981, "height": 512}, {"file_name": "ADE_train_00018983.jpg", "width": 411, "id": 18982, "height": 314}, {"file_name": "ADE_train_00018984.jpg", "width": 467, "id": 18983, "height": 325}, {"file_name": "ADE_train_00018985.jpg", "width": 400, "id": 18984, "height": 300}, {"file_name": "ADE_train_00018986.jpg", "width": 256, "id": 18985, "height": 256}, {"file_name": "ADE_train_00018987.jpg", "width": 350, "id": 18986, "height": 312}, {"file_name": "ADE_train_00018988.jpg", "width": 683, "id": 18987, "height": 512}, {"file_name": "ADE_train_00018989.jpg", "width": 768, "id": 18988, "height": 512}, {"file_name": "ADE_train_00018990.jpg", "width": 610, "id": 18989, "height": 412}, {"file_name": "ADE_train_00018991.jpg", "width": 256, "id": 18990, "height": 256}, {"file_name": "ADE_train_00018992.jpg", "width": 256, "id": 18991, "height": 256}, {"file_name": "ADE_train_00018993.jpg", "width": 480, "id": 18992, "height": 360}, {"file_name": "ADE_train_00018994.jpg", "width": 484, "id": 18993, "height": 323}, {"file_name": "ADE_train_00018995.jpg", "width": 600, "id": 18994, "height": 400}, {"file_name": "ADE_train_00018996.jpg", "width": 256, "id": 18995, "height": 256}, {"file_name": "ADE_train_00018997.jpg", "width": 256, "id": 18996, "height": 256}, {"file_name": "ADE_train_00018998.jpg", "width": 768, "id": 18997, "height": 512}, {"file_name": "ADE_train_00018999.jpg", "width": 691, "id": 18998, "height": 461}, {"file_name": "ADE_train_00019000.jpg", "width": 448, "id": 18999, "height": 336}, {"file_name": "ADE_train_00019001.jpg", "width": 600, "id": 19000, "height": 402}, {"file_name": "ADE_train_00019002.jpg", "width": 683, "id": 19001, "height": 512}, {"file_name": "ADE_train_00019003.jpg", "width": 256, "id": 19002, "height": 256}, {"file_name": "ADE_train_00019004.jpg", "width": 765, "id": 19003, "height": 512}, {"file_name": "ADE_train_00019005.jpg", "width": 400, "id": 19004, "height": 556}, {"file_name": "ADE_train_00019006.jpg", "width": 640, "id": 19005, "height": 480}, {"file_name": "ADE_train_00019007.jpg", "width": 684, "id": 19006, "height": 512}, {"file_name": "ADE_train_00019008.jpg", "width": 512, "id": 19007, "height": 527}, {"file_name": "ADE_train_00019009.jpg", "width": 396, "id": 19008, "height": 297}, {"file_name": "ADE_train_00019010.jpg", "width": 683, "id": 19009, "height": 512}, {"file_name": "ADE_train_00019011.jpg", "width": 550, "id": 19010, "height": 412}, {"file_name": "ADE_train_00019012.jpg", "width": 683, "id": 19011, "height": 512}, {"file_name": "ADE_train_00019013.jpg", "width": 683, "id": 19012, "height": 512}, {"file_name": "ADE_train_00019014.jpg", "width": 683, "id": 19013, "height": 512}, {"file_name": "ADE_train_00019015.jpg", "width": 300, "id": 19014, "height": 225}, {"file_name": "ADE_train_00019016.jpg", "width": 640, "id": 19015, "height": 480}, {"file_name": "ADE_train_00019017.jpg", "width": 325, "id": 19016, "height": 244}, {"file_name": "ADE_train_00019018.jpg", "width": 282, "id": 19017, "height": 235}, {"file_name": "ADE_train_00019019.jpg", "width": 550, "id": 19018, "height": 412}, {"file_name": "ADE_train_00019020.jpg", "width": 256, "id": 19019, "height": 256}, {"file_name": "ADE_train_00019021.jpg", "width": 300, "id": 19020, "height": 251}, {"file_name": "ADE_train_00019022.jpg", "width": 450, "id": 19021, "height": 338}, {"file_name": "ADE_train_00019023.jpg", "width": 674, "id": 19022, "height": 480}, {"file_name": "ADE_train_00019024.jpg", "width": 550, "id": 19023, "height": 413}, {"file_name": "ADE_train_00019025.jpg", "width": 433, "id": 19024, "height": 283}, {"file_name": "ADE_train_00019026.jpg", "width": 640, "id": 19025, "height": 480}, {"file_name": "ADE_train_00019027.jpg", "width": 320, "id": 19026, "height": 240}, {"file_name": "ADE_train_00019028.jpg", "width": 550, "id": 19027, "height": 412}, {"file_name": "ADE_train_00019029.jpg", "width": 533, "id": 19028, "height": 400}, {"file_name": "ADE_train_00019030.jpg", "width": 500, "id": 19029, "height": 333}, {"file_name": "ADE_train_00019031.jpg", "width": 338, "id": 19030, "height": 249}, {"file_name": "ADE_train_00019032.jpg", "width": 300, "id": 19031, "height": 225}, {"file_name": "ADE_train_00019033.jpg", "width": 400, "id": 19032, "height": 278}, {"file_name": "ADE_train_00019034.jpg", "width": 450, "id": 19033, "height": 283}, {"file_name": "ADE_train_00019035.jpg", "width": 450, "id": 19034, "height": 300}, {"file_name": "ADE_train_00019036.jpg", "width": 683, "id": 19035, "height": 512}, {"file_name": "ADE_train_00019037.jpg", "width": 256, "id": 19036, "height": 256}, {"file_name": "ADE_train_00019038.jpg", "width": 683, "id": 19037, "height": 512}, {"file_name": "ADE_train_00019039.jpg", "width": 256, "id": 19038, "height": 256}, {"file_name": "ADE_train_00019040.jpg", "width": 256, "id": 19039, "height": 256}, {"file_name": "ADE_train_00019041.jpg", "width": 256, "id": 19040, "height": 256}, {"file_name": "ADE_train_00019042.jpg", "width": 550, "id": 19041, "height": 412}, {"file_name": "ADE_train_00019043.jpg", "width": 256, "id": 19042, "height": 256}, {"file_name": "ADE_train_00019044.jpg", "width": 470, "id": 19043, "height": 313}, {"file_name": "ADE_train_00019045.jpg", "width": 450, "id": 19044, "height": 291}, {"file_name": "ADE_train_00019046.jpg", "width": 288, "id": 19045, "height": 216}, {"file_name": "ADE_train_00019047.jpg", "width": 640, "id": 19046, "height": 480}, {"file_name": "ADE_train_00019048.jpg", "width": 400, "id": 19047, "height": 293}, {"file_name": "ADE_train_00019049.jpg", "width": 691, "id": 19048, "height": 464}, {"file_name": "ADE_train_00019050.jpg", "width": 256, "id": 19049, "height": 256}, {"file_name": "ADE_train_00019051.jpg", "width": 686, "id": 19050, "height": 481}, {"file_name": "ADE_train_00019052.jpg", "width": 256, "id": 19051, "height": 256}, {"file_name": "ADE_train_00019053.jpg", "width": 683, "id": 19052, "height": 512}, {"file_name": "ADE_train_00019054.jpg", "width": 439, "id": 19053, "height": 600}, {"file_name": "ADE_train_00019055.jpg", "width": 683, "id": 19054, "height": 512}, {"file_name": "ADE_train_00019056.jpg", "width": 600, "id": 19055, "height": 450}, {"file_name": "ADE_train_00019057.jpg", "width": 640, "id": 19056, "height": 427}, {"file_name": "ADE_train_00019058.jpg", "width": 500, "id": 19057, "height": 375}, {"file_name": "ADE_train_00019059.jpg", "width": 270, "id": 19058, "height": 327}, {"file_name": "ADE_train_00019060.jpg", "width": 195, "id": 19059, "height": 225}, {"file_name": "ADE_train_00019061.jpg", "width": 200, "id": 19060, "height": 209}, {"file_name": "ADE_train_00019062.jpg", "width": 512, "id": 19061, "height": 574}, {"file_name": "ADE_train_00019063.jpg", "width": 560, "id": 19062, "height": 420}, {"file_name": "ADE_train_00019064.jpg", "width": 400, "id": 19063, "height": 266}, {"file_name": "ADE_train_00019065.jpg", "width": 329, "id": 19064, "height": 500}, {"file_name": "ADE_train_00019066.jpg", "width": 450, "id": 19065, "height": 309}, {"file_name": "ADE_train_00019067.jpg", "width": 305, "id": 19066, "height": 446}, {"file_name": "ADE_train_00019068.jpg", "width": 200, "id": 19067, "height": 300}, {"file_name": "ADE_train_00019069.jpg", "width": 552, "id": 19068, "height": 429}, {"file_name": "ADE_train_00019070.jpg", "width": 400, "id": 19069, "height": 300}, {"file_name": "ADE_train_00019071.jpg", "width": 400, "id": 19070, "height": 266}, {"file_name": "ADE_train_00019072.jpg", "width": 512, "id": 19071, "height": 770}, {"file_name": "ADE_train_00019073.jpg", "width": 400, "id": 19072, "height": 300}, {"file_name": "ADE_train_00019074.jpg", "width": 400, "id": 19073, "height": 267}, {"file_name": "ADE_train_00019075.jpg", "width": 683, "id": 19074, "height": 512}, {"file_name": "ADE_train_00019076.jpg", "width": 278, "id": 19075, "height": 278}, {"file_name": "ADE_train_00019077.jpg", "width": 576, "id": 19076, "height": 432}, {"file_name": "ADE_train_00019078.jpg", "width": 175, "id": 19077, "height": 125}, {"file_name": "ADE_train_00019079.jpg", "width": 231, "id": 19078, "height": 350}, {"file_name": "ADE_train_00019080.jpg", "width": 640, "id": 19079, "height": 480}, {"file_name": "ADE_train_00019081.jpg", "width": 683, "id": 19080, "height": 512}, {"file_name": "ADE_train_00019082.jpg", "width": 683, "id": 19081, "height": 512}, {"file_name": "ADE_train_00019083.jpg", "width": 574, "id": 19082, "height": 512}, {"file_name": "ADE_train_00019084.jpg", "width": 684, "id": 19083, "height": 512}, {"file_name": "ADE_train_00019085.jpg", "width": 600, "id": 19084, "height": 378}, {"file_name": "ADE_train_00019086.jpg", "width": 400, "id": 19085, "height": 267}, {"file_name": "ADE_train_00019087.jpg", "width": 450, "id": 19086, "height": 337}, {"file_name": "ADE_train_00019088.jpg", "width": 400, "id": 19087, "height": 300}, {"file_name": "ADE_train_00019089.jpg", "width": 640, "id": 19088, "height": 480}, {"file_name": "ADE_train_00019090.jpg", "width": 225, "id": 19089, "height": 300}, {"file_name": "ADE_train_00019091.jpg", "width": 788, "id": 19090, "height": 512}, {"file_name": "ADE_train_00019092.jpg", "width": 500, "id": 19091, "height": 295}, {"file_name": "ADE_train_00019093.jpg", "width": 300, "id": 19092, "height": 200}, {"file_name": "ADE_train_00019094.jpg", "width": 524, "id": 19093, "height": 327}, {"file_name": "ADE_train_00019095.jpg", "width": 683, "id": 19094, "height": 512}, {"file_name": "ADE_train_00019096.jpg", "width": 300, "id": 19095, "height": 225}, {"file_name": "ADE_train_00019097.jpg", "width": 288, "id": 19096, "height": 216}, {"file_name": "ADE_train_00019098.jpg", "width": 285, "id": 19097, "height": 214}, {"file_name": "ADE_train_00019099.jpg", "width": 640, "id": 19098, "height": 480}, {"file_name": "ADE_train_00019100.jpg", "width": 301, "id": 19099, "height": 200}, {"file_name": "ADE_train_00019101.jpg", "width": 310, "id": 19100, "height": 233}, {"file_name": "ADE_train_00019102.jpg", "width": 345, "id": 19101, "height": 250}, {"file_name": "ADE_train_00019103.jpg", "width": 312, "id": 19102, "height": 235}, {"file_name": "ADE_train_00019104.jpg", "width": 500, "id": 19103, "height": 333}, {"file_name": "ADE_train_00019105.jpg", "width": 263, "id": 19104, "height": 200}, {"file_name": "ADE_train_00019106.jpg", "width": 640, "id": 19105, "height": 480}, {"file_name": "ADE_train_00019107.jpg", "width": 450, "id": 19106, "height": 289}, {"file_name": "ADE_train_00019108.jpg", "width": 500, "id": 19107, "height": 375}, {"file_name": "ADE_train_00019109.jpg", "width": 256, "id": 19108, "height": 256}, {"file_name": "ADE_train_00019110.jpg", "width": 256, "id": 19109, "height": 256}, {"file_name": "ADE_train_00019111.jpg", "width": 256, "id": 19110, "height": 384}, {"file_name": "ADE_train_00019112.jpg", "width": 256, "id": 19111, "height": 256}, {"file_name": "ADE_train_00019113.jpg", "width": 256, "id": 19112, "height": 256}, {"file_name": "ADE_train_00019114.jpg", "width": 500, "id": 19113, "height": 747}, {"file_name": "ADE_train_00019115.jpg", "width": 256, "id": 19114, "height": 256}, {"file_name": "ADE_train_00019116.jpg", "width": 256, "id": 19115, "height": 256}, {"file_name": "ADE_train_00019117.jpg", "width": 256, "id": 19116, "height": 256}, {"file_name": "ADE_train_00019118.jpg", "width": 482, "id": 19117, "height": 325}, {"file_name": "ADE_train_00019119.jpg", "width": 788, "id": 19118, "height": 512}, {"file_name": "ADE_train_00019120.jpg", "width": 256, "id": 19119, "height": 256}, {"file_name": "ADE_train_00019121.jpg", "width": 256, "id": 19120, "height": 256}, {"file_name": "ADE_train_00019122.jpg", "width": 256, "id": 19121, "height": 256}, {"file_name": "ADE_train_00019123.jpg", "width": 300, "id": 19122, "height": 233}, {"file_name": "ADE_train_00019124.jpg", "width": 683, "id": 19123, "height": 512}, {"file_name": "ADE_train_00019125.jpg", "width": 512, "id": 19124, "height": 659}, {"file_name": "ADE_train_00019126.jpg", "width": 683, "id": 19125, "height": 512}, {"file_name": "ADE_train_00019127.jpg", "width": 727, "id": 19126, "height": 512}, {"file_name": "ADE_train_00019128.jpg", "width": 307, "id": 19127, "height": 230}, {"file_name": "ADE_train_00019129.jpg", "width": 759, "id": 19128, "height": 512}, {"file_name": "ADE_train_00019130.jpg", "width": 683, "id": 19129, "height": 512}, {"file_name": "ADE_train_00019131.jpg", "width": 400, "id": 19130, "height": 266}, {"file_name": "ADE_train_00019132.jpg", "width": 770, "id": 19131, "height": 512}, {"file_name": "ADE_train_00019133.jpg", "width": 256, "id": 19132, "height": 256}, {"file_name": "ADE_train_00019134.jpg", "width": 256, "id": 19133, "height": 256}, {"file_name": "ADE_train_00019135.jpg", "width": 256, "id": 19134, "height": 256}, {"file_name": "ADE_train_00019136.jpg", "width": 256, "id": 19135, "height": 256}, {"file_name": "ADE_train_00019137.jpg", "width": 256, "id": 19136, "height": 256}, {"file_name": "ADE_train_00019138.jpg", "width": 730, "id": 19137, "height": 481}, {"file_name": "ADE_train_00019139.jpg", "width": 700, "id": 19138, "height": 480}, {"file_name": "ADE_train_00019140.jpg", "width": 256, "id": 19139, "height": 256}, {"file_name": "ADE_train_00019141.jpg", "width": 448, "id": 19140, "height": 336}, {"file_name": "ADE_train_00019142.jpg", "width": 250, "id": 19141, "height": 211}, {"file_name": "ADE_train_00019143.jpg", "width": 598, "id": 19142, "height": 397}, {"file_name": "ADE_train_00019144.jpg", "width": 300, "id": 19143, "height": 199}, {"file_name": "ADE_train_00019145.jpg", "width": 691, "id": 19144, "height": 512}, {"file_name": "ADE_train_00019146.jpg", "width": 910, "id": 19145, "height": 512}, {"file_name": "ADE_train_00019147.jpg", "width": 683, "id": 19146, "height": 512}, {"file_name": "ADE_train_00019148.jpg", "width": 360, "id": 19147, "height": 289}, {"file_name": "ADE_train_00019149.jpg", "width": 504, "id": 19148, "height": 336}, {"file_name": "ADE_train_00019150.jpg", "width": 500, "id": 19149, "height": 440}, {"file_name": "ADE_train_00019151.jpg", "width": 222, "id": 19150, "height": 325}, {"file_name": "ADE_train_00019152.jpg", "width": 586, "id": 19151, "height": 395}, {"file_name": "ADE_train_00019153.jpg", "width": 768, "id": 19152, "height": 512}, {"file_name": "ADE_train_00019154.jpg", "width": 419, "id": 19153, "height": 289}, {"file_name": "ADE_train_00019155.jpg", "width": 256, "id": 19154, "height": 256}, {"file_name": "ADE_train_00019156.jpg", "width": 288, "id": 19155, "height": 227}, {"file_name": "ADE_train_00019157.jpg", "width": 640, "id": 19156, "height": 414}, {"file_name": "ADE_train_00019158.jpg", "width": 633, "id": 19157, "height": 512}, {"file_name": "ADE_train_00019159.jpg", "width": 683, "id": 19158, "height": 512}, {"file_name": "ADE_train_00019160.jpg", "width": 256, "id": 19159, "height": 256}, {"file_name": "ADE_train_00019161.jpg", "width": 305, "id": 19160, "height": 230}, {"file_name": "ADE_train_00019162.jpg", "width": 960, "id": 19161, "height": 512}, {"file_name": "ADE_train_00019163.jpg", "width": 682, "id": 19162, "height": 512}, {"file_name": "ADE_train_00019164.jpg", "width": 256, "id": 19163, "height": 256}, {"file_name": "ADE_train_00019165.jpg", "width": 500, "id": 19164, "height": 375}, {"file_name": "ADE_train_00019166.jpg", "width": 625, "id": 19165, "height": 422}, {"file_name": "ADE_train_00019167.jpg", "width": 420, "id": 19166, "height": 284}, {"file_name": "ADE_train_00019168.jpg", "width": 256, "id": 19167, "height": 256}, {"file_name": "ADE_train_00019169.jpg", "width": 256, "id": 19168, "height": 256}, {"file_name": "ADE_train_00019170.jpg", "width": 256, "id": 19169, "height": 256}, {"file_name": "ADE_train_00019171.jpg", "width": 402, "id": 19170, "height": 308}, {"file_name": "ADE_train_00019172.jpg", "width": 600, "id": 19171, "height": 469}, {"file_name": "ADE_train_00019173.jpg", "width": 256, "id": 19172, "height": 256}, {"file_name": "ADE_train_00019174.jpg", "width": 511, "id": 19173, "height": 342}, {"file_name": "ADE_train_00019175.jpg", "width": 300, "id": 19174, "height": 225}, {"file_name": "ADE_train_00019176.jpg", "width": 256, "id": 19175, "height": 256}, {"file_name": "ADE_train_00019177.jpg", "width": 648, "id": 19176, "height": 512}, {"file_name": "ADE_train_00019178.jpg", "width": 400, "id": 19177, "height": 300}, {"file_name": "ADE_train_00019179.jpg", "width": 624, "id": 19178, "height": 497}, {"file_name": "ADE_train_00019180.jpg", "width": 780, "id": 19179, "height": 512}, {"file_name": "ADE_train_00019181.jpg", "width": 256, "id": 19180, "height": 256}, {"file_name": "ADE_train_00019182.jpg", "width": 540, "id": 19181, "height": 358}, {"file_name": "ADE_train_00019183.jpg", "width": 720, "id": 19182, "height": 480}, {"file_name": "ADE_train_00019184.jpg", "width": 350, "id": 19183, "height": 521}, {"file_name": "ADE_train_00019185.jpg", "width": 767, "id": 19184, "height": 512}, {"file_name": "ADE_train_00019186.jpg", "width": 432, "id": 19185, "height": 228}, {"file_name": "ADE_train_00019187.jpg", "width": 449, "id": 19186, "height": 437}, {"file_name": "ADE_train_00019188.jpg", "width": 500, "id": 19187, "height": 374}, {"file_name": "ADE_train_00019189.jpg", "width": 450, "id": 19188, "height": 338}, {"file_name": "ADE_train_00019190.jpg", "width": 436, "id": 19189, "height": 298}, {"file_name": "ADE_train_00019191.jpg", "width": 512, "id": 19190, "height": 683}, {"file_name": "ADE_train_00019192.jpg", "width": 768, "id": 19191, "height": 512}, {"file_name": "ADE_train_00019193.jpg", "width": 256, "id": 19192, "height": 341}, {"file_name": "ADE_train_00019194.jpg", "width": 683, "id": 19193, "height": 512}, {"file_name": "ADE_train_00019195.jpg", "width": 719, "id": 19194, "height": 512}, {"file_name": "ADE_train_00019196.jpg", "width": 683, "id": 19195, "height": 512}, {"file_name": "ADE_train_00019197.jpg", "width": 300, "id": 19196, "height": 227}, {"file_name": "ADE_train_00019198.jpg", "width": 400, "id": 19197, "height": 255}, {"file_name": "ADE_train_00019199.jpg", "width": 298, "id": 19198, "height": 339}, {"file_name": "ADE_train_00019200.jpg", "width": 512, "id": 19199, "height": 683}, {"file_name": "ADE_train_00019201.jpg", "width": 338, "id": 19200, "height": 500}, {"file_name": "ADE_train_00019202.jpg", "width": 424, "id": 19201, "height": 630}, {"file_name": "ADE_train_00019203.jpg", "width": 320, "id": 19202, "height": 240}, {"file_name": "ADE_train_00019204.jpg", "width": 500, "id": 19203, "height": 333}, {"file_name": "ADE_train_00019205.jpg", "width": 216, "id": 19204, "height": 288}, {"file_name": "ADE_train_00019206.jpg", "width": 672, "id": 19205, "height": 512}, {"file_name": "ADE_train_00019207.jpg", "width": 600, "id": 19206, "height": 450}, {"file_name": "ADE_train_00019208.jpg", "width": 512, "id": 19207, "height": 640}, {"file_name": "ADE_train_00019209.jpg", "width": 187, "id": 19208, "height": 276}, {"file_name": "ADE_train_00019210.jpg", "width": 576, "id": 19209, "height": 393}, {"file_name": "ADE_train_00019211.jpg", "width": 768, "id": 19210, "height": 512}, {"file_name": "ADE_train_00019212.jpg", "width": 683, "id": 19211, "height": 512}, {"file_name": "ADE_train_00019213.jpg", "width": 320, "id": 19212, "height": 240}, {"file_name": "ADE_train_00019214.jpg", "width": 683, "id": 19213, "height": 512}, {"file_name": "ADE_train_00019215.jpg", "width": 544, "id": 19214, "height": 344}, {"file_name": "ADE_train_00019216.jpg", "width": 545, "id": 19215, "height": 409}, {"file_name": "ADE_train_00019217.jpg", "width": 717, "id": 19216, "height": 512}, {"file_name": "ADE_train_00019218.jpg", "width": 500, "id": 19217, "height": 242}, {"file_name": "ADE_train_00019219.jpg", "width": 640, "id": 19218, "height": 470}, {"file_name": "ADE_train_00019220.jpg", "width": 388, "id": 19219, "height": 576}, {"file_name": "ADE_train_00019221.jpg", "width": 432, "id": 19220, "height": 217}, {"file_name": "ADE_train_00019222.jpg", "width": 450, "id": 19221, "height": 254}, {"file_name": "ADE_train_00019223.jpg", "width": 480, "id": 19222, "height": 640}, {"file_name": "ADE_train_00019224.jpg", "width": 600, "id": 19223, "height": 400}, {"file_name": "ADE_train_00019225.jpg", "width": 401, "id": 19224, "height": 260}, {"file_name": "ADE_train_00019226.jpg", "width": 400, "id": 19225, "height": 264}, {"file_name": "ADE_train_00019227.jpg", "width": 347, "id": 19226, "height": 212}, {"file_name": "ADE_train_00019228.jpg", "width": 300, "id": 19227, "height": 261}, {"file_name": "ADE_train_00019229.jpg", "width": 401, "id": 19228, "height": 315}, {"file_name": "ADE_train_00019230.jpg", "width": 507, "id": 19229, "height": 320}, {"file_name": "ADE_train_00019231.jpg", "width": 773, "id": 19230, "height": 512}, {"file_name": "ADE_train_00019232.jpg", "width": 300, "id": 19231, "height": 227}, {"file_name": "ADE_train_00019233.jpg", "width": 512, "id": 19232, "height": 683}, {"file_name": "ADE_train_00019234.jpg", "width": 512, "id": 19233, "height": 683}, {"file_name": "ADE_train_00019235.jpg", "width": 512, "id": 19234, "height": 910}, {"file_name": "ADE_train_00019236.jpg", "width": 512, "id": 19235, "height": 683}, {"file_name": "ADE_train_00019237.jpg", "width": 512, "id": 19236, "height": 683}, {"file_name": "ADE_train_00019238.jpg", "width": 512, "id": 19237, "height": 683}, {"file_name": "ADE_train_00019239.jpg", "width": 512, "id": 19238, "height": 683}, {"file_name": "ADE_train_00019240.jpg", "width": 512, "id": 19239, "height": 683}, {"file_name": "ADE_train_00019241.jpg", "width": 512, "id": 19240, "height": 683}, {"file_name": "ADE_train_00019242.jpg", "width": 300, "id": 19241, "height": 509}, {"file_name": "ADE_train_00019243.jpg", "width": 512, "id": 19242, "height": 683}, {"file_name": "ADE_train_00019244.jpg", "width": 512, "id": 19243, "height": 683}, {"file_name": "ADE_train_00019245.jpg", "width": 249, "id": 19244, "height": 400}, {"file_name": "ADE_train_00019246.jpg", "width": 512, "id": 19245, "height": 683}, {"file_name": "ADE_train_00019247.jpg", "width": 512, "id": 19246, "height": 683}, {"file_name": "ADE_train_00019248.jpg", "width": 683, "id": 19247, "height": 512}, {"file_name": "ADE_train_00019249.jpg", "width": 296, "id": 19248, "height": 448}, {"file_name": "ADE_train_00019250.jpg", "width": 512, "id": 19249, "height": 354}, {"file_name": "ADE_train_00019251.jpg", "width": 512, "id": 19250, "height": 683}, {"file_name": "ADE_train_00019252.jpg", "width": 512, "id": 19251, "height": 630}, {"file_name": "ADE_train_00019253.jpg", "width": 292, "id": 19252, "height": 445}, {"file_name": "ADE_train_00019254.jpg", "width": 512, "id": 19253, "height": 796}, {"file_name": "ADE_train_00019255.jpg", "width": 512, "id": 19254, "height": 910}, {"file_name": "ADE_train_00019256.jpg", "width": 512, "id": 19255, "height": 753}, {"file_name": "ADE_train_00019257.jpg", "width": 768, "id": 19256, "height": 512}, {"file_name": "ADE_train_00019258.jpg", "width": 512, "id": 19257, "height": 768}, {"file_name": "ADE_train_00019259.jpg", "width": 768, "id": 19258, "height": 512}, {"file_name": "ADE_train_00019260.jpg", "width": 679, "id": 19259, "height": 512}, {"file_name": "ADE_train_00019261.jpg", "width": 512, "id": 19260, "height": 683}, {"file_name": "ADE_train_00019262.jpg", "width": 512, "id": 19261, "height": 682}, {"file_name": "ADE_train_00019263.jpg", "width": 683, "id": 19262, "height": 512}, {"file_name": "ADE_train_00019264.jpg", "width": 512, "id": 19263, "height": 683}, {"file_name": "ADE_train_00019265.jpg", "width": 512, "id": 19264, "height": 683}, {"file_name": "ADE_train_00019266.jpg", "width": 693, "id": 19265, "height": 512}, {"file_name": "ADE_train_00019267.jpg", "width": 683, "id": 19266, "height": 512}, {"file_name": "ADE_train_00019268.jpg", "width": 610, "id": 19267, "height": 423}, {"file_name": "ADE_train_00019269.jpg", "width": 683, "id": 19268, "height": 512}, {"file_name": "ADE_train_00019270.jpg", "width": 310, "id": 19269, "height": 208}, {"file_name": "ADE_train_00019271.jpg", "width": 640, "id": 19270, "height": 480}, {"file_name": "ADE_train_00019272.jpg", "width": 389, "id": 19271, "height": 308}, {"file_name": "ADE_train_00019273.jpg", "width": 400, "id": 19272, "height": 266}, {"file_name": "ADE_train_00019274.jpg", "width": 683, "id": 19273, "height": 512}, {"file_name": "ADE_train_00019275.jpg", "width": 673, "id": 19274, "height": 413}, {"file_name": "ADE_train_00019276.jpg", "width": 500, "id": 19275, "height": 323}, {"file_name": "ADE_train_00019277.jpg", "width": 320, "id": 19276, "height": 240}, {"file_name": "ADE_train_00019278.jpg", "width": 432, "id": 19277, "height": 283}, {"file_name": "ADE_train_00019279.jpg", "width": 508, "id": 19278, "height": 673}, {"file_name": "ADE_train_00019280.jpg", "width": 300, "id": 19279, "height": 225}, {"file_name": "ADE_train_00019281.jpg", "width": 500, "id": 19280, "height": 375}, {"file_name": "ADE_train_00019282.jpg", "width": 256, "id": 19281, "height": 256}, {"file_name": "ADE_train_00019283.jpg", "width": 320, "id": 19282, "height": 240}, {"file_name": "ADE_train_00019284.jpg", "width": 500, "id": 19283, "height": 375}, {"file_name": "ADE_train_00019285.jpg", "width": 500, "id": 19284, "height": 375}, {"file_name": "ADE_train_00019286.jpg", "width": 419, "id": 19285, "height": 500}, {"file_name": "ADE_train_00019287.jpg", "width": 683, "id": 19286, "height": 512}, {"file_name": "ADE_train_00019288.jpg", "width": 500, "id": 19287, "height": 375}, {"file_name": "ADE_train_00019289.jpg", "width": 256, "id": 19288, "height": 256}, {"file_name": "ADE_train_00019290.jpg", "width": 256, "id": 19289, "height": 256}, {"file_name": "ADE_train_00019291.jpg", "width": 683, "id": 19290, "height": 512}, {"file_name": "ADE_train_00019292.jpg", "width": 500, "id": 19291, "height": 375}, {"file_name": "ADE_train_00019293.jpg", "width": 500, "id": 19292, "height": 375}, {"file_name": "ADE_train_00019294.jpg", "width": 683, "id": 19293, "height": 512}, {"file_name": "ADE_train_00019295.jpg", "width": 512, "id": 19294, "height": 683}, {"file_name": "ADE_train_00019296.jpg", "width": 500, "id": 19295, "height": 375}, {"file_name": "ADE_train_00019297.jpg", "width": 640, "id": 19296, "height": 480}, {"file_name": "ADE_train_00019298.jpg", "width": 290, "id": 19297, "height": 218}, {"file_name": "ADE_train_00019299.jpg", "width": 450, "id": 19298, "height": 338}, {"file_name": "ADE_train_00019300.jpg", "width": 256, "id": 19299, "height": 256}, {"file_name": "ADE_train_00019301.jpg", "width": 400, "id": 19300, "height": 600}, {"file_name": "ADE_train_00019302.jpg", "width": 247, "id": 19301, "height": 379}, {"file_name": "ADE_train_00019303.jpg", "width": 481, "id": 19302, "height": 245}, {"file_name": "ADE_train_00019304.jpg", "width": 872, "id": 19303, "height": 512}, {"file_name": "ADE_train_00019305.jpg", "width": 576, "id": 19304, "height": 383}, {"file_name": "ADE_train_00019306.jpg", "width": 561, "id": 19305, "height": 425}, {"file_name": "ADE_train_00019307.jpg", "width": 425, "id": 19306, "height": 300}, {"file_name": "ADE_train_00019308.jpg", "width": 361, "id": 19307, "height": 305}, {"file_name": "ADE_train_00019309.jpg", "width": 400, "id": 19308, "height": 268}, {"file_name": "ADE_train_00019310.jpg", "width": 384, "id": 19309, "height": 256}, {"file_name": "ADE_train_00019311.jpg", "width": 750, "id": 19310, "height": 451}, {"file_name": "ADE_train_00019312.jpg", "width": 768, "id": 19311, "height": 512}, {"file_name": "ADE_train_00019313.jpg", "width": 650, "id": 19312, "height": 432}, {"file_name": "ADE_train_00019314.jpg", "width": 504, "id": 19313, "height": 378}, {"file_name": "ADE_train_00019315.jpg", "width": 256, "id": 19314, "height": 256}, {"file_name": "ADE_train_00019316.jpg", "width": 256, "id": 19315, "height": 256}, {"file_name": "ADE_train_00019317.jpg", "width": 256, "id": 19316, "height": 256}, {"file_name": "ADE_train_00019318.jpg", "width": 256, "id": 19317, "height": 256}, {"file_name": "ADE_train_00019319.jpg", "width": 256, "id": 19318, "height": 256}, {"file_name": "ADE_train_00019320.jpg", "width": 256, "id": 19319, "height": 256}, {"file_name": "ADE_train_00019321.jpg", "width": 256, "id": 19320, "height": 256}, {"file_name": "ADE_train_00019322.jpg", "width": 745, "id": 19321, "height": 420}, {"file_name": "ADE_train_00019323.jpg", "width": 538, "id": 19322, "height": 359}, {"file_name": "ADE_train_00019324.jpg", "width": 640, "id": 19323, "height": 480}, {"file_name": "ADE_train_00019325.jpg", "width": 608, "id": 19324, "height": 405}, {"file_name": "ADE_train_00019326.jpg", "width": 256, "id": 19325, "height": 256}, {"file_name": "ADE_train_00019327.jpg", "width": 300, "id": 19326, "height": 240}, {"file_name": "ADE_train_00019328.jpg", "width": 757, "id": 19327, "height": 512}, {"file_name": "ADE_train_00019329.jpg", "width": 480, "id": 19328, "height": 640}, {"file_name": "ADE_train_00019330.jpg", "width": 631, "id": 19329, "height": 405}, {"file_name": "ADE_train_00019331.jpg", "width": 530, "id": 19330, "height": 364}, {"file_name": "ADE_train_00019332.jpg", "width": 300, "id": 19331, "height": 400}, {"file_name": "ADE_train_00019333.jpg", "width": 500, "id": 19332, "height": 333}, {"file_name": "ADE_train_00019334.jpg", "width": 476, "id": 19333, "height": 314}, {"file_name": "ADE_train_00019335.jpg", "width": 500, "id": 19334, "height": 500}, {"file_name": "ADE_train_00019336.jpg", "width": 500, "id": 19335, "height": 375}, {"file_name": "ADE_train_00019337.jpg", "width": 500, "id": 19336, "height": 394}, {"file_name": "ADE_train_00019338.jpg", "width": 500, "id": 19337, "height": 333}, {"file_name": "ADE_train_00019339.jpg", "width": 500, "id": 19338, "height": 333}, {"file_name": "ADE_train_00019340.jpg", "width": 551, "id": 19339, "height": 512}, {"file_name": "ADE_train_00019341.jpg", "width": 576, "id": 19340, "height": 394}, {"file_name": "ADE_train_00019342.jpg", "width": 899, "id": 19341, "height": 512}, {"file_name": "ADE_train_00019343.jpg", "width": 640, "id": 19342, "height": 480}, {"file_name": "ADE_train_00019344.jpg", "width": 500, "id": 19343, "height": 333}, {"file_name": "ADE_train_00019345.jpg", "width": 375, "id": 19344, "height": 500}, {"file_name": "ADE_train_00019346.jpg", "width": 500, "id": 19345, "height": 325}, {"file_name": "ADE_train_00019347.jpg", "width": 275, "id": 19346, "height": 232}, {"file_name": "ADE_train_00019348.jpg", "width": 450, "id": 19347, "height": 318}, {"file_name": "ADE_train_00019349.jpg", "width": 500, "id": 19348, "height": 370}, {"file_name": "ADE_train_00019350.jpg", "width": 500, "id": 19349, "height": 337}, {"file_name": "ADE_train_00019351.jpg", "width": 256, "id": 19350, "height": 256}, {"file_name": "ADE_train_00019352.jpg", "width": 256, "id": 19351, "height": 256}, {"file_name": "ADE_train_00019353.jpg", "width": 256, "id": 19352, "height": 256}, {"file_name": "ADE_train_00019354.jpg", "width": 330, "id": 19353, "height": 403}, {"file_name": "ADE_train_00019355.jpg", "width": 370, "id": 19354, "height": 493}, {"file_name": "ADE_train_00019356.jpg", "width": 512, "id": 19355, "height": 691}, {"file_name": "ADE_train_00019357.jpg", "width": 504, "id": 19356, "height": 756}, {"file_name": "ADE_train_00019358.jpg", "width": 335, "id": 19357, "height": 215}, {"file_name": "ADE_train_00019359.jpg", "width": 512, "id": 19358, "height": 740}, {"file_name": "ADE_train_00019360.jpg", "width": 445, "id": 19359, "height": 309}, {"file_name": "ADE_train_00019361.jpg", "width": 288, "id": 19360, "height": 436}, {"file_name": "ADE_train_00019362.jpg", "width": 512, "id": 19361, "height": 765}, {"file_name": "ADE_train_00019363.jpg", "width": 640, "id": 19362, "height": 480}, {"file_name": "ADE_train_00019364.jpg", "width": 682, "id": 19363, "height": 512}, {"file_name": "ADE_train_00019365.jpg", "width": 300, "id": 19364, "height": 200}, {"file_name": "ADE_train_00019366.jpg", "width": 384, "id": 19365, "height": 564}, {"file_name": "ADE_train_00019367.jpg", "width": 640, "id": 19366, "height": 386}, {"file_name": "ADE_train_00019368.jpg", "width": 460, "id": 19367, "height": 340}, {"file_name": "ADE_train_00019369.jpg", "width": 350, "id": 19368, "height": 250}, {"file_name": "ADE_train_00019370.jpg", "width": 683, "id": 19369, "height": 512}, {"file_name": "ADE_train_00019371.jpg", "width": 300, "id": 19370, "height": 225}, {"file_name": "ADE_train_00019372.jpg", "width": 300, "id": 19371, "height": 225}, {"file_name": "ADE_train_00019373.jpg", "width": 683, "id": 19372, "height": 512}, {"file_name": "ADE_train_00019374.jpg", "width": 320, "id": 19373, "height": 240}, {"file_name": "ADE_train_00019375.jpg", "width": 314, "id": 19374, "height": 235}, {"file_name": "ADE_train_00019376.jpg", "width": 311, "id": 19375, "height": 241}, {"file_name": "ADE_train_00019377.jpg", "width": 683, "id": 19376, "height": 512}, {"file_name": "ADE_train_00019378.jpg", "width": 683, "id": 19377, "height": 512}, {"file_name": "ADE_train_00019379.jpg", "width": 256, "id": 19378, "height": 256}, {"file_name": "ADE_train_00019380.jpg", "width": 256, "id": 19379, "height": 256}, {"file_name": "ADE_train_00019381.jpg", "width": 256, "id": 19380, "height": 256}, {"file_name": "ADE_train_00019382.jpg", "width": 256, "id": 19381, "height": 256}, {"file_name": "ADE_train_00019383.jpg", "width": 256, "id": 19382, "height": 256}, {"file_name": "ADE_train_00019384.jpg", "width": 256, "id": 19383, "height": 256}, {"file_name": "ADE_train_00019385.jpg", "width": 256, "id": 19384, "height": 256}, {"file_name": "ADE_train_00019386.jpg", "width": 450, "id": 19385, "height": 300}, {"file_name": "ADE_train_00019387.jpg", "width": 512, "id": 19386, "height": 684}, {"file_name": "ADE_train_00019388.jpg", "width": 250, "id": 19387, "height": 249}, {"file_name": "ADE_train_00019389.jpg", "width": 300, "id": 19388, "height": 225}, {"file_name": "ADE_train_00019390.jpg", "width": 576, "id": 19389, "height": 432}, {"file_name": "ADE_train_00019391.jpg", "width": 400, "id": 19390, "height": 300}, {"file_name": "ADE_train_00019392.jpg", "width": 256, "id": 19391, "height": 256}, {"file_name": "ADE_train_00019393.jpg", "width": 256, "id": 19392, "height": 256}, {"file_name": "ADE_train_00019394.jpg", "width": 500, "id": 19393, "height": 333}, {"file_name": "ADE_train_00019395.jpg", "width": 381, "id": 19394, "height": 571}, {"file_name": "ADE_train_00019396.jpg", "width": 600, "id": 19395, "height": 450}, {"file_name": "ADE_train_00019397.jpg", "width": 256, "id": 19396, "height": 256}, {"file_name": "ADE_train_00019398.jpg", "width": 296, "id": 19397, "height": 293}, {"file_name": "ADE_train_00019399.jpg", "width": 400, "id": 19398, "height": 300}, {"file_name": "ADE_train_00019400.jpg", "width": 256, "id": 19399, "height": 256}, {"file_name": "ADE_train_00019401.jpg", "width": 256, "id": 19400, "height": 256}, {"file_name": "ADE_train_00019402.jpg", "width": 768, "id": 19401, "height": 512}, {"file_name": "ADE_train_00019403.jpg", "width": 256, "id": 19402, "height": 256}, {"file_name": "ADE_train_00019404.jpg", "width": 256, "id": 19403, "height": 256}, {"file_name": "ADE_train_00019405.jpg", "width": 256, "id": 19404, "height": 256}, {"file_name": "ADE_train_00019406.jpg", "width": 256, "id": 19405, "height": 256}, {"file_name": "ADE_train_00019407.jpg", "width": 256, "id": 19406, "height": 256}, {"file_name": "ADE_train_00019408.jpg", "width": 571, "id": 19407, "height": 512}, {"file_name": "ADE_train_00019409.jpg", "width": 648, "id": 19408, "height": 512}, {"file_name": "ADE_train_00019410.jpg", "width": 690, "id": 19409, "height": 460}, {"file_name": "ADE_train_00019411.jpg", "width": 256, "id": 19410, "height": 256}, {"file_name": "ADE_train_00019412.jpg", "width": 256, "id": 19411, "height": 256}, {"file_name": "ADE_train_00019413.jpg", "width": 369, "id": 19412, "height": 480}, {"file_name": "ADE_train_00019414.jpg", "width": 512, "id": 19413, "height": 683}, {"file_name": "ADE_train_00019415.jpg", "width": 395, "id": 19414, "height": 296}, {"file_name": "ADE_train_00019416.jpg", "width": 600, "id": 19415, "height": 402}, {"file_name": "ADE_train_00019417.jpg", "width": 649, "id": 19416, "height": 512}, {"file_name": "ADE_train_00019418.jpg", "width": 600, "id": 19417, "height": 450}, {"file_name": "ADE_train_00019419.jpg", "width": 366, "id": 19418, "height": 446}, {"file_name": "ADE_train_00019420.jpg", "width": 600, "id": 19419, "height": 398}, {"file_name": "ADE_train_00019421.jpg", "width": 600, "id": 19420, "height": 450}, {"file_name": "ADE_train_00019422.jpg", "width": 640, "id": 19421, "height": 480}, {"file_name": "ADE_train_00019423.jpg", "width": 716, "id": 19422, "height": 512}, {"file_name": "ADE_train_00019424.jpg", "width": 300, "id": 19423, "height": 400}, {"file_name": "ADE_train_00019425.jpg", "width": 300, "id": 19424, "height": 225}, {"file_name": "ADE_train_00019426.jpg", "width": 512, "id": 19425, "height": 770}, {"file_name": "ADE_train_00019427.jpg", "width": 420, "id": 19426, "height": 315}, {"file_name": "ADE_train_00019428.jpg", "width": 242, "id": 19427, "height": 323}, {"file_name": "ADE_train_00019429.jpg", "width": 580, "id": 19428, "height": 434}, {"file_name": "ADE_train_00019430.jpg", "width": 452, "id": 19429, "height": 300}, {"file_name": "ADE_train_00019431.jpg", "width": 600, "id": 19430, "height": 398}, {"file_name": "ADE_train_00019432.jpg", "width": 475, "id": 19431, "height": 356}, {"file_name": "ADE_train_00019433.jpg", "width": 256, "id": 19432, "height": 256}, {"file_name": "ADE_train_00019434.jpg", "width": 256, "id": 19433, "height": 256}, {"file_name": "ADE_train_00019435.jpg", "width": 256, "id": 19434, "height": 256}, {"file_name": "ADE_train_00019436.jpg", "width": 256, "id": 19435, "height": 256}, {"file_name": "ADE_train_00019437.jpg", "width": 256, "id": 19436, "height": 256}, {"file_name": "ADE_train_00019438.jpg", "width": 256, "id": 19437, "height": 256}, {"file_name": "ADE_train_00019439.jpg", "width": 256, "id": 19438, "height": 256}, {"file_name": "ADE_train_00019440.jpg", "width": 256, "id": 19439, "height": 256}, {"file_name": "ADE_train_00019441.jpg", "width": 256, "id": 19440, "height": 256}, {"file_name": "ADE_train_00019442.jpg", "width": 256, "id": 19441, "height": 256}, {"file_name": "ADE_train_00019443.jpg", "width": 256, "id": 19442, "height": 256}, {"file_name": "ADE_train_00019444.jpg", "width": 256, "id": 19443, "height": 256}, {"file_name": "ADE_train_00019445.jpg", "width": 256, "id": 19444, "height": 256}, {"file_name": "ADE_train_00019446.jpg", "width": 256, "id": 19445, "height": 256}, {"file_name": "ADE_train_00019447.jpg", "width": 256, "id": 19446, "height": 256}, {"file_name": "ADE_train_00019448.jpg", "width": 256, "id": 19447, "height": 256}, {"file_name": "ADE_train_00019449.jpg", "width": 256, "id": 19448, "height": 256}, {"file_name": "ADE_train_00019450.jpg", "width": 256, "id": 19449, "height": 256}, {"file_name": "ADE_train_00019451.jpg", "width": 256, "id": 19450, "height": 256}, {"file_name": "ADE_train_00019452.jpg", "width": 256, "id": 19451, "height": 256}, {"file_name": "ADE_train_00019453.jpg", "width": 256, "id": 19452, "height": 256}, {"file_name": "ADE_train_00019454.jpg", "width": 256, "id": 19453, "height": 256}, {"file_name": "ADE_train_00019455.jpg", "width": 256, "id": 19454, "height": 256}, {"file_name": "ADE_train_00019456.jpg", "width": 750, "id": 19455, "height": 500}, {"file_name": "ADE_train_00019457.jpg", "width": 256, "id": 19456, "height": 256}, {"file_name": "ADE_train_00019458.jpg", "width": 256, "id": 19457, "height": 256}, {"file_name": "ADE_train_00019459.jpg", "width": 256, "id": 19458, "height": 256}, {"file_name": "ADE_train_00019460.jpg", "width": 256, "id": 19459, "height": 256}, {"file_name": "ADE_train_00019461.jpg", "width": 256, "id": 19460, "height": 256}, {"file_name": "ADE_train_00019462.jpg", "width": 256, "id": 19461, "height": 256}, {"file_name": "ADE_train_00019463.jpg", "width": 256, "id": 19462, "height": 256}, {"file_name": "ADE_train_00019464.jpg", "width": 256, "id": 19463, "height": 256}, {"file_name": "ADE_train_00019465.jpg", "width": 256, "id": 19464, "height": 256}, {"file_name": "ADE_train_00019466.jpg", "width": 256, "id": 19465, "height": 256}, {"file_name": "ADE_train_00019467.jpg", "width": 1373, "id": 19466, "height": 512}, {"file_name": "ADE_train_00019468.jpg", "width": 683, "id": 19467, "height": 512}, {"file_name": "ADE_train_00019469.jpg", "width": 597, "id": 19468, "height": 398}, {"file_name": "ADE_train_00019470.jpg", "width": 768, "id": 19469, "height": 512}, {"file_name": "ADE_train_00019471.jpg", "width": 683, "id": 19470, "height": 512}, {"file_name": "ADE_train_00019472.jpg", "width": 640, "id": 19471, "height": 480}, {"file_name": "ADE_train_00019473.jpg", "width": 707, "id": 19472, "height": 402}, {"file_name": "ADE_train_00019474.jpg", "width": 770, "id": 19473, "height": 512}, {"file_name": "ADE_train_00019475.jpg", "width": 683, "id": 19474, "height": 512}, {"file_name": "ADE_train_00019476.jpg", "width": 683, "id": 19475, "height": 512}, {"file_name": "ADE_train_00019477.jpg", "width": 640, "id": 19476, "height": 480}, {"file_name": "ADE_train_00019478.jpg", "width": 300, "id": 19477, "height": 226}, {"file_name": "ADE_train_00019479.jpg", "width": 374, "id": 19478, "height": 575}, {"file_name": "ADE_train_00019480.jpg", "width": 700, "id": 19479, "height": 478}, {"file_name": "ADE_train_00019481.jpg", "width": 600, "id": 19480, "height": 400}, {"file_name": "ADE_train_00019482.jpg", "width": 480, "id": 19481, "height": 395}, {"file_name": "ADE_train_00019483.jpg", "width": 498, "id": 19482, "height": 326}, {"file_name": "ADE_train_00019484.jpg", "width": 498, "id": 19483, "height": 326}, {"file_name": "ADE_train_00019485.jpg", "width": 325, "id": 19484, "height": 244}, {"file_name": "ADE_train_00019486.jpg", "width": 683, "id": 19485, "height": 512}, {"file_name": "ADE_train_00019487.jpg", "width": 320, "id": 19486, "height": 240}, {"file_name": "ADE_train_00019488.jpg", "width": 683, "id": 19487, "height": 512}, {"file_name": "ADE_train_00019489.jpg", "width": 500, "id": 19488, "height": 375}, {"file_name": "ADE_train_00019490.jpg", "width": 500, "id": 19489, "height": 317}, {"file_name": "ADE_train_00019491.jpg", "width": 390, "id": 19490, "height": 257}, {"file_name": "ADE_train_00019492.jpg", "width": 502, "id": 19491, "height": 334}, {"file_name": "ADE_train_00019493.jpg", "width": 405, "id": 19492, "height": 426}, {"file_name": "ADE_train_00019494.jpg", "width": 410, "id": 19493, "height": 307}, {"file_name": "ADE_train_00019495.jpg", "width": 683, "id": 19494, "height": 512}, {"file_name": "ADE_train_00019496.jpg", "width": 600, "id": 19495, "height": 426}, {"file_name": "ADE_train_00019497.jpg", "width": 700, "id": 19496, "height": 433}, {"file_name": "ADE_train_00019498.jpg", "width": 340, "id": 19497, "height": 453}, {"file_name": "ADE_train_00019499.jpg", "width": 500, "id": 19498, "height": 375}, {"file_name": "ADE_train_00019500.jpg", "width": 768, "id": 19499, "height": 512}, {"file_name": "ADE_train_00019501.jpg", "width": 300, "id": 19500, "height": 225}, {"file_name": "ADE_train_00019502.jpg", "width": 683, "id": 19501, "height": 512}, {"file_name": "ADE_train_00019503.jpg", "width": 350, "id": 19502, "height": 315}, {"file_name": "ADE_train_00019504.jpg", "width": 640, "id": 19503, "height": 421}, {"file_name": "ADE_train_00019505.jpg", "width": 640, "id": 19504, "height": 480}, {"file_name": "ADE_train_00019506.jpg", "width": 300, "id": 19505, "height": 400}, {"file_name": "ADE_train_00019507.jpg", "width": 296, "id": 19506, "height": 222}, {"file_name": "ADE_train_00019508.jpg", "width": 400, "id": 19507, "height": 300}, {"file_name": "ADE_train_00019509.jpg", "width": 480, "id": 19508, "height": 640}, {"file_name": "ADE_train_00019510.jpg", "width": 500, "id": 19509, "height": 333}, {"file_name": "ADE_train_00019511.jpg", "width": 512, "id": 19510, "height": 340}, {"file_name": "ADE_train_00019512.jpg", "width": 594, "id": 19511, "height": 404}, {"file_name": "ADE_train_00019513.jpg", "width": 450, "id": 19512, "height": 350}, {"file_name": "ADE_train_00019514.jpg", "width": 480, "id": 19513, "height": 325}, {"file_name": "ADE_train_00019515.jpg", "width": 226, "id": 19514, "height": 247}, {"file_name": "ADE_train_00019516.jpg", "width": 360, "id": 19515, "height": 284}, {"file_name": "ADE_train_00019517.jpg", "width": 640, "id": 19516, "height": 426}, {"file_name": "ADE_train_00019518.jpg", "width": 250, "id": 19517, "height": 251}, {"file_name": "ADE_train_00019519.jpg", "width": 768, "id": 19518, "height": 512}, {"file_name": "ADE_train_00019520.jpg", "width": 640, "id": 19519, "height": 480}, {"file_name": "ADE_train_00019521.jpg", "width": 768, "id": 19520, "height": 512}, {"file_name": "ADE_train_00019522.jpg", "width": 540, "id": 19521, "height": 360}, {"file_name": "ADE_train_00019523.jpg", "width": 300, "id": 19522, "height": 225}, {"file_name": "ADE_train_00019524.jpg", "width": 600, "id": 19523, "height": 435}, {"file_name": "ADE_train_00019525.jpg", "width": 512, "id": 19524, "height": 345}, {"file_name": "ADE_train_00019526.jpg", "width": 683, "id": 19525, "height": 512}, {"file_name": "ADE_train_00019527.jpg", "width": 600, "id": 19526, "height": 400}, {"file_name": "ADE_train_00019528.jpg", "width": 640, "id": 19527, "height": 480}, {"file_name": "ADE_train_00019529.jpg", "width": 576, "id": 19528, "height": 432}, {"file_name": "ADE_train_00019530.jpg", "width": 683, "id": 19529, "height": 512}, {"file_name": "ADE_train_00019531.jpg", "width": 500, "id": 19530, "height": 333}, {"file_name": "ADE_train_00019532.jpg", "width": 500, "id": 19531, "height": 342}, {"file_name": "ADE_train_00019533.jpg", "width": 500, "id": 19532, "height": 375}, {"file_name": "ADE_train_00019534.jpg", "width": 640, "id": 19533, "height": 480}, {"file_name": "ADE_train_00019535.jpg", "width": 500, "id": 19534, "height": 375}, {"file_name": "ADE_train_00019536.jpg", "width": 335, "id": 19535, "height": 225}, {"file_name": "ADE_train_00019537.jpg", "width": 379, "id": 19536, "height": 224}, {"file_name": "ADE_train_00019538.jpg", "width": 439, "id": 19537, "height": 298}, {"file_name": "ADE_train_00019539.jpg", "width": 256, "id": 19538, "height": 256}, {"file_name": "ADE_train_00019540.jpg", "width": 500, "id": 19539, "height": 375}, {"file_name": "ADE_train_00019541.jpg", "width": 478, "id": 19540, "height": 310}, {"file_name": "ADE_train_00019542.jpg", "width": 390, "id": 19541, "height": 294}, {"file_name": "ADE_train_00019543.jpg", "width": 500, "id": 19542, "height": 333}, {"file_name": "ADE_train_00019544.jpg", "width": 640, "id": 19543, "height": 480}, {"file_name": "ADE_train_00019545.jpg", "width": 333, "id": 19544, "height": 500}, {"file_name": "ADE_train_00019546.jpg", "width": 500, "id": 19545, "height": 375}, {"file_name": "ADE_train_00019547.jpg", "width": 390, "id": 19546, "height": 293}, {"file_name": "ADE_train_00019548.jpg", "width": 500, "id": 19547, "height": 375}, {"file_name": "ADE_train_00019549.jpg", "width": 440, "id": 19548, "height": 330}, {"file_name": "ADE_train_00019550.jpg", "width": 683, "id": 19549, "height": 512}, {"file_name": "ADE_train_00019551.jpg", "width": 862, "id": 19550, "height": 418}, {"file_name": "ADE_train_00019552.jpg", "width": 256, "id": 19551, "height": 256}, {"file_name": "ADE_train_00019553.jpg", "width": 256, "id": 19552, "height": 256}, {"file_name": "ADE_train_00019554.jpg", "width": 550, "id": 19553, "height": 350}, {"file_name": "ADE_train_00019555.jpg", "width": 256, "id": 19554, "height": 256}, {"file_name": "ADE_train_00019556.jpg", "width": 256, "id": 19555, "height": 256}, {"file_name": "ADE_train_00019557.jpg", "width": 436, "id": 19556, "height": 292}, {"file_name": "ADE_train_00019558.jpg", "width": 256, "id": 19557, "height": 256}, {"file_name": "ADE_train_00019559.jpg", "width": 580, "id": 19558, "height": 382}, {"file_name": "ADE_train_00019560.jpg", "width": 384, "id": 19559, "height": 256}, {"file_name": "ADE_train_00019561.jpg", "width": 256, "id": 19560, "height": 256}, {"file_name": "ADE_train_00019562.jpg", "width": 256, "id": 19561, "height": 256}, {"file_name": "ADE_train_00019563.jpg", "width": 768, "id": 19562, "height": 512}, {"file_name": "ADE_train_00019564.jpg", "width": 500, "id": 19563, "height": 332}, {"file_name": "ADE_train_00019565.jpg", "width": 459, "id": 19564, "height": 300}, {"file_name": "ADE_train_00019566.jpg", "width": 550, "id": 19565, "height": 413}, {"file_name": "ADE_train_00019567.jpg", "width": 309, "id": 19566, "height": 300}, {"file_name": "ADE_train_00019568.jpg", "width": 400, "id": 19567, "height": 300}, {"file_name": "ADE_train_00019569.jpg", "width": 488, "id": 19568, "height": 319}, {"file_name": "ADE_train_00019570.jpg", "width": 300, "id": 19569, "height": 225}, {"file_name": "ADE_train_00019571.jpg", "width": 500, "id": 19570, "height": 390}, {"file_name": "ADE_train_00019572.jpg", "width": 683, "id": 19571, "height": 512}, {"file_name": "ADE_train_00019573.jpg", "width": 683, "id": 19572, "height": 512}, {"file_name": "ADE_train_00019574.jpg", "width": 768, "id": 19573, "height": 512}, {"file_name": "ADE_train_00019575.jpg", "width": 415, "id": 19574, "height": 332}, {"file_name": "ADE_train_00019576.jpg", "width": 256, "id": 19575, "height": 256}, {"file_name": "ADE_train_00019577.jpg", "width": 256, "id": 19576, "height": 256}, {"file_name": "ADE_train_00019578.jpg", "width": 481, "id": 19577, "height": 450}, {"file_name": "ADE_train_00019579.jpg", "width": 320, "id": 19578, "height": 240}, {"file_name": "ADE_train_00019580.jpg", "width": 711, "id": 19579, "height": 512}, {"file_name": "ADE_train_00019581.jpg", "width": 768, "id": 19580, "height": 512}, {"file_name": "ADE_train_00019582.jpg", "width": 753, "id": 19581, "height": 512}, {"file_name": "ADE_train_00019583.jpg", "width": 1600, "id": 19582, "height": 1600}, {"file_name": "ADE_train_00019584.jpg", "width": 448, "id": 19583, "height": 336}, {"file_name": "ADE_train_00019585.jpg", "width": 500, "id": 19584, "height": 333}, {"file_name": "ADE_train_00019586.jpg", "width": 340, "id": 19585, "height": 255}, {"file_name": "ADE_train_00019587.jpg", "width": 322, "id": 19586, "height": 242}, {"file_name": "ADE_train_00019588.jpg", "width": 350, "id": 19587, "height": 262}, {"file_name": "ADE_train_00019589.jpg", "width": 600, "id": 19588, "height": 400}, {"file_name": "ADE_train_00019590.jpg", "width": 683, "id": 19589, "height": 512}, {"file_name": "ADE_train_00019591.jpg", "width": 470, "id": 19590, "height": 312}, {"file_name": "ADE_train_00019592.jpg", "width": 684, "id": 19591, "height": 512}, {"file_name": "ADE_train_00019593.jpg", "width": 683, "id": 19592, "height": 512}, {"file_name": "ADE_train_00019594.jpg", "width": 470, "id": 19593, "height": 312}, {"file_name": "ADE_train_00019595.jpg", "width": 448, "id": 19594, "height": 299}, {"file_name": "ADE_train_00019596.jpg", "width": 768, "id": 19595, "height": 512}, {"file_name": "ADE_train_00019597.jpg", "width": 500, "id": 19596, "height": 375}, {"file_name": "ADE_train_00019598.jpg", "width": 650, "id": 19597, "height": 450}, {"file_name": "ADE_train_00019599.jpg", "width": 375, "id": 19598, "height": 500}, {"file_name": "ADE_train_00019600.jpg", "width": 557, "id": 19599, "height": 300}, {"file_name": "ADE_train_00019601.jpg", "width": 413, "id": 19600, "height": 240}, {"file_name": "ADE_train_00019602.jpg", "width": 500, "id": 19601, "height": 375}, {"file_name": "ADE_train_00019603.jpg", "width": 269, "id": 19602, "height": 201}, {"file_name": "ADE_train_00019604.jpg", "width": 375, "id": 19603, "height": 500}, {"file_name": "ADE_train_00019605.jpg", "width": 256, "id": 19604, "height": 256}, {"file_name": "ADE_train_00019606.jpg", "width": 560, "id": 19605, "height": 420}, {"file_name": "ADE_train_00019607.jpg", "width": 300, "id": 19606, "height": 225}, {"file_name": "ADE_train_00019608.jpg", "width": 450, "id": 19607, "height": 338}, {"file_name": "ADE_train_00019609.jpg", "width": 683, "id": 19608, "height": 512}, {"file_name": "ADE_train_00019610.jpg", "width": 683, "id": 19609, "height": 512}, {"file_name": "ADE_train_00019611.jpg", "width": 413, "id": 19610, "height": 310}, {"file_name": "ADE_train_00019612.jpg", "width": 256, "id": 19611, "height": 256}, {"file_name": "ADE_train_00019613.jpg", "width": 683, "id": 19612, "height": 512}, {"file_name": "ADE_train_00019614.jpg", "width": 512, "id": 19613, "height": 682}, {"file_name": "ADE_train_00019615.jpg", "width": 484, "id": 19614, "height": 363}, {"file_name": "ADE_train_00019616.jpg", "width": 256, "id": 19615, "height": 256}, {"file_name": "ADE_train_00019617.jpg", "width": 600, "id": 19616, "height": 402}, {"file_name": "ADE_train_00019618.jpg", "width": 256, "id": 19617, "height": 256}, {"file_name": "ADE_train_00019619.jpg", "width": 683, "id": 19618, "height": 512}, {"file_name": "ADE_train_00019620.jpg", "width": 683, "id": 19619, "height": 512}, {"file_name": "ADE_train_00019621.jpg", "width": 640, "id": 19620, "height": 427}, {"file_name": "ADE_train_00019622.jpg", "width": 682, "id": 19621, "height": 512}, {"file_name": "ADE_train_00019623.jpg", "width": 370, "id": 19622, "height": 249}, {"file_name": "ADE_train_00019624.jpg", "width": 256, "id": 19623, "height": 256}, {"file_name": "ADE_train_00019625.jpg", "width": 640, "id": 19624, "height": 480}, {"file_name": "ADE_train_00019626.jpg", "width": 256, "id": 19625, "height": 256}, {"file_name": "ADE_train_00019627.jpg", "width": 225, "id": 19626, "height": 300}, {"file_name": "ADE_train_00019628.jpg", "width": 256, "id": 19627, "height": 256}, {"file_name": "ADE_train_00019629.jpg", "width": 429, "id": 19628, "height": 307}, {"file_name": "ADE_train_00019630.jpg", "width": 360, "id": 19629, "height": 270}, {"file_name": "ADE_train_00019631.jpg", "width": 400, "id": 19630, "height": 300}, {"file_name": "ADE_train_00019632.jpg", "width": 256, "id": 19631, "height": 256}, {"file_name": "ADE_train_00019633.jpg", "width": 256, "id": 19632, "height": 256}, {"file_name": "ADE_train_00019634.jpg", "width": 763, "id": 19633, "height": 512}, {"file_name": "ADE_train_00019635.jpg", "width": 256, "id": 19634, "height": 256}, {"file_name": "ADE_train_00019636.jpg", "width": 640, "id": 19635, "height": 480}, {"file_name": "ADE_train_00019637.jpg", "width": 256, "id": 19636, "height": 256}, {"file_name": "ADE_train_00019638.jpg", "width": 651, "id": 19637, "height": 512}, {"file_name": "ADE_train_00019639.jpg", "width": 256, "id": 19638, "height": 256}, {"file_name": "ADE_train_00019640.jpg", "width": 683, "id": 19639, "height": 512}, {"file_name": "ADE_train_00019641.jpg", "width": 500, "id": 19640, "height": 350}, {"file_name": "ADE_train_00019642.jpg", "width": 300, "id": 19641, "height": 225}, {"file_name": "ADE_train_00019643.jpg", "width": 683, "id": 19642, "height": 512}, {"file_name": "ADE_train_00019644.jpg", "width": 256, "id": 19643, "height": 256}, {"file_name": "ADE_train_00019645.jpg", "width": 681, "id": 19644, "height": 512}, {"file_name": "ADE_train_00019646.jpg", "width": 683, "id": 19645, "height": 512}, {"file_name": "ADE_train_00019647.jpg", "width": 256, "id": 19646, "height": 256}, {"file_name": "ADE_train_00019648.jpg", "width": 256, "id": 19647, "height": 256}, {"file_name": "ADE_train_00019649.jpg", "width": 256, "id": 19648, "height": 256}, {"file_name": "ADE_train_00019650.jpg", "width": 256, "id": 19649, "height": 256}, {"file_name": "ADE_train_00019651.jpg", "width": 683, "id": 19650, "height": 512}, {"file_name": "ADE_train_00019652.jpg", "width": 768, "id": 19651, "height": 512}, {"file_name": "ADE_train_00019653.jpg", "width": 300, "id": 19652, "height": 225}, {"file_name": "ADE_train_00019654.jpg", "width": 359, "id": 19653, "height": 241}, {"file_name": "ADE_train_00019655.jpg", "width": 236, "id": 19654, "height": 270}, {"file_name": "ADE_train_00019656.jpg", "width": 631, "id": 19655, "height": 512}, {"file_name": "ADE_train_00019657.jpg", "width": 320, "id": 19656, "height": 240}, {"file_name": "ADE_train_00019658.jpg", "width": 754, "id": 19657, "height": 512}, {"file_name": "ADE_train_00019659.jpg", "width": 683, "id": 19658, "height": 512}, {"file_name": "ADE_train_00019660.jpg", "width": 344, "id": 19659, "height": 258}, {"file_name": "ADE_train_00019661.jpg", "width": 683, "id": 19660, "height": 512}, {"file_name": "ADE_train_00019662.jpg", "width": 768, "id": 19661, "height": 512}, {"file_name": "ADE_train_00019663.jpg", "width": 320, "id": 19662, "height": 214}, {"file_name": "ADE_train_00019664.jpg", "width": 683, "id": 19663, "height": 512}, {"file_name": "ADE_train_00019665.jpg", "width": 683, "id": 19664, "height": 512}, {"file_name": "ADE_train_00019666.jpg", "width": 683, "id": 19665, "height": 512}, {"file_name": "ADE_train_00019667.jpg", "width": 300, "id": 19666, "height": 225}, {"file_name": "ADE_train_00019668.jpg", "width": 770, "id": 19667, "height": 512}, {"file_name": "ADE_train_00019669.jpg", "width": 320, "id": 19668, "height": 240}, {"file_name": "ADE_train_00019670.jpg", "width": 372, "id": 19669, "height": 240}, {"file_name": "ADE_train_00019671.jpg", "width": 683, "id": 19670, "height": 512}, {"file_name": "ADE_train_00019672.jpg", "width": 683, "id": 19671, "height": 512}, {"file_name": "ADE_train_00019673.jpg", "width": 333, "id": 19672, "height": 202}, {"file_name": "ADE_train_00019674.jpg", "width": 683, "id": 19673, "height": 512}, {"file_name": "ADE_train_00019675.jpg", "width": 766, "id": 19674, "height": 512}, {"file_name": "ADE_train_00019676.jpg", "width": 320, "id": 19675, "height": 240}, {"file_name": "ADE_train_00019677.jpg", "width": 683, "id": 19676, "height": 512}, {"file_name": "ADE_train_00019678.jpg", "width": 300, "id": 19677, "height": 240}, {"file_name": "ADE_train_00019679.jpg", "width": 683, "id": 19678, "height": 512}, {"file_name": "ADE_train_00019680.jpg", "width": 683, "id": 19679, "height": 512}, {"file_name": "ADE_train_00019681.jpg", "width": 772, "id": 19680, "height": 512}, {"file_name": "ADE_train_00019682.jpg", "width": 765, "id": 19681, "height": 512}, {"file_name": "ADE_train_00019683.jpg", "width": 683, "id": 19682, "height": 512}, {"file_name": "ADE_train_00019684.jpg", "width": 684, "id": 19683, "height": 512}, {"file_name": "ADE_train_00019685.jpg", "width": 683, "id": 19684, "height": 512}, {"file_name": "ADE_train_00019686.jpg", "width": 771, "id": 19685, "height": 512}, {"file_name": "ADE_train_00019687.jpg", "width": 351, "id": 19686, "height": 234}, {"file_name": "ADE_train_00019688.jpg", "width": 286, "id": 19687, "height": 269}, {"file_name": "ADE_train_00019689.jpg", "width": 300, "id": 19688, "height": 225}, {"file_name": "ADE_train_00019690.jpg", "width": 683, "id": 19689, "height": 512}, {"file_name": "ADE_train_00019691.jpg", "width": 288, "id": 19690, "height": 216}, {"file_name": "ADE_train_00019692.jpg", "width": 805, "id": 19691, "height": 512}, {"file_name": "ADE_train_00019693.jpg", "width": 325, "id": 19692, "height": 255}, {"file_name": "ADE_train_00019694.jpg", "width": 768, "id": 19693, "height": 512}, {"file_name": "ADE_train_00019695.jpg", "width": 297, "id": 19694, "height": 278}, {"file_name": "ADE_train_00019696.jpg", "width": 683, "id": 19695, "height": 512}, {"file_name": "ADE_train_00019697.jpg", "width": 910, "id": 19696, "height": 512}, {"file_name": "ADE_train_00019698.jpg", "width": 337, "id": 19697, "height": 252}, {"file_name": "ADE_train_00019699.jpg", "width": 300, "id": 19698, "height": 225}, {"file_name": "ADE_train_00019700.jpg", "width": 240, "id": 19699, "height": 320}, {"file_name": "ADE_train_00019701.jpg", "width": 512, "id": 19700, "height": 683}, {"file_name": "ADE_train_00019702.jpg", "width": 290, "id": 19701, "height": 228}, {"file_name": "ADE_train_00019703.jpg", "width": 400, "id": 19702, "height": 300}, {"file_name": "ADE_train_00019704.jpg", "width": 256, "id": 19703, "height": 256}, {"file_name": "ADE_train_00019705.jpg", "width": 256, "id": 19704, "height": 256}, {"file_name": "ADE_train_00019706.jpg", "width": 775, "id": 19705, "height": 343}, {"file_name": "ADE_train_00019707.jpg", "width": 480, "id": 19706, "height": 640}, {"file_name": "ADE_train_00019708.jpg", "width": 256, "id": 19707, "height": 256}, {"file_name": "ADE_train_00019709.jpg", "width": 496, "id": 19708, "height": 334}, {"file_name": "ADE_train_00019710.jpg", "width": 412, "id": 19709, "height": 271}, {"file_name": "ADE_train_00019711.jpg", "width": 375, "id": 19710, "height": 500}, {"file_name": "ADE_train_00019712.jpg", "width": 770, "id": 19711, "height": 512}, {"file_name": "ADE_train_00019713.jpg", "width": 550, "id": 19712, "height": 413}, {"file_name": "ADE_train_00019714.jpg", "width": 424, "id": 19713, "height": 278}, {"file_name": "ADE_train_00019715.jpg", "width": 683, "id": 19714, "height": 512}, {"file_name": "ADE_train_00019716.jpg", "width": 640, "id": 19715, "height": 480}, {"file_name": "ADE_train_00019717.jpg", "width": 400, "id": 19716, "height": 300}, {"file_name": "ADE_train_00019718.jpg", "width": 500, "id": 19717, "height": 375}, {"file_name": "ADE_train_00019719.jpg", "width": 288, "id": 19718, "height": 216}, {"file_name": "ADE_train_00019720.jpg", "width": 640, "id": 19719, "height": 480}, {"file_name": "ADE_train_00019721.jpg", "width": 640, "id": 19720, "height": 480}, {"file_name": "ADE_train_00019722.jpg", "width": 400, "id": 19721, "height": 300}, {"file_name": "ADE_train_00019723.jpg", "width": 505, "id": 19722, "height": 379}, {"file_name": "ADE_train_00019724.jpg", "width": 683, "id": 19723, "height": 512}, {"file_name": "ADE_train_00019725.jpg", "width": 500, "id": 19724, "height": 334}, {"file_name": "ADE_train_00019726.jpg", "width": 500, "id": 19725, "height": 375}, {"file_name": "ADE_train_00019727.jpg", "width": 256, "id": 19726, "height": 256}, {"file_name": "ADE_train_00019728.jpg", "width": 592, "id": 19727, "height": 396}, {"file_name": "ADE_train_00019729.jpg", "width": 510, "id": 19728, "height": 383}, {"file_name": "ADE_train_00019730.jpg", "width": 256, "id": 19729, "height": 256}, {"file_name": "ADE_train_00019731.jpg", "width": 682, "id": 19730, "height": 512}, {"file_name": "ADE_train_00019732.jpg", "width": 375, "id": 19731, "height": 500}, {"file_name": "ADE_train_00019733.jpg", "width": 525, "id": 19732, "height": 344}, {"file_name": "ADE_train_00019734.jpg", "width": 400, "id": 19733, "height": 300}, {"file_name": "ADE_train_00019735.jpg", "width": 500, "id": 19734, "height": 325}, {"file_name": "ADE_train_00019736.jpg", "width": 256, "id": 19735, "height": 256}, {"file_name": "ADE_train_00019737.jpg", "width": 256, "id": 19736, "height": 256}, {"file_name": "ADE_train_00019738.jpg", "width": 683, "id": 19737, "height": 512}, {"file_name": "ADE_train_00019739.jpg", "width": 500, "id": 19738, "height": 375}, {"file_name": "ADE_train_00019740.jpg", "width": 256, "id": 19739, "height": 256}, {"file_name": "ADE_train_00019741.jpg", "width": 768, "id": 19740, "height": 512}, {"file_name": "ADE_train_00019742.jpg", "width": 430, "id": 19741, "height": 278}, {"file_name": "ADE_train_00019743.jpg", "width": 450, "id": 19742, "height": 305}, {"file_name": "ADE_train_00019744.jpg", "width": 560, "id": 19743, "height": 420}, {"file_name": "ADE_train_00019745.jpg", "width": 299, "id": 19744, "height": 248}, {"file_name": "ADE_train_00019746.jpg", "width": 300, "id": 19745, "height": 279}, {"file_name": "ADE_train_00019747.jpg", "width": 400, "id": 19746, "height": 267}, {"file_name": "ADE_train_00019748.jpg", "width": 256, "id": 19747, "height": 256}, {"file_name": "ADE_train_00019749.jpg", "width": 256, "id": 19748, "height": 256}, {"file_name": "ADE_train_00019750.jpg", "width": 334, "id": 19749, "height": 251}, {"file_name": "ADE_train_00019751.jpg", "width": 256, "id": 19750, "height": 384}, {"file_name": "ADE_train_00019752.jpg", "width": 433, "id": 19751, "height": 658}, {"file_name": "ADE_train_00019753.jpg", "width": 683, "id": 19752, "height": 512}, {"file_name": "ADE_train_00019754.jpg", "width": 683, "id": 19753, "height": 512}, {"file_name": "ADE_train_00019755.jpg", "width": 572, "id": 19754, "height": 303}, {"file_name": "ADE_train_00019756.jpg", "width": 755, "id": 19755, "height": 512}, {"file_name": "ADE_train_00019757.jpg", "width": 570, "id": 19756, "height": 428}, {"file_name": "ADE_train_00019758.jpg", "width": 410, "id": 19757, "height": 307}, {"file_name": "ADE_train_00019759.jpg", "width": 689, "id": 19758, "height": 512}, {"file_name": "ADE_train_00019760.jpg", "width": 786, "id": 19759, "height": 512}, {"file_name": "ADE_train_00019761.jpg", "width": 683, "id": 19760, "height": 512}, {"file_name": "ADE_train_00019762.jpg", "width": 771, "id": 19761, "height": 512}, {"file_name": "ADE_train_00019763.jpg", "width": 683, "id": 19762, "height": 512}, {"file_name": "ADE_train_00019764.jpg", "width": 683, "id": 19763, "height": 512}, {"file_name": "ADE_train_00019765.jpg", "width": 318, "id": 19764, "height": 500}, {"file_name": "ADE_train_00019766.jpg", "width": 512, "id": 19765, "height": 683}, {"file_name": "ADE_train_00019767.jpg", "width": 200, "id": 19766, "height": 246}, {"file_name": "ADE_train_00019768.jpg", "width": 500, "id": 19767, "height": 375}, {"file_name": "ADE_train_00019769.jpg", "width": 500, "id": 19768, "height": 375}, {"file_name": "ADE_train_00019770.jpg", "width": 767, "id": 19769, "height": 512}, {"file_name": "ADE_train_00019771.jpg", "width": 200, "id": 19770, "height": 300}, {"file_name": "ADE_train_00019772.jpg", "width": 683, "id": 19771, "height": 512}, {"file_name": "ADE_train_00019773.jpg", "width": 375, "id": 19772, "height": 500}, {"file_name": "ADE_train_00019774.jpg", "width": 340, "id": 19773, "height": 505}, {"file_name": "ADE_train_00019775.jpg", "width": 400, "id": 19774, "height": 267}, {"file_name": "ADE_train_00019776.jpg", "width": 239, "id": 19775, "height": 360}, {"file_name": "ADE_train_00019777.jpg", "width": 400, "id": 19776, "height": 600}, {"file_name": "ADE_train_00019778.jpg", "width": 640, "id": 19777, "height": 480}, {"file_name": "ADE_train_00019779.jpg", "width": 140, "id": 19778, "height": 214}, {"file_name": "ADE_train_00019780.jpg", "width": 200, "id": 19779, "height": 267}, {"file_name": "ADE_train_00019781.jpg", "width": 683, "id": 19780, "height": 512}, {"file_name": "ADE_train_00019782.jpg", "width": 512, "id": 19781, "height": 683}, {"file_name": "ADE_train_00019783.jpg", "width": 672, "id": 19782, "height": 504}, {"file_name": "ADE_train_00019784.jpg", "width": 430, "id": 19783, "height": 305}, {"file_name": "ADE_train_00019785.jpg", "width": 400, "id": 19784, "height": 533}, {"file_name": "ADE_train_00019786.jpg", "width": 356, "id": 19785, "height": 247}, {"file_name": "ADE_train_00019787.jpg", "width": 683, "id": 19786, "height": 512}, {"file_name": "ADE_train_00019788.jpg", "width": 250, "id": 19787, "height": 304}, {"file_name": "ADE_train_00019789.jpg", "width": 683, "id": 19788, "height": 512}, {"file_name": "ADE_train_00019790.jpg", "width": 512, "id": 19789, "height": 633}, {"file_name": "ADE_train_00019791.jpg", "width": 600, "id": 19790, "height": 450}, {"file_name": "ADE_train_00019792.jpg", "width": 250, "id": 19791, "height": 281}, {"file_name": "ADE_train_00019793.jpg", "width": 683, "id": 19792, "height": 512}, {"file_name": "ADE_train_00019794.jpg", "width": 512, "id": 19793, "height": 683}, {"file_name": "ADE_train_00019795.jpg", "width": 250, "id": 19794, "height": 333}, {"file_name": "ADE_train_00019796.jpg", "width": 480, "id": 19795, "height": 640}, {"file_name": "ADE_train_00019797.jpg", "width": 512, "id": 19796, "height": 683}, {"file_name": "ADE_train_00019798.jpg", "width": 300, "id": 19797, "height": 225}, {"file_name": "ADE_train_00019799.jpg", "width": 286, "id": 19798, "height": 386}, {"file_name": "ADE_train_00019800.jpg", "width": 400, "id": 19799, "height": 600}, {"file_name": "ADE_train_00019801.jpg", "width": 512, "id": 19800, "height": 683}, {"file_name": "ADE_train_00019802.jpg", "width": 230, "id": 19801, "height": 310}, {"file_name": "ADE_train_00019803.jpg", "width": 683, "id": 19802, "height": 512}, {"file_name": "ADE_train_00019804.jpg", "width": 512, "id": 19803, "height": 667}, {"file_name": "ADE_train_00019805.jpg", "width": 512, "id": 19804, "height": 768}, {"file_name": "ADE_train_00019806.jpg", "width": 701, "id": 19805, "height": 512}, {"file_name": "ADE_train_00019807.jpg", "width": 470, "id": 19806, "height": 313}, {"file_name": "ADE_train_00019808.jpg", "width": 683, "id": 19807, "height": 512}, {"file_name": "ADE_train_00019809.jpg", "width": 320, "id": 19808, "height": 240}, {"file_name": "ADE_train_00019810.jpg", "width": 300, "id": 19809, "height": 225}, {"file_name": "ADE_train_00019811.jpg", "width": 347, "id": 19810, "height": 233}, {"file_name": "ADE_train_00019812.jpg", "width": 242, "id": 19811, "height": 179}, {"file_name": "ADE_train_00019813.jpg", "width": 683, "id": 19812, "height": 512}, {"file_name": "ADE_train_00019814.jpg", "width": 683, "id": 19813, "height": 512}, {"file_name": "ADE_train_00019815.jpg", "width": 256, "id": 19814, "height": 256}, {"file_name": "ADE_train_00019816.jpg", "width": 256, "id": 19815, "height": 256}, {"file_name": "ADE_train_00019817.jpg", "width": 256, "id": 19816, "height": 256}, {"file_name": "ADE_train_00019818.jpg", "width": 256, "id": 19817, "height": 256}, {"file_name": "ADE_train_00019819.jpg", "width": 256, "id": 19818, "height": 256}, {"file_name": "ADE_train_00019820.jpg", "width": 256, "id": 19819, "height": 256}, {"file_name": "ADE_train_00019821.jpg", "width": 771, "id": 19820, "height": 512}, {"file_name": "ADE_train_00019822.jpg", "width": 256, "id": 19821, "height": 256}, {"file_name": "ADE_train_00019823.jpg", "width": 256, "id": 19822, "height": 256}, {"file_name": "ADE_train_00019824.jpg", "width": 256, "id": 19823, "height": 256}, {"file_name": "ADE_train_00019825.jpg", "width": 256, "id": 19824, "height": 256}, {"file_name": "ADE_train_00019826.jpg", "width": 256, "id": 19825, "height": 256}, {"file_name": "ADE_train_00019827.jpg", "width": 256, "id": 19826, "height": 256}, {"file_name": "ADE_train_00019828.jpg", "width": 683, "id": 19827, "height": 512}, {"file_name": "ADE_train_00019829.jpg", "width": 683, "id": 19828, "height": 512}, {"file_name": "ADE_train_00019830.jpg", "width": 256, "id": 19829, "height": 256}, {"file_name": "ADE_train_00019831.jpg", "width": 256, "id": 19830, "height": 256}, {"file_name": "ADE_train_00019832.jpg", "width": 257, "id": 19831, "height": 256}, {"file_name": "ADE_train_00019833.jpg", "width": 256, "id": 19832, "height": 256}, {"file_name": "ADE_train_00019834.jpg", "width": 257, "id": 19833, "height": 256}, {"file_name": "ADE_train_00019835.jpg", "width": 256, "id": 19834, "height": 256}, {"file_name": "ADE_train_00019836.jpg", "width": 256, "id": 19835, "height": 256}, {"file_name": "ADE_train_00019837.jpg", "width": 768, "id": 19836, "height": 512}, {"file_name": "ADE_train_00019838.jpg", "width": 700, "id": 19837, "height": 512}, {"file_name": "ADE_train_00019839.jpg", "width": 256, "id": 19838, "height": 256}, {"file_name": "ADE_train_00019840.jpg", "width": 256, "id": 19839, "height": 256}, {"file_name": "ADE_train_00019841.jpg", "width": 256, "id": 19840, "height": 256}, {"file_name": "ADE_train_00019842.jpg", "width": 256, "id": 19841, "height": 256}, {"file_name": "ADE_train_00019843.jpg", "width": 256, "id": 19842, "height": 256}, {"file_name": "ADE_train_00019844.jpg", "width": 550, "id": 19843, "height": 412}, {"file_name": "ADE_train_00019845.jpg", "width": 250, "id": 19844, "height": 341}, {"file_name": "ADE_train_00019846.jpg", "width": 512, "id": 19845, "height": 683}, {"file_name": "ADE_train_00019847.jpg", "width": 819, "id": 19846, "height": 512}, {"file_name": "ADE_train_00019848.jpg", "width": 683, "id": 19847, "height": 512}, {"file_name": "ADE_train_00019849.jpg", "width": 400, "id": 19848, "height": 299}, {"file_name": "ADE_train_00019850.jpg", "width": 494, "id": 19849, "height": 700}, {"file_name": "ADE_train_00019851.jpg", "width": 256, "id": 19850, "height": 256}, {"file_name": "ADE_train_00019852.jpg", "width": 256, "id": 19851, "height": 256}, {"file_name": "ADE_train_00019853.jpg", "width": 256, "id": 19852, "height": 256}, {"file_name": "ADE_train_00019854.jpg", "width": 256, "id": 19853, "height": 256}, {"file_name": "ADE_train_00019855.jpg", "width": 300, "id": 19854, "height": 225}, {"file_name": "ADE_train_00019856.jpg", "width": 910, "id": 19855, "height": 512}, {"file_name": "ADE_train_00019857.jpg", "width": 256, "id": 19856, "height": 256}, {"file_name": "ADE_train_00019858.jpg", "width": 256, "id": 19857, "height": 256}, {"file_name": "ADE_train_00019859.jpg", "width": 256, "id": 19858, "height": 256}, {"file_name": "ADE_train_00019860.jpg", "width": 400, "id": 19859, "height": 300}, {"file_name": "ADE_train_00019861.jpg", "width": 256, "id": 19860, "height": 256}, {"file_name": "ADE_train_00019862.jpg", "width": 400, "id": 19861, "height": 300}, {"file_name": "ADE_train_00019863.jpg", "width": 256, "id": 19862, "height": 256}, {"file_name": "ADE_train_00019864.jpg", "width": 256, "id": 19863, "height": 256}, {"file_name": "ADE_train_00019865.jpg", "width": 256, "id": 19864, "height": 256}, {"file_name": "ADE_train_00019866.jpg", "width": 256, "id": 19865, "height": 256}, {"file_name": "ADE_train_00019867.jpg", "width": 256, "id": 19866, "height": 256}, {"file_name": "ADE_train_00019868.jpg", "width": 256, "id": 19867, "height": 256}, {"file_name": "ADE_train_00019869.jpg", "width": 256, "id": 19868, "height": 256}, {"file_name": "ADE_train_00019870.jpg", "width": 256, "id": 19869, "height": 256}, {"file_name": "ADE_train_00019871.jpg", "width": 759, "id": 19870, "height": 512}, {"file_name": "ADE_train_00019872.jpg", "width": 256, "id": 19871, "height": 256}, {"file_name": "ADE_train_00019873.jpg", "width": 256, "id": 19872, "height": 256}, {"file_name": "ADE_train_00019874.jpg", "width": 684, "id": 19873, "height": 512}, {"file_name": "ADE_train_00019875.jpg", "width": 256, "id": 19874, "height": 256}, {"file_name": "ADE_train_00019876.jpg", "width": 360, "id": 19875, "height": 480}, {"file_name": "ADE_train_00019877.jpg", "width": 256, "id": 19876, "height": 256}, {"file_name": "ADE_train_00019878.jpg", "width": 683, "id": 19877, "height": 512}, {"file_name": "ADE_train_00019879.jpg", "width": 770, "id": 19878, "height": 512}, {"file_name": "ADE_train_00019880.jpg", "width": 683, "id": 19879, "height": 512}, {"file_name": "ADE_train_00019881.jpg", "width": 324, "id": 19880, "height": 215}, {"file_name": "ADE_train_00019882.jpg", "width": 300, "id": 19881, "height": 225}, {"file_name": "ADE_train_00019883.jpg", "width": 330, "id": 19882, "height": 220}, {"file_name": "ADE_train_00019884.jpg", "width": 449, "id": 19883, "height": 303}, {"file_name": "ADE_train_00019885.jpg", "width": 684, "id": 19884, "height": 512}, {"file_name": "ADE_train_00019886.jpg", "width": 767, "id": 19885, "height": 512}, {"file_name": "ADE_train_00019887.jpg", "width": 684, "id": 19886, "height": 512}, {"file_name": "ADE_train_00019888.jpg", "width": 683, "id": 19887, "height": 512}, {"file_name": "ADE_train_00019889.jpg", "width": 680, "id": 19888, "height": 512}, {"file_name": "ADE_train_00019890.jpg", "width": 683, "id": 19889, "height": 512}, {"file_name": "ADE_train_00019891.jpg", "width": 256, "id": 19890, "height": 256}, {"file_name": "ADE_train_00019892.jpg", "width": 256, "id": 19891, "height": 256}, {"file_name": "ADE_train_00019893.jpg", "width": 256, "id": 19892, "height": 256}, {"file_name": "ADE_train_00019894.jpg", "width": 384, "id": 19893, "height": 256}, {"file_name": "ADE_train_00019895.jpg", "width": 384, "id": 19894, "height": 256}, {"file_name": "ADE_train_00019896.jpg", "width": 384, "id": 19895, "height": 256}, {"file_name": "ADE_train_00019897.jpg", "width": 300, "id": 19896, "height": 214}, {"file_name": "ADE_train_00019898.jpg", "width": 321, "id": 19897, "height": 239}, {"file_name": "ADE_train_00019899.jpg", "width": 300, "id": 19898, "height": 214}, {"file_name": "ADE_train_00019900.jpg", "width": 663, "id": 19899, "height": 496}, {"file_name": "ADE_train_00019901.jpg", "width": 410, "id": 19900, "height": 255}, {"file_name": "ADE_train_00019902.jpg", "width": 448, "id": 19901, "height": 336}, {"file_name": "ADE_train_00019903.jpg", "width": 280, "id": 19902, "height": 224}, {"file_name": "ADE_train_00019904.jpg", "width": 350, "id": 19903, "height": 236}, {"file_name": "ADE_train_00019905.jpg", "width": 448, "id": 19904, "height": 336}, {"file_name": "ADE_train_00019906.jpg", "width": 723, "id": 19905, "height": 723}, {"file_name": "ADE_train_00019907.jpg", "width": 719, "id": 19906, "height": 271}, {"file_name": "ADE_train_00019908.jpg", "width": 567, "id": 19907, "height": 368}, {"file_name": "ADE_train_00019909.jpg", "width": 320, "id": 19908, "height": 249}, {"file_name": "ADE_train_00019910.jpg", "width": 350, "id": 19909, "height": 250}, {"file_name": "ADE_train_00019911.jpg", "width": 350, "id": 19910, "height": 236}, {"file_name": "ADE_train_00019912.jpg", "width": 500, "id": 19911, "height": 306}, {"file_name": "ADE_train_00019913.jpg", "width": 567, "id": 19912, "height": 380}, {"file_name": "ADE_train_00019914.jpg", "width": 658, "id": 19913, "height": 436}, {"file_name": "ADE_train_00019915.jpg", "width": 551, "id": 19914, "height": 512}, {"file_name": "ADE_train_00019916.jpg", "width": 468, "id": 19915, "height": 329}, {"file_name": "ADE_train_00019917.jpg", "width": 480, "id": 19916, "height": 301}, {"file_name": "ADE_train_00019918.jpg", "width": 385, "id": 19917, "height": 272}, {"file_name": "ADE_train_00019919.jpg", "width": 218, "id": 19918, "height": 293}, {"file_name": "ADE_train_00019920.jpg", "width": 512, "id": 19919, "height": 683}, {"file_name": "ADE_train_00019921.jpg", "width": 512, "id": 19920, "height": 768}, {"file_name": "ADE_train_00019922.jpg", "width": 320, "id": 19921, "height": 240}, {"file_name": "ADE_train_00019923.jpg", "width": 512, "id": 19922, "height": 748}, {"file_name": "ADE_train_00019924.jpg", "width": 684, "id": 19923, "height": 512}, {"file_name": "ADE_train_00019925.jpg", "width": 683, "id": 19924, "height": 512}, {"file_name": "ADE_train_00019926.jpg", "width": 241, "id": 19925, "height": 360}, {"file_name": "ADE_train_00019927.jpg", "width": 683, "id": 19926, "height": 512}, {"file_name": "ADE_train_00019928.jpg", "width": 300, "id": 19927, "height": 225}, {"file_name": "ADE_train_00019929.jpg", "width": 683, "id": 19928, "height": 512}, {"file_name": "ADE_train_00019930.jpg", "width": 225, "id": 19929, "height": 300}, {"file_name": "ADE_train_00019931.jpg", "width": 683, "id": 19930, "height": 512}, {"file_name": "ADE_train_00019932.jpg", "width": 350, "id": 19931, "height": 234}, {"file_name": "ADE_train_00019933.jpg", "width": 356, "id": 19932, "height": 247}, {"file_name": "ADE_train_00019934.jpg", "width": 683, "id": 19933, "height": 512}, {"file_name": "ADE_train_00019935.jpg", "width": 225, "id": 19934, "height": 300}, {"file_name": "ADE_train_00019936.jpg", "width": 365, "id": 19935, "height": 243}, {"file_name": "ADE_train_00019937.jpg", "width": 683, "id": 19936, "height": 512}, {"file_name": "ADE_train_00019938.jpg", "width": 683, "id": 19937, "height": 512}, {"file_name": "ADE_train_00019939.jpg", "width": 512, "id": 19938, "height": 682}, {"file_name": "ADE_train_00019940.jpg", "width": 683, "id": 19939, "height": 512}, {"file_name": "ADE_train_00019941.jpg", "width": 512, "id": 19940, "height": 683}, {"file_name": "ADE_train_00019942.jpg", "width": 683, "id": 19941, "height": 512}, {"file_name": "ADE_train_00019943.jpg", "width": 225, "id": 19942, "height": 300}, {"file_name": "ADE_train_00019944.jpg", "width": 683, "id": 19943, "height": 512}, {"file_name": "ADE_train_00019945.jpg", "width": 320, "id": 19944, "height": 240}, {"file_name": "ADE_train_00019946.jpg", "width": 512, "id": 19945, "height": 683}, {"file_name": "ADE_train_00019947.jpg", "width": 684, "id": 19946, "height": 512}, {"file_name": "ADE_train_00019948.jpg", "width": 683, "id": 19947, "height": 512}, {"file_name": "ADE_train_00019949.jpg", "width": 683, "id": 19948, "height": 512}, {"file_name": "ADE_train_00019950.jpg", "width": 768, "id": 19949, "height": 512}, {"file_name": "ADE_train_00019951.jpg", "width": 321, "id": 19950, "height": 253}, {"file_name": "ADE_train_00019952.jpg", "width": 602, "id": 19951, "height": 386}, {"file_name": "ADE_train_00019953.jpg", "width": 350, "id": 19952, "height": 244}, {"file_name": "ADE_train_00019954.jpg", "width": 683, "id": 19953, "height": 512}, {"file_name": "ADE_train_00019955.jpg", "width": 468, "id": 19954, "height": 306}, {"file_name": "ADE_train_00019956.jpg", "width": 500, "id": 19955, "height": 500}, {"file_name": "ADE_train_00019957.jpg", "width": 768, "id": 19956, "height": 512}, {"file_name": "ADE_train_00019958.jpg", "width": 683, "id": 19957, "height": 512}, {"file_name": "ADE_train_00019959.jpg", "width": 777, "id": 19958, "height": 512}, {"file_name": "ADE_train_00019960.jpg", "width": 770, "id": 19959, "height": 512}, {"file_name": "ADE_train_00019961.jpg", "width": 560, "id": 19960, "height": 420}, {"file_name": "ADE_train_00019962.jpg", "width": 683, "id": 19961, "height": 512}, {"file_name": "ADE_train_00019963.jpg", "width": 770, "id": 19962, "height": 512}, {"file_name": "ADE_train_00019964.jpg", "width": 640, "id": 19963, "height": 480}, {"file_name": "ADE_train_00019965.jpg", "width": 500, "id": 19964, "height": 375}, {"file_name": "ADE_train_00019966.jpg", "width": 770, "id": 19965, "height": 512}, {"file_name": "ADE_train_00019967.jpg", "width": 400, "id": 19966, "height": 267}, {"file_name": "ADE_train_00019968.jpg", "width": 440, "id": 19967, "height": 360}, {"file_name": "ADE_train_00019969.jpg", "width": 683, "id": 19968, "height": 512}, {"file_name": "ADE_train_00019970.jpg", "width": 300, "id": 19969, "height": 220}, {"file_name": "ADE_train_00019971.jpg", "width": 512, "id": 19970, "height": 754}, {"file_name": "ADE_train_00019972.jpg", "width": 390, "id": 19971, "height": 292}, {"file_name": "ADE_train_00019973.jpg", "width": 500, "id": 19972, "height": 310}, {"file_name": "ADE_train_00019974.jpg", "width": 640, "id": 19973, "height": 480}, {"file_name": "ADE_train_00019975.jpg", "width": 520, "id": 19974, "height": 390}, {"file_name": "ADE_train_00019976.jpg", "width": 526, "id": 19975, "height": 422}, {"file_name": "ADE_train_00019977.jpg", "width": 367, "id": 19976, "height": 276}, {"file_name": "ADE_train_00019978.jpg", "width": 450, "id": 19977, "height": 300}, {"file_name": "ADE_train_00019979.jpg", "width": 400, "id": 19978, "height": 296}, {"file_name": "ADE_train_00019980.jpg", "width": 400, "id": 19979, "height": 223}, {"file_name": "ADE_train_00019981.jpg", "width": 640, "id": 19980, "height": 480}, {"file_name": "ADE_train_00019982.jpg", "width": 300, "id": 19981, "height": 350}, {"file_name": "ADE_train_00019983.jpg", "width": 600, "id": 19982, "height": 400}, {"file_name": "ADE_train_00019984.jpg", "width": 560, "id": 19983, "height": 420}, {"file_name": "ADE_train_00019985.jpg", "width": 512, "id": 19984, "height": 683}, {"file_name": "ADE_train_00019986.jpg", "width": 400, "id": 19985, "height": 600}, {"file_name": "ADE_train_00019987.jpg", "width": 400, "id": 19986, "height": 600}, {"file_name": "ADE_train_00019988.jpg", "width": 279, "id": 19987, "height": 285}, {"file_name": "ADE_train_00019989.jpg", "width": 560, "id": 19988, "height": 420}, {"file_name": "ADE_train_00019990.jpg", "width": 448, "id": 19989, "height": 326}, {"file_name": "ADE_train_00019991.jpg", "width": 588, "id": 19990, "height": 395}, {"file_name": "ADE_train_00019992.jpg", "width": 731, "id": 19991, "height": 512}, {"file_name": "ADE_train_00019993.jpg", "width": 576, "id": 19992, "height": 432}, {"file_name": "ADE_train_00019994.jpg", "width": 386, "id": 19993, "height": 500}, {"file_name": "ADE_train_00019995.jpg", "width": 640, "id": 19994, "height": 480}, {"file_name": "ADE_train_00019996.jpg", "width": 300, "id": 19995, "height": 400}, {"file_name": "ADE_train_00019997.jpg", "width": 406, "id": 19996, "height": 600}, {"file_name": "ADE_train_00019998.jpg", "width": 400, "id": 19997, "height": 600}, {"file_name": "ADE_train_00019999.jpg", "width": 400, "id": 19998, "height": 600}, {"file_name": "ADE_train_00020000.jpg", "width": 717, "id": 19999, "height": 512}, {"file_name": "ADE_train_00020001.jpg", "width": 415, "id": 20000, "height": 300}, {"file_name": "ADE_train_00020002.jpg", "width": 390, "id": 20001, "height": 260}, {"file_name": "ADE_train_00020003.jpg", "width": 336, "id": 20002, "height": 448}, {"file_name": "ADE_train_00020004.jpg", "width": 640, "id": 20003, "height": 480}, {"file_name": "ADE_train_00020005.jpg", "width": 512, "id": 20004, "height": 626}, {"file_name": "ADE_train_00020006.jpg", "width": 640, "id": 20005, "height": 428}, {"file_name": "ADE_train_00020007.jpg", "width": 520, "id": 20006, "height": 520}, {"file_name": "ADE_train_00020008.jpg", "width": 400, "id": 20007, "height": 300}, {"file_name": "ADE_train_00020009.jpg", "width": 307, "id": 20008, "height": 206}, {"file_name": "ADE_train_00020010.jpg", "width": 500, "id": 20009, "height": 375}, {"file_name": "ADE_train_00020011.jpg", "width": 450, "id": 20010, "height": 617}, {"file_name": "ADE_train_00020012.jpg", "width": 683, "id": 20011, "height": 512}, {"file_name": "ADE_train_00020013.jpg", "width": 517, "id": 20012, "height": 467}, {"file_name": "ADE_train_00020014.jpg", "width": 586, "id": 20013, "height": 375}, {"file_name": "ADE_train_00020015.jpg", "width": 445, "id": 20014, "height": 320}, {"file_name": "ADE_train_00020016.jpg", "width": 450, "id": 20015, "height": 523}, {"file_name": "ADE_train_00020017.jpg", "width": 450, "id": 20016, "height": 600}, {"file_name": "ADE_train_00020018.jpg", "width": 640, "id": 20017, "height": 480}, {"file_name": "ADE_train_00020019.jpg", "width": 306, "id": 20018, "height": 392}, {"file_name": "ADE_train_00020020.jpg", "width": 381, "id": 20019, "height": 508}, {"file_name": "ADE_train_00020021.jpg", "width": 300, "id": 20020, "height": 300}, {"file_name": "ADE_train_00020022.jpg", "width": 320, "id": 20021, "height": 209}, {"file_name": "ADE_train_00020023.jpg", "width": 476, "id": 20022, "height": 300}, {"file_name": "ADE_train_00020024.jpg", "width": 320, "id": 20023, "height": 400}, {"file_name": "ADE_train_00020025.jpg", "width": 588, "id": 20024, "height": 395}, {"file_name": "ADE_train_00020026.jpg", "width": 551, "id": 20025, "height": 512}, {"file_name": "ADE_train_00020027.jpg", "width": 300, "id": 20026, "height": 200}, {"file_name": "ADE_train_00020028.jpg", "width": 500, "id": 20027, "height": 333}, {"file_name": "ADE_train_00020029.jpg", "width": 340, "id": 20028, "height": 450}, {"file_name": "ADE_train_00020030.jpg", "width": 432, "id": 20029, "height": 288}, {"file_name": "ADE_train_00020031.jpg", "width": 320, "id": 20030, "height": 240}, {"file_name": "ADE_train_00020032.jpg", "width": 300, "id": 20031, "height": 255}, {"file_name": "ADE_train_00020033.jpg", "width": 225, "id": 20032, "height": 300}, {"file_name": "ADE_train_00020034.jpg", "width": 366, "id": 20033, "height": 247}, {"file_name": "ADE_train_00020035.jpg", "width": 240, "id": 20034, "height": 360}, {"file_name": "ADE_train_00020036.jpg", "width": 240, "id": 20035, "height": 320}, {"file_name": "ADE_train_00020037.jpg", "width": 683, "id": 20036, "height": 512}, {"file_name": "ADE_train_00020038.jpg", "width": 340, "id": 20037, "height": 255}, {"file_name": "ADE_train_00020039.jpg", "width": 683, "id": 20038, "height": 512}, {"file_name": "ADE_train_00020040.jpg", "width": 252, "id": 20039, "height": 336}, {"file_name": "ADE_train_00020041.jpg", "width": 683, "id": 20040, "height": 512}, {"file_name": "ADE_train_00020042.jpg", "width": 350, "id": 20041, "height": 233}, {"file_name": "ADE_train_00020043.jpg", "width": 500, "id": 20042, "height": 391}, {"file_name": "ADE_train_00020044.jpg", "width": 750, "id": 20043, "height": 500}, {"file_name": "ADE_train_00020045.jpg", "width": 240, "id": 20044, "height": 500}, {"file_name": "ADE_train_00020046.jpg", "width": 435, "id": 20045, "height": 290}, {"file_name": "ADE_train_00020047.jpg", "width": 285, "id": 20046, "height": 211}, {"file_name": "ADE_train_00020048.jpg", "width": 500, "id": 20047, "height": 333}, {"file_name": "ADE_train_00020049.jpg", "width": 387, "id": 20048, "height": 450}, {"file_name": "ADE_train_00020050.jpg", "width": 500, "id": 20049, "height": 333}, {"file_name": "ADE_train_00020051.jpg", "width": 500, "id": 20050, "height": 333}, {"file_name": "ADE_train_00020052.jpg", "width": 800, "id": 20051, "height": 457}, {"file_name": "ADE_train_00020053.jpg", "width": 640, "id": 20052, "height": 427}, {"file_name": "ADE_train_00020054.jpg", "width": 375, "id": 20053, "height": 500}, {"file_name": "ADE_train_00020055.jpg", "width": 500, "id": 20054, "height": 335}, {"file_name": "ADE_train_00020056.jpg", "width": 768, "id": 20055, "height": 512}, {"file_name": "ADE_train_00020057.jpg", "width": 768, "id": 20056, "height": 512}, {"file_name": "ADE_train_00020058.jpg", "width": 768, "id": 20057, "height": 512}, {"file_name": "ADE_train_00020059.jpg", "width": 683, "id": 20058, "height": 512}, {"file_name": "ADE_train_00020060.jpg", "width": 683, "id": 20059, "height": 512}, {"file_name": "ADE_train_00020061.jpg", "width": 770, "id": 20060, "height": 512}, {"file_name": "ADE_train_00020062.jpg", "width": 350, "id": 20061, "height": 245}, {"file_name": "ADE_train_00020063.jpg", "width": 218, "id": 20062, "height": 415}, {"file_name": "ADE_train_00020064.jpg", "width": 252, "id": 20063, "height": 202}, {"file_name": "ADE_train_00020065.jpg", "width": 256, "id": 20064, "height": 256}, {"file_name": "ADE_train_00020066.jpg", "width": 258, "id": 20065, "height": 400}, {"file_name": "ADE_train_00020067.jpg", "width": 325, "id": 20066, "height": 212}, {"file_name": "ADE_train_00020068.jpg", "width": 500, "id": 20067, "height": 375}, {"file_name": "ADE_train_00020069.jpg", "width": 280, "id": 20068, "height": 236}, {"file_name": "ADE_train_00020070.jpg", "width": 500, "id": 20069, "height": 333}, {"file_name": "ADE_train_00020071.jpg", "width": 617, "id": 20070, "height": 357}, {"file_name": "ADE_train_00020072.jpg", "width": 512, "id": 20071, "height": 682}, {"file_name": "ADE_train_00020073.jpg", "width": 683, "id": 20072, "height": 512}, {"file_name": "ADE_train_00020074.jpg", "width": 683, "id": 20073, "height": 512}, {"file_name": "ADE_train_00020075.jpg", "width": 683, "id": 20074, "height": 512}, {"file_name": "ADE_train_00020076.jpg", "width": 225, "id": 20075, "height": 300}, {"file_name": "ADE_train_00020077.jpg", "width": 765, "id": 20076, "height": 512}, {"file_name": "ADE_train_00020078.jpg", "width": 683, "id": 20077, "height": 512}, {"file_name": "ADE_train_00020079.jpg", "width": 683, "id": 20078, "height": 512}, {"file_name": "ADE_train_00020080.jpg", "width": 300, "id": 20079, "height": 240}, {"file_name": "ADE_train_00020081.jpg", "width": 500, "id": 20080, "height": 375}, {"file_name": "ADE_train_00020082.jpg", "width": 500, "id": 20081, "height": 333}, {"file_name": "ADE_train_00020083.jpg", "width": 300, "id": 20082, "height": 200}, {"file_name": "ADE_train_00020084.jpg", "width": 405, "id": 20083, "height": 288}, {"file_name": "ADE_train_00020085.jpg", "width": 400, "id": 20084, "height": 506}, {"file_name": "ADE_train_00020086.jpg", "width": 432, "id": 20085, "height": 272}, {"file_name": "ADE_train_00020087.jpg", "width": 512, "id": 20086, "height": 341}, {"file_name": "ADE_train_00020088.jpg", "width": 270, "id": 20087, "height": 203}, {"file_name": "ADE_train_00020089.jpg", "width": 270, "id": 20088, "height": 203}, {"file_name": "ADE_train_00020090.jpg", "width": 575, "id": 20089, "height": 376}, {"file_name": "ADE_train_00020091.jpg", "width": 683, "id": 20090, "height": 512}, {"file_name": "ADE_train_00020092.jpg", "width": 150, "id": 20091, "height": 231}, {"file_name": "ADE_train_00020093.jpg", "width": 683, "id": 20092, "height": 512}, {"file_name": "ADE_train_00020094.jpg", "width": 256, "id": 20093, "height": 256}, {"file_name": "ADE_train_00020095.jpg", "width": 638, "id": 20094, "height": 512}, {"file_name": "ADE_train_00020096.jpg", "width": 684, "id": 20095, "height": 512}, {"file_name": "ADE_train_00020097.jpg", "width": 683, "id": 20096, "height": 512}, {"file_name": "ADE_train_00020098.jpg", "width": 453, "id": 20097, "height": 604}, {"file_name": "ADE_train_00020099.jpg", "width": 770, "id": 20098, "height": 512}, {"file_name": "ADE_train_00020100.jpg", "width": 350, "id": 20099, "height": 387}, {"file_name": "ADE_train_00020101.jpg", "width": 683, "id": 20100, "height": 512}, {"file_name": "ADE_train_00020102.jpg", "width": 640, "id": 20101, "height": 480}, {"file_name": "ADE_train_00020103.jpg", "width": 640, "id": 20102, "height": 480}, {"file_name": "ADE_train_00020104.jpg", "width": 300, "id": 20103, "height": 215}, {"file_name": "ADE_train_00020105.jpg", "width": 500, "id": 20104, "height": 341}, {"file_name": "ADE_train_00020106.jpg", "width": 640, "id": 20105, "height": 480}, {"file_name": "ADE_train_00020107.jpg", "width": 640, "id": 20106, "height": 480}, {"file_name": "ADE_train_00020108.jpg", "width": 600, "id": 20107, "height": 450}, {"file_name": "ADE_train_00020109.jpg", "width": 640, "id": 20108, "height": 480}, {"file_name": "ADE_train_00020110.jpg", "width": 640, "id": 20109, "height": 480}, {"file_name": "ADE_train_00020111.jpg", "width": 666, "id": 20110, "height": 500}, {"file_name": "ADE_train_00020112.jpg", "width": 497, "id": 20111, "height": 373}, {"file_name": "ADE_train_00020113.jpg", "width": 400, "id": 20112, "height": 266}, {"file_name": "ADE_train_00020114.jpg", "width": 732, "id": 20113, "height": 512}, {"file_name": "ADE_train_00020115.jpg", "width": 683, "id": 20114, "height": 512}, {"file_name": "ADE_train_00020116.jpg", "width": 512, "id": 20115, "height": 288}, {"file_name": "ADE_train_00020117.jpg", "width": 493, "id": 20116, "height": 370}, {"file_name": "ADE_train_00020118.jpg", "width": 683, "id": 20117, "height": 512}, {"file_name": "ADE_train_00020119.jpg", "width": 500, "id": 20118, "height": 375}, {"file_name": "ADE_train_00020120.jpg", "width": 768, "id": 20119, "height": 512}, {"file_name": "ADE_train_00020121.jpg", "width": 683, "id": 20120, "height": 512}, {"file_name": "ADE_train_00020122.jpg", "width": 220, "id": 20121, "height": 330}, {"file_name": "ADE_train_00020123.jpg", "width": 320, "id": 20122, "height": 240}, {"file_name": "ADE_train_00020124.jpg", "width": 189, "id": 20123, "height": 250}, {"file_name": "ADE_train_00020125.jpg", "width": 398, "id": 20124, "height": 298}, {"file_name": "ADE_train_00020126.jpg", "width": 640, "id": 20125, "height": 480}, {"file_name": "ADE_train_00020127.jpg", "width": 300, "id": 20126, "height": 225}, {"file_name": "ADE_train_00020128.jpg", "width": 405, "id": 20127, "height": 200}, {"file_name": "ADE_train_00020129.jpg", "width": 600, "id": 20128, "height": 450}, {"file_name": "ADE_train_00020130.jpg", "width": 683, "id": 20129, "height": 512}, {"file_name": "ADE_train_00020131.jpg", "width": 300, "id": 20130, "height": 225}, {"file_name": "ADE_train_00020132.jpg", "width": 768, "id": 20131, "height": 512}, {"file_name": "ADE_train_00020133.jpg", "width": 225, "id": 20132, "height": 137}, {"file_name": "ADE_train_00020134.jpg", "width": 512, "id": 20133, "height": 762}, {"file_name": "ADE_train_00020135.jpg", "width": 640, "id": 20134, "height": 480}, {"file_name": "ADE_train_00020136.jpg", "width": 600, "id": 20135, "height": 398}, {"file_name": "ADE_train_00020137.jpg", "width": 600, "id": 20136, "height": 400}, {"file_name": "ADE_train_00020138.jpg", "width": 400, "id": 20137, "height": 271}, {"file_name": "ADE_train_00020139.jpg", "width": 225, "id": 20138, "height": 293}, {"file_name": "ADE_train_00020140.jpg", "width": 240, "id": 20139, "height": 320}, {"file_name": "ADE_train_00020141.jpg", "width": 568, "id": 20140, "height": 426}, {"file_name": "ADE_train_00020142.jpg", "width": 600, "id": 20141, "height": 400}, {"file_name": "ADE_train_00020143.jpg", "width": 250, "id": 20142, "height": 199}, {"file_name": "ADE_train_00020144.jpg", "width": 400, "id": 20143, "height": 290}, {"file_name": "ADE_train_00020145.jpg", "width": 769, "id": 20144, "height": 512}, {"file_name": "ADE_train_00020146.jpg", "width": 683, "id": 20145, "height": 512}, {"file_name": "ADE_train_00020147.jpg", "width": 480, "id": 20146, "height": 640}, {"file_name": "ADE_train_00020148.jpg", "width": 844, "id": 20147, "height": 512}, {"file_name": "ADE_train_00020149.jpg", "width": 200, "id": 20148, "height": 301}, {"file_name": "ADE_train_00020150.jpg", "width": 500, "id": 20149, "height": 333}, {"file_name": "ADE_train_00020151.jpg", "width": 319, "id": 20150, "height": 235}, {"file_name": "ADE_train_00020152.jpg", "width": 294, "id": 20151, "height": 221}, {"file_name": "ADE_train_00020153.jpg", "width": 500, "id": 20152, "height": 332}, {"file_name": "ADE_train_00020154.jpg", "width": 512, "id": 20153, "height": 683}, {"file_name": "ADE_train_00020155.jpg", "width": 683, "id": 20154, "height": 512}, {"file_name": "ADE_train_00020156.jpg", "width": 257, "id": 20155, "height": 226}, {"file_name": "ADE_train_00020157.jpg", "width": 683, "id": 20156, "height": 512}, {"file_name": "ADE_train_00020158.jpg", "width": 344, "id": 20157, "height": 258}, {"file_name": "ADE_train_00020159.jpg", "width": 512, "id": 20158, "height": 683}, {"file_name": "ADE_train_00020160.jpg", "width": 683, "id": 20159, "height": 512}, {"file_name": "ADE_train_00020161.jpg", "width": 280, "id": 20160, "height": 213}, {"file_name": "ADE_train_00020162.jpg", "width": 765, "id": 20161, "height": 512}, {"file_name": "ADE_train_00020163.jpg", "width": 683, "id": 20162, "height": 512}, {"file_name": "ADE_train_00020164.jpg", "width": 512, "id": 20163, "height": 683}, {"file_name": "ADE_train_00020165.jpg", "width": 512, "id": 20164, "height": 768}, {"file_name": "ADE_train_00020166.jpg", "width": 768, "id": 20165, "height": 512}, {"file_name": "ADE_train_00020167.jpg", "width": 300, "id": 20166, "height": 225}, {"file_name": "ADE_train_00020168.jpg", "width": 346, "id": 20167, "height": 260}, {"file_name": "ADE_train_00020169.jpg", "width": 300, "id": 20168, "height": 224}, {"file_name": "ADE_train_00020170.jpg", "width": 683, "id": 20169, "height": 512}, {"file_name": "ADE_train_00020171.jpg", "width": 683, "id": 20170, "height": 512}, {"file_name": "ADE_train_00020172.jpg", "width": 683, "id": 20171, "height": 512}, {"file_name": "ADE_train_00020173.jpg", "width": 683, "id": 20172, "height": 512}, {"file_name": "ADE_train_00020174.jpg", "width": 683, "id": 20173, "height": 512}, {"file_name": "ADE_train_00020175.jpg", "width": 720, "id": 20174, "height": 512}, {"file_name": "ADE_train_00020176.jpg", "width": 640, "id": 20175, "height": 512}, {"file_name": "ADE_train_00020177.jpg", "width": 683, "id": 20176, "height": 512}, {"file_name": "ADE_train_00020178.jpg", "width": 512, "id": 20177, "height": 768}, {"file_name": "ADE_train_00020179.jpg", "width": 683, "id": 20178, "height": 512}, {"file_name": "ADE_train_00020180.jpg", "width": 512, "id": 20179, "height": 683}, {"file_name": "ADE_train_00020181.jpg", "width": 512, "id": 20180, "height": 683}, {"file_name": "ADE_train_00020182.jpg", "width": 683, "id": 20181, "height": 512}, {"file_name": "ADE_train_00020183.jpg", "width": 350, "id": 20182, "height": 255}, {"file_name": "ADE_train_00020184.jpg", "width": 360, "id": 20183, "height": 240}, {"file_name": "ADE_train_00020185.jpg", "width": 360, "id": 20184, "height": 239}, {"file_name": "ADE_train_00020186.jpg", "width": 360, "id": 20185, "height": 239}, {"file_name": "ADE_train_00020187.jpg", "width": 360, "id": 20186, "height": 240}, {"file_name": "ADE_train_00020188.jpg", "width": 360, "id": 20187, "height": 270}, {"file_name": "ADE_train_00020189.jpg", "width": 300, "id": 20188, "height": 225}, {"file_name": "ADE_train_00020190.jpg", "width": 683, "id": 20189, "height": 512}, {"file_name": "ADE_train_00020191.jpg", "width": 512, "id": 20190, "height": 757}, {"file_name": "ADE_train_00020192.jpg", "width": 683, "id": 20191, "height": 512}, {"file_name": "ADE_train_00020193.jpg", "width": 683, "id": 20192, "height": 512}, {"file_name": "ADE_train_00020194.jpg", "width": 512, "id": 20193, "height": 683}, {"file_name": "ADE_train_00020195.jpg", "width": 760, "id": 20194, "height": 512}, {"file_name": "ADE_train_00020196.jpg", "width": 683, "id": 20195, "height": 512}, {"file_name": "ADE_train_00020197.jpg", "width": 683, "id": 20196, "height": 512}, {"file_name": "ADE_train_00020198.jpg", "width": 684, "id": 20197, "height": 512}, {"file_name": "ADE_train_00020199.jpg", "width": 648, "id": 20198, "height": 486}, {"file_name": "ADE_train_00020200.jpg", "width": 496, "id": 20199, "height": 277}, {"file_name": "ADE_train_00020201.jpg", "width": 600, "id": 20200, "height": 450}, {"file_name": "ADE_train_00020202.jpg", "width": 600, "id": 20201, "height": 434}, {"file_name": "ADE_train_00020203.jpg", "width": 683, "id": 20202, "height": 512}, {"file_name": "ADE_train_00020204.jpg", "width": 450, "id": 20203, "height": 236}, {"file_name": "ADE_train_00020205.jpg", "width": 539, "id": 20204, "height": 512}, {"file_name": "ADE_train_00020206.jpg", "width": 770, "id": 20205, "height": 512}, {"file_name": "ADE_train_00020207.jpg", "width": 512, "id": 20206, "height": 569}, {"file_name": "ADE_train_00020208.jpg", "width": 683, "id": 20207, "height": 512}, {"file_name": "ADE_train_00020209.jpg", "width": 797, "id": 20208, "height": 512}, {"file_name": "ADE_train_00020210.jpg", "width": 512, "id": 20209, "height": 683}, {"file_name": "ADE_val_00000001.jpg", "width": 683, "id": 20210, "height": 512}, {"file_name": "ADE_val_00000002.jpg", "width": 500, "id": 20211, "height": 364}, {"file_name": "ADE_val_00000003.jpg", "width": 400, "id": 20212, "height": 300}, {"file_name": "ADE_val_00000004.jpg", "width": 683, "id": 20213, "height": 512}, {"file_name": "ADE_val_00000005.jpg", "width": 400, "id": 20214, "height": 300}, {"file_name": "ADE_val_00000006.jpg", "width": 683, "id": 20215, "height": 512}, {"file_name": "ADE_val_00000007.jpg", "width": 500, "id": 20216, "height": 342}, {"file_name": "ADE_val_00000008.jpg", "width": 375, "id": 20217, "height": 500}, {"file_name": "ADE_val_00000009.jpg", "width": 768, "id": 20218, "height": 512}, {"file_name": "ADE_val_00000010.jpg", "width": 500, "id": 20219, "height": 345}, {"file_name": "ADE_val_00000011.jpg", "width": 478, "id": 20220, "height": 320}, {"file_name": "ADE_val_00000012.jpg", "width": 568, "id": 20221, "height": 400}, {"file_name": "ADE_val_00000013.jpg", "width": 430, "id": 20222, "height": 430}, {"file_name": "ADE_val_00000014.jpg", "width": 683, "id": 20223, "height": 512}, {"file_name": "ADE_val_00000015.jpg", "width": 512, "id": 20224, "height": 682}, {"file_name": "ADE_val_00000016.jpg", "width": 480, "id": 20225, "height": 640}, {"file_name": "ADE_val_00000017.jpg", "width": 204, "id": 20226, "height": 380}, {"file_name": "ADE_val_00000018.jpg", "width": 320, "id": 20227, "height": 240}, {"file_name": "ADE_val_00000019.jpg", "width": 600, "id": 20228, "height": 402}, {"file_name": "ADE_val_00000020.jpg", "width": 256, "id": 20229, "height": 256}, {"file_name": "ADE_val_00000021.jpg", "width": 683, "id": 20230, "height": 512}, {"file_name": "ADE_val_00000022.jpg", "width": 400, "id": 20231, "height": 365}, {"file_name": "ADE_val_00000023.jpg", "width": 267, "id": 20232, "height": 400}, {"file_name": "ADE_val_00000024.jpg", "width": 683, "id": 20233, "height": 512}, {"file_name": "ADE_val_00000025.jpg", "width": 256, "id": 20234, "height": 256}, {"file_name": "ADE_val_00000026.jpg", "width": 500, "id": 20235, "height": 346}, {"file_name": "ADE_val_00000027.jpg", "width": 527, "id": 20236, "height": 512}, {"file_name": "ADE_val_00000028.jpg", "width": 512, "id": 20237, "height": 767}, {"file_name": "ADE_val_00000029.jpg", "width": 324, "id": 20238, "height": 335}, {"file_name": "ADE_val_00000030.jpg", "width": 683, "id": 20239, "height": 512}, {"file_name": "ADE_val_00000031.jpg", "width": 683, "id": 20240, "height": 512}, {"file_name": "ADE_val_00000032.jpg", "width": 683, "id": 20241, "height": 512}, {"file_name": "ADE_val_00000033.jpg", "width": 320, "id": 20242, "height": 240}, {"file_name": "ADE_val_00000034.jpg", "width": 758, "id": 20243, "height": 512}, {"file_name": "ADE_val_00000035.jpg", "width": 916, "id": 20244, "height": 512}, {"file_name": "ADE_val_00000036.jpg", "width": 400, "id": 20245, "height": 400}, {"file_name": "ADE_val_00000037.jpg", "width": 283, "id": 20246, "height": 397}, {"file_name": "ADE_val_00000038.jpg", "width": 333, "id": 20247, "height": 214}, {"file_name": "ADE_val_00000039.jpg", "width": 316, "id": 20248, "height": 466}, {"file_name": "ADE_val_00000040.jpg", "width": 512, "id": 20249, "height": 683}, {"file_name": "ADE_val_00000041.jpg", "width": 640, "id": 20250, "height": 427}, {"file_name": "ADE_val_00000042.jpg", "width": 257, "id": 20251, "height": 199}, {"file_name": "ADE_val_00000043.jpg", "width": 430, "id": 20252, "height": 296}, {"file_name": "ADE_val_00000044.jpg", "width": 765, "id": 20253, "height": 512}, {"file_name": "ADE_val_00000045.jpg", "width": 683, "id": 20254, "height": 512}, {"file_name": "ADE_val_00000046.jpg", "width": 500, "id": 20255, "height": 375}, {"file_name": "ADE_val_00000047.jpg", "width": 683, "id": 20256, "height": 512}, {"file_name": "ADE_val_00000048.jpg", "width": 768, "id": 20257, "height": 512}, {"file_name": "ADE_val_00000049.jpg", "width": 683, "id": 20258, "height": 512}, {"file_name": "ADE_val_00000050.jpg", "width": 560, "id": 20259, "height": 300}, {"file_name": "ADE_val_00000051.jpg", "width": 640, "id": 20260, "height": 480}, {"file_name": "ADE_val_00000052.jpg", "width": 683, "id": 20261, "height": 512}, {"file_name": "ADE_val_00000053.jpg", "width": 768, "id": 20262, "height": 512}, {"file_name": "ADE_val_00000054.jpg", "width": 512, "id": 20263, "height": 683}, {"file_name": "ADE_val_00000055.jpg", "width": 680, "id": 20264, "height": 512}, {"file_name": "ADE_val_00000056.jpg", "width": 683, "id": 20265, "height": 512}, {"file_name": "ADE_val_00000057.jpg", "width": 641, "id": 20266, "height": 512}, {"file_name": "ADE_val_00000058.jpg", "width": 375, "id": 20267, "height": 500}, {"file_name": "ADE_val_00000059.jpg", "width": 500, "id": 20268, "height": 375}, {"file_name": "ADE_val_00000060.jpg", "width": 500, "id": 20269, "height": 375}, {"file_name": "ADE_val_00000061.jpg", "width": 350, "id": 20270, "height": 233}, {"file_name": "ADE_val_00000062.jpg", "width": 240, "id": 20271, "height": 320}, {"file_name": "ADE_val_00000063.jpg", "width": 504, "id": 20272, "height": 378}, {"file_name": "ADE_val_00000064.jpg", "width": 600, "id": 20273, "height": 450}, {"file_name": "ADE_val_00000065.jpg", "width": 623, "id": 20274, "height": 481}, {"file_name": "ADE_val_00000066.jpg", "width": 360, "id": 20275, "height": 480}, {"file_name": "ADE_val_00000067.jpg", "width": 270, "id": 20276, "height": 360}, {"file_name": "ADE_val_00000068.jpg", "width": 580, "id": 20277, "height": 435}, {"file_name": "ADE_val_00000069.jpg", "width": 252, "id": 20278, "height": 222}, {"file_name": "ADE_val_00000070.jpg", "width": 200, "id": 20279, "height": 300}, {"file_name": "ADE_val_00000071.jpg", "width": 220, "id": 20280, "height": 290}, {"file_name": "ADE_val_00000072.jpg", "width": 693, "id": 20281, "height": 512}, {"file_name": "ADE_val_00000073.jpg", "width": 640, "id": 20282, "height": 480}, {"file_name": "ADE_val_00000074.jpg", "width": 640, "id": 20283, "height": 480}, {"file_name": "ADE_val_00000075.jpg", "width": 683, "id": 20284, "height": 512}, {"file_name": "ADE_val_00000076.jpg", "width": 683, "id": 20285, "height": 512}, {"file_name": "ADE_val_00000077.jpg", "width": 400, "id": 20286, "height": 600}, {"file_name": "ADE_val_00000078.jpg", "width": 512, "id": 20287, "height": 683}, {"file_name": "ADE_val_00000079.jpg", "width": 765, "id": 20288, "height": 512}, {"file_name": "ADE_val_00000080.jpg", "width": 239, "id": 20289, "height": 320}, {"file_name": "ADE_val_00000081.jpg", "width": 512, "id": 20290, "height": 683}, {"file_name": "ADE_val_00000082.jpg", "width": 256, "id": 20291, "height": 256}, {"file_name": "ADE_val_00000083.jpg", "width": 768, "id": 20292, "height": 512}, {"file_name": "ADE_val_00000084.jpg", "width": 683, "id": 20293, "height": 512}, {"file_name": "ADE_val_00000085.jpg", "width": 300, "id": 20294, "height": 300}, {"file_name": "ADE_val_00000086.jpg", "width": 294, "id": 20295, "height": 294}, {"file_name": "ADE_val_00000087.jpg", "width": 658, "id": 20296, "height": 512}, {"file_name": "ADE_val_00000088.jpg", "width": 233, "id": 20297, "height": 300}, {"file_name": "ADE_val_00000089.jpg", "width": 300, "id": 20298, "height": 225}, {"file_name": "ADE_val_00000090.jpg", "width": 282, "id": 20299, "height": 512}, {"file_name": "ADE_val_00000091.jpg", "width": 512, "id": 20300, "height": 771}, {"file_name": "ADE_val_00000092.jpg", "width": 683, "id": 20301, "height": 512}, {"file_name": "ADE_val_00000093.jpg", "width": 512, "id": 20302, "height": 683}, {"file_name": "ADE_val_00000094.jpg", "width": 512, "id": 20303, "height": 763}, {"file_name": "ADE_val_00000095.jpg", "width": 298, "id": 20304, "height": 449}, {"file_name": "ADE_val_00000096.jpg", "width": 683, "id": 20305, "height": 512}, {"file_name": "ADE_val_00000097.jpg", "width": 512, "id": 20306, "height": 768}, {"file_name": "ADE_val_00000098.jpg", "width": 683, "id": 20307, "height": 512}, {"file_name": "ADE_val_00000099.jpg", "width": 683, "id": 20308, "height": 512}, {"file_name": "ADE_val_00000100.jpg", "width": 512, "id": 20309, "height": 689}, {"file_name": "ADE_val_00000101.jpg", "width": 512, "id": 20310, "height": 781}, {"file_name": "ADE_val_00000102.jpg", "width": 400, "id": 20311, "height": 600}, {"file_name": "ADE_val_00000103.jpg", "width": 683, "id": 20312, "height": 512}, {"file_name": "ADE_val_00000104.jpg", "width": 512, "id": 20313, "height": 767}, {"file_name": "ADE_val_00000105.jpg", "width": 710, "id": 20314, "height": 512}, {"file_name": "ADE_val_00000106.jpg", "width": 256, "id": 20315, "height": 256}, {"file_name": "ADE_val_00000107.jpg", "width": 688, "id": 20316, "height": 512}, {"file_name": "ADE_val_00000108.jpg", "width": 256, "id": 20317, "height": 256}, {"file_name": "ADE_val_00000109.jpg", "width": 768, "id": 20318, "height": 512}, {"file_name": "ADE_val_00000110.jpg", "width": 346, "id": 20319, "height": 231}, {"file_name": "ADE_val_00000111.jpg", "width": 768, "id": 20320, "height": 512}, {"file_name": "ADE_val_00000112.jpg", "width": 256, "id": 20321, "height": 256}, {"file_name": "ADE_val_00000113.jpg", "width": 256, "id": 20322, "height": 256}, {"file_name": "ADE_val_00000114.jpg", "width": 256, "id": 20323, "height": 256}, {"file_name": "ADE_val_00000115.jpg", "width": 600, "id": 20324, "height": 450}, {"file_name": "ADE_val_00000116.jpg", "width": 273, "id": 20325, "height": 204}, {"file_name": "ADE_val_00000117.jpg", "width": 683, "id": 20326, "height": 512}, {"file_name": "ADE_val_00000118.jpg", "width": 725, "id": 20327, "height": 512}, {"file_name": "ADE_val_00000119.jpg", "width": 683, "id": 20328, "height": 512}, {"file_name": "ADE_val_00000120.jpg", "width": 683, "id": 20329, "height": 512}, {"file_name": "ADE_val_00000121.jpg", "width": 768, "id": 20330, "height": 512}, {"file_name": "ADE_val_00000122.jpg", "width": 683, "id": 20331, "height": 512}, {"file_name": "ADE_val_00000123.jpg", "width": 256, "id": 20332, "height": 256}, {"file_name": "ADE_val_00000124.jpg", "width": 683, "id": 20333, "height": 512}, {"file_name": "ADE_val_00000125.jpg", "width": 768, "id": 20334, "height": 512}, {"file_name": "ADE_val_00000126.jpg", "width": 683, "id": 20335, "height": 512}, {"file_name": "ADE_val_00000127.jpg", "width": 785, "id": 20336, "height": 512}, {"file_name": "ADE_val_00000128.jpg", "width": 683, "id": 20337, "height": 512}, {"file_name": "ADE_val_00000129.jpg", "width": 750, "id": 20338, "height": 496}, {"file_name": "ADE_val_00000130.jpg", "width": 769, "id": 20339, "height": 512}, {"file_name": "ADE_val_00000131.jpg", "width": 256, "id": 20340, "height": 256}, {"file_name": "ADE_val_00000132.jpg", "width": 769, "id": 20341, "height": 512}, {"file_name": "ADE_val_00000133.jpg", "width": 512, "id": 20342, "height": 682}, {"file_name": "ADE_val_00000134.jpg", "width": 683, "id": 20343, "height": 512}, {"file_name": "ADE_val_00000135.jpg", "width": 773, "id": 20344, "height": 512}, {"file_name": "ADE_val_00000136.jpg", "width": 256, "id": 20345, "height": 256}, {"file_name": "ADE_val_00000137.jpg", "width": 450, "id": 20346, "height": 300}, {"file_name": "ADE_val_00000138.jpg", "width": 512, "id": 20347, "height": 768}, {"file_name": "ADE_val_00000139.jpg", "width": 750, "id": 20348, "height": 495}, {"file_name": "ADE_val_00000140.jpg", "width": 640, "id": 20349, "height": 480}, {"file_name": "ADE_val_00000141.jpg", "width": 760, "id": 20350, "height": 512}, {"file_name": "ADE_val_00000142.jpg", "width": 256, "id": 20351, "height": 256}, {"file_name": "ADE_val_00000143.jpg", "width": 771, "id": 20352, "height": 512}, {"file_name": "ADE_val_00000144.jpg", "width": 768, "id": 20353, "height": 512}, {"file_name": "ADE_val_00000145.jpg", "width": 240, "id": 20354, "height": 320}, {"file_name": "ADE_val_00000146.jpg", "width": 768, "id": 20355, "height": 512}, {"file_name": "ADE_val_00000147.jpg", "width": 782, "id": 20356, "height": 512}, {"file_name": "ADE_val_00000148.jpg", "width": 300, "id": 20357, "height": 225}, {"file_name": "ADE_val_00000149.jpg", "width": 683, "id": 20358, "height": 512}, {"file_name": "ADE_val_00000150.jpg", "width": 683, "id": 20359, "height": 512}, {"file_name": "ADE_val_00000151.jpg", "width": 683, "id": 20360, "height": 512}, {"file_name": "ADE_val_00000152.jpg", "width": 256, "id": 20361, "height": 256}, {"file_name": "ADE_val_00000153.jpg", "width": 1128, "id": 20362, "height": 512}, {"file_name": "ADE_val_00000154.jpg", "width": 683, "id": 20363, "height": 512}, {"file_name": "ADE_val_00000155.jpg", "width": 338, "id": 20364, "height": 254}, {"file_name": "ADE_val_00000156.jpg", "width": 928, "id": 20365, "height": 512}, {"file_name": "ADE_val_00000157.jpg", "width": 683, "id": 20366, "height": 512}, {"file_name": "ADE_val_00000158.jpg", "width": 640, "id": 20367, "height": 480}, {"file_name": "ADE_val_00000159.jpg", "width": 300, "id": 20368, "height": 225}, {"file_name": "ADE_val_00000160.jpg", "width": 757, "id": 20369, "height": 512}, {"file_name": "ADE_val_00000161.jpg", "width": 740, "id": 20370, "height": 512}, {"file_name": "ADE_val_00000162.jpg", "width": 256, "id": 20371, "height": 256}, {"file_name": "ADE_val_00000163.jpg", "width": 640, "id": 20372, "height": 426}, {"file_name": "ADE_val_00000164.jpg", "width": 683, "id": 20373, "height": 512}, {"file_name": "ADE_val_00000165.jpg", "width": 631, "id": 20374, "height": 512}, {"file_name": "ADE_val_00000166.jpg", "width": 683, "id": 20375, "height": 512}, {"file_name": "ADE_val_00000167.jpg", "width": 256, "id": 20376, "height": 256}, {"file_name": "ADE_val_00000168.jpg", "width": 747, "id": 20377, "height": 512}, {"file_name": "ADE_val_00000169.jpg", "width": 640, "id": 20378, "height": 427}, {"file_name": "ADE_val_00000170.jpg", "width": 768, "id": 20379, "height": 512}, {"file_name": "ADE_val_00000171.jpg", "width": 640, "id": 20380, "height": 428}, {"file_name": "ADE_val_00000172.jpg", "width": 683, "id": 20381, "height": 512}, {"file_name": "ADE_val_00000173.jpg", "width": 640, "id": 20382, "height": 480}, {"file_name": "ADE_val_00000174.jpg", "width": 640, "id": 20383, "height": 512}, {"file_name": "ADE_val_00000175.jpg", "width": 512, "id": 20384, "height": 683}, {"file_name": "ADE_val_00000176.jpg", "width": 744, "id": 20385, "height": 512}, {"file_name": "ADE_val_00000177.jpg", "width": 512, "id": 20386, "height": 683}, {"file_name": "ADE_val_00000178.jpg", "width": 683, "id": 20387, "height": 512}, {"file_name": "ADE_val_00000179.jpg", "width": 683, "id": 20388, "height": 512}, {"file_name": "ADE_val_00000180.jpg", "width": 683, "id": 20389, "height": 512}, {"file_name": "ADE_val_00000181.jpg", "width": 256, "id": 20390, "height": 256}, {"file_name": "ADE_val_00000182.jpg", "width": 802, "id": 20391, "height": 512}, {"file_name": "ADE_val_00000183.jpg", "width": 683, "id": 20392, "height": 512}, {"file_name": "ADE_val_00000184.jpg", "width": 512, "id": 20393, "height": 770}, {"file_name": "ADE_val_00000185.jpg", "width": 683, "id": 20394, "height": 512}, {"file_name": "ADE_val_00000186.jpg", "width": 240, "id": 20395, "height": 180}, {"file_name": "ADE_val_00000187.jpg", "width": 290, "id": 20396, "height": 255}, {"file_name": "ADE_val_00000188.jpg", "width": 300, "id": 20397, "height": 214}, {"file_name": "ADE_val_00000189.jpg", "width": 300, "id": 20398, "height": 207}, {"file_name": "ADE_val_00000190.jpg", "width": 565, "id": 20399, "height": 309}, {"file_name": "ADE_val_00000191.jpg", "width": 228, "id": 20400, "height": 233}, {"file_name": "ADE_val_00000192.jpg", "width": 400, "id": 20401, "height": 300}, {"file_name": "ADE_val_00000193.jpg", "width": 530, "id": 20402, "height": 360}, {"file_name": "ADE_val_00000194.jpg", "width": 512, "id": 20403, "height": 683}, {"file_name": "ADE_val_00000195.jpg", "width": 616, "id": 20404, "height": 462}, {"file_name": "ADE_val_00000196.jpg", "width": 640, "id": 20405, "height": 480}, {"file_name": "ADE_val_00000197.jpg", "width": 640, "id": 20406, "height": 480}, {"file_name": "ADE_val_00000198.jpg", "width": 914, "id": 20407, "height": 512}, {"file_name": "ADE_val_00000199.jpg", "width": 350, "id": 20408, "height": 233}, {"file_name": "ADE_val_00000200.jpg", "width": 256, "id": 20409, "height": 256}, {"file_name": "ADE_val_00000201.jpg", "width": 1243, "id": 20410, "height": 512}, {"file_name": "ADE_val_00000202.jpg", "width": 256, "id": 20411, "height": 256}, {"file_name": "ADE_val_00000203.jpg", "width": 256, "id": 20412, "height": 256}, {"file_name": "ADE_val_00000204.jpg", "width": 256, "id": 20413, "height": 256}, {"file_name": "ADE_val_00000205.jpg", "width": 256, "id": 20414, "height": 256}, {"file_name": "ADE_val_00000206.jpg", "width": 256, "id": 20415, "height": 256}, {"file_name": "ADE_val_00000207.jpg", "width": 256, "id": 20416, "height": 256}, {"file_name": "ADE_val_00000208.jpg", "width": 256, "id": 20417, "height": 256}, {"file_name": "ADE_val_00000209.jpg", "width": 256, "id": 20418, "height": 256}, {"file_name": "ADE_val_00000210.jpg", "width": 256, "id": 20419, "height": 256}, {"file_name": "ADE_val_00000211.jpg", "width": 256, "id": 20420, "height": 256}, {"file_name": "ADE_val_00000212.jpg", "width": 256, "id": 20421, "height": 256}, {"file_name": "ADE_val_00000213.jpg", "width": 256, "id": 20422, "height": 256}, {"file_name": "ADE_val_00000214.jpg", "width": 280, "id": 20423, "height": 227}, {"file_name": "ADE_val_00000215.jpg", "width": 694, "id": 20424, "height": 390}, {"file_name": "ADE_val_00000216.jpg", "width": 450, "id": 20425, "height": 600}, {"file_name": "ADE_val_00000217.jpg", "width": 794, "id": 20426, "height": 512}, {"file_name": "ADE_val_00000218.jpg", "width": 500, "id": 20427, "height": 430}, {"file_name": "ADE_val_00000219.jpg", "width": 300, "id": 20428, "height": 240}, {"file_name": "ADE_val_00000220.jpg", "width": 286, "id": 20429, "height": 254}, {"file_name": "ADE_val_00000221.jpg", "width": 640, "id": 20430, "height": 426}, {"file_name": "ADE_val_00000222.jpg", "width": 302, "id": 20431, "height": 402}, {"file_name": "ADE_val_00000223.jpg", "width": 512, "id": 20432, "height": 683}, {"file_name": "ADE_val_00000224.jpg", "width": 256, "id": 20433, "height": 256}, {"file_name": "ADE_val_00000225.jpg", "width": 683, "id": 20434, "height": 512}, {"file_name": "ADE_val_00000226.jpg", "width": 648, "id": 20435, "height": 441}, {"file_name": "ADE_val_00000227.jpg", "width": 640, "id": 20436, "height": 491}, {"file_name": "ADE_val_00000228.jpg", "width": 300, "id": 20437, "height": 225}, {"file_name": "ADE_val_00000229.jpg", "width": 512, "id": 20438, "height": 756}, {"file_name": "ADE_val_00000230.jpg", "width": 400, "id": 20439, "height": 266}, {"file_name": "ADE_val_00000231.jpg", "width": 400, "id": 20440, "height": 300}, {"file_name": "ADE_val_00000232.jpg", "width": 300, "id": 20441, "height": 225}, {"file_name": "ADE_val_00000233.jpg", "width": 512, "id": 20442, "height": 740}, {"file_name": "ADE_val_00000234.jpg", "width": 1170, "id": 20443, "height": 512}, {"file_name": "ADE_val_00000235.jpg", "width": 350, "id": 20444, "height": 467}, {"file_name": "ADE_val_00000236.jpg", "width": 533, "id": 20445, "height": 400}, {"file_name": "ADE_val_00000237.jpg", "width": 512, "id": 20446, "height": 754}, {"file_name": "ADE_val_00000238.jpg", "width": 540, "id": 20447, "height": 405}, {"file_name": "ADE_val_00000239.jpg", "width": 600, "id": 20448, "height": 400}, {"file_name": "ADE_val_00000240.jpg", "width": 512, "id": 20449, "height": 605}, {"file_name": "ADE_val_00000241.jpg", "width": 533, "id": 20450, "height": 400}, {"file_name": "ADE_val_00000242.jpg", "width": 384, "id": 20451, "height": 257}, {"file_name": "ADE_val_00000243.jpg", "width": 683, "id": 20452, "height": 512}, {"file_name": "ADE_val_00000244.jpg", "width": 569, "id": 20453, "height": 512}, {"file_name": "ADE_val_00000245.jpg", "width": 632, "id": 20454, "height": 512}, {"file_name": "ADE_val_00000246.jpg", "width": 690, "id": 20455, "height": 455}, {"file_name": "ADE_val_00000247.jpg", "width": 350, "id": 20456, "height": 232}, {"file_name": "ADE_val_00000248.jpg", "width": 256, "id": 20457, "height": 256}, {"file_name": "ADE_val_00000249.jpg", "width": 683, "id": 20458, "height": 512}, {"file_name": "ADE_val_00000250.jpg", "width": 472, "id": 20459, "height": 352}, {"file_name": "ADE_val_00000251.jpg", "width": 768, "id": 20460, "height": 512}, {"file_name": "ADE_val_00000252.jpg", "width": 300, "id": 20461, "height": 222}, {"file_name": "ADE_val_00000253.jpg", "width": 636, "id": 20462, "height": 512}, {"file_name": "ADE_val_00000254.jpg", "width": 256, "id": 20463, "height": 256}, {"file_name": "ADE_val_00000255.jpg", "width": 420, "id": 20464, "height": 325}, {"file_name": "ADE_val_00000256.jpg", "width": 512, "id": 20465, "height": 683}, {"file_name": "ADE_val_00000257.jpg", "width": 493, "id": 20466, "height": 375}, {"file_name": "ADE_val_00000258.jpg", "width": 800, "id": 20467, "height": 488}, {"file_name": "ADE_val_00000259.jpg", "width": 256, "id": 20468, "height": 256}, {"file_name": "ADE_val_00000260.jpg", "width": 256, "id": 20469, "height": 256}, {"file_name": "ADE_val_00000261.jpg", "width": 256, "id": 20470, "height": 256}, {"file_name": "ADE_val_00000262.jpg", "width": 256, "id": 20471, "height": 256}, {"file_name": "ADE_val_00000263.jpg", "width": 683, "id": 20472, "height": 512}, {"file_name": "ADE_val_00000264.jpg", "width": 683, "id": 20473, "height": 512}, {"file_name": "ADE_val_00000265.jpg", "width": 648, "id": 20474, "height": 486}, {"file_name": "ADE_val_00000266.jpg", "width": 683, "id": 20475, "height": 512}, {"file_name": "ADE_val_00000267.jpg", "width": 768, "id": 20476, "height": 512}, {"file_name": "ADE_val_00000268.jpg", "width": 683, "id": 20477, "height": 512}, {"file_name": "ADE_val_00000269.jpg", "width": 256, "id": 20478, "height": 256}, {"file_name": "ADE_val_00000270.jpg", "width": 410, "id": 20479, "height": 327}, {"file_name": "ADE_val_00000271.jpg", "width": 256, "id": 20480, "height": 256}, {"file_name": "ADE_val_00000272.jpg", "width": 512, "id": 20481, "height": 684}, {"file_name": "ADE_val_00000273.jpg", "width": 768, "id": 20482, "height": 512}, {"file_name": "ADE_val_00000274.jpg", "width": 684, "id": 20483, "height": 512}, {"file_name": "ADE_val_00000275.jpg", "width": 683, "id": 20484, "height": 512}, {"file_name": "ADE_val_00000276.jpg", "width": 525, "id": 20485, "height": 394}, {"file_name": "ADE_val_00000277.jpg", "width": 500, "id": 20486, "height": 462}, {"file_name": "ADE_val_00000278.jpg", "width": 739, "id": 20487, "height": 512}, {"file_name": "ADE_val_00000279.jpg", "width": 432, "id": 20488, "height": 576}, {"file_name": "ADE_val_00000280.jpg", "width": 683, "id": 20489, "height": 512}, {"file_name": "ADE_val_00000281.jpg", "width": 257, "id": 20490, "height": 256}, {"file_name": "ADE_val_00000282.jpg", "width": 683, "id": 20491, "height": 512}, {"file_name": "ADE_val_00000283.jpg", "width": 683, "id": 20492, "height": 512}, {"file_name": "ADE_val_00000284.jpg", "width": 683, "id": 20493, "height": 512}, {"file_name": "ADE_val_00000285.jpg", "width": 512, "id": 20494, "height": 683}, {"file_name": "ADE_val_00000286.jpg", "width": 906, "id": 20495, "height": 512}, {"file_name": "ADE_val_00000287.jpg", "width": 480, "id": 20496, "height": 640}, {"file_name": "ADE_val_00000288.jpg", "width": 683, "id": 20497, "height": 512}, {"file_name": "ADE_val_00000289.jpg", "width": 212, "id": 20498, "height": 189}, {"file_name": "ADE_val_00000290.jpg", "width": 509, "id": 20499, "height": 426}, {"file_name": "ADE_val_00000291.jpg", "width": 739, "id": 20500, "height": 512}, {"file_name": "ADE_val_00000292.jpg", "width": 683, "id": 20501, "height": 512}, {"file_name": "ADE_val_00000293.jpg", "width": 512, "id": 20502, "height": 683}, {"file_name": "ADE_val_00000294.jpg", "width": 600, "id": 20503, "height": 450}, {"file_name": "ADE_val_00000295.jpg", "width": 683, "id": 20504, "height": 512}, {"file_name": "ADE_val_00000296.jpg", "width": 683, "id": 20505, "height": 512}, {"file_name": "ADE_val_00000297.jpg", "width": 500, "id": 20506, "height": 375}, {"file_name": "ADE_val_00000298.jpg", "width": 886, "id": 20507, "height": 500}, {"file_name": "ADE_val_00000299.jpg", "width": 768, "id": 20508, "height": 512}, {"file_name": "ADE_val_00000300.jpg", "width": 470, "id": 20509, "height": 470}, {"file_name": "ADE_val_00000301.jpg", "width": 683, "id": 20510, "height": 512}, {"file_name": "ADE_val_00000302.jpg", "width": 378, "id": 20511, "height": 234}, {"file_name": "ADE_val_00000303.jpg", "width": 512, "id": 20512, "height": 682}, {"file_name": "ADE_val_00000304.jpg", "width": 674, "id": 20513, "height": 512}, {"file_name": "ADE_val_00000305.jpg", "width": 683, "id": 20514, "height": 512}, {"file_name": "ADE_val_00000306.jpg", "width": 848, "id": 20515, "height": 512}, {"file_name": "ADE_val_00000307.jpg", "width": 256, "id": 20516, "height": 256}, {"file_name": "ADE_val_00000308.jpg", "width": 365, "id": 20517, "height": 365}, {"file_name": "ADE_val_00000309.jpg", "width": 480, "id": 20518, "height": 640}, {"file_name": "ADE_val_00000310.jpg", "width": 662, "id": 20519, "height": 512}, {"file_name": "ADE_val_00000311.jpg", "width": 612, "id": 20520, "height": 512}, {"file_name": "ADE_val_00000312.jpg", "width": 512, "id": 20521, "height": 683}, {"file_name": "ADE_val_00000313.jpg", "width": 512, "id": 20522, "height": 529}, {"file_name": "ADE_val_00000314.jpg", "width": 768, "id": 20523, "height": 512}, {"file_name": "ADE_val_00000315.jpg", "width": 683, "id": 20524, "height": 512}, {"file_name": "ADE_val_00000316.jpg", "width": 770, "id": 20525, "height": 512}, {"file_name": "ADE_val_00000317.jpg", "width": 512, "id": 20526, "height": 707}, {"file_name": "ADE_val_00000318.jpg", "width": 768, "id": 20527, "height": 512}, {"file_name": "ADE_val_00000319.jpg", "width": 512, "id": 20528, "height": 545}, {"file_name": "ADE_val_00000320.jpg", "width": 256, "id": 20529, "height": 256}, {"file_name": "ADE_val_00000321.jpg", "width": 768, "id": 20530, "height": 512}, {"file_name": "ADE_val_00000322.jpg", "width": 654, "id": 20531, "height": 512}, {"file_name": "ADE_val_00000323.jpg", "width": 768, "id": 20532, "height": 512}, {"file_name": "ADE_val_00000324.jpg", "width": 683, "id": 20533, "height": 512}, {"file_name": "ADE_val_00000325.jpg", "width": 680, "id": 20534, "height": 512}, {"file_name": "ADE_val_00000326.jpg", "width": 537, "id": 20535, "height": 403}, {"file_name": "ADE_val_00000327.jpg", "width": 512, "id": 20536, "height": 683}, {"file_name": "ADE_val_00000328.jpg", "width": 480, "id": 20537, "height": 640}, {"file_name": "ADE_val_00000329.jpg", "width": 512, "id": 20538, "height": 683}, {"file_name": "ADE_val_00000330.jpg", "width": 200, "id": 20539, "height": 265}, {"file_name": "ADE_val_00000331.jpg", "width": 682, "id": 20540, "height": 512}, {"file_name": "ADE_val_00000332.jpg", "width": 765, "id": 20541, "height": 512}, {"file_name": "ADE_val_00000333.jpg", "width": 400, "id": 20542, "height": 300}, {"file_name": "ADE_val_00000334.jpg", "width": 240, "id": 20543, "height": 320}, {"file_name": "ADE_val_00000335.jpg", "width": 290, "id": 20544, "height": 243}, {"file_name": "ADE_val_00000336.jpg", "width": 500, "id": 20545, "height": 375}, {"file_name": "ADE_val_00000337.jpg", "width": 400, "id": 20546, "height": 711}, {"file_name": "ADE_val_00000338.jpg", "width": 683, "id": 20547, "height": 512}, {"file_name": "ADE_val_00000339.jpg", "width": 308, "id": 20548, "height": 430}, {"file_name": "ADE_val_00000340.jpg", "width": 399, "id": 20549, "height": 600}, {"file_name": "ADE_val_00000341.jpg", "width": 640, "id": 20550, "height": 480}, {"file_name": "ADE_val_00000342.jpg", "width": 683, "id": 20551, "height": 512}, {"file_name": "ADE_val_00000343.jpg", "width": 768, "id": 20552, "height": 512}, {"file_name": "ADE_val_00000344.jpg", "width": 270, "id": 20553, "height": 250}, {"file_name": "ADE_val_00000345.jpg", "width": 683, "id": 20554, "height": 512}, {"file_name": "ADE_val_00000346.jpg", "width": 400, "id": 20555, "height": 280}, {"file_name": "ADE_val_00000347.jpg", "width": 400, "id": 20556, "height": 300}, {"file_name": "ADE_val_00000348.jpg", "width": 683, "id": 20557, "height": 512}, {"file_name": "ADE_val_00000349.jpg", "width": 256, "id": 20558, "height": 256}, {"file_name": "ADE_val_00000350.jpg", "width": 256, "id": 20559, "height": 256}, {"file_name": "ADE_val_00000351.jpg", "width": 256, "id": 20560, "height": 256}, {"file_name": "ADE_val_00000352.jpg", "width": 683, "id": 20561, "height": 512}, {"file_name": "ADE_val_00000353.jpg", "width": 765, "id": 20562, "height": 512}, {"file_name": "ADE_val_00000354.jpg", "width": 683, "id": 20563, "height": 512}, {"file_name": "ADE_val_00000355.jpg", "width": 500, "id": 20564, "height": 334}, {"file_name": "ADE_val_00000356.jpg", "width": 512, "id": 20565, "height": 618}, {"file_name": "ADE_val_00000357.jpg", "width": 400, "id": 20566, "height": 266}, {"file_name": "ADE_val_00000358.jpg", "width": 512, "id": 20567, "height": 683}, {"file_name": "ADE_val_00000359.jpg", "width": 300, "id": 20568, "height": 260}, {"file_name": "ADE_val_00000360.jpg", "width": 683, "id": 20569, "height": 512}, {"file_name": "ADE_val_00000361.jpg", "width": 256, "id": 20570, "height": 256}, {"file_name": "ADE_val_00000362.jpg", "width": 256, "id": 20571, "height": 256}, {"file_name": "ADE_val_00000363.jpg", "width": 256, "id": 20572, "height": 256}, {"file_name": "ADE_val_00000364.jpg", "width": 256, "id": 20573, "height": 256}, {"file_name": "ADE_val_00000365.jpg", "width": 256, "id": 20574, "height": 256}, {"file_name": "ADE_val_00000366.jpg", "width": 256, "id": 20575, "height": 256}, {"file_name": "ADE_val_00000367.jpg", "width": 256, "id": 20576, "height": 256}, {"file_name": "ADE_val_00000368.jpg", "width": 361, "id": 20577, "height": 200}, {"file_name": "ADE_val_00000369.jpg", "width": 250, "id": 20578, "height": 375}, {"file_name": "ADE_val_00000370.jpg", "width": 775, "id": 20579, "height": 512}, {"file_name": "ADE_val_00000371.jpg", "width": 683, "id": 20580, "height": 512}, {"file_name": "ADE_val_00000372.jpg", "width": 683, "id": 20581, "height": 512}, {"file_name": "ADE_val_00000373.jpg", "width": 683, "id": 20582, "height": 512}, {"file_name": "ADE_val_00000374.jpg", "width": 686, "id": 20583, "height": 481}, {"file_name": "ADE_val_00000375.jpg", "width": 683, "id": 20584, "height": 512}, {"file_name": "ADE_val_00000376.jpg", "width": 651, "id": 20585, "height": 512}, {"file_name": "ADE_val_00000377.jpg", "width": 771, "id": 20586, "height": 512}, {"file_name": "ADE_val_00000378.jpg", "width": 480, "id": 20587, "height": 640}, {"file_name": "ADE_val_00000379.jpg", "width": 683, "id": 20588, "height": 512}, {"file_name": "ADE_val_00000380.jpg", "width": 300, "id": 20589, "height": 232}, {"file_name": "ADE_val_00000381.jpg", "width": 250, "id": 20590, "height": 188}, {"file_name": "ADE_val_00000382.jpg", "width": 861, "id": 20591, "height": 512}, {"file_name": "ADE_val_00000383.jpg", "width": 300, "id": 20592, "height": 402}, {"file_name": "ADE_val_00000384.jpg", "width": 768, "id": 20593, "height": 512}, {"file_name": "ADE_val_00000385.jpg", "width": 683, "id": 20594, "height": 512}, {"file_name": "ADE_val_00000386.jpg", "width": 683, "id": 20595, "height": 512}, {"file_name": "ADE_val_00000387.jpg", "width": 464, "id": 20596, "height": 285}, {"file_name": "ADE_val_00000388.jpg", "width": 683, "id": 20597, "height": 512}, {"file_name": "ADE_val_00000389.jpg", "width": 683, "id": 20598, "height": 512}, {"file_name": "ADE_val_00000390.jpg", "width": 300, "id": 20599, "height": 225}, {"file_name": "ADE_val_00000391.jpg", "width": 512, "id": 20600, "height": 683}, {"file_name": "ADE_val_00000392.jpg", "width": 640, "id": 20601, "height": 480}, {"file_name": "ADE_val_00000393.jpg", "width": 320, "id": 20602, "height": 240}, {"file_name": "ADE_val_00000394.jpg", "width": 225, "id": 20603, "height": 300}, {"file_name": "ADE_val_00000395.jpg", "width": 500, "id": 20604, "height": 375}, {"file_name": "ADE_val_00000396.jpg", "width": 640, "id": 20605, "height": 480}, {"file_name": "ADE_val_00000397.jpg", "width": 256, "id": 20606, "height": 256}, {"file_name": "ADE_val_00000398.jpg", "width": 450, "id": 20607, "height": 293}, {"file_name": "ADE_val_00000399.jpg", "width": 683, "id": 20608, "height": 512}, {"file_name": "ADE_val_00000400.jpg", "width": 450, "id": 20609, "height": 256}, {"file_name": "ADE_val_00000401.jpg", "width": 257, "id": 20610, "height": 256}, {"file_name": "ADE_val_00000402.jpg", "width": 664, "id": 20611, "height": 512}, {"file_name": "ADE_val_00000403.jpg", "width": 688, "id": 20612, "height": 512}, {"file_name": "ADE_val_00000404.jpg", "width": 683, "id": 20613, "height": 512}, {"file_name": "ADE_val_00000405.jpg", "width": 256, "id": 20614, "height": 256}, {"file_name": "ADE_val_00000406.jpg", "width": 256, "id": 20615, "height": 256}, {"file_name": "ADE_val_00000407.jpg", "width": 256, "id": 20616, "height": 256}, {"file_name": "ADE_val_00000408.jpg", "width": 256, "id": 20617, "height": 256}, {"file_name": "ADE_val_00000409.jpg", "width": 256, "id": 20618, "height": 256}, {"file_name": "ADE_val_00000410.jpg", "width": 256, "id": 20619, "height": 256}, {"file_name": "ADE_val_00000411.jpg", "width": 256, "id": 20620, "height": 256}, {"file_name": "ADE_val_00000412.jpg", "width": 256, "id": 20621, "height": 256}, {"file_name": "ADE_val_00000413.jpg", "width": 256, "id": 20622, "height": 256}, {"file_name": "ADE_val_00000414.jpg", "width": 256, "id": 20623, "height": 256}, {"file_name": "ADE_val_00000415.jpg", "width": 256, "id": 20624, "height": 256}, {"file_name": "ADE_val_00000416.jpg", "width": 256, "id": 20625, "height": 256}, {"file_name": "ADE_val_00000417.jpg", "width": 256, "id": 20626, "height": 256}, {"file_name": "ADE_val_00000418.jpg", "width": 683, "id": 20627, "height": 512}, {"file_name": "ADE_val_00000419.jpg", "width": 256, "id": 20628, "height": 256}, {"file_name": "ADE_val_00000420.jpg", "width": 683, "id": 20629, "height": 512}, {"file_name": "ADE_val_00000421.jpg", "width": 256, "id": 20630, "height": 256}, {"file_name": "ADE_val_00000422.jpg", "width": 683, "id": 20631, "height": 512}, {"file_name": "ADE_val_00000423.jpg", "width": 683, "id": 20632, "height": 512}, {"file_name": "ADE_val_00000424.jpg", "width": 975, "id": 20633, "height": 975}, {"file_name": "ADE_val_00000425.jpg", "width": 684, "id": 20634, "height": 512}, {"file_name": "ADE_val_00000426.jpg", "width": 633, "id": 20635, "height": 416}, {"file_name": "ADE_val_00000427.jpg", "width": 719, "id": 20636, "height": 512}, {"file_name": "ADE_val_00000428.jpg", "width": 598, "id": 20637, "height": 512}, {"file_name": "ADE_val_00000429.jpg", "width": 683, "id": 20638, "height": 512}, {"file_name": "ADE_val_00000430.jpg", "width": 300, "id": 20639, "height": 300}, {"file_name": "ADE_val_00000431.jpg", "width": 352, "id": 20640, "height": 230}, {"file_name": "ADE_val_00000432.jpg", "width": 448, "id": 20641, "height": 299}, {"file_name": "ADE_val_00000433.jpg", "width": 683, "id": 20642, "height": 512}, {"file_name": "ADE_val_00000434.jpg", "width": 683, "id": 20643, "height": 512}, {"file_name": "ADE_val_00000435.jpg", "width": 479, "id": 20644, "height": 319}, {"file_name": "ADE_val_00000436.jpg", "width": 683, "id": 20645, "height": 512}, {"file_name": "ADE_val_00000437.jpg", "width": 683, "id": 20646, "height": 512}, {"file_name": "ADE_val_00000438.jpg", "width": 488, "id": 20647, "height": 325}, {"file_name": "ADE_val_00000439.jpg", "width": 683, "id": 20648, "height": 512}, {"file_name": "ADE_val_00000440.jpg", "width": 580, "id": 20649, "height": 385}, {"file_name": "ADE_val_00000441.jpg", "width": 569, "id": 20650, "height": 386}, {"file_name": "ADE_val_00000442.jpg", "width": 402, "id": 20651, "height": 397}, {"file_name": "ADE_val_00000443.jpg", "width": 256, "id": 20652, "height": 256}, {"file_name": "ADE_val_00000444.jpg", "width": 468, "id": 20653, "height": 352}, {"file_name": "ADE_val_00000445.jpg", "width": 510, "id": 20654, "height": 344}, {"file_name": "ADE_val_00000446.jpg", "width": 683, "id": 20655, "height": 512}, {"file_name": "ADE_val_00000447.jpg", "width": 633, "id": 20656, "height": 512}, {"file_name": "ADE_val_00000448.jpg", "width": 336, "id": 20657, "height": 450}, {"file_name": "ADE_val_00000449.jpg", "width": 256, "id": 20658, "height": 256}, {"file_name": "ADE_val_00000450.jpg", "width": 228, "id": 20659, "height": 211}, {"file_name": "ADE_val_00000451.jpg", "width": 683, "id": 20660, "height": 512}, {"file_name": "ADE_val_00000452.jpg", "width": 319, "id": 20661, "height": 239}, {"file_name": "ADE_val_00000453.jpg", "width": 683, "id": 20662, "height": 512}, {"file_name": "ADE_val_00000454.jpg", "width": 784, "id": 20663, "height": 512}, {"file_name": "ADE_val_00000455.jpg", "width": 683, "id": 20664, "height": 512}, {"file_name": "ADE_val_00000456.jpg", "width": 500, "id": 20665, "height": 375}, {"file_name": "ADE_val_00000457.jpg", "width": 300, "id": 20666, "height": 225}, {"file_name": "ADE_val_00000458.jpg", "width": 683, "id": 20667, "height": 512}, {"file_name": "ADE_val_00000459.jpg", "width": 770, "id": 20668, "height": 512}, {"file_name": "ADE_val_00000460.jpg", "width": 656, "id": 20669, "height": 512}, {"file_name": "ADE_val_00000461.jpg", "width": 683, "id": 20670, "height": 512}, {"file_name": "ADE_val_00000462.jpg", "width": 300, "id": 20671, "height": 225}, {"file_name": "ADE_val_00000463.jpg", "width": 768, "id": 20672, "height": 512}, {"file_name": "ADE_val_00000464.jpg", "width": 640, "id": 20673, "height": 480}, {"file_name": "ADE_val_00000465.jpg", "width": 512, "id": 20674, "height": 571}, {"file_name": "ADE_val_00000466.jpg", "width": 768, "id": 20675, "height": 512}, {"file_name": "ADE_val_00000467.jpg", "width": 683, "id": 20676, "height": 512}, {"file_name": "ADE_val_00000468.jpg", "width": 768, "id": 20677, "height": 512}, {"file_name": "ADE_val_00000469.jpg", "width": 683, "id": 20678, "height": 512}, {"file_name": "ADE_val_00000470.jpg", "width": 683, "id": 20679, "height": 512}, {"file_name": "ADE_val_00000471.jpg", "width": 768, "id": 20680, "height": 512}, {"file_name": "ADE_val_00000472.jpg", "width": 683, "id": 20681, "height": 512}, {"file_name": "ADE_val_00000473.jpg", "width": 739, "id": 20682, "height": 512}, {"file_name": "ADE_val_00000474.jpg", "width": 512, "id": 20683, "height": 683}, {"file_name": "ADE_val_00000475.jpg", "width": 683, "id": 20684, "height": 512}, {"file_name": "ADE_val_00000476.jpg", "width": 512, "id": 20685, "height": 431}, {"file_name": "ADE_val_00000477.jpg", "width": 512, "id": 20686, "height": 361}, {"file_name": "ADE_val_00000478.jpg", "width": 225, "id": 20687, "height": 300}, {"file_name": "ADE_val_00000479.jpg", "width": 683, "id": 20688, "height": 512}, {"file_name": "ADE_val_00000480.jpg", "width": 769, "id": 20689, "height": 512}, {"file_name": "ADE_val_00000481.jpg", "width": 683, "id": 20690, "height": 512}, {"file_name": "ADE_val_00000482.jpg", "width": 256, "id": 20691, "height": 256}, {"file_name": "ADE_val_00000483.jpg", "width": 512, "id": 20692, "height": 340}, {"file_name": "ADE_val_00000484.jpg", "width": 256, "id": 20693, "height": 256}, {"file_name": "ADE_val_00000485.jpg", "width": 662, "id": 20694, "height": 512}, {"file_name": "ADE_val_00000486.jpg", "width": 256, "id": 20695, "height": 256}, {"file_name": "ADE_val_00000487.jpg", "width": 576, "id": 20696, "height": 432}, {"file_name": "ADE_val_00000488.jpg", "width": 256, "id": 20697, "height": 256}, {"file_name": "ADE_val_00000489.jpg", "width": 300, "id": 20698, "height": 225}, {"file_name": "ADE_val_00000490.jpg", "width": 300, "id": 20699, "height": 233}, {"file_name": "ADE_val_00000491.jpg", "width": 500, "id": 20700, "height": 325}, {"file_name": "ADE_val_00000492.jpg", "width": 256, "id": 20701, "height": 256}, {"file_name": "ADE_val_00000493.jpg", "width": 683, "id": 20702, "height": 512}, {"file_name": "ADE_val_00000494.jpg", "width": 400, "id": 20703, "height": 300}, {"file_name": "ADE_val_00000495.jpg", "width": 683, "id": 20704, "height": 512}, {"file_name": "ADE_val_00000496.jpg", "width": 683, "id": 20705, "height": 512}, {"file_name": "ADE_val_00000497.jpg", "width": 640, "id": 20706, "height": 480}, {"file_name": "ADE_val_00000498.jpg", "width": 512, "id": 20707, "height": 683}, {"file_name": "ADE_val_00000499.jpg", "width": 256, "id": 20708, "height": 256}, {"file_name": "ADE_val_00000500.jpg", "width": 683, "id": 20709, "height": 512}, {"file_name": "ADE_val_00000501.jpg", "width": 667, "id": 20710, "height": 512}, {"file_name": "ADE_val_00000502.jpg", "width": 512, "id": 20711, "height": 771}, {"file_name": "ADE_val_00000503.jpg", "width": 770, "id": 20712, "height": 512}, {"file_name": "ADE_val_00000504.jpg", "width": 600, "id": 20713, "height": 395}, {"file_name": "ADE_val_00000505.jpg", "width": 683, "id": 20714, "height": 512}, {"file_name": "ADE_val_00000506.jpg", "width": 768, "id": 20715, "height": 512}, {"file_name": "ADE_val_00000507.jpg", "width": 600, "id": 20716, "height": 450}, {"file_name": "ADE_val_00000508.jpg", "width": 300, "id": 20717, "height": 224}, {"file_name": "ADE_val_00000509.jpg", "width": 757, "id": 20718, "height": 512}, {"file_name": "ADE_val_00000510.jpg", "width": 768, "id": 20719, "height": 512}, {"file_name": "ADE_val_00000511.jpg", "width": 640, "id": 20720, "height": 480}, {"file_name": "ADE_val_00000512.jpg", "width": 600, "id": 20721, "height": 400}, {"file_name": "ADE_val_00000513.jpg", "width": 256, "id": 20722, "height": 256}, {"file_name": "ADE_val_00000514.jpg", "width": 768, "id": 20723, "height": 512}, {"file_name": "ADE_val_00000515.jpg", "width": 770, "id": 20724, "height": 512}, {"file_name": "ADE_val_00000516.jpg", "width": 768, "id": 20725, "height": 512}, {"file_name": "ADE_val_00000517.jpg", "width": 770, "id": 20726, "height": 512}, {"file_name": "ADE_val_00000518.jpg", "width": 693, "id": 20727, "height": 512}, {"file_name": "ADE_val_00000519.jpg", "width": 711, "id": 20728, "height": 471}, {"file_name": "ADE_val_00000520.jpg", "width": 768, "id": 20729, "height": 512}, {"file_name": "ADE_val_00000521.jpg", "width": 768, "id": 20730, "height": 512}, {"file_name": "ADE_val_00000522.jpg", "width": 768, "id": 20731, "height": 512}, {"file_name": "ADE_val_00000523.jpg", "width": 256, "id": 20732, "height": 256}, {"file_name": "ADE_val_00000524.jpg", "width": 683, "id": 20733, "height": 512}, {"file_name": "ADE_val_00000525.jpg", "width": 768, "id": 20734, "height": 512}, {"file_name": "ADE_val_00000526.jpg", "width": 512, "id": 20735, "height": 768}, {"file_name": "ADE_val_00000527.jpg", "width": 683, "id": 20736, "height": 512}, {"file_name": "ADE_val_00000528.jpg", "width": 683, "id": 20737, "height": 512}, {"file_name": "ADE_val_00000529.jpg", "width": 640, "id": 20738, "height": 480}, {"file_name": "ADE_val_00000530.jpg", "width": 590, "id": 20739, "height": 512}, {"file_name": "ADE_val_00000531.jpg", "width": 683, "id": 20740, "height": 512}, {"file_name": "ADE_val_00000532.jpg", "width": 778, "id": 20741, "height": 512}, {"file_name": "ADE_val_00000533.jpg", "width": 683, "id": 20742, "height": 512}, {"file_name": "ADE_val_00000534.jpg", "width": 350, "id": 20743, "height": 230}, {"file_name": "ADE_val_00000535.jpg", "width": 683, "id": 20744, "height": 512}, {"file_name": "ADE_val_00000536.jpg", "width": 512, "id": 20745, "height": 683}, {"file_name": "ADE_val_00000537.jpg", "width": 210, "id": 20746, "height": 310}, {"file_name": "ADE_val_00000538.jpg", "width": 500, "id": 20747, "height": 315}, {"file_name": "ADE_val_00000539.jpg", "width": 746, "id": 20748, "height": 512}, {"file_name": "ADE_val_00000540.jpg", "width": 683, "id": 20749, "height": 512}, {"file_name": "ADE_val_00000541.jpg", "width": 348, "id": 20750, "height": 316}, {"file_name": "ADE_val_00000542.jpg", "width": 683, "id": 20751, "height": 512}, {"file_name": "ADE_val_00000543.jpg", "width": 512, "id": 20752, "height": 897}, {"file_name": "ADE_val_00000544.jpg", "width": 640, "id": 20753, "height": 433}, {"file_name": "ADE_val_00000545.jpg", "width": 683, "id": 20754, "height": 512}, {"file_name": "ADE_val_00000546.jpg", "width": 512, "id": 20755, "height": 684}, {"file_name": "ADE_val_00000547.jpg", "width": 680, "id": 20756, "height": 443}, {"file_name": "ADE_val_00000548.jpg", "width": 683, "id": 20757, "height": 512}, {"file_name": "ADE_val_00000549.jpg", "width": 300, "id": 20758, "height": 234}, {"file_name": "ADE_val_00000550.jpg", "width": 611, "id": 20759, "height": 413}, {"file_name": "ADE_val_00000551.jpg", "width": 683, "id": 20760, "height": 512}, {"file_name": "ADE_val_00000552.jpg", "width": 600, "id": 20761, "height": 400}, {"file_name": "ADE_val_00000553.jpg", "width": 256, "id": 20762, "height": 256}, {"file_name": "ADE_val_00000554.jpg", "width": 256, "id": 20763, "height": 256}, {"file_name": "ADE_val_00000555.jpg", "width": 768, "id": 20764, "height": 512}, {"file_name": "ADE_val_00000556.jpg", "width": 683, "id": 20765, "height": 512}, {"file_name": "ADE_val_00000557.jpg", "width": 256, "id": 20766, "height": 256}, {"file_name": "ADE_val_00000558.jpg", "width": 256, "id": 20767, "height": 256}, {"file_name": "ADE_val_00000559.jpg", "width": 256, "id": 20768, "height": 256}, {"file_name": "ADE_val_00000560.jpg", "width": 256, "id": 20769, "height": 256}, {"file_name": "ADE_val_00000561.jpg", "width": 683, "id": 20770, "height": 512}, {"file_name": "ADE_val_00000562.jpg", "width": 500, "id": 20771, "height": 384}, {"file_name": "ADE_val_00000563.jpg", "width": 598, "id": 20772, "height": 333}, {"file_name": "ADE_val_00000564.jpg", "width": 683, "id": 20773, "height": 512}, {"file_name": "ADE_val_00000565.jpg", "width": 256, "id": 20774, "height": 256}, {"file_name": "ADE_val_00000566.jpg", "width": 683, "id": 20775, "height": 512}, {"file_name": "ADE_val_00000567.jpg", "width": 683, "id": 20776, "height": 512}, {"file_name": "ADE_val_00000568.jpg", "width": 683, "id": 20777, "height": 512}, {"file_name": "ADE_val_00000569.jpg", "width": 683, "id": 20778, "height": 512}, {"file_name": "ADE_val_00000570.jpg", "width": 683, "id": 20779, "height": 512}, {"file_name": "ADE_val_00000571.jpg", "width": 683, "id": 20780, "height": 512}, {"file_name": "ADE_val_00000572.jpg", "width": 683, "id": 20781, "height": 512}, {"file_name": "ADE_val_00000573.jpg", "width": 683, "id": 20782, "height": 512}, {"file_name": "ADE_val_00000574.jpg", "width": 683, "id": 20783, "height": 512}, {"file_name": "ADE_val_00000575.jpg", "width": 683, "id": 20784, "height": 512}, {"file_name": "ADE_val_00000576.jpg", "width": 683, "id": 20785, "height": 512}, {"file_name": "ADE_val_00000577.jpg", "width": 683, "id": 20786, "height": 512}, {"file_name": "ADE_val_00000578.jpg", "width": 512, "id": 20787, "height": 683}, {"file_name": "ADE_val_00000579.jpg", "width": 512, "id": 20788, "height": 683}, {"file_name": "ADE_val_00000580.jpg", "width": 512, "id": 20789, "height": 768}, {"file_name": "ADE_val_00000581.jpg", "width": 683, "id": 20790, "height": 512}, {"file_name": "ADE_val_00000582.jpg", "width": 683, "id": 20791, "height": 512}, {"file_name": "ADE_val_00000583.jpg", "width": 512, "id": 20792, "height": 683}, {"file_name": "ADE_val_00000584.jpg", "width": 683, "id": 20793, "height": 512}, {"file_name": "ADE_val_00000585.jpg", "width": 683, "id": 20794, "height": 512}, {"file_name": "ADE_val_00000586.jpg", "width": 683, "id": 20795, "height": 512}, {"file_name": "ADE_val_00000587.jpg", "width": 683, "id": 20796, "height": 512}, {"file_name": "ADE_val_00000588.jpg", "width": 512, "id": 20797, "height": 683}, {"file_name": "ADE_val_00000589.jpg", "width": 683, "id": 20798, "height": 512}, {"file_name": "ADE_val_00000590.jpg", "width": 683, "id": 20799, "height": 512}, {"file_name": "ADE_val_00000591.jpg", "width": 683, "id": 20800, "height": 512}, {"file_name": "ADE_val_00000592.jpg", "width": 683, "id": 20801, "height": 512}, {"file_name": "ADE_val_00000593.jpg", "width": 683, "id": 20802, "height": 512}, {"file_name": "ADE_val_00000594.jpg", "width": 683, "id": 20803, "height": 512}, {"file_name": "ADE_val_00000595.jpg", "width": 683, "id": 20804, "height": 512}, {"file_name": "ADE_val_00000596.jpg", "width": 784, "id": 20805, "height": 512}, {"file_name": "ADE_val_00000597.jpg", "width": 683, "id": 20806, "height": 512}, {"file_name": "ADE_val_00000598.jpg", "width": 683, "id": 20807, "height": 512}, {"file_name": "ADE_val_00000599.jpg", "width": 437, "id": 20808, "height": 283}, {"file_name": "ADE_val_00000600.jpg", "width": 497, "id": 20809, "height": 372}, {"file_name": "ADE_val_00000601.jpg", "width": 700, "id": 20810, "height": 429}, {"file_name": "ADE_val_00000602.jpg", "width": 512, "id": 20811, "height": 683}, {"file_name": "ADE_val_00000603.jpg", "width": 256, "id": 20812, "height": 256}, {"file_name": "ADE_val_00000604.jpg", "width": 622, "id": 20813, "height": 512}, {"file_name": "ADE_val_00000605.jpg", "width": 256, "id": 20814, "height": 256}, {"file_name": "ADE_val_00000606.jpg", "width": 496, "id": 20815, "height": 768}, {"file_name": "ADE_val_00000607.jpg", "width": 640, "id": 20816, "height": 480}, {"file_name": "ADE_val_00000608.jpg", "width": 680, "id": 20817, "height": 512}, {"file_name": "ADE_val_00000609.jpg", "width": 256, "id": 20818, "height": 256}, {"file_name": "ADE_val_00000610.jpg", "width": 400, "id": 20819, "height": 267}, {"file_name": "ADE_val_00000611.jpg", "width": 640, "id": 20820, "height": 480}, {"file_name": "ADE_val_00000612.jpg", "width": 600, "id": 20821, "height": 450}, {"file_name": "ADE_val_00000613.jpg", "width": 256, "id": 20822, "height": 256}, {"file_name": "ADE_val_00000614.jpg", "width": 256, "id": 20823, "height": 256}, {"file_name": "ADE_val_00000615.jpg", "width": 600, "id": 20824, "height": 396}, {"file_name": "ADE_val_00000616.jpg", "width": 500, "id": 20825, "height": 375}, {"file_name": "ADE_val_00000617.jpg", "width": 320, "id": 20826, "height": 239}, {"file_name": "ADE_val_00000618.jpg", "width": 512, "id": 20827, "height": 431}, {"file_name": "ADE_val_00000619.jpg", "width": 295, "id": 20828, "height": 261}, {"file_name": "ADE_val_00000620.jpg", "width": 683, "id": 20829, "height": 512}, {"file_name": "ADE_val_00000621.jpg", "width": 319, "id": 20830, "height": 425}, {"file_name": "ADE_val_00000622.jpg", "width": 500, "id": 20831, "height": 375}, {"file_name": "ADE_val_00000623.jpg", "width": 302, "id": 20832, "height": 275}, {"file_name": "ADE_val_00000624.jpg", "width": 682, "id": 20833, "height": 512}, {"file_name": "ADE_val_00000625.jpg", "width": 500, "id": 20834, "height": 333}, {"file_name": "ADE_val_00000626.jpg", "width": 256, "id": 20835, "height": 256}, {"file_name": "ADE_val_00000627.jpg", "width": 337, "id": 20836, "height": 500}, {"file_name": "ADE_val_00000628.jpg", "width": 484, "id": 20837, "height": 296}, {"file_name": "ADE_val_00000629.jpg", "width": 260, "id": 20838, "height": 350}, {"file_name": "ADE_val_00000630.jpg", "width": 288, "id": 20839, "height": 210}, {"file_name": "ADE_val_00000631.jpg", "width": 500, "id": 20840, "height": 375}, {"file_name": "ADE_val_00000632.jpg", "width": 256, "id": 20841, "height": 256}, {"file_name": "ADE_val_00000633.jpg", "width": 267, "id": 20842, "height": 200}, {"file_name": "ADE_val_00000634.jpg", "width": 764, "id": 20843, "height": 512}, {"file_name": "ADE_val_00000635.jpg", "width": 480, "id": 20844, "height": 640}, {"file_name": "ADE_val_00000636.jpg", "width": 683, "id": 20845, "height": 512}, {"file_name": "ADE_val_00000637.jpg", "width": 683, "id": 20846, "height": 512}, {"file_name": "ADE_val_00000638.jpg", "width": 500, "id": 20847, "height": 327}, {"file_name": "ADE_val_00000639.jpg", "width": 683, "id": 20848, "height": 512}, {"file_name": "ADE_val_00000640.jpg", "width": 360, "id": 20849, "height": 239}, {"file_name": "ADE_val_00000641.jpg", "width": 400, "id": 20850, "height": 300}, {"file_name": "ADE_val_00000642.jpg", "width": 550, "id": 20851, "height": 301}, {"file_name": "ADE_val_00000643.jpg", "width": 280, "id": 20852, "height": 210}, {"file_name": "ADE_val_00000644.jpg", "width": 683, "id": 20853, "height": 512}, {"file_name": "ADE_val_00000645.jpg", "width": 683, "id": 20854, "height": 512}, {"file_name": "ADE_val_00000646.jpg", "width": 256, "id": 20855, "height": 256}, {"file_name": "ADE_val_00000647.jpg", "width": 256, "id": 20856, "height": 256}, {"file_name": "ADE_val_00000648.jpg", "width": 256, "id": 20857, "height": 256}, {"file_name": "ADE_val_00000649.jpg", "width": 600, "id": 20858, "height": 454}, {"file_name": "ADE_val_00000650.jpg", "width": 600, "id": 20859, "height": 319}, {"file_name": "ADE_val_00000651.jpg", "width": 286, "id": 20860, "height": 180}, {"file_name": "ADE_val_00000652.jpg", "width": 750, "id": 20861, "height": 512}, {"file_name": "ADE_val_00000653.jpg", "width": 825, "id": 20862, "height": 512}, {"file_name": "ADE_val_00000654.jpg", "width": 382, "id": 20863, "height": 563}, {"file_name": "ADE_val_00000655.jpg", "width": 640, "id": 20864, "height": 480}, {"file_name": "ADE_val_00000656.jpg", "width": 370, "id": 20865, "height": 250}, {"file_name": "ADE_val_00000657.jpg", "width": 600, "id": 20866, "height": 450}, {"file_name": "ADE_val_00000658.jpg", "width": 500, "id": 20867, "height": 375}, {"file_name": "ADE_val_00000659.jpg", "width": 500, "id": 20868, "height": 333}, {"file_name": "ADE_val_00000660.jpg", "width": 640, "id": 20869, "height": 480}, {"file_name": "ADE_val_00000661.jpg", "width": 400, "id": 20870, "height": 431}, {"file_name": "ADE_val_00000662.jpg", "width": 683, "id": 20871, "height": 512}, {"file_name": "ADE_val_00000663.jpg", "width": 256, "id": 20872, "height": 256}, {"file_name": "ADE_val_00000664.jpg", "width": 702, "id": 20873, "height": 402}, {"file_name": "ADE_val_00000665.jpg", "width": 717, "id": 20874, "height": 467}, {"file_name": "ADE_val_00000666.jpg", "width": 256, "id": 20875, "height": 221}, {"file_name": "ADE_val_00000667.jpg", "width": 350, "id": 20876, "height": 234}, {"file_name": "ADE_val_00000668.jpg", "width": 508, "id": 20877, "height": 416}, {"file_name": "ADE_val_00000669.jpg", "width": 480, "id": 20878, "height": 323}, {"file_name": "ADE_val_00000670.jpg", "width": 683, "id": 20879, "height": 512}, {"file_name": "ADE_val_00000671.jpg", "width": 504, "id": 20880, "height": 339}, {"file_name": "ADE_val_00000672.jpg", "width": 567, "id": 20881, "height": 366}, {"file_name": "ADE_val_00000673.jpg", "width": 600, "id": 20882, "height": 482}, {"file_name": "ADE_val_00000674.jpg", "width": 572, "id": 20883, "height": 341}, {"file_name": "ADE_val_00000675.jpg", "width": 768, "id": 20884, "height": 512}, {"file_name": "ADE_val_00000676.jpg", "width": 400, "id": 20885, "height": 300}, {"file_name": "ADE_val_00000677.jpg", "width": 512, "id": 20886, "height": 683}, {"file_name": "ADE_val_00000678.jpg", "width": 640, "id": 20887, "height": 480}, {"file_name": "ADE_val_00000679.jpg", "width": 512, "id": 20888, "height": 418}, {"file_name": "ADE_val_00000680.jpg", "width": 675, "id": 20889, "height": 503}, {"file_name": "ADE_val_00000681.jpg", "width": 600, "id": 20890, "height": 400}, {"file_name": "ADE_val_00000682.jpg", "width": 392, "id": 20891, "height": 264}, {"file_name": "ADE_val_00000683.jpg", "width": 400, "id": 20892, "height": 300}, {"file_name": "ADE_val_00000684.jpg", "width": 400, "id": 20893, "height": 300}, {"file_name": "ADE_val_00000685.jpg", "width": 729, "id": 20894, "height": 392}, {"file_name": "ADE_val_00000686.jpg", "width": 500, "id": 20895, "height": 375}, {"file_name": "ADE_val_00000687.jpg", "width": 683, "id": 20896, "height": 512}, {"file_name": "ADE_val_00000688.jpg", "width": 400, "id": 20897, "height": 437}, {"file_name": "ADE_val_00000689.jpg", "width": 360, "id": 20898, "height": 287}, {"file_name": "ADE_val_00000690.jpg", "width": 683, "id": 20899, "height": 512}, {"file_name": "ADE_val_00000691.jpg", "width": 683, "id": 20900, "height": 512}, {"file_name": "ADE_val_00000692.jpg", "width": 683, "id": 20901, "height": 512}, {"file_name": "ADE_val_00000693.jpg", "width": 683, "id": 20902, "height": 512}, {"file_name": "ADE_val_00000694.jpg", "width": 420, "id": 20903, "height": 315}, {"file_name": "ADE_val_00000695.jpg", "width": 563, "id": 20904, "height": 459}, {"file_name": "ADE_val_00000696.jpg", "width": 683, "id": 20905, "height": 512}, {"file_name": "ADE_val_00000697.jpg", "width": 399, "id": 20906, "height": 600}, {"file_name": "ADE_val_00000698.jpg", "width": 640, "id": 20907, "height": 415}, {"file_name": "ADE_val_00000699.jpg", "width": 768, "id": 20908, "height": 512}, {"file_name": "ADE_val_00000700.jpg", "width": 683, "id": 20909, "height": 512}, {"file_name": "ADE_val_00000701.jpg", "width": 256, "id": 20910, "height": 256}, {"file_name": "ADE_val_00000702.jpg", "width": 256, "id": 20911, "height": 256}, {"file_name": "ADE_val_00000703.jpg", "width": 683, "id": 20912, "height": 512}, {"file_name": "ADE_val_00000704.jpg", "width": 350, "id": 20913, "height": 243}, {"file_name": "ADE_val_00000705.jpg", "width": 350, "id": 20914, "height": 265}, {"file_name": "ADE_val_00000706.jpg", "width": 683, "id": 20915, "height": 512}, {"file_name": "ADE_val_00000707.jpg", "width": 683, "id": 20916, "height": 512}, {"file_name": "ADE_val_00000708.jpg", "width": 375, "id": 20917, "height": 500}, {"file_name": "ADE_val_00000709.jpg", "width": 768, "id": 20918, "height": 512}, {"file_name": "ADE_val_00000710.jpg", "width": 683, "id": 20919, "height": 512}, {"file_name": "ADE_val_00000711.jpg", "width": 363, "id": 20920, "height": 230}, {"file_name": "ADE_val_00000712.jpg", "width": 313, "id": 20921, "height": 204}, {"file_name": "ADE_val_00000713.jpg", "width": 597, "id": 20922, "height": 448}, {"file_name": "ADE_val_00000714.jpg", "width": 288, "id": 20923, "height": 216}, {"file_name": "ADE_val_00000715.jpg", "width": 683, "id": 20924, "height": 512}, {"file_name": "ADE_val_00000716.jpg", "width": 450, "id": 20925, "height": 298}, {"file_name": "ADE_val_00000717.jpg", "width": 683, "id": 20926, "height": 512}, {"file_name": "ADE_val_00000718.jpg", "width": 312, "id": 20927, "height": 234}, {"file_name": "ADE_val_00000719.jpg", "width": 512, "id": 20928, "height": 742}, {"file_name": "ADE_val_00000720.jpg", "width": 765, "id": 20929, "height": 512}, {"file_name": "ADE_val_00000721.jpg", "width": 350, "id": 20930, "height": 249}, {"file_name": "ADE_val_00000722.jpg", "width": 612, "id": 20931, "height": 412}, {"file_name": "ADE_val_00000723.jpg", "width": 283, "id": 20932, "height": 217}, {"file_name": "ADE_val_00000724.jpg", "width": 683, "id": 20933, "height": 512}, {"file_name": "ADE_val_00000725.jpg", "width": 300, "id": 20934, "height": 300}, {"file_name": "ADE_val_00000726.jpg", "width": 400, "id": 20935, "height": 270}, {"file_name": "ADE_val_00000727.jpg", "width": 356, "id": 20936, "height": 266}, {"file_name": "ADE_val_00000728.jpg", "width": 500, "id": 20937, "height": 334}, {"file_name": "ADE_val_00000729.jpg", "width": 350, "id": 20938, "height": 300}, {"file_name": "ADE_val_00000730.jpg", "width": 320, "id": 20939, "height": 251}, {"file_name": "ADE_val_00000731.jpg", "width": 512, "id": 20940, "height": 683}, {"file_name": "ADE_val_00000732.jpg", "width": 256, "id": 20941, "height": 256}, {"file_name": "ADE_val_00000733.jpg", "width": 748, "id": 20942, "height": 512}, {"file_name": "ADE_val_00000734.jpg", "width": 360, "id": 20943, "height": 270}, {"file_name": "ADE_val_00000735.jpg", "width": 300, "id": 20944, "height": 225}, {"file_name": "ADE_val_00000736.jpg", "width": 500, "id": 20945, "height": 328}, {"file_name": "ADE_val_00000737.jpg", "width": 320, "id": 20946, "height": 240}, {"file_name": "ADE_val_00000738.jpg", "width": 384, "id": 20947, "height": 256}, {"file_name": "ADE_val_00000739.jpg", "width": 979, "id": 20948, "height": 512}, {"file_name": "ADE_val_00000740.jpg", "width": 384, "id": 20949, "height": 288}, {"file_name": "ADE_val_00000741.jpg", "width": 402, "id": 20950, "height": 381}, {"file_name": "ADE_val_00000742.jpg", "width": 512, "id": 20951, "height": 738}, {"file_name": "ADE_val_00000743.jpg", "width": 512, "id": 20952, "height": 561}, {"file_name": "ADE_val_00000744.jpg", "width": 531, "id": 20953, "height": 400}, {"file_name": "ADE_val_00000745.jpg", "width": 360, "id": 20954, "height": 270}, {"file_name": "ADE_val_00000746.jpg", "width": 600, "id": 20955, "height": 400}, {"file_name": "ADE_val_00000747.jpg", "width": 500, "id": 20956, "height": 375}, {"file_name": "ADE_val_00000748.jpg", "width": 320, "id": 20957, "height": 232}, {"file_name": "ADE_val_00000749.jpg", "width": 512, "id": 20958, "height": 682}, {"file_name": "ADE_val_00000750.jpg", "width": 356, "id": 20959, "height": 432}, {"file_name": "ADE_val_00000751.jpg", "width": 480, "id": 20960, "height": 640}, {"file_name": "ADE_val_00000752.jpg", "width": 584, "id": 20961, "height": 456}, {"file_name": "ADE_val_00000753.jpg", "width": 696, "id": 20962, "height": 512}, {"file_name": "ADE_val_00000754.jpg", "width": 256, "id": 20963, "height": 256}, {"file_name": "ADE_val_00000755.jpg", "width": 512, "id": 20964, "height": 790}, {"file_name": "ADE_val_00000756.jpg", "width": 256, "id": 20965, "height": 256}, {"file_name": "ADE_val_00000757.jpg", "width": 256, "id": 20966, "height": 256}, {"file_name": "ADE_val_00000758.jpg", "width": 256, "id": 20967, "height": 256}, {"file_name": "ADE_val_00000759.jpg", "width": 256, "id": 20968, "height": 256}, {"file_name": "ADE_val_00000760.jpg", "width": 256, "id": 20969, "height": 256}, {"file_name": "ADE_val_00000761.jpg", "width": 256, "id": 20970, "height": 256}, {"file_name": "ADE_val_00000762.jpg", "width": 256, "id": 20971, "height": 256}, {"file_name": "ADE_val_00000763.jpg", "width": 375, "id": 20972, "height": 500}, {"file_name": "ADE_val_00000764.jpg", "width": 256, "id": 20973, "height": 256}, {"file_name": "ADE_val_00000765.jpg", "width": 256, "id": 20974, "height": 256}, {"file_name": "ADE_val_00000766.jpg", "width": 256, "id": 20975, "height": 256}, {"file_name": "ADE_val_00000767.jpg", "width": 256, "id": 20976, "height": 256}, {"file_name": "ADE_val_00000768.jpg", "width": 726, "id": 20977, "height": 512}, {"file_name": "ADE_val_00000769.jpg", "width": 256, "id": 20978, "height": 256}, {"file_name": "ADE_val_00000770.jpg", "width": 640, "id": 20979, "height": 480}, {"file_name": "ADE_val_00000771.jpg", "width": 360, "id": 20980, "height": 270}, {"file_name": "ADE_val_00000772.jpg", "width": 450, "id": 20981, "height": 301}, {"file_name": "ADE_val_00000773.jpg", "width": 460, "id": 20982, "height": 682}, {"file_name": "ADE_val_00000774.jpg", "width": 256, "id": 20983, "height": 256}, {"file_name": "ADE_val_00000775.jpg", "width": 256, "id": 20984, "height": 256}, {"file_name": "ADE_val_00000776.jpg", "width": 340, "id": 20985, "height": 255}, {"file_name": "ADE_val_00000777.jpg", "width": 683, "id": 20986, "height": 512}, {"file_name": "ADE_val_00000778.jpg", "width": 768, "id": 20987, "height": 512}, {"file_name": "ADE_val_00000779.jpg", "width": 640, "id": 20988, "height": 480}, {"file_name": "ADE_val_00000780.jpg", "width": 683, "id": 20989, "height": 512}, {"file_name": "ADE_val_00000781.jpg", "width": 683, "id": 20990, "height": 512}, {"file_name": "ADE_val_00000782.jpg", "width": 683, "id": 20991, "height": 512}, {"file_name": "ADE_val_00000783.jpg", "width": 683, "id": 20992, "height": 512}, {"file_name": "ADE_val_00000784.jpg", "width": 683, "id": 20993, "height": 512}, {"file_name": "ADE_val_00000785.jpg", "width": 768, "id": 20994, "height": 512}, {"file_name": "ADE_val_00000786.jpg", "width": 683, "id": 20995, "height": 512}, {"file_name": "ADE_val_00000787.jpg", "width": 683, "id": 20996, "height": 512}, {"file_name": "ADE_val_00000788.jpg", "width": 683, "id": 20997, "height": 512}, {"file_name": "ADE_val_00000789.jpg", "width": 683, "id": 20998, "height": 512}, {"file_name": "ADE_val_00000790.jpg", "width": 683, "id": 20999, "height": 512}, {"file_name": "ADE_val_00000791.jpg", "width": 683, "id": 21000, "height": 512}, {"file_name": "ADE_val_00000792.jpg", "width": 683, "id": 21001, "height": 512}, {"file_name": "ADE_val_00000793.jpg", "width": 683, "id": 21002, "height": 512}, {"file_name": "ADE_val_00000794.jpg", "width": 683, "id": 21003, "height": 512}, {"file_name": "ADE_val_00000795.jpg", "width": 640, "id": 21004, "height": 480}, {"file_name": "ADE_val_00000796.jpg", "width": 683, "id": 21005, "height": 512}, {"file_name": "ADE_val_00000797.jpg", "width": 683, "id": 21006, "height": 512}, {"file_name": "ADE_val_00000798.jpg", "width": 683, "id": 21007, "height": 512}, {"file_name": "ADE_val_00000799.jpg", "width": 683, "id": 21008, "height": 512}, {"file_name": "ADE_val_00000800.jpg", "width": 683, "id": 21009, "height": 512}, {"file_name": "ADE_val_00000801.jpg", "width": 683, "id": 21010, "height": 512}, {"file_name": "ADE_val_00000802.jpg", "width": 683, "id": 21011, "height": 512}, {"file_name": "ADE_val_00000803.jpg", "width": 683, "id": 21012, "height": 512}, {"file_name": "ADE_val_00000804.jpg", "width": 683, "id": 21013, "height": 512}, {"file_name": "ADE_val_00000805.jpg", "width": 683, "id": 21014, "height": 512}, {"file_name": "ADE_val_00000806.jpg", "width": 683, "id": 21015, "height": 512}, {"file_name": "ADE_val_00000807.jpg", "width": 683, "id": 21016, "height": 512}, {"file_name": "ADE_val_00000808.jpg", "width": 683, "id": 21017, "height": 512}, {"file_name": "ADE_val_00000809.jpg", "width": 683, "id": 21018, "height": 512}, {"file_name": "ADE_val_00000810.jpg", "width": 683, "id": 21019, "height": 512}, {"file_name": "ADE_val_00000811.jpg", "width": 640, "id": 21020, "height": 480}, {"file_name": "ADE_val_00000812.jpg", "width": 683, "id": 21021, "height": 512}, {"file_name": "ADE_val_00000813.jpg", "width": 683, "id": 21022, "height": 512}, {"file_name": "ADE_val_00000814.jpg", "width": 683, "id": 21023, "height": 512}, {"file_name": "ADE_val_00000815.jpg", "width": 683, "id": 21024, "height": 512}, {"file_name": "ADE_val_00000816.jpg", "width": 683, "id": 21025, "height": 512}, {"file_name": "ADE_val_00000817.jpg", "width": 683, "id": 21026, "height": 512}, {"file_name": "ADE_val_00000818.jpg", "width": 683, "id": 21027, "height": 512}, {"file_name": "ADE_val_00000819.jpg", "width": 512, "id": 21028, "height": 683}, {"file_name": "ADE_val_00000820.jpg", "width": 683, "id": 21029, "height": 512}, {"file_name": "ADE_val_00000821.jpg", "width": 683, "id": 21030, "height": 512}, {"file_name": "ADE_val_00000822.jpg", "width": 683, "id": 21031, "height": 512}, {"file_name": "ADE_val_00000823.jpg", "width": 683, "id": 21032, "height": 512}, {"file_name": "ADE_val_00000824.jpg", "width": 683, "id": 21033, "height": 512}, {"file_name": "ADE_val_00000825.jpg", "width": 683, "id": 21034, "height": 512}, {"file_name": "ADE_val_00000826.jpg", "width": 683, "id": 21035, "height": 512}, {"file_name": "ADE_val_00000827.jpg", "width": 683, "id": 21036, "height": 512}, {"file_name": "ADE_val_00000828.jpg", "width": 683, "id": 21037, "height": 512}, {"file_name": "ADE_val_00000829.jpg", "width": 683, "id": 21038, "height": 512}, {"file_name": "ADE_val_00000830.jpg", "width": 683, "id": 21039, "height": 512}, {"file_name": "ADE_val_00000831.jpg", "width": 683, "id": 21040, "height": 512}, {"file_name": "ADE_val_00000832.jpg", "width": 683, "id": 21041, "height": 512}, {"file_name": "ADE_val_00000833.jpg", "width": 683, "id": 21042, "height": 512}, {"file_name": "ADE_val_00000834.jpg", "width": 683, "id": 21043, "height": 512}, {"file_name": "ADE_val_00000835.jpg", "width": 683, "id": 21044, "height": 512}, {"file_name": "ADE_val_00000836.jpg", "width": 683, "id": 21045, "height": 512}, {"file_name": "ADE_val_00000837.jpg", "width": 683, "id": 21046, "height": 512}, {"file_name": "ADE_val_00000838.jpg", "width": 683, "id": 21047, "height": 512}, {"file_name": "ADE_val_00000839.jpg", "width": 768, "id": 21048, "height": 512}, {"file_name": "ADE_val_00000840.jpg", "width": 683, "id": 21049, "height": 512}, {"file_name": "ADE_val_00000841.jpg", "width": 768, "id": 21050, "height": 512}, {"file_name": "ADE_val_00000842.jpg", "width": 683, "id": 21051, "height": 512}, {"file_name": "ADE_val_00000843.jpg", "width": 512, "id": 21052, "height": 683}, {"file_name": "ADE_val_00000844.jpg", "width": 683, "id": 21053, "height": 512}, {"file_name": "ADE_val_00000845.jpg", "width": 683, "id": 21054, "height": 512}, {"file_name": "ADE_val_00000846.jpg", "width": 683, "id": 21055, "height": 512}, {"file_name": "ADE_val_00000847.jpg", "width": 683, "id": 21056, "height": 512}, {"file_name": "ADE_val_00000848.jpg", "width": 683, "id": 21057, "height": 512}, {"file_name": "ADE_val_00000849.jpg", "width": 683, "id": 21058, "height": 512}, {"file_name": "ADE_val_00000850.jpg", "width": 683, "id": 21059, "height": 512}, {"file_name": "ADE_val_00000851.jpg", "width": 683, "id": 21060, "height": 512}, {"file_name": "ADE_val_00000852.jpg", "width": 683, "id": 21061, "height": 512}, {"file_name": "ADE_val_00000853.jpg", "width": 683, "id": 21062, "height": 512}, {"file_name": "ADE_val_00000854.jpg", "width": 683, "id": 21063, "height": 512}, {"file_name": "ADE_val_00000855.jpg", "width": 683, "id": 21064, "height": 512}, {"file_name": "ADE_val_00000856.jpg", "width": 683, "id": 21065, "height": 512}, {"file_name": "ADE_val_00000857.jpg", "width": 683, "id": 21066, "height": 512}, {"file_name": "ADE_val_00000858.jpg", "width": 683, "id": 21067, "height": 512}, {"file_name": "ADE_val_00000859.jpg", "width": 683, "id": 21068, "height": 512}, {"file_name": "ADE_val_00000860.jpg", "width": 683, "id": 21069, "height": 512}, {"file_name": "ADE_val_00000861.jpg", "width": 256, "id": 21070, "height": 256}, {"file_name": "ADE_val_00000862.jpg", "width": 256, "id": 21071, "height": 256}, {"file_name": "ADE_val_00000863.jpg", "width": 256, "id": 21072, "height": 256}, {"file_name": "ADE_val_00000864.jpg", "width": 256, "id": 21073, "height": 256}, {"file_name": "ADE_val_00000865.jpg", "width": 256, "id": 21074, "height": 256}, {"file_name": "ADE_val_00000866.jpg", "width": 256, "id": 21075, "height": 256}, {"file_name": "ADE_val_00000867.jpg", "width": 256, "id": 21076, "height": 256}, {"file_name": "ADE_val_00000868.jpg", "width": 256, "id": 21077, "height": 256}, {"file_name": "ADE_val_00000869.jpg", "width": 256, "id": 21078, "height": 256}, {"file_name": "ADE_val_00000870.jpg", "width": 256, "id": 21079, "height": 256}, {"file_name": "ADE_val_00000871.jpg", "width": 256, "id": 21080, "height": 256}, {"file_name": "ADE_val_00000872.jpg", "width": 256, "id": 21081, "height": 256}, {"file_name": "ADE_val_00000873.jpg", "width": 256, "id": 21082, "height": 256}, {"file_name": "ADE_val_00000874.jpg", "width": 550, "id": 21083, "height": 368}, {"file_name": "ADE_val_00000875.jpg", "width": 500, "id": 21084, "height": 373}, {"file_name": "ADE_val_00000876.jpg", "width": 500, "id": 21085, "height": 375}, {"file_name": "ADE_val_00000877.jpg", "width": 348, "id": 21086, "height": 346}, {"file_name": "ADE_val_00000878.jpg", "width": 500, "id": 21087, "height": 332}, {"file_name": "ADE_val_00000879.jpg", "width": 450, "id": 21088, "height": 338}, {"file_name": "ADE_val_00000880.jpg", "width": 640, "id": 21089, "height": 480}, {"file_name": "ADE_val_00000881.jpg", "width": 478, "id": 21090, "height": 296}, {"file_name": "ADE_val_00000882.jpg", "width": 480, "id": 21091, "height": 360}, {"file_name": "ADE_val_00000883.jpg", "width": 520, "id": 21092, "height": 391}, {"file_name": "ADE_val_00000884.jpg", "width": 256, "id": 21093, "height": 256}, {"file_name": "ADE_val_00000885.jpg", "width": 683, "id": 21094, "height": 512}, {"file_name": "ADE_val_00000886.jpg", "width": 776, "id": 21095, "height": 512}, {"file_name": "ADE_val_00000887.jpg", "width": 479, "id": 21096, "height": 380}, {"file_name": "ADE_val_00000888.jpg", "width": 500, "id": 21097, "height": 349}, {"file_name": "ADE_val_00000889.jpg", "width": 600, "id": 21098, "height": 366}, {"file_name": "ADE_val_00000890.jpg", "width": 512, "id": 21099, "height": 768}, {"file_name": "ADE_val_00000891.jpg", "width": 683, "id": 21100, "height": 512}, {"file_name": "ADE_val_00000892.jpg", "width": 300, "id": 21101, "height": 225}, {"file_name": "ADE_val_00000893.jpg", "width": 500, "id": 21102, "height": 375}, {"file_name": "ADE_val_00000894.jpg", "width": 256, "id": 21103, "height": 256}, {"file_name": "ADE_val_00000895.jpg", "width": 357, "id": 21104, "height": 336}, {"file_name": "ADE_val_00000896.jpg", "width": 683, "id": 21105, "height": 512}, {"file_name": "ADE_val_00000897.jpg", "width": 256, "id": 21106, "height": 256}, {"file_name": "ADE_val_00000898.jpg", "width": 256, "id": 21107, "height": 256}, {"file_name": "ADE_val_00000899.jpg", "width": 600, "id": 21108, "height": 399}, {"file_name": "ADE_val_00000900.jpg", "width": 256, "id": 21109, "height": 256}, {"file_name": "ADE_val_00000901.jpg", "width": 420, "id": 21110, "height": 315}, {"file_name": "ADE_val_00000902.jpg", "width": 500, "id": 21111, "height": 333}, {"file_name": "ADE_val_00000903.jpg", "width": 512, "id": 21112, "height": 584}, {"file_name": "ADE_val_00000904.jpg", "width": 375, "id": 21113, "height": 500}, {"file_name": "ADE_val_00000905.jpg", "width": 384, "id": 21114, "height": 256}, {"file_name": "ADE_val_00000906.jpg", "width": 769, "id": 21115, "height": 512}, {"file_name": "ADE_val_00000907.jpg", "width": 271, "id": 21116, "height": 218}, {"file_name": "ADE_val_00000908.jpg", "width": 683, "id": 21117, "height": 512}, {"file_name": "ADE_val_00000909.jpg", "width": 256, "id": 21118, "height": 256}, {"file_name": "ADE_val_00000910.jpg", "width": 320, "id": 21119, "height": 240}, {"file_name": "ADE_val_00000911.jpg", "width": 375, "id": 21120, "height": 234}, {"file_name": "ADE_val_00000912.jpg", "width": 256, "id": 21121, "height": 256}, {"file_name": "ADE_val_00000913.jpg", "width": 332, "id": 21122, "height": 241}, {"file_name": "ADE_val_00000914.jpg", "width": 640, "id": 21123, "height": 480}, {"file_name": "ADE_val_00000915.jpg", "width": 500, "id": 21124, "height": 375}, {"file_name": "ADE_val_00000916.jpg", "width": 300, "id": 21125, "height": 400}, {"file_name": "ADE_val_00000917.jpg", "width": 886, "id": 21126, "height": 512}, {"file_name": "ADE_val_00000918.jpg", "width": 512, "id": 21127, "height": 683}, {"file_name": "ADE_val_00000919.jpg", "width": 690, "id": 21128, "height": 512}, {"file_name": "ADE_val_00000920.jpg", "width": 496, "id": 21129, "height": 374}, {"file_name": "ADE_val_00000921.jpg", "width": 683, "id": 21130, "height": 512}, {"file_name": "ADE_val_00000922.jpg", "width": 768, "id": 21131, "height": 512}, {"file_name": "ADE_val_00000923.jpg", "width": 400, "id": 21132, "height": 279}, {"file_name": "ADE_val_00000924.jpg", "width": 391, "id": 21133, "height": 522}, {"file_name": "ADE_val_00000925.jpg", "width": 300, "id": 21134, "height": 400}, {"file_name": "ADE_val_00000926.jpg", "width": 320, "id": 21135, "height": 218}, {"file_name": "ADE_val_00000927.jpg", "width": 500, "id": 21136, "height": 375}, {"file_name": "ADE_val_00000928.jpg", "width": 683, "id": 21137, "height": 512}, {"file_name": "ADE_val_00000929.jpg", "width": 600, "id": 21138, "height": 450}, {"file_name": "ADE_val_00000930.jpg", "width": 645, "id": 21139, "height": 484}, {"file_name": "ADE_val_00000931.jpg", "width": 640, "id": 21140, "height": 480}, {"file_name": "ADE_val_00000932.jpg", "width": 768, "id": 21141, "height": 512}, {"file_name": "ADE_val_00000933.jpg", "width": 512, "id": 21142, "height": 768}, {"file_name": "ADE_val_00000934.jpg", "width": 683, "id": 21143, "height": 512}, {"file_name": "ADE_val_00000935.jpg", "width": 320, "id": 21144, "height": 229}, {"file_name": "ADE_val_00000936.jpg", "width": 780, "id": 21145, "height": 512}, {"file_name": "ADE_val_00000937.jpg", "width": 512, "id": 21146, "height": 683}, {"file_name": "ADE_val_00000938.jpg", "width": 256, "id": 21147, "height": 256}, {"file_name": "ADE_val_00000939.jpg", "width": 764, "id": 21148, "height": 512}, {"file_name": "ADE_val_00000940.jpg", "width": 771, "id": 21149, "height": 512}, {"file_name": "ADE_val_00000941.jpg", "width": 256, "id": 21150, "height": 256}, {"file_name": "ADE_val_00000942.jpg", "width": 681, "id": 21151, "height": 512}, {"file_name": "ADE_val_00000943.jpg", "width": 225, "id": 21152, "height": 305}, {"file_name": "ADE_val_00000944.jpg", "width": 683, "id": 21153, "height": 512}, {"file_name": "ADE_val_00000945.jpg", "width": 256, "id": 21154, "height": 256}, {"file_name": "ADE_val_00000946.jpg", "width": 683, "id": 21155, "height": 512}, {"file_name": "ADE_val_00000947.jpg", "width": 683, "id": 21156, "height": 512}, {"file_name": "ADE_val_00000948.jpg", "width": 300, "id": 21157, "height": 450}, {"file_name": "ADE_val_00000949.jpg", "width": 771, "id": 21158, "height": 512}, {"file_name": "ADE_val_00000950.jpg", "width": 699, "id": 21159, "height": 512}, {"file_name": "ADE_val_00000951.jpg", "width": 512, "id": 21160, "height": 683}, {"file_name": "ADE_val_00000952.jpg", "width": 337, "id": 21161, "height": 450}, {"file_name": "ADE_val_00000953.jpg", "width": 256, "id": 21162, "height": 256}, {"file_name": "ADE_val_00000954.jpg", "width": 338, "id": 21163, "height": 450}, {"file_name": "ADE_val_00000955.jpg", "width": 256, "id": 21164, "height": 256}, {"file_name": "ADE_val_00000956.jpg", "width": 256, "id": 21165, "height": 256}, {"file_name": "ADE_val_00000957.jpg", "width": 499, "id": 21166, "height": 700}, {"file_name": "ADE_val_00000958.jpg", "width": 256, "id": 21167, "height": 256}, {"file_name": "ADE_val_00000959.jpg", "width": 683, "id": 21168, "height": 512}, {"file_name": "ADE_val_00000960.jpg", "width": 683, "id": 21169, "height": 512}, {"file_name": "ADE_val_00000961.jpg", "width": 683, "id": 21170, "height": 512}, {"file_name": "ADE_val_00000962.jpg", "width": 763, "id": 21171, "height": 512}, {"file_name": "ADE_val_00000963.jpg", "width": 683, "id": 21172, "height": 512}, {"file_name": "ADE_val_00000964.jpg", "width": 300, "id": 21173, "height": 225}, {"file_name": "ADE_val_00000965.jpg", "width": 768, "id": 21174, "height": 512}, {"file_name": "ADE_val_00000966.jpg", "width": 768, "id": 21175, "height": 512}, {"file_name": "ADE_val_00000967.jpg", "width": 768, "id": 21176, "height": 512}, {"file_name": "ADE_val_00000968.jpg", "width": 683, "id": 21177, "height": 512}, {"file_name": "ADE_val_00000969.jpg", "width": 768, "id": 21178, "height": 512}, {"file_name": "ADE_val_00000970.jpg", "width": 683, "id": 21179, "height": 512}, {"file_name": "ADE_val_00000971.jpg", "width": 683, "id": 21180, "height": 512}, {"file_name": "ADE_val_00000972.jpg", "width": 512, "id": 21181, "height": 513}, {"file_name": "ADE_val_00000973.jpg", "width": 683, "id": 21182, "height": 512}, {"file_name": "ADE_val_00000974.jpg", "width": 256, "id": 21183, "height": 256}, {"file_name": "ADE_val_00000975.jpg", "width": 256, "id": 21184, "height": 256}, {"file_name": "ADE_val_00000976.jpg", "width": 256, "id": 21185, "height": 256}, {"file_name": "ADE_val_00000977.jpg", "width": 683, "id": 21186, "height": 512}, {"file_name": "ADE_val_00000978.jpg", "width": 256, "id": 21187, "height": 256}, {"file_name": "ADE_val_00000979.jpg", "width": 465, "id": 21188, "height": 331}, {"file_name": "ADE_val_00000980.jpg", "width": 256, "id": 21189, "height": 256}, {"file_name": "ADE_val_00000981.jpg", "width": 328, "id": 21190, "height": 500}, {"file_name": "ADE_val_00000982.jpg", "width": 703, "id": 21191, "height": 512}, {"file_name": "ADE_val_00000983.jpg", "width": 295, "id": 21192, "height": 230}, {"file_name": "ADE_val_00000984.jpg", "width": 555, "id": 21193, "height": 416}, {"file_name": "ADE_val_00000985.jpg", "width": 891, "id": 21194, "height": 512}, {"file_name": "ADE_val_00000986.jpg", "width": 250, "id": 21195, "height": 174}, {"file_name": "ADE_val_00000987.jpg", "width": 256, "id": 21196, "height": 256}, {"file_name": "ADE_val_00000988.jpg", "width": 683, "id": 21197, "height": 512}, {"file_name": "ADE_val_00000989.jpg", "width": 256, "id": 21198, "height": 256}, {"file_name": "ADE_val_00000990.jpg", "width": 267, "id": 21199, "height": 200}, {"file_name": "ADE_val_00000991.jpg", "width": 256, "id": 21200, "height": 256}, {"file_name": "ADE_val_00000992.jpg", "width": 683, "id": 21201, "height": 512}, {"file_name": "ADE_val_00000993.jpg", "width": 683, "id": 21202, "height": 512}, {"file_name": "ADE_val_00000994.jpg", "width": 683, "id": 21203, "height": 512}, {"file_name": "ADE_val_00000995.jpg", "width": 683, "id": 21204, "height": 512}, {"file_name": "ADE_val_00000996.jpg", "width": 683, "id": 21205, "height": 512}, {"file_name": "ADE_val_00000997.jpg", "width": 512, "id": 21206, "height": 683}, {"file_name": "ADE_val_00000998.jpg", "width": 500, "id": 21207, "height": 333}, {"file_name": "ADE_val_00000999.jpg", "width": 256, "id": 21208, "height": 256}, {"file_name": "ADE_val_00001000.jpg", "width": 250, "id": 21209, "height": 200}, {"file_name": "ADE_val_00001001.jpg", "width": 512, "id": 21210, "height": 683}, {"file_name": "ADE_val_00001002.jpg", "width": 500, "id": 21211, "height": 374}, {"file_name": "ADE_val_00001003.jpg", "width": 683, "id": 21212, "height": 512}, {"file_name": "ADE_val_00001004.jpg", "width": 300, "id": 21213, "height": 225}, {"file_name": "ADE_val_00001005.jpg", "width": 683, "id": 21214, "height": 512}, {"file_name": "ADE_val_00001006.jpg", "width": 683, "id": 21215, "height": 512}, {"file_name": "ADE_val_00001007.jpg", "width": 683, "id": 21216, "height": 512}, {"file_name": "ADE_val_00001008.jpg", "width": 500, "id": 21217, "height": 375}, {"file_name": "ADE_val_00001009.jpg", "width": 683, "id": 21218, "height": 512}, {"file_name": "ADE_val_00001010.jpg", "width": 769, "id": 21219, "height": 512}, {"file_name": "ADE_val_00001011.jpg", "width": 683, "id": 21220, "height": 512}, {"file_name": "ADE_val_00001012.jpg", "width": 550, "id": 21221, "height": 550}, {"file_name": "ADE_val_00001013.jpg", "width": 683, "id": 21222, "height": 512}, {"file_name": "ADE_val_00001014.jpg", "width": 259, "id": 21223, "height": 504}, {"file_name": "ADE_val_00001015.jpg", "width": 512, "id": 21224, "height": 682}, {"file_name": "ADE_val_00001016.jpg", "width": 397, "id": 21225, "height": 590}, {"file_name": "ADE_val_00001017.jpg", "width": 683, "id": 21226, "height": 512}, {"file_name": "ADE_val_00001018.jpg", "width": 347, "id": 21227, "height": 260}, {"file_name": "ADE_val_00001019.jpg", "width": 768, "id": 21228, "height": 512}, {"file_name": "ADE_val_00001020.jpg", "width": 256, "id": 21229, "height": 256}, {"file_name": "ADE_val_00001021.jpg", "width": 371, "id": 21230, "height": 320}, {"file_name": "ADE_val_00001022.jpg", "width": 683, "id": 21231, "height": 512}, {"file_name": "ADE_val_00001023.jpg", "width": 300, "id": 21232, "height": 277}, {"file_name": "ADE_val_00001024.jpg", "width": 500, "id": 21233, "height": 375}, {"file_name": "ADE_val_00001025.jpg", "width": 683, "id": 21234, "height": 512}, {"file_name": "ADE_val_00001026.jpg", "width": 683, "id": 21235, "height": 512}, {"file_name": "ADE_val_00001027.jpg", "width": 512, "id": 21236, "height": 683}, {"file_name": "ADE_val_00001028.jpg", "width": 640, "id": 21237, "height": 480}, {"file_name": "ADE_val_00001029.jpg", "width": 573, "id": 21238, "height": 415}, {"file_name": "ADE_val_00001030.jpg", "width": 802, "id": 21239, "height": 512}, {"file_name": "ADE_val_00001031.jpg", "width": 683, "id": 21240, "height": 512}, {"file_name": "ADE_val_00001032.jpg", "width": 512, "id": 21241, "height": 683}, {"file_name": "ADE_val_00001033.jpg", "width": 984, "id": 21242, "height": 512}, {"file_name": "ADE_val_00001034.jpg", "width": 300, "id": 21243, "height": 225}, {"file_name": "ADE_val_00001035.jpg", "width": 683, "id": 21244, "height": 512}, {"file_name": "ADE_val_00001036.jpg", "width": 600, "id": 21245, "height": 450}, {"file_name": "ADE_val_00001037.jpg", "width": 657, "id": 21246, "height": 493}, {"file_name": "ADE_val_00001038.jpg", "width": 400, "id": 21247, "height": 300}, {"file_name": "ADE_val_00001039.jpg", "width": 500, "id": 21248, "height": 375}, {"file_name": "ADE_val_00001040.jpg", "width": 687, "id": 21249, "height": 512}, {"file_name": "ADE_val_00001041.jpg", "width": 512, "id": 21250, "height": 682}, {"file_name": "ADE_val_00001042.jpg", "width": 300, "id": 21251, "height": 213}, {"file_name": "ADE_val_00001043.jpg", "width": 308, "id": 21252, "height": 230}, {"file_name": "ADE_val_00001044.jpg", "width": 512, "id": 21253, "height": 757}, {"file_name": "ADE_val_00001045.jpg", "width": 683, "id": 21254, "height": 512}, {"file_name": "ADE_val_00001046.jpg", "width": 237, "id": 21255, "height": 215}, {"file_name": "ADE_val_00001047.jpg", "width": 683, "id": 21256, "height": 512}, {"file_name": "ADE_val_00001048.jpg", "width": 683, "id": 21257, "height": 512}, {"file_name": "ADE_val_00001049.jpg", "width": 340, "id": 21258, "height": 200}, {"file_name": "ADE_val_00001050.jpg", "width": 509, "id": 21259, "height": 342}, {"file_name": "ADE_val_00001051.jpg", "width": 706, "id": 21260, "height": 512}, {"file_name": "ADE_val_00001052.jpg", "width": 640, "id": 21261, "height": 480}, {"file_name": "ADE_val_00001053.jpg", "width": 318, "id": 21262, "height": 238}, {"file_name": "ADE_val_00001054.jpg", "width": 686, "id": 21263, "height": 512}, {"file_name": "ADE_val_00001055.jpg", "width": 300, "id": 21264, "height": 298}, {"file_name": "ADE_val_00001056.jpg", "width": 683, "id": 21265, "height": 512}, {"file_name": "ADE_val_00001057.jpg", "width": 326, "id": 21266, "height": 241}, {"file_name": "ADE_val_00001058.jpg", "width": 256, "id": 21267, "height": 256}, {"file_name": "ADE_val_00001059.jpg", "width": 500, "id": 21268, "height": 375}, {"file_name": "ADE_val_00001060.jpg", "width": 755, "id": 21269, "height": 512}, {"file_name": "ADE_val_00001061.jpg", "width": 683, "id": 21270, "height": 512}, {"file_name": "ADE_val_00001062.jpg", "width": 320, "id": 21271, "height": 240}, {"file_name": "ADE_val_00001063.jpg", "width": 300, "id": 21272, "height": 215}, {"file_name": "ADE_val_00001064.jpg", "width": 683, "id": 21273, "height": 512}, {"file_name": "ADE_val_00001065.jpg", "width": 400, "id": 21274, "height": 235}, {"file_name": "ADE_val_00001066.jpg", "width": 796, "id": 21275, "height": 512}, {"file_name": "ADE_val_00001067.jpg", "width": 434, "id": 21276, "height": 274}, {"file_name": "ADE_val_00001068.jpg", "width": 300, "id": 21277, "height": 214}, {"file_name": "ADE_val_00001069.jpg", "width": 568, "id": 21278, "height": 512}, {"file_name": "ADE_val_00001070.jpg", "width": 400, "id": 21279, "height": 300}, {"file_name": "ADE_val_00001071.jpg", "width": 384, "id": 21280, "height": 256}, {"file_name": "ADE_val_00001072.jpg", "width": 500, "id": 21281, "height": 400}, {"file_name": "ADE_val_00001073.jpg", "width": 640, "id": 21282, "height": 480}, {"file_name": "ADE_val_00001074.jpg", "width": 683, "id": 21283, "height": 512}, {"file_name": "ADE_val_00001075.jpg", "width": 683, "id": 21284, "height": 512}, {"file_name": "ADE_val_00001076.jpg", "width": 683, "id": 21285, "height": 512}, {"file_name": "ADE_val_00001077.jpg", "width": 512, "id": 21286, "height": 683}, {"file_name": "ADE_val_00001078.jpg", "width": 512, "id": 21287, "height": 683}, {"file_name": "ADE_val_00001079.jpg", "width": 683, "id": 21288, "height": 512}, {"file_name": "ADE_val_00001080.jpg", "width": 335, "id": 21289, "height": 512}, {"file_name": "ADE_val_00001081.jpg", "width": 683, "id": 21290, "height": 512}, {"file_name": "ADE_val_00001082.jpg", "width": 683, "id": 21291, "height": 512}, {"file_name": "ADE_val_00001083.jpg", "width": 512, "id": 21292, "height": 730}, {"file_name": "ADE_val_00001084.jpg", "width": 768, "id": 21293, "height": 512}, {"file_name": "ADE_val_00001085.jpg", "width": 512, "id": 21294, "height": 768}, {"file_name": "ADE_val_00001086.jpg", "width": 512, "id": 21295, "height": 683}, {"file_name": "ADE_val_00001087.jpg", "width": 256, "id": 21296, "height": 256}, {"file_name": "ADE_val_00001088.jpg", "width": 203, "id": 21297, "height": 270}, {"file_name": "ADE_val_00001089.jpg", "width": 285, "id": 21298, "height": 288}, {"file_name": "ADE_val_00001090.jpg", "width": 579, "id": 21299, "height": 512}, {"file_name": "ADE_val_00001091.jpg", "width": 512, "id": 21300, "height": 730}, {"file_name": "ADE_val_00001092.jpg", "width": 765, "id": 21301, "height": 512}, {"file_name": "ADE_val_00001093.jpg", "width": 256, "id": 21302, "height": 256}, {"file_name": "ADE_val_00001094.jpg", "width": 512, "id": 21303, "height": 683}, {"file_name": "ADE_val_00001095.jpg", "width": 512, "id": 21304, "height": 683}, {"file_name": "ADE_val_00001096.jpg", "width": 683, "id": 21305, "height": 512}, {"file_name": "ADE_val_00001097.jpg", "width": 512, "id": 21306, "height": 683}, {"file_name": "ADE_val_00001098.jpg", "width": 500, "id": 21307, "height": 750}, {"file_name": "ADE_val_00001099.jpg", "width": 256, "id": 21308, "height": 256}, {"file_name": "ADE_val_00001100.jpg", "width": 512, "id": 21309, "height": 683}, {"file_name": "ADE_val_00001101.jpg", "width": 256, "id": 21310, "height": 256}, {"file_name": "ADE_val_00001102.jpg", "width": 512, "id": 21311, "height": 683}, {"file_name": "ADE_val_00001103.jpg", "width": 497, "id": 21312, "height": 503}, {"file_name": "ADE_val_00001104.jpg", "width": 256, "id": 21313, "height": 256}, {"file_name": "ADE_val_00001105.jpg", "width": 512, "id": 21314, "height": 683}, {"file_name": "ADE_val_00001106.jpg", "width": 683, "id": 21315, "height": 512}, {"file_name": "ADE_val_00001107.jpg", "width": 419, "id": 21316, "height": 512}, {"file_name": "ADE_val_00001108.jpg", "width": 400, "id": 21317, "height": 533}, {"file_name": "ADE_val_00001109.jpg", "width": 512, "id": 21318, "height": 684}, {"file_name": "ADE_val_00001110.jpg", "width": 288, "id": 21319, "height": 172}, {"file_name": "ADE_val_00001111.jpg", "width": 431, "id": 21320, "height": 296}, {"file_name": "ADE_val_00001112.jpg", "width": 256, "id": 21321, "height": 256}, {"file_name": "ADE_val_00001113.jpg", "width": 256, "id": 21322, "height": 256}, {"file_name": "ADE_val_00001114.jpg", "width": 768, "id": 21323, "height": 512}, {"file_name": "ADE_val_00001115.jpg", "width": 375, "id": 21324, "height": 500}, {"file_name": "ADE_val_00001116.jpg", "width": 300, "id": 21325, "height": 225}, {"file_name": "ADE_val_00001117.jpg", "width": 683, "id": 21326, "height": 512}, {"file_name": "ADE_val_00001118.jpg", "width": 683, "id": 21327, "height": 512}, {"file_name": "ADE_val_00001119.jpg", "width": 512, "id": 21328, "height": 683}, {"file_name": "ADE_val_00001120.jpg", "width": 770, "id": 21329, "height": 512}, {"file_name": "ADE_val_00001121.jpg", "width": 256, "id": 21330, "height": 256}, {"file_name": "ADE_val_00001122.jpg", "width": 683, "id": 21331, "height": 512}, {"file_name": "ADE_val_00001123.jpg", "width": 239, "id": 21332, "height": 248}, {"file_name": "ADE_val_00001124.jpg", "width": 748, "id": 21333, "height": 512}, {"file_name": "ADE_val_00001125.jpg", "width": 683, "id": 21334, "height": 512}, {"file_name": "ADE_val_00001126.jpg", "width": 768, "id": 21335, "height": 512}, {"file_name": "ADE_val_00001127.jpg", "width": 681, "id": 21336, "height": 512}, {"file_name": "ADE_val_00001128.jpg", "width": 768, "id": 21337, "height": 512}, {"file_name": "ADE_val_00001129.jpg", "width": 683, "id": 21338, "height": 512}, {"file_name": "ADE_val_00001130.jpg", "width": 752, "id": 21339, "height": 512}, {"file_name": "ADE_val_00001131.jpg", "width": 683, "id": 21340, "height": 512}, {"file_name": "ADE_val_00001132.jpg", "width": 659, "id": 21341, "height": 491}, {"file_name": "ADE_val_00001133.jpg", "width": 765, "id": 21342, "height": 512}, {"file_name": "ADE_val_00001134.jpg", "width": 256, "id": 21343, "height": 256}, {"file_name": "ADE_val_00001135.jpg", "width": 400, "id": 21344, "height": 400}, {"file_name": "ADE_val_00001136.jpg", "width": 770, "id": 21345, "height": 512}, {"file_name": "ADE_val_00001137.jpg", "width": 350, "id": 21346, "height": 247}, {"file_name": "ADE_val_00001138.jpg", "width": 256, "id": 21347, "height": 256}, {"file_name": "ADE_val_00001139.jpg", "width": 683, "id": 21348, "height": 512}, {"file_name": "ADE_val_00001140.jpg", "width": 768, "id": 21349, "height": 512}, {"file_name": "ADE_val_00001141.jpg", "width": 256, "id": 21350, "height": 256}, {"file_name": "ADE_val_00001142.jpg", "width": 669, "id": 21351, "height": 512}, {"file_name": "ADE_val_00001143.jpg", "width": 255, "id": 21352, "height": 191}, {"file_name": "ADE_val_00001144.jpg", "width": 600, "id": 21353, "height": 400}, {"file_name": "ADE_val_00001145.jpg", "width": 683, "id": 21354, "height": 512}, {"file_name": "ADE_val_00001146.jpg", "width": 683, "id": 21355, "height": 512}, {"file_name": "ADE_val_00001147.jpg", "width": 512, "id": 21356, "height": 683}, {"file_name": "ADE_val_00001148.jpg", "width": 300, "id": 21357, "height": 225}, {"file_name": "ADE_val_00001149.jpg", "width": 500, "id": 21358, "height": 333}, {"file_name": "ADE_val_00001150.jpg", "width": 693, "id": 21359, "height": 512}, {"file_name": "ADE_val_00001151.jpg", "width": 512, "id": 21360, "height": 683}, {"file_name": "ADE_val_00001152.jpg", "width": 493, "id": 21361, "height": 371}, {"file_name": "ADE_val_00001153.jpg", "width": 683, "id": 21362, "height": 512}, {"file_name": "ADE_val_00001154.jpg", "width": 700, "id": 21363, "height": 460}, {"file_name": "ADE_val_00001155.jpg", "width": 500, "id": 21364, "height": 333}, {"file_name": "ADE_val_00001156.jpg", "width": 325, "id": 21365, "height": 217}, {"file_name": "ADE_val_00001157.jpg", "width": 1600, "id": 21366, "height": 1600}, {"file_name": "ADE_val_00001158.jpg", "width": 512, "id": 21367, "height": 376}, {"file_name": "ADE_val_00001159.jpg", "width": 256, "id": 21368, "height": 256}, {"file_name": "ADE_val_00001160.jpg", "width": 683, "id": 21369, "height": 512}, {"file_name": "ADE_val_00001161.jpg", "width": 683, "id": 21370, "height": 512}, {"file_name": "ADE_val_00001162.jpg", "width": 300, "id": 21371, "height": 225}, {"file_name": "ADE_val_00001163.jpg", "width": 683, "id": 21372, "height": 512}, {"file_name": "ADE_val_00001164.jpg", "width": 640, "id": 21373, "height": 427}, {"file_name": "ADE_val_00001165.jpg", "width": 683, "id": 21374, "height": 512}, {"file_name": "ADE_val_00001166.jpg", "width": 512, "id": 21375, "height": 340}, {"file_name": "ADE_val_00001167.jpg", "width": 683, "id": 21376, "height": 512}, {"file_name": "ADE_val_00001168.jpg", "width": 768, "id": 21377, "height": 512}, {"file_name": "ADE_val_00001169.jpg", "width": 641, "id": 21378, "height": 512}, {"file_name": "ADE_val_00001170.jpg", "width": 683, "id": 21379, "height": 512}, {"file_name": "ADE_val_00001171.jpg", "width": 683, "id": 21380, "height": 512}, {"file_name": "ADE_val_00001172.jpg", "width": 683, "id": 21381, "height": 512}, {"file_name": "ADE_val_00001173.jpg", "width": 768, "id": 21382, "height": 512}, {"file_name": "ADE_val_00001174.jpg", "width": 256, "id": 21383, "height": 256}, {"file_name": "ADE_val_00001175.jpg", "width": 768, "id": 21384, "height": 512}, {"file_name": "ADE_val_00001176.jpg", "width": 683, "id": 21385, "height": 512}, {"file_name": "ADE_val_00001177.jpg", "width": 512, "id": 21386, "height": 351}, {"file_name": "ADE_val_00001178.jpg", "width": 300, "id": 21387, "height": 225}, {"file_name": "ADE_val_00001179.jpg", "width": 640, "id": 21388, "height": 480}, {"file_name": "ADE_val_00001180.jpg", "width": 640, "id": 21389, "height": 480}, {"file_name": "ADE_val_00001181.jpg", "width": 768, "id": 21390, "height": 512}, {"file_name": "ADE_val_00001182.jpg", "width": 512, "id": 21391, "height": 683}, {"file_name": "ADE_val_00001183.jpg", "width": 683, "id": 21392, "height": 512}, {"file_name": "ADE_val_00001184.jpg", "width": 683, "id": 21393, "height": 512}, {"file_name": "ADE_val_00001185.jpg", "width": 512, "id": 21394, "height": 683}, {"file_name": "ADE_val_00001186.jpg", "width": 430, "id": 21395, "height": 509}, {"file_name": "ADE_val_00001187.jpg", "width": 320, "id": 21396, "height": 240}, {"file_name": "ADE_val_00001188.jpg", "width": 400, "id": 21397, "height": 222}, {"file_name": "ADE_val_00001189.jpg", "width": 650, "id": 21398, "height": 488}, {"file_name": "ADE_val_00001190.jpg", "width": 760, "id": 21399, "height": 512}, {"file_name": "ADE_val_00001191.jpg", "width": 300, "id": 21400, "height": 225}, {"file_name": "ADE_val_00001192.jpg", "width": 256, "id": 21401, "height": 256}, {"file_name": "ADE_val_00001193.jpg", "width": 500, "id": 21402, "height": 309}, {"file_name": "ADE_val_00001194.jpg", "width": 560, "id": 21403, "height": 418}, {"file_name": "ADE_val_00001195.jpg", "width": 690, "id": 21404, "height": 512}, {"file_name": "ADE_val_00001196.jpg", "width": 529, "id": 21405, "height": 395}, {"file_name": "ADE_val_00001197.jpg", "width": 640, "id": 21406, "height": 480}, {"file_name": "ADE_val_00001198.jpg", "width": 683, "id": 21407, "height": 512}, {"file_name": "ADE_val_00001199.jpg", "width": 256, "id": 21408, "height": 256}, {"file_name": "ADE_val_00001200.jpg", "width": 683, "id": 21409, "height": 512}, {"file_name": "ADE_val_00001201.jpg", "width": 400, "id": 21410, "height": 308}, {"file_name": "ADE_val_00001202.jpg", "width": 256, "id": 21411, "height": 256}, {"file_name": "ADE_val_00001203.jpg", "width": 256, "id": 21412, "height": 256}, {"file_name": "ADE_val_00001204.jpg", "width": 256, "id": 21413, "height": 256}, {"file_name": "ADE_val_00001205.jpg", "width": 256, "id": 21414, "height": 256}, {"file_name": "ADE_val_00001206.jpg", "width": 256, "id": 21415, "height": 256}, {"file_name": "ADE_val_00001207.jpg", "width": 256, "id": 21416, "height": 256}, {"file_name": "ADE_val_00001208.jpg", "width": 256, "id": 21417, "height": 256}, {"file_name": "ADE_val_00001209.jpg", "width": 256, "id": 21418, "height": 256}, {"file_name": "ADE_val_00001210.jpg", "width": 256, "id": 21419, "height": 256}, {"file_name": "ADE_val_00001211.jpg", "width": 256, "id": 21420, "height": 256}, {"file_name": "ADE_val_00001212.jpg", "width": 256, "id": 21421, "height": 256}, {"file_name": "ADE_val_00001213.jpg", "width": 768, "id": 21422, "height": 512}, {"file_name": "ADE_val_00001214.jpg", "width": 683, "id": 21423, "height": 512}, {"file_name": "ADE_val_00001215.jpg", "width": 512, "id": 21424, "height": 341}, {"file_name": "ADE_val_00001216.jpg", "width": 500, "id": 21425, "height": 375}, {"file_name": "ADE_val_00001217.jpg", "width": 425, "id": 21426, "height": 282}, {"file_name": "ADE_val_00001218.jpg", "width": 350, "id": 21427, "height": 224}, {"file_name": "ADE_val_00001219.jpg", "width": 768, "id": 21428, "height": 512}, {"file_name": "ADE_val_00001220.jpg", "width": 375, "id": 21429, "height": 234}, {"file_name": "ADE_val_00001221.jpg", "width": 768, "id": 21430, "height": 512}, {"file_name": "ADE_val_00001222.jpg", "width": 256, "id": 21431, "height": 256}, {"file_name": "ADE_val_00001223.jpg", "width": 500, "id": 21432, "height": 379}, {"file_name": "ADE_val_00001224.jpg", "width": 765, "id": 21433, "height": 512}, {"file_name": "ADE_val_00001225.jpg", "width": 683, "id": 21434, "height": 512}, {"file_name": "ADE_val_00001226.jpg", "width": 500, "id": 21435, "height": 394}, {"file_name": "ADE_val_00001227.jpg", "width": 700, "id": 21436, "height": 512}, {"file_name": "ADE_val_00001228.jpg", "width": 480, "id": 21437, "height": 329}, {"file_name": "ADE_val_00001229.jpg", "width": 683, "id": 21438, "height": 512}, {"file_name": "ADE_val_00001230.jpg", "width": 400, "id": 21439, "height": 272}, {"file_name": "ADE_val_00001231.jpg", "width": 216, "id": 21440, "height": 350}, {"file_name": "ADE_val_00001232.jpg", "width": 683, "id": 21441, "height": 512}, {"file_name": "ADE_val_00001233.jpg", "width": 384, "id": 21442, "height": 256}, {"file_name": "ADE_val_00001234.jpg", "width": 683, "id": 21443, "height": 512}, {"file_name": "ADE_val_00001235.jpg", "width": 256, "id": 21444, "height": 256}, {"file_name": "ADE_val_00001236.jpg", "width": 508, "id": 21445, "height": 340}, {"file_name": "ADE_val_00001237.jpg", "width": 683, "id": 21446, "height": 512}, {"file_name": "ADE_val_00001238.jpg", "width": 320, "id": 21447, "height": 240}, {"file_name": "ADE_val_00001239.jpg", "width": 456, "id": 21448, "height": 433}, {"file_name": "ADE_val_00001240.jpg", "width": 400, "id": 21449, "height": 298}, {"file_name": "ADE_val_00001241.jpg", "width": 640, "id": 21450, "height": 480}, {"file_name": "ADE_val_00001242.jpg", "width": 440, "id": 21451, "height": 398}, {"file_name": "ADE_val_00001243.jpg", "width": 620, "id": 21452, "height": 512}, {"file_name": "ADE_val_00001244.jpg", "width": 690, "id": 21453, "height": 499}, {"file_name": "ADE_val_00001245.jpg", "width": 686, "id": 21454, "height": 457}, {"file_name": "ADE_val_00001246.jpg", "width": 235, "id": 21455, "height": 349}, {"file_name": "ADE_val_00001247.jpg", "width": 500, "id": 21456, "height": 333}, {"file_name": "ADE_val_00001248.jpg", "width": 256, "id": 21457, "height": 256}, {"file_name": "ADE_val_00001249.jpg", "width": 683, "id": 21458, "height": 512}, {"file_name": "ADE_val_00001250.jpg", "width": 256, "id": 21459, "height": 256}, {"file_name": "ADE_val_00001251.jpg", "width": 256, "id": 21460, "height": 256}, {"file_name": "ADE_val_00001252.jpg", "width": 284, "id": 21461, "height": 412}, {"file_name": "ADE_val_00001253.jpg", "width": 256, "id": 21462, "height": 256}, {"file_name": "ADE_val_00001254.jpg", "width": 683, "id": 21463, "height": 512}, {"file_name": "ADE_val_00001255.jpg", "width": 680, "id": 21464, "height": 512}, {"file_name": "ADE_val_00001256.jpg", "width": 256, "id": 21465, "height": 256}, {"file_name": "ADE_val_00001257.jpg", "width": 396, "id": 21466, "height": 308}, {"file_name": "ADE_val_00001258.jpg", "width": 256, "id": 21467, "height": 256}, {"file_name": "ADE_val_00001259.jpg", "width": 384, "id": 21468, "height": 255}, {"file_name": "ADE_val_00001260.jpg", "width": 256, "id": 21469, "height": 256}, {"file_name": "ADE_val_00001261.jpg", "width": 256, "id": 21470, "height": 256}, {"file_name": "ADE_val_00001262.jpg", "width": 683, "id": 21471, "height": 512}, {"file_name": "ADE_val_00001263.jpg", "width": 683, "id": 21472, "height": 512}, {"file_name": "ADE_val_00001264.jpg", "width": 768, "id": 21473, "height": 512}, {"file_name": "ADE_val_00001265.jpg", "width": 683, "id": 21474, "height": 512}, {"file_name": "ADE_val_00001266.jpg", "width": 769, "id": 21475, "height": 512}, {"file_name": "ADE_val_00001267.jpg", "width": 256, "id": 21476, "height": 256}, {"file_name": "ADE_val_00001268.jpg", "width": 256, "id": 21477, "height": 256}, {"file_name": "ADE_val_00001269.jpg", "width": 256, "id": 21478, "height": 256}, {"file_name": "ADE_val_00001270.jpg", "width": 256, "id": 21479, "height": 256}, {"file_name": "ADE_val_00001271.jpg", "width": 256, "id": 21480, "height": 256}, {"file_name": "ADE_val_00001272.jpg", "width": 683, "id": 21481, "height": 512}, {"file_name": "ADE_val_00001273.jpg", "width": 683, "id": 21482, "height": 512}, {"file_name": "ADE_val_00001274.jpg", "width": 683, "id": 21483, "height": 512}, {"file_name": "ADE_val_00001275.jpg", "width": 760, "id": 21484, "height": 512}, {"file_name": "ADE_val_00001276.jpg", "width": 683, "id": 21485, "height": 512}, {"file_name": "ADE_val_00001277.jpg", "width": 683, "id": 21486, "height": 512}, {"file_name": "ADE_val_00001278.jpg", "width": 288, "id": 21487, "height": 206}, {"file_name": "ADE_val_00001279.jpg", "width": 683, "id": 21488, "height": 512}, {"file_name": "ADE_val_00001280.jpg", "width": 256, "id": 21489, "height": 256}, {"file_name": "ADE_val_00001281.jpg", "width": 256, "id": 21490, "height": 256}, {"file_name": "ADE_val_00001282.jpg", "width": 450, "id": 21491, "height": 301}, {"file_name": "ADE_val_00001283.jpg", "width": 256, "id": 21492, "height": 256}, {"file_name": "ADE_val_00001284.jpg", "width": 683, "id": 21493, "height": 512}, {"file_name": "ADE_val_00001285.jpg", "width": 357, "id": 21494, "height": 256}, {"file_name": "ADE_val_00001286.jpg", "width": 550, "id": 21495, "height": 435}, {"file_name": "ADE_val_00001287.jpg", "width": 600, "id": 21496, "height": 450}, {"file_name": "ADE_val_00001288.jpg", "width": 256, "id": 21497, "height": 256}, {"file_name": "ADE_val_00001289.jpg", "width": 256, "id": 21498, "height": 256}, {"file_name": "ADE_val_00001290.jpg", "width": 683, "id": 21499, "height": 512}, {"file_name": "ADE_val_00001291.jpg", "width": 683, "id": 21500, "height": 512}, {"file_name": "ADE_val_00001292.jpg", "width": 769, "id": 21501, "height": 512}, {"file_name": "ADE_val_00001293.jpg", "width": 300, "id": 21502, "height": 400}, {"file_name": "ADE_val_00001294.jpg", "width": 422, "id": 21503, "height": 281}, {"file_name": "ADE_val_00001295.jpg", "width": 333, "id": 21504, "height": 250}, {"file_name": "ADE_val_00001296.jpg", "width": 500, "id": 21505, "height": 375}, {"file_name": "ADE_val_00001297.jpg", "width": 683, "id": 21506, "height": 512}, {"file_name": "ADE_val_00001298.jpg", "width": 683, "id": 21507, "height": 512}, {"file_name": "ADE_val_00001299.jpg", "width": 256, "id": 21508, "height": 256}, {"file_name": "ADE_val_00001300.jpg", "width": 683, "id": 21509, "height": 512}, {"file_name": "ADE_val_00001301.jpg", "width": 300, "id": 21510, "height": 225}, {"file_name": "ADE_val_00001302.jpg", "width": 768, "id": 21511, "height": 512}, {"file_name": "ADE_val_00001303.jpg", "width": 274, "id": 21512, "height": 300}, {"file_name": "ADE_val_00001304.jpg", "width": 300, "id": 21513, "height": 223}, {"file_name": "ADE_val_00001305.jpg", "width": 500, "id": 21514, "height": 333}, {"file_name": "ADE_val_00001306.jpg", "width": 236, "id": 21515, "height": 352}, {"file_name": "ADE_val_00001307.jpg", "width": 763, "id": 21516, "height": 512}, {"file_name": "ADE_val_00001308.jpg", "width": 768, "id": 21517, "height": 512}, {"file_name": "ADE_val_00001309.jpg", "width": 584, "id": 21518, "height": 512}, {"file_name": "ADE_val_00001310.jpg", "width": 512, "id": 21519, "height": 520}, {"file_name": "ADE_val_00001311.jpg", "width": 768, "id": 21520, "height": 512}, {"file_name": "ADE_val_00001312.jpg", "width": 765, "id": 21521, "height": 512}, {"file_name": "ADE_val_00001313.jpg", "width": 256, "id": 21522, "height": 256}, {"file_name": "ADE_val_00001314.jpg", "width": 256, "id": 21523, "height": 256}, {"file_name": "ADE_val_00001315.jpg", "width": 768, "id": 21524, "height": 512}, {"file_name": "ADE_val_00001316.jpg", "width": 256, "id": 21525, "height": 256}, {"file_name": "ADE_val_00001317.jpg", "width": 256, "id": 21526, "height": 256}, {"file_name": "ADE_val_00001318.jpg", "width": 640, "id": 21527, "height": 428}, {"file_name": "ADE_val_00001319.jpg", "width": 256, "id": 21528, "height": 256}, {"file_name": "ADE_val_00001320.jpg", "width": 683, "id": 21529, "height": 512}, {"file_name": "ADE_val_00001321.jpg", "width": 682, "id": 21530, "height": 512}, {"file_name": "ADE_val_00001322.jpg", "width": 683, "id": 21531, "height": 512}, {"file_name": "ADE_val_00001323.jpg", "width": 683, "id": 21532, "height": 512}, {"file_name": "ADE_val_00001324.jpg", "width": 319, "id": 21533, "height": 240}, {"file_name": "ADE_val_00001325.jpg", "width": 586, "id": 21534, "height": 390}, {"file_name": "ADE_val_00001326.jpg", "width": 250, "id": 21535, "height": 286}, {"file_name": "ADE_val_00001327.jpg", "width": 300, "id": 21536, "height": 400}, {"file_name": "ADE_val_00001328.jpg", "width": 256, "id": 21537, "height": 384}, {"file_name": "ADE_val_00001329.jpg", "width": 500, "id": 21538, "height": 375}, {"file_name": "ADE_val_00001330.jpg", "width": 684, "id": 21539, "height": 512}, {"file_name": "ADE_val_00001331.jpg", "width": 771, "id": 21540, "height": 512}, {"file_name": "ADE_val_00001332.jpg", "width": 683, "id": 21541, "height": 512}, {"file_name": "ADE_val_00001333.jpg", "width": 683, "id": 21542, "height": 512}, {"file_name": "ADE_val_00001334.jpg", "width": 683, "id": 21543, "height": 512}, {"file_name": "ADE_val_00001335.jpg", "width": 683, "id": 21544, "height": 512}, {"file_name": "ADE_val_00001336.jpg", "width": 683, "id": 21545, "height": 512}, {"file_name": "ADE_val_00001337.jpg", "width": 768, "id": 21546, "height": 512}, {"file_name": "ADE_val_00001338.jpg", "width": 512, "id": 21547, "height": 771}, {"file_name": "ADE_val_00001339.jpg", "width": 300, "id": 21548, "height": 228}, {"file_name": "ADE_val_00001340.jpg", "width": 640, "id": 21549, "height": 480}, {"file_name": "ADE_val_00001341.jpg", "width": 425, "id": 21550, "height": 319}, {"file_name": "ADE_val_00001342.jpg", "width": 210, "id": 21551, "height": 281}, {"file_name": "ADE_val_00001343.jpg", "width": 683, "id": 21552, "height": 512}, {"file_name": "ADE_val_00001344.jpg", "width": 690, "id": 21553, "height": 512}, {"file_name": "ADE_val_00001345.jpg", "width": 663, "id": 21554, "height": 512}, {"file_name": "ADE_val_00001346.jpg", "width": 634, "id": 21555, "height": 478}, {"file_name": "ADE_val_00001347.jpg", "width": 683, "id": 21556, "height": 512}, {"file_name": "ADE_val_00001348.jpg", "width": 256, "id": 21557, "height": 256}, {"file_name": "ADE_val_00001349.jpg", "width": 256, "id": 21558, "height": 256}, {"file_name": "ADE_val_00001350.jpg", "width": 256, "id": 21559, "height": 256}, {"file_name": "ADE_val_00001351.jpg", "width": 256, "id": 21560, "height": 256}, {"file_name": "ADE_val_00001352.jpg", "width": 212, "id": 21561, "height": 300}, {"file_name": "ADE_val_00001353.jpg", "width": 683, "id": 21562, "height": 512}, {"file_name": "ADE_val_00001354.jpg", "width": 239, "id": 21563, "height": 320}, {"file_name": "ADE_val_00001355.jpg", "width": 488, "id": 21564, "height": 639}, {"file_name": "ADE_val_00001356.jpg", "width": 256, "id": 21565, "height": 256}, {"file_name": "ADE_val_00001357.jpg", "width": 640, "id": 21566, "height": 480}, {"file_name": "ADE_val_00001358.jpg", "width": 320, "id": 21567, "height": 232}, {"file_name": "ADE_val_00001359.jpg", "width": 300, "id": 21568, "height": 220}, {"file_name": "ADE_val_00001360.jpg", "width": 256, "id": 21569, "height": 256}, {"file_name": "ADE_val_00001361.jpg", "width": 256, "id": 21570, "height": 256}, {"file_name": "ADE_val_00001362.jpg", "width": 256, "id": 21571, "height": 256}, {"file_name": "ADE_val_00001363.jpg", "width": 256, "id": 21572, "height": 256}, {"file_name": "ADE_val_00001364.jpg", "width": 256, "id": 21573, "height": 256}, {"file_name": "ADE_val_00001365.jpg", "width": 256, "id": 21574, "height": 256}, {"file_name": "ADE_val_00001366.jpg", "width": 256, "id": 21575, "height": 256}, {"file_name": "ADE_val_00001367.jpg", "width": 469, "id": 21576, "height": 744}, {"file_name": "ADE_val_00001368.jpg", "width": 768, "id": 21577, "height": 512}, {"file_name": "ADE_val_00001369.jpg", "width": 683, "id": 21578, "height": 512}, {"file_name": "ADE_val_00001370.jpg", "width": 640, "id": 21579, "height": 480}, {"file_name": "ADE_val_00001371.jpg", "width": 307, "id": 21580, "height": 230}, {"file_name": "ADE_val_00001372.jpg", "width": 400, "id": 21581, "height": 287}, {"file_name": "ADE_val_00001373.jpg", "width": 690, "id": 21582, "height": 462}, {"file_name": "ADE_val_00001374.jpg", "width": 683, "id": 21583, "height": 512}, {"file_name": "ADE_val_00001375.jpg", "width": 683, "id": 21584, "height": 512}, {"file_name": "ADE_val_00001376.jpg", "width": 683, "id": 21585, "height": 512}, {"file_name": "ADE_val_00001377.jpg", "width": 303, "id": 21586, "height": 399}, {"file_name": "ADE_val_00001378.jpg", "width": 768, "id": 21587, "height": 512}, {"file_name": "ADE_val_00001379.jpg", "width": 512, "id": 21588, "height": 779}, {"file_name": "ADE_val_00001380.jpg", "width": 683, "id": 21589, "height": 512}, {"file_name": "ADE_val_00001381.jpg", "width": 683, "id": 21590, "height": 512}, {"file_name": "ADE_val_00001382.jpg", "width": 483, "id": 21591, "height": 349}, {"file_name": "ADE_val_00001383.jpg", "width": 683, "id": 21592, "height": 512}, {"file_name": "ADE_val_00001384.jpg", "width": 437, "id": 21593, "height": 296}, {"file_name": "ADE_val_00001385.jpg", "width": 683, "id": 21594, "height": 512}, {"file_name": "ADE_val_00001386.jpg", "width": 310, "id": 21595, "height": 207}, {"file_name": "ADE_val_00001387.jpg", "width": 250, "id": 21596, "height": 194}, {"file_name": "ADE_val_00001388.jpg", "width": 683, "id": 21597, "height": 512}, {"file_name": "ADE_val_00001389.jpg", "width": 683, "id": 21598, "height": 512}, {"file_name": "ADE_val_00001390.jpg", "width": 766, "id": 21599, "height": 512}, {"file_name": "ADE_val_00001391.jpg", "width": 450, "id": 21600, "height": 290}, {"file_name": "ADE_val_00001392.jpg", "width": 448, "id": 21601, "height": 256}, {"file_name": "ADE_val_00001393.jpg", "width": 480, "id": 21602, "height": 363}, {"file_name": "ADE_val_00001394.jpg", "width": 480, "id": 21603, "height": 360}, {"file_name": "ADE_val_00001395.jpg", "width": 256, "id": 21604, "height": 256}, {"file_name": "ADE_val_00001396.jpg", "width": 300, "id": 21605, "height": 225}, {"file_name": "ADE_val_00001397.jpg", "width": 432, "id": 21606, "height": 576}, {"file_name": "ADE_val_00001398.jpg", "width": 683, "id": 21607, "height": 512}, {"file_name": "ADE_val_00001399.jpg", "width": 702, "id": 21608, "height": 423}, {"file_name": "ADE_val_00001400.jpg", "width": 311, "id": 21609, "height": 244}, {"file_name": "ADE_val_00001401.jpg", "width": 771, "id": 21610, "height": 512}, {"file_name": "ADE_val_00001402.jpg", "width": 768, "id": 21611, "height": 512}, {"file_name": "ADE_val_00001403.jpg", "width": 353, "id": 21612, "height": 249}, {"file_name": "ADE_val_00001404.jpg", "width": 683, "id": 21613, "height": 512}, {"file_name": "ADE_val_00001405.jpg", "width": 256, "id": 21614, "height": 256}, {"file_name": "ADE_val_00001406.jpg", "width": 256, "id": 21615, "height": 256}, {"file_name": "ADE_val_00001407.jpg", "width": 256, "id": 21616, "height": 256}, {"file_name": "ADE_val_00001408.jpg", "width": 256, "id": 21617, "height": 256}, {"file_name": "ADE_val_00001409.jpg", "width": 256, "id": 21618, "height": 256}, {"file_name": "ADE_val_00001410.jpg", "width": 256, "id": 21619, "height": 256}, {"file_name": "ADE_val_00001411.jpg", "width": 256, "id": 21620, "height": 256}, {"file_name": "ADE_val_00001412.jpg", "width": 256, "id": 21621, "height": 256}, {"file_name": "ADE_val_00001413.jpg", "width": 256, "id": 21622, "height": 256}, {"file_name": "ADE_val_00001414.jpg", "width": 256, "id": 21623, "height": 256}, {"file_name": "ADE_val_00001415.jpg", "width": 256, "id": 21624, "height": 256}, {"file_name": "ADE_val_00001416.jpg", "width": 256, "id": 21625, "height": 256}, {"file_name": "ADE_val_00001417.jpg", "width": 683, "id": 21626, "height": 512}, {"file_name": "ADE_val_00001418.jpg", "width": 256, "id": 21627, "height": 256}, {"file_name": "ADE_val_00001419.jpg", "width": 256, "id": 21628, "height": 256}, {"file_name": "ADE_val_00001420.jpg", "width": 500, "id": 21629, "height": 390}, {"file_name": "ADE_val_00001421.jpg", "width": 683, "id": 21630, "height": 512}, {"file_name": "ADE_val_00001422.jpg", "width": 512, "id": 21631, "height": 683}, {"file_name": "ADE_val_00001423.jpg", "width": 683, "id": 21632, "height": 512}, {"file_name": "ADE_val_00001424.jpg", "width": 383, "id": 21633, "height": 234}, {"file_name": "ADE_val_00001425.jpg", "width": 399, "id": 21634, "height": 571}, {"file_name": "ADE_val_00001426.jpg", "width": 485, "id": 21635, "height": 361}, {"file_name": "ADE_val_00001427.jpg", "width": 250, "id": 21636, "height": 250}, {"file_name": "ADE_val_00001428.jpg", "width": 355, "id": 21637, "height": 317}, {"file_name": "ADE_val_00001429.jpg", "width": 683, "id": 21638, "height": 512}, {"file_name": "ADE_val_00001430.jpg", "width": 683, "id": 21639, "height": 512}, {"file_name": "ADE_val_00001431.jpg", "width": 350, "id": 21640, "height": 234}, {"file_name": "ADE_val_00001432.jpg", "width": 683, "id": 21641, "height": 512}, {"file_name": "ADE_val_00001433.jpg", "width": 888, "id": 21642, "height": 512}, {"file_name": "ADE_val_00001434.jpg", "width": 683, "id": 21643, "height": 512}, {"file_name": "ADE_val_00001435.jpg", "width": 256, "id": 21644, "height": 256}, {"file_name": "ADE_val_00001436.jpg", "width": 680, "id": 21645, "height": 512}, {"file_name": "ADE_val_00001437.jpg", "width": 640, "id": 21646, "height": 480}, {"file_name": "ADE_val_00001438.jpg", "width": 401, "id": 21647, "height": 289}, {"file_name": "ADE_val_00001439.jpg", "width": 683, "id": 21648, "height": 512}, {"file_name": "ADE_val_00001440.jpg", "width": 500, "id": 21649, "height": 340}, {"file_name": "ADE_val_00001441.jpg", "width": 384, "id": 21650, "height": 256}, {"file_name": "ADE_val_00001442.jpg", "width": 634, "id": 21651, "height": 512}, {"file_name": "ADE_val_00001443.jpg", "width": 400, "id": 21652, "height": 300}, {"file_name": "ADE_val_00001444.jpg", "width": 360, "id": 21653, "height": 254}, {"file_name": "ADE_val_00001445.jpg", "width": 541, "id": 21654, "height": 431}, {"file_name": "ADE_val_00001446.jpg", "width": 500, "id": 21655, "height": 326}, {"file_name": "ADE_val_00001447.jpg", "width": 247, "id": 21656, "height": 356}, {"file_name": "ADE_val_00001448.jpg", "width": 683, "id": 21657, "height": 512}, {"file_name": "ADE_val_00001449.jpg", "width": 681, "id": 21658, "height": 512}, {"file_name": "ADE_val_00001450.jpg", "width": 232, "id": 21659, "height": 316}, {"file_name": "ADE_val_00001451.jpg", "width": 256, "id": 21660, "height": 256}, {"file_name": "ADE_val_00001452.jpg", "width": 683, "id": 21661, "height": 512}, {"file_name": "ADE_val_00001453.jpg", "width": 320, "id": 21662, "height": 240}, {"file_name": "ADE_val_00001454.jpg", "width": 683, "id": 21663, "height": 512}, {"file_name": "ADE_val_00001455.jpg", "width": 683, "id": 21664, "height": 512}, {"file_name": "ADE_val_00001456.jpg", "width": 512, "id": 21665, "height": 683}, {"file_name": "ADE_val_00001457.jpg", "width": 683, "id": 21666, "height": 512}, {"file_name": "ADE_val_00001458.jpg", "width": 640, "id": 21667, "height": 479}, {"file_name": "ADE_val_00001459.jpg", "width": 640, "id": 21668, "height": 480}, {"file_name": "ADE_val_00001460.jpg", "width": 256, "id": 21669, "height": 256}, {"file_name": "ADE_val_00001461.jpg", "width": 768, "id": 21670, "height": 512}, {"file_name": "ADE_val_00001462.jpg", "width": 683, "id": 21671, "height": 512}, {"file_name": "ADE_val_00001463.jpg", "width": 300, "id": 21672, "height": 199}, {"file_name": "ADE_val_00001464.jpg", "width": 683, "id": 21673, "height": 512}, {"file_name": "ADE_val_00001465.jpg", "width": 683, "id": 21674, "height": 512}, {"file_name": "ADE_val_00001466.jpg", "width": 683, "id": 21675, "height": 512}, {"file_name": "ADE_val_00001467.jpg", "width": 683, "id": 21676, "height": 512}, {"file_name": "ADE_val_00001468.jpg", "width": 640, "id": 21677, "height": 480}, {"file_name": "ADE_val_00001469.jpg", "width": 683, "id": 21678, "height": 512}, {"file_name": "ADE_val_00001470.jpg", "width": 683, "id": 21679, "height": 512}, {"file_name": "ADE_val_00001471.jpg", "width": 683, "id": 21680, "height": 512}, {"file_name": "ADE_val_00001472.jpg", "width": 669, "id": 21681, "height": 512}, {"file_name": "ADE_val_00001473.jpg", "width": 256, "id": 21682, "height": 256}, {"file_name": "ADE_val_00001474.jpg", "width": 768, "id": 21683, "height": 512}, {"file_name": "ADE_val_00001475.jpg", "width": 766, "id": 21684, "height": 512}, {"file_name": "ADE_val_00001476.jpg", "width": 576, "id": 21685, "height": 432}, {"file_name": "ADE_val_00001477.jpg", "width": 512, "id": 21686, "height": 340}, {"file_name": "ADE_val_00001478.jpg", "width": 683, "id": 21687, "height": 512}, {"file_name": "ADE_val_00001479.jpg", "width": 256, "id": 21688, "height": 256}, {"file_name": "ADE_val_00001480.jpg", "width": 225, "id": 21689, "height": 300}, {"file_name": "ADE_val_00001481.jpg", "width": 300, "id": 21690, "height": 225}, {"file_name": "ADE_val_00001482.jpg", "width": 256, "id": 21691, "height": 256}, {"file_name": "ADE_val_00001483.jpg", "width": 256, "id": 21692, "height": 256}, {"file_name": "ADE_val_00001484.jpg", "width": 225, "id": 21693, "height": 300}, {"file_name": "ADE_val_00001485.jpg", "width": 480, "id": 21694, "height": 640}, {"file_name": "ADE_val_00001486.jpg", "width": 640, "id": 21695, "height": 480}, {"file_name": "ADE_val_00001487.jpg", "width": 640, "id": 21696, "height": 512}, {"file_name": "ADE_val_00001488.jpg", "width": 683, "id": 21697, "height": 512}, {"file_name": "ADE_val_00001489.jpg", "width": 228, "id": 21698, "height": 298}, {"file_name": "ADE_val_00001490.jpg", "width": 683, "id": 21699, "height": 512}, {"file_name": "ADE_val_00001491.jpg", "width": 256, "id": 21700, "height": 256}, {"file_name": "ADE_val_00001492.jpg", "width": 256, "id": 21701, "height": 256}, {"file_name": "ADE_val_00001493.jpg", "width": 500, "id": 21702, "height": 356}, {"file_name": "ADE_val_00001494.jpg", "width": 500, "id": 21703, "height": 397}, {"file_name": "ADE_val_00001495.jpg", "width": 683, "id": 21704, "height": 512}, {"file_name": "ADE_val_00001496.jpg", "width": 360, "id": 21705, "height": 270}, {"file_name": "ADE_val_00001497.jpg", "width": 683, "id": 21706, "height": 512}, {"file_name": "ADE_val_00001498.jpg", "width": 256, "id": 21707, "height": 256}, {"file_name": "ADE_val_00001499.jpg", "width": 512, "id": 21708, "height": 683}, {"file_name": "ADE_val_00001500.jpg", "width": 300, "id": 21709, "height": 225}, {"file_name": "ADE_val_00001501.jpg", "width": 867, "id": 21710, "height": 512}, {"file_name": "ADE_val_00001502.jpg", "width": 763, "id": 21711, "height": 512}, {"file_name": "ADE_val_00001503.jpg", "width": 300, "id": 21712, "height": 225}, {"file_name": "ADE_val_00001504.jpg", "width": 480, "id": 21713, "height": 640}, {"file_name": "ADE_val_00001505.jpg", "width": 683, "id": 21714, "height": 512}, {"file_name": "ADE_val_00001506.jpg", "width": 700, "id": 21715, "height": 468}, {"file_name": "ADE_val_00001507.jpg", "width": 256, "id": 21716, "height": 256}, {"file_name": "ADE_val_00001508.jpg", "width": 768, "id": 21717, "height": 512}, {"file_name": "ADE_val_00001509.jpg", "width": 767, "id": 21718, "height": 512}, {"file_name": "ADE_val_00001510.jpg", "width": 512, "id": 21719, "height": 768}, {"file_name": "ADE_val_00001511.jpg", "width": 768, "id": 21720, "height": 512}, {"file_name": "ADE_val_00001512.jpg", "width": 683, "id": 21721, "height": 512}, {"file_name": "ADE_val_00001513.jpg", "width": 763, "id": 21722, "height": 512}, {"file_name": "ADE_val_00001514.jpg", "width": 785, "id": 21723, "height": 512}, {"file_name": "ADE_val_00001515.jpg", "width": 806, "id": 21724, "height": 512}, {"file_name": "ADE_val_00001516.jpg", "width": 256, "id": 21725, "height": 256}, {"file_name": "ADE_val_00001517.jpg", "width": 768, "id": 21726, "height": 512}, {"file_name": "ADE_val_00001518.jpg", "width": 720, "id": 21727, "height": 480}, {"file_name": "ADE_val_00001519.jpg", "width": 768, "id": 21728, "height": 512}, {"file_name": "ADE_val_00001520.jpg", "width": 656, "id": 21729, "height": 512}, {"file_name": "ADE_val_00001521.jpg", "width": 678, "id": 21730, "height": 434}, {"file_name": "ADE_val_00001522.jpg", "width": 771, "id": 21731, "height": 512}, {"file_name": "ADE_val_00001523.jpg", "width": 768, "id": 21732, "height": 512}, {"file_name": "ADE_val_00001524.jpg", "width": 300, "id": 21733, "height": 225}, {"file_name": "ADE_val_00001525.jpg", "width": 733, "id": 21734, "height": 512}, {"file_name": "ADE_val_00001526.jpg", "width": 771, "id": 21735, "height": 512}, {"file_name": "ADE_val_00001527.jpg", "width": 640, "id": 21736, "height": 428}, {"file_name": "ADE_val_00001528.jpg", "width": 256, "id": 21737, "height": 256}, {"file_name": "ADE_val_00001529.jpg", "width": 256, "id": 21738, "height": 256}, {"file_name": "ADE_val_00001530.jpg", "width": 320, "id": 21739, "height": 240}, {"file_name": "ADE_val_00001531.jpg", "width": 816, "id": 21740, "height": 512}, {"file_name": "ADE_val_00001532.jpg", "width": 683, "id": 21741, "height": 512}, {"file_name": "ADE_val_00001533.jpg", "width": 640, "id": 21742, "height": 480}, {"file_name": "ADE_val_00001534.jpg", "width": 768, "id": 21743, "height": 512}, {"file_name": "ADE_val_00001535.jpg", "width": 350, "id": 21744, "height": 350}, {"file_name": "ADE_val_00001536.jpg", "width": 400, "id": 21745, "height": 300}, {"file_name": "ADE_val_00001537.jpg", "width": 640, "id": 21746, "height": 480}, {"file_name": "ADE_val_00001538.jpg", "width": 341, "id": 21747, "height": 239}, {"file_name": "ADE_val_00001539.jpg", "width": 512, "id": 21748, "height": 683}, {"file_name": "ADE_val_00001540.jpg", "width": 300, "id": 21749, "height": 225}, {"file_name": "ADE_val_00001541.jpg", "width": 400, "id": 21750, "height": 300}, {"file_name": "ADE_val_00001542.jpg", "width": 640, "id": 21751, "height": 480}, {"file_name": "ADE_val_00001543.jpg", "width": 250, "id": 21752, "height": 250}, {"file_name": "ADE_val_00001544.jpg", "width": 771, "id": 21753, "height": 512}, {"file_name": "ADE_val_00001545.jpg", "width": 375, "id": 21754, "height": 281}, {"file_name": "ADE_val_00001546.jpg", "width": 683, "id": 21755, "height": 512}, {"file_name": "ADE_val_00001547.jpg", "width": 770, "id": 21756, "height": 512}, {"file_name": "ADE_val_00001548.jpg", "width": 500, "id": 21757, "height": 375}, {"file_name": "ADE_val_00001549.jpg", "width": 683, "id": 21758, "height": 512}, {"file_name": "ADE_val_00001550.jpg", "width": 447, "id": 21759, "height": 290}, {"file_name": "ADE_val_00001551.jpg", "width": 385, "id": 21760, "height": 301}, {"file_name": "ADE_val_00001552.jpg", "width": 256, "id": 21761, "height": 256}, {"file_name": "ADE_val_00001553.jpg", "width": 256, "id": 21762, "height": 256}, {"file_name": "ADE_val_00001554.jpg", "width": 256, "id": 21763, "height": 256}, {"file_name": "ADE_val_00001555.jpg", "width": 716, "id": 21764, "height": 512}, {"file_name": "ADE_val_00001556.jpg", "width": 683, "id": 21765, "height": 512}, {"file_name": "ADE_val_00001557.jpg", "width": 256, "id": 21766, "height": 256}, {"file_name": "ADE_val_00001558.jpg", "width": 256, "id": 21767, "height": 256}, {"file_name": "ADE_val_00001559.jpg", "width": 256, "id": 21768, "height": 256}, {"file_name": "ADE_val_00001560.jpg", "width": 300, "id": 21769, "height": 225}, {"file_name": "ADE_val_00001561.jpg", "width": 335, "id": 21770, "height": 250}, {"file_name": "ADE_val_00001562.jpg", "width": 500, "id": 21771, "height": 334}, {"file_name": "ADE_val_00001563.jpg", "width": 500, "id": 21772, "height": 375}, {"file_name": "ADE_val_00001564.jpg", "width": 256, "id": 21773, "height": 256}, {"file_name": "ADE_val_00001565.jpg", "width": 683, "id": 21774, "height": 512}, {"file_name": "ADE_val_00001566.jpg", "width": 683, "id": 21775, "height": 512}, {"file_name": "ADE_val_00001567.jpg", "width": 683, "id": 21776, "height": 512}, {"file_name": "ADE_val_00001568.jpg", "width": 683, "id": 21777, "height": 512}, {"file_name": "ADE_val_00001569.jpg", "width": 683, "id": 21778, "height": 512}, {"file_name": "ADE_val_00001570.jpg", "width": 683, "id": 21779, "height": 512}, {"file_name": "ADE_val_00001571.jpg", "width": 683, "id": 21780, "height": 512}, {"file_name": "ADE_val_00001572.jpg", "width": 683, "id": 21781, "height": 512}, {"file_name": "ADE_val_00001573.jpg", "width": 683, "id": 21782, "height": 512}, {"file_name": "ADE_val_00001574.jpg", "width": 640, "id": 21783, "height": 480}, {"file_name": "ADE_val_00001575.jpg", "width": 428, "id": 21784, "height": 640}, {"file_name": "ADE_val_00001576.jpg", "width": 683, "id": 21785, "height": 512}, {"file_name": "ADE_val_00001577.jpg", "width": 512, "id": 21786, "height": 683}, {"file_name": "ADE_val_00001578.jpg", "width": 512, "id": 21787, "height": 422}, {"file_name": "ADE_val_00001579.jpg", "width": 683, "id": 21788, "height": 512}, {"file_name": "ADE_val_00001580.jpg", "width": 683, "id": 21789, "height": 512}, {"file_name": "ADE_val_00001581.jpg", "width": 683, "id": 21790, "height": 512}, {"file_name": "ADE_val_00001582.jpg", "width": 683, "id": 21791, "height": 512}, {"file_name": "ADE_val_00001583.jpg", "width": 683, "id": 21792, "height": 512}, {"file_name": "ADE_val_00001584.jpg", "width": 512, "id": 21793, "height": 683}, {"file_name": "ADE_val_00001585.jpg", "width": 683, "id": 21794, "height": 512}, {"file_name": "ADE_val_00001586.jpg", "width": 683, "id": 21795, "height": 512}, {"file_name": "ADE_val_00001587.jpg", "width": 683, "id": 21796, "height": 512}, {"file_name": "ADE_val_00001588.jpg", "width": 683, "id": 21797, "height": 512}, {"file_name": "ADE_val_00001589.jpg", "width": 683, "id": 21798, "height": 512}, {"file_name": "ADE_val_00001590.jpg", "width": 512, "id": 21799, "height": 683}, {"file_name": "ADE_val_00001591.jpg", "width": 640, "id": 21800, "height": 512}, {"file_name": "ADE_val_00001592.jpg", "width": 683, "id": 21801, "height": 512}, {"file_name": "ADE_val_00001593.jpg", "width": 512, "id": 21802, "height": 683}, {"file_name": "ADE_val_00001594.jpg", "width": 683, "id": 21803, "height": 512}, {"file_name": "ADE_val_00001595.jpg", "width": 683, "id": 21804, "height": 512}, {"file_name": "ADE_val_00001596.jpg", "width": 683, "id": 21805, "height": 512}, {"file_name": "ADE_val_00001597.jpg", "width": 683, "id": 21806, "height": 512}, {"file_name": "ADE_val_00001598.jpg", "width": 753, "id": 21807, "height": 512}, {"file_name": "ADE_val_00001599.jpg", "width": 256, "id": 21808, "height": 256}, {"file_name": "ADE_val_00001600.jpg", "width": 296, "id": 21809, "height": 216}, {"file_name": "ADE_val_00001601.jpg", "width": 256, "id": 21810, "height": 256}, {"file_name": "ADE_val_00001602.jpg", "width": 398, "id": 21811, "height": 263}, {"file_name": "ADE_val_00001603.jpg", "width": 256, "id": 21812, "height": 256}, {"file_name": "ADE_val_00001604.jpg", "width": 256, "id": 21813, "height": 256}, {"file_name": "ADE_val_00001605.jpg", "width": 684, "id": 21814, "height": 512}, {"file_name": "ADE_val_00001606.jpg", "width": 256, "id": 21815, "height": 256}, {"file_name": "ADE_val_00001607.jpg", "width": 450, "id": 21816, "height": 300}, {"file_name": "ADE_val_00001608.jpg", "width": 392, "id": 21817, "height": 264}, {"file_name": "ADE_val_00001609.jpg", "width": 256, "id": 21818, "height": 256}, {"file_name": "ADE_val_00001610.jpg", "width": 620, "id": 21819, "height": 413}, {"file_name": "ADE_val_00001611.jpg", "width": 459, "id": 21820, "height": 203}, {"file_name": "ADE_val_00001612.jpg", "width": 330, "id": 21821, "height": 500}, {"file_name": "ADE_val_00001613.jpg", "width": 768, "id": 21822, "height": 512}, {"file_name": "ADE_val_00001614.jpg", "width": 256, "id": 21823, "height": 256}, {"file_name": "ADE_val_00001615.jpg", "width": 368, "id": 21824, "height": 276}, {"file_name": "ADE_val_00001616.jpg", "width": 256, "id": 21825, "height": 256}, {"file_name": "ADE_val_00001617.jpg", "width": 683, "id": 21826, "height": 512}, {"file_name": "ADE_val_00001618.jpg", "width": 256, "id": 21827, "height": 256}, {"file_name": "ADE_val_00001619.jpg", "width": 277, "id": 21828, "height": 428}, {"file_name": "ADE_val_00001620.jpg", "width": 256, "id": 21829, "height": 256}, {"file_name": "ADE_val_00001621.jpg", "width": 704, "id": 21830, "height": 512}, {"file_name": "ADE_val_00001622.jpg", "width": 512, "id": 21831, "height": 679}, {"file_name": "ADE_val_00001623.jpg", "width": 256, "id": 21832, "height": 256}, {"file_name": "ADE_val_00001624.jpg", "width": 256, "id": 21833, "height": 256}, {"file_name": "ADE_val_00001625.jpg", "width": 256, "id": 21834, "height": 256}, {"file_name": "ADE_val_00001626.jpg", "width": 400, "id": 21835, "height": 300}, {"file_name": "ADE_val_00001627.jpg", "width": 256, "id": 21836, "height": 256}, {"file_name": "ADE_val_00001628.jpg", "width": 700, "id": 21837, "height": 467}, {"file_name": "ADE_val_00001629.jpg", "width": 500, "id": 21838, "height": 375}, {"file_name": "ADE_val_00001630.jpg", "width": 680, "id": 21839, "height": 512}, {"file_name": "ADE_val_00001631.jpg", "width": 512, "id": 21840, "height": 896}, {"file_name": "ADE_val_00001632.jpg", "width": 400, "id": 21841, "height": 222}, {"file_name": "ADE_val_00001633.jpg", "width": 384, "id": 21842, "height": 215}, {"file_name": "ADE_val_00001634.jpg", "width": 300, "id": 21843, "height": 400}, {"file_name": "ADE_val_00001635.jpg", "width": 512, "id": 21844, "height": 683}, {"file_name": "ADE_val_00001636.jpg", "width": 512, "id": 21845, "height": 683}, {"file_name": "ADE_val_00001637.jpg", "width": 640, "id": 21846, "height": 427}, {"file_name": "ADE_val_00001638.jpg", "width": 683, "id": 21847, "height": 512}, {"file_name": "ADE_val_00001639.jpg", "width": 683, "id": 21848, "height": 512}, {"file_name": "ADE_val_00001640.jpg", "width": 256, "id": 21849, "height": 256}, {"file_name": "ADE_val_00001641.jpg", "width": 683, "id": 21850, "height": 512}, {"file_name": "ADE_val_00001642.jpg", "width": 512, "id": 21851, "height": 626}, {"file_name": "ADE_val_00001643.jpg", "width": 256, "id": 21852, "height": 256}, {"file_name": "ADE_val_00001644.jpg", "width": 683, "id": 21853, "height": 512}, {"file_name": "ADE_val_00001645.jpg", "width": 683, "id": 21854, "height": 512}, {"file_name": "ADE_val_00001646.jpg", "width": 256, "id": 21855, "height": 256}, {"file_name": "ADE_val_00001647.jpg", "width": 256, "id": 21856, "height": 256}, {"file_name": "ADE_val_00001648.jpg", "width": 256, "id": 21857, "height": 256}, {"file_name": "ADE_val_00001649.jpg", "width": 400, "id": 21858, "height": 267}, {"file_name": "ADE_val_00001650.jpg", "width": 350, "id": 21859, "height": 233}, {"file_name": "ADE_val_00001651.jpg", "width": 640, "id": 21860, "height": 480}, {"file_name": "ADE_val_00001652.jpg", "width": 683, "id": 21861, "height": 512}, {"file_name": "ADE_val_00001653.jpg", "width": 333, "id": 21862, "height": 345}, {"file_name": "ADE_val_00001654.jpg", "width": 341, "id": 21863, "height": 530}, {"file_name": "ADE_val_00001655.jpg", "width": 650, "id": 21864, "height": 450}, {"file_name": "ADE_val_00001656.jpg", "width": 640, "id": 21865, "height": 480}, {"file_name": "ADE_val_00001657.jpg", "width": 240, "id": 21866, "height": 320}, {"file_name": "ADE_val_00001658.jpg", "width": 200, "id": 21867, "height": 280}, {"file_name": "ADE_val_00001659.jpg", "width": 200, "id": 21868, "height": 235}, {"file_name": "ADE_val_00001660.jpg", "width": 300, "id": 21869, "height": 225}, {"file_name": "ADE_val_00001661.jpg", "width": 256, "id": 21870, "height": 256}, {"file_name": "ADE_val_00001662.jpg", "width": 442, "id": 21871, "height": 600}, {"file_name": "ADE_val_00001663.jpg", "width": 684, "id": 21872, "height": 512}, {"file_name": "ADE_val_00001664.jpg", "width": 500, "id": 21873, "height": 357}, {"file_name": "ADE_val_00001665.jpg", "width": 592, "id": 21874, "height": 413}, {"file_name": "ADE_val_00001666.jpg", "width": 256, "id": 21875, "height": 256}, {"file_name": "ADE_val_00001667.jpg", "width": 355, "id": 21876, "height": 204}, {"file_name": "ADE_val_00001668.jpg", "width": 294, "id": 21877, "height": 363}, {"file_name": "ADE_val_00001669.jpg", "width": 640, "id": 21878, "height": 480}, {"file_name": "ADE_val_00001670.jpg", "width": 200, "id": 21879, "height": 258}, {"file_name": "ADE_val_00001671.jpg", "width": 676, "id": 21880, "height": 512}, {"file_name": "ADE_val_00001672.jpg", "width": 280, "id": 21881, "height": 210}, {"file_name": "ADE_val_00001673.jpg", "width": 263, "id": 21882, "height": 350}, {"file_name": "ADE_val_00001674.jpg", "width": 500, "id": 21883, "height": 330}, {"file_name": "ADE_val_00001675.jpg", "width": 586, "id": 21884, "height": 349}, {"file_name": "ADE_val_00001676.jpg", "width": 683, "id": 21885, "height": 512}, {"file_name": "ADE_val_00001677.jpg", "width": 500, "id": 21886, "height": 333}, {"file_name": "ADE_val_00001678.jpg", "width": 769, "id": 21887, "height": 512}, {"file_name": "ADE_val_00001679.jpg", "width": 415, "id": 21888, "height": 283}, {"file_name": "ADE_val_00001680.jpg", "width": 600, "id": 21889, "height": 450}, {"file_name": "ADE_val_00001681.jpg", "width": 200, "id": 21890, "height": 200}, {"file_name": "ADE_val_00001682.jpg", "width": 295, "id": 21891, "height": 200}, {"file_name": "ADE_val_00001683.jpg", "width": 216, "id": 21892, "height": 231}, {"file_name": "ADE_val_00001684.jpg", "width": 333, "id": 21893, "height": 250}, {"file_name": "ADE_val_00001685.jpg", "width": 512, "id": 21894, "height": 747}, {"file_name": "ADE_val_00001686.jpg", "width": 614, "id": 21895, "height": 400}, {"file_name": "ADE_val_00001687.jpg", "width": 460, "id": 21896, "height": 368}, {"file_name": "ADE_val_00001688.jpg", "width": 400, "id": 21897, "height": 315}, {"file_name": "ADE_val_00001689.jpg", "width": 683, "id": 21898, "height": 512}, {"file_name": "ADE_val_00001690.jpg", "width": 683, "id": 21899, "height": 512}, {"file_name": "ADE_val_00001691.jpg", "width": 683, "id": 21900, "height": 512}, {"file_name": "ADE_val_00001692.jpg", "width": 683, "id": 21901, "height": 512}, {"file_name": "ADE_val_00001693.jpg", "width": 760, "id": 21902, "height": 512}, {"file_name": "ADE_val_00001694.jpg", "width": 500, "id": 21903, "height": 375}, {"file_name": "ADE_val_00001695.jpg", "width": 683, "id": 21904, "height": 512}, {"file_name": "ADE_val_00001696.jpg", "width": 683, "id": 21905, "height": 512}, {"file_name": "ADE_val_00001697.jpg", "width": 740, "id": 21906, "height": 493}, {"file_name": "ADE_val_00001698.jpg", "width": 683, "id": 21907, "height": 512}, {"file_name": "ADE_val_00001699.jpg", "width": 683, "id": 21908, "height": 512}, {"file_name": "ADE_val_00001700.jpg", "width": 256, "id": 21909, "height": 256}, {"file_name": "ADE_val_00001701.jpg", "width": 683, "id": 21910, "height": 512}, {"file_name": "ADE_val_00001702.jpg", "width": 683, "id": 21911, "height": 512}, {"file_name": "ADE_val_00001703.jpg", "width": 600, "id": 21912, "height": 480}, {"file_name": "ADE_val_00001704.jpg", "width": 798, "id": 21913, "height": 512}, {"file_name": "ADE_val_00001705.jpg", "width": 300, "id": 21914, "height": 200}, {"file_name": "ADE_val_00001706.jpg", "width": 512, "id": 21915, "height": 676}, {"file_name": "ADE_val_00001707.jpg", "width": 300, "id": 21916, "height": 225}, {"file_name": "ADE_val_00001708.jpg", "width": 683, "id": 21917, "height": 512}, {"file_name": "ADE_val_00001709.jpg", "width": 683, "id": 21918, "height": 512}, {"file_name": "ADE_val_00001710.jpg", "width": 683, "id": 21919, "height": 512}, {"file_name": "ADE_val_00001711.jpg", "width": 594, "id": 21920, "height": 472}, {"file_name": "ADE_val_00001712.jpg", "width": 320, "id": 21921, "height": 240}, {"file_name": "ADE_val_00001713.jpg", "width": 444, "id": 21922, "height": 300}, {"file_name": "ADE_val_00001714.jpg", "width": 512, "id": 21923, "height": 683}, {"file_name": "ADE_val_00001715.jpg", "width": 687, "id": 21924, "height": 454}, {"file_name": "ADE_val_00001716.jpg", "width": 683, "id": 21925, "height": 512}, {"file_name": "ADE_val_00001717.jpg", "width": 430, "id": 21926, "height": 500}, {"file_name": "ADE_val_00001718.jpg", "width": 290, "id": 21927, "height": 290}, {"file_name": "ADE_val_00001719.jpg", "width": 480, "id": 21928, "height": 374}, {"file_name": "ADE_val_00001720.jpg", "width": 768, "id": 21929, "height": 512}, {"file_name": "ADE_val_00001721.jpg", "width": 350, "id": 21930, "height": 262}, {"file_name": "ADE_val_00001722.jpg", "width": 683, "id": 21931, "height": 512}, {"file_name": "ADE_val_00001723.jpg", "width": 683, "id": 21932, "height": 512}, {"file_name": "ADE_val_00001724.jpg", "width": 400, "id": 21933, "height": 300}, {"file_name": "ADE_val_00001725.jpg", "width": 682, "id": 21934, "height": 512}, {"file_name": "ADE_val_00001726.jpg", "width": 556, "id": 21935, "height": 371}, {"file_name": "ADE_val_00001727.jpg", "width": 545, "id": 21936, "height": 409}, {"file_name": "ADE_val_00001728.jpg", "width": 683, "id": 21937, "height": 512}, {"file_name": "ADE_val_00001729.jpg", "width": 640, "id": 21938, "height": 480}, {"file_name": "ADE_val_00001730.jpg", "width": 256, "id": 21939, "height": 256}, {"file_name": "ADE_val_00001731.jpg", "width": 256, "id": 21940, "height": 256}, {"file_name": "ADE_val_00001732.jpg", "width": 843, "id": 21941, "height": 512}, {"file_name": "ADE_val_00001733.jpg", "width": 779, "id": 21942, "height": 512}, {"file_name": "ADE_val_00001734.jpg", "width": 360, "id": 21943, "height": 480}, {"file_name": "ADE_val_00001735.jpg", "width": 683, "id": 21944, "height": 512}, {"file_name": "ADE_val_00001736.jpg", "width": 291, "id": 21945, "height": 201}, {"file_name": "ADE_val_00001737.jpg", "width": 512, "id": 21946, "height": 384}, {"file_name": "ADE_val_00001738.jpg", "width": 683, "id": 21947, "height": 512}, {"file_name": "ADE_val_00001739.jpg", "width": 663, "id": 21948, "height": 394}, {"file_name": "ADE_val_00001740.jpg", "width": 360, "id": 21949, "height": 203}, {"file_name": "ADE_val_00001741.jpg", "width": 334, "id": 21950, "height": 500}, {"file_name": "ADE_val_00001742.jpg", "width": 405, "id": 21951, "height": 282}, {"file_name": "ADE_val_00001743.jpg", "width": 512, "id": 21952, "height": 768}, {"file_name": "ADE_val_00001744.jpg", "width": 540, "id": 21953, "height": 361}, {"file_name": "ADE_val_00001745.jpg", "width": 683, "id": 21954, "height": 512}, {"file_name": "ADE_val_00001746.jpg", "width": 600, "id": 21955, "height": 450}, {"file_name": "ADE_val_00001747.jpg", "width": 256, "id": 21956, "height": 256}, {"file_name": "ADE_val_00001748.jpg", "width": 256, "id": 21957, "height": 256}, {"file_name": "ADE_val_00001749.jpg", "width": 400, "id": 21958, "height": 300}, {"file_name": "ADE_val_00001750.jpg", "width": 630, "id": 21959, "height": 512}, {"file_name": "ADE_val_00001751.jpg", "width": 400, "id": 21960, "height": 300}, {"file_name": "ADE_val_00001752.jpg", "width": 256, "id": 21961, "height": 256}, {"file_name": "ADE_val_00001753.jpg", "width": 256, "id": 21962, "height": 256}, {"file_name": "ADE_val_00001754.jpg", "width": 256, "id": 21963, "height": 256}, {"file_name": "ADE_val_00001755.jpg", "width": 256, "id": 21964, "height": 256}, {"file_name": "ADE_val_00001756.jpg", "width": 256, "id": 21965, "height": 256}, {"file_name": "ADE_val_00001757.jpg", "width": 256, "id": 21966, "height": 256}, {"file_name": "ADE_val_00001758.jpg", "width": 250, "id": 21967, "height": 337}, {"file_name": "ADE_val_00001759.jpg", "width": 256, "id": 21968, "height": 256}, {"file_name": "ADE_val_00001760.jpg", "width": 256, "id": 21969, "height": 256}, {"file_name": "ADE_val_00001761.jpg", "width": 256, "id": 21970, "height": 256}, {"file_name": "ADE_val_00001762.jpg", "width": 512, "id": 21971, "height": 771}, {"file_name": "ADE_val_00001763.jpg", "width": 200, "id": 21972, "height": 300}, {"file_name": "ADE_val_00001764.jpg", "width": 256, "id": 21973, "height": 256}, {"file_name": "ADE_val_00001765.jpg", "width": 256, "id": 21974, "height": 256}, {"file_name": "ADE_val_00001766.jpg", "width": 256, "id": 21975, "height": 256}, {"file_name": "ADE_val_00001767.jpg", "width": 683, "id": 21976, "height": 512}, {"file_name": "ADE_val_00001768.jpg", "width": 500, "id": 21977, "height": 334}, {"file_name": "ADE_val_00001769.jpg", "width": 770, "id": 21978, "height": 512}, {"file_name": "ADE_val_00001770.jpg", "width": 558, "id": 21979, "height": 357}, {"file_name": "ADE_val_00001771.jpg", "width": 576, "id": 21980, "height": 432}, {"file_name": "ADE_val_00001772.jpg", "width": 640, "id": 21981, "height": 480}, {"file_name": "ADE_val_00001773.jpg", "width": 256, "id": 21982, "height": 256}, {"file_name": "ADE_val_00001774.jpg", "width": 512, "id": 21983, "height": 783}, {"file_name": "ADE_val_00001775.jpg", "width": 251, "id": 21984, "height": 300}, {"file_name": "ADE_val_00001776.jpg", "width": 320, "id": 21985, "height": 240}, {"file_name": "ADE_val_00001777.jpg", "width": 512, "id": 21986, "height": 683}, {"file_name": "ADE_val_00001778.jpg", "width": 683, "id": 21987, "height": 512}, {"file_name": "ADE_val_00001779.jpg", "width": 683, "id": 21988, "height": 512}, {"file_name": "ADE_val_00001780.jpg", "width": 683, "id": 21989, "height": 512}, {"file_name": "ADE_val_00001781.jpg", "width": 683, "id": 21990, "height": 512}, {"file_name": "ADE_val_00001782.jpg", "width": 683, "id": 21991, "height": 512}, {"file_name": "ADE_val_00001783.jpg", "width": 683, "id": 21992, "height": 512}, {"file_name": "ADE_val_00001784.jpg", "width": 683, "id": 21993, "height": 512}, {"file_name": "ADE_val_00001785.jpg", "width": 683, "id": 21994, "height": 512}, {"file_name": "ADE_val_00001786.jpg", "width": 683, "id": 21995, "height": 512}, {"file_name": "ADE_val_00001787.jpg", "width": 512, "id": 21996, "height": 683}, {"file_name": "ADE_val_00001788.jpg", "width": 683, "id": 21997, "height": 512}, {"file_name": "ADE_val_00001789.jpg", "width": 683, "id": 21998, "height": 512}, {"file_name": "ADE_val_00001790.jpg", "width": 683, "id": 21999, "height": 512}, {"file_name": "ADE_val_00001791.jpg", "width": 683, "id": 22000, "height": 512}, {"file_name": "ADE_val_00001792.jpg", "width": 683, "id": 22001, "height": 512}, {"file_name": "ADE_val_00001793.jpg", "width": 683, "id": 22002, "height": 512}, {"file_name": "ADE_val_00001794.jpg", "width": 683, "id": 22003, "height": 512}, {"file_name": "ADE_val_00001795.jpg", "width": 683, "id": 22004, "height": 512}, {"file_name": "ADE_val_00001796.jpg", "width": 683, "id": 22005, "height": 512}, {"file_name": "ADE_val_00001797.jpg", "width": 768, "id": 22006, "height": 512}, {"file_name": "ADE_val_00001798.jpg", "width": 683, "id": 22007, "height": 512}, {"file_name": "ADE_val_00001799.jpg", "width": 683, "id": 22008, "height": 512}, {"file_name": "ADE_val_00001800.jpg", "width": 683, "id": 22009, "height": 512}, {"file_name": "ADE_val_00001801.jpg", "width": 683, "id": 22010, "height": 512}, {"file_name": "ADE_val_00001802.jpg", "width": 683, "id": 22011, "height": 512}, {"file_name": "ADE_val_00001803.jpg", "width": 683, "id": 22012, "height": 512}, {"file_name": "ADE_val_00001804.jpg", "width": 683, "id": 22013, "height": 512}, {"file_name": "ADE_val_00001805.jpg", "width": 683, "id": 22014, "height": 512}, {"file_name": "ADE_val_00001806.jpg", "width": 683, "id": 22015, "height": 512}, {"file_name": "ADE_val_00001807.jpg", "width": 683, "id": 22016, "height": 512}, {"file_name": "ADE_val_00001808.jpg", "width": 683, "id": 22017, "height": 512}, {"file_name": "ADE_val_00001809.jpg", "width": 683, "id": 22018, "height": 512}, {"file_name": "ADE_val_00001810.jpg", "width": 512, "id": 22019, "height": 683}, {"file_name": "ADE_val_00001811.jpg", "width": 683, "id": 22020, "height": 512}, {"file_name": "ADE_val_00001812.jpg", "width": 683, "id": 22021, "height": 512}, {"file_name": "ADE_val_00001813.jpg", "width": 683, "id": 22022, "height": 512}, {"file_name": "ADE_val_00001814.jpg", "width": 683, "id": 22023, "height": 512}, {"file_name": "ADE_val_00001815.jpg", "width": 683, "id": 22024, "height": 512}, {"file_name": "ADE_val_00001816.jpg", "width": 512, "id": 22025, "height": 683}, {"file_name": "ADE_val_00001817.jpg", "width": 512, "id": 22026, "height": 683}, {"file_name": "ADE_val_00001818.jpg", "width": 683, "id": 22027, "height": 512}, {"file_name": "ADE_val_00001819.jpg", "width": 683, "id": 22028, "height": 512}, {"file_name": "ADE_val_00001820.jpg", "width": 683, "id": 22029, "height": 512}, {"file_name": "ADE_val_00001821.jpg", "width": 683, "id": 22030, "height": 512}, {"file_name": "ADE_val_00001822.jpg", "width": 683, "id": 22031, "height": 512}, {"file_name": "ADE_val_00001823.jpg", "width": 683, "id": 22032, "height": 512}, {"file_name": "ADE_val_00001824.jpg", "width": 683, "id": 22033, "height": 512}, {"file_name": "ADE_val_00001825.jpg", "width": 683, "id": 22034, "height": 512}, {"file_name": "ADE_val_00001826.jpg", "width": 683, "id": 22035, "height": 512}, {"file_name": "ADE_val_00001827.jpg", "width": 683, "id": 22036, "height": 512}, {"file_name": "ADE_val_00001828.jpg", "width": 683, "id": 22037, "height": 512}, {"file_name": "ADE_val_00001829.jpg", "width": 683, "id": 22038, "height": 512}, {"file_name": "ADE_val_00001830.jpg", "width": 683, "id": 22039, "height": 512}, {"file_name": "ADE_val_00001831.jpg", "width": 683, "id": 22040, "height": 512}, {"file_name": "ADE_val_00001832.jpg", "width": 683, "id": 22041, "height": 512}, {"file_name": "ADE_val_00001833.jpg", "width": 512, "id": 22042, "height": 683}, {"file_name": "ADE_val_00001834.jpg", "width": 683, "id": 22043, "height": 512}, {"file_name": "ADE_val_00001835.jpg", "width": 683, "id": 22044, "height": 512}, {"file_name": "ADE_val_00001836.jpg", "width": 683, "id": 22045, "height": 512}, {"file_name": "ADE_val_00001837.jpg", "width": 512, "id": 22046, "height": 683}, {"file_name": "ADE_val_00001838.jpg", "width": 683, "id": 22047, "height": 512}, {"file_name": "ADE_val_00001839.jpg", "width": 683, "id": 22048, "height": 512}, {"file_name": "ADE_val_00001840.jpg", "width": 683, "id": 22049, "height": 512}, {"file_name": "ADE_val_00001841.jpg", "width": 683, "id": 22050, "height": 512}, {"file_name": "ADE_val_00001842.jpg", "width": 683, "id": 22051, "height": 512}, {"file_name": "ADE_val_00001843.jpg", "width": 683, "id": 22052, "height": 512}, {"file_name": "ADE_val_00001844.jpg", "width": 683, "id": 22053, "height": 512}, {"file_name": "ADE_val_00001845.jpg", "width": 683, "id": 22054, "height": 512}, {"file_name": "ADE_val_00001846.jpg", "width": 683, "id": 22055, "height": 512}, {"file_name": "ADE_val_00001847.jpg", "width": 683, "id": 22056, "height": 512}, {"file_name": "ADE_val_00001848.jpg", "width": 683, "id": 22057, "height": 512}, {"file_name": "ADE_val_00001849.jpg", "width": 683, "id": 22058, "height": 512}, {"file_name": "ADE_val_00001850.jpg", "width": 683, "id": 22059, "height": 512}, {"file_name": "ADE_val_00001851.jpg", "width": 683, "id": 22060, "height": 512}, {"file_name": "ADE_val_00001852.jpg", "width": 683, "id": 22061, "height": 512}, {"file_name": "ADE_val_00001853.jpg", "width": 683, "id": 22062, "height": 512}, {"file_name": "ADE_val_00001854.jpg", "width": 683, "id": 22063, "height": 512}, {"file_name": "ADE_val_00001855.jpg", "width": 683, "id": 22064, "height": 512}, {"file_name": "ADE_val_00001856.jpg", "width": 683, "id": 22065, "height": 512}, {"file_name": "ADE_val_00001857.jpg", "width": 683, "id": 22066, "height": 512}, {"file_name": "ADE_val_00001858.jpg", "width": 683, "id": 22067, "height": 512}, {"file_name": "ADE_val_00001859.jpg", "width": 683, "id": 22068, "height": 512}, {"file_name": "ADE_val_00001860.jpg", "width": 256, "id": 22069, "height": 256}, {"file_name": "ADE_val_00001861.jpg", "width": 256, "id": 22070, "height": 256}, {"file_name": "ADE_val_00001862.jpg", "width": 256, "id": 22071, "height": 256}, {"file_name": "ADE_val_00001863.jpg", "width": 256, "id": 22072, "height": 256}, {"file_name": "ADE_val_00001864.jpg", "width": 256, "id": 22073, "height": 256}, {"file_name": "ADE_val_00001865.jpg", "width": 256, "id": 22074, "height": 256}, {"file_name": "ADE_val_00001866.jpg", "width": 256, "id": 22075, "height": 256}, {"file_name": "ADE_val_00001867.jpg", "width": 256, "id": 22076, "height": 256}, {"file_name": "ADE_val_00001868.jpg", "width": 256, "id": 22077, "height": 256}, {"file_name": "ADE_val_00001869.jpg", "width": 256, "id": 22078, "height": 256}, {"file_name": "ADE_val_00001870.jpg", "width": 256, "id": 22079, "height": 256}, {"file_name": "ADE_val_00001871.jpg", "width": 256, "id": 22080, "height": 256}, {"file_name": "ADE_val_00001872.jpg", "width": 256, "id": 22081, "height": 256}, {"file_name": "ADE_val_00001873.jpg", "width": 256, "id": 22082, "height": 256}, {"file_name": "ADE_val_00001874.jpg", "width": 350, "id": 22083, "height": 263}, {"file_name": "ADE_val_00001875.jpg", "width": 500, "id": 22084, "height": 500}, {"file_name": "ADE_val_00001876.jpg", "width": 500, "id": 22085, "height": 334}, {"file_name": "ADE_val_00001877.jpg", "width": 408, "id": 22086, "height": 334}, {"file_name": "ADE_val_00001878.jpg", "width": 768, "id": 22087, "height": 512}, {"file_name": "ADE_val_00001879.jpg", "width": 684, "id": 22088, "height": 512}, {"file_name": "ADE_val_00001880.jpg", "width": 683, "id": 22089, "height": 512}, {"file_name": "ADE_val_00001881.jpg", "width": 250, "id": 22090, "height": 201}, {"file_name": "ADE_val_00001882.jpg", "width": 683, "id": 22091, "height": 512}, {"file_name": "ADE_val_00001883.jpg", "width": 683, "id": 22092, "height": 512}, {"file_name": "ADE_val_00001884.jpg", "width": 384, "id": 22093, "height": 256}, {"file_name": "ADE_val_00001885.jpg", "width": 861, "id": 22094, "height": 495}, {"file_name": "ADE_val_00001886.jpg", "width": 256, "id": 22095, "height": 256}, {"file_name": "ADE_val_00001887.jpg", "width": 684, "id": 22096, "height": 512}, {"file_name": "ADE_val_00001888.jpg", "width": 432, "id": 22097, "height": 303}, {"file_name": "ADE_val_00001889.jpg", "width": 640, "id": 22098, "height": 426}, {"file_name": "ADE_val_00001890.jpg", "width": 512, "id": 22099, "height": 947}, {"file_name": "ADE_val_00001891.jpg", "width": 402, "id": 22100, "height": 302}, {"file_name": "ADE_val_00001892.jpg", "width": 576, "id": 22101, "height": 359}, {"file_name": "ADE_val_00001893.jpg", "width": 290, "id": 22102, "height": 218}, {"file_name": "ADE_val_00001894.jpg", "width": 571, "id": 22103, "height": 407}, {"file_name": "ADE_val_00001895.jpg", "width": 291, "id": 22104, "height": 212}, {"file_name": "ADE_val_00001896.jpg", "width": 512, "id": 22105, "height": 774}, {"file_name": "ADE_val_00001897.jpg", "width": 256, "id": 22106, "height": 256}, {"file_name": "ADE_val_00001898.jpg", "width": 640, "id": 22107, "height": 480}, {"file_name": "ADE_val_00001899.jpg", "width": 256, "id": 22108, "height": 256}, {"file_name": "ADE_val_00001900.jpg", "width": 256, "id": 22109, "height": 256}, {"file_name": "ADE_val_00001901.jpg", "width": 440, "id": 22110, "height": 295}, {"file_name": "ADE_val_00001902.jpg", "width": 500, "id": 22111, "height": 375}, {"file_name": "ADE_val_00001903.jpg", "width": 600, "id": 22112, "height": 372}, {"file_name": "ADE_val_00001904.jpg", "width": 256, "id": 22113, "height": 256}, {"file_name": "ADE_val_00001905.jpg", "width": 280, "id": 22114, "height": 280}, {"file_name": "ADE_val_00001906.jpg", "width": 683, "id": 22115, "height": 512}, {"file_name": "ADE_val_00001907.jpg", "width": 480, "id": 22116, "height": 360}, {"file_name": "ADE_val_00001908.jpg", "width": 256, "id": 22117, "height": 256}, {"file_name": "ADE_val_00001909.jpg", "width": 683, "id": 22118, "height": 512}, {"file_name": "ADE_val_00001910.jpg", "width": 683, "id": 22119, "height": 512}, {"file_name": "ADE_val_00001911.jpg", "width": 259, "id": 22120, "height": 206}, {"file_name": "ADE_val_00001912.jpg", "width": 500, "id": 22121, "height": 397}, {"file_name": "ADE_val_00001913.jpg", "width": 536, "id": 22122, "height": 223}, {"file_name": "ADE_val_00001914.jpg", "width": 512, "id": 22123, "height": 691}, {"file_name": "ADE_val_00001915.jpg", "width": 400, "id": 22124, "height": 258}, {"file_name": "ADE_val_00001916.jpg", "width": 504, "id": 22125, "height": 672}, {"file_name": "ADE_val_00001917.jpg", "width": 256, "id": 22126, "height": 256}, {"file_name": "ADE_val_00001918.jpg", "width": 256, "id": 22127, "height": 256}, {"file_name": "ADE_val_00001919.jpg", "width": 683, "id": 22128, "height": 512}, {"file_name": "ADE_val_00001920.jpg", "width": 250, "id": 22129, "height": 200}, {"file_name": "ADE_val_00001921.jpg", "width": 312, "id": 22130, "height": 235}, {"file_name": "ADE_val_00001922.jpg", "width": 640, "id": 22131, "height": 359}, {"file_name": "ADE_val_00001923.jpg", "width": 683, "id": 22132, "height": 512}, {"file_name": "ADE_val_00001924.jpg", "width": 400, "id": 22133, "height": 300}, {"file_name": "ADE_val_00001925.jpg", "width": 600, "id": 22134, "height": 450}, {"file_name": "ADE_val_00001926.jpg", "width": 300, "id": 22135, "height": 200}, {"file_name": "ADE_val_00001927.jpg", "width": 508, "id": 22136, "height": 640}, {"file_name": "ADE_val_00001928.jpg", "width": 472, "id": 22137, "height": 311}, {"file_name": "ADE_val_00001929.jpg", "width": 683, "id": 22138, "height": 512}, {"file_name": "ADE_val_00001930.jpg", "width": 717, "id": 22139, "height": 512}, {"file_name": "ADE_val_00001931.jpg", "width": 234, "id": 22140, "height": 311}, {"file_name": "ADE_val_00001932.jpg", "width": 512, "id": 22141, "height": 682}, {"file_name": "ADE_val_00001933.jpg", "width": 683, "id": 22142, "height": 512}, {"file_name": "ADE_val_00001934.jpg", "width": 683, "id": 22143, "height": 512}, {"file_name": "ADE_val_00001935.jpg", "width": 683, "id": 22144, "height": 512}, {"file_name": "ADE_val_00001936.jpg", "width": 512, "id": 22145, "height": 768}, {"file_name": "ADE_val_00001937.jpg", "width": 512, "id": 22146, "height": 683}, {"file_name": "ADE_val_00001938.jpg", "width": 256, "id": 22147, "height": 256}, {"file_name": "ADE_val_00001939.jpg", "width": 683, "id": 22148, "height": 512}, {"file_name": "ADE_val_00001940.jpg", "width": 300, "id": 22149, "height": 212}, {"file_name": "ADE_val_00001941.jpg", "width": 300, "id": 22150, "height": 225}, {"file_name": "ADE_val_00001942.jpg", "width": 320, "id": 22151, "height": 240}, {"file_name": "ADE_val_00001943.jpg", "width": 683, "id": 22152, "height": 512}, {"file_name": "ADE_val_00001944.jpg", "width": 256, "id": 22153, "height": 256}, {"file_name": "ADE_val_00001945.jpg", "width": 684, "id": 22154, "height": 512}, {"file_name": "ADE_val_00001946.jpg", "width": 512, "id": 22155, "height": 771}, {"file_name": "ADE_val_00001947.jpg", "width": 683, "id": 22156, "height": 512}, {"file_name": "ADE_val_00001948.jpg", "width": 256, "id": 22157, "height": 256}, {"file_name": "ADE_val_00001949.jpg", "width": 683, "id": 22158, "height": 512}, {"file_name": "ADE_val_00001950.jpg", "width": 512, "id": 22159, "height": 683}, {"file_name": "ADE_val_00001951.jpg", "width": 450, "id": 22160, "height": 600}, {"file_name": "ADE_val_00001952.jpg", "width": 683, "id": 22161, "height": 512}, {"file_name": "ADE_val_00001953.jpg", "width": 256, "id": 22162, "height": 256}, {"file_name": "ADE_val_00001954.jpg", "width": 256, "id": 22163, "height": 256}, {"file_name": "ADE_val_00001955.jpg", "width": 256, "id": 22164, "height": 256}, {"file_name": "ADE_val_00001956.jpg", "width": 302, "id": 22165, "height": 415}, {"file_name": "ADE_val_00001957.jpg", "width": 240, "id": 22166, "height": 211}, {"file_name": "ADE_val_00001958.jpg", "width": 225, "id": 22167, "height": 225}, {"file_name": "ADE_val_00001959.jpg", "width": 640, "id": 22168, "height": 512}, {"file_name": "ADE_val_00001960.jpg", "width": 768, "id": 22169, "height": 512}, {"file_name": "ADE_val_00001961.jpg", "width": 683, "id": 22170, "height": 512}, {"file_name": "ADE_val_00001962.jpg", "width": 683, "id": 22171, "height": 512}, {"file_name": "ADE_val_00001963.jpg", "width": 683, "id": 22172, "height": 512}, {"file_name": "ADE_val_00001964.jpg", "width": 512, "id": 22173, "height": 719}, {"file_name": "ADE_val_00001965.jpg", "width": 722, "id": 22174, "height": 512}, {"file_name": "ADE_val_00001966.jpg", "width": 768, "id": 22175, "height": 512}, {"file_name": "ADE_val_00001967.jpg", "width": 709, "id": 22176, "height": 512}, {"file_name": "ADE_val_00001968.jpg", "width": 683, "id": 22177, "height": 512}, {"file_name": "ADE_val_00001969.jpg", "width": 683, "id": 22178, "height": 512}, {"file_name": "ADE_val_00001970.jpg", "width": 683, "id": 22179, "height": 512}, {"file_name": "ADE_val_00001971.jpg", "width": 685, "id": 22180, "height": 512}, {"file_name": "ADE_val_00001972.jpg", "width": 764, "id": 22181, "height": 512}, {"file_name": "ADE_val_00001973.jpg", "width": 256, "id": 22182, "height": 256}, {"file_name": "ADE_val_00001974.jpg", "width": 256, "id": 22183, "height": 256}, {"file_name": "ADE_val_00001975.jpg", "width": 256, "id": 22184, "height": 256}, {"file_name": "ADE_val_00001976.jpg", "width": 768, "id": 22185, "height": 512}, {"file_name": "ADE_val_00001977.jpg", "width": 683, "id": 22186, "height": 512}, {"file_name": "ADE_val_00001978.jpg", "width": 256, "id": 22187, "height": 256}, {"file_name": "ADE_val_00001979.jpg", "width": 683, "id": 22188, "height": 512}, {"file_name": "ADE_val_00001980.jpg", "width": 240, "id": 22189, "height": 176}, {"file_name": "ADE_val_00001981.jpg", "width": 601, "id": 22190, "height": 390}, {"file_name": "ADE_val_00001982.jpg", "width": 256, "id": 22191, "height": 256}, {"file_name": "ADE_val_00001983.jpg", "width": 773, "id": 22192, "height": 512}, {"file_name": "ADE_val_00001984.jpg", "width": 381, "id": 22193, "height": 381}, {"file_name": "ADE_val_00001985.jpg", "width": 400, "id": 22194, "height": 270}, {"file_name": "ADE_val_00001986.jpg", "width": 683, "id": 22195, "height": 512}, {"file_name": "ADE_val_00001987.jpg", "width": 512, "id": 22196, "height": 771}, {"file_name": "ADE_val_00001988.jpg", "width": 236, "id": 22197, "height": 267}, {"file_name": "ADE_val_00001989.jpg", "width": 800, "id": 22198, "height": 423}, {"file_name": "ADE_val_00001990.jpg", "width": 256, "id": 22199, "height": 256}, {"file_name": "ADE_val_00001991.jpg", "width": 256, "id": 22200, "height": 256}, {"file_name": "ADE_val_00001992.jpg", "width": 683, "id": 22201, "height": 512}, {"file_name": "ADE_val_00001993.jpg", "width": 683, "id": 22202, "height": 512}, {"file_name": "ADE_val_00001994.jpg", "width": 683, "id": 22203, "height": 512}, {"file_name": "ADE_val_00001995.jpg", "width": 683, "id": 22204, "height": 512}, {"file_name": "ADE_val_00001996.jpg", "width": 320, "id": 22205, "height": 240}, {"file_name": "ADE_val_00001997.jpg", "width": 256, "id": 22206, "height": 256}, {"file_name": "ADE_val_00001998.jpg", "width": 257, "id": 22207, "height": 256}, {"file_name": "ADE_val_00001999.jpg", "width": 256, "id": 22208, "height": 256}, {"file_name": "ADE_val_00002000.jpg", "width": 400, "id": 22209, "height": 300}, {"file_name": "ADE_test_00000001.jpg", "width": 753, "id": 22210, "height": 512}, {"file_name": "ADE_test_00000002.jpg", "width": 978, "id": 22211, "height": 512}, {"file_name": "ADE_test_00000003.jpg", "width": 683, "id": 22212, "height": 512}, {"file_name": "ADE_test_00000005.jpg", "width": 512, "id": 22213, "height": 850}, {"file_name": "ADE_test_00000006.jpg", "width": 512, "id": 22214, "height": 683}, {"file_name": "ADE_test_00000007.jpg", "width": 512, "id": 22215, "height": 758}, {"file_name": "ADE_test_00000008.jpg", "width": 683, "id": 22216, "height": 512}, {"file_name": "ADE_test_00000010.jpg", "width": 768, "id": 22217, "height": 512}, {"file_name": "ADE_test_00000011.jpg", "width": 512, "id": 22218, "height": 683}, {"file_name": "ADE_test_00000013.jpg", "width": 512, "id": 22219, "height": 768}, {"file_name": "ADE_test_00000014.jpg", "width": 512, "id": 22220, "height": 680}, {"file_name": "ADE_test_00000015.jpg", "width": 683, "id": 22221, "height": 512}, {"file_name": "ADE_test_00000016.jpg", "width": 512, "id": 22222, "height": 768}, {"file_name": "ADE_test_00000017.jpg", "width": 512, "id": 22223, "height": 634}, {"file_name": "ADE_test_00000018.jpg", "width": 512, "id": 22224, "height": 771}, {"file_name": "ADE_test_00000020.jpg", "width": 512, "id": 22225, "height": 683}, {"file_name": "ADE_test_00000021.jpg", "width": 512, "id": 22226, "height": 640}, {"file_name": "ADE_test_00000022.jpg", "width": 1024, "id": 22227, "height": 1024}, {"file_name": "ADE_test_00000023.jpg", "width": 512, "id": 22228, "height": 794}, {"file_name": "ADE_test_00000024.jpg", "width": 512, "id": 22229, "height": 683}, {"file_name": "ADE_test_00000025.jpg", "width": 512, "id": 22230, "height": 768}, {"file_name": "ADE_test_00000026.jpg", "width": 512, "id": 22231, "height": 751}, {"file_name": "ADE_test_00000027.jpg", "width": 512, "id": 22232, "height": 683}, {"file_name": "ADE_test_00000028.jpg", "width": 780, "id": 22233, "height": 512}, {"file_name": "ADE_test_00000029.jpg", "width": 766, "id": 22234, "height": 512}, {"file_name": "ADE_test_00000030.jpg", "width": 683, "id": 22235, "height": 512}, {"file_name": "ADE_test_00000031.jpg", "width": 712, "id": 22236, "height": 512}, {"file_name": "ADE_test_00000032.jpg", "width": 512, "id": 22237, "height": 765}, {"file_name": "ADE_test_00000033.jpg", "width": 512, "id": 22238, "height": 765}, {"file_name": "ADE_test_00000034.jpg", "width": 512, "id": 22239, "height": 683}, {"file_name": "ADE_test_00000036.jpg", "width": 512, "id": 22240, "height": 683}, {"file_name": "ADE_test_00000037.jpg", "width": 512, "id": 22241, "height": 768}, {"file_name": "ADE_test_00000038.jpg", "width": 512, "id": 22242, "height": 768}, {"file_name": "ADE_test_00000039.jpg", "width": 512, "id": 22243, "height": 530}, {"file_name": "ADE_test_00000040.jpg", "width": 512, "id": 22244, "height": 768}, {"file_name": "ADE_test_00000043.jpg", "width": 512, "id": 22245, "height": 859}, {"file_name": "ADE_test_00000044.jpg", "width": 512, "id": 22246, "height": 683}, {"file_name": "ADE_test_00000045.jpg", "width": 512, "id": 22247, "height": 675}, {"file_name": "ADE_test_00000046.jpg", "width": 683, "id": 22248, "height": 512}, {"file_name": "ADE_test_00000047.jpg", "width": 512, "id": 22249, "height": 768}, {"file_name": "ADE_test_00000048.jpg", "width": 683, "id": 22250, "height": 512}, {"file_name": "ADE_test_00000049.jpg", "width": 512, "id": 22251, "height": 768}, {"file_name": "ADE_test_00000050.jpg", "width": 653, "id": 22252, "height": 512}, {"file_name": "ADE_test_00000051.jpg", "width": 683, "id": 22253, "height": 512}, {"file_name": "ADE_test_00000052.jpg", "width": 512, "id": 22254, "height": 955}, {"file_name": "ADE_test_00000053.jpg", "width": 512, "id": 22255, "height": 683}, {"file_name": "ADE_test_00000054.jpg", "width": 512, "id": 22256, "height": 823}, {"file_name": "ADE_test_00000055.jpg", "width": 512, "id": 22257, "height": 569}, {"file_name": "ADE_test_00000056.jpg", "width": 512, "id": 22258, "height": 771}, {"file_name": "ADE_test_00000057.jpg", "width": 512, "id": 22259, "height": 768}, {"file_name": "ADE_test_00000058.jpg", "width": 512, "id": 22260, "height": 717}, {"file_name": "ADE_test_00000059.jpg", "width": 512, "id": 22261, "height": 684}, {"file_name": "ADE_test_00000060.jpg", "width": 512, "id": 22262, "height": 763}, {"file_name": "ADE_test_00000061.jpg", "width": 512, "id": 22263, "height": 683}, {"file_name": "ADE_test_00000062.jpg", "width": 512, "id": 22264, "height": 683}, {"file_name": "ADE_test_00000063.jpg", "width": 620, "id": 22265, "height": 512}, {"file_name": "ADE_test_00000064.jpg", "width": 512, "id": 22266, "height": 768}, {"file_name": "ADE_test_00000066.jpg", "width": 602, "id": 22267, "height": 512}, {"file_name": "ADE_test_00000067.jpg", "width": 512, "id": 22268, "height": 693}, {"file_name": "ADE_test_00000068.jpg", "width": 512, "id": 22269, "height": 683}, {"file_name": "ADE_test_00000069.jpg", "width": 512, "id": 22270, "height": 768}, {"file_name": "ADE_test_00000070.jpg", "width": 512, "id": 22271, "height": 683}, {"file_name": "ADE_test_00000071.jpg", "width": 512, "id": 22272, "height": 691}, {"file_name": "ADE_test_00000072.jpg", "width": 512, "id": 22273, "height": 683}, {"file_name": "ADE_test_00000073.jpg", "width": 512, "id": 22274, "height": 683}, {"file_name": "ADE_test_00000074.jpg", "width": 579, "id": 22275, "height": 512}, {"file_name": "ADE_test_00000075.jpg", "width": 512, "id": 22276, "height": 683}, {"file_name": "ADE_test_00000076.jpg", "width": 512, "id": 22277, "height": 768}, {"file_name": "ADE_test_00000077.jpg", "width": 572, "id": 22278, "height": 512}, {"file_name": "ADE_test_00000078.jpg", "width": 512, "id": 22279, "height": 911}, {"file_name": "ADE_test_00000079.jpg", "width": 512, "id": 22280, "height": 761}, {"file_name": "ADE_test_00000080.jpg", "width": 512, "id": 22281, "height": 768}, {"file_name": "ADE_test_00000081.jpg", "width": 770, "id": 22282, "height": 512}, {"file_name": "ADE_test_00000082.jpg", "width": 683, "id": 22283, "height": 512}, {"file_name": "ADE_test_00000083.jpg", "width": 768, "id": 22284, "height": 512}, {"file_name": "ADE_test_00000084.jpg", "width": 512, "id": 22285, "height": 768}, {"file_name": "ADE_test_00000085.jpg", "width": 683, "id": 22286, "height": 512}, {"file_name": "ADE_test_00000086.jpg", "width": 512, "id": 22287, "height": 683}, {"file_name": "ADE_test_00000087.jpg", "width": 683, "id": 22288, "height": 512}, {"file_name": "ADE_test_00000088.jpg", "width": 761, "id": 22289, "height": 512}, {"file_name": "ADE_test_00000089.jpg", "width": 683, "id": 22290, "height": 512}, {"file_name": "ADE_test_00000090.jpg", "width": 512, "id": 22291, "height": 910}, {"file_name": "ADE_test_00000091.jpg", "width": 512, "id": 22292, "height": 768}, {"file_name": "ADE_test_00000092.jpg", "width": 512, "id": 22293, "height": 763}, {"file_name": "ADE_test_00000093.jpg", "width": 512, "id": 22294, "height": 765}, {"file_name": "ADE_test_00000094.jpg", "width": 853, "id": 22295, "height": 512}, {"file_name": "ADE_test_00000095.jpg", "width": 512, "id": 22296, "height": 731}, {"file_name": "ADE_test_00000096.jpg", "width": 512, "id": 22297, "height": 683}, {"file_name": "ADE_test_00000097.jpg", "width": 512, "id": 22298, "height": 717}, {"file_name": "ADE_test_00000098.jpg", "width": 512, "id": 22299, "height": 645}, {"file_name": "ADE_test_00000099.jpg", "width": 512, "id": 22300, "height": 683}, {"file_name": "ADE_test_00000100.jpg", "width": 667, "id": 22301, "height": 512}, {"file_name": "ADE_test_00000101.jpg", "width": 682, "id": 22302, "height": 512}, {"file_name": "ADE_test_00000102.jpg", "width": 500, "id": 22303, "height": 802}, {"file_name": "ADE_test_00000103.jpg", "width": 512, "id": 22304, "height": 683}, {"file_name": "ADE_test_00000104.jpg", "width": 683, "id": 22305, "height": 512}, {"file_name": "ADE_test_00000105.jpg", "width": 772, "id": 22306, "height": 512}, {"file_name": "ADE_test_00000106.jpg", "width": 512, "id": 22307, "height": 768}, {"file_name": "ADE_test_00000107.jpg", "width": 765, "id": 22308, "height": 512}, {"file_name": "ADE_test_00000108.jpg", "width": 630, "id": 22309, "height": 512}, {"file_name": "ADE_test_00000110.jpg", "width": 512, "id": 22310, "height": 683}, {"file_name": "ADE_test_00000112.jpg", "width": 683, "id": 22311, "height": 512}, {"file_name": "ADE_test_00000113.jpg", "width": 683, "id": 22312, "height": 512}, {"file_name": "ADE_test_00000114.jpg", "width": 512, "id": 22313, "height": 717}, {"file_name": "ADE_test_00000115.jpg", "width": 768, "id": 22314, "height": 512}, {"file_name": "ADE_test_00000116.jpg", "width": 512, "id": 22315, "height": 683}, {"file_name": "ADE_test_00000117.jpg", "width": 530, "id": 22316, "height": 512}, {"file_name": "ADE_test_00000118.jpg", "width": 546, "id": 22317, "height": 512}, {"file_name": "ADE_test_00000119.jpg", "width": 512, "id": 22318, "height": 765}, {"file_name": "ADE_test_00000120.jpg", "width": 683, "id": 22319, "height": 512}, {"file_name": "ADE_test_00000121.jpg", "width": 768, "id": 22320, "height": 512}, {"file_name": "ADE_test_00000122.jpg", "width": 771, "id": 22321, "height": 512}, {"file_name": "ADE_test_00000123.jpg", "width": 512, "id": 22322, "height": 769}, {"file_name": "ADE_test_00000124.jpg", "width": 512, "id": 22323, "height": 683}, {"file_name": "ADE_test_00000125.jpg", "width": 605, "id": 22324, "height": 512}, {"file_name": "ADE_test_00000126.jpg", "width": 765, "id": 22325, "height": 512}, {"file_name": "ADE_test_00000127.jpg", "width": 683, "id": 22326, "height": 512}, {"file_name": "ADE_test_00000128.jpg", "width": 512, "id": 22327, "height": 659}, {"file_name": "ADE_test_00000129.jpg", "width": 512, "id": 22328, "height": 683}, {"file_name": "ADE_test_00000130.jpg", "width": 683, "id": 22329, "height": 512}, {"file_name": "ADE_test_00000131.jpg", "width": 512, "id": 22330, "height": 683}, {"file_name": "ADE_test_00000132.jpg", "width": 683, "id": 22331, "height": 512}, {"file_name": "ADE_test_00000133.jpg", "width": 799, "id": 22332, "height": 512}, {"file_name": "ADE_test_00000134.jpg", "width": 768, "id": 22333, "height": 512}, {"file_name": "ADE_test_00000135.jpg", "width": 771, "id": 22334, "height": 512}, {"file_name": "ADE_test_00000136.jpg", "width": 512, "id": 22335, "height": 765}, {"file_name": "ADE_test_00000137.jpg", "width": 512, "id": 22336, "height": 771}, {"file_name": "ADE_test_00000138.jpg", "width": 618, "id": 22337, "height": 512}, {"file_name": "ADE_test_00000139.jpg", "width": 768, "id": 22338, "height": 512}, {"file_name": "ADE_test_00000140.jpg", "width": 674, "id": 22339, "height": 512}, {"file_name": "ADE_test_00000141.jpg", "width": 512, "id": 22340, "height": 771}, {"file_name": "ADE_test_00000142.jpg", "width": 719, "id": 22341, "height": 512}, {"file_name": "ADE_test_00000143.jpg", "width": 512, "id": 22342, "height": 706}, {"file_name": "ADE_test_00000144.jpg", "width": 683, "id": 22343, "height": 512}, {"file_name": "ADE_test_00000145.jpg", "width": 683, "id": 22344, "height": 512}, {"file_name": "ADE_test_00000146.jpg", "width": 512, "id": 22345, "height": 768}, {"file_name": "ADE_test_00000147.jpg", "width": 683, "id": 22346, "height": 512}, {"file_name": "ADE_test_00000148.jpg", "width": 683, "id": 22347, "height": 512}, {"file_name": "ADE_test_00000149.jpg", "width": 683, "id": 22348, "height": 512}, {"file_name": "ADE_test_00000150.jpg", "width": 775, "id": 22349, "height": 512}, {"file_name": "ADE_test_00000151.jpg", "width": 512, "id": 22350, "height": 515}, {"file_name": "ADE_test_00000152.jpg", "width": 512, "id": 22351, "height": 683}, {"file_name": "ADE_test_00000153.jpg", "width": 1047, "id": 22352, "height": 512}, {"file_name": "ADE_test_00000154.jpg", "width": 683, "id": 22353, "height": 512}, {"file_name": "ADE_test_00000155.jpg", "width": 587, "id": 22354, "height": 512}, {"file_name": "ADE_test_00000156.jpg", "width": 683, "id": 22355, "height": 512}, {"file_name": "ADE_test_00000157.jpg", "width": 512, "id": 22356, "height": 768}, {"file_name": "ADE_test_00000158.jpg", "width": 512, "id": 22357, "height": 768}, {"file_name": "ADE_test_00000159.jpg", "width": 512, "id": 22358, "height": 770}, {"file_name": "ADE_test_00000160.jpg", "width": 512, "id": 22359, "height": 684}, {"file_name": "ADE_test_00000161.jpg", "width": 683, "id": 22360, "height": 512}, {"file_name": "ADE_test_00000162.jpg", "width": 770, "id": 22361, "height": 512}, {"file_name": "ADE_test_00000163.jpg", "width": 512, "id": 22362, "height": 773}, {"file_name": "ADE_test_00000164.jpg", "width": 512, "id": 22363, "height": 683}, {"file_name": "ADE_test_00000165.jpg", "width": 512, "id": 22364, "height": 629}, {"file_name": "ADE_test_00000166.jpg", "width": 512, "id": 22365, "height": 764}, {"file_name": "ADE_test_00000167.jpg", "width": 512, "id": 22366, "height": 513}, {"file_name": "ADE_test_00000168.jpg", "width": 766, "id": 22367, "height": 512}, {"file_name": "ADE_test_00000169.jpg", "width": 855, "id": 22368, "height": 512}, {"file_name": "ADE_test_00000170.jpg", "width": 638, "id": 22369, "height": 512}, {"file_name": "ADE_test_00000171.jpg", "width": 771, "id": 22370, "height": 512}, {"file_name": "ADE_test_00000172.jpg", "width": 512, "id": 22371, "height": 763}, {"file_name": "ADE_test_00000173.jpg", "width": 683, "id": 22372, "height": 512}, {"file_name": "ADE_test_00000174.jpg", "width": 683, "id": 22373, "height": 512}, {"file_name": "ADE_test_00000175.jpg", "width": 683, "id": 22374, "height": 512}, {"file_name": "ADE_test_00000176.jpg", "width": 683, "id": 22375, "height": 512}, {"file_name": "ADE_test_00000179.jpg", "width": 512, "id": 22376, "height": 643}, {"file_name": "ADE_test_00000180.jpg", "width": 512, "id": 22377, "height": 769}, {"file_name": "ADE_test_00000181.jpg", "width": 683, "id": 22378, "height": 512}, {"file_name": "ADE_test_00000182.jpg", "width": 683, "id": 22379, "height": 512}, {"file_name": "ADE_test_00000183.jpg", "width": 683, "id": 22380, "height": 512}, {"file_name": "ADE_test_00000184.jpg", "width": 767, "id": 22381, "height": 512}, {"file_name": "ADE_test_00000185.jpg", "width": 708, "id": 22382, "height": 512}, {"file_name": "ADE_test_00000186.jpg", "width": 768, "id": 22383, "height": 512}, {"file_name": "ADE_test_00000187.jpg", "width": 683, "id": 22384, "height": 512}, {"file_name": "ADE_test_00000188.jpg", "width": 771, "id": 22385, "height": 512}, {"file_name": "ADE_test_00000189.jpg", "width": 768, "id": 22386, "height": 512}, {"file_name": "ADE_test_00000190.jpg", "width": 683, "id": 22387, "height": 512}, {"file_name": "ADE_test_00000191.jpg", "width": 516, "id": 22388, "height": 512}, {"file_name": "ADE_test_00000193.jpg", "width": 683, "id": 22389, "height": 512}, {"file_name": "ADE_test_00000194.jpg", "width": 512, "id": 22390, "height": 683}, {"file_name": "ADE_test_00000195.jpg", "width": 512, "id": 22391, "height": 771}, {"file_name": "ADE_test_00000196.jpg", "width": 683, "id": 22392, "height": 512}, {"file_name": "ADE_test_00000197.jpg", "width": 512, "id": 22393, "height": 683}, {"file_name": "ADE_test_00000198.jpg", "width": 683, "id": 22394, "height": 512}, {"file_name": "ADE_test_00000199.jpg", "width": 512, "id": 22395, "height": 771}, {"file_name": "ADE_test_00000200.jpg", "width": 1024, "id": 22396, "height": 1024}, {"file_name": "ADE_test_00000201.jpg", "width": 683, "id": 22397, "height": 512}, {"file_name": "ADE_test_00000202.jpg", "width": 512, "id": 22398, "height": 764}, {"file_name": "ADE_test_00000203.jpg", "width": 683, "id": 22399, "height": 512}, {"file_name": "ADE_test_00000204.jpg", "width": 683, "id": 22400, "height": 512}, {"file_name": "ADE_test_00000205.jpg", "width": 637, "id": 22401, "height": 512}, {"file_name": "ADE_test_00000206.jpg", "width": 683, "id": 22402, "height": 512}, {"file_name": "ADE_test_00000207.jpg", "width": 683, "id": 22403, "height": 512}, {"file_name": "ADE_test_00000208.jpg", "width": 512, "id": 22404, "height": 685}, {"file_name": "ADE_test_00000209.jpg", "width": 512, "id": 22405, "height": 640}, {"file_name": "ADE_test_00000210.jpg", "width": 512, "id": 22406, "height": 768}, {"file_name": "ADE_test_00000211.jpg", "width": 512, "id": 22407, "height": 768}, {"file_name": "ADE_test_00000212.jpg", "width": 768, "id": 22408, "height": 512}, {"file_name": "ADE_test_00000213.jpg", "width": 512, "id": 22409, "height": 768}, {"file_name": "ADE_test_00000214.jpg", "width": 512, "id": 22410, "height": 768}, {"file_name": "ADE_test_00000215.jpg", "width": 768, "id": 22411, "height": 512}, {"file_name": "ADE_test_00000216.jpg", "width": 512, "id": 22412, "height": 724}, {"file_name": "ADE_test_00000217.jpg", "width": 512, "id": 22413, "height": 683}, {"file_name": "ADE_test_00000218.jpg", "width": 512, "id": 22414, "height": 768}, {"file_name": "ADE_test_00000219.jpg", "width": 512, "id": 22415, "height": 768}, {"file_name": "ADE_test_00000220.jpg", "width": 512, "id": 22416, "height": 768}, {"file_name": "ADE_test_00000221.jpg", "width": 512, "id": 22417, "height": 768}, {"file_name": "ADE_test_00000222.jpg", "width": 512, "id": 22418, "height": 771}, {"file_name": "ADE_test_00000223.jpg", "width": 512, "id": 22419, "height": 768}, {"file_name": "ADE_test_00000224.jpg", "width": 512, "id": 22420, "height": 770}, {"file_name": "ADE_test_00000225.jpg", "width": 512, "id": 22421, "height": 768}, {"file_name": "ADE_test_00000226.jpg", "width": 512, "id": 22422, "height": 533}, {"file_name": "ADE_test_00000227.jpg", "width": 512, "id": 22423, "height": 768}, {"file_name": "ADE_test_00000228.jpg", "width": 512, "id": 22424, "height": 768}, {"file_name": "ADE_test_00000229.jpg", "width": 512, "id": 22425, "height": 768}, {"file_name": "ADE_test_00000230.jpg", "width": 512, "id": 22426, "height": 665}, {"file_name": "ADE_test_00000231.jpg", "width": 512, "id": 22427, "height": 765}, {"file_name": "ADE_test_00000232.jpg", "width": 683, "id": 22428, "height": 512}, {"file_name": "ADE_test_00000233.jpg", "width": 512, "id": 22429, "height": 765}, {"file_name": "ADE_test_00000234.jpg", "width": 512, "id": 22430, "height": 675}, {"file_name": "ADE_test_00000235.jpg", "width": 512, "id": 22431, "height": 747}, {"file_name": "ADE_test_00000236.jpg", "width": 512, "id": 22432, "height": 768}, {"file_name": "ADE_test_00000237.jpg", "width": 512, "id": 22433, "height": 768}, {"file_name": "ADE_test_00000238.jpg", "width": 512, "id": 22434, "height": 683}, {"file_name": "ADE_test_00000239.jpg", "width": 768, "id": 22435, "height": 512}, {"file_name": "ADE_test_00000240.jpg", "width": 512, "id": 22436, "height": 768}, {"file_name": "ADE_test_00000242.jpg", "width": 512, "id": 22437, "height": 768}, {"file_name": "ADE_test_00000243.jpg", "width": 512, "id": 22438, "height": 683}, {"file_name": "ADE_test_00000244.jpg", "width": 683, "id": 22439, "height": 512}, {"file_name": "ADE_test_00000245.jpg", "width": 683, "id": 22440, "height": 512}, {"file_name": "ADE_test_00000246.jpg", "width": 512, "id": 22441, "height": 768}, {"file_name": "ADE_test_00000248.jpg", "width": 512, "id": 22442, "height": 744}, {"file_name": "ADE_test_00000249.jpg", "width": 682, "id": 22443, "height": 512}, {"file_name": "ADE_test_00000250.jpg", "width": 512, "id": 22444, "height": 683}, {"file_name": "ADE_test_00000252.jpg", "width": 512, "id": 22445, "height": 683}, {"file_name": "ADE_test_00000253.jpg", "width": 683, "id": 22446, "height": 512}, {"file_name": "ADE_test_00000254.jpg", "width": 683, "id": 22447, "height": 512}, {"file_name": "ADE_test_00000255.jpg", "width": 683, "id": 22448, "height": 512}, {"file_name": "ADE_test_00000256.jpg", "width": 683, "id": 22449, "height": 512}, {"file_name": "ADE_test_00000257.jpg", "width": 678, "id": 22450, "height": 512}, {"file_name": "ADE_test_00000258.jpg", "width": 512, "id": 22451, "height": 683}, {"file_name": "ADE_test_00000259.jpg", "width": 768, "id": 22452, "height": 512}, {"file_name": "ADE_test_00000260.jpg", "width": 512, "id": 22453, "height": 685}, {"file_name": "ADE_test_00000261.jpg", "width": 512, "id": 22454, "height": 684}, {"file_name": "ADE_test_00000262.jpg", "width": 512, "id": 22455, "height": 768}, {"file_name": "ADE_test_00000263.jpg", "width": 683, "id": 22456, "height": 512}, {"file_name": "ADE_test_00000264.jpg", "width": 512, "id": 22457, "height": 773}, {"file_name": "ADE_test_00000265.jpg", "width": 683, "id": 22458, "height": 512}, {"file_name": "ADE_test_00000266.jpg", "width": 512, "id": 22459, "height": 768}, {"file_name": "ADE_test_00000268.jpg", "width": 512, "id": 22460, "height": 683}, {"file_name": "ADE_test_00000269.jpg", "width": 771, "id": 22461, "height": 512}, {"file_name": "ADE_test_00000270.jpg", "width": 768, "id": 22462, "height": 512}, {"file_name": "ADE_test_00000271.jpg", "width": 651, "id": 22463, "height": 512}, {"file_name": "ADE_test_00000272.jpg", "width": 683, "id": 22464, "height": 512}, {"file_name": "ADE_test_00000273.jpg", "width": 512, "id": 22465, "height": 771}, {"file_name": "ADE_test_00000274.jpg", "width": 512, "id": 22466, "height": 683}, {"file_name": "ADE_test_00000275.jpg", "width": 512, "id": 22467, "height": 586}, {"file_name": "ADE_test_00000276.jpg", "width": 768, "id": 22468, "height": 512}, {"file_name": "ADE_test_00000277.jpg", "width": 619, "id": 22469, "height": 512}, {"file_name": "ADE_test_00000278.jpg", "width": 512, "id": 22470, "height": 513}, {"file_name": "ADE_test_00000279.jpg", "width": 512, "id": 22471, "height": 723}, {"file_name": "ADE_test_00000280.jpg", "width": 512, "id": 22472, "height": 770}, {"file_name": "ADE_test_00000281.jpg", "width": 512, "id": 22473, "height": 771}, {"file_name": "ADE_test_00000282.jpg", "width": 684, "id": 22474, "height": 512}, {"file_name": "ADE_test_00000283.jpg", "width": 512, "id": 22475, "height": 701}, {"file_name": "ADE_test_00000284.jpg", "width": 512, "id": 22476, "height": 772}, {"file_name": "ADE_test_00000285.jpg", "width": 512, "id": 22477, "height": 676}, {"file_name": "ADE_test_00000286.jpg", "width": 512, "id": 22478, "height": 768}, {"file_name": "ADE_test_00000287.jpg", "width": 623, "id": 22479, "height": 512}, {"file_name": "ADE_test_00000288.jpg", "width": 512, "id": 22480, "height": 683}, {"file_name": "ADE_test_00000289.jpg", "width": 683, "id": 22481, "height": 512}, {"file_name": "ADE_test_00000290.jpg", "width": 643, "id": 22482, "height": 512}, {"file_name": "ADE_test_00000291.jpg", "width": 631, "id": 22483, "height": 512}, {"file_name": "ADE_test_00000292.jpg", "width": 512, "id": 22484, "height": 601}, {"file_name": "ADE_test_00000293.jpg", "width": 512, "id": 22485, "height": 765}, {"file_name": "ADE_test_00000294.jpg", "width": 512, "id": 22486, "height": 541}, {"file_name": "ADE_test_00000295.jpg", "width": 512, "id": 22487, "height": 769}, {"file_name": "ADE_test_00000296.jpg", "width": 512, "id": 22488, "height": 683}, {"file_name": "ADE_test_00000297.jpg", "width": 512, "id": 22489, "height": 683}, {"file_name": "ADE_test_00000298.jpg", "width": 512, "id": 22490, "height": 683}, {"file_name": "ADE_test_00000299.jpg", "width": 512, "id": 22491, "height": 759}, {"file_name": "ADE_test_00000300.jpg", "width": 770, "id": 22492, "height": 512}, {"file_name": "ADE_test_00000301.jpg", "width": 512, "id": 22493, "height": 683}, {"file_name": "ADE_test_00000304.jpg", "width": 512, "id": 22494, "height": 767}, {"file_name": "ADE_test_00000306.jpg", "width": 512, "id": 22495, "height": 683}, {"file_name": "ADE_test_00000307.jpg", "width": 512, "id": 22496, "height": 633}, {"file_name": "ADE_test_00000308.jpg", "width": 512, "id": 22497, "height": 683}, {"file_name": "ADE_test_00000309.jpg", "width": 512, "id": 22498, "height": 855}, {"file_name": "ADE_test_00000310.jpg", "width": 512, "id": 22499, "height": 683}, {"file_name": "ADE_test_00000311.jpg", "width": 512, "id": 22500, "height": 682}, {"file_name": "ADE_test_00000312.jpg", "width": 512, "id": 22501, "height": 702}, {"file_name": "ADE_test_00000313.jpg", "width": 770, "id": 22502, "height": 512}, {"file_name": "ADE_test_00000314.jpg", "width": 512, "id": 22503, "height": 683}, {"file_name": "ADE_test_00000315.jpg", "width": 512, "id": 22504, "height": 771}, {"file_name": "ADE_test_00000316.jpg", "width": 512, "id": 22505, "height": 717}, {"file_name": "ADE_test_00000317.jpg", "width": 1024, "id": 22506, "height": 1024}, {"file_name": "ADE_test_00000318.jpg", "width": 512, "id": 22507, "height": 768}, {"file_name": "ADE_test_00000319.jpg", "width": 512, "id": 22508, "height": 771}, {"file_name": "ADE_test_00000320.jpg", "width": 768, "id": 22509, "height": 512}, {"file_name": "ADE_test_00000321.jpg", "width": 768, "id": 22510, "height": 512}, {"file_name": "ADE_test_00000322.jpg", "width": 683, "id": 22511, "height": 512}, {"file_name": "ADE_test_00000323.jpg", "width": 1024, "id": 22512, "height": 1024}, {"file_name": "ADE_test_00000324.jpg", "width": 683, "id": 22513, "height": 512}, {"file_name": "ADE_test_00000325.jpg", "width": 512, "id": 22514, "height": 768}, {"file_name": "ADE_test_00000326.jpg", "width": 512, "id": 22515, "height": 683}, {"file_name": "ADE_test_00000327.jpg", "width": 683, "id": 22516, "height": 512}, {"file_name": "ADE_test_00000328.jpg", "width": 683, "id": 22517, "height": 512}, {"file_name": "ADE_test_00000329.jpg", "width": 641, "id": 22518, "height": 512}, {"file_name": "ADE_test_00000330.jpg", "width": 683, "id": 22519, "height": 512}, {"file_name": "ADE_test_00000331.jpg", "width": 512, "id": 22520, "height": 912}, {"file_name": "ADE_test_00000332.jpg", "width": 502, "id": 22521, "height": 832}, {"file_name": "ADE_test_00000333.jpg", "width": 2000, "id": 22522, "height": 2000}, {"file_name": "ADE_test_00000334.jpg", "width": 512, "id": 22523, "height": 684}, {"file_name": "ADE_test_00000335.jpg", "width": 685, "id": 22524, "height": 512}, {"file_name": "ADE_test_00000336.jpg", "width": 512, "id": 22525, "height": 770}, {"file_name": "ADE_test_00000338.jpg", "width": 512, "id": 22526, "height": 683}, {"file_name": "ADE_test_00000339.jpg", "width": 631, "id": 22527, "height": 512}, {"file_name": "ADE_test_00000340.jpg", "width": 512, "id": 22528, "height": 683}, {"file_name": "ADE_test_00000341.jpg", "width": 512, "id": 22529, "height": 683}, {"file_name": "ADE_test_00000342.jpg", "width": 684, "id": 22530, "height": 512}, {"file_name": "ADE_test_00000343.jpg", "width": 768, "id": 22531, "height": 512}, {"file_name": "ADE_test_00000344.jpg", "width": 519, "id": 22532, "height": 512}, {"file_name": "ADE_test_00000345.jpg", "width": 683, "id": 22533, "height": 512}, {"file_name": "ADE_test_00000346.jpg", "width": 908, "id": 22534, "height": 512}, {"file_name": "ADE_test_00000347.jpg", "width": 685, "id": 22535, "height": 512}, {"file_name": "ADE_test_00000348.jpg", "width": 771, "id": 22536, "height": 512}, {"file_name": "ADE_test_00000349.jpg", "width": 1600, "id": 22537, "height": 1600}, {"file_name": "ADE_test_00000350.jpg", "width": 683, "id": 22538, "height": 512}, {"file_name": "ADE_test_00000351.jpg", "width": 512, "id": 22539, "height": 683}, {"file_name": "ADE_test_00000352.jpg", "width": 771, "id": 22540, "height": 512}, {"file_name": "ADE_test_00000353.jpg", "width": 512, "id": 22541, "height": 715}, {"file_name": "ADE_test_00000354.jpg", "width": 512, "id": 22542, "height": 701}, {"file_name": "ADE_test_00000355.jpg", "width": 768, "id": 22543, "height": 512}, {"file_name": "ADE_test_00000356.jpg", "width": 512, "id": 22544, "height": 755}, {"file_name": "ADE_test_00000357.jpg", "width": 602, "id": 22545, "height": 512}, {"file_name": "ADE_test_00000358.jpg", "width": 512, "id": 22546, "height": 683}, {"file_name": "ADE_test_00000359.jpg", "width": 512, "id": 22547, "height": 685}, {"file_name": "ADE_test_00000360.jpg", "width": 583, "id": 22548, "height": 512}, {"file_name": "ADE_test_00000361.jpg", "width": 683, "id": 22549, "height": 512}, {"file_name": "ADE_test_00000362.jpg", "width": 512, "id": 22550, "height": 683}, {"file_name": "ADE_test_00000363.jpg", "width": 683, "id": 22551, "height": 512}, {"file_name": "ADE_test_00000364.jpg", "width": 683, "id": 22552, "height": 512}, {"file_name": "ADE_test_00000365.jpg", "width": 512, "id": 22553, "height": 765}, {"file_name": "ADE_test_00000366.jpg", "width": 512, "id": 22554, "height": 683}, {"file_name": "ADE_test_00000367.jpg", "width": 683, "id": 22555, "height": 512}, {"file_name": "ADE_test_00000368.jpg", "width": 512, "id": 22556, "height": 683}, {"file_name": "ADE_test_00000369.jpg", "width": 703, "id": 22557, "height": 512}, {"file_name": "ADE_test_00000370.jpg", "width": 693, "id": 22558, "height": 512}, {"file_name": "ADE_test_00000371.jpg", "width": 512, "id": 22559, "height": 683}, {"file_name": "ADE_test_00000372.jpg", "width": 768, "id": 22560, "height": 512}, {"file_name": "ADE_test_00000373.jpg", "width": 512, "id": 22561, "height": 683}, {"file_name": "ADE_test_00000374.jpg", "width": 683, "id": 22562, "height": 512}, {"file_name": "ADE_test_00000375.jpg", "width": 683, "id": 22563, "height": 512}, {"file_name": "ADE_test_00000376.jpg", "width": 717, "id": 22564, "height": 512}, {"file_name": "ADE_test_00000377.jpg", "width": 512, "id": 22565, "height": 770}, {"file_name": "ADE_test_00000378.jpg", "width": 512, "id": 22566, "height": 683}, {"file_name": "ADE_test_00000379.jpg", "width": 683, "id": 22567, "height": 512}, {"file_name": "ADE_test_00000380.jpg", "width": 768, "id": 22568, "height": 512}, {"file_name": "ADE_test_00000381.jpg", "width": 683, "id": 22569, "height": 512}, {"file_name": "ADE_test_00000382.jpg", "width": 512, "id": 22570, "height": 683}, {"file_name": "ADE_test_00000383.jpg", "width": 512, "id": 22571, "height": 856}, {"file_name": "ADE_test_00000384.jpg", "width": 683, "id": 22572, "height": 512}, {"file_name": "ADE_test_00000385.jpg", "width": 768, "id": 22573, "height": 512}, {"file_name": "ADE_test_00000386.jpg", "width": 512, "id": 22574, "height": 683}, {"file_name": "ADE_test_00000387.jpg", "width": 717, "id": 22575, "height": 512}, {"file_name": "ADE_test_00000388.jpg", "width": 765, "id": 22576, "height": 512}, {"file_name": "ADE_test_00000389.jpg", "width": 512, "id": 22577, "height": 775}, {"file_name": "ADE_test_00000390.jpg", "width": 683, "id": 22578, "height": 512}, {"file_name": "ADE_test_00000391.jpg", "width": 771, "id": 22579, "height": 512}, {"file_name": "ADE_test_00000392.jpg", "width": 636, "id": 22580, "height": 512}, {"file_name": "ADE_test_00000393.jpg", "width": 683, "id": 22581, "height": 512}, {"file_name": "ADE_test_00000394.jpg", "width": 512, "id": 22582, "height": 683}, {"file_name": "ADE_test_00000395.jpg", "width": 683, "id": 22583, "height": 512}, {"file_name": "ADE_test_00000396.jpg", "width": 683, "id": 22584, "height": 512}, {"file_name": "ADE_test_00000397.jpg", "width": 533, "id": 22585, "height": 512}, {"file_name": "ADE_test_00000398.jpg", "width": 512, "id": 22586, "height": 768}, {"file_name": "ADE_test_00000399.jpg", "width": 512, "id": 22587, "height": 768}, {"file_name": "ADE_test_00000400.jpg", "width": 530, "id": 22588, "height": 512}, {"file_name": "ADE_test_00000401.jpg", "width": 512, "id": 22589, "height": 768}, {"file_name": "ADE_test_00000402.jpg", "width": 512, "id": 22590, "height": 522}, {"file_name": "ADE_test_00000403.jpg", "width": 512, "id": 22591, "height": 720}, {"file_name": "ADE_test_00000404.jpg", "width": 531, "id": 22592, "height": 512}, {"file_name": "ADE_test_00000406.jpg", "width": 512, "id": 22593, "height": 683}, {"file_name": "ADE_test_00000407.jpg", "width": 512, "id": 22594, "height": 794}, {"file_name": "ADE_test_00000408.jpg", "width": 512, "id": 22595, "height": 610}, {"file_name": "ADE_test_00000409.jpg", "width": 512, "id": 22596, "height": 770}, {"file_name": "ADE_test_00000410.jpg", "width": 772, "id": 22597, "height": 512}, {"file_name": "ADE_test_00000412.jpg", "width": 1024, "id": 22598, "height": 1024}, {"file_name": "ADE_test_00000413.jpg", "width": 512, "id": 22599, "height": 768}, {"file_name": "ADE_test_00000414.jpg", "width": 768, "id": 22600, "height": 512}, {"file_name": "ADE_test_00000415.jpg", "width": 948, "id": 22601, "height": 512}, {"file_name": "ADE_test_00000416.jpg", "width": 512, "id": 22602, "height": 683}, {"file_name": "ADE_test_00000417.jpg", "width": 512, "id": 22603, "height": 683}, {"file_name": "ADE_test_00000418.jpg", "width": 768, "id": 22604, "height": 512}, {"file_name": "ADE_test_00000419.jpg", "width": 512, "id": 22605, "height": 768}, {"file_name": "ADE_test_00000420.jpg", "width": 767, "id": 22606, "height": 512}, {"file_name": "ADE_test_00000421.jpg", "width": 512, "id": 22607, "height": 683}, {"file_name": "ADE_test_00000422.jpg", "width": 512, "id": 22608, "height": 734}, {"file_name": "ADE_test_00000423.jpg", "width": 683, "id": 22609, "height": 512}, {"file_name": "ADE_test_00000424.jpg", "width": 512, "id": 22610, "height": 683}, {"file_name": "ADE_test_00000425.jpg", "width": 512, "id": 22611, "height": 768}, {"file_name": "ADE_test_00000426.jpg", "width": 608, "id": 22612, "height": 512}, {"file_name": "ADE_test_00000427.jpg", "width": 765, "id": 22613, "height": 512}, {"file_name": "ADE_test_00000428.jpg", "width": 683, "id": 22614, "height": 512}, {"file_name": "ADE_test_00000429.jpg", "width": 602, "id": 22615, "height": 512}, {"file_name": "ADE_test_00000430.jpg", "width": 1036, "id": 22616, "height": 512}, {"file_name": "ADE_test_00000431.jpg", "width": 512, "id": 22617, "height": 683}, {"file_name": "ADE_test_00000432.jpg", "width": 512, "id": 22618, "height": 683}, {"file_name": "ADE_test_00000433.jpg", "width": 512, "id": 22619, "height": 683}, {"file_name": "ADE_test_00000434.jpg", "width": 681, "id": 22620, "height": 512}, {"file_name": "ADE_test_00000435.jpg", "width": 512, "id": 22621, "height": 683}, {"file_name": "ADE_test_00000436.jpg", "width": 683, "id": 22622, "height": 512}, {"file_name": "ADE_test_00000437.jpg", "width": 512, "id": 22623, "height": 683}, {"file_name": "ADE_test_00000438.jpg", "width": 512, "id": 22624, "height": 768}, {"file_name": "ADE_test_00000439.jpg", "width": 806, "id": 22625, "height": 512}, {"file_name": "ADE_test_00000440.jpg", "width": 512, "id": 22626, "height": 768}, {"file_name": "ADE_test_00000441.jpg", "width": 512, "id": 22627, "height": 769}, {"file_name": "ADE_test_00000442.jpg", "width": 512, "id": 22628, "height": 590}, {"file_name": "ADE_test_00000443.jpg", "width": 512, "id": 22629, "height": 701}, {"file_name": "ADE_test_00000444.jpg", "width": 512, "id": 22630, "height": 683}, {"file_name": "ADE_test_00000445.jpg", "width": 512, "id": 22631, "height": 689}, {"file_name": "ADE_test_00000446.jpg", "width": 512, "id": 22632, "height": 768}, {"file_name": "ADE_test_00000447.jpg", "width": 512, "id": 22633, "height": 683}, {"file_name": "ADE_test_00000448.jpg", "width": 512, "id": 22634, "height": 686}, {"file_name": "ADE_test_00000449.jpg", "width": 512, "id": 22635, "height": 768}, {"file_name": "ADE_test_00000450.jpg", "width": 512, "id": 22636, "height": 855}, {"file_name": "ADE_test_00000451.jpg", "width": 512, "id": 22637, "height": 742}, {"file_name": "ADE_test_00000452.jpg", "width": 685, "id": 22638, "height": 512}, {"file_name": "ADE_test_00000453.jpg", "width": 512, "id": 22639, "height": 683}, {"file_name": "ADE_test_00000454.jpg", "width": 725, "id": 22640, "height": 512}, {"file_name": "ADE_test_00000455.jpg", "width": 512, "id": 22641, "height": 710}, {"file_name": "ADE_test_00000456.jpg", "width": 512, "id": 22642, "height": 768}, {"file_name": "ADE_test_00000457.jpg", "width": 512, "id": 22643, "height": 768}, {"file_name": "ADE_test_00000458.jpg", "width": 512, "id": 22644, "height": 683}, {"file_name": "ADE_test_00000459.jpg", "width": 512, "id": 22645, "height": 768}, {"file_name": "ADE_test_00000460.jpg", "width": 664, "id": 22646, "height": 512}, {"file_name": "ADE_test_00000461.jpg", "width": 683, "id": 22647, "height": 512}, {"file_name": "ADE_test_00000462.jpg", "width": 574, "id": 22648, "height": 512}, {"file_name": "ADE_test_00000463.jpg", "width": 512, "id": 22649, "height": 683}, {"file_name": "ADE_test_00000464.jpg", "width": 634, "id": 22650, "height": 512}, {"file_name": "ADE_test_00000465.jpg", "width": 765, "id": 22651, "height": 512}, {"file_name": "ADE_test_00000466.jpg", "width": 681, "id": 22652, "height": 512}, {"file_name": "ADE_test_00000467.jpg", "width": 512, "id": 22653, "height": 683}, {"file_name": "ADE_test_00000468.jpg", "width": 512, "id": 22654, "height": 771}, {"file_name": "ADE_test_00000469.jpg", "width": 683, "id": 22655, "height": 512}, {"file_name": "ADE_test_00000470.jpg", "width": 512, "id": 22656, "height": 683}, {"file_name": "ADE_test_00000471.jpg", "width": 512, "id": 22657, "height": 683}, {"file_name": "ADE_test_00000472.jpg", "width": 512, "id": 22658, "height": 768}, {"file_name": "ADE_test_00000473.jpg", "width": 771, "id": 22659, "height": 512}, {"file_name": "ADE_test_00000474.jpg", "width": 512, "id": 22660, "height": 768}, {"file_name": "ADE_test_00000475.jpg", "width": 512, "id": 22661, "height": 683}, {"file_name": "ADE_test_00000476.jpg", "width": 512, "id": 22662, "height": 770}, {"file_name": "ADE_test_00000477.jpg", "width": 512, "id": 22663, "height": 683}, {"file_name": "ADE_test_00000478.jpg", "width": 512, "id": 22664, "height": 682}, {"file_name": "ADE_test_00000479.jpg", "width": 910, "id": 22665, "height": 512}, {"file_name": "ADE_test_00000480.jpg", "width": 512, "id": 22666, "height": 683}, {"file_name": "ADE_test_00000481.jpg", "width": 683, "id": 22667, "height": 512}, {"file_name": "ADE_test_00000482.jpg", "width": 512, "id": 22668, "height": 537}, {"file_name": "ADE_test_00000484.jpg", "width": 683, "id": 22669, "height": 512}, {"file_name": "ADE_test_00000485.jpg", "width": 683, "id": 22670, "height": 512}, {"file_name": "ADE_test_00000486.jpg", "width": 512, "id": 22671, "height": 635}, {"file_name": "ADE_test_00000487.jpg", "width": 829, "id": 22672, "height": 512}, {"file_name": "ADE_test_00000488.jpg", "width": 512, "id": 22673, "height": 827}, {"file_name": "ADE_test_00000489.jpg", "width": 765, "id": 22674, "height": 512}, {"file_name": "ADE_test_00000490.jpg", "width": 512, "id": 22675, "height": 771}, {"file_name": "ADE_test_00000491.jpg", "width": 803, "id": 22676, "height": 512}, {"file_name": "ADE_test_00000492.jpg", "width": 683, "id": 22677, "height": 512}, {"file_name": "ADE_test_00000493.jpg", "width": 512, "id": 22678, "height": 683}, {"file_name": "ADE_test_00000494.jpg", "width": 512, "id": 22679, "height": 768}, {"file_name": "ADE_test_00000495.jpg", "width": 771, "id": 22680, "height": 512}, {"file_name": "ADE_test_00000496.jpg", "width": 683, "id": 22681, "height": 512}, {"file_name": "ADE_test_00000497.jpg", "width": 683, "id": 22682, "height": 512}, {"file_name": "ADE_test_00000498.jpg", "width": 771, "id": 22683, "height": 512}, {"file_name": "ADE_test_00000499.jpg", "width": 512, "id": 22684, "height": 770}, {"file_name": "ADE_test_00000500.jpg", "width": 683, "id": 22685, "height": 512}, {"file_name": "ADE_test_00000501.jpg", "width": 512, "id": 22686, "height": 768}, {"file_name": "ADE_test_00000502.jpg", "width": 512, "id": 22687, "height": 683}, {"file_name": "ADE_test_00000503.jpg", "width": 661, "id": 22688, "height": 512}, {"file_name": "ADE_test_00000504.jpg", "width": 765, "id": 22689, "height": 512}, {"file_name": "ADE_test_00000505.jpg", "width": 512, "id": 22690, "height": 683}, {"file_name": "ADE_test_00000506.jpg", "width": 512, "id": 22691, "height": 819}, {"file_name": "ADE_test_00000507.jpg", "width": 512, "id": 22692, "height": 768}, {"file_name": "ADE_test_00000508.jpg", "width": 839, "id": 22693, "height": 512}, {"file_name": "ADE_test_00000510.jpg", "width": 1024, "id": 22694, "height": 1024}, {"file_name": "ADE_test_00000511.jpg", "width": 512, "id": 22695, "height": 770}, {"file_name": "ADE_test_00000513.jpg", "width": 512, "id": 22696, "height": 771}, {"file_name": "ADE_test_00000514.jpg", "width": 512, "id": 22697, "height": 683}, {"file_name": "ADE_test_00000515.jpg", "width": 819, "id": 22698, "height": 512}, {"file_name": "ADE_test_00000516.jpg", "width": 683, "id": 22699, "height": 512}, {"file_name": "ADE_test_00000517.jpg", "width": 768, "id": 22700, "height": 512}, {"file_name": "ADE_test_00000518.jpg", "width": 512, "id": 22701, "height": 768}, {"file_name": "ADE_test_00000519.jpg", "width": 1200, "id": 22702, "height": 1200}, {"file_name": "ADE_test_00000520.jpg", "width": 683, "id": 22703, "height": 512}, {"file_name": "ADE_test_00000521.jpg", "width": 768, "id": 22704, "height": 512}, {"file_name": "ADE_test_00000522.jpg", "width": 512, "id": 22705, "height": 734}, {"file_name": "ADE_test_00000523.jpg", "width": 714, "id": 22706, "height": 512}, {"file_name": "ADE_test_00000524.jpg", "width": 772, "id": 22707, "height": 512}, {"file_name": "ADE_test_00000525.jpg", "width": 512, "id": 22708, "height": 765}, {"file_name": "ADE_test_00000526.jpg", "width": 686, "id": 22709, "height": 512}, {"file_name": "ADE_test_00000527.jpg", "width": 512, "id": 22710, "height": 768}, {"file_name": "ADE_test_00000528.jpg", "width": 512, "id": 22711, "height": 683}, {"file_name": "ADE_test_00000529.jpg", "width": 683, "id": 22712, "height": 512}, {"file_name": "ADE_test_00000530.jpg", "width": 512, "id": 22713, "height": 771}, {"file_name": "ADE_test_00000531.jpg", "width": 512, "id": 22714, "height": 683}, {"file_name": "ADE_test_00000532.jpg", "width": 585, "id": 22715, "height": 512}, {"file_name": "ADE_test_00000533.jpg", "width": 512, "id": 22716, "height": 683}, {"file_name": "ADE_test_00000534.jpg", "width": 512, "id": 22717, "height": 768}, {"file_name": "ADE_test_00000535.jpg", "width": 683, "id": 22718, "height": 512}, {"file_name": "ADE_test_00000536.jpg", "width": 768, "id": 22719, "height": 512}, {"file_name": "ADE_test_00000537.jpg", "width": 512, "id": 22720, "height": 524}, {"file_name": "ADE_test_00000538.jpg", "width": 512, "id": 22721, "height": 683}, {"file_name": "ADE_test_00000539.jpg", "width": 512, "id": 22722, "height": 933}, {"file_name": "ADE_test_00000540.jpg", "width": 512, "id": 22723, "height": 773}, {"file_name": "ADE_test_00000541.jpg", "width": 683, "id": 22724, "height": 512}, {"file_name": "ADE_test_00000542.jpg", "width": 768, "id": 22725, "height": 512}, {"file_name": "ADE_test_00000543.jpg", "width": 924, "id": 22726, "height": 512}, {"file_name": "ADE_test_00000544.jpg", "width": 512, "id": 22727, "height": 764}, {"file_name": "ADE_test_00000545.jpg", "width": 512, "id": 22728, "height": 655}, {"file_name": "ADE_test_00000546.jpg", "width": 683, "id": 22729, "height": 512}, {"file_name": "ADE_test_00000547.jpg", "width": 767, "id": 22730, "height": 512}, {"file_name": "ADE_test_00000548.jpg", "width": 512, "id": 22731, "height": 683}, {"file_name": "ADE_test_00000549.jpg", "width": 512, "id": 22732, "height": 763}, {"file_name": "ADE_test_00000550.jpg", "width": 1024, "id": 22733, "height": 1024}, {"file_name": "ADE_test_00000551.jpg", "width": 512, "id": 22734, "height": 546}, {"file_name": "ADE_test_00000552.jpg", "width": 512, "id": 22735, "height": 768}, {"file_name": "ADE_test_00000553.jpg", "width": 512, "id": 22736, "height": 683}, {"file_name": "ADE_test_00000554.jpg", "width": 683, "id": 22737, "height": 512}, {"file_name": "ADE_test_00000555.jpg", "width": 768, "id": 22738, "height": 512}, {"file_name": "ADE_test_00000556.jpg", "width": 683, "id": 22739, "height": 512}, {"file_name": "ADE_test_00000557.jpg", "width": 640, "id": 22740, "height": 512}, {"file_name": "ADE_test_00000558.jpg", "width": 683, "id": 22741, "height": 512}, {"file_name": "ADE_test_00000559.jpg", "width": 512, "id": 22742, "height": 683}, {"file_name": "ADE_test_00000560.jpg", "width": 512, "id": 22743, "height": 768}, {"file_name": "ADE_test_00000561.jpg", "width": 512, "id": 22744, "height": 683}, {"file_name": "ADE_test_00000562.jpg", "width": 512, "id": 22745, "height": 769}, {"file_name": "ADE_test_00000563.jpg", "width": 683, "id": 22746, "height": 512}, {"file_name": "ADE_test_00000564.jpg", "width": 512, "id": 22747, "height": 519}, {"file_name": "ADE_test_00000565.jpg", "width": 512, "id": 22748, "height": 683}, {"file_name": "ADE_test_00000566.jpg", "width": 512, "id": 22749, "height": 681}, {"file_name": "ADE_test_00000567.jpg", "width": 512, "id": 22750, "height": 683}, {"file_name": "ADE_test_00000568.jpg", "width": 618, "id": 22751, "height": 512}, {"file_name": "ADE_test_00000569.jpg", "width": 512, "id": 22752, "height": 771}, {"file_name": "ADE_test_00000570.jpg", "width": 512, "id": 22753, "height": 768}, {"file_name": "ADE_test_00000571.jpg", "width": 512, "id": 22754, "height": 853}, {"file_name": "ADE_test_00000572.jpg", "width": 512, "id": 22755, "height": 768}, {"file_name": "ADE_test_00000573.jpg", "width": 512, "id": 22756, "height": 769}, {"file_name": "ADE_test_00000574.jpg", "width": 512, "id": 22757, "height": 670}, {"file_name": "ADE_test_00000575.jpg", "width": 512, "id": 22758, "height": 773}, {"file_name": "ADE_test_00000576.jpg", "width": 512, "id": 22759, "height": 640}, {"file_name": "ADE_test_00000577.jpg", "width": 683, "id": 22760, "height": 512}, {"file_name": "ADE_test_00000578.jpg", "width": 512, "id": 22761, "height": 766}, {"file_name": "ADE_test_00000579.jpg", "width": 512, "id": 22762, "height": 768}, {"file_name": "ADE_test_00000580.jpg", "width": 512, "id": 22763, "height": 838}, {"file_name": "ADE_test_00000581.jpg", "width": 512, "id": 22764, "height": 768}, {"file_name": "ADE_test_00000582.jpg", "width": 512, "id": 22765, "height": 765}, {"file_name": "ADE_test_00000583.jpg", "width": 512, "id": 22766, "height": 708}, {"file_name": "ADE_test_00000584.jpg", "width": 512, "id": 22767, "height": 765}, {"file_name": "ADE_test_00000585.jpg", "width": 512, "id": 22768, "height": 683}, {"file_name": "ADE_test_00000586.jpg", "width": 512, "id": 22769, "height": 683}, {"file_name": "ADE_test_00000587.jpg", "width": 512, "id": 22770, "height": 683}, {"file_name": "ADE_test_00000588.jpg", "width": 683, "id": 22771, "height": 512}, {"file_name": "ADE_test_00000589.jpg", "width": 512, "id": 22772, "height": 570}, {"file_name": "ADE_test_00000590.jpg", "width": 683, "id": 22773, "height": 512}, {"file_name": "ADE_test_00000591.jpg", "width": 512, "id": 22774, "height": 768}, {"file_name": "ADE_test_00000592.jpg", "width": 685, "id": 22775, "height": 512}, {"file_name": "ADE_test_00000593.jpg", "width": 683, "id": 22776, "height": 512}, {"file_name": "ADE_test_00000594.jpg", "width": 770, "id": 22777, "height": 512}, {"file_name": "ADE_test_00000595.jpg", "width": 631, "id": 22778, "height": 512}, {"file_name": "ADE_test_00000596.jpg", "width": 512, "id": 22779, "height": 757}, {"file_name": "ADE_test_00000597.jpg", "width": 683, "id": 22780, "height": 512}, {"file_name": "ADE_test_00000598.jpg", "width": 683, "id": 22781, "height": 512}, {"file_name": "ADE_test_00000599.jpg", "width": 683, "id": 22782, "height": 512}, {"file_name": "ADE_test_00000600.jpg", "width": 512, "id": 22783, "height": 683}, {"file_name": "ADE_test_00000601.jpg", "width": 772, "id": 22784, "height": 512}, {"file_name": "ADE_test_00000602.jpg", "width": 765, "id": 22785, "height": 512}, {"file_name": "ADE_test_00000603.jpg", "width": 636, "id": 22786, "height": 512}, {"file_name": "ADE_test_00000604.jpg", "width": 512, "id": 22787, "height": 768}, {"file_name": "ADE_test_00000605.jpg", "width": 512, "id": 22788, "height": 765}, {"file_name": "ADE_test_00000606.jpg", "width": 512, "id": 22789, "height": 683}, {"file_name": "ADE_test_00000607.jpg", "width": 622, "id": 22790, "height": 512}, {"file_name": "ADE_test_00000609.jpg", "width": 512, "id": 22791, "height": 683}, {"file_name": "ADE_test_00000610.jpg", "width": 640, "id": 22792, "height": 512}, {"file_name": "ADE_test_00000611.jpg", "width": 512, "id": 22793, "height": 770}, {"file_name": "ADE_test_00000612.jpg", "width": 512, "id": 22794, "height": 768}, {"file_name": "ADE_test_00000613.jpg", "width": 683, "id": 22795, "height": 512}, {"file_name": "ADE_test_00000614.jpg", "width": 768, "id": 22796, "height": 512}, {"file_name": "ADE_test_00000615.jpg", "width": 683, "id": 22797, "height": 512}, {"file_name": "ADE_test_00000616.jpg", "width": 512, "id": 22798, "height": 768}, {"file_name": "ADE_test_00000617.jpg", "width": 683, "id": 22799, "height": 512}, {"file_name": "ADE_test_00000618.jpg", "width": 765, "id": 22800, "height": 512}, {"file_name": "ADE_test_00000619.jpg", "width": 512, "id": 22801, "height": 683}, {"file_name": "ADE_test_00000620.jpg", "width": 512, "id": 22802, "height": 683}, {"file_name": "ADE_test_00000621.jpg", "width": 767, "id": 22803, "height": 512}, {"file_name": "ADE_test_00000622.jpg", "width": 711, "id": 22804, "height": 512}, {"file_name": "ADE_test_00000623.jpg", "width": 746, "id": 22805, "height": 512}, {"file_name": "ADE_test_00000624.jpg", "width": 512, "id": 22806, "height": 768}, {"file_name": "ADE_test_00000626.jpg", "width": 682, "id": 22807, "height": 512}, {"file_name": "ADE_test_00000627.jpg", "width": 512, "id": 22808, "height": 758}, {"file_name": "ADE_test_00000628.jpg", "width": 512, "id": 22809, "height": 683}, {"file_name": "ADE_test_00000629.jpg", "width": 512, "id": 22810, "height": 683}, {"file_name": "ADE_test_00000630.jpg", "width": 512, "id": 22811, "height": 641}, {"file_name": "ADE_test_00000631.jpg", "width": 512, "id": 22812, "height": 683}, {"file_name": "ADE_test_00000632.jpg", "width": 512, "id": 22813, "height": 535}, {"file_name": "ADE_test_00000633.jpg", "width": 512, "id": 22814, "height": 657}, {"file_name": "ADE_test_00000634.jpg", "width": 512, "id": 22815, "height": 683}, {"file_name": "ADE_test_00000635.jpg", "width": 512, "id": 22816, "height": 753}, {"file_name": "ADE_test_00000636.jpg", "width": 512, "id": 22817, "height": 771}, {"file_name": "ADE_test_00000637.jpg", "width": 512, "id": 22818, "height": 765}, {"file_name": "ADE_test_00000638.jpg", "width": 512, "id": 22819, "height": 783}, {"file_name": "ADE_test_00000639.jpg", "width": 512, "id": 22820, "height": 683}, {"file_name": "ADE_test_00000640.jpg", "width": 768, "id": 22821, "height": 512}, {"file_name": "ADE_test_00000641.jpg", "width": 512, "id": 22822, "height": 683}, {"file_name": "ADE_test_00000642.jpg", "width": 512, "id": 22823, "height": 684}, {"file_name": "ADE_test_00000643.jpg", "width": 512, "id": 22824, "height": 910}, {"file_name": "ADE_test_00000644.jpg", "width": 512, "id": 22825, "height": 759}, {"file_name": "ADE_test_00000645.jpg", "width": 512, "id": 22826, "height": 683}, {"file_name": "ADE_test_00000646.jpg", "width": 512, "id": 22827, "height": 683}, {"file_name": "ADE_test_00000647.jpg", "width": 512, "id": 22828, "height": 683}, {"file_name": "ADE_test_00000648.jpg", "width": 512, "id": 22829, "height": 683}, {"file_name": "ADE_test_00000649.jpg", "width": 683, "id": 22830, "height": 512}, {"file_name": "ADE_test_00000650.jpg", "width": 512, "id": 22831, "height": 683}, {"file_name": "ADE_test_00000651.jpg", "width": 768, "id": 22832, "height": 512}, {"file_name": "ADE_test_00000652.jpg", "width": 653, "id": 22833, "height": 512}, {"file_name": "ADE_test_00000653.jpg", "width": 512, "id": 22834, "height": 686}, {"file_name": "ADE_test_00000654.jpg", "width": 512, "id": 22835, "height": 910}, {"file_name": "ADE_test_00000655.jpg", "width": 512, "id": 22836, "height": 683}, {"file_name": "ADE_test_00000656.jpg", "width": 512, "id": 22837, "height": 683}, {"file_name": "ADE_test_00000657.jpg", "width": 512, "id": 22838, "height": 768}, {"file_name": "ADE_test_00000658.jpg", "width": 512, "id": 22839, "height": 546}, {"file_name": "ADE_test_00000659.jpg", "width": 512, "id": 22840, "height": 601}, {"file_name": "ADE_test_00000660.jpg", "width": 768, "id": 22841, "height": 512}, {"file_name": "ADE_test_00000661.jpg", "width": 683, "id": 22842, "height": 512}, {"file_name": "ADE_test_00000662.jpg", "width": 522, "id": 22843, "height": 512}, {"file_name": "ADE_test_00000663.jpg", "width": 512, "id": 22844, "height": 536}, {"file_name": "ADE_test_00000664.jpg", "width": 512, "id": 22845, "height": 767}, {"file_name": "ADE_test_00000665.jpg", "width": 512, "id": 22846, "height": 683}, {"file_name": "ADE_test_00000666.jpg", "width": 512, "id": 22847, "height": 748}, {"file_name": "ADE_test_00000668.jpg", "width": 512, "id": 22848, "height": 683}, {"file_name": "ADE_test_00000670.jpg", "width": 512, "id": 22849, "height": 683}, {"file_name": "ADE_test_00000671.jpg", "width": 512, "id": 22850, "height": 910}, {"file_name": "ADE_test_00000672.jpg", "width": 512, "id": 22851, "height": 768}, {"file_name": "ADE_test_00000673.jpg", "width": 512, "id": 22852, "height": 683}, {"file_name": "ADE_test_00000674.jpg", "width": 765, "id": 22853, "height": 512}, {"file_name": "ADE_test_00000675.jpg", "width": 512, "id": 22854, "height": 532}, {"file_name": "ADE_test_00000676.jpg", "width": 512, "id": 22855, "height": 768}, {"file_name": "ADE_test_00000677.jpg", "width": 512, "id": 22856, "height": 912}, {"file_name": "ADE_test_00000678.jpg", "width": 769, "id": 22857, "height": 512}, {"file_name": "ADE_test_00000679.jpg", "width": 512, "id": 22858, "height": 683}, {"file_name": "ADE_test_00000680.jpg", "width": 757, "id": 22859, "height": 512}, {"file_name": "ADE_test_00000681.jpg", "width": 683, "id": 22860, "height": 512}, {"file_name": "ADE_test_00000682.jpg", "width": 768, "id": 22861, "height": 512}, {"file_name": "ADE_test_00000686.jpg", "width": 512, "id": 22862, "height": 683}, {"file_name": "ADE_test_00000687.jpg", "width": 512, "id": 22863, "height": 768}, {"file_name": "ADE_test_00000688.jpg", "width": 512, "id": 22864, "height": 683}, {"file_name": "ADE_test_00000689.jpg", "width": 683, "id": 22865, "height": 512}, {"file_name": "ADE_test_00000690.jpg", "width": 512, "id": 22866, "height": 771}, {"file_name": "ADE_test_00000691.jpg", "width": 512, "id": 22867, "height": 746}, {"file_name": "ADE_test_00000692.jpg", "width": 512, "id": 22868, "height": 513}, {"file_name": "ADE_test_00000693.jpg", "width": 512, "id": 22869, "height": 683}, {"file_name": "ADE_test_00000694.jpg", "width": 513, "id": 22870, "height": 512}, {"file_name": "ADE_test_00000695.jpg", "width": 683, "id": 22871, "height": 512}, {"file_name": "ADE_test_00000696.jpg", "width": 773, "id": 22872, "height": 512}, {"file_name": "ADE_test_00000697.jpg", "width": 683, "id": 22873, "height": 512}, {"file_name": "ADE_test_00000698.jpg", "width": 683, "id": 22874, "height": 512}, {"file_name": "ADE_test_00000699.jpg", "width": 683, "id": 22875, "height": 512}, {"file_name": "ADE_test_00000700.jpg", "width": 855, "id": 22876, "height": 512}, {"file_name": "ADE_test_00000701.jpg", "width": 683, "id": 22877, "height": 512}, {"file_name": "ADE_test_00000702.jpg", "width": 799, "id": 22878, "height": 512}, {"file_name": "ADE_test_00000704.jpg", "width": 512, "id": 22879, "height": 523}, {"file_name": "ADE_test_00000705.jpg", "width": 512, "id": 22880, "height": 683}, {"file_name": "ADE_test_00000706.jpg", "width": 683, "id": 22881, "height": 512}, {"file_name": "ADE_test_00000707.jpg", "width": 770, "id": 22882, "height": 512}, {"file_name": "ADE_test_00000708.jpg", "width": 683, "id": 22883, "height": 512}, {"file_name": "ADE_test_00000709.jpg", "width": 769, "id": 22884, "height": 512}, {"file_name": "ADE_test_00000710.jpg", "width": 768, "id": 22885, "height": 512}, {"file_name": "ADE_test_00000711.jpg", "width": 640, "id": 22886, "height": 512}, {"file_name": "ADE_test_00000712.jpg", "width": 788, "id": 22887, "height": 512}, {"file_name": "ADE_test_00000713.jpg", "width": 771, "id": 22888, "height": 512}, {"file_name": "ADE_test_00000714.jpg", "width": 512, "id": 22889, "height": 689}, {"file_name": "ADE_test_00000715.jpg", "width": 768, "id": 22890, "height": 512}, {"file_name": "ADE_test_00000716.jpg", "width": 768, "id": 22891, "height": 512}, {"file_name": "ADE_test_00000717.jpg", "width": 557, "id": 22892, "height": 512}, {"file_name": "ADE_test_00000718.jpg", "width": 512, "id": 22893, "height": 683}, {"file_name": "ADE_test_00000720.jpg", "width": 512, "id": 22894, "height": 753}, {"file_name": "ADE_test_00000721.jpg", "width": 765, "id": 22895, "height": 512}, {"file_name": "ADE_test_00000722.jpg", "width": 512, "id": 22896, "height": 683}, {"file_name": "ADE_test_00000723.jpg", "width": 683, "id": 22897, "height": 512}, {"file_name": "ADE_test_00000724.jpg", "width": 682, "id": 22898, "height": 512}, {"file_name": "ADE_test_00000725.jpg", "width": 512, "id": 22899, "height": 768}, {"file_name": "ADE_test_00000726.jpg", "width": 1024, "id": 22900, "height": 1024}, {"file_name": "ADE_test_00000727.jpg", "width": 1000, "id": 22901, "height": 1000}, {"file_name": "ADE_test_00000728.jpg", "width": 683, "id": 22902, "height": 512}, {"file_name": "ADE_test_00000729.jpg", "width": 512, "id": 22903, "height": 770}, {"file_name": "ADE_test_00000730.jpg", "width": 683, "id": 22904, "height": 512}, {"file_name": "ADE_test_00000731.jpg", "width": 767, "id": 22905, "height": 512}, {"file_name": "ADE_test_00000732.jpg", "width": 512, "id": 22906, "height": 765}, {"file_name": "ADE_test_00000733.jpg", "width": 683, "id": 22907, "height": 512}, {"file_name": "ADE_test_00000734.jpg", "width": 683, "id": 22908, "height": 512}, {"file_name": "ADE_test_00000735.jpg", "width": 683, "id": 22909, "height": 512}, {"file_name": "ADE_test_00000736.jpg", "width": 616, "id": 22910, "height": 512}, {"file_name": "ADE_test_00000737.jpg", "width": 512, "id": 22911, "height": 551}, {"file_name": "ADE_test_00000738.jpg", "width": 653, "id": 22912, "height": 512}, {"file_name": "ADE_test_00000739.jpg", "width": 512, "id": 22913, "height": 768}, {"file_name": "ADE_test_00000740.jpg", "width": 683, "id": 22914, "height": 512}, {"file_name": "ADE_test_00000741.jpg", "width": 675, "id": 22915, "height": 512}, {"file_name": "ADE_test_00000742.jpg", "width": 512, "id": 22916, "height": 768}, {"file_name": "ADE_test_00000743.jpg", "width": 683, "id": 22917, "height": 512}, {"file_name": "ADE_test_00000744.jpg", "width": 638, "id": 22918, "height": 512}, {"file_name": "ADE_test_00000745.jpg", "width": 683, "id": 22919, "height": 512}, {"file_name": "ADE_test_00000746.jpg", "width": 512, "id": 22920, "height": 753}, {"file_name": "ADE_test_00000747.jpg", "width": 512, "id": 22921, "height": 768}, {"file_name": "ADE_test_00000748.jpg", "width": 640, "id": 22922, "height": 512}, {"file_name": "ADE_test_00000749.jpg", "width": 512, "id": 22923, "height": 786}, {"file_name": "ADE_test_00000750.jpg", "width": 512, "id": 22924, "height": 768}, {"file_name": "ADE_test_00000751.jpg", "width": 512, "id": 22925, "height": 768}, {"file_name": "ADE_test_00000752.jpg", "width": 758, "id": 22926, "height": 512}, {"file_name": "ADE_test_00000753.jpg", "width": 512, "id": 22927, "height": 683}, {"file_name": "ADE_test_00000754.jpg", "width": 512, "id": 22928, "height": 683}, {"file_name": "ADE_test_00000755.jpg", "width": 512, "id": 22929, "height": 683}, {"file_name": "ADE_test_00000756.jpg", "width": 623, "id": 22930, "height": 512}, {"file_name": "ADE_test_00000757.jpg", "width": 755, "id": 22931, "height": 512}, {"file_name": "ADE_test_00000758.jpg", "width": 512, "id": 22932, "height": 717}, {"file_name": "ADE_test_00000759.jpg", "width": 568, "id": 22933, "height": 512}, {"file_name": "ADE_test_00000760.jpg", "width": 683, "id": 22934, "height": 512}, {"file_name": "ADE_test_00000761.jpg", "width": 512, "id": 22935, "height": 770}, {"file_name": "ADE_test_00000762.jpg", "width": 512, "id": 22936, "height": 768}, {"file_name": "ADE_test_00000763.jpg", "width": 683, "id": 22937, "height": 512}, {"file_name": "ADE_test_00000764.jpg", "width": 512, "id": 22938, "height": 683}, {"file_name": "ADE_test_00000765.jpg", "width": 512, "id": 22939, "height": 768}, {"file_name": "ADE_test_00000766.jpg", "width": 512, "id": 22940, "height": 683}, {"file_name": "ADE_test_00000767.jpg", "width": 512, "id": 22941, "height": 683}, {"file_name": "ADE_test_00000768.jpg", "width": 512, "id": 22942, "height": 717}, {"file_name": "ADE_test_00000769.jpg", "width": 683, "id": 22943, "height": 512}, {"file_name": "ADE_test_00000770.jpg", "width": 768, "id": 22944, "height": 512}, {"file_name": "ADE_test_00000771.jpg", "width": 512, "id": 22945, "height": 771}, {"file_name": "ADE_test_00000772.jpg", "width": 683, "id": 22946, "height": 512}, {"file_name": "ADE_test_00000773.jpg", "width": 512, "id": 22947, "height": 683}, {"file_name": "ADE_test_00000774.jpg", "width": 683, "id": 22948, "height": 512}, {"file_name": "ADE_test_00000775.jpg", "width": 512, "id": 22949, "height": 642}, {"file_name": "ADE_test_00000776.jpg", "width": 512, "id": 22950, "height": 768}, {"file_name": "ADE_test_00000777.jpg", "width": 512, "id": 22951, "height": 683}, {"file_name": "ADE_test_00000778.jpg", "width": 512, "id": 22952, "height": 772}, {"file_name": "ADE_test_00000779.jpg", "width": 683, "id": 22953, "height": 512}, {"file_name": "ADE_test_00000780.jpg", "width": 731, "id": 22954, "height": 512}, {"file_name": "ADE_test_00000781.jpg", "width": 512, "id": 22955, "height": 768}, {"file_name": "ADE_test_00000782.jpg", "width": 512, "id": 22956, "height": 768}, {"file_name": "ADE_test_00000783.jpg", "width": 639, "id": 22957, "height": 512}, {"file_name": "ADE_test_00000784.jpg", "width": 512, "id": 22958, "height": 781}, {"file_name": "ADE_test_00000785.jpg", "width": 632, "id": 22959, "height": 512}, {"file_name": "ADE_test_00000786.jpg", "width": 512, "id": 22960, "height": 768}, {"file_name": "ADE_test_00000787.jpg", "width": 512, "id": 22961, "height": 683}, {"file_name": "ADE_test_00000788.jpg", "width": 512, "id": 22962, "height": 768}, {"file_name": "ADE_test_00000789.jpg", "width": 512, "id": 22963, "height": 747}, {"file_name": "ADE_test_00000790.jpg", "width": 512, "id": 22964, "height": 749}, {"file_name": "ADE_test_00000791.jpg", "width": 715, "id": 22965, "height": 512}, {"file_name": "ADE_test_00000792.jpg", "width": 512, "id": 22966, "height": 683}, {"file_name": "ADE_test_00000793.jpg", "width": 512, "id": 22967, "height": 683}, {"file_name": "ADE_test_00000794.jpg", "width": 512, "id": 22968, "height": 685}, {"file_name": "ADE_test_00000795.jpg", "width": 512, "id": 22969, "height": 683}, {"file_name": "ADE_test_00000796.jpg", "width": 512, "id": 22970, "height": 683}, {"file_name": "ADE_test_00000797.jpg", "width": 512, "id": 22971, "height": 768}, {"file_name": "ADE_test_00000798.jpg", "width": 512, "id": 22972, "height": 768}, {"file_name": "ADE_test_00000799.jpg", "width": 683, "id": 22973, "height": 512}, {"file_name": "ADE_test_00000800.jpg", "width": 512, "id": 22974, "height": 770}, {"file_name": "ADE_test_00000801.jpg", "width": 512, "id": 22975, "height": 770}, {"file_name": "ADE_test_00000802.jpg", "width": 683, "id": 22976, "height": 512}, {"file_name": "ADE_test_00000803.jpg", "width": 512, "id": 22977, "height": 921}, {"file_name": "ADE_test_00000804.jpg", "width": 512, "id": 22978, "height": 772}, {"file_name": "ADE_test_00000805.jpg", "width": 683, "id": 22979, "height": 512}, {"file_name": "ADE_test_00000806.jpg", "width": 765, "id": 22980, "height": 512}, {"file_name": "ADE_test_00000807.jpg", "width": 512, "id": 22981, "height": 732}, {"file_name": "ADE_test_00000808.jpg", "width": 769, "id": 22982, "height": 512}, {"file_name": "ADE_test_00000809.jpg", "width": 685, "id": 22983, "height": 512}, {"file_name": "ADE_test_00000810.jpg", "width": 512, "id": 22984, "height": 530}, {"file_name": "ADE_test_00000811.jpg", "width": 512, "id": 22985, "height": 768}, {"file_name": "ADE_test_00000812.jpg", "width": 685, "id": 22986, "height": 512}, {"file_name": "ADE_test_00000813.jpg", "width": 683, "id": 22987, "height": 512}, {"file_name": "ADE_test_00000814.jpg", "width": 512, "id": 22988, "height": 724}, {"file_name": "ADE_test_00000815.jpg", "width": 512, "id": 22989, "height": 768}, {"file_name": "ADE_test_00000816.jpg", "width": 686, "id": 22990, "height": 512}, {"file_name": "ADE_test_00000817.jpg", "width": 683, "id": 22991, "height": 512}, {"file_name": "ADE_test_00000818.jpg", "width": 683, "id": 22992, "height": 512}, {"file_name": "ADE_test_00000819.jpg", "width": 512, "id": 22993, "height": 599}, {"file_name": "ADE_test_00000820.jpg", "width": 512, "id": 22994, "height": 676}, {"file_name": "ADE_test_00000821.jpg", "width": 685, "id": 22995, "height": 512}, {"file_name": "ADE_test_00000822.jpg", "width": 1024, "id": 22996, "height": 1024}, {"file_name": "ADE_test_00000823.jpg", "width": 768, "id": 22997, "height": 512}, {"file_name": "ADE_test_00000824.jpg", "width": 512, "id": 22998, "height": 686}, {"file_name": "ADE_test_00000825.jpg", "width": 515, "id": 22999, "height": 512}, {"file_name": "ADE_test_00000826.jpg", "width": 559, "id": 23000, "height": 512}, {"file_name": "ADE_test_00000827.jpg", "width": 512, "id": 23001, "height": 910}, {"file_name": "ADE_test_00000828.jpg", "width": 512, "id": 23002, "height": 771}, {"file_name": "ADE_test_00000829.jpg", "width": 512, "id": 23003, "height": 761}, {"file_name": "ADE_test_00000830.jpg", "width": 765, "id": 23004, "height": 512}, {"file_name": "ADE_test_00000831.jpg", "width": 512, "id": 23005, "height": 683}, {"file_name": "ADE_test_00000832.jpg", "width": 768, "id": 23006, "height": 512}, {"file_name": "ADE_test_00000833.jpg", "width": 512, "id": 23007, "height": 768}, {"file_name": "ADE_test_00000834.jpg", "width": 512, "id": 23008, "height": 707}, {"file_name": "ADE_test_00000835.jpg", "width": 682, "id": 23009, "height": 512}, {"file_name": "ADE_test_00000836.jpg", "width": 683, "id": 23010, "height": 512}, {"file_name": "ADE_test_00000837.jpg", "width": 1138, "id": 23011, "height": 512}, {"file_name": "ADE_test_00000838.jpg", "width": 683, "id": 23012, "height": 512}, {"file_name": "ADE_test_00000839.jpg", "width": 683, "id": 23013, "height": 512}, {"file_name": "ADE_test_00000840.jpg", "width": 683, "id": 23014, "height": 512}, {"file_name": "ADE_test_00000841.jpg", "width": 683, "id": 23015, "height": 512}, {"file_name": "ADE_test_00000842.jpg", "width": 592, "id": 23016, "height": 512}, {"file_name": "ADE_test_00000843.jpg", "width": 512, "id": 23017, "height": 683}, {"file_name": "ADE_test_00000844.jpg", "width": 560, "id": 23018, "height": 512}, {"file_name": "ADE_test_00000845.jpg", "width": 512, "id": 23019, "height": 768}, {"file_name": "ADE_test_00000846.jpg", "width": 768, "id": 23020, "height": 512}, {"file_name": "ADE_test_00000847.jpg", "width": 512, "id": 23021, "height": 913}, {"file_name": "ADE_test_00000848.jpg", "width": 512, "id": 23022, "height": 771}, {"file_name": "ADE_test_00000849.jpg", "width": 512, "id": 23023, "height": 771}, {"file_name": "ADE_test_00000850.jpg", "width": 512, "id": 23024, "height": 768}, {"file_name": "ADE_test_00000851.jpg", "width": 512, "id": 23025, "height": 686}, {"file_name": "ADE_test_00000852.jpg", "width": 512, "id": 23026, "height": 540}, {"file_name": "ADE_test_00000853.jpg", "width": 765, "id": 23027, "height": 512}, {"file_name": "ADE_test_00000854.jpg", "width": 512, "id": 23028, "height": 683}, {"file_name": "ADE_test_00000855.jpg", "width": 512, "id": 23029, "height": 685}, {"file_name": "ADE_test_00000856.jpg", "width": 512, "id": 23030, "height": 770}, {"file_name": "ADE_test_00000857.jpg", "width": 512, "id": 23031, "height": 769}, {"file_name": "ADE_test_00000858.jpg", "width": 768, "id": 23032, "height": 512}, {"file_name": "ADE_test_00000859.jpg", "width": 512, "id": 23033, "height": 768}, {"file_name": "ADE_test_00000860.jpg", "width": 512, "id": 23034, "height": 683}, {"file_name": "ADE_test_00000861.jpg", "width": 704, "id": 23035, "height": 512}, {"file_name": "ADE_test_00000862.jpg", "width": 512, "id": 23036, "height": 765}, {"file_name": "ADE_test_00000863.jpg", "width": 685, "id": 23037, "height": 512}, {"file_name": "ADE_test_00000864.jpg", "width": 525, "id": 23038, "height": 512}, {"file_name": "ADE_test_00000865.jpg", "width": 512, "id": 23039, "height": 639}, {"file_name": "ADE_test_00000866.jpg", "width": 512, "id": 23040, "height": 908}, {"file_name": "ADE_test_00000867.jpg", "width": 512, "id": 23041, "height": 683}, {"file_name": "ADE_test_00000868.jpg", "width": 512, "id": 23042, "height": 767}, {"file_name": "ADE_test_00000869.jpg", "width": 768, "id": 23043, "height": 512}, {"file_name": "ADE_test_00000870.jpg", "width": 512, "id": 23044, "height": 809}, {"file_name": "ADE_test_00000871.jpg", "width": 683, "id": 23045, "height": 512}, {"file_name": "ADE_test_00000872.jpg", "width": 512, "id": 23046, "height": 683}, {"file_name": "ADE_test_00000873.jpg", "width": 512, "id": 23047, "height": 770}, {"file_name": "ADE_test_00000874.jpg", "width": 909, "id": 23048, "height": 512}, {"file_name": "ADE_test_00000875.jpg", "width": 512, "id": 23049, "height": 761}, {"file_name": "ADE_test_00000876.jpg", "width": 512, "id": 23050, "height": 736}, {"file_name": "ADE_test_00000877.jpg", "width": 745, "id": 23051, "height": 512}, {"file_name": "ADE_test_00000878.jpg", "width": 768, "id": 23052, "height": 512}, {"file_name": "ADE_test_00000879.jpg", "width": 512, "id": 23053, "height": 661}, {"file_name": "ADE_test_00000880.jpg", "width": 512, "id": 23054, "height": 768}, {"file_name": "ADE_test_00000881.jpg", "width": 512, "id": 23055, "height": 773}, {"file_name": "ADE_test_00000882.jpg", "width": 683, "id": 23056, "height": 512}, {"file_name": "ADE_test_00000883.jpg", "width": 512, "id": 23057, "height": 683}, {"file_name": "ADE_test_00000884.jpg", "width": 512, "id": 23058, "height": 776}, {"file_name": "ADE_test_00000885.jpg", "width": 683, "id": 23059, "height": 512}, {"file_name": "ADE_test_00000886.jpg", "width": 512, "id": 23060, "height": 828}, {"file_name": "ADE_test_00000887.jpg", "width": 684, "id": 23061, "height": 512}, {"file_name": "ADE_test_00000888.jpg", "width": 512, "id": 23062, "height": 635}, {"file_name": "ADE_test_00000889.jpg", "width": 686, "id": 23063, "height": 512}, {"file_name": "ADE_test_00000890.jpg", "width": 683, "id": 23064, "height": 512}, {"file_name": "ADE_test_00000891.jpg", "width": 512, "id": 23065, "height": 682}, {"file_name": "ADE_test_00000892.jpg", "width": 512, "id": 23066, "height": 609}, {"file_name": "ADE_test_00000893.jpg", "width": 512, "id": 23067, "height": 768}, {"file_name": "ADE_test_00000894.jpg", "width": 683, "id": 23068, "height": 512}, {"file_name": "ADE_test_00000895.jpg", "width": 683, "id": 23069, "height": 512}, {"file_name": "ADE_test_00000896.jpg", "width": 512, "id": 23070, "height": 765}, {"file_name": "ADE_test_00000897.jpg", "width": 512, "id": 23071, "height": 738}, {"file_name": "ADE_test_00000898.jpg", "width": 512, "id": 23072, "height": 683}, {"file_name": "ADE_test_00000899.jpg", "width": 512, "id": 23073, "height": 640}, {"file_name": "ADE_test_00000900.jpg", "width": 512, "id": 23074, "height": 683}, {"file_name": "ADE_test_00000901.jpg", "width": 512, "id": 23075, "height": 683}, {"file_name": "ADE_test_00000902.jpg", "width": 512, "id": 23076, "height": 768}, {"file_name": "ADE_test_00000903.jpg", "width": 768, "id": 23077, "height": 512}, {"file_name": "ADE_test_00000904.jpg", "width": 512, "id": 23078, "height": 765}, {"file_name": "ADE_test_00000905.jpg", "width": 512, "id": 23079, "height": 683}, {"file_name": "ADE_test_00000906.jpg", "width": 512, "id": 23080, "height": 780}, {"file_name": "ADE_test_00000907.jpg", "width": 512, "id": 23081, "height": 683}, {"file_name": "ADE_test_00000908.jpg", "width": 768, "id": 23082, "height": 512}, {"file_name": "ADE_test_00000909.jpg", "width": 614, "id": 23083, "height": 512}, {"file_name": "ADE_test_00000910.jpg", "width": 512, "id": 23084, "height": 768}, {"file_name": "ADE_test_00000911.jpg", "width": 683, "id": 23085, "height": 512}, {"file_name": "ADE_test_00000912.jpg", "width": 512, "id": 23086, "height": 768}, {"file_name": "ADE_test_00000913.jpg", "width": 683, "id": 23087, "height": 512}, {"file_name": "ADE_test_00000914.jpg", "width": 593, "id": 23088, "height": 512}, {"file_name": "ADE_test_00000915.jpg", "width": 683, "id": 23089, "height": 512}, {"file_name": "ADE_test_00000916.jpg", "width": 512, "id": 23090, "height": 830}, {"file_name": "ADE_test_00000917.jpg", "width": 512, "id": 23091, "height": 773}, {"file_name": "ADE_test_00000918.jpg", "width": 512, "id": 23092, "height": 683}, {"file_name": "ADE_test_00000919.jpg", "width": 619, "id": 23093, "height": 512}, {"file_name": "ADE_test_00000929.jpg", "width": 512, "id": 23094, "height": 682}, {"file_name": "ADE_test_00000930.jpg", "width": 512, "id": 23095, "height": 805}, {"file_name": "ADE_test_00000931.jpg", "width": 512, "id": 23096, "height": 683}, {"file_name": "ADE_test_00000932.jpg", "width": 765, "id": 23097, "height": 512}, {"file_name": "ADE_test_00000933.jpg", "width": 683, "id": 23098, "height": 512}, {"file_name": "ADE_test_00000934.jpg", "width": 1024, "id": 23099, "height": 1024}, {"file_name": "ADE_test_00000935.jpg", "width": 512, "id": 23100, "height": 519}, {"file_name": "ADE_test_00000936.jpg", "width": 512, "id": 23101, "height": 616}, {"file_name": "ADE_test_00000937.jpg", "width": 768, "id": 23102, "height": 512}, {"file_name": "ADE_test_00000938.jpg", "width": 766, "id": 23103, "height": 512}, {"file_name": "ADE_test_00000939.jpg", "width": 683, "id": 23104, "height": 512}, {"file_name": "ADE_test_00000940.jpg", "width": 683, "id": 23105, "height": 512}, {"file_name": "ADE_test_00000941.jpg", "width": 683, "id": 23106, "height": 512}, {"file_name": "ADE_test_00000942.jpg", "width": 683, "id": 23107, "height": 512}, {"file_name": "ADE_test_00000943.jpg", "width": 683, "id": 23108, "height": 512}, {"file_name": "ADE_test_00000944.jpg", "width": 683, "id": 23109, "height": 512}, {"file_name": "ADE_test_00000945.jpg", "width": 768, "id": 23110, "height": 512}, {"file_name": "ADE_test_00000946.jpg", "width": 583, "id": 23111, "height": 512}, {"file_name": "ADE_test_00000947.jpg", "width": 770, "id": 23112, "height": 512}, {"file_name": "ADE_test_00000948.jpg", "width": 683, "id": 23113, "height": 512}, {"file_name": "ADE_test_00000949.jpg", "width": 683, "id": 23114, "height": 512}, {"file_name": "ADE_test_00000950.jpg", "width": 512, "id": 23115, "height": 647}, {"file_name": "ADE_test_00000951.jpg", "width": 512, "id": 23116, "height": 683}, {"file_name": "ADE_test_00000952.jpg", "width": 683, "id": 23117, "height": 512}, {"file_name": "ADE_test_00000953.jpg", "width": 1000, "id": 23118, "height": 1000}, {"file_name": "ADE_test_00000954.jpg", "width": 722, "id": 23119, "height": 512}, {"file_name": "ADE_test_00000955.jpg", "width": 900, "id": 23120, "height": 900}, {"file_name": "ADE_test_00000956.jpg", "width": 683, "id": 23121, "height": 512}, {"file_name": "ADE_test_00000957.jpg", "width": 1024, "id": 23122, "height": 1024}, {"file_name": "ADE_test_00000958.jpg", "width": 512, "id": 23123, "height": 768}, {"file_name": "ADE_test_00000959.jpg", "width": 512, "id": 23124, "height": 685}, {"file_name": "ADE_test_00000960.jpg", "width": 512, "id": 23125, "height": 771}, {"file_name": "ADE_test_00000961.jpg", "width": 683, "id": 23126, "height": 512}, {"file_name": "ADE_test_00000962.jpg", "width": 768, "id": 23127, "height": 512}, {"file_name": "ADE_test_00000963.jpg", "width": 512, "id": 23128, "height": 768}, {"file_name": "ADE_test_00000964.jpg", "width": 512, "id": 23129, "height": 768}, {"file_name": "ADE_test_00000965.jpg", "width": 512, "id": 23130, "height": 770}, {"file_name": "ADE_test_00000966.jpg", "width": 512, "id": 23131, "height": 771}, {"file_name": "ADE_test_00000967.jpg", "width": 610, "id": 23132, "height": 512}, {"file_name": "ADE_test_00000968.jpg", "width": 512, "id": 23133, "height": 702}, {"file_name": "ADE_test_00000969.jpg", "width": 774, "id": 23134, "height": 512}, {"file_name": "ADE_test_00000970.jpg", "width": 576, "id": 23135, "height": 512}, {"file_name": "ADE_test_00000971.jpg", "width": 642, "id": 23136, "height": 512}, {"file_name": "ADE_test_00000972.jpg", "width": 768, "id": 23137, "height": 512}, {"file_name": "ADE_test_00000973.jpg", "width": 683, "id": 23138, "height": 512}, {"file_name": "ADE_test_00000974.jpg", "width": 762, "id": 23139, "height": 512}, {"file_name": "ADE_test_00000975.jpg", "width": 683, "id": 23140, "height": 512}, {"file_name": "ADE_test_00000976.jpg", "width": 683, "id": 23141, "height": 512}, {"file_name": "ADE_test_00000977.jpg", "width": 683, "id": 23142, "height": 512}, {"file_name": "ADE_test_00000978.jpg", "width": 683, "id": 23143, "height": 512}, {"file_name": "ADE_test_00000979.jpg", "width": 512, "id": 23144, "height": 771}, {"file_name": "ADE_test_00000980.jpg", "width": 512, "id": 23145, "height": 520}, {"file_name": "ADE_test_00000981.jpg", "width": 512, "id": 23146, "height": 684}, {"file_name": "ADE_test_00000982.jpg", "width": 683, "id": 23147, "height": 512}, {"file_name": "ADE_test_00000983.jpg", "width": 1024, "id": 23148, "height": 1024}, {"file_name": "ADE_test_00000985.jpg", "width": 512, "id": 23149, "height": 738}, {"file_name": "ADE_test_00000986.jpg", "width": 512, "id": 23150, "height": 768}, {"file_name": "ADE_test_00000987.jpg", "width": 683, "id": 23151, "height": 512}, {"file_name": "ADE_test_00000988.jpg", "width": 512, "id": 23152, "height": 768}, {"file_name": "ADE_test_00000989.jpg", "width": 512, "id": 23153, "height": 683}, {"file_name": "ADE_test_00000990.jpg", "width": 683, "id": 23154, "height": 512}, {"file_name": "ADE_test_00000991.jpg", "width": 512, "id": 23155, "height": 683}, {"file_name": "ADE_test_00000992.jpg", "width": 683, "id": 23156, "height": 512}, {"file_name": "ADE_test_00000993.jpg", "width": 782, "id": 23157, "height": 512}, {"file_name": "ADE_test_00000994.jpg", "width": 512, "id": 23158, "height": 773}, {"file_name": "ADE_test_00000995.jpg", "width": 683, "id": 23159, "height": 512}, {"file_name": "ADE_test_00000996.jpg", "width": 512, "id": 23160, "height": 683}, {"file_name": "ADE_test_00000997.jpg", "width": 629, "id": 23161, "height": 512}, {"file_name": "ADE_test_00000998.jpg", "width": 512, "id": 23162, "height": 678}, {"file_name": "ADE_test_00000999.jpg", "width": 512, "id": 23163, "height": 685}, {"file_name": "ADE_test_00001001.jpg", "width": 512, "id": 23164, "height": 768}, {"file_name": "ADE_test_00001002.jpg", "width": 512, "id": 23165, "height": 768}, {"file_name": "ADE_test_00001003.jpg", "width": 512, "id": 23166, "height": 683}, {"file_name": "ADE_test_00001004.jpg", "width": 522, "id": 23167, "height": 512}, {"file_name": "ADE_test_00001005.jpg", "width": 512, "id": 23168, "height": 770}, {"file_name": "ADE_test_00001006.jpg", "width": 512, "id": 23169, "height": 767}, {"file_name": "ADE_test_00001007.jpg", "width": 512, "id": 23170, "height": 683}, {"file_name": "ADE_test_00001008.jpg", "width": 768, "id": 23171, "height": 512}, {"file_name": "ADE_test_00001009.jpg", "width": 640, "id": 23172, "height": 512}, {"file_name": "ADE_test_00001010.jpg", "width": 503, "id": 23173, "height": 1024}, {"file_name": "ADE_test_00001011.jpg", "width": 512, "id": 23174, "height": 767}, {"file_name": "ADE_test_00001012.jpg", "width": 683, "id": 23175, "height": 512}, {"file_name": "ADE_test_00001013.jpg", "width": 512, "id": 23176, "height": 683}, {"file_name": "ADE_test_00001015.jpg", "width": 512, "id": 23177, "height": 683}, {"file_name": "ADE_test_00001016.jpg", "width": 683, "id": 23178, "height": 512}, {"file_name": "ADE_test_00001017.jpg", "width": 512, "id": 23179, "height": 768}, {"file_name": "ADE_test_00001018.jpg", "width": 512, "id": 23180, "height": 683}, {"file_name": "ADE_test_00001019.jpg", "width": 613, "id": 23181, "height": 512}, {"file_name": "ADE_test_00001020.jpg", "width": 512, "id": 23182, "height": 700}, {"file_name": "ADE_test_00001021.jpg", "width": 770, "id": 23183, "height": 512}, {"file_name": "ADE_test_00001022.jpg", "width": 771, "id": 23184, "height": 512}, {"file_name": "ADE_test_00001023.jpg", "width": 683, "id": 23185, "height": 512}, {"file_name": "ADE_test_00001024.jpg", "width": 683, "id": 23186, "height": 512}, {"file_name": "ADE_test_00001025.jpg", "width": 512, "id": 23187, "height": 683}, {"file_name": "ADE_test_00001026.jpg", "width": 771, "id": 23188, "height": 512}, {"file_name": "ADE_test_00001027.jpg", "width": 512, "id": 23189, "height": 683}, {"file_name": "ADE_test_00001028.jpg", "width": 683, "id": 23190, "height": 512}, {"file_name": "ADE_test_00001029.jpg", "width": 521, "id": 23191, "height": 512}, {"file_name": "ADE_test_00001030.jpg", "width": 683, "id": 23192, "height": 512}, {"file_name": "ADE_test_00001031.jpg", "width": 683, "id": 23193, "height": 512}, {"file_name": "ADE_test_00001032.jpg", "width": 684, "id": 23194, "height": 512}, {"file_name": "ADE_test_00001033.jpg", "width": 512, "id": 23195, "height": 759}, {"file_name": "ADE_test_00001034.jpg", "width": 910, "id": 23196, "height": 512}, {"file_name": "ADE_test_00001035.jpg", "width": 512, "id": 23197, "height": 685}, {"file_name": "ADE_test_00001036.jpg", "width": 512, "id": 23198, "height": 602}, {"file_name": "ADE_test_00001037.jpg", "width": 512, "id": 23199, "height": 819}, {"file_name": "ADE_test_00001038.jpg", "width": 512, "id": 23200, "height": 770}, {"file_name": "ADE_test_00001039.jpg", "width": 512, "id": 23201, "height": 768}, {"file_name": "ADE_test_00001040.jpg", "width": 512, "id": 23202, "height": 691}, {"file_name": "ADE_test_00001041.jpg", "width": 512, "id": 23203, "height": 683}, {"file_name": "ADE_test_00001042.jpg", "width": 512, "id": 23204, "height": 683}, {"file_name": "ADE_test_00001043.jpg", "width": 512, "id": 23205, "height": 683}, {"file_name": "ADE_test_00001044.jpg", "width": 512, "id": 23206, "height": 770}, {"file_name": "ADE_test_00001045.jpg", "width": 512, "id": 23207, "height": 683}, {"file_name": "ADE_test_00001046.jpg", "width": 512, "id": 23208, "height": 683}, {"file_name": "ADE_test_00001047.jpg", "width": 512, "id": 23209, "height": 792}, {"file_name": "ADE_test_00001048.jpg", "width": 512, "id": 23210, "height": 768}, {"file_name": "ADE_test_00001049.jpg", "width": 683, "id": 23211, "height": 512}, {"file_name": "ADE_test_00001050.jpg", "width": 760, "id": 23212, "height": 512}, {"file_name": "ADE_test_00001051.jpg", "width": 683, "id": 23213, "height": 512}, {"file_name": "ADE_test_00001052.jpg", "width": 512, "id": 23214, "height": 683}, {"file_name": "ADE_test_00001053.jpg", "width": 512, "id": 23215, "height": 683}, {"file_name": "ADE_test_00001054.jpg", "width": 910, "id": 23216, "height": 512}, {"file_name": "ADE_test_00001055.jpg", "width": 683, "id": 23217, "height": 512}, {"file_name": "ADE_test_00001056.jpg", "width": 512, "id": 23218, "height": 684}, {"file_name": "ADE_test_00001057.jpg", "width": 512, "id": 23219, "height": 683}, {"file_name": "ADE_test_00001058.jpg", "width": 512, "id": 23220, "height": 731}, {"file_name": "ADE_test_00001059.jpg", "width": 512, "id": 23221, "height": 772}, {"file_name": "ADE_test_00001060.jpg", "width": 512, "id": 23222, "height": 619}, {"file_name": "ADE_test_00001061.jpg", "width": 512, "id": 23223, "height": 683}, {"file_name": "ADE_test_00001062.jpg", "width": 768, "id": 23224, "height": 512}, {"file_name": "ADE_test_00001063.jpg", "width": 683, "id": 23225, "height": 512}, {"file_name": "ADE_test_00001064.jpg", "width": 512, "id": 23226, "height": 771}, {"file_name": "ADE_test_00001065.jpg", "width": 512, "id": 23227, "height": 768}, {"file_name": "ADE_test_00001066.jpg", "width": 534, "id": 23228, "height": 512}, {"file_name": "ADE_test_00001067.jpg", "width": 512, "id": 23229, "height": 683}, {"file_name": "ADE_test_00001068.jpg", "width": 512, "id": 23230, "height": 770}, {"file_name": "ADE_test_00001069.jpg", "width": 512, "id": 23231, "height": 683}, {"file_name": "ADE_test_00001070.jpg", "width": 683, "id": 23232, "height": 512}, {"file_name": "ADE_test_00001071.jpg", "width": 685, "id": 23233, "height": 512}, {"file_name": "ADE_test_00001072.jpg", "width": 683, "id": 23234, "height": 512}, {"file_name": "ADE_test_00001073.jpg", "width": 683, "id": 23235, "height": 512}, {"file_name": "ADE_test_00001074.jpg", "width": 512, "id": 23236, "height": 683}, {"file_name": "ADE_test_00001075.jpg", "width": 512, "id": 23237, "height": 684}, {"file_name": "ADE_test_00001076.jpg", "width": 594, "id": 23238, "height": 512}, {"file_name": "ADE_test_00001077.jpg", "width": 683, "id": 23239, "height": 512}, {"file_name": "ADE_test_00001078.jpg", "width": 512, "id": 23240, "height": 683}, {"file_name": "ADE_test_00001079.jpg", "width": 512, "id": 23241, "height": 768}, {"file_name": "ADE_test_00001080.jpg", "width": 683, "id": 23242, "height": 512}, {"file_name": "ADE_test_00001081.jpg", "width": 512, "id": 23243, "height": 683}, {"file_name": "ADE_test_00001082.jpg", "width": 685, "id": 23244, "height": 512}, {"file_name": "ADE_test_00001083.jpg", "width": 516, "id": 23245, "height": 512}, {"file_name": "ADE_test_00001084.jpg", "width": 723, "id": 23246, "height": 512}, {"file_name": "ADE_test_00001085.jpg", "width": 512, "id": 23247, "height": 683}, {"file_name": "ADE_test_00001086.jpg", "width": 512, "id": 23248, "height": 640}, {"file_name": "ADE_test_00001087.jpg", "width": 512, "id": 23249, "height": 768}, {"file_name": "ADE_test_00001088.jpg", "width": 683, "id": 23250, "height": 512}, {"file_name": "ADE_test_00001089.jpg", "width": 512, "id": 23251, "height": 739}, {"file_name": "ADE_test_00001090.jpg", "width": 512, "id": 23252, "height": 683}, {"file_name": "ADE_test_00001091.jpg", "width": 683, "id": 23253, "height": 512}, {"file_name": "ADE_test_00001092.jpg", "width": 512, "id": 23254, "height": 683}, {"file_name": "ADE_test_00001093.jpg", "width": 683, "id": 23255, "height": 512}, {"file_name": "ADE_test_00001094.jpg", "width": 765, "id": 23256, "height": 512}, {"file_name": "ADE_test_00001095.jpg", "width": 512, "id": 23257, "height": 685}, {"file_name": "ADE_test_00001096.jpg", "width": 683, "id": 23258, "height": 512}, {"file_name": "ADE_test_00001097.jpg", "width": 777, "id": 23259, "height": 512}, {"file_name": "ADE_test_00001098.jpg", "width": 512, "id": 23260, "height": 576}, {"file_name": "ADE_test_00001099.jpg", "width": 512, "id": 23261, "height": 666}, {"file_name": "ADE_test_00001100.jpg", "width": 512, "id": 23262, "height": 683}, {"file_name": "ADE_test_00001101.jpg", "width": 512, "id": 23263, "height": 683}, {"file_name": "ADE_test_00001102.jpg", "width": 512, "id": 23264, "height": 562}, {"file_name": "ADE_test_00001103.jpg", "width": 512, "id": 23265, "height": 770}, {"file_name": "ADE_test_00001104.jpg", "width": 678, "id": 23266, "height": 512}, {"file_name": "ADE_test_00001105.jpg", "width": 683, "id": 23267, "height": 512}, {"file_name": "ADE_test_00001106.jpg", "width": 768, "id": 23268, "height": 512}, {"file_name": "ADE_test_00001107.jpg", "width": 677, "id": 23269, "height": 512}, {"file_name": "ADE_test_00001108.jpg", "width": 711, "id": 23270, "height": 512}, {"file_name": "ADE_test_00001109.jpg", "width": 512, "id": 23271, "height": 768}, {"file_name": "ADE_test_00001110.jpg", "width": 512, "id": 23272, "height": 717}, {"file_name": "ADE_test_00001111.jpg", "width": 768, "id": 23273, "height": 512}, {"file_name": "ADE_test_00001112.jpg", "width": 683, "id": 23274, "height": 512}, {"file_name": "ADE_test_00001115.jpg", "width": 512, "id": 23275, "height": 824}, {"file_name": "ADE_test_00001116.jpg", "width": 683, "id": 23276, "height": 512}, {"file_name": "ADE_test_00001117.jpg", "width": 512, "id": 23277, "height": 770}, {"file_name": "ADE_test_00001119.jpg", "width": 512, "id": 23278, "height": 771}, {"file_name": "ADE_test_00001121.jpg", "width": 763, "id": 23279, "height": 512}, {"file_name": "ADE_test_00001122.jpg", "width": 512, "id": 23280, "height": 683}, {"file_name": "ADE_test_00001123.jpg", "width": 512, "id": 23281, "height": 683}, {"file_name": "ADE_test_00001124.jpg", "width": 512, "id": 23282, "height": 768}, {"file_name": "ADE_test_00001125.jpg", "width": 512, "id": 23283, "height": 648}, {"file_name": "ADE_test_00001126.jpg", "width": 773, "id": 23284, "height": 512}, {"file_name": "ADE_test_00001127.jpg", "width": 512, "id": 23285, "height": 771}, {"file_name": "ADE_test_00001128.jpg", "width": 646, "id": 23286, "height": 512}, {"file_name": "ADE_test_00001131.jpg", "width": 512, "id": 23287, "height": 790}, {"file_name": "ADE_test_00001132.jpg", "width": 685, "id": 23288, "height": 512}, {"file_name": "ADE_test_00001133.jpg", "width": 770, "id": 23289, "height": 512}, {"file_name": "ADE_test_00001134.jpg", "width": 512, "id": 23290, "height": 683}, {"file_name": "ADE_test_00001135.jpg", "width": 692, "id": 23291, "height": 512}, {"file_name": "ADE_test_00001136.jpg", "width": 765, "id": 23292, "height": 512}, {"file_name": "ADE_test_00001137.jpg", "width": 770, "id": 23293, "height": 512}, {"file_name": "ADE_test_00001138.jpg", "width": 765, "id": 23294, "height": 512}, {"file_name": "ADE_test_00001139.jpg", "width": 686, "id": 23295, "height": 512}, {"file_name": "ADE_test_00001140.jpg", "width": 512, "id": 23296, "height": 768}, {"file_name": "ADE_test_00001141.jpg", "width": 1024, "id": 23297, "height": 1024}, {"file_name": "ADE_test_00001142.jpg", "width": 723, "id": 23298, "height": 512}, {"file_name": "ADE_test_00001143.jpg", "width": 512, "id": 23299, "height": 614}, {"file_name": "ADE_test_00001144.jpg", "width": 753, "id": 23300, "height": 512}, {"file_name": "ADE_test_00001145.jpg", "width": 512, "id": 23301, "height": 683}, {"file_name": "ADE_test_00001146.jpg", "width": 683, "id": 23302, "height": 512}, {"file_name": "ADE_test_00001147.jpg", "width": 512, "id": 23303, "height": 683}, {"file_name": "ADE_test_00001148.jpg", "width": 512, "id": 23304, "height": 683}, {"file_name": "ADE_test_00001149.jpg", "width": 512, "id": 23305, "height": 739}, {"file_name": "ADE_test_00001150.jpg", "width": 683, "id": 23306, "height": 512}, {"file_name": "ADE_test_00001151.jpg", "width": 683, "id": 23307, "height": 512}, {"file_name": "ADE_test_00001152.jpg", "width": 512, "id": 23308, "height": 790}, {"file_name": "ADE_test_00001153.jpg", "width": 702, "id": 23309, "height": 512}, {"file_name": "ADE_test_00001154.jpg", "width": 910, "id": 23310, "height": 512}, {"file_name": "ADE_test_00001155.jpg", "width": 512, "id": 23311, "height": 759}, {"file_name": "ADE_test_00001156.jpg", "width": 1911, "id": 23312, "height": 1911}, {"file_name": "ADE_test_00001157.jpg", "width": 512, "id": 23313, "height": 769}, {"file_name": "ADE_test_00001158.jpg", "width": 512, "id": 23314, "height": 733}, {"file_name": "ADE_test_00001159.jpg", "width": 722, "id": 23315, "height": 512}, {"file_name": "ADE_test_00001160.jpg", "width": 683, "id": 23316, "height": 512}, {"file_name": "ADE_test_00001161.jpg", "width": 768, "id": 23317, "height": 512}, {"file_name": "ADE_test_00001162.jpg", "width": 512, "id": 23318, "height": 685}, {"file_name": "ADE_test_00001163.jpg", "width": 683, "id": 23319, "height": 512}, {"file_name": "ADE_test_00001164.jpg", "width": 683, "id": 23320, "height": 512}, {"file_name": "ADE_test_00001165.jpg", "width": 683, "id": 23321, "height": 512}, {"file_name": "ADE_test_00001166.jpg", "width": 683, "id": 23322, "height": 512}, {"file_name": "ADE_test_00001167.jpg", "width": 856, "id": 23323, "height": 512}, {"file_name": "ADE_test_00001168.jpg", "width": 512, "id": 23324, "height": 767}, {"file_name": "ADE_test_00001169.jpg", "width": 512, "id": 23325, "height": 768}, {"file_name": "ADE_test_00001170.jpg", "width": 770, "id": 23326, "height": 512}, {"file_name": "ADE_test_00001171.jpg", "width": 771, "id": 23327, "height": 512}, {"file_name": "ADE_test_00001172.jpg", "width": 683, "id": 23328, "height": 512}, {"file_name": "ADE_test_00001173.jpg", "width": 512, "id": 23329, "height": 910}, {"file_name": "ADE_test_00001174.jpg", "width": 512, "id": 23330, "height": 683}, {"file_name": "ADE_test_00001175.jpg", "width": 683, "id": 23331, "height": 512}, {"file_name": "ADE_test_00001176.jpg", "width": 683, "id": 23332, "height": 512}, {"file_name": "ADE_test_00001177.jpg", "width": 512, "id": 23333, "height": 683}, {"file_name": "ADE_test_00001178.jpg", "width": 512, "id": 23334, "height": 683}, {"file_name": "ADE_test_00001179.jpg", "width": 683, "id": 23335, "height": 512}, {"file_name": "ADE_test_00001180.jpg", "width": 512, "id": 23336, "height": 768}, {"file_name": "ADE_test_00001181.jpg", "width": 512, "id": 23337, "height": 785}, {"file_name": "ADE_test_00001182.jpg", "width": 683, "id": 23338, "height": 512}, {"file_name": "ADE_test_00001183.jpg", "width": 512, "id": 23339, "height": 771}, {"file_name": "ADE_test_00001184.jpg", "width": 683, "id": 23340, "height": 512}, {"file_name": "ADE_test_00001185.jpg", "width": 512, "id": 23341, "height": 694}, {"file_name": "ADE_test_00001186.jpg", "width": 683, "id": 23342, "height": 512}, {"file_name": "ADE_test_00001187.jpg", "width": 683, "id": 23343, "height": 512}, {"file_name": "ADE_test_00001188.jpg", "width": 683, "id": 23344, "height": 512}, {"file_name": "ADE_test_00001189.jpg", "width": 610, "id": 23345, "height": 512}, {"file_name": "ADE_test_00001190.jpg", "width": 683, "id": 23346, "height": 512}, {"file_name": "ADE_test_00001191.jpg", "width": 512, "id": 23347, "height": 683}, {"file_name": "ADE_test_00001192.jpg", "width": 683, "id": 23348, "height": 512}, {"file_name": "ADE_test_00001193.jpg", "width": 683, "id": 23349, "height": 512}, {"file_name": "ADE_test_00001194.jpg", "width": 686, "id": 23350, "height": 512}, {"file_name": "ADE_test_00001195.jpg", "width": 683, "id": 23351, "height": 512}, {"file_name": "ADE_test_00001196.jpg", "width": 683, "id": 23352, "height": 512}, {"file_name": "ADE_test_00001197.jpg", "width": 885, "id": 23353, "height": 512}, {"file_name": "ADE_test_00001198.jpg", "width": 683, "id": 23354, "height": 512}, {"file_name": "ADE_test_00001199.jpg", "width": 512, "id": 23355, "height": 683}, {"file_name": "ADE_test_00001200.jpg", "width": 670, "id": 23356, "height": 512}, {"file_name": "ADE_test_00001201.jpg", "width": 512, "id": 23357, "height": 527}, {"file_name": "ADE_test_00001202.jpg", "width": 512, "id": 23358, "height": 683}, {"file_name": "ADE_test_00001203.jpg", "width": 683, "id": 23359, "height": 512}, {"file_name": "ADE_test_00001204.jpg", "width": 686, "id": 23360, "height": 512}, {"file_name": "ADE_test_00001205.jpg", "width": 683, "id": 23361, "height": 512}, {"file_name": "ADE_test_00001208.jpg", "width": 767, "id": 23362, "height": 512}, {"file_name": "ADE_test_00001209.jpg", "width": 1024, "id": 23363, "height": 1024}, {"file_name": "ADE_test_00001210.jpg", "width": 768, "id": 23364, "height": 512}, {"file_name": "ADE_test_00001211.jpg", "width": 683, "id": 23365, "height": 512}, {"file_name": "ADE_test_00001212.jpg", "width": 512, "id": 23366, "height": 683}, {"file_name": "ADE_test_00001213.jpg", "width": 683, "id": 23367, "height": 512}, {"file_name": "ADE_test_00001214.jpg", "width": 512, "id": 23368, "height": 768}, {"file_name": "ADE_test_00001215.jpg", "width": 768, "id": 23369, "height": 512}, {"file_name": "ADE_test_00001216.jpg", "width": 675, "id": 23370, "height": 512}, {"file_name": "ADE_test_00001217.jpg", "width": 683, "id": 23371, "height": 512}, {"file_name": "ADE_test_00001218.jpg", "width": 1024, "id": 23372, "height": 1024}, {"file_name": "ADE_test_00001219.jpg", "width": 768, "id": 23373, "height": 512}, {"file_name": "ADE_test_00001220.jpg", "width": 512, "id": 23374, "height": 771}, {"file_name": "ADE_test_00001221.jpg", "width": 512, "id": 23375, "height": 641}, {"file_name": "ADE_test_00001222.jpg", "width": 683, "id": 23376, "height": 512}, {"file_name": "ADE_test_00001223.jpg", "width": 512, "id": 23377, "height": 769}, {"file_name": "ADE_test_00001224.jpg", "width": 512, "id": 23378, "height": 683}, {"file_name": "ADE_test_00001225.jpg", "width": 512, "id": 23379, "height": 683}, {"file_name": "ADE_test_00001227.jpg", "width": 683, "id": 23380, "height": 512}, {"file_name": "ADE_test_00001228.jpg", "width": 512, "id": 23381, "height": 683}, {"file_name": "ADE_test_00001229.jpg", "width": 768, "id": 23382, "height": 512}, {"file_name": "ADE_test_00001230.jpg", "width": 512, "id": 23383, "height": 768}, {"file_name": "ADE_test_00001231.jpg", "width": 512, "id": 23384, "height": 768}, {"file_name": "ADE_test_00001232.jpg", "width": 683, "id": 23385, "height": 512}, {"file_name": "ADE_test_00001233.jpg", "width": 819, "id": 23386, "height": 512}, {"file_name": "ADE_test_00001234.jpg", "width": 512, "id": 23387, "height": 804}, {"file_name": "ADE_test_00001235.jpg", "width": 620, "id": 23388, "height": 512}, {"file_name": "ADE_test_00001236.jpg", "width": 512, "id": 23389, "height": 772}, {"file_name": "ADE_test_00001237.jpg", "width": 512, "id": 23390, "height": 767}, {"file_name": "ADE_test_00001238.jpg", "width": 512, "id": 23391, "height": 715}, {"file_name": "ADE_test_00001239.jpg", "width": 512, "id": 23392, "height": 768}, {"file_name": "ADE_test_00001240.jpg", "width": 512, "id": 23393, "height": 683}, {"file_name": "ADE_test_00001241.jpg", "width": 512, "id": 23394, "height": 755}, {"file_name": "ADE_test_00001242.jpg", "width": 512, "id": 23395, "height": 770}, {"file_name": "ADE_test_00001243.jpg", "width": 512, "id": 23396, "height": 683}, {"file_name": "ADE_test_00001245.jpg", "width": 512, "id": 23397, "height": 683}, {"file_name": "ADE_test_00001246.jpg", "width": 512, "id": 23398, "height": 771}, {"file_name": "ADE_test_00001247.jpg", "width": 518, "id": 23399, "height": 512}, {"file_name": "ADE_test_00001248.jpg", "width": 512, "id": 23400, "height": 683}, {"file_name": "ADE_test_00001249.jpg", "width": 512, "id": 23401, "height": 716}, {"file_name": "ADE_test_00001250.jpg", "width": 572, "id": 23402, "height": 512}, {"file_name": "ADE_test_00001251.jpg", "width": 512, "id": 23403, "height": 683}, {"file_name": "ADE_test_00001252.jpg", "width": 512, "id": 23404, "height": 682}, {"file_name": "ADE_test_00001253.jpg", "width": 512, "id": 23405, "height": 768}, {"file_name": "ADE_test_00001254.jpg", "width": 512, "id": 23406, "height": 683}, {"file_name": "ADE_test_00001255.jpg", "width": 682, "id": 23407, "height": 512}, {"file_name": "ADE_test_00001256.jpg", "width": 683, "id": 23408, "height": 512}, {"file_name": "ADE_test_00001257.jpg", "width": 683, "id": 23409, "height": 512}, {"file_name": "ADE_test_00001258.jpg", "width": 512, "id": 23410, "height": 683}, {"file_name": "ADE_test_00001260.jpg", "width": 830, "id": 23411, "height": 512}, {"file_name": "ADE_test_00001261.jpg", "width": 512, "id": 23412, "height": 683}, {"file_name": "ADE_test_00001262.jpg", "width": 512, "id": 23413, "height": 770}, {"file_name": "ADE_test_00001263.jpg", "width": 683, "id": 23414, "height": 512}, {"file_name": "ADE_test_00001264.jpg", "width": 512, "id": 23415, "height": 683}, {"file_name": "ADE_test_00001269.jpg", "width": 631, "id": 23416, "height": 512}, {"file_name": "ADE_test_00001270.jpg", "width": 677, "id": 23417, "height": 512}, {"file_name": "ADE_test_00001271.jpg", "width": 512, "id": 23418, "height": 768}, {"file_name": "ADE_test_00001273.jpg", "width": 512, "id": 23419, "height": 768}, {"file_name": "ADE_test_00001274.jpg", "width": 512, "id": 23420, "height": 771}, {"file_name": "ADE_test_00001275.jpg", "width": 512, "id": 23421, "height": 769}, {"file_name": "ADE_test_00001276.jpg", "width": 641, "id": 23422, "height": 512}, {"file_name": "ADE_test_00001277.jpg", "width": 512, "id": 23423, "height": 683}, {"file_name": "ADE_test_00001279.jpg", "width": 683, "id": 23424, "height": 512}, {"file_name": "ADE_test_00001280.jpg", "width": 512, "id": 23425, "height": 683}, {"file_name": "ADE_test_00001281.jpg", "width": 512, "id": 23426, "height": 768}, {"file_name": "ADE_test_00001282.jpg", "width": 683, "id": 23427, "height": 512}, {"file_name": "ADE_test_00001283.jpg", "width": 768, "id": 23428, "height": 512}, {"file_name": "ADE_test_00001284.jpg", "width": 591, "id": 23429, "height": 512}, {"file_name": "ADE_test_00001285.jpg", "width": 768, "id": 23430, "height": 512}, {"file_name": "ADE_test_00001286.jpg", "width": 683, "id": 23431, "height": 512}, {"file_name": "ADE_test_00001287.jpg", "width": 512, "id": 23432, "height": 912}, {"file_name": "ADE_test_00001288.jpg", "width": 512, "id": 23433, "height": 683}, {"file_name": "ADE_test_00001289.jpg", "width": 512, "id": 23434, "height": 771}, {"file_name": "ADE_test_00001290.jpg", "width": 512, "id": 23435, "height": 767}, {"file_name": "ADE_test_00001291.jpg", "width": 848, "id": 23436, "height": 512}, {"file_name": "ADE_test_00001292.jpg", "width": 768, "id": 23437, "height": 512}, {"file_name": "ADE_test_00001293.jpg", "width": 512, "id": 23438, "height": 553}, {"file_name": "ADE_test_00001294.jpg", "width": 512, "id": 23439, "height": 683}, {"file_name": "ADE_test_00001295.jpg", "width": 822, "id": 23440, "height": 512}, {"file_name": "ADE_test_00001296.jpg", "width": 683, "id": 23441, "height": 512}, {"file_name": "ADE_test_00001297.jpg", "width": 646, "id": 23442, "height": 512}, {"file_name": "ADE_test_00001298.jpg", "width": 512, "id": 23443, "height": 773}, {"file_name": "ADE_test_00001299.jpg", "width": 512, "id": 23444, "height": 762}, {"file_name": "ADE_test_00001309.jpg", "width": 512, "id": 23445, "height": 764}, {"file_name": "ADE_test_00001311.jpg", "width": 770, "id": 23446, "height": 512}, {"file_name": "ADE_test_00001312.jpg", "width": 725, "id": 23447, "height": 512}, {"file_name": "ADE_test_00001313.jpg", "width": 717, "id": 23448, "height": 512}, {"file_name": "ADE_test_00001314.jpg", "width": 512, "id": 23449, "height": 768}, {"file_name": "ADE_test_00001315.jpg", "width": 683, "id": 23450, "height": 512}, {"file_name": "ADE_test_00001316.jpg", "width": 768, "id": 23451, "height": 512}, {"file_name": "ADE_test_00001317.jpg", "width": 512, "id": 23452, "height": 683}, {"file_name": "ADE_test_00001318.jpg", "width": 512, "id": 23453, "height": 608}, {"file_name": "ADE_test_00001319.jpg", "width": 512, "id": 23454, "height": 778}, {"file_name": "ADE_test_00001320.jpg", "width": 683, "id": 23455, "height": 512}, {"file_name": "ADE_test_00001321.jpg", "width": 1024, "id": 23456, "height": 1024}, {"file_name": "ADE_test_00001322.jpg", "width": 512, "id": 23457, "height": 683}, {"file_name": "ADE_test_00001323.jpg", "width": 683, "id": 23458, "height": 512}, {"file_name": "ADE_test_00001325.jpg", "width": 683, "id": 23459, "height": 512}, {"file_name": "ADE_test_00001326.jpg", "width": 683, "id": 23460, "height": 512}, {"file_name": "ADE_test_00001327.jpg", "width": 683, "id": 23461, "height": 512}, {"file_name": "ADE_test_00001328.jpg", "width": 512, "id": 23462, "height": 683}, {"file_name": "ADE_test_00001329.jpg", "width": 642, "id": 23463, "height": 512}, {"file_name": "ADE_test_00001330.jpg", "width": 683, "id": 23464, "height": 512}, {"file_name": "ADE_test_00001331.jpg", "width": 683, "id": 23465, "height": 512}, {"file_name": "ADE_test_00001332.jpg", "width": 683, "id": 23466, "height": 512}, {"file_name": "ADE_test_00001333.jpg", "width": 683, "id": 23467, "height": 512}, {"file_name": "ADE_test_00001334.jpg", "width": 840, "id": 23468, "height": 512}, {"file_name": "ADE_test_00001335.jpg", "width": 512, "id": 23469, "height": 768}, {"file_name": "ADE_test_00001336.jpg", "width": 512, "id": 23470, "height": 683}, {"file_name": "ADE_test_00001337.jpg", "width": 512, "id": 23471, "height": 685}, {"file_name": "ADE_test_00001338.jpg", "width": 512, "id": 23472, "height": 771}, {"file_name": "ADE_test_00001339.jpg", "width": 720, "id": 23473, "height": 512}, {"file_name": "ADE_test_00001340.jpg", "width": 659, "id": 23474, "height": 512}, {"file_name": "ADE_test_00001341.jpg", "width": 512, "id": 23475, "height": 565}, {"file_name": "ADE_test_00001342.jpg", "width": 512, "id": 23476, "height": 765}, {"file_name": "ADE_test_00001344.jpg", "width": 512, "id": 23477, "height": 771}, {"file_name": "ADE_test_00001346.jpg", "width": 512, "id": 23478, "height": 640}, {"file_name": "ADE_test_00001347.jpg", "width": 512, "id": 23479, "height": 763}, {"file_name": "ADE_test_00001348.jpg", "width": 655, "id": 23480, "height": 512}, {"file_name": "ADE_test_00001349.jpg", "width": 512, "id": 23481, "height": 655}, {"file_name": "ADE_test_00001350.jpg", "width": 1024, "id": 23482, "height": 1024}, {"file_name": "ADE_test_00001351.jpg", "width": 512, "id": 23483, "height": 768}, {"file_name": "ADE_test_00001352.jpg", "width": 819, "id": 23484, "height": 512}, {"file_name": "ADE_test_00001353.jpg", "width": 512, "id": 23485, "height": 683}, {"file_name": "ADE_test_00001354.jpg", "width": 683, "id": 23486, "height": 512}, {"file_name": "ADE_test_00001355.jpg", "width": 512, "id": 23487, "height": 783}, {"file_name": "ADE_test_00001356.jpg", "width": 657, "id": 23488, "height": 512}, {"file_name": "ADE_test_00001357.jpg", "width": 683, "id": 23489, "height": 512}, {"file_name": "ADE_test_00001358.jpg", "width": 632, "id": 23490, "height": 512}, {"file_name": "ADE_test_00001359.jpg", "width": 650, "id": 23491, "height": 512}, {"file_name": "ADE_test_00001360.jpg", "width": 512, "id": 23492, "height": 770}, {"file_name": "ADE_test_00001361.jpg", "width": 512, "id": 23493, "height": 685}, {"file_name": "ADE_test_00001362.jpg", "width": 512, "id": 23494, "height": 683}, {"file_name": "ADE_test_00001363.jpg", "width": 620, "id": 23495, "height": 512}, {"file_name": "ADE_test_00001364.jpg", "width": 512, "id": 23496, "height": 683}, {"file_name": "ADE_test_00001365.jpg", "width": 512, "id": 23497, "height": 765}, {"file_name": "ADE_test_00001366.jpg", "width": 683, "id": 23498, "height": 512}, {"file_name": "ADE_test_00001367.jpg", "width": 512, "id": 23499, "height": 771}, {"file_name": "ADE_test_00001368.jpg", "width": 641, "id": 23500, "height": 512}, {"file_name": "ADE_test_00001369.jpg", "width": 683, "id": 23501, "height": 512}, {"file_name": "ADE_test_00001370.jpg", "width": 771, "id": 23502, "height": 512}, {"file_name": "ADE_test_00001371.jpg", "width": 1200, "id": 23503, "height": 1200}, {"file_name": "ADE_test_00001372.jpg", "width": 512, "id": 23504, "height": 539}, {"file_name": "ADE_test_00001373.jpg", "width": 683, "id": 23505, "height": 512}, {"file_name": "ADE_test_00001374.jpg", "width": 512, "id": 23506, "height": 683}, {"file_name": "ADE_test_00001375.jpg", "width": 765, "id": 23507, "height": 512}, {"file_name": "ADE_test_00001376.jpg", "width": 683, "id": 23508, "height": 512}, {"file_name": "ADE_test_00001377.jpg", "width": 683, "id": 23509, "height": 512}, {"file_name": "ADE_test_00001378.jpg", "width": 512, "id": 23510, "height": 770}, {"file_name": "ADE_test_00001379.jpg", "width": 512, "id": 23511, "height": 683}, {"file_name": "ADE_test_00001380.jpg", "width": 819, "id": 23512, "height": 512}, {"file_name": "ADE_test_00001381.jpg", "width": 683, "id": 23513, "height": 512}, {"file_name": "ADE_test_00001382.jpg", "width": 683, "id": 23514, "height": 512}, {"file_name": "ADE_test_00001383.jpg", "width": 659, "id": 23515, "height": 512}, {"file_name": "ADE_test_00001384.jpg", "width": 855, "id": 23516, "height": 512}, {"file_name": "ADE_test_00001385.jpg", "width": 765, "id": 23517, "height": 512}, {"file_name": "ADE_test_00001386.jpg", "width": 768, "id": 23518, "height": 512}, {"file_name": "ADE_test_00001387.jpg", "width": 896, "id": 23519, "height": 512}, {"file_name": "ADE_test_00001388.jpg", "width": 717, "id": 23520, "height": 512}, {"file_name": "ADE_test_00001389.jpg", "width": 683, "id": 23521, "height": 512}, {"file_name": "ADE_test_00001391.jpg", "width": 683, "id": 23522, "height": 512}, {"file_name": "ADE_test_00001392.jpg", "width": 512, "id": 23523, "height": 793}, {"file_name": "ADE_test_00001393.jpg", "width": 683, "id": 23524, "height": 512}, {"file_name": "ADE_test_00001394.jpg", "width": 512, "id": 23525, "height": 765}, {"file_name": "ADE_test_00001395.jpg", "width": 693, "id": 23526, "height": 512}, {"file_name": "ADE_test_00001396.jpg", "width": 512, "id": 23527, "height": 605}, {"file_name": "ADE_test_00001397.jpg", "width": 512, "id": 23528, "height": 768}, {"file_name": "ADE_test_00001398.jpg", "width": 512, "id": 23529, "height": 686}, {"file_name": "ADE_test_00001399.jpg", "width": 553, "id": 23530, "height": 512}, {"file_name": "ADE_test_00001400.jpg", "width": 595, "id": 23531, "height": 512}, {"file_name": "ADE_test_00001401.jpg", "width": 683, "id": 23532, "height": 512}, {"file_name": "ADE_test_00001402.jpg", "width": 683, "id": 23533, "height": 512}, {"file_name": "ADE_test_00001403.jpg", "width": 512, "id": 23534, "height": 768}, {"file_name": "ADE_test_00001404.jpg", "width": 512, "id": 23535, "height": 768}, {"file_name": "ADE_test_00001405.jpg", "width": 512, "id": 23536, "height": 683}, {"file_name": "ADE_test_00001406.jpg", "width": 512, "id": 23537, "height": 683}, {"file_name": "ADE_test_00001407.jpg", "width": 768, "id": 23538, "height": 512}, {"file_name": "ADE_test_00001408.jpg", "width": 512, "id": 23539, "height": 771}, {"file_name": "ADE_test_00001409.jpg", "width": 577, "id": 23540, "height": 512}, {"file_name": "ADE_test_00001410.jpg", "width": 512, "id": 23541, "height": 683}, {"file_name": "ADE_test_00001411.jpg", "width": 683, "id": 23542, "height": 512}, {"file_name": "ADE_test_00001412.jpg", "width": 512, "id": 23543, "height": 683}, {"file_name": "ADE_test_00001413.jpg", "width": 512, "id": 23544, "height": 683}, {"file_name": "ADE_test_00001414.jpg", "width": 512, "id": 23545, "height": 768}, {"file_name": "ADE_test_00001415.jpg", "width": 512, "id": 23546, "height": 768}, {"file_name": "ADE_test_00001416.jpg", "width": 512, "id": 23547, "height": 683}, {"file_name": "ADE_test_00001417.jpg", "width": 512, "id": 23548, "height": 817}, {"file_name": "ADE_test_00001418.jpg", "width": 512, "id": 23549, "height": 772}, {"file_name": "ADE_test_00001419.jpg", "width": 512, "id": 23550, "height": 768}, {"file_name": "ADE_test_00001420.jpg", "width": 512, "id": 23551, "height": 765}, {"file_name": "ADE_test_00001421.jpg", "width": 512, "id": 23552, "height": 650}, {"file_name": "ADE_test_00001422.jpg", "width": 512, "id": 23553, "height": 683}, {"file_name": "ADE_test_00001423.jpg", "width": 512, "id": 23554, "height": 823}, {"file_name": "ADE_test_00001424.jpg", "width": 512, "id": 23555, "height": 683}, {"file_name": "ADE_test_00001425.jpg", "width": 512, "id": 23556, "height": 768}, {"file_name": "ADE_test_00001426.jpg", "width": 512, "id": 23557, "height": 683}, {"file_name": "ADE_test_00001427.jpg", "width": 512, "id": 23558, "height": 768}, {"file_name": "ADE_test_00001428.jpg", "width": 512, "id": 23559, "height": 768}, {"file_name": "ADE_test_00001429.jpg", "width": 512, "id": 23560, "height": 683}, {"file_name": "ADE_test_00001430.jpg", "width": 512, "id": 23561, "height": 683}, {"file_name": "ADE_test_00001431.jpg", "width": 512, "id": 23562, "height": 818}, {"file_name": "ADE_test_00001432.jpg", "width": 512, "id": 23563, "height": 768}, {"file_name": "ADE_test_00001433.jpg", "width": 512, "id": 23564, "height": 772}, {"file_name": "ADE_test_00001434.jpg", "width": 512, "id": 23565, "height": 683}, {"file_name": "ADE_test_00001435.jpg", "width": 512, "id": 23566, "height": 957}, {"file_name": "ADE_test_00001436.jpg", "width": 512, "id": 23567, "height": 683}, {"file_name": "ADE_test_00001437.jpg", "width": 512, "id": 23568, "height": 683}, {"file_name": "ADE_test_00001438.jpg", "width": 910, "id": 23569, "height": 512}, {"file_name": "ADE_test_00001439.jpg", "width": 1024, "id": 23570, "height": 1024}, {"file_name": "ADE_test_00001440.jpg", "width": 512, "id": 23571, "height": 768}, {"file_name": "ADE_test_00001441.jpg", "width": 768, "id": 23572, "height": 512}, {"file_name": "ADE_test_00001442.jpg", "width": 512, "id": 23573, "height": 638}, {"file_name": "ADE_test_00001443.jpg", "width": 765, "id": 23574, "height": 512}, {"file_name": "ADE_test_00001444.jpg", "width": 512, "id": 23575, "height": 683}, {"file_name": "ADE_test_00001445.jpg", "width": 768, "id": 23576, "height": 512}, {"file_name": "ADE_test_00001446.jpg", "width": 683, "id": 23577, "height": 512}, {"file_name": "ADE_test_00001447.jpg", "width": 512, "id": 23578, "height": 683}, {"file_name": "ADE_test_00001448.jpg", "width": 683, "id": 23579, "height": 512}, {"file_name": "ADE_test_00001449.jpg", "width": 683, "id": 23580, "height": 512}, {"file_name": "ADE_test_00001450.jpg", "width": 683, "id": 23581, "height": 512}, {"file_name": "ADE_test_00001451.jpg", "width": 512, "id": 23582, "height": 760}, {"file_name": "ADE_test_00001452.jpg", "width": 512, "id": 23583, "height": 683}, {"file_name": "ADE_test_00001453.jpg", "width": 596, "id": 23584, "height": 512}, {"file_name": "ADE_test_00001454.jpg", "width": 683, "id": 23585, "height": 512}, {"file_name": "ADE_test_00001455.jpg", "width": 512, "id": 23586, "height": 683}, {"file_name": "ADE_test_00001456.jpg", "width": 683, "id": 23587, "height": 512}, {"file_name": "ADE_test_00001457.jpg", "width": 512, "id": 23588, "height": 683}, {"file_name": "ADE_test_00001458.jpg", "width": 683, "id": 23589, "height": 512}, {"file_name": "ADE_test_00001459.jpg", "width": 770, "id": 23590, "height": 512}, {"file_name": "ADE_test_00001461.jpg", "width": 512, "id": 23591, "height": 770}, {"file_name": "ADE_test_00001462.jpg", "width": 683, "id": 23592, "height": 512}, {"file_name": "ADE_test_00001463.jpg", "width": 683, "id": 23593, "height": 512}, {"file_name": "ADE_test_00001464.jpg", "width": 786, "id": 23594, "height": 512}, {"file_name": "ADE_test_00001466.jpg", "width": 512, "id": 23595, "height": 901}, {"file_name": "ADE_test_00001468.jpg", "width": 512, "id": 23596, "height": 769}, {"file_name": "ADE_test_00001469.jpg", "width": 512, "id": 23597, "height": 771}, {"file_name": "ADE_test_00001470.jpg", "width": 512, "id": 23598, "height": 768}, {"file_name": "ADE_test_00001471.jpg", "width": 683, "id": 23599, "height": 512}, {"file_name": "ADE_test_00001472.jpg", "width": 1280, "id": 23600, "height": 1280}, {"file_name": "ADE_test_00001473.jpg", "width": 512, "id": 23601, "height": 771}, {"file_name": "ADE_test_00001474.jpg", "width": 512, "id": 23602, "height": 768}, {"file_name": "ADE_test_00001475.jpg", "width": 512, "id": 23603, "height": 768}, {"file_name": "ADE_test_00001476.jpg", "width": 731, "id": 23604, "height": 512}, {"file_name": "ADE_test_00001477.jpg", "width": 512, "id": 23605, "height": 683}, {"file_name": "ADE_test_00001478.jpg", "width": 512, "id": 23606, "height": 704}, {"file_name": "ADE_test_00001479.jpg", "width": 512, "id": 23607, "height": 794}, {"file_name": "ADE_test_00001480.jpg", "width": 775, "id": 23608, "height": 512}, {"file_name": "ADE_test_00001481.jpg", "width": 512, "id": 23609, "height": 768}, {"file_name": "ADE_test_00001484.jpg", "width": 512, "id": 23610, "height": 768}, {"file_name": "ADE_test_00001485.jpg", "width": 672, "id": 23611, "height": 512}, {"file_name": "ADE_test_00001486.jpg", "width": 512, "id": 23612, "height": 771}, {"file_name": "ADE_test_00001487.jpg", "width": 512, "id": 23613, "height": 683}, {"file_name": "ADE_test_00001488.jpg", "width": 683, "id": 23614, "height": 512}, {"file_name": "ADE_test_00001489.jpg", "width": 533, "id": 23615, "height": 512}, {"file_name": "ADE_test_00001490.jpg", "width": 683, "id": 23616, "height": 512}, {"file_name": "ADE_test_00001491.jpg", "width": 580, "id": 23617, "height": 512}, {"file_name": "ADE_test_00001492.jpg", "width": 512, "id": 23618, "height": 683}, {"file_name": "ADE_test_00001493.jpg", "width": 512, "id": 23619, "height": 685}, {"file_name": "ADE_test_00001494.jpg", "width": 512, "id": 23620, "height": 770}, {"file_name": "ADE_test_00001495.jpg", "width": 512, "id": 23621, "height": 726}, {"file_name": "ADE_test_00001496.jpg", "width": 1280, "id": 23622, "height": 1280}, {"file_name": "ADE_test_00001497.jpg", "width": 801, "id": 23623, "height": 512}, {"file_name": "ADE_test_00001498.jpg", "width": 537, "id": 23624, "height": 512}, {"file_name": "ADE_test_00001499.jpg", "width": 1047, "id": 23625, "height": 512}, {"file_name": "ADE_test_00001500.jpg", "width": 529, "id": 23626, "height": 512}, {"file_name": "ADE_test_00001501.jpg", "width": 683, "id": 23627, "height": 512}, {"file_name": "ADE_test_00001502.jpg", "width": 512, "id": 23628, "height": 770}, {"file_name": "ADE_test_00001503.jpg", "width": 770, "id": 23629, "height": 512}, {"file_name": "ADE_test_00001504.jpg", "width": 512, "id": 23630, "height": 683}, {"file_name": "ADE_test_00001505.jpg", "width": 685, "id": 23631, "height": 512}, {"file_name": "ADE_test_00001506.jpg", "width": 512, "id": 23632, "height": 764}, {"file_name": "ADE_test_00001507.jpg", "width": 683, "id": 23633, "height": 512}, {"file_name": "ADE_test_00001508.jpg", "width": 683, "id": 23634, "height": 512}, {"file_name": "ADE_test_00001509.jpg", "width": 632, "id": 23635, "height": 512}, {"file_name": "ADE_test_00001510.jpg", "width": 600, "id": 23636, "height": 512}, {"file_name": "ADE_test_00001511.jpg", "width": 758, "id": 23637, "height": 512}, {"file_name": "ADE_test_00001512.jpg", "width": 512, "id": 23638, "height": 642}, {"file_name": "ADE_test_00001513.jpg", "width": 512, "id": 23639, "height": 683}, {"file_name": "ADE_test_00001514.jpg", "width": 640, "id": 23640, "height": 512}, {"file_name": "ADE_test_00001515.jpg", "width": 683, "id": 23641, "height": 512}, {"file_name": "ADE_test_00001516.jpg", "width": 998, "id": 23642, "height": 998}, {"file_name": "ADE_test_00001517.jpg", "width": 512, "id": 23643, "height": 759}, {"file_name": "ADE_test_00001518.jpg", "width": 512, "id": 23644, "height": 683}, {"file_name": "ADE_test_00001519.jpg", "width": 512, "id": 23645, "height": 769}, {"file_name": "ADE_test_00001520.jpg", "width": 512, "id": 23646, "height": 765}, {"file_name": "ADE_test_00001522.jpg", "width": 512, "id": 23647, "height": 683}, {"file_name": "ADE_test_00001523.jpg", "width": 683, "id": 23648, "height": 512}, {"file_name": "ADE_test_00001524.jpg", "width": 683, "id": 23649, "height": 512}, {"file_name": "ADE_test_00001525.jpg", "width": 512, "id": 23650, "height": 682}, {"file_name": "ADE_test_00001526.jpg", "width": 683, "id": 23651, "height": 512}, {"file_name": "ADE_test_00001527.jpg", "width": 512, "id": 23652, "height": 594}, {"file_name": "ADE_test_00001529.jpg", "width": 512, "id": 23653, "height": 771}, {"file_name": "ADE_test_00001530.jpg", "width": 512, "id": 23654, "height": 771}, {"file_name": "ADE_test_00001531.jpg", "width": 512, "id": 23655, "height": 744}, {"file_name": "ADE_test_00001532.jpg", "width": 512, "id": 23656, "height": 683}, {"file_name": "ADE_test_00001533.jpg", "width": 512, "id": 23657, "height": 771}, {"file_name": "ADE_test_00001534.jpg", "width": 512, "id": 23658, "height": 683}, {"file_name": "ADE_test_00001535.jpg", "width": 512, "id": 23659, "height": 685}, {"file_name": "ADE_test_00001536.jpg", "width": 683, "id": 23660, "height": 512}, {"file_name": "ADE_test_00001537.jpg", "width": 766, "id": 23661, "height": 512}, {"file_name": "ADE_test_00001538.jpg", "width": 855, "id": 23662, "height": 512}, {"file_name": "ADE_test_00001539.jpg", "width": 742, "id": 23663, "height": 512}, {"file_name": "ADE_test_00001540.jpg", "width": 769, "id": 23664, "height": 512}, {"file_name": "ADE_test_00001541.jpg", "width": 512, "id": 23665, "height": 761}, {"file_name": "ADE_test_00001542.jpg", "width": 683, "id": 23666, "height": 512}, {"file_name": "ADE_test_00001543.jpg", "width": 512, "id": 23667, "height": 771}, {"file_name": "ADE_test_00001545.jpg", "width": 683, "id": 23668, "height": 512}, {"file_name": "ADE_test_00001546.jpg", "width": 768, "id": 23669, "height": 512}, {"file_name": "ADE_test_00001547.jpg", "width": 512, "id": 23670, "height": 683}, {"file_name": "ADE_test_00001548.jpg", "width": 512, "id": 23671, "height": 771}, {"file_name": "ADE_test_00001549.jpg", "width": 512, "id": 23672, "height": 683}, {"file_name": "ADE_test_00001550.jpg", "width": 631, "id": 23673, "height": 512}, {"file_name": "ADE_test_00001551.jpg", "width": 683, "id": 23674, "height": 512}, {"file_name": "ADE_test_00001552.jpg", "width": 512, "id": 23675, "height": 683}, {"file_name": "ADE_test_00001553.jpg", "width": 512, "id": 23676, "height": 771}, {"file_name": "ADE_test_00001554.jpg", "width": 683, "id": 23677, "height": 512}, {"file_name": "ADE_test_00001555.jpg", "width": 640, "id": 23678, "height": 512}, {"file_name": "ADE_test_00001556.jpg", "width": 768, "id": 23679, "height": 512}, {"file_name": "ADE_test_00001557.jpg", "width": 704, "id": 23680, "height": 512}, {"file_name": "ADE_test_00001558.jpg", "width": 512, "id": 23681, "height": 771}, {"file_name": "ADE_test_00001559.jpg", "width": 1024, "id": 23682, "height": 1024}, {"file_name": "ADE_test_00001560.jpg", "width": 683, "id": 23683, "height": 512}, {"file_name": "ADE_test_00001561.jpg", "width": 512, "id": 23684, "height": 683}, {"file_name": "ADE_test_00001562.jpg", "width": 512, "id": 23685, "height": 683}, {"file_name": "ADE_test_00001563.jpg", "width": 512, "id": 23686, "height": 771}, {"file_name": "ADE_test_00001564.jpg", "width": 512, "id": 23687, "height": 771}, {"file_name": "ADE_test_00001565.jpg", "width": 512, "id": 23688, "height": 771}, {"file_name": "ADE_test_00001566.jpg", "width": 512, "id": 23689, "height": 683}, {"file_name": "ADE_test_00001567.jpg", "width": 517, "id": 23690, "height": 512}, {"file_name": "ADE_test_00001568.jpg", "width": 628, "id": 23691, "height": 512}, {"file_name": "ADE_test_00001569.jpg", "width": 512, "id": 23692, "height": 771}, {"file_name": "ADE_test_00001570.jpg", "width": 512, "id": 23693, "height": 768}, {"file_name": "ADE_test_00001571.jpg", "width": 725, "id": 23694, "height": 512}, {"file_name": "ADE_test_00001572.jpg", "width": 512, "id": 23695, "height": 729}, {"file_name": "ADE_test_00001573.jpg", "width": 512, "id": 23696, "height": 771}, {"file_name": "ADE_test_00001574.jpg", "width": 512, "id": 23697, "height": 683}, {"file_name": "ADE_test_00001575.jpg", "width": 512, "id": 23698, "height": 683}, {"file_name": "ADE_test_00001576.jpg", "width": 512, "id": 23699, "height": 683}, {"file_name": "ADE_test_00001577.jpg", "width": 512, "id": 23700, "height": 768}, {"file_name": "ADE_test_00001579.jpg", "width": 512, "id": 23701, "height": 595}, {"file_name": "ADE_test_00001580.jpg", "width": 512, "id": 23702, "height": 739}, {"file_name": "ADE_test_00001581.jpg", "width": 512, "id": 23703, "height": 771}, {"file_name": "ADE_test_00001582.jpg", "width": 1000, "id": 23704, "height": 1000}, {"file_name": "ADE_test_00001583.jpg", "width": 765, "id": 23705, "height": 512}, {"file_name": "ADE_test_00001584.jpg", "width": 512, "id": 23706, "height": 683}, {"file_name": "ADE_test_00001585.jpg", "width": 512, "id": 23707, "height": 593}, {"file_name": "ADE_test_00001586.jpg", "width": 512, "id": 23708, "height": 768}, {"file_name": "ADE_test_00001587.jpg", "width": 683, "id": 23709, "height": 512}, {"file_name": "ADE_test_00001588.jpg", "width": 512, "id": 23710, "height": 786}, {"file_name": "ADE_test_00001589.jpg", "width": 768, "id": 23711, "height": 512}, {"file_name": "ADE_test_00001590.jpg", "width": 512, "id": 23712, "height": 683}, {"file_name": "ADE_test_00001591.jpg", "width": 512, "id": 23713, "height": 784}, {"file_name": "ADE_test_00001592.jpg", "width": 512, "id": 23714, "height": 621}, {"file_name": "ADE_test_00001593.jpg", "width": 685, "id": 23715, "height": 512}, {"file_name": "ADE_test_00001594.jpg", "width": 512, "id": 23716, "height": 899}, {"file_name": "ADE_test_00001595.jpg", "width": 512, "id": 23717, "height": 683}, {"file_name": "ADE_test_00001596.jpg", "width": 512, "id": 23718, "height": 765}, {"file_name": "ADE_test_00001597.jpg", "width": 512, "id": 23719, "height": 683}, {"file_name": "ADE_test_00001598.jpg", "width": 512, "id": 23720, "height": 683}, {"file_name": "ADE_test_00001599.jpg", "width": 521, "id": 23721, "height": 512}, {"file_name": "ADE_test_00001600.jpg", "width": 512, "id": 23722, "height": 768}, {"file_name": "ADE_test_00001601.jpg", "width": 512, "id": 23723, "height": 770}, {"file_name": "ADE_test_00001602.jpg", "width": 512, "id": 23724, "height": 763}, {"file_name": "ADE_test_00001603.jpg", "width": 512, "id": 23725, "height": 815}, {"file_name": "ADE_test_00001604.jpg", "width": 512, "id": 23726, "height": 683}, {"file_name": "ADE_test_00001605.jpg", "width": 512, "id": 23727, "height": 683}, {"file_name": "ADE_test_00001606.jpg", "width": 512, "id": 23728, "height": 683}, {"file_name": "ADE_test_00001607.jpg", "width": 683, "id": 23729, "height": 512}, {"file_name": "ADE_test_00001608.jpg", "width": 1000, "id": 23730, "height": 1000}, {"file_name": "ADE_test_00001609.jpg", "width": 768, "id": 23731, "height": 512}, {"file_name": "ADE_test_00001610.jpg", "width": 683, "id": 23732, "height": 512}, {"file_name": "ADE_test_00001611.jpg", "width": 683, "id": 23733, "height": 512}, {"file_name": "ADE_test_00001612.jpg", "width": 680, "id": 23734, "height": 512}, {"file_name": "ADE_test_00001613.jpg", "width": 512, "id": 23735, "height": 683}, {"file_name": "ADE_test_00001614.jpg", "width": 512, "id": 23736, "height": 683}, {"file_name": "ADE_test_00001615.jpg", "width": 683, "id": 23737, "height": 512}, {"file_name": "ADE_test_00001616.jpg", "width": 512, "id": 23738, "height": 768}, {"file_name": "ADE_test_00001617.jpg", "width": 512, "id": 23739, "height": 683}, {"file_name": "ADE_test_00001618.jpg", "width": 512, "id": 23740, "height": 768}, {"file_name": "ADE_test_00001619.jpg", "width": 683, "id": 23741, "height": 512}, {"file_name": "ADE_test_00001620.jpg", "width": 728, "id": 23742, "height": 512}, {"file_name": "ADE_test_00001621.jpg", "width": 512, "id": 23743, "height": 651}, {"file_name": "ADE_test_00001622.jpg", "width": 512, "id": 23744, "height": 595}, {"file_name": "ADE_test_00001623.jpg", "width": 512, "id": 23745, "height": 768}, {"file_name": "ADE_test_00001624.jpg", "width": 512, "id": 23746, "height": 659}, {"file_name": "ADE_test_00001625.jpg", "width": 683, "id": 23747, "height": 512}, {"file_name": "ADE_test_00001626.jpg", "width": 512, "id": 23748, "height": 764}, {"file_name": "ADE_test_00001627.jpg", "width": 512, "id": 23749, "height": 768}, {"file_name": "ADE_test_00001628.jpg", "width": 512, "id": 23750, "height": 768}, {"file_name": "ADE_test_00001629.jpg", "width": 512, "id": 23751, "height": 686}, {"file_name": "ADE_test_00001630.jpg", "width": 683, "id": 23752, "height": 512}, {"file_name": "ADE_test_00001631.jpg", "width": 717, "id": 23753, "height": 512}, {"file_name": "ADE_test_00001632.jpg", "width": 770, "id": 23754, "height": 512}, {"file_name": "ADE_test_00001633.jpg", "width": 512, "id": 23755, "height": 683}, {"file_name": "ADE_test_00001634.jpg", "width": 683, "id": 23756, "height": 512}, {"file_name": "ADE_test_00001635.jpg", "width": 512, "id": 23757, "height": 683}, {"file_name": "ADE_test_00001636.jpg", "width": 683, "id": 23758, "height": 512}, {"file_name": "ADE_test_00001637.jpg", "width": 683, "id": 23759, "height": 512}, {"file_name": "ADE_test_00001638.jpg", "width": 765, "id": 23760, "height": 512}, {"file_name": "ADE_test_00001639.jpg", "width": 683, "id": 23761, "height": 512}, {"file_name": "ADE_test_00001640.jpg", "width": 512, "id": 23762, "height": 768}, {"file_name": "ADE_test_00001641.jpg", "width": 512, "id": 23763, "height": 683}, {"file_name": "ADE_test_00001642.jpg", "width": 683, "id": 23764, "height": 512}, {"file_name": "ADE_test_00001643.jpg", "width": 683, "id": 23765, "height": 512}, {"file_name": "ADE_test_00001644.jpg", "width": 512, "id": 23766, "height": 683}, {"file_name": "ADE_test_00001645.jpg", "width": 1024, "id": 23767, "height": 1024}, {"file_name": "ADE_test_00001646.jpg", "width": 683, "id": 23768, "height": 512}, {"file_name": "ADE_test_00001647.jpg", "width": 512, "id": 23769, "height": 768}, {"file_name": "ADE_test_00001648.jpg", "width": 1024, "id": 23770, "height": 1024}, {"file_name": "ADE_test_00001649.jpg", "width": 683, "id": 23771, "height": 512}, {"file_name": "ADE_test_00001650.jpg", "width": 512, "id": 23772, "height": 597}, {"file_name": "ADE_test_00001651.jpg", "width": 512, "id": 23773, "height": 683}, {"file_name": "ADE_test_00001652.jpg", "width": 512, "id": 23774, "height": 683}, {"file_name": "ADE_test_00001653.jpg", "width": 512, "id": 23775, "height": 682}, {"file_name": "ADE_test_00001654.jpg", "width": 684, "id": 23776, "height": 512}, {"file_name": "ADE_test_00001655.jpg", "width": 512, "id": 23777, "height": 683}, {"file_name": "ADE_test_00001656.jpg", "width": 685, "id": 23778, "height": 512}, {"file_name": "ADE_test_00001657.jpg", "width": 683, "id": 23779, "height": 512}, {"file_name": "ADE_test_00001658.jpg", "width": 683, "id": 23780, "height": 512}, {"file_name": "ADE_test_00001659.jpg", "width": 512, "id": 23781, "height": 683}, {"file_name": "ADE_test_00001660.jpg", "width": 512, "id": 23782, "height": 770}, {"file_name": "ADE_test_00001661.jpg", "width": 686, "id": 23783, "height": 512}, {"file_name": "ADE_test_00001662.jpg", "width": 512, "id": 23784, "height": 683}, {"file_name": "ADE_test_00001663.jpg", "width": 512, "id": 23785, "height": 683}, {"file_name": "ADE_test_00001664.jpg", "width": 512, "id": 23786, "height": 717}, {"file_name": "ADE_test_00001665.jpg", "width": 512, "id": 23787, "height": 781}, {"file_name": "ADE_test_00001666.jpg", "width": 512, "id": 23788, "height": 765}, {"file_name": "ADE_test_00001667.jpg", "width": 512, "id": 23789, "height": 683}, {"file_name": "ADE_test_00001668.jpg", "width": 512, "id": 23790, "height": 768}, {"file_name": "ADE_test_00001669.jpg", "width": 512, "id": 23791, "height": 683}, {"file_name": "ADE_test_00001670.jpg", "width": 512, "id": 23792, "height": 765}, {"file_name": "ADE_test_00001671.jpg", "width": 512, "id": 23793, "height": 683}, {"file_name": "ADE_test_00001673.jpg", "width": 519, "id": 23794, "height": 512}, {"file_name": "ADE_test_00001674.jpg", "width": 512, "id": 23795, "height": 683}, {"file_name": "ADE_test_00001675.jpg", "width": 512, "id": 23796, "height": 767}, {"file_name": "ADE_test_00001676.jpg", "width": 512, "id": 23797, "height": 654}, {"file_name": "ADE_test_00001677.jpg", "width": 512, "id": 23798, "height": 768}, {"file_name": "ADE_test_00001678.jpg", "width": 512, "id": 23799, "height": 768}, {"file_name": "ADE_test_00001679.jpg", "width": 512, "id": 23800, "height": 768}, {"file_name": "ADE_test_00001680.jpg", "width": 610, "id": 23801, "height": 512}, {"file_name": "ADE_test_00001681.jpg", "width": 512, "id": 23802, "height": 769}, {"file_name": "ADE_test_00001682.jpg", "width": 512, "id": 23803, "height": 772}, {"file_name": "ADE_test_00001683.jpg", "width": 771, "id": 23804, "height": 512}, {"file_name": "ADE_test_00001684.jpg", "width": 683, "id": 23805, "height": 512}, {"file_name": "ADE_test_00001685.jpg", "width": 765, "id": 23806, "height": 512}, {"file_name": "ADE_test_00001686.jpg", "width": 512, "id": 23807, "height": 683}, {"file_name": "ADE_test_00001687.jpg", "width": 512, "id": 23808, "height": 654}, {"file_name": "ADE_test_00001688.jpg", "width": 625, "id": 23809, "height": 512}, {"file_name": "ADE_test_00001689.jpg", "width": 512, "id": 23810, "height": 770}, {"file_name": "ADE_test_00001690.jpg", "width": 646, "id": 23811, "height": 512}, {"file_name": "ADE_test_00001691.jpg", "width": 762, "id": 23812, "height": 512}, {"file_name": "ADE_test_00001692.jpg", "width": 512, "id": 23813, "height": 765}, {"file_name": "ADE_test_00001693.jpg", "width": 683, "id": 23814, "height": 512}, {"file_name": "ADE_test_00001694.jpg", "width": 768, "id": 23815, "height": 512}, {"file_name": "ADE_test_00001695.jpg", "width": 763, "id": 23816, "height": 512}, {"file_name": "ADE_test_00001696.jpg", "width": 771, "id": 23817, "height": 512}, {"file_name": "ADE_test_00001697.jpg", "width": 512, "id": 23818, "height": 585}, {"file_name": "ADE_test_00001698.jpg", "width": 512, "id": 23819, "height": 661}, {"file_name": "ADE_test_00001699.jpg", "width": 683, "id": 23820, "height": 512}, {"file_name": "ADE_test_00001700.jpg", "width": 512, "id": 23821, "height": 697}, {"file_name": "ADE_test_00001701.jpg", "width": 512, "id": 23822, "height": 684}, {"file_name": "ADE_test_00001702.jpg", "width": 512, "id": 23823, "height": 768}, {"file_name": "ADE_test_00001703.jpg", "width": 768, "id": 23824, "height": 512}, {"file_name": "ADE_test_00001704.jpg", "width": 1280, "id": 23825, "height": 1280}, {"file_name": "ADE_test_00001705.jpg", "width": 683, "id": 23826, "height": 512}, {"file_name": "ADE_test_00001706.jpg", "width": 732, "id": 23827, "height": 512}, {"file_name": "ADE_test_00001707.jpg", "width": 683, "id": 23828, "height": 512}, {"file_name": "ADE_test_00001708.jpg", "width": 768, "id": 23829, "height": 512}, {"file_name": "ADE_test_00001709.jpg", "width": 512, "id": 23830, "height": 910}, {"file_name": "ADE_test_00001710.jpg", "width": 814, "id": 23831, "height": 512}, {"file_name": "ADE_test_00001711.jpg", "width": 512, "id": 23832, "height": 683}, {"file_name": "ADE_test_00001712.jpg", "width": 512, "id": 23833, "height": 683}, {"file_name": "ADE_test_00001713.jpg", "width": 512, "id": 23834, "height": 685}, {"file_name": "ADE_test_00001714.jpg", "width": 829, "id": 23835, "height": 512}, {"file_name": "ADE_test_00001715.jpg", "width": 512, "id": 23836, "height": 768}, {"file_name": "ADE_test_00001716.jpg", "width": 512, "id": 23837, "height": 683}, {"file_name": "ADE_test_00001717.jpg", "width": 512, "id": 23838, "height": 765}, {"file_name": "ADE_test_00001719.jpg", "width": 512, "id": 23839, "height": 773}, {"file_name": "ADE_test_00001720.jpg", "width": 512, "id": 23840, "height": 683}, {"file_name": "ADE_test_00001721.jpg", "width": 512, "id": 23841, "height": 770}, {"file_name": "ADE_test_00001723.jpg", "width": 512, "id": 23842, "height": 768}, {"file_name": "ADE_test_00001724.jpg", "width": 512, "id": 23843, "height": 683}, {"file_name": "ADE_test_00001725.jpg", "width": 512, "id": 23844, "height": 1154}, {"file_name": "ADE_test_00001726.jpg", "width": 768, "id": 23845, "height": 512}, {"file_name": "ADE_test_00001727.jpg", "width": 512, "id": 23846, "height": 768}, {"file_name": "ADE_test_00001728.jpg", "width": 512, "id": 23847, "height": 683}, {"file_name": "ADE_test_00001729.jpg", "width": 683, "id": 23848, "height": 512}, {"file_name": "ADE_test_00001730.jpg", "width": 1280, "id": 23849, "height": 1280}, {"file_name": "ADE_test_00001731.jpg", "width": 512, "id": 23850, "height": 768}, {"file_name": "ADE_test_00001732.jpg", "width": 512, "id": 23851, "height": 522}, {"file_name": "ADE_test_00001733.jpg", "width": 512, "id": 23852, "height": 770}, {"file_name": "ADE_test_00001734.jpg", "width": 512, "id": 23853, "height": 683}, {"file_name": "ADE_test_00001735.jpg", "width": 512, "id": 23854, "height": 683}, {"file_name": "ADE_test_00001736.jpg", "width": 512, "id": 23855, "height": 632}, {"file_name": "ADE_test_00001737.jpg", "width": 683, "id": 23856, "height": 512}, {"file_name": "ADE_test_00001738.jpg", "width": 683, "id": 23857, "height": 512}, {"file_name": "ADE_test_00001739.jpg", "width": 512, "id": 23858, "height": 739}, {"file_name": "ADE_test_00001740.jpg", "width": 512, "id": 23859, "height": 765}, {"file_name": "ADE_test_00001741.jpg", "width": 512, "id": 23860, "height": 683}, {"file_name": "ADE_test_00001742.jpg", "width": 765, "id": 23861, "height": 512}, {"file_name": "ADE_test_00001743.jpg", "width": 512, "id": 23862, "height": 683}, {"file_name": "ADE_test_00001744.jpg", "width": 512, "id": 23863, "height": 683}, {"file_name": "ADE_test_00001745.jpg", "width": 683, "id": 23864, "height": 512}, {"file_name": "ADE_test_00001746.jpg", "width": 512, "id": 23865, "height": 683}, {"file_name": "ADE_test_00001747.jpg", "width": 1536, "id": 23866, "height": 1536}, {"file_name": "ADE_test_00001748.jpg", "width": 515, "id": 23867, "height": 512}, {"file_name": "ADE_test_00001749.jpg", "width": 512, "id": 23868, "height": 677}, {"file_name": "ADE_test_00001750.jpg", "width": 512, "id": 23869, "height": 773}, {"file_name": "ADE_test_00001751.jpg", "width": 512, "id": 23870, "height": 683}, {"file_name": "ADE_test_00001752.jpg", "width": 512, "id": 23871, "height": 516}, {"file_name": "ADE_test_00001753.jpg", "width": 683, "id": 23872, "height": 512}, {"file_name": "ADE_test_00001754.jpg", "width": 512, "id": 23873, "height": 857}, {"file_name": "ADE_test_00001755.jpg", "width": 512, "id": 23874, "height": 768}, {"file_name": "ADE_test_00001756.jpg", "width": 512, "id": 23875, "height": 683}, {"file_name": "ADE_test_00001757.jpg", "width": 512, "id": 23876, "height": 771}, {"file_name": "ADE_test_00001758.jpg", "width": 512, "id": 23877, "height": 687}, {"file_name": "ADE_test_00001759.jpg", "width": 771, "id": 23878, "height": 512}, {"file_name": "ADE_test_00001760.jpg", "width": 683, "id": 23879, "height": 512}, {"file_name": "ADE_test_00001761.jpg", "width": 512, "id": 23880, "height": 765}, {"file_name": "ADE_test_00001762.jpg", "width": 573, "id": 23881, "height": 512}, {"file_name": "ADE_test_00001763.jpg", "width": 837, "id": 23882, "height": 512}, {"file_name": "ADE_test_00001764.jpg", "width": 683, "id": 23883, "height": 512}, {"file_name": "ADE_test_00001765.jpg", "width": 512, "id": 23884, "height": 716}, {"file_name": "ADE_test_00001766.jpg", "width": 910, "id": 23885, "height": 512}, {"file_name": "ADE_test_00001767.jpg", "width": 683, "id": 23886, "height": 512}, {"file_name": "ADE_test_00001769.jpg", "width": 512, "id": 23887, "height": 768}, {"file_name": "ADE_test_00001770.jpg", "width": 771, "id": 23888, "height": 512}, {"file_name": "ADE_test_00001771.jpg", "width": 512, "id": 23889, "height": 763}, {"file_name": "ADE_test_00001772.jpg", "width": 512, "id": 23890, "height": 768}, {"file_name": "ADE_test_00001773.jpg", "width": 683, "id": 23891, "height": 512}, {"file_name": "ADE_test_00001774.jpg", "width": 768, "id": 23892, "height": 512}, {"file_name": "ADE_test_00001775.jpg", "width": 512, "id": 23893, "height": 683}, {"file_name": "ADE_test_00001776.jpg", "width": 768, "id": 23894, "height": 512}, {"file_name": "ADE_test_00001777.jpg", "width": 512, "id": 23895, "height": 764}, {"file_name": "ADE_test_00001778.jpg", "width": 512, "id": 23896, "height": 683}, {"file_name": "ADE_test_00001779.jpg", "width": 512, "id": 23897, "height": 771}, {"file_name": "ADE_test_00001780.jpg", "width": 683, "id": 23898, "height": 512}, {"file_name": "ADE_test_00001781.jpg", "width": 586, "id": 23899, "height": 512}, {"file_name": "ADE_test_00001782.jpg", "width": 512, "id": 23900, "height": 683}, {"file_name": "ADE_test_00001783.jpg", "width": 512, "id": 23901, "height": 796}, {"file_name": "ADE_test_00001784.jpg", "width": 683, "id": 23902, "height": 512}, {"file_name": "ADE_test_00001785.jpg", "width": 512, "id": 23903, "height": 683}, {"file_name": "ADE_test_00001786.jpg", "width": 910, "id": 23904, "height": 512}, {"file_name": "ADE_test_00001787.jpg", "width": 683, "id": 23905, "height": 512}, {"file_name": "ADE_test_00001788.jpg", "width": 512, "id": 23906, "height": 771}, {"file_name": "ADE_test_00001789.jpg", "width": 512, "id": 23907, "height": 684}, {"file_name": "ADE_test_00001790.jpg", "width": 519, "id": 23908, "height": 512}, {"file_name": "ADE_test_00001791.jpg", "width": 512, "id": 23909, "height": 683}, {"file_name": "ADE_test_00001792.jpg", "width": 681, "id": 23910, "height": 512}, {"file_name": "ADE_test_00001793.jpg", "width": 512, "id": 23911, "height": 771}, {"file_name": "ADE_test_00001794.jpg", "width": 512, "id": 23912, "height": 683}, {"file_name": "ADE_test_00001795.jpg", "width": 512, "id": 23913, "height": 715}, {"file_name": "ADE_test_00001796.jpg", "width": 512, "id": 23914, "height": 765}, {"file_name": "ADE_test_00001797.jpg", "width": 512, "id": 23915, "height": 640}, {"file_name": "ADE_test_00001798.jpg", "width": 512, "id": 23916, "height": 683}, {"file_name": "ADE_test_00001799.jpg", "width": 512, "id": 23917, "height": 683}, {"file_name": "ADE_test_00001800.jpg", "width": 529, "id": 23918, "height": 512}, {"file_name": "ADE_test_00001801.jpg", "width": 512, "id": 23919, "height": 550}, {"file_name": "ADE_test_00001802.jpg", "width": 512, "id": 23920, "height": 683}, {"file_name": "ADE_test_00001803.jpg", "width": 512, "id": 23921, "height": 768}, {"file_name": "ADE_test_00001804.jpg", "width": 701, "id": 23922, "height": 512}, {"file_name": "ADE_test_00001805.jpg", "width": 854, "id": 23923, "height": 512}, {"file_name": "ADE_test_00001806.jpg", "width": 683, "id": 23924, "height": 512}, {"file_name": "ADE_test_00001807.jpg", "width": 708, "id": 23925, "height": 512}, {"file_name": "ADE_test_00001808.jpg", "width": 683, "id": 23926, "height": 512}, {"file_name": "ADE_test_00001809.jpg", "width": 683, "id": 23927, "height": 512}, {"file_name": "ADE_test_00001810.jpg", "width": 683, "id": 23928, "height": 512}, {"file_name": "ADE_test_00001811.jpg", "width": 512, "id": 23929, "height": 768}, {"file_name": "ADE_test_00001812.jpg", "width": 683, "id": 23930, "height": 512}, {"file_name": "ADE_test_00001813.jpg", "width": 683, "id": 23931, "height": 512}, {"file_name": "ADE_test_00001814.jpg", "width": 768, "id": 23932, "height": 512}, {"file_name": "ADE_test_00001815.jpg", "width": 768, "id": 23933, "height": 512}, {"file_name": "ADE_test_00001816.jpg", "width": 683, "id": 23934, "height": 512}, {"file_name": "ADE_test_00001817.jpg", "width": 768, "id": 23935, "height": 512}, {"file_name": "ADE_test_00001818.jpg", "width": 512, "id": 23936, "height": 683}, {"file_name": "ADE_test_00001819.jpg", "width": 683, "id": 23937, "height": 512}, {"file_name": "ADE_test_00001820.jpg", "width": 911, "id": 23938, "height": 512}, {"file_name": "ADE_test_00001821.jpg", "width": 770, "id": 23939, "height": 512}, {"file_name": "ADE_test_00001823.jpg", "width": 683, "id": 23940, "height": 512}, {"file_name": "ADE_test_00001824.jpg", "width": 684, "id": 23941, "height": 512}, {"file_name": "ADE_test_00001825.jpg", "width": 683, "id": 23942, "height": 512}, {"file_name": "ADE_test_00001826.jpg", "width": 683, "id": 23943, "height": 512}, {"file_name": "ADE_test_00001828.jpg", "width": 683, "id": 23944, "height": 512}, {"file_name": "ADE_test_00001830.jpg", "width": 683, "id": 23945, "height": 512}, {"file_name": "ADE_test_00001831.jpg", "width": 701, "id": 23946, "height": 512}, {"file_name": "ADE_test_00001832.jpg", "width": 684, "id": 23947, "height": 512}, {"file_name": "ADE_test_00001833.jpg", "width": 683, "id": 23948, "height": 512}, {"file_name": "ADE_test_00001834.jpg", "width": 829, "id": 23949, "height": 512}, {"file_name": "ADE_test_00001835.jpg", "width": 512, "id": 23950, "height": 683}, {"file_name": "ADE_test_00001836.jpg", "width": 512, "id": 23951, "height": 640}, {"file_name": "ADE_test_00001837.jpg", "width": 512, "id": 23952, "height": 683}, {"file_name": "ADE_test_00001838.jpg", "width": 512, "id": 23953, "height": 683}, {"file_name": "ADE_test_00001839.jpg", "width": 512, "id": 23954, "height": 683}, {"file_name": "ADE_test_00001840.jpg", "width": 512, "id": 23955, "height": 765}, {"file_name": "ADE_test_00001841.jpg", "width": 1024, "id": 23956, "height": 1024}, {"file_name": "ADE_test_00001842.jpg", "width": 613, "id": 23957, "height": 512}, {"file_name": "ADE_test_00001843.jpg", "width": 683, "id": 23958, "height": 512}, {"file_name": "ADE_test_00001844.jpg", "width": 910, "id": 23959, "height": 512}, {"file_name": "ADE_test_00001845.jpg", "width": 512, "id": 23960, "height": 683}, {"file_name": "ADE_test_00001846.jpg", "width": 512, "id": 23961, "height": 768}, {"file_name": "ADE_test_00001847.jpg", "width": 512, "id": 23962, "height": 564}, {"file_name": "ADE_test_00001848.jpg", "width": 512, "id": 23963, "height": 538}, {"file_name": "ADE_test_00001849.jpg", "width": 683, "id": 23964, "height": 512}, {"file_name": "ADE_test_00001850.jpg", "width": 515, "id": 23965, "height": 512}, {"file_name": "ADE_test_00001851.jpg", "width": 771, "id": 23966, "height": 512}, {"file_name": "ADE_test_00001852.jpg", "width": 683, "id": 23967, "height": 512}, {"file_name": "ADE_test_00001853.jpg", "width": 683, "id": 23968, "height": 512}, {"file_name": "ADE_test_00001854.jpg", "width": 683, "id": 23969, "height": 512}, {"file_name": "ADE_test_00001855.jpg", "width": 512, "id": 23970, "height": 771}, {"file_name": "ADE_test_00001856.jpg", "width": 683, "id": 23971, "height": 512}, {"file_name": "ADE_test_00001857.jpg", "width": 782, "id": 23972, "height": 512}, {"file_name": "ADE_test_00001858.jpg", "width": 683, "id": 23973, "height": 512}, {"file_name": "ADE_test_00001859.jpg", "width": 683, "id": 23974, "height": 512}, {"file_name": "ADE_test_00001860.jpg", "width": 768, "id": 23975, "height": 512}, {"file_name": "ADE_test_00001861.jpg", "width": 767, "id": 23976, "height": 512}, {"file_name": "ADE_test_00001862.jpg", "width": 768, "id": 23977, "height": 512}, {"file_name": "ADE_test_00001863.jpg", "width": 512, "id": 23978, "height": 768}, {"file_name": "ADE_test_00001864.jpg", "width": 512, "id": 23979, "height": 768}, {"file_name": "ADE_test_00001865.jpg", "width": 512, "id": 23980, "height": 683}, {"file_name": "ADE_test_00001866.jpg", "width": 512, "id": 23981, "height": 683}, {"file_name": "ADE_test_00001867.jpg", "width": 682, "id": 23982, "height": 512}, {"file_name": "ADE_test_00001869.jpg", "width": 512, "id": 23983, "height": 768}, {"file_name": "ADE_test_00001870.jpg", "width": 683, "id": 23984, "height": 512}, {"file_name": "ADE_test_00001871.jpg", "width": 512, "id": 23985, "height": 768}, {"file_name": "ADE_test_00001872.jpg", "width": 912, "id": 23986, "height": 512}, {"file_name": "ADE_test_00001873.jpg", "width": 512, "id": 23987, "height": 777}, {"file_name": "ADE_test_00001874.jpg", "width": 512, "id": 23988, "height": 768}, {"file_name": "ADE_test_00001875.jpg", "width": 678, "id": 23989, "height": 512}, {"file_name": "ADE_test_00001876.jpg", "width": 512, "id": 23990, "height": 830}, {"file_name": "ADE_test_00001877.jpg", "width": 512, "id": 23991, "height": 683}, {"file_name": "ADE_test_00001878.jpg", "width": 512, "id": 23992, "height": 683}, {"file_name": "ADE_test_00001879.jpg", "width": 512, "id": 23993, "height": 683}, {"file_name": "ADE_test_00001880.jpg", "width": 765, "id": 23994, "height": 512}, {"file_name": "ADE_test_00001881.jpg", "width": 683, "id": 23995, "height": 512}, {"file_name": "ADE_test_00001882.jpg", "width": 512, "id": 23996, "height": 683}, {"file_name": "ADE_test_00001883.jpg", "width": 768, "id": 23997, "height": 512}, {"file_name": "ADE_test_00001884.jpg", "width": 768, "id": 23998, "height": 512}, {"file_name": "ADE_test_00001885.jpg", "width": 683, "id": 23999, "height": 512}, {"file_name": "ADE_test_00001886.jpg", "width": 512, "id": 24000, "height": 592}, {"file_name": "ADE_test_00001887.jpg", "width": 512, "id": 24001, "height": 683}, {"file_name": "ADE_test_00001889.jpg", "width": 512, "id": 24002, "height": 771}, {"file_name": "ADE_test_00001890.jpg", "width": 512, "id": 24003, "height": 534}, {"file_name": "ADE_test_00001891.jpg", "width": 512, "id": 24004, "height": 768}, {"file_name": "ADE_test_00001892.jpg", "width": 512, "id": 24005, "height": 683}, {"file_name": "ADE_test_00001893.jpg", "width": 549, "id": 24006, "height": 512}, {"file_name": "ADE_test_00001894.jpg", "width": 512, "id": 24007, "height": 772}, {"file_name": "ADE_test_00001895.jpg", "width": 683, "id": 24008, "height": 512}, {"file_name": "ADE_test_00001896.jpg", "width": 512, "id": 24009, "height": 683}, {"file_name": "ADE_test_00001897.jpg", "width": 685, "id": 24010, "height": 512}, {"file_name": "ADE_test_00001898.jpg", "width": 512, "id": 24011, "height": 685}, {"file_name": "ADE_test_00001899.jpg", "width": 512, "id": 24012, "height": 767}, {"file_name": "ADE_test_00001900.jpg", "width": 512, "id": 24013, "height": 683}, {"file_name": "ADE_test_00001901.jpg", "width": 683, "id": 24014, "height": 512}, {"file_name": "ADE_test_00001902.jpg", "width": 512, "id": 24015, "height": 768}, {"file_name": "ADE_test_00001903.jpg", "width": 771, "id": 24016, "height": 512}, {"file_name": "ADE_test_00001904.jpg", "width": 512, "id": 24017, "height": 683}, {"file_name": "ADE_test_00001905.jpg", "width": 512, "id": 24018, "height": 768}, {"file_name": "ADE_test_00001906.jpg", "width": 512, "id": 24019, "height": 683}, {"file_name": "ADE_test_00001907.jpg", "width": 683, "id": 24020, "height": 512}, {"file_name": "ADE_test_00001908.jpg", "width": 512, "id": 24021, "height": 683}, {"file_name": "ADE_test_00001909.jpg", "width": 683, "id": 24022, "height": 512}, {"file_name": "ADE_test_00001911.jpg", "width": 512, "id": 24023, "height": 683}, {"file_name": "ADE_test_00001912.jpg", "width": 533, "id": 24024, "height": 512}, {"file_name": "ADE_test_00001913.jpg", "width": 683, "id": 24025, "height": 512}, {"file_name": "ADE_test_00001914.jpg", "width": 512, "id": 24026, "height": 683}, {"file_name": "ADE_test_00001915.jpg", "width": 512, "id": 24027, "height": 683}, {"file_name": "ADE_test_00001916.jpg", "width": 512, "id": 24028, "height": 771}, {"file_name": "ADE_test_00001917.jpg", "width": 512, "id": 24029, "height": 526}, {"file_name": "ADE_test_00001918.jpg", "width": 685, "id": 24030, "height": 512}, {"file_name": "ADE_test_00001919.jpg", "width": 512, "id": 24031, "height": 765}, {"file_name": "ADE_test_00001920.jpg", "width": 512, "id": 24032, "height": 768}, {"file_name": "ADE_test_00001921.jpg", "width": 768, "id": 24033, "height": 512}, {"file_name": "ADE_test_00001922.jpg", "width": 513, "id": 24034, "height": 512}, {"file_name": "ADE_test_00001923.jpg", "width": 512, "id": 24035, "height": 768}, {"file_name": "ADE_test_00001924.jpg", "width": 629, "id": 24036, "height": 512}, {"file_name": "ADE_test_00001925.jpg", "width": 512, "id": 24037, "height": 683}, {"file_name": "ADE_test_00001926.jpg", "width": 692, "id": 24038, "height": 512}, {"file_name": "ADE_test_00001927.jpg", "width": 512, "id": 24039, "height": 771}, {"file_name": "ADE_test_00001928.jpg", "width": 683, "id": 24040, "height": 512}, {"file_name": "ADE_test_00001929.jpg", "width": 512, "id": 24041, "height": 683}, {"file_name": "ADE_test_00001930.jpg", "width": 512, "id": 24042, "height": 771}, {"file_name": "ADE_test_00001931.jpg", "width": 512, "id": 24043, "height": 768}, {"file_name": "ADE_test_00001932.jpg", "width": 512, "id": 24044, "height": 683}, {"file_name": "ADE_test_00001933.jpg", "width": 512, "id": 24045, "height": 668}, {"file_name": "ADE_test_00001934.jpg", "width": 512, "id": 24046, "height": 683}, {"file_name": "ADE_test_00001935.jpg", "width": 512, "id": 24047, "height": 768}, {"file_name": "ADE_test_00001936.jpg", "width": 517, "id": 24048, "height": 512}, {"file_name": "ADE_test_00001937.jpg", "width": 512, "id": 24049, "height": 768}, {"file_name": "ADE_test_00001938.jpg", "width": 512, "id": 24050, "height": 768}, {"file_name": "ADE_test_00001939.jpg", "width": 512, "id": 24051, "height": 683}, {"file_name": "ADE_test_00001940.jpg", "width": 731, "id": 24052, "height": 512}, {"file_name": "ADE_test_00001941.jpg", "width": 512, "id": 24053, "height": 683}, {"file_name": "ADE_test_00001942.jpg", "width": 512, "id": 24054, "height": 683}, {"file_name": "ADE_test_00001943.jpg", "width": 683, "id": 24055, "height": 512}, {"file_name": "ADE_test_00001944.jpg", "width": 683, "id": 24056, "height": 512}, {"file_name": "ADE_test_00001945.jpg", "width": 512, "id": 24057, "height": 683}, {"file_name": "ADE_test_00001946.jpg", "width": 765, "id": 24058, "height": 512}, {"file_name": "ADE_test_00001947.jpg", "width": 772, "id": 24059, "height": 512}, {"file_name": "ADE_test_00001949.jpg", "width": 767, "id": 24060, "height": 512}, {"file_name": "ADE_test_00001950.jpg", "width": 587, "id": 24061, "height": 512}, {"file_name": "ADE_test_00001951.jpg", "width": 768, "id": 24062, "height": 512}, {"file_name": "ADE_test_00001952.jpg", "width": 786, "id": 24063, "height": 512}, {"file_name": "ADE_test_00001953.jpg", "width": 683, "id": 24064, "height": 512}, {"file_name": "ADE_test_00001954.jpg", "width": 683, "id": 24065, "height": 512}, {"file_name": "ADE_test_00001955.jpg", "width": 512, "id": 24066, "height": 683}, {"file_name": "ADE_test_00001956.jpg", "width": 910, "id": 24067, "height": 512}, {"file_name": "ADE_test_00001957.jpg", "width": 512, "id": 24068, "height": 660}, {"file_name": "ADE_test_00001958.jpg", "width": 739, "id": 24069, "height": 512}, {"file_name": "ADE_test_00001959.jpg", "width": 512, "id": 24070, "height": 771}, {"file_name": "ADE_test_00001960.jpg", "width": 512, "id": 24071, "height": 768}, {"file_name": "ADE_test_00001961.jpg", "width": 683, "id": 24072, "height": 512}, {"file_name": "ADE_test_00001962.jpg", "width": 512, "id": 24073, "height": 752}, {"file_name": "ADE_test_00001964.jpg", "width": 512, "id": 24074, "height": 683}, {"file_name": "ADE_test_00001965.jpg", "width": 512, "id": 24075, "height": 683}, {"file_name": "ADE_test_00001966.jpg", "width": 768, "id": 24076, "height": 512}, {"file_name": "ADE_test_00001967.jpg", "width": 512, "id": 24077, "height": 683}, {"file_name": "ADE_test_00001968.jpg", "width": 683, "id": 24078, "height": 512}, {"file_name": "ADE_test_00001969.jpg", "width": 749, "id": 24079, "height": 512}, {"file_name": "ADE_test_00001970.jpg", "width": 512, "id": 24080, "height": 685}, {"file_name": "ADE_test_00001971.jpg", "width": 512, "id": 24081, "height": 717}, {"file_name": "ADE_test_00001972.jpg", "width": 643, "id": 24082, "height": 512}, {"file_name": "ADE_test_00001973.jpg", "width": 512, "id": 24083, "height": 815}, {"file_name": "ADE_test_00001974.jpg", "width": 512, "id": 24084, "height": 683}, {"file_name": "ADE_test_00001975.jpg", "width": 512, "id": 24085, "height": 768}, {"file_name": "ADE_test_00001976.jpg", "width": 768, "id": 24086, "height": 512}, {"file_name": "ADE_test_00001977.jpg", "width": 512, "id": 24087, "height": 683}, {"file_name": "ADE_test_00001978.jpg", "width": 512, "id": 24088, "height": 685}, {"file_name": "ADE_test_00001979.jpg", "width": 686, "id": 24089, "height": 512}, {"file_name": "ADE_test_00001981.jpg", "width": 512, "id": 24090, "height": 683}, {"file_name": "ADE_test_00001982.jpg", "width": 512, "id": 24091, "height": 683}, {"file_name": "ADE_test_00001983.jpg", "width": 512, "id": 24092, "height": 683}, {"file_name": "ADE_test_00001984.jpg", "width": 771, "id": 24093, "height": 512}, {"file_name": "ADE_test_00001985.jpg", "width": 1024, "id": 24094, "height": 1024}, {"file_name": "ADE_test_00001986.jpg", "width": 695, "id": 24095, "height": 512}, {"file_name": "ADE_test_00001987.jpg", "width": 512, "id": 24096, "height": 684}, {"file_name": "ADE_test_00001988.jpg", "width": 1024, "id": 24097, "height": 1024}, {"file_name": "ADE_test_00001989.jpg", "width": 512, "id": 24098, "height": 683}, {"file_name": "ADE_test_00001990.jpg", "width": 512, "id": 24099, "height": 770}, {"file_name": "ADE_test_00001991.jpg", "width": 512, "id": 24100, "height": 683}, {"file_name": "ADE_test_00001992.jpg", "width": 512, "id": 24101, "height": 683}, {"file_name": "ADE_test_00001993.jpg", "width": 512, "id": 24102, "height": 768}, {"file_name": "ADE_test_00001994.jpg", "width": 512, "id": 24103, "height": 701}, {"file_name": "ADE_test_00001995.jpg", "width": 512, "id": 24104, "height": 770}, {"file_name": "ADE_test_00001996.jpg", "width": 931, "id": 24105, "height": 512}, {"file_name": "ADE_test_00001997.jpg", "width": 512, "id": 24106, "height": 682}, {"file_name": "ADE_test_00001998.jpg", "width": 683, "id": 24107, "height": 512}, {"file_name": "ADE_test_00001999.jpg", "width": 683, "id": 24108, "height": 512}, {"file_name": "ADE_test_00002001.jpg", "width": 1024, "id": 24109, "height": 1024}, {"file_name": "ADE_test_00002002.jpg", "width": 512, "id": 24110, "height": 683}, {"file_name": "ADE_test_00002003.jpg", "width": 512, "id": 24111, "height": 766}, {"file_name": "ADE_test_00002004.jpg", "width": 512, "id": 24112, "height": 683}, {"file_name": "ADE_test_00002005.jpg", "width": 512, "id": 24113, "height": 768}, {"file_name": "ADE_test_00002006.jpg", "width": 864, "id": 24114, "height": 864}, {"file_name": "ADE_test_00002007.jpg", "width": 512, "id": 24115, "height": 768}, {"file_name": "ADE_test_00002008.jpg", "width": 512, "id": 24116, "height": 771}, {"file_name": "ADE_test_00002009.jpg", "width": 512, "id": 24117, "height": 768}, {"file_name": "ADE_test_00002010.jpg", "width": 512, "id": 24118, "height": 770}, {"file_name": "ADE_test_00002012.jpg", "width": 512, "id": 24119, "height": 768}, {"file_name": "ADE_test_00002013.jpg", "width": 768, "id": 24120, "height": 512}, {"file_name": "ADE_test_00002014.jpg", "width": 515, "id": 24121, "height": 512}, {"file_name": "ADE_test_00002015.jpg", "width": 512, "id": 24122, "height": 839}, {"file_name": "ADE_test_00002016.jpg", "width": 819, "id": 24123, "height": 512}, {"file_name": "ADE_test_00002017.jpg", "width": 1024, "id": 24124, "height": 1024}, {"file_name": "ADE_test_00002018.jpg", "width": 512, "id": 24125, "height": 683}, {"file_name": "ADE_test_00002019.jpg", "width": 768, "id": 24126, "height": 512}, {"file_name": "ADE_test_00002020.jpg", "width": 683, "id": 24127, "height": 512}, {"file_name": "ADE_test_00002021.jpg", "width": 608, "id": 24128, "height": 512}, {"file_name": "ADE_test_00002022.jpg", "width": 683, "id": 24129, "height": 512}, {"file_name": "ADE_test_00002023.jpg", "width": 760, "id": 24130, "height": 512}, {"file_name": "ADE_test_00002024.jpg", "width": 1024, "id": 24131, "height": 1024}, {"file_name": "ADE_test_00002026.jpg", "width": 776, "id": 24132, "height": 512}, {"file_name": "ADE_test_00002027.jpg", "width": 582, "id": 24133, "height": 512}, {"file_name": "ADE_test_00002028.jpg", "width": 512, "id": 24134, "height": 683}, {"file_name": "ADE_test_00002029.jpg", "width": 512, "id": 24135, "height": 683}, {"file_name": "ADE_test_00002030.jpg", "width": 512, "id": 24136, "height": 761}, {"file_name": "ADE_test_00002031.jpg", "width": 683, "id": 24137, "height": 512}, {"file_name": "ADE_test_00002032.jpg", "width": 1024, "id": 24138, "height": 1024}, {"file_name": "ADE_test_00002033.jpg", "width": 512, "id": 24139, "height": 683}, {"file_name": "ADE_test_00002034.jpg", "width": 2000, "id": 24140, "height": 440}, {"file_name": "ADE_test_00002035.jpg", "width": 512, "id": 24141, "height": 729}, {"file_name": "ADE_test_00002036.jpg", "width": 512, "id": 24142, "height": 706}, {"file_name": "ADE_test_00002037.jpg", "width": 512, "id": 24143, "height": 577}, {"file_name": "ADE_test_00002038.jpg", "width": 643, "id": 24144, "height": 512}, {"file_name": "ADE_test_00002039.jpg", "width": 683, "id": 24145, "height": 512}, {"file_name": "ADE_test_00002040.jpg", "width": 512, "id": 24146, "height": 640}, {"file_name": "ADE_test_00002041.jpg", "width": 594, "id": 24147, "height": 512}, {"file_name": "ADE_test_00002042.jpg", "width": 512, "id": 24148, "height": 768}, {"file_name": "ADE_test_00002043.jpg", "width": 512, "id": 24149, "height": 560}, {"file_name": "ADE_test_00002044.jpg", "width": 512, "id": 24150, "height": 715}, {"file_name": "ADE_test_00002045.jpg", "width": 512, "id": 24151, "height": 565}, {"file_name": "ADE_test_00002046.jpg", "width": 512, "id": 24152, "height": 683}, {"file_name": "ADE_test_00002047.jpg", "width": 512, "id": 24153, "height": 764}, {"file_name": "ADE_test_00002048.jpg", "width": 512, "id": 24154, "height": 683}, {"file_name": "ADE_test_00002049.jpg", "width": 512, "id": 24155, "height": 675}, {"file_name": "ADE_test_00002050.jpg", "width": 512, "id": 24156, "height": 758}, {"file_name": "ADE_test_00002051.jpg", "width": 512, "id": 24157, "height": 765}, {"file_name": "ADE_test_00002052.jpg", "width": 771, "id": 24158, "height": 512}, {"file_name": "ADE_test_00002053.jpg", "width": 512, "id": 24159, "height": 683}, {"file_name": "ADE_test_00002054.jpg", "width": 512, "id": 24160, "height": 683}, {"file_name": "ADE_test_00002055.jpg", "width": 683, "id": 24161, "height": 512}, {"file_name": "ADE_test_00002056.jpg", "width": 512, "id": 24162, "height": 768}, {"file_name": "ADE_test_00002057.jpg", "width": 512, "id": 24163, "height": 683}, {"file_name": "ADE_test_00002058.jpg", "width": 512, "id": 24164, "height": 682}, {"file_name": "ADE_test_00002059.jpg", "width": 512, "id": 24165, "height": 725}, {"file_name": "ADE_test_00002060.jpg", "width": 512, "id": 24166, "height": 748}, {"file_name": "ADE_test_00002061.jpg", "width": 512, "id": 24167, "height": 683}, {"file_name": "ADE_test_00002062.jpg", "width": 512, "id": 24168, "height": 770}, {"file_name": "ADE_test_00002063.jpg", "width": 512, "id": 24169, "height": 683}, {"file_name": "ADE_test_00002064.jpg", "width": 512, "id": 24170, "height": 683}, {"file_name": "ADE_test_00002065.jpg", "width": 512, "id": 24171, "height": 768}, {"file_name": "ADE_test_00002066.jpg", "width": 512, "id": 24172, "height": 773}, {"file_name": "ADE_test_00002067.jpg", "width": 768, "id": 24173, "height": 512}, {"file_name": "ADE_test_00002068.jpg", "width": 683, "id": 24174, "height": 512}, {"file_name": "ADE_test_00002069.jpg", "width": 653, "id": 24175, "height": 512}, {"file_name": "ADE_test_00002070.jpg", "width": 683, "id": 24176, "height": 512}, {"file_name": "ADE_test_00002071.jpg", "width": 512, "id": 24177, "height": 640}, {"file_name": "ADE_test_00002072.jpg", "width": 512, "id": 24178, "height": 683}, {"file_name": "ADE_test_00002073.jpg", "width": 683, "id": 24179, "height": 512}, {"file_name": "ADE_test_00002074.jpg", "width": 683, "id": 24180, "height": 512}, {"file_name": "ADE_test_00002075.jpg", "width": 683, "id": 24181, "height": 512}, {"file_name": "ADE_test_00002076.jpg", "width": 512, "id": 24182, "height": 768}, {"file_name": "ADE_test_00002077.jpg", "width": 512, "id": 24183, "height": 683}, {"file_name": "ADE_test_00002078.jpg", "width": 770, "id": 24184, "height": 512}, {"file_name": "ADE_test_00002081.jpg", "width": 512, "id": 24185, "height": 770}, {"file_name": "ADE_test_00002082.jpg", "width": 683, "id": 24186, "height": 512}, {"file_name": "ADE_test_00002083.jpg", "width": 512, "id": 24187, "height": 771}, {"file_name": "ADE_test_00002084.jpg", "width": 623, "id": 24188, "height": 512}, {"file_name": "ADE_test_00002085.jpg", "width": 996, "id": 24189, "height": 512}, {"file_name": "ADE_test_00002086.jpg", "width": 512, "id": 24190, "height": 768}, {"file_name": "ADE_test_00002087.jpg", "width": 512, "id": 24191, "height": 533}, {"file_name": "ADE_test_00002088.jpg", "width": 512, "id": 24192, "height": 771}, {"file_name": "ADE_test_00002089.jpg", "width": 512, "id": 24193, "height": 771}, {"file_name": "ADE_test_00002090.jpg", "width": 512, "id": 24194, "height": 855}, {"file_name": "ADE_test_00002091.jpg", "width": 683, "id": 24195, "height": 512}, {"file_name": "ADE_test_00002092.jpg", "width": 512, "id": 24196, "height": 575}, {"file_name": "ADE_test_00002093.jpg", "width": 512, "id": 24197, "height": 640}, {"file_name": "ADE_test_00002094.jpg", "width": 683, "id": 24198, "height": 512}, {"file_name": "ADE_test_00002095.jpg", "width": 683, "id": 24199, "height": 512}, {"file_name": "ADE_test_00002096.jpg", "width": 512, "id": 24200, "height": 770}, {"file_name": "ADE_test_00002098.jpg", "width": 683, "id": 24201, "height": 512}, {"file_name": "ADE_test_00002099.jpg", "width": 512, "id": 24202, "height": 768}, {"file_name": "ADE_test_00002100.jpg", "width": 1224, "id": 24203, "height": 1224}, {"file_name": "ADE_test_00002101.jpg", "width": 512, "id": 24204, "height": 768}, {"file_name": "ADE_test_00002102.jpg", "width": 512, "id": 24205, "height": 531}, {"file_name": "ADE_test_00002103.jpg", "width": 910, "id": 24206, "height": 512}, {"file_name": "ADE_test_00002104.jpg", "width": 736, "id": 24207, "height": 512}, {"file_name": "ADE_test_00002105.jpg", "width": 512, "id": 24208, "height": 683}, {"file_name": "ADE_test_00002106.jpg", "width": 512, "id": 24209, "height": 790}, {"file_name": "ADE_test_00002107.jpg", "width": 512, "id": 24210, "height": 821}, {"file_name": "ADE_test_00002108.jpg", "width": 512, "id": 24211, "height": 683}, {"file_name": "ADE_test_00002109.jpg", "width": 640, "id": 24212, "height": 512}, {"file_name": "ADE_test_00002110.jpg", "width": 683, "id": 24213, "height": 512}, {"file_name": "ADE_test_00002112.jpg", "width": 683, "id": 24214, "height": 512}, {"file_name": "ADE_test_00002113.jpg", "width": 683, "id": 24215, "height": 512}, {"file_name": "ADE_test_00002114.jpg", "width": 683, "id": 24216, "height": 512}, {"file_name": "ADE_test_00002115.jpg", "width": 683, "id": 24217, "height": 512}, {"file_name": "ADE_test_00002116.jpg", "width": 768, "id": 24218, "height": 512}, {"file_name": "ADE_test_00002117.jpg", "width": 512, "id": 24219, "height": 683}, {"file_name": "ADE_test_00002118.jpg", "width": 683, "id": 24220, "height": 512}, {"file_name": "ADE_test_00002119.jpg", "width": 512, "id": 24221, "height": 632}, {"file_name": "ADE_test_00002120.jpg", "width": 703, "id": 24222, "height": 512}, {"file_name": "ADE_test_00002122.jpg", "width": 855, "id": 24223, "height": 512}, {"file_name": "ADE_test_00002123.jpg", "width": 850, "id": 24224, "height": 850}, {"file_name": "ADE_test_00002124.jpg", "width": 772, "id": 24225, "height": 512}, {"file_name": "ADE_test_00002125.jpg", "width": 683, "id": 24226, "height": 512}, {"file_name": "ADE_test_00002126.jpg", "width": 768, "id": 24227, "height": 512}, {"file_name": "ADE_test_00002127.jpg", "width": 512, "id": 24228, "height": 768}, {"file_name": "ADE_test_00002128.jpg", "width": 512, "id": 24229, "height": 683}, {"file_name": "ADE_test_00002129.jpg", "width": 683, "id": 24230, "height": 512}, {"file_name": "ADE_test_00002130.jpg", "width": 512, "id": 24231, "height": 582}, {"file_name": "ADE_test_00002131.jpg", "width": 768, "id": 24232, "height": 512}, {"file_name": "ADE_test_00002132.jpg", "width": 512, "id": 24233, "height": 683}, {"file_name": "ADE_test_00002134.jpg", "width": 512, "id": 24234, "height": 769}, {"file_name": "ADE_test_00002135.jpg", "width": 512, "id": 24235, "height": 783}, {"file_name": "ADE_test_00002136.jpg", "width": 512, "id": 24236, "height": 768}, {"file_name": "ADE_test_00002137.jpg", "width": 683, "id": 24237, "height": 512}, {"file_name": "ADE_test_00002138.jpg", "width": 763, "id": 24238, "height": 512}, {"file_name": "ADE_test_00002139.jpg", "width": 512, "id": 24239, "height": 770}, {"file_name": "ADE_test_00002140.jpg", "width": 512, "id": 24240, "height": 768}, {"file_name": "ADE_test_00002141.jpg", "width": 910, "id": 24241, "height": 512}, {"file_name": "ADE_test_00002142.jpg", "width": 512, "id": 24242, "height": 716}, {"file_name": "ADE_test_00002143.jpg", "width": 683, "id": 24243, "height": 512}, {"file_name": "ADE_test_00002144.jpg", "width": 512, "id": 24244, "height": 774}, {"file_name": "ADE_test_00002145.jpg", "width": 512, "id": 24245, "height": 659}, {"file_name": "ADE_test_00002146.jpg", "width": 512, "id": 24246, "height": 683}, {"file_name": "ADE_test_00002147.jpg", "width": 512, "id": 24247, "height": 683}, {"file_name": "ADE_test_00002148.jpg", "width": 683, "id": 24248, "height": 512}, {"file_name": "ADE_test_00002149.jpg", "width": 683, "id": 24249, "height": 512}, {"file_name": "ADE_test_00002150.jpg", "width": 683, "id": 24250, "height": 512}, {"file_name": "ADE_test_00002151.jpg", "width": 625, "id": 24251, "height": 512}, {"file_name": "ADE_test_00002152.jpg", "width": 683, "id": 24252, "height": 512}, {"file_name": "ADE_test_00002153.jpg", "width": 512, "id": 24253, "height": 681}, {"file_name": "ADE_test_00002154.jpg", "width": 512, "id": 24254, "height": 814}, {"file_name": "ADE_test_00002155.jpg", "width": 512, "id": 24255, "height": 683}, {"file_name": "ADE_test_00002156.jpg", "width": 602, "id": 24256, "height": 512}, {"file_name": "ADE_test_00002157.jpg", "width": 512, "id": 24257, "height": 683}, {"file_name": "ADE_test_00002158.jpg", "width": 683, "id": 24258, "height": 512}, {"file_name": "ADE_test_00002159.jpg", "width": 512, "id": 24259, "height": 765}, {"file_name": "ADE_test_00002160.jpg", "width": 512, "id": 24260, "height": 768}, {"file_name": "ADE_test_00002161.jpg", "width": 512, "id": 24261, "height": 770}, {"file_name": "ADE_test_00002162.jpg", "width": 512, "id": 24262, "height": 683}, {"file_name": "ADE_test_00002163.jpg", "width": 512, "id": 24263, "height": 1070}, {"file_name": "ADE_test_00002164.jpg", "width": 512, "id": 24264, "height": 768}, {"file_name": "ADE_test_00002165.jpg", "width": 512, "id": 24265, "height": 768}, {"file_name": "ADE_test_00002166.jpg", "width": 512, "id": 24266, "height": 764}, {"file_name": "ADE_test_00002167.jpg", "width": 512, "id": 24267, "height": 770}, {"file_name": "ADE_test_00002168.jpg", "width": 1377, "id": 24268, "height": 512}, {"file_name": "ADE_test_00002170.jpg", "width": 512, "id": 24269, "height": 763}, {"file_name": "ADE_test_00002171.jpg", "width": 512, "id": 24270, "height": 771}, {"file_name": "ADE_test_00002172.jpg", "width": 512, "id": 24271, "height": 768}, {"file_name": "ADE_test_00002173.jpg", "width": 512, "id": 24272, "height": 683}, {"file_name": "ADE_test_00002174.jpg", "width": 512, "id": 24273, "height": 684}, {"file_name": "ADE_test_00002175.jpg", "width": 512, "id": 24274, "height": 683}, {"file_name": "ADE_test_00002176.jpg", "width": 512, "id": 24275, "height": 683}, {"file_name": "ADE_test_00002177.jpg", "width": 512, "id": 24276, "height": 771}, {"file_name": "ADE_test_00002178.jpg", "width": 512, "id": 24277, "height": 621}, {"file_name": "ADE_test_00002179.jpg", "width": 818, "id": 24278, "height": 512}, {"file_name": "ADE_test_00002180.jpg", "width": 512, "id": 24279, "height": 632}, {"file_name": "ADE_test_00002181.jpg", "width": 512, "id": 24280, "height": 683}, {"file_name": "ADE_test_00002182.jpg", "width": 683, "id": 24281, "height": 512}, {"file_name": "ADE_test_00002183.jpg", "width": 512, "id": 24282, "height": 763}, {"file_name": "ADE_test_00002184.jpg", "width": 512, "id": 24283, "height": 683}, {"file_name": "ADE_test_00002185.jpg", "width": 623, "id": 24284, "height": 512}, {"file_name": "ADE_test_00002186.jpg", "width": 512, "id": 24285, "height": 683}, {"file_name": "ADE_test_00002187.jpg", "width": 512, "id": 24286, "height": 768}, {"file_name": "ADE_test_00002188.jpg", "width": 683, "id": 24287, "height": 512}, {"file_name": "ADE_test_00002190.jpg", "width": 683, "id": 24288, "height": 512}, {"file_name": "ADE_test_00002191.jpg", "width": 683, "id": 24289, "height": 512}, {"file_name": "ADE_test_00002192.jpg", "width": 683, "id": 24290, "height": 512}, {"file_name": "ADE_test_00002193.jpg", "width": 512, "id": 24291, "height": 683}, {"file_name": "ADE_test_00002194.jpg", "width": 512, "id": 24292, "height": 770}, {"file_name": "ADE_test_00002195.jpg", "width": 512, "id": 24293, "height": 685}, {"file_name": "ADE_test_00002196.jpg", "width": 512, "id": 24294, "height": 647}, {"file_name": "ADE_test_00002197.jpg", "width": 512, "id": 24295, "height": 683}, {"file_name": "ADE_test_00002198.jpg", "width": 815, "id": 24296, "height": 512}, {"file_name": "ADE_test_00002199.jpg", "width": 795, "id": 24297, "height": 512}, {"file_name": "ADE_test_00002200.jpg", "width": 512, "id": 24298, "height": 771}, {"file_name": "ADE_test_00002201.jpg", "width": 512, "id": 24299, "height": 770}, {"file_name": "ADE_test_00002202.jpg", "width": 512, "id": 24300, "height": 542}, {"file_name": "ADE_test_00002203.jpg", "width": 571, "id": 24301, "height": 512}, {"file_name": "ADE_test_00002204.jpg", "width": 805, "id": 24302, "height": 512}, {"file_name": "ADE_test_00002205.jpg", "width": 512, "id": 24303, "height": 683}, {"file_name": "ADE_test_00002206.jpg", "width": 512, "id": 24304, "height": 715}, {"file_name": "ADE_test_00002207.jpg", "width": 512, "id": 24305, "height": 765}, {"file_name": "ADE_test_00002208.jpg", "width": 512, "id": 24306, "height": 768}, {"file_name": "ADE_test_00002209.jpg", "width": 512, "id": 24307, "height": 683}, {"file_name": "ADE_test_00002210.jpg", "width": 683, "id": 24308, "height": 512}, {"file_name": "ADE_test_00002211.jpg", "width": 683, "id": 24309, "height": 512}, {"file_name": "ADE_test_00002212.jpg", "width": 512, "id": 24310, "height": 769}, {"file_name": "ADE_test_00002213.jpg", "width": 512, "id": 24311, "height": 611}, {"file_name": "ADE_test_00002214.jpg", "width": 770, "id": 24312, "height": 512}, {"file_name": "ADE_test_00002215.jpg", "width": 512, "id": 24313, "height": 683}, {"file_name": "ADE_test_00002216.jpg", "width": 512, "id": 24314, "height": 683}, {"file_name": "ADE_test_00002217.jpg", "width": 512, "id": 24315, "height": 683}, {"file_name": "ADE_test_00002218.jpg", "width": 512, "id": 24316, "height": 683}, {"file_name": "ADE_test_00002219.jpg", "width": 512, "id": 24317, "height": 683}, {"file_name": "ADE_test_00002220.jpg", "width": 512, "id": 24318, "height": 683}, {"file_name": "ADE_test_00002221.jpg", "width": 512, "id": 24319, "height": 683}, {"file_name": "ADE_test_00002222.jpg", "width": 683, "id": 24320, "height": 512}, {"file_name": "ADE_test_00002223.jpg", "width": 683, "id": 24321, "height": 512}, {"file_name": "ADE_test_00002224.jpg", "width": 512, "id": 24322, "height": 683}, {"file_name": "ADE_test_00002225.jpg", "width": 512, "id": 24323, "height": 768}, {"file_name": "ADE_test_00002226.jpg", "width": 683, "id": 24324, "height": 512}, {"file_name": "ADE_test_00002227.jpg", "width": 512, "id": 24325, "height": 768}, {"file_name": "ADE_test_00002228.jpg", "width": 574, "id": 24326, "height": 512}, {"file_name": "ADE_test_00002229.jpg", "width": 512, "id": 24327, "height": 768}, {"file_name": "ADE_test_00002230.jpg", "width": 512, "id": 24328, "height": 765}, {"file_name": "ADE_test_00002231.jpg", "width": 512, "id": 24329, "height": 768}, {"file_name": "ADE_test_00002232.jpg", "width": 512, "id": 24330, "height": 764}, {"file_name": "ADE_test_00002233.jpg", "width": 512, "id": 24331, "height": 770}, {"file_name": "ADE_test_00002234.jpg", "width": 512, "id": 24332, "height": 681}, {"file_name": "ADE_test_00002235.jpg", "width": 512, "id": 24333, "height": 768}, {"file_name": "ADE_test_00002236.jpg", "width": 512, "id": 24334, "height": 683}, {"file_name": "ADE_test_00002237.jpg", "width": 512, "id": 24335, "height": 683}, {"file_name": "ADE_test_00002238.jpg", "width": 683, "id": 24336, "height": 512}, {"file_name": "ADE_test_00002239.jpg", "width": 512, "id": 24337, "height": 683}, {"file_name": "ADE_test_00002240.jpg", "width": 512, "id": 24338, "height": 765}, {"file_name": "ADE_test_00002241.jpg", "width": 512, "id": 24339, "height": 683}, {"file_name": "ADE_test_00002242.jpg", "width": 512, "id": 24340, "height": 683}, {"file_name": "ADE_test_00002243.jpg", "width": 753, "id": 24341, "height": 512}, {"file_name": "ADE_test_00002244.jpg", "width": 512, "id": 24342, "height": 814}, {"file_name": "ADE_test_00002245.jpg", "width": 512, "id": 24343, "height": 683}, {"file_name": "ADE_test_00002246.jpg", "width": 683, "id": 24344, "height": 512}, {"file_name": "ADE_test_00002247.jpg", "width": 512, "id": 24345, "height": 593}, {"file_name": "ADE_test_00002248.jpg", "width": 512, "id": 24346, "height": 683}, {"file_name": "ADE_test_00002249.jpg", "width": 512, "id": 24347, "height": 683}, {"file_name": "ADE_test_00002250.jpg", "width": 512, "id": 24348, "height": 910}, {"file_name": "ADE_test_00002251.jpg", "width": 512, "id": 24349, "height": 765}, {"file_name": "ADE_test_00002252.jpg", "width": 512, "id": 24350, "height": 684}, {"file_name": "ADE_test_00002253.jpg", "width": 512, "id": 24351, "height": 768}, {"file_name": "ADE_test_00002254.jpg", "width": 512, "id": 24352, "height": 632}, {"file_name": "ADE_test_00002255.jpg", "width": 683, "id": 24353, "height": 512}, {"file_name": "ADE_test_00002256.jpg", "width": 686, "id": 24354, "height": 512}, {"file_name": "ADE_test_00002257.jpg", "width": 512, "id": 24355, "height": 683}, {"file_name": "ADE_test_00002258.jpg", "width": 512, "id": 24356, "height": 683}, {"file_name": "ADE_test_00002260.jpg", "width": 769, "id": 24357, "height": 512}, {"file_name": "ADE_test_00002261.jpg", "width": 512, "id": 24358, "height": 690}, {"file_name": "ADE_test_00002262.jpg", "width": 736, "id": 24359, "height": 512}, {"file_name": "ADE_test_00002263.jpg", "width": 701, "id": 24360, "height": 512}, {"file_name": "ADE_test_00002264.jpg", "width": 683, "id": 24361, "height": 512}, {"file_name": "ADE_test_00002265.jpg", "width": 683, "id": 24362, "height": 512}, {"file_name": "ADE_test_00002266.jpg", "width": 683, "id": 24363, "height": 512}, {"file_name": "ADE_test_00002267.jpg", "width": 683, "id": 24364, "height": 512}, {"file_name": "ADE_test_00002268.jpg", "width": 722, "id": 24365, "height": 512}, {"file_name": "ADE_test_00002269.jpg", "width": 683, "id": 24366, "height": 512}, {"file_name": "ADE_test_00002270.jpg", "width": 512, "id": 24367, "height": 765}, {"file_name": "ADE_test_00002271.jpg", "width": 646, "id": 24368, "height": 512}, {"file_name": "ADE_test_00002272.jpg", "width": 512, "id": 24369, "height": 683}, {"file_name": "ADE_test_00002277.jpg", "width": 512, "id": 24370, "height": 683}, {"file_name": "ADE_test_00002278.jpg", "width": 683, "id": 24371, "height": 512}, {"file_name": "ADE_test_00002279.jpg", "width": 768, "id": 24372, "height": 512}, {"file_name": "ADE_test_00002280.jpg", "width": 683, "id": 24373, "height": 512}, {"file_name": "ADE_test_00002281.jpg", "width": 683, "id": 24374, "height": 512}, {"file_name": "ADE_test_00002282.jpg", "width": 685, "id": 24375, "height": 512}, {"file_name": "ADE_test_00002283.jpg", "width": 512, "id": 24376, "height": 768}, {"file_name": "ADE_test_00002284.jpg", "width": 683, "id": 24377, "height": 512}, {"file_name": "ADE_test_00002285.jpg", "width": 512, "id": 24378, "height": 683}, {"file_name": "ADE_test_00002286.jpg", "width": 512, "id": 24379, "height": 770}, {"file_name": "ADE_test_00002287.jpg", "width": 683, "id": 24380, "height": 512}, {"file_name": "ADE_test_00002288.jpg", "width": 768, "id": 24381, "height": 512}, {"file_name": "ADE_test_00002289.jpg", "width": 770, "id": 24382, "height": 512}, {"file_name": "ADE_test_00002290.jpg", "width": 512, "id": 24383, "height": 720}, {"file_name": "ADE_test_00002291.jpg", "width": 683, "id": 24384, "height": 512}, {"file_name": "ADE_test_00002292.jpg", "width": 683, "id": 24385, "height": 512}, {"file_name": "ADE_test_00002293.jpg", "width": 771, "id": 24386, "height": 512}, {"file_name": "ADE_test_00002294.jpg", "width": 512, "id": 24387, "height": 768}, {"file_name": "ADE_test_00002295.jpg", "width": 1024, "id": 24388, "height": 1024}, {"file_name": "ADE_test_00002296.jpg", "width": 512, "id": 24389, "height": 683}, {"file_name": "ADE_test_00002297.jpg", "width": 512, "id": 24390, "height": 717}, {"file_name": "ADE_test_00002298.jpg", "width": 512, "id": 24391, "height": 768}, {"file_name": "ADE_test_00002299.jpg", "width": 512, "id": 24392, "height": 513}, {"file_name": "ADE_test_00002300.jpg", "width": 512, "id": 24393, "height": 768}, {"file_name": "ADE_test_00002301.jpg", "width": 512, "id": 24394, "height": 683}, {"file_name": "ADE_test_00002302.jpg", "width": 512, "id": 24395, "height": 765}, {"file_name": "ADE_test_00002303.jpg", "width": 512, "id": 24396, "height": 653}, {"file_name": "ADE_test_00002304.jpg", "width": 512, "id": 24397, "height": 682}, {"file_name": "ADE_test_00002305.jpg", "width": 512, "id": 24398, "height": 683}, {"file_name": "ADE_test_00002306.jpg", "width": 512, "id": 24399, "height": 768}, {"file_name": "ADE_test_00002307.jpg", "width": 512, "id": 24400, "height": 765}, {"file_name": "ADE_test_00002308.jpg", "width": 512, "id": 24401, "height": 768}, {"file_name": "ADE_test_00002309.jpg", "width": 512, "id": 24402, "height": 683}, {"file_name": "ADE_test_00002310.jpg", "width": 512, "id": 24403, "height": 683}, {"file_name": "ADE_test_00002311.jpg", "width": 772, "id": 24404, "height": 512}, {"file_name": "ADE_test_00002312.jpg", "width": 512, "id": 24405, "height": 683}, {"file_name": "ADE_test_00002313.jpg", "width": 512, "id": 24406, "height": 559}, {"file_name": "ADE_test_00002314.jpg", "width": 512, "id": 24407, "height": 562}, {"file_name": "ADE_test_00002315.jpg", "width": 512, "id": 24408, "height": 587}, {"file_name": "ADE_test_00002316.jpg", "width": 512, "id": 24409, "height": 768}, {"file_name": "ADE_test_00002317.jpg", "width": 629, "id": 24410, "height": 512}, {"file_name": "ADE_test_00002318.jpg", "width": 512, "id": 24411, "height": 768}, {"file_name": "ADE_test_00002319.jpg", "width": 512, "id": 24412, "height": 742}, {"file_name": "ADE_test_00002320.jpg", "width": 512, "id": 24413, "height": 768}, {"file_name": "ADE_test_00002321.jpg", "width": 512, "id": 24414, "height": 768}, {"file_name": "ADE_test_00002322.jpg", "width": 768, "id": 24415, "height": 512}, {"file_name": "ADE_test_00002323.jpg", "width": 512, "id": 24416, "height": 768}, {"file_name": "ADE_test_00002324.jpg", "width": 768, "id": 24417, "height": 512}, {"file_name": "ADE_test_00002325.jpg", "width": 683, "id": 24418, "height": 512}, {"file_name": "ADE_test_00002326.jpg", "width": 768, "id": 24419, "height": 512}, {"file_name": "ADE_test_00002327.jpg", "width": 512, "id": 24420, "height": 722}, {"file_name": "ADE_test_00002328.jpg", "width": 512, "id": 24421, "height": 656}, {"file_name": "ADE_test_00002329.jpg", "width": 512, "id": 24422, "height": 856}, {"file_name": "ADE_test_00002330.jpg", "width": 512, "id": 24423, "height": 683}, {"file_name": "ADE_test_00002331.jpg", "width": 684, "id": 24424, "height": 512}, {"file_name": "ADE_test_00002332.jpg", "width": 683, "id": 24425, "height": 512}, {"file_name": "ADE_test_00002333.jpg", "width": 512, "id": 24426, "height": 683}, {"file_name": "ADE_test_00002334.jpg", "width": 1024, "id": 24427, "height": 1024}, {"file_name": "ADE_test_00002335.jpg", "width": 512, "id": 24428, "height": 828}, {"file_name": "ADE_test_00002336.jpg", "width": 683, "id": 24429, "height": 512}, {"file_name": "ADE_test_00002337.jpg", "width": 512, "id": 24430, "height": 762}, {"file_name": "ADE_test_00002338.jpg", "width": 683, "id": 24431, "height": 512}, {"file_name": "ADE_test_00002339.jpg", "width": 512, "id": 24432, "height": 517}, {"file_name": "ADE_test_00002340.jpg", "width": 512, "id": 24433, "height": 683}, {"file_name": "ADE_test_00002341.jpg", "width": 769, "id": 24434, "height": 512}, {"file_name": "ADE_test_00002342.jpg", "width": 512, "id": 24435, "height": 724}, {"file_name": "ADE_test_00002343.jpg", "width": 512, "id": 24436, "height": 844}, {"file_name": "ADE_test_00002344.jpg", "width": 512, "id": 24437, "height": 769}, {"file_name": "ADE_test_00002345.jpg", "width": 512, "id": 24438, "height": 734}, {"file_name": "ADE_test_00002346.jpg", "width": 512, "id": 24439, "height": 683}, {"file_name": "ADE_test_00002347.jpg", "width": 1024, "id": 24440, "height": 1024}, {"file_name": "ADE_test_00002348.jpg", "width": 512, "id": 24441, "height": 584}, {"file_name": "ADE_test_00002349.jpg", "width": 512, "id": 24442, "height": 768}, {"file_name": "ADE_test_00002350.jpg", "width": 512, "id": 24443, "height": 683}, {"file_name": "ADE_test_00002351.jpg", "width": 512, "id": 24444, "height": 683}, {"file_name": "ADE_test_00002352.jpg", "width": 512, "id": 24445, "height": 610}, {"file_name": "ADE_test_00002353.jpg", "width": 512, "id": 24446, "height": 780}, {"file_name": "ADE_test_00002354.jpg", "width": 512, "id": 24447, "height": 710}, {"file_name": "ADE_test_00002355.jpg", "width": 512, "id": 24448, "height": 765}, {"file_name": "ADE_test_00002356.jpg", "width": 683, "id": 24449, "height": 512}, {"file_name": "ADE_test_00002357.jpg", "width": 512, "id": 24450, "height": 768}, {"file_name": "ADE_test_00002358.jpg", "width": 512, "id": 24451, "height": 683}, {"file_name": "ADE_test_00002359.jpg", "width": 512, "id": 24452, "height": 693}, {"file_name": "ADE_test_00002360.jpg", "width": 512, "id": 24453, "height": 770}, {"file_name": "ADE_test_00002361.jpg", "width": 512, "id": 24454, "height": 683}, {"file_name": "ADE_test_00002362.jpg", "width": 512, "id": 24455, "height": 698}, {"file_name": "ADE_test_00002363.jpg", "width": 766, "id": 24456, "height": 512}, {"file_name": "ADE_test_00002364.jpg", "width": 683, "id": 24457, "height": 512}, {"file_name": "ADE_test_00002365.jpg", "width": 512, "id": 24458, "height": 768}, {"file_name": "ADE_test_00002366.jpg", "width": 768, "id": 24459, "height": 512}, {"file_name": "ADE_test_00002367.jpg", "width": 768, "id": 24460, "height": 512}, {"file_name": "ADE_test_00002368.jpg", "width": 512, "id": 24461, "height": 683}, {"file_name": "ADE_test_00002369.jpg", "width": 683, "id": 24462, "height": 512}, {"file_name": "ADE_test_00002370.jpg", "width": 512, "id": 24463, "height": 683}, {"file_name": "ADE_test_00002371.jpg", "width": 512, "id": 24464, "height": 909}, {"file_name": "ADE_test_00002372.jpg", "width": 908, "id": 24465, "height": 512}, {"file_name": "ADE_test_00002373.jpg", "width": 512, "id": 24466, "height": 770}, {"file_name": "ADE_test_00002374.jpg", "width": 683, "id": 24467, "height": 512}, {"file_name": "ADE_test_00002375.jpg", "width": 512, "id": 24468, "height": 686}, {"file_name": "ADE_test_00002376.jpg", "width": 512, "id": 24469, "height": 768}, {"file_name": "ADE_test_00002377.jpg", "width": 512, "id": 24470, "height": 516}, {"file_name": "ADE_test_00002378.jpg", "width": 512, "id": 24471, "height": 683}, {"file_name": "ADE_test_00002379.jpg", "width": 512, "id": 24472, "height": 683}, {"file_name": "ADE_test_00002380.jpg", "width": 512, "id": 24473, "height": 682}, {"file_name": "ADE_test_00002381.jpg", "width": 803, "id": 24474, "height": 512}, {"file_name": "ADE_test_00002382.jpg", "width": 512, "id": 24475, "height": 768}, {"file_name": "ADE_test_00002383.jpg", "width": 683, "id": 24476, "height": 512}, {"file_name": "ADE_test_00002384.jpg", "width": 683, "id": 24477, "height": 512}, {"file_name": "ADE_test_00002385.jpg", "width": 512, "id": 24478, "height": 633}, {"file_name": "ADE_test_00002386.jpg", "width": 633, "id": 24479, "height": 512}, {"file_name": "ADE_test_00002387.jpg", "width": 761, "id": 24480, "height": 512}, {"file_name": "ADE_test_00002388.jpg", "width": 512, "id": 24481, "height": 683}, {"file_name": "ADE_test_00002389.jpg", "width": 804, "id": 24482, "height": 512}, {"file_name": "ADE_test_00002390.jpg", "width": 683, "id": 24483, "height": 512}, {"file_name": "ADE_test_00002391.jpg", "width": 719, "id": 24484, "height": 512}, {"file_name": "ADE_test_00002392.jpg", "width": 769, "id": 24485, "height": 512}, {"file_name": "ADE_test_00002393.jpg", "width": 512, "id": 24486, "height": 772}, {"file_name": "ADE_test_00002394.jpg", "width": 512, "id": 24487, "height": 768}, {"file_name": "ADE_test_00002395.jpg", "width": 683, "id": 24488, "height": 512}, {"file_name": "ADE_test_00002396.jpg", "width": 512, "id": 24489, "height": 770}, {"file_name": "ADE_test_00002397.jpg", "width": 512, "id": 24490, "height": 770}, {"file_name": "ADE_test_00002398.jpg", "width": 683, "id": 24491, "height": 512}, {"file_name": "ADE_test_00002399.jpg", "width": 768, "id": 24492, "height": 512}, {"file_name": "ADE_test_00002400.jpg", "width": 910, "id": 24493, "height": 512}, {"file_name": "ADE_test_00002401.jpg", "width": 1010, "id": 24494, "height": 512}, {"file_name": "ADE_test_00002402.jpg", "width": 624, "id": 24495, "height": 512}, {"file_name": "ADE_test_00002403.jpg", "width": 512, "id": 24496, "height": 683}, {"file_name": "ADE_test_00002404.jpg", "width": 769, "id": 24497, "height": 512}, {"file_name": "ADE_test_00002405.jpg", "width": 512, "id": 24498, "height": 683}, {"file_name": "ADE_test_00002406.jpg", "width": 756, "id": 24499, "height": 512}, {"file_name": "ADE_test_00002407.jpg", "width": 680, "id": 24500, "height": 512}, {"file_name": "ADE_test_00002408.jpg", "width": 680, "id": 24501, "height": 512}, {"file_name": "ADE_test_00002409.jpg", "width": 512, "id": 24502, "height": 768}, {"file_name": "ADE_test_00002410.jpg", "width": 640, "id": 24503, "height": 512}, {"file_name": "ADE_test_00002411.jpg", "width": 910, "id": 24504, "height": 512}, {"file_name": "ADE_test_00002412.jpg", "width": 1024, "id": 24505, "height": 1024}, {"file_name": "ADE_test_00002413.jpg", "width": 733, "id": 24506, "height": 512}, {"file_name": "ADE_test_00002414.jpg", "width": 512, "id": 24507, "height": 768}, {"file_name": "ADE_test_00002415.jpg", "width": 2048, "id": 24508, "height": 2048}, {"file_name": "ADE_test_00002416.jpg", "width": 512, "id": 24509, "height": 777}, {"file_name": "ADE_test_00002417.jpg", "width": 512, "id": 24510, "height": 771}, {"file_name": "ADE_test_00002418.jpg", "width": 512, "id": 24511, "height": 749}, {"file_name": "ADE_test_00002419.jpg", "width": 512, "id": 24512, "height": 692}, {"file_name": "ADE_test_00002420.jpg", "width": 512, "id": 24513, "height": 683}, {"file_name": "ADE_test_00002421.jpg", "width": 629, "id": 24514, "height": 512}, {"file_name": "ADE_test_00002422.jpg", "width": 768, "id": 24515, "height": 512}, {"file_name": "ADE_test_00002423.jpg", "width": 512, "id": 24516, "height": 633}, {"file_name": "ADE_test_00002424.jpg", "width": 512, "id": 24517, "height": 683}, {"file_name": "ADE_test_00002425.jpg", "width": 512, "id": 24518, "height": 683}, {"file_name": "ADE_test_00002426.jpg", "width": 512, "id": 24519, "height": 683}, {"file_name": "ADE_test_00002427.jpg", "width": 512, "id": 24520, "height": 765}, {"file_name": "ADE_test_00002428.jpg", "width": 512, "id": 24521, "height": 683}, {"file_name": "ADE_test_00002429.jpg", "width": 683, "id": 24522, "height": 512}, {"file_name": "ADE_test_00002430.jpg", "width": 512, "id": 24523, "height": 769}, {"file_name": "ADE_test_00002431.jpg", "width": 512, "id": 24524, "height": 768}, {"file_name": "ADE_test_00002432.jpg", "width": 683, "id": 24525, "height": 512}, {"file_name": "ADE_test_00002433.jpg", "width": 512, "id": 24526, "height": 683}, {"file_name": "ADE_test_00002434.jpg", "width": 512, "id": 24527, "height": 525}, {"file_name": "ADE_test_00002435.jpg", "width": 512, "id": 24528, "height": 770}, {"file_name": "ADE_test_00002436.jpg", "width": 512, "id": 24529, "height": 770}, {"file_name": "ADE_test_00002437.jpg", "width": 512, "id": 24530, "height": 518}, {"file_name": "ADE_test_00002438.jpg", "width": 512, "id": 24531, "height": 683}, {"file_name": "ADE_test_00002439.jpg", "width": 512, "id": 24532, "height": 632}, {"file_name": "ADE_test_00002440.jpg", "width": 512, "id": 24533, "height": 683}, {"file_name": "ADE_test_00002441.jpg", "width": 771, "id": 24534, "height": 512}, {"file_name": "ADE_test_00002442.jpg", "width": 512, "id": 24535, "height": 773}, {"file_name": "ADE_test_00002443.jpg", "width": 768, "id": 24536, "height": 512}, {"file_name": "ADE_test_00002444.jpg", "width": 512, "id": 24537, "height": 683}, {"file_name": "ADE_test_00002445.jpg", "width": 512, "id": 24538, "height": 683}, {"file_name": "ADE_test_00002446.jpg", "width": 683, "id": 24539, "height": 512}, {"file_name": "ADE_test_00002447.jpg", "width": 512, "id": 24540, "height": 771}, {"file_name": "ADE_test_00002448.jpg", "width": 512, "id": 24541, "height": 771}, {"file_name": "ADE_test_00002449.jpg", "width": 512, "id": 24542, "height": 683}, {"file_name": "ADE_test_00002450.jpg", "width": 512, "id": 24543, "height": 683}, {"file_name": "ADE_test_00002451.jpg", "width": 512, "id": 24544, "height": 698}, {"file_name": "ADE_test_00002452.jpg", "width": 512, "id": 24545, "height": 768}, {"file_name": "ADE_test_00002453.jpg", "width": 770, "id": 24546, "height": 512}, {"file_name": "ADE_test_00002454.jpg", "width": 683, "id": 24547, "height": 512}, {"file_name": "ADE_test_00002455.jpg", "width": 512, "id": 24548, "height": 683}, {"file_name": "ADE_test_00002456.jpg", "width": 682, "id": 24549, "height": 512}, {"file_name": "ADE_test_00002457.jpg", "width": 512, "id": 24550, "height": 683}, {"file_name": "ADE_test_00002458.jpg", "width": 640, "id": 24551, "height": 512}, {"file_name": "ADE_test_00002459.jpg", "width": 683, "id": 24552, "height": 512}, {"file_name": "ADE_test_00002460.jpg", "width": 640, "id": 24553, "height": 512}, {"file_name": "ADE_test_00002461.jpg", "width": 768, "id": 24554, "height": 512}, {"file_name": "ADE_test_00002462.jpg", "width": 512, "id": 24555, "height": 768}, {"file_name": "ADE_test_00002463.jpg", "width": 768, "id": 24556, "height": 512}, {"file_name": "ADE_test_00002464.jpg", "width": 512, "id": 24557, "height": 620}, {"file_name": "ADE_test_00002465.jpg", "width": 512, "id": 24558, "height": 683}, {"file_name": "ADE_test_00002466.jpg", "width": 512, "id": 24559, "height": 657}, {"file_name": "ADE_test_00002467.jpg", "width": 512, "id": 24560, "height": 768}, {"file_name": "ADE_test_00002468.jpg", "width": 512, "id": 24561, "height": 672}, {"file_name": "ADE_test_00002469.jpg", "width": 512, "id": 24562, "height": 640}, {"file_name": "ADE_test_00002470.jpg", "width": 910, "id": 24563, "height": 512}, {"file_name": "ADE_test_00002471.jpg", "width": 512, "id": 24564, "height": 770}, {"file_name": "ADE_test_00002472.jpg", "width": 512, "id": 24565, "height": 640}, {"file_name": "ADE_test_00002473.jpg", "width": 512, "id": 24566, "height": 640}, {"file_name": "ADE_test_00002474.jpg", "width": 683, "id": 24567, "height": 512}, {"file_name": "ADE_test_00002475.jpg", "width": 683, "id": 24568, "height": 512}, {"file_name": "ADE_test_00002476.jpg", "width": 512, "id": 24569, "height": 765}, {"file_name": "ADE_test_00002477.jpg", "width": 512, "id": 24570, "height": 768}, {"file_name": "ADE_test_00002478.jpg", "width": 683, "id": 24571, "height": 512}, {"file_name": "ADE_test_00002479.jpg", "width": 512, "id": 24572, "height": 683}, {"file_name": "ADE_test_00002480.jpg", "width": 512, "id": 24573, "height": 768}, {"file_name": "ADE_test_00002481.jpg", "width": 512, "id": 24574, "height": 685}, {"file_name": "ADE_test_00002482.jpg", "width": 512, "id": 24575, "height": 683}, {"file_name": "ADE_test_00002483.jpg", "width": 512, "id": 24576, "height": 768}, {"file_name": "ADE_test_00002484.jpg", "width": 512, "id": 24577, "height": 754}, {"file_name": "ADE_test_00002485.jpg", "width": 683, "id": 24578, "height": 512}, {"file_name": "ADE_test_00002486.jpg", "width": 683, "id": 24579, "height": 512}, {"file_name": "ADE_test_00002487.jpg", "width": 631, "id": 24580, "height": 512}, {"file_name": "ADE_test_00002488.jpg", "width": 683, "id": 24581, "height": 512}, {"file_name": "ADE_test_00002489.jpg", "width": 683, "id": 24582, "height": 512}, {"file_name": "ADE_test_00002490.jpg", "width": 512, "id": 24583, "height": 683}, {"file_name": "ADE_test_00002491.jpg", "width": 512, "id": 24584, "height": 765}, {"file_name": "ADE_test_00002492.jpg", "width": 680, "id": 24585, "height": 512}, {"file_name": "ADE_test_00002493.jpg", "width": 789, "id": 24586, "height": 512}, {"file_name": "ADE_test_00002494.jpg", "width": 910, "id": 24587, "height": 512}, {"file_name": "ADE_test_00002495.jpg", "width": 683, "id": 24588, "height": 512}, {"file_name": "ADE_test_00002496.jpg", "width": 683, "id": 24589, "height": 512}, {"file_name": "ADE_test_00002497.jpg", "width": 856, "id": 24590, "height": 512}, {"file_name": "ADE_test_00002498.jpg", "width": 512, "id": 24591, "height": 607}, {"file_name": "ADE_test_00002499.jpg", "width": 652, "id": 24592, "height": 512}, {"file_name": "ADE_test_00002500.jpg", "width": 683, "id": 24593, "height": 512}, {"file_name": "ADE_test_00002501.jpg", "width": 512, "id": 24594, "height": 765}, {"file_name": "ADE_test_00002502.jpg", "width": 512, "id": 24595, "height": 768}, {"file_name": "ADE_test_00002503.jpg", "width": 519, "id": 24596, "height": 512}, {"file_name": "ADE_test_00002504.jpg", "width": 751, "id": 24597, "height": 512}, {"file_name": "ADE_test_00002505.jpg", "width": 786, "id": 24598, "height": 512}, {"file_name": "ADE_test_00002506.jpg", "width": 770, "id": 24599, "height": 512}, {"file_name": "ADE_test_00002507.jpg", "width": 721, "id": 24600, "height": 512}, {"file_name": "ADE_test_00002508.jpg", "width": 683, "id": 24601, "height": 512}, {"file_name": "ADE_test_00002509.jpg", "width": 683, "id": 24602, "height": 512}, {"file_name": "ADE_test_00002510.jpg", "width": 683, "id": 24603, "height": 512}, {"file_name": "ADE_test_00002511.jpg", "width": 683, "id": 24604, "height": 512}, {"file_name": "ADE_test_00002512.jpg", "width": 512, "id": 24605, "height": 683}, {"file_name": "ADE_test_00002513.jpg", "width": 683, "id": 24606, "height": 512}, {"file_name": "ADE_test_00002514.jpg", "width": 684, "id": 24607, "height": 512}, {"file_name": "ADE_test_00002515.jpg", "width": 512, "id": 24608, "height": 773}, {"file_name": "ADE_test_00002516.jpg", "width": 512, "id": 24609, "height": 767}, {"file_name": "ADE_test_00002517.jpg", "width": 768, "id": 24610, "height": 512}, {"file_name": "ADE_test_00002518.jpg", "width": 683, "id": 24611, "height": 512}, {"file_name": "ADE_test_00002519.jpg", "width": 512, "id": 24612, "height": 787}, {"file_name": "ADE_test_00002520.jpg", "width": 512, "id": 24613, "height": 715}, {"file_name": "ADE_test_00002521.jpg", "width": 512, "id": 24614, "height": 768}, {"file_name": "ADE_test_00002522.jpg", "width": 512, "id": 24615, "height": 769}, {"file_name": "ADE_test_00002523.jpg", "width": 688, "id": 24616, "height": 512}, {"file_name": "ADE_test_00002524.jpg", "width": 683, "id": 24617, "height": 512}, {"file_name": "ADE_test_00002525.jpg", "width": 512, "id": 24618, "height": 771}, {"file_name": "ADE_test_00002526.jpg", "width": 683, "id": 24619, "height": 512}, {"file_name": "ADE_test_00002527.jpg", "width": 512, "id": 24620, "height": 524}, {"file_name": "ADE_test_00002528.jpg", "width": 512, "id": 24621, "height": 768}, {"file_name": "ADE_test_00002529.jpg", "width": 683, "id": 24622, "height": 512}, {"file_name": "ADE_test_00002530.jpg", "width": 512, "id": 24623, "height": 683}, {"file_name": "ADE_test_00002531.jpg", "width": 512, "id": 24624, "height": 683}, {"file_name": "ADE_test_00002532.jpg", "width": 512, "id": 24625, "height": 683}, {"file_name": "ADE_test_00002533.jpg", "width": 512, "id": 24626, "height": 683}, {"file_name": "ADE_test_00002534.jpg", "width": 512, "id": 24627, "height": 683}, {"file_name": "ADE_test_00002535.jpg", "width": 512, "id": 24628, "height": 682}, {"file_name": "ADE_test_00002536.jpg", "width": 512, "id": 24629, "height": 683}, {"file_name": "ADE_test_00002537.jpg", "width": 614, "id": 24630, "height": 512}, {"file_name": "ADE_test_00002538.jpg", "width": 512, "id": 24631, "height": 760}, {"file_name": "ADE_test_00002539.jpg", "width": 512, "id": 24632, "height": 770}, {"file_name": "ADE_test_00002540.jpg", "width": 512, "id": 24633, "height": 683}, {"file_name": "ADE_test_00002541.jpg", "width": 512, "id": 24634, "height": 768}, {"file_name": "ADE_test_00002542.jpg", "width": 512, "id": 24635, "height": 762}, {"file_name": "ADE_test_00002543.jpg", "width": 646, "id": 24636, "height": 512}, {"file_name": "ADE_test_00002545.jpg", "width": 512, "id": 24637, "height": 683}, {"file_name": "ADE_test_00002546.jpg", "width": 512, "id": 24638, "height": 770}, {"file_name": "ADE_test_00002547.jpg", "width": 786, "id": 24639, "height": 512}, {"file_name": "ADE_test_00002548.jpg", "width": 512, "id": 24640, "height": 770}, {"file_name": "ADE_test_00002549.jpg", "width": 750, "id": 24641, "height": 512}, {"file_name": "ADE_test_00002550.jpg", "width": 512, "id": 24642, "height": 765}, {"file_name": "ADE_test_00002551.jpg", "width": 512, "id": 24643, "height": 683}, {"file_name": "ADE_test_00002552.jpg", "width": 512, "id": 24644, "height": 683}, {"file_name": "ADE_test_00002553.jpg", "width": 683, "id": 24645, "height": 512}, {"file_name": "ADE_test_00002554.jpg", "width": 683, "id": 24646, "height": 512}, {"file_name": "ADE_test_00002555.jpg", "width": 683, "id": 24647, "height": 512}, {"file_name": "ADE_test_00002556.jpg", "width": 512, "id": 24648, "height": 768}, {"file_name": "ADE_test_00002557.jpg", "width": 512, "id": 24649, "height": 682}, {"file_name": "ADE_test_00002558.jpg", "width": 643, "id": 24650, "height": 512}, {"file_name": "ADE_test_00002559.jpg", "width": 1024, "id": 24651, "height": 1024}, {"file_name": "ADE_test_00002560.jpg", "width": 853, "id": 24652, "height": 853}, {"file_name": "ADE_test_00002561.jpg", "width": 683, "id": 24653, "height": 512}, {"file_name": "ADE_test_00002563.jpg", "width": 1024, "id": 24654, "height": 1024}, {"file_name": "ADE_test_00002564.jpg", "width": 512, "id": 24655, "height": 683}, {"file_name": "ADE_test_00002565.jpg", "width": 512, "id": 24656, "height": 768}, {"file_name": "ADE_test_00002566.jpg", "width": 683, "id": 24657, "height": 512}, {"file_name": "ADE_test_00002567.jpg", "width": 772, "id": 24658, "height": 512}, {"file_name": "ADE_test_00002568.jpg", "width": 512, "id": 24659, "height": 855}, {"file_name": "ADE_test_00002569.jpg", "width": 683, "id": 24660, "height": 512}, {"file_name": "ADE_test_00002570.jpg", "width": 683, "id": 24661, "height": 512}, {"file_name": "ADE_test_00002571.jpg", "width": 512, "id": 24662, "height": 754}, {"file_name": "ADE_test_00002572.jpg", "width": 512, "id": 24663, "height": 686}, {"file_name": "ADE_test_00002573.jpg", "width": 512, "id": 24664, "height": 770}, {"file_name": "ADE_test_00002574.jpg", "width": 683, "id": 24665, "height": 512}, {"file_name": "ADE_test_00002575.jpg", "width": 1032, "id": 24666, "height": 512}, {"file_name": "ADE_test_00002576.jpg", "width": 629, "id": 24667, "height": 512}, {"file_name": "ADE_test_00002578.jpg", "width": 768, "id": 24668, "height": 512}, {"file_name": "ADE_test_00002579.jpg", "width": 768, "id": 24669, "height": 512}, {"file_name": "ADE_test_00002580.jpg", "width": 512, "id": 24670, "height": 776}, {"file_name": "ADE_test_00002581.jpg", "width": 512, "id": 24671, "height": 683}, {"file_name": "ADE_test_00002582.jpg", "width": 512, "id": 24672, "height": 768}, {"file_name": "ADE_test_00002583.jpg", "width": 512, "id": 24673, "height": 768}, {"file_name": "ADE_test_00002584.jpg", "width": 512, "id": 24674, "height": 683}, {"file_name": "ADE_test_00002585.jpg", "width": 512, "id": 24675, "height": 683}, {"file_name": "ADE_test_00002586.jpg", "width": 512, "id": 24676, "height": 683}, {"file_name": "ADE_test_00002587.jpg", "width": 512, "id": 24677, "height": 683}, {"file_name": "ADE_test_00002588.jpg", "width": 512, "id": 24678, "height": 683}, {"file_name": "ADE_test_00002589.jpg", "width": 512, "id": 24679, "height": 683}, {"file_name": "ADE_test_00002590.jpg", "width": 512, "id": 24680, "height": 683}, {"file_name": "ADE_test_00002591.jpg", "width": 512, "id": 24681, "height": 683}, {"file_name": "ADE_test_00002592.jpg", "width": 512, "id": 24682, "height": 720}, {"file_name": "ADE_test_00002593.jpg", "width": 512, "id": 24683, "height": 768}, {"file_name": "ADE_test_00002594.jpg", "width": 512, "id": 24684, "height": 691}, {"file_name": "ADE_test_00002595.jpg", "width": 683, "id": 24685, "height": 512}, {"file_name": "ADE_test_00002596.jpg", "width": 512, "id": 24686, "height": 770}, {"file_name": "ADE_test_00002597.jpg", "width": 512, "id": 24687, "height": 768}, {"file_name": "ADE_test_00002598.jpg", "width": 512, "id": 24688, "height": 769}, {"file_name": "ADE_test_00002599.jpg", "width": 910, "id": 24689, "height": 512}, {"file_name": "ADE_test_00002600.jpg", "width": 512, "id": 24690, "height": 753}, {"file_name": "ADE_test_00002601.jpg", "width": 512, "id": 24691, "height": 683}, {"file_name": "ADE_test_00002602.jpg", "width": 512, "id": 24692, "height": 683}, {"file_name": "ADE_test_00002603.jpg", "width": 512, "id": 24693, "height": 683}, {"file_name": "ADE_test_00002605.jpg", "width": 512, "id": 24694, "height": 709}, {"file_name": "ADE_test_00002606.jpg", "width": 512, "id": 24695, "height": 717}, {"file_name": "ADE_test_00002607.jpg", "width": 512, "id": 24696, "height": 768}, {"file_name": "ADE_test_00002608.jpg", "width": 512, "id": 24697, "height": 677}, {"file_name": "ADE_test_00002609.jpg", "width": 512, "id": 24698, "height": 771}, {"file_name": "ADE_test_00002612.jpg", "width": 512, "id": 24699, "height": 686}, {"file_name": "ADE_test_00002613.jpg", "width": 768, "id": 24700, "height": 512}, {"file_name": "ADE_test_00002614.jpg", "width": 1024, "id": 24701, "height": 1024}, {"file_name": "ADE_test_00002615.jpg", "width": 512, "id": 24702, "height": 683}, {"file_name": "ADE_test_00002616.jpg", "width": 512, "id": 24703, "height": 708}, {"file_name": "ADE_test_00002617.jpg", "width": 512, "id": 24704, "height": 535}, {"file_name": "ADE_test_00002618.jpg", "width": 683, "id": 24705, "height": 512}, {"file_name": "ADE_test_00002619.jpg", "width": 512, "id": 24706, "height": 685}, {"file_name": "ADE_test_00002620.jpg", "width": 512, "id": 24707, "height": 807}, {"file_name": "ADE_test_00002621.jpg", "width": 512, "id": 24708, "height": 768}, {"file_name": "ADE_test_00002622.jpg", "width": 512, "id": 24709, "height": 683}, {"file_name": "ADE_test_00002623.jpg", "width": 512, "id": 24710, "height": 768}, {"file_name": "ADE_test_00002624.jpg", "width": 512, "id": 24711, "height": 773}, {"file_name": "ADE_test_00002625.jpg", "width": 683, "id": 24712, "height": 512}, {"file_name": "ADE_test_00002626.jpg", "width": 768, "id": 24713, "height": 512}, {"file_name": "ADE_test_00002627.jpg", "width": 512, "id": 24714, "height": 781}, {"file_name": "ADE_test_00002628.jpg", "width": 683, "id": 24715, "height": 512}, {"file_name": "ADE_test_00002629.jpg", "width": 512, "id": 24716, "height": 683}, {"file_name": "ADE_test_00002630.jpg", "width": 683, "id": 24717, "height": 512}, {"file_name": "ADE_test_00002631.jpg", "width": 771, "id": 24718, "height": 512}, {"file_name": "ADE_test_00002632.jpg", "width": 512, "id": 24719, "height": 608}, {"file_name": "ADE_test_00002633.jpg", "width": 768, "id": 24720, "height": 512}, {"file_name": "ADE_test_00002634.jpg", "width": 512, "id": 24721, "height": 603}, {"file_name": "ADE_test_00002635.jpg", "width": 512, "id": 24722, "height": 768}, {"file_name": "ADE_test_00002636.jpg", "width": 683, "id": 24723, "height": 512}, {"file_name": "ADE_test_00002637.jpg", "width": 683, "id": 24724, "height": 512}, {"file_name": "ADE_test_00002638.jpg", "width": 512, "id": 24725, "height": 764}, {"file_name": "ADE_test_00002639.jpg", "width": 512, "id": 24726, "height": 536}, {"file_name": "ADE_test_00002641.jpg", "width": 1024, "id": 24727, "height": 1024}, {"file_name": "ADE_test_00002642.jpg", "width": 512, "id": 24728, "height": 763}, {"file_name": "ADE_test_00002643.jpg", "width": 625, "id": 24729, "height": 512}, {"file_name": "ADE_test_00002644.jpg", "width": 768, "id": 24730, "height": 512}, {"file_name": "ADE_test_00002645.jpg", "width": 684, "id": 24731, "height": 512}, {"file_name": "ADE_test_00002646.jpg", "width": 768, "id": 24732, "height": 512}, {"file_name": "ADE_test_00002647.jpg", "width": 683, "id": 24733, "height": 512}, {"file_name": "ADE_test_00002648.jpg", "width": 769, "id": 24734, "height": 512}, {"file_name": "ADE_test_00002649.jpg", "width": 683, "id": 24735, "height": 512}, {"file_name": "ADE_test_00002650.jpg", "width": 512, "id": 24736, "height": 683}, {"file_name": "ADE_test_00002651.jpg", "width": 512, "id": 24737, "height": 685}, {"file_name": "ADE_test_00002652.jpg", "width": 512, "id": 24738, "height": 683}, {"file_name": "ADE_test_00002653.jpg", "width": 512, "id": 24739, "height": 683}, {"file_name": "ADE_test_00002654.jpg", "width": 500, "id": 24740, "height": 832}, {"file_name": "ADE_test_00002655.jpg", "width": 512, "id": 24741, "height": 683}, {"file_name": "ADE_test_00002656.jpg", "width": 734, "id": 24742, "height": 512}, {"file_name": "ADE_test_00002657.jpg", "width": 512, "id": 24743, "height": 724}, {"file_name": "ADE_test_00002658.jpg", "width": 912, "id": 24744, "height": 512}, {"file_name": "ADE_test_00002659.jpg", "width": 512, "id": 24745, "height": 685}, {"file_name": "ADE_test_00002660.jpg", "width": 770, "id": 24746, "height": 512}, {"file_name": "ADE_test_00002661.jpg", "width": 768, "id": 24747, "height": 512}, {"file_name": "ADE_test_00002662.jpg", "width": 643, "id": 24748, "height": 512}, {"file_name": "ADE_test_00002663.jpg", "width": 512, "id": 24749, "height": 768}, {"file_name": "ADE_test_00002664.jpg", "width": 512, "id": 24750, "height": 646}, {"file_name": "ADE_test_00002665.jpg", "width": 512, "id": 24751, "height": 654}, {"file_name": "ADE_test_00002666.jpg", "width": 512, "id": 24752, "height": 768}, {"file_name": "ADE_test_00002667.jpg", "width": 683, "id": 24753, "height": 512}, {"file_name": "ADE_test_00002668.jpg", "width": 512, "id": 24754, "height": 683}, {"file_name": "ADE_test_00002669.jpg", "width": 512, "id": 24755, "height": 768}, {"file_name": "ADE_test_00002670.jpg", "width": 512, "id": 24756, "height": 650}, {"file_name": "ADE_test_00002671.jpg", "width": 512, "id": 24757, "height": 681}, {"file_name": "ADE_test_00002672.jpg", "width": 684, "id": 24758, "height": 512}, {"file_name": "ADE_test_00002673.jpg", "width": 512, "id": 24759, "height": 683}, {"file_name": "ADE_test_00002674.jpg", "width": 512, "id": 24760, "height": 768}, {"file_name": "ADE_test_00002675.jpg", "width": 512, "id": 24761, "height": 683}, {"file_name": "ADE_test_00002676.jpg", "width": 512, "id": 24762, "height": 683}, {"file_name": "ADE_test_00002677.jpg", "width": 512, "id": 24763, "height": 683}, {"file_name": "ADE_test_00002678.jpg", "width": 512, "id": 24764, "height": 682}, {"file_name": "ADE_test_00002679.jpg", "width": 683, "id": 24765, "height": 512}, {"file_name": "ADE_test_00002680.jpg", "width": 512, "id": 24766, "height": 683}, {"file_name": "ADE_test_00002681.jpg", "width": 512, "id": 24767, "height": 683}, {"file_name": "ADE_test_00002682.jpg", "width": 512, "id": 24768, "height": 768}, {"file_name": "ADE_test_00002683.jpg", "width": 821, "id": 24769, "height": 512}, {"file_name": "ADE_test_00002684.jpg", "width": 768, "id": 24770, "height": 512}, {"file_name": "ADE_test_00002685.jpg", "width": 683, "id": 24771, "height": 512}, {"file_name": "ADE_test_00002686.jpg", "width": 683, "id": 24772, "height": 512}, {"file_name": "ADE_test_00002687.jpg", "width": 683, "id": 24773, "height": 512}, {"file_name": "ADE_test_00002688.jpg", "width": 512, "id": 24774, "height": 683}, {"file_name": "ADE_test_00002689.jpg", "width": 683, "id": 24775, "height": 512}, {"file_name": "ADE_test_00002690.jpg", "width": 783, "id": 24776, "height": 512}, {"file_name": "ADE_test_00002691.jpg", "width": 683, "id": 24777, "height": 512}, {"file_name": "ADE_test_00002692.jpg", "width": 683, "id": 24778, "height": 512}, {"file_name": "ADE_test_00002693.jpg", "width": 763, "id": 24779, "height": 512}, {"file_name": "ADE_test_00002694.jpg", "width": 512, "id": 24780, "height": 912}, {"file_name": "ADE_test_00002695.jpg", "width": 771, "id": 24781, "height": 512}, {"file_name": "ADE_test_00002696.jpg", "width": 512, "id": 24782, "height": 768}, {"file_name": "ADE_test_00002697.jpg", "width": 683, "id": 24783, "height": 512}, {"file_name": "ADE_test_00002698.jpg", "width": 512, "id": 24784, "height": 683}, {"file_name": "ADE_test_00002699.jpg", "width": 683, "id": 24785, "height": 512}, {"file_name": "ADE_test_00002700.jpg", "width": 628, "id": 24786, "height": 512}, {"file_name": "ADE_test_00002701.jpg", "width": 512, "id": 24787, "height": 731}, {"file_name": "ADE_test_00002702.jpg", "width": 512, "id": 24788, "height": 768}, {"file_name": "ADE_test_00002703.jpg", "width": 512, "id": 24789, "height": 768}, {"file_name": "ADE_test_00002704.jpg", "width": 683, "id": 24790, "height": 512}, {"file_name": "ADE_test_00002705.jpg", "width": 768, "id": 24791, "height": 512}, {"file_name": "ADE_test_00002706.jpg", "width": 683, "id": 24792, "height": 512}, {"file_name": "ADE_test_00002707.jpg", "width": 683, "id": 24793, "height": 512}, {"file_name": "ADE_test_00002708.jpg", "width": 683, "id": 24794, "height": 512}, {"file_name": "ADE_test_00002709.jpg", "width": 765, "id": 24795, "height": 512}, {"file_name": "ADE_test_00002710.jpg", "width": 768, "id": 24796, "height": 512}, {"file_name": "ADE_test_00002711.jpg", "width": 683, "id": 24797, "height": 512}, {"file_name": "ADE_test_00002712.jpg", "width": 683, "id": 24798, "height": 512}, {"file_name": "ADE_test_00002713.jpg", "width": 683, "id": 24799, "height": 512}, {"file_name": "ADE_test_00002714.jpg", "width": 683, "id": 24800, "height": 512}, {"file_name": "ADE_test_00002715.jpg", "width": 512, "id": 24801, "height": 683}, {"file_name": "ADE_test_00002716.jpg", "width": 683, "id": 24802, "height": 512}, {"file_name": "ADE_test_00002717.jpg", "width": 512, "id": 24803, "height": 683}, {"file_name": "ADE_test_00002718.jpg", "width": 512, "id": 24804, "height": 763}, {"file_name": "ADE_test_00002719.jpg", "width": 512, "id": 24805, "height": 683}, {"file_name": "ADE_test_00002720.jpg", "width": 512, "id": 24806, "height": 683}, {"file_name": "ADE_test_00002721.jpg", "width": 512, "id": 24807, "height": 771}, {"file_name": "ADE_test_00002722.jpg", "width": 512, "id": 24808, "height": 683}, {"file_name": "ADE_test_00002723.jpg", "width": 512, "id": 24809, "height": 683}, {"file_name": "ADE_test_00002724.jpg", "width": 512, "id": 24810, "height": 765}, {"file_name": "ADE_test_00002725.jpg", "width": 512, "id": 24811, "height": 683}, {"file_name": "ADE_test_00002726.jpg", "width": 683, "id": 24812, "height": 512}, {"file_name": "ADE_test_00002727.jpg", "width": 768, "id": 24813, "height": 512}, {"file_name": "ADE_test_00002728.jpg", "width": 1200, "id": 24814, "height": 1200}, {"file_name": "ADE_test_00002729.jpg", "width": 512, "id": 24815, "height": 685}, {"file_name": "ADE_test_00002730.jpg", "width": 512, "id": 24816, "height": 768}, {"file_name": "ADE_test_00002731.jpg", "width": 769, "id": 24817, "height": 512}, {"file_name": "ADE_test_00002732.jpg", "width": 683, "id": 24818, "height": 512}, {"file_name": "ADE_test_00002733.jpg", "width": 512, "id": 24819, "height": 538}, {"file_name": "ADE_test_00002734.jpg", "width": 676, "id": 24820, "height": 512}, {"file_name": "ADE_test_00002735.jpg", "width": 768, "id": 24821, "height": 512}, {"file_name": "ADE_test_00002736.jpg", "width": 512, "id": 24822, "height": 683}, {"file_name": "ADE_test_00002738.jpg", "width": 910, "id": 24823, "height": 512}, {"file_name": "ADE_test_00002739.jpg", "width": 683, "id": 24824, "height": 512}, {"file_name": "ADE_test_00002740.jpg", "width": 640, "id": 24825, "height": 512}, {"file_name": "ADE_test_00002741.jpg", "width": 768, "id": 24826, "height": 512}, {"file_name": "ADE_test_00002742.jpg", "width": 683, "id": 24827, "height": 512}, {"file_name": "ADE_test_00002743.jpg", "width": 683, "id": 24828, "height": 512}, {"file_name": "ADE_test_00002744.jpg", "width": 768, "id": 24829, "height": 512}, {"file_name": "ADE_test_00002745.jpg", "width": 683, "id": 24830, "height": 512}, {"file_name": "ADE_test_00002746.jpg", "width": 512, "id": 24831, "height": 661}, {"file_name": "ADE_test_00002747.jpg", "width": 512, "id": 24832, "height": 683}, {"file_name": "ADE_test_00002748.jpg", "width": 683, "id": 24833, "height": 512}, {"file_name": "ADE_test_00002749.jpg", "width": 768, "id": 24834, "height": 512}, {"file_name": "ADE_test_00002750.jpg", "width": 773, "id": 24835, "height": 512}, {"file_name": "ADE_test_00002751.jpg", "width": 683, "id": 24836, "height": 512}, {"file_name": "ADE_test_00002752.jpg", "width": 817, "id": 24837, "height": 512}, {"file_name": "ADE_test_00002753.jpg", "width": 768, "id": 24838, "height": 512}, {"file_name": "ADE_test_00002754.jpg", "width": 512, "id": 24839, "height": 768}, {"file_name": "ADE_test_00002755.jpg", "width": 512, "id": 24840, "height": 754}, {"file_name": "ADE_test_00002756.jpg", "width": 512, "id": 24841, "height": 787}, {"file_name": "ADE_test_00002757.jpg", "width": 512, "id": 24842, "height": 683}, {"file_name": "ADE_test_00002758.jpg", "width": 512, "id": 24843, "height": 675}, {"file_name": "ADE_test_00002759.jpg", "width": 512, "id": 24844, "height": 683}, {"file_name": "ADE_test_00002760.jpg", "width": 548, "id": 24845, "height": 512}, {"file_name": "ADE_test_00002761.jpg", "width": 512, "id": 24846, "height": 682}, {"file_name": "ADE_test_00002762.jpg", "width": 662, "id": 24847, "height": 512}, {"file_name": "ADE_test_00002763.jpg", "width": 684, "id": 24848, "height": 512}, {"file_name": "ADE_test_00002764.jpg", "width": 683, "id": 24849, "height": 512}, {"file_name": "ADE_test_00002765.jpg", "width": 512, "id": 24850, "height": 699}, {"file_name": "ADE_test_00002766.jpg", "width": 512, "id": 24851, "height": 683}, {"file_name": "ADE_test_00002767.jpg", "width": 512, "id": 24852, "height": 683}, {"file_name": "ADE_test_00002768.jpg", "width": 512, "id": 24853, "height": 771}, {"file_name": "ADE_test_00002769.jpg", "width": 640, "id": 24854, "height": 512}, {"file_name": "ADE_test_00002770.jpg", "width": 512, "id": 24855, "height": 768}, {"file_name": "ADE_test_00002771.jpg", "width": 512, "id": 24856, "height": 683}, {"file_name": "ADE_test_00002772.jpg", "width": 683, "id": 24857, "height": 512}, {"file_name": "ADE_test_00002773.jpg", "width": 512, "id": 24858, "height": 828}, {"file_name": "ADE_test_00002774.jpg", "width": 512, "id": 24859, "height": 577}, {"file_name": "ADE_test_00002775.jpg", "width": 512, "id": 24860, "height": 771}, {"file_name": "ADE_test_00002776.jpg", "width": 512, "id": 24861, "height": 828}, {"file_name": "ADE_test_00002777.jpg", "width": 761, "id": 24862, "height": 512}, {"file_name": "ADE_test_00002778.jpg", "width": 683, "id": 24863, "height": 512}, {"file_name": "ADE_test_00002779.jpg", "width": 512, "id": 24864, "height": 658}, {"file_name": "ADE_test_00002780.jpg", "width": 512, "id": 24865, "height": 770}, {"file_name": "ADE_test_00002781.jpg", "width": 768, "id": 24866, "height": 512}, {"file_name": "ADE_test_00002782.jpg", "width": 690, "id": 24867, "height": 512}, {"file_name": "ADE_test_00002783.jpg", "width": 512, "id": 24868, "height": 683}, {"file_name": "ADE_test_00002784.jpg", "width": 683, "id": 24869, "height": 512}, {"file_name": "ADE_test_00002785.jpg", "width": 683, "id": 24870, "height": 512}, {"file_name": "ADE_test_00002786.jpg", "width": 683, "id": 24871, "height": 512}, {"file_name": "ADE_test_00002787.jpg", "width": 770, "id": 24872, "height": 512}, {"file_name": "ADE_test_00002788.jpg", "width": 683, "id": 24873, "height": 512}, {"file_name": "ADE_test_00002789.jpg", "width": 683, "id": 24874, "height": 512}, {"file_name": "ADE_test_00002790.jpg", "width": 768, "id": 24875, "height": 512}, {"file_name": "ADE_test_00002791.jpg", "width": 683, "id": 24876, "height": 512}, {"file_name": "ADE_test_00002793.jpg", "width": 683, "id": 24877, "height": 512}, {"file_name": "ADE_test_00002794.jpg", "width": 683, "id": 24878, "height": 512}, {"file_name": "ADE_test_00002795.jpg", "width": 512, "id": 24879, "height": 779}, {"file_name": "ADE_test_00002796.jpg", "width": 512, "id": 24880, "height": 666}, {"file_name": "ADE_test_00002797.jpg", "width": 512, "id": 24881, "height": 911}, {"file_name": "ADE_test_00002798.jpg", "width": 532, "id": 24882, "height": 512}, {"file_name": "ADE_test_00002799.jpg", "width": 683, "id": 24883, "height": 512}, {"file_name": "ADE_test_00002800.jpg", "width": 512, "id": 24884, "height": 768}, {"file_name": "ADE_test_00002801.jpg", "width": 771, "id": 24885, "height": 512}, {"file_name": "ADE_test_00002802.jpg", "width": 512, "id": 24886, "height": 796}, {"file_name": "ADE_test_00002803.jpg", "width": 512, "id": 24887, "height": 768}, {"file_name": "ADE_test_00002804.jpg", "width": 512, "id": 24888, "height": 770}, {"file_name": "ADE_test_00002805.jpg", "width": 512, "id": 24889, "height": 680}, {"file_name": "ADE_test_00002806.jpg", "width": 512, "id": 24890, "height": 683}, {"file_name": "ADE_test_00002807.jpg", "width": 770, "id": 24891, "height": 512}, {"file_name": "ADE_test_00002808.jpg", "width": 683, "id": 24892, "height": 512}, {"file_name": "ADE_test_00002809.jpg", "width": 512, "id": 24893, "height": 770}, {"file_name": "ADE_test_00002810.jpg", "width": 683, "id": 24894, "height": 512}, {"file_name": "ADE_test_00002811.jpg", "width": 725, "id": 24895, "height": 512}, {"file_name": "ADE_test_00002812.jpg", "width": 512, "id": 24896, "height": 775}, {"file_name": "ADE_test_00002813.jpg", "width": 683, "id": 24897, "height": 512}, {"file_name": "ADE_test_00002814.jpg", "width": 683, "id": 24898, "height": 512}, {"file_name": "ADE_test_00002815.jpg", "width": 683, "id": 24899, "height": 512}, {"file_name": "ADE_test_00002816.jpg", "width": 768, "id": 24900, "height": 512}, {"file_name": "ADE_test_00002817.jpg", "width": 512, "id": 24901, "height": 686}, {"file_name": "ADE_test_00002818.jpg", "width": 765, "id": 24902, "height": 512}, {"file_name": "ADE_test_00002819.jpg", "width": 512, "id": 24903, "height": 768}, {"file_name": "ADE_test_00002820.jpg", "width": 683, "id": 24904, "height": 512}, {"file_name": "ADE_test_00002821.jpg", "width": 768, "id": 24905, "height": 512}, {"file_name": "ADE_test_00002822.jpg", "width": 512, "id": 24906, "height": 683}, {"file_name": "ADE_test_00002823.jpg", "width": 512, "id": 24907, "height": 772}, {"file_name": "ADE_test_00002824.jpg", "width": 683, "id": 24908, "height": 512}, {"file_name": "ADE_test_00002825.jpg", "width": 512, "id": 24909, "height": 683}, {"file_name": "ADE_test_00002826.jpg", "width": 683, "id": 24910, "height": 512}, {"file_name": "ADE_test_00002827.jpg", "width": 765, "id": 24911, "height": 512}, {"file_name": "ADE_test_00002828.jpg", "width": 683, "id": 24912, "height": 512}, {"file_name": "ADE_test_00002829.jpg", "width": 512, "id": 24913, "height": 683}, {"file_name": "ADE_test_00002830.jpg", "width": 512, "id": 24914, "height": 763}, {"file_name": "ADE_test_00002831.jpg", "width": 512, "id": 24915, "height": 768}, {"file_name": "ADE_test_00002832.jpg", "width": 683, "id": 24916, "height": 512}, {"file_name": "ADE_test_00002833.jpg", "width": 683, "id": 24917, "height": 512}, {"file_name": "ADE_test_00002834.jpg", "width": 683, "id": 24918, "height": 512}, {"file_name": "ADE_test_00002835.jpg", "width": 768, "id": 24919, "height": 512}, {"file_name": "ADE_test_00002836.jpg", "width": 512, "id": 24920, "height": 683}, {"file_name": "ADE_test_00002837.jpg", "width": 643, "id": 24921, "height": 512}, {"file_name": "ADE_test_00002838.jpg", "width": 1411, "id": 24922, "height": 512}, {"file_name": "ADE_test_00002839.jpg", "width": 767, "id": 24923, "height": 512}, {"file_name": "ADE_test_00002840.jpg", "width": 770, "id": 24924, "height": 512}, {"file_name": "ADE_test_00002841.jpg", "width": 800, "id": 24925, "height": 512}, {"file_name": "ADE_test_00002842.jpg", "width": 683, "id": 24926, "height": 512}, {"file_name": "ADE_test_00002843.jpg", "width": 512, "id": 24927, "height": 685}, {"file_name": "ADE_test_00002844.jpg", "width": 512, "id": 24928, "height": 683}, {"file_name": "ADE_test_00002845.jpg", "width": 683, "id": 24929, "height": 512}, {"file_name": "ADE_test_00002847.jpg", "width": 512, "id": 24930, "height": 683}, {"file_name": "ADE_test_00002848.jpg", "width": 683, "id": 24931, "height": 512}, {"file_name": "ADE_test_00002849.jpg", "width": 685, "id": 24932, "height": 512}, {"file_name": "ADE_test_00002850.jpg", "width": 771, "id": 24933, "height": 512}, {"file_name": "ADE_test_00002851.jpg", "width": 683, "id": 24934, "height": 512}, {"file_name": "ADE_test_00002852.jpg", "width": 652, "id": 24935, "height": 512}, {"file_name": "ADE_test_00002853.jpg", "width": 512, "id": 24936, "height": 702}, {"file_name": "ADE_test_00002854.jpg", "width": 683, "id": 24937, "height": 512}, {"file_name": "ADE_test_00002855.jpg", "width": 512, "id": 24938, "height": 632}, {"file_name": "ADE_test_00002856.jpg", "width": 512, "id": 24939, "height": 592}, {"file_name": "ADE_test_00002857.jpg", "width": 512, "id": 24940, "height": 683}, {"file_name": "ADE_test_00002858.jpg", "width": 512, "id": 24941, "height": 768}, {"file_name": "ADE_test_00002859.jpg", "width": 512, "id": 24942, "height": 683}, {"file_name": "ADE_test_00002860.jpg", "width": 512, "id": 24943, "height": 639}, {"file_name": "ADE_test_00002862.jpg", "width": 512, "id": 24944, "height": 776}, {"file_name": "ADE_test_00002863.jpg", "width": 512, "id": 24945, "height": 771}, {"file_name": "ADE_test_00002864.jpg", "width": 512, "id": 24946, "height": 755}, {"file_name": "ADE_test_00002865.jpg", "width": 512, "id": 24947, "height": 640}, {"file_name": "ADE_test_00002866.jpg", "width": 640, "id": 24948, "height": 512}, {"file_name": "ADE_test_00002867.jpg", "width": 512, "id": 24949, "height": 912}, {"file_name": "ADE_test_00002868.jpg", "width": 512, "id": 24950, "height": 754}, {"file_name": "ADE_test_00002869.jpg", "width": 512, "id": 24951, "height": 681}, {"file_name": "ADE_test_00002870.jpg", "width": 638, "id": 24952, "height": 512}, {"file_name": "ADE_test_00002871.jpg", "width": 512, "id": 24953, "height": 683}, {"file_name": "ADE_test_00002872.jpg", "width": 629, "id": 24954, "height": 512}, {"file_name": "ADE_test_00002873.jpg", "width": 512, "id": 24955, "height": 663}, {"file_name": "ADE_test_00002874.jpg", "width": 683, "id": 24956, "height": 512}, {"file_name": "ADE_test_00002875.jpg", "width": 512, "id": 24957, "height": 646}, {"file_name": "ADE_test_00002876.jpg", "width": 512, "id": 24958, "height": 768}, {"file_name": "ADE_test_00002877.jpg", "width": 859, "id": 24959, "height": 512}, {"file_name": "ADE_test_00002878.jpg", "width": 683, "id": 24960, "height": 512}, {"file_name": "ADE_test_00002879.jpg", "width": 683, "id": 24961, "height": 512}, {"file_name": "ADE_test_00002880.jpg", "width": 683, "id": 24962, "height": 512}, {"file_name": "ADE_test_00002882.jpg", "width": 683, "id": 24963, "height": 512}, {"file_name": "ADE_test_00002883.jpg", "width": 768, "id": 24964, "height": 512}, {"file_name": "ADE_test_00002884.jpg", "width": 683, "id": 24965, "height": 512}, {"file_name": "ADE_test_00002885.jpg", "width": 1024, "id": 24966, "height": 1024}, {"file_name": "ADE_test_00002886.jpg", "width": 684, "id": 24967, "height": 512}, {"file_name": "ADE_test_00002887.jpg", "width": 512, "id": 24968, "height": 768}, {"file_name": "ADE_test_00002888.jpg", "width": 683, "id": 24969, "height": 512}, {"file_name": "ADE_test_00002889.jpg", "width": 512, "id": 24970, "height": 683}, {"file_name": "ADE_test_00002890.jpg", "width": 780, "id": 24971, "height": 512}, {"file_name": "ADE_test_00002892.jpg", "width": 512, "id": 24972, "height": 769}, {"file_name": "ADE_test_00002893.jpg", "width": 512, "id": 24973, "height": 682}, {"file_name": "ADE_test_00002894.jpg", "width": 512, "id": 24974, "height": 733}, {"file_name": "ADE_test_00002895.jpg", "width": 512, "id": 24975, "height": 768}, {"file_name": "ADE_test_00002896.jpg", "width": 512, "id": 24976, "height": 739}, {"file_name": "ADE_test_00002897.jpg", "width": 512, "id": 24977, "height": 600}, {"file_name": "ADE_test_00002898.jpg", "width": 910, "id": 24978, "height": 512}, {"file_name": "ADE_test_00002899.jpg", "width": 683, "id": 24979, "height": 512}, {"file_name": "ADE_test_00002900.jpg", "width": 512, "id": 24980, "height": 768}, {"file_name": "ADE_test_00002901.jpg", "width": 512, "id": 24981, "height": 685}, {"file_name": "ADE_test_00002902.jpg", "width": 683, "id": 24982, "height": 512}, {"file_name": "ADE_test_00002903.jpg", "width": 683, "id": 24983, "height": 512}, {"file_name": "ADE_test_00002904.jpg", "width": 512, "id": 24984, "height": 768}, {"file_name": "ADE_test_00002905.jpg", "width": 512, "id": 24985, "height": 709}, {"file_name": "ADE_test_00002906.jpg", "width": 683, "id": 24986, "height": 512}, {"file_name": "ADE_test_00002907.jpg", "width": 512, "id": 24987, "height": 635}, {"file_name": "ADE_test_00002908.jpg", "width": 512, "id": 24988, "height": 683}, {"file_name": "ADE_test_00002909.jpg", "width": 512, "id": 24989, "height": 627}, {"file_name": "ADE_test_00002910.jpg", "width": 512, "id": 24990, "height": 769}, {"file_name": "ADE_test_00002911.jpg", "width": 512, "id": 24991, "height": 768}, {"file_name": "ADE_test_00002912.jpg", "width": 592, "id": 24992, "height": 512}, {"file_name": "ADE_test_00002913.jpg", "width": 683, "id": 24993, "height": 512}, {"file_name": "ADE_test_00002914.jpg", "width": 683, "id": 24994, "height": 512}, {"file_name": "ADE_test_00002915.jpg", "width": 512, "id": 24995, "height": 792}, {"file_name": "ADE_test_00002916.jpg", "width": 512, "id": 24996, "height": 775}, {"file_name": "ADE_test_00002918.jpg", "width": 512, "id": 24997, "height": 768}, {"file_name": "ADE_test_00002922.jpg", "width": 512, "id": 24998, "height": 770}, {"file_name": "ADE_test_00002923.jpg", "width": 512, "id": 24999, "height": 771}, {"file_name": "ADE_test_00002924.jpg", "width": 512, "id": 25000, "height": 807}, {"file_name": "ADE_test_00002926.jpg", "width": 512, "id": 25001, "height": 683}, {"file_name": "ADE_test_00002927.jpg", "width": 512, "id": 25002, "height": 683}, {"file_name": "ADE_test_00002928.jpg", "width": 512, "id": 25003, "height": 683}, {"file_name": "ADE_test_00002929.jpg", "width": 512, "id": 25004, "height": 765}, {"file_name": "ADE_test_00002930.jpg", "width": 512, "id": 25005, "height": 691}, {"file_name": "ADE_test_00002931.jpg", "width": 763, "id": 25006, "height": 512}, {"file_name": "ADE_test_00002932.jpg", "width": 512, "id": 25007, "height": 683}, {"file_name": "ADE_test_00002933.jpg", "width": 768, "id": 25008, "height": 512}, {"file_name": "ADE_test_00002934.jpg", "width": 512, "id": 25009, "height": 685}, {"file_name": "ADE_test_00002935.jpg", "width": 640, "id": 25010, "height": 512}, {"file_name": "ADE_test_00002936.jpg", "width": 768, "id": 25011, "height": 512}, {"file_name": "ADE_test_00002937.jpg", "width": 683, "id": 25012, "height": 512}, {"file_name": "ADE_test_00002938.jpg", "width": 769, "id": 25013, "height": 512}, {"file_name": "ADE_test_00002939.jpg", "width": 683, "id": 25014, "height": 512}, {"file_name": "ADE_test_00002940.jpg", "width": 512, "id": 25015, "height": 640}, {"file_name": "ADE_test_00002941.jpg", "width": 512, "id": 25016, "height": 768}, {"file_name": "ADE_test_00002942.jpg", "width": 802, "id": 25017, "height": 802}, {"file_name": "ADE_test_00002943.jpg", "width": 683, "id": 25018, "height": 512}, {"file_name": "ADE_test_00002944.jpg", "width": 768, "id": 25019, "height": 512}, {"file_name": "ADE_test_00002945.jpg", "width": 512, "id": 25020, "height": 682}, {"file_name": "ADE_test_00002946.jpg", "width": 512, "id": 25021, "height": 758}, {"file_name": "ADE_test_00002947.jpg", "width": 512, "id": 25022, "height": 649}, {"file_name": "ADE_test_00002948.jpg", "width": 512, "id": 25023, "height": 708}, {"file_name": "ADE_test_00002949.jpg", "width": 512, "id": 25024, "height": 683}, {"file_name": "ADE_test_00002950.jpg", "width": 512, "id": 25025, "height": 683}, {"file_name": "ADE_test_00002951.jpg", "width": 512, "id": 25026, "height": 768}, {"file_name": "ADE_test_00002952.jpg", "width": 512, "id": 25027, "height": 768}, {"file_name": "ADE_test_00002953.jpg", "width": 683, "id": 25028, "height": 512}, {"file_name": "ADE_test_00002954.jpg", "width": 512, "id": 25029, "height": 683}, {"file_name": "ADE_test_00002955.jpg", "width": 512, "id": 25030, "height": 683}, {"file_name": "ADE_test_00002956.jpg", "width": 512, "id": 25031, "height": 726}, {"file_name": "ADE_test_00002957.jpg", "width": 599, "id": 25032, "height": 512}, {"file_name": "ADE_test_00002958.jpg", "width": 512, "id": 25033, "height": 802}, {"file_name": "ADE_test_00002959.jpg", "width": 512, "id": 25034, "height": 683}, {"file_name": "ADE_test_00002960.jpg", "width": 512, "id": 25035, "height": 778}, {"file_name": "ADE_test_00002961.jpg", "width": 512, "id": 25036, "height": 773}, {"file_name": "ADE_test_00002962.jpg", "width": 512, "id": 25037, "height": 731}, {"file_name": "ADE_test_00002963.jpg", "width": 512, "id": 25038, "height": 719}, {"file_name": "ADE_test_00002964.jpg", "width": 512, "id": 25039, "height": 683}, {"file_name": "ADE_test_00002965.jpg", "width": 512, "id": 25040, "height": 683}, {"file_name": "ADE_test_00002966.jpg", "width": 683, "id": 25041, "height": 512}, {"file_name": "ADE_test_00002967.jpg", "width": 512, "id": 25042, "height": 768}, {"file_name": "ADE_test_00002968.jpg", "width": 767, "id": 25043, "height": 512}, {"file_name": "ADE_test_00002969.jpg", "width": 512, "id": 25044, "height": 683}, {"file_name": "ADE_test_00002970.jpg", "width": 512, "id": 25045, "height": 768}, {"file_name": "ADE_test_00002971.jpg", "width": 819, "id": 25046, "height": 512}, {"file_name": "ADE_test_00002972.jpg", "width": 512, "id": 25047, "height": 683}, {"file_name": "ADE_test_00002973.jpg", "width": 683, "id": 25048, "height": 512}, {"file_name": "ADE_test_00002974.jpg", "width": 683, "id": 25049, "height": 512}, {"file_name": "ADE_test_00002975.jpg", "width": 651, "id": 25050, "height": 512}, {"file_name": "ADE_test_00002976.jpg", "width": 512, "id": 25051, "height": 634}, {"file_name": "ADE_test_00002977.jpg", "width": 512, "id": 25052, "height": 683}, {"file_name": "ADE_test_00002978.jpg", "width": 683, "id": 25053, "height": 512}, {"file_name": "ADE_test_00002979.jpg", "width": 683, "id": 25054, "height": 512}, {"file_name": "ADE_test_00002980.jpg", "width": 512, "id": 25055, "height": 768}, {"file_name": "ADE_test_00002981.jpg", "width": 770, "id": 25056, "height": 512}, {"file_name": "ADE_test_00002982.jpg", "width": 770, "id": 25057, "height": 512}, {"file_name": "ADE_test_00002983.jpg", "width": 512, "id": 25058, "height": 718}, {"file_name": "ADE_test_00002984.jpg", "width": 683, "id": 25059, "height": 512}, {"file_name": "ADE_test_00002985.jpg", "width": 512, "id": 25060, "height": 771}, {"file_name": "ADE_test_00002986.jpg", "width": 512, "id": 25061, "height": 768}, {"file_name": "ADE_test_00002987.jpg", "width": 683, "id": 25062, "height": 512}, {"file_name": "ADE_test_00002988.jpg", "width": 512, "id": 25063, "height": 773}, {"file_name": "ADE_test_00002989.jpg", "width": 683, "id": 25064, "height": 512}, {"file_name": "ADE_test_00002990.jpg", "width": 512, "id": 25065, "height": 595}, {"file_name": "ADE_test_00002991.jpg", "width": 512, "id": 25066, "height": 709}, {"file_name": "ADE_test_00002992.jpg", "width": 512, "id": 25067, "height": 804}, {"file_name": "ADE_test_00002993.jpg", "width": 512, "id": 25068, "height": 769}, {"file_name": "ADE_test_00002994.jpg", "width": 512, "id": 25069, "height": 768}, {"file_name": "ADE_test_00002995.jpg", "width": 683, "id": 25070, "height": 512}, {"file_name": "ADE_test_00002996.jpg", "width": 512, "id": 25071, "height": 768}, {"file_name": "ADE_test_00002997.jpg", "width": 512, "id": 25072, "height": 707}, {"file_name": "ADE_test_00002998.jpg", "width": 512, "id": 25073, "height": 773}, {"file_name": "ADE_test_00002999.jpg", "width": 512, "id": 25074, "height": 764}, {"file_name": "ADE_test_00003000.jpg", "width": 500, "id": 25075, "height": 335}, {"file_name": "ADE_test_00003001.jpg", "width": 600, "id": 25076, "height": 401}, {"file_name": "ADE_test_00003002.jpg", "width": 618, "id": 25077, "height": 416}, {"file_name": "ADE_test_00003003.jpg", "width": 615, "id": 25078, "height": 409}, {"file_name": "ADE_test_00003004.jpg", "width": 512, "id": 25079, "height": 683}, {"file_name": "ADE_test_00003005.jpg", "width": 683, "id": 25080, "height": 512}, {"file_name": "ADE_test_00003006.jpg", "width": 728, "id": 25081, "height": 485}, {"file_name": "ADE_test_00003007.jpg", "width": 724, "id": 25082, "height": 512}, {"file_name": "ADE_test_00003008.jpg", "width": 600, "id": 25083, "height": 433}, {"file_name": "ADE_test_00003009.jpg", "width": 428, "id": 25084, "height": 347}, {"file_name": "ADE_test_00003010.jpg", "width": 590, "id": 25085, "height": 512}, {"file_name": "ADE_test_00003011.jpg", "width": 531, "id": 25086, "height": 512}, {"file_name": "ADE_test_00003012.jpg", "width": 765, "id": 25087, "height": 512}, {"file_name": "ADE_test_00003013.jpg", "width": 788, "id": 25088, "height": 512}, {"file_name": "ADE_test_00003014.jpg", "width": 770, "id": 25089, "height": 512}, {"file_name": "ADE_test_00003015.jpg", "width": 768, "id": 25090, "height": 512}, {"file_name": "ADE_test_00003016.jpg", "width": 733, "id": 25091, "height": 512}, {"file_name": "ADE_test_00003017.jpg", "width": 553, "id": 25092, "height": 325}, {"file_name": "ADE_test_00003018.jpg", "width": 769, "id": 25093, "height": 512}, {"file_name": "ADE_test_00003019.jpg", "width": 512, "id": 25094, "height": 740}, {"file_name": "ADE_test_00003020.jpg", "width": 768, "id": 25095, "height": 512}, {"file_name": "ADE_test_00003021.jpg", "width": 765, "id": 25096, "height": 512}, {"file_name": "ADE_test_00003022.jpg", "width": 757, "id": 25097, "height": 512}, {"file_name": "ADE_test_00003023.jpg", "width": 512, "id": 25098, "height": 686}, {"file_name": "ADE_test_00003024.jpg", "width": 748, "id": 25099, "height": 512}, {"file_name": "ADE_test_00003025.jpg", "width": 634, "id": 25100, "height": 423}, {"file_name": "ADE_test_00003026.jpg", "width": 683, "id": 25101, "height": 512}, {"file_name": "ADE_test_00003027.jpg", "width": 401, "id": 25102, "height": 600}, {"file_name": "ADE_test_00003028.jpg", "width": 655, "id": 25103, "height": 437}, {"file_name": "ADE_test_00003029.jpg", "width": 640, "id": 25104, "height": 427}, {"file_name": "ADE_test_00003030.jpg", "width": 512, "id": 25105, "height": 722}, {"file_name": "ADE_test_00003031.jpg", "width": 660, "id": 25106, "height": 440}, {"file_name": "ADE_test_00003032.jpg", "width": 796, "id": 25107, "height": 479}, {"file_name": "ADE_test_00003033.jpg", "width": 650, "id": 25108, "height": 366}, {"file_name": "ADE_test_00003034.jpg", "width": 1069, "id": 25109, "height": 512}, {"file_name": "ADE_test_00003035.jpg", "width": 400, "id": 25110, "height": 466}, {"file_name": "ADE_test_00003036.jpg", "width": 648, "id": 25111, "height": 429}, {"file_name": "ADE_test_00003037.jpg", "width": 683, "id": 25112, "height": 512}, {"file_name": "ADE_test_00003038.jpg", "width": 767, "id": 25113, "height": 512}, {"file_name": "ADE_test_00003039.jpg", "width": 683, "id": 25114, "height": 512}, {"file_name": "ADE_test_00003040.jpg", "width": 759, "id": 25115, "height": 512}, {"file_name": "ADE_test_00003041.jpg", "width": 478, "id": 25116, "height": 570}, {"file_name": "ADE_test_00003042.jpg", "width": 414, "id": 25117, "height": 536}, {"file_name": "ADE_test_00003043.jpg", "width": 852, "id": 25118, "height": 480}, {"file_name": "ADE_test_00003044.jpg", "width": 683, "id": 25119, "height": 512}, {"file_name": "ADE_test_00003045.jpg", "width": 550, "id": 25120, "height": 413}, {"file_name": "ADE_test_00003046.jpg", "width": 620, "id": 25121, "height": 465}, {"file_name": "ADE_test_00003047.jpg", "width": 1020, "id": 25122, "height": 512}, {"file_name": "ADE_test_00003048.jpg", "width": 400, "id": 25123, "height": 600}, {"file_name": "ADE_test_00003049.jpg", "width": 768, "id": 25124, "height": 512}, {"file_name": "ADE_test_00003050.jpg", "width": 450, "id": 25125, "height": 300}, {"file_name": "ADE_test_00003051.jpg", "width": 620, "id": 25126, "height": 413}, {"file_name": "ADE_test_00003052.jpg", "width": 852, "id": 25127, "height": 480}, {"file_name": "ADE_test_00003053.jpg", "width": 721, "id": 25128, "height": 512}, {"file_name": "ADE_test_00003054.jpg", "width": 615, "id": 25129, "height": 409}, {"file_name": "ADE_test_00003055.jpg", "width": 600, "id": 25130, "height": 400}, {"file_name": "ADE_test_00003056.jpg", "width": 852, "id": 25131, "height": 480}, {"file_name": "ADE_test_00003057.jpg", "width": 683, "id": 25132, "height": 512}, {"file_name": "ADE_test_00003058.jpg", "width": 610, "id": 25133, "height": 405}, {"file_name": "ADE_test_00003059.jpg", "width": 876, "id": 25134, "height": 493}, {"file_name": "ADE_test_00003060.jpg", "width": 683, "id": 25135, "height": 512}, {"file_name": "ADE_test_00003061.jpg", "width": 640, "id": 25136, "height": 364}, {"file_name": "ADE_test_00003062.jpg", "width": 500, "id": 25137, "height": 375}, {"file_name": "ADE_test_00003063.jpg", "width": 676, "id": 25138, "height": 512}, {"file_name": "ADE_test_00003064.jpg", "width": 750, "id": 25139, "height": 503}, {"file_name": "ADE_test_00003065.jpg", "width": 706, "id": 25140, "height": 471}, {"file_name": "ADE_test_00003066.jpg", "width": 771, "id": 25141, "height": 512}, {"file_name": "ADE_test_00003067.jpg", "width": 766, "id": 25142, "height": 512}, {"file_name": "ADE_test_00003068.jpg", "width": 1684, "id": 25143, "height": 512}, {"file_name": "ADE_test_00003069.jpg", "width": 675, "id": 25144, "height": 675}, {"file_name": "ADE_test_00003070.jpg", "width": 569, "id": 25145, "height": 512}, {"file_name": "ADE_test_00003071.jpg", "width": 500, "id": 25146, "height": 375}, {"file_name": "ADE_test_00003072.jpg", "width": 600, "id": 25147, "height": 450}, {"file_name": "ADE_test_00003073.jpg", "width": 1000, "id": 25148, "height": 450}, {"file_name": "ADE_test_00003074.jpg", "width": 700, "id": 25149, "height": 467}, {"file_name": "ADE_test_00003075.jpg", "width": 512, "id": 25150, "height": 683}, {"file_name": "ADE_test_00003076.jpg", "width": 468, "id": 25151, "height": 319}, {"file_name": "ADE_test_00003077.jpg", "width": 876, "id": 25152, "height": 512}, {"file_name": "ADE_test_00003078.jpg", "width": 683, "id": 25153, "height": 512}, {"file_name": "ADE_test_00003079.jpg", "width": 864, "id": 25154, "height": 320}, {"file_name": "ADE_test_00003080.jpg", "width": 500, "id": 25155, "height": 333}, {"file_name": "ADE_test_00003081.jpg", "width": 683, "id": 25156, "height": 512}, {"file_name": "ADE_test_00003082.jpg", "width": 683, "id": 25157, "height": 512}, {"file_name": "ADE_test_00003083.jpg", "width": 768, "id": 25158, "height": 512}, {"file_name": "ADE_test_00003084.jpg", "width": 1045, "id": 25159, "height": 450}, {"file_name": "ADE_test_00003085.jpg", "width": 770, "id": 25160, "height": 512}, {"file_name": "ADE_test_00003086.jpg", "width": 800, "id": 25161, "height": 495}, {"file_name": "ADE_test_00003087.jpg", "width": 450, "id": 25162, "height": 600}, {"file_name": "ADE_test_00003088.jpg", "width": 683, "id": 25163, "height": 512}, {"file_name": "ADE_test_00003089.jpg", "width": 512, "id": 25164, "height": 768}, {"file_name": "ADE_test_00003090.jpg", "width": 600, "id": 25165, "height": 448}, {"file_name": "ADE_test_00003091.jpg", "width": 512, "id": 25166, "height": 683}, {"file_name": "ADE_test_00003092.jpg", "width": 636, "id": 25167, "height": 424}, {"file_name": "ADE_test_00003093.jpg", "width": 399, "id": 25168, "height": 600}, {"file_name": "ADE_test_00003094.jpg", "width": 512, "id": 25169, "height": 767}, {"file_name": "ADE_test_00003095.jpg", "width": 589, "id": 25170, "height": 400}, {"file_name": "ADE_test_00003096.jpg", "width": 466, "id": 25171, "height": 310}, {"file_name": "ADE_test_00003097.jpg", "width": 512, "id": 25172, "height": 773}, {"file_name": "ADE_test_00003098.jpg", "width": 526, "id": 25173, "height": 342}, {"file_name": "ADE_test_00003099.jpg", "width": 852, "id": 25174, "height": 480}, {"file_name": "ADE_test_00003100.jpg", "width": 300, "id": 25175, "height": 450}, {"file_name": "ADE_test_00003101.jpg", "width": 620, "id": 25176, "height": 413}, {"file_name": "ADE_test_00003102.jpg", "width": 506, "id": 25177, "height": 338}, {"file_name": "ADE_test_00003103.jpg", "width": 634, "id": 25178, "height": 372}, {"file_name": "ADE_test_00003104.jpg", "width": 648, "id": 25179, "height": 418}, {"file_name": "ADE_test_00003105.jpg", "width": 640, "id": 25180, "height": 480}, {"file_name": "ADE_test_00003106.jpg", "width": 806, "id": 25181, "height": 512}, {"file_name": "ADE_test_00003107.jpg", "width": 768, "id": 25182, "height": 512}, {"file_name": "ADE_test_00003108.jpg", "width": 683, "id": 25183, "height": 512}, {"file_name": "ADE_test_00003109.jpg", "width": 777, "id": 25184, "height": 512}, {"file_name": "ADE_test_00003110.jpg", "width": 2000, "id": 25185, "height": 2000}, {"file_name": "ADE_test_00003111.jpg", "width": 640, "id": 25186, "height": 426}, {"file_name": "ADE_test_00003112.jpg", "width": 584, "id": 25187, "height": 404}, {"file_name": "ADE_test_00003113.jpg", "width": 768, "id": 25188, "height": 512}, {"file_name": "ADE_test_00003114.jpg", "width": 620, "id": 25189, "height": 349}, {"file_name": "ADE_test_00003115.jpg", "width": 768, "id": 25190, "height": 512}, {"file_name": "ADE_test_00003116.jpg", "width": 765, "id": 25191, "height": 512}, {"file_name": "ADE_test_00003117.jpg", "width": 852, "id": 25192, "height": 480}, {"file_name": "ADE_test_00003118.jpg", "width": 910, "id": 25193, "height": 512}, {"file_name": "ADE_test_00003119.jpg", "width": 768, "id": 25194, "height": 512}, {"file_name": "ADE_test_00003120.jpg", "width": 683, "id": 25195, "height": 512}, {"file_name": "ADE_test_00003121.jpg", "width": 768, "id": 25196, "height": 512}, {"file_name": "ADE_test_00003122.jpg", "width": 683, "id": 25197, "height": 512}, {"file_name": "ADE_test_00003123.jpg", "width": 759, "id": 25198, "height": 512}, {"file_name": "ADE_test_00003124.jpg", "width": 771, "id": 25199, "height": 512}, {"file_name": "ADE_test_00003125.jpg", "width": 775, "id": 25200, "height": 512}, {"file_name": "ADE_test_00003126.jpg", "width": 310, "id": 25201, "height": 465}, {"file_name": "ADE_test_00003127.jpg", "width": 768, "id": 25202, "height": 512}, {"file_name": "ADE_test_00003128.jpg", "width": 640, "id": 25203, "height": 640}, {"file_name": "ADE_test_00003129.jpg", "width": 711, "id": 25204, "height": 312}, {"file_name": "ADE_test_00003130.jpg", "width": 598, "id": 25205, "height": 377}, {"file_name": "ADE_test_00003131.jpg", "width": 670, "id": 25206, "height": 502}, {"file_name": "ADE_test_00003132.jpg", "width": 852, "id": 25207, "height": 480}, {"file_name": "ADE_test_00003133.jpg", "width": 498, "id": 25208, "height": 350}, {"file_name": "ADE_test_00003134.jpg", "width": 683, "id": 25209, "height": 512}, {"file_name": "ADE_test_00003135.jpg", "width": 744, "id": 25210, "height": 512}, {"file_name": "ADE_test_00003136.jpg", "width": 580, "id": 25211, "height": 323}, {"file_name": "ADE_test_00003137.jpg", "width": 585, "id": 25212, "height": 375}, {"file_name": "ADE_test_00003138.jpg", "width": 720, "id": 25213, "height": 480}, {"file_name": "ADE_test_00003139.jpg", "width": 683, "id": 25214, "height": 512}, {"file_name": "ADE_test_00003140.jpg", "width": 755, "id": 25215, "height": 512}, {"file_name": "ADE_test_00003141.jpg", "width": 500, "id": 25216, "height": 375}, {"file_name": "ADE_test_00003142.jpg", "width": 600, "id": 25217, "height": 450}, {"file_name": "ADE_test_00003143.jpg", "width": 600, "id": 25218, "height": 497}, {"file_name": "ADE_test_00003144.jpg", "width": 850, "id": 25219, "height": 469}, {"file_name": "ADE_test_00003145.jpg", "width": 596, "id": 25220, "height": 377}, {"file_name": "ADE_test_00003146.jpg", "width": 320, "id": 25221, "height": 320}, {"file_name": "ADE_test_00003147.jpg", "width": 512, "id": 25222, "height": 683}, {"file_name": "ADE_test_00003148.jpg", "width": 620, "id": 25223, "height": 413}, {"file_name": "ADE_test_00003149.jpg", "width": 670, "id": 25224, "height": 448}, {"file_name": "ADE_test_00003150.jpg", "width": 841, "id": 25225, "height": 512}, {"file_name": "ADE_test_00003151.jpg", "width": 1000, "id": 25226, "height": 1000}, {"file_name": "ADE_test_00003152.jpg", "width": 768, "id": 25227, "height": 512}, {"file_name": "ADE_test_00003153.jpg", "width": 683, "id": 25228, "height": 512}, {"file_name": "ADE_test_00003154.jpg", "width": 630, "id": 25229, "height": 473}, {"file_name": "ADE_test_00003155.jpg", "width": 512, "id": 25230, "height": 539}, {"file_name": "ADE_test_00003156.jpg", "width": 852, "id": 25231, "height": 480}, {"file_name": "ADE_test_00003157.jpg", "width": 683, "id": 25232, "height": 512}, {"file_name": "ADE_test_00003158.jpg", "width": 500, "id": 25233, "height": 375}, {"file_name": "ADE_test_00003159.jpg", "width": 435, "id": 25234, "height": 580}, {"file_name": "ADE_test_00003160.jpg", "width": 512, "id": 25235, "height": 768}, {"file_name": "ADE_test_00003161.jpg", "width": 512, "id": 25236, "height": 683}, {"file_name": "ADE_test_00003162.jpg", "width": 768, "id": 25237, "height": 512}, {"file_name": "ADE_test_00003163.jpg", "width": 740, "id": 25238, "height": 424}, {"file_name": "ADE_test_00003165.jpg", "width": 749, "id": 25239, "height": 499}, {"file_name": "ADE_test_00003166.jpg", "width": 640, "id": 25240, "height": 443}, {"file_name": "ADE_test_00003167.jpg", "width": 576, "id": 25241, "height": 432}, {"file_name": "ADE_test_00003168.jpg", "width": 512, "id": 25242, "height": 799}, {"file_name": "ADE_test_00003169.jpg", "width": 641, "id": 25243, "height": 512}, {"file_name": "ADE_test_00003170.jpg", "width": 786, "id": 25244, "height": 512}, {"file_name": "ADE_test_00003171.jpg", "width": 700, "id": 25245, "height": 465}, {"file_name": "ADE_test_00003172.jpg", "width": 924, "id": 25246, "height": 512}, {"file_name": "ADE_test_00003173.jpg", "width": 452, "id": 25247, "height": 452}, {"file_name": "ADE_test_00003174.jpg", "width": 400, "id": 25248, "height": 300}, {"file_name": "ADE_test_00003175.jpg", "width": 512, "id": 25249, "height": 341}, {"file_name": "ADE_test_00003176.jpg", "width": 600, "id": 25250, "height": 426}, {"file_name": "ADE_test_00003177.jpg", "width": 872, "id": 25251, "height": 512}, {"file_name": "ADE_test_00003178.jpg", "width": 876, "id": 25252, "height": 493}, {"file_name": "ADE_test_00003179.jpg", "width": 590, "id": 25253, "height": 300}, {"file_name": "ADE_test_00003180.jpg", "width": 640, "id": 25254, "height": 353}, {"file_name": "ADE_test_00003181.jpg", "width": 450, "id": 25255, "height": 320}, {"file_name": "ADE_test_00003182.jpg", "width": 660, "id": 25256, "height": 440}, {"file_name": "ADE_test_00003183.jpg", "width": 769, "id": 25257, "height": 512}, {"file_name": "ADE_test_00003184.jpg", "width": 600, "id": 25258, "height": 330}, {"file_name": "ADE_test_00003185.jpg", "width": 550, "id": 25259, "height": 412}, {"file_name": "ADE_test_00003186.jpg", "width": 638, "id": 25260, "height": 426}, {"file_name": "ADE_test_00003187.jpg", "width": 852, "id": 25261, "height": 480}, {"file_name": "ADE_test_00003188.jpg", "width": 764, "id": 25262, "height": 512}, {"file_name": "ADE_test_00003189.jpg", "width": 427, "id": 25263, "height": 640}, {"file_name": "ADE_test_00003190.jpg", "width": 720, "id": 25264, "height": 480}, {"file_name": "ADE_test_00003191.jpg", "width": 550, "id": 25265, "height": 366}, {"file_name": "ADE_test_00003192.jpg", "width": 682, "id": 25266, "height": 512}, {"file_name": "ADE_test_00003193.jpg", "width": 512, "id": 25267, "height": 770}, {"file_name": "ADE_test_00003194.jpg", "width": 683, "id": 25268, "height": 512}, {"file_name": "ADE_test_00003195.jpg", "width": 683, "id": 25269, "height": 512}, {"file_name": "ADE_test_00003196.jpg", "width": 770, "id": 25270, "height": 512}, {"file_name": "ADE_test_00003197.jpg", "width": 880, "id": 25271, "height": 400}, {"file_name": "ADE_test_00003198.jpg", "width": 683, "id": 25272, "height": 512}, {"file_name": "ADE_test_00003199.jpg", "width": 610, "id": 25273, "height": 512}, {"file_name": "ADE_test_00003200.jpg", "width": 877, "id": 25274, "height": 512}, {"file_name": "ADE_test_00003201.jpg", "width": 500, "id": 25275, "height": 350}, {"file_name": "ADE_test_00003202.jpg", "width": 764, "id": 25276, "height": 512}, {"file_name": "ADE_test_00003203.jpg", "width": 500, "id": 25277, "height": 387}, {"file_name": "ADE_test_00003204.jpg", "width": 683, "id": 25278, "height": 512}, {"file_name": "ADE_test_00003205.jpg", "width": 683, "id": 25279, "height": 512}, {"file_name": "ADE_test_00003206.jpg", "width": 700, "id": 25280, "height": 380}, {"file_name": "ADE_test_00003207.jpg", "width": 435, "id": 25281, "height": 326}, {"file_name": "ADE_test_00003208.jpg", "width": 512, "id": 25282, "height": 682}, {"file_name": "ADE_test_00003209.jpg", "width": 480, "id": 25283, "height": 853}, {"file_name": "ADE_test_00003210.jpg", "width": 620, "id": 25284, "height": 413}, {"file_name": "ADE_test_00003211.jpg", "width": 500, "id": 25285, "height": 313}, {"file_name": "ADE_test_00003212.jpg", "width": 350, "id": 25286, "height": 500}, {"file_name": "ADE_test_00003213.jpg", "width": 650, "id": 25287, "height": 365}, {"file_name": "ADE_test_00003214.jpg", "width": 640, "id": 25288, "height": 453}, {"file_name": "ADE_test_00003215.jpg", "width": 683, "id": 25289, "height": 512}, {"file_name": "ADE_test_00003216.jpg", "width": 640, "id": 25290, "height": 425}, {"file_name": "ADE_test_00003217.jpg", "width": 768, "id": 25291, "height": 512}, {"file_name": "ADE_test_00003218.jpg", "width": 348, "id": 25292, "height": 348}, {"file_name": "ADE_test_00003219.jpg", "width": 852, "id": 25293, "height": 480}, {"file_name": "ADE_test_00003220.jpg", "width": 771, "id": 25294, "height": 512}, {"file_name": "ADE_test_00003221.jpg", "width": 512, "id": 25295, "height": 766}, {"file_name": "ADE_test_00003222.jpg", "width": 620, "id": 25296, "height": 387}, {"file_name": "ADE_test_00003223.jpg", "width": 824, "id": 25297, "height": 512}, {"file_name": "ADE_test_00003224.jpg", "width": 728, "id": 25298, "height": 512}, {"file_name": "ADE_test_00003225.jpg", "width": 682, "id": 25299, "height": 512}, {"file_name": "ADE_test_00003226.jpg", "width": 683, "id": 25300, "height": 512}, {"file_name": "ADE_test_00003227.jpg", "width": 910, "id": 25301, "height": 512}, {"file_name": "ADE_test_00003228.jpg", "width": 819, "id": 25302, "height": 512}, {"file_name": "ADE_test_00003229.jpg", "width": 480, "id": 25303, "height": 360}, {"file_name": "ADE_test_00003230.jpg", "width": 500, "id": 25304, "height": 334}, {"file_name": "ADE_test_00003231.jpg", "width": 683, "id": 25305, "height": 512}, {"file_name": "ADE_test_00003232.jpg", "width": 852, "id": 25306, "height": 480}, {"file_name": "ADE_test_00003233.jpg", "width": 683, "id": 25307, "height": 512}, {"file_name": "ADE_test_00003234.jpg", "width": 512, "id": 25308, "height": 683}, {"file_name": "ADE_test_00003235.jpg", "width": 852, "id": 25309, "height": 480}, {"file_name": "ADE_test_00003236.jpg", "width": 500, "id": 25310, "height": 334}, {"file_name": "ADE_test_00003237.jpg", "width": 765, "id": 25311, "height": 512}, {"file_name": "ADE_test_00003238.jpg", "width": 769, "id": 25312, "height": 512}, {"file_name": "ADE_test_00003240.jpg", "width": 750, "id": 25313, "height": 512}, {"file_name": "ADE_test_00003241.jpg", "width": 717, "id": 25314, "height": 512}, {"file_name": "ADE_test_00003242.jpg", "width": 771, "id": 25315, "height": 512}, {"file_name": "ADE_test_00003243.jpg", "width": 650, "id": 25316, "height": 488}, {"file_name": "ADE_test_00003244.jpg", "width": 784, "id": 25317, "height": 512}, {"file_name": "ADE_test_00003245.jpg", "width": 509, "id": 25318, "height": 382}, {"file_name": "ADE_test_00003246.jpg", "width": 768, "id": 25319, "height": 512}, {"file_name": "ADE_test_00003247.jpg", "width": 768, "id": 25320, "height": 512}, {"file_name": "ADE_test_00003248.jpg", "width": 731, "id": 25321, "height": 512}, {"file_name": "ADE_test_00003249.jpg", "width": 470, "id": 25322, "height": 352}, {"file_name": "ADE_test_00003250.jpg", "width": 768, "id": 25323, "height": 512}, {"file_name": "ADE_test_00003251.jpg", "width": 400, "id": 25324, "height": 320}, {"file_name": "ADE_test_00003252.jpg", "width": 852, "id": 25325, "height": 480}, {"file_name": "ADE_test_00003253.jpg", "width": 768, "id": 25326, "height": 512}, {"file_name": "ADE_test_00003254.jpg", "width": 683, "id": 25327, "height": 512}, {"file_name": "ADE_test_00003255.jpg", "width": 512, "id": 25328, "height": 768}, {"file_name": "ADE_test_00003256.jpg", "width": 770, "id": 25329, "height": 512}, {"file_name": "ADE_test_00003257.jpg", "width": 683, "id": 25330, "height": 512}, {"file_name": "ADE_test_00003258.jpg", "width": 683, "id": 25331, "height": 512}, {"file_name": "ADE_test_00003259.jpg", "width": 512, "id": 25332, "height": 769}, {"file_name": "ADE_test_00003260.jpg", "width": 768, "id": 25333, "height": 512}, {"file_name": "ADE_test_00003261.jpg", "width": 683, "id": 25334, "height": 512}, {"file_name": "ADE_test_00003262.jpg", "width": 621, "id": 25335, "height": 414}, {"file_name": "ADE_test_00003263.jpg", "width": 852, "id": 25336, "height": 480}, {"file_name": "ADE_test_00003264.jpg", "width": 768, "id": 25337, "height": 512}, {"file_name": "ADE_test_00003265.jpg", "width": 768, "id": 25338, "height": 512}, {"file_name": "ADE_test_00003266.jpg", "width": 500, "id": 25339, "height": 750}, {"file_name": "ADE_test_00003267.jpg", "width": 683, "id": 25340, "height": 512}, {"file_name": "ADE_test_00003268.jpg", "width": 748, "id": 25341, "height": 512}, {"file_name": "ADE_test_00003269.jpg", "width": 347, "id": 25342, "height": 506}, {"file_name": "ADE_test_00003270.jpg", "width": 620, "id": 25343, "height": 500}, {"file_name": "ADE_test_00003271.jpg", "width": 641, "id": 25344, "height": 512}, {"file_name": "ADE_test_00003272.jpg", "width": 910, "id": 25345, "height": 512}, {"file_name": "ADE_test_00003273.jpg", "width": 594, "id": 25346, "height": 395}, {"file_name": "ADE_test_00003274.jpg", "width": 910, "id": 25347, "height": 512}, {"file_name": "ADE_test_00003275.jpg", "width": 910, "id": 25348, "height": 512}, {"file_name": "ADE_test_00003276.jpg", "width": 450, "id": 25349, "height": 318}, {"file_name": "ADE_test_00003277.jpg", "width": 634, "id": 25350, "height": 393}, {"file_name": "ADE_test_00003278.jpg", "width": 749, "id": 25351, "height": 512}, {"file_name": "ADE_test_00003279.jpg", "width": 974, "id": 25352, "height": 512}, {"file_name": "ADE_test_00003280.jpg", "width": 768, "id": 25353, "height": 512}, {"file_name": "ADE_test_00003281.jpg", "width": 683, "id": 25354, "height": 512}, {"file_name": "ADE_test_00003282.jpg", "width": 620, "id": 25355, "height": 371}, {"file_name": "ADE_test_00003283.jpg", "width": 1787, "id": 25356, "height": 512}, {"file_name": "ADE_test_00003284.jpg", "width": 768, "id": 25357, "height": 512}, {"file_name": "ADE_test_00003285.jpg", "width": 683, "id": 25358, "height": 512}, {"file_name": "ADE_test_00003286.jpg", "width": 553, "id": 25359, "height": 369}, {"file_name": "ADE_test_00003287.jpg", "width": 775, "id": 25360, "height": 512}, {"file_name": "ADE_test_00003288.jpg", "width": 500, "id": 25361, "height": 333}, {"file_name": "ADE_test_00003289.jpg", "width": 766, "id": 25362, "height": 512}, {"file_name": "ADE_test_00003291.jpg", "width": 559, "id": 25363, "height": 360}, {"file_name": "ADE_test_00003292.jpg", "width": 620, "id": 25364, "height": 380}, {"file_name": "ADE_test_00003293.jpg", "width": 683, "id": 25365, "height": 512}, {"file_name": "ADE_test_00003294.jpg", "width": 620, "id": 25366, "height": 387}, {"file_name": "ADE_test_00003295.jpg", "width": 520, "id": 25367, "height": 347}, {"file_name": "ADE_test_00003296.jpg", "width": 700, "id": 25368, "height": 507}, {"file_name": "ADE_test_00003297.jpg", "width": 635, "id": 25369, "height": 336}, {"file_name": "ADE_test_00003298.jpg", "width": 726, "id": 25370, "height": 512}, {"file_name": "ADE_test_00003299.jpg", "width": 852, "id": 25371, "height": 480}, {"file_name": "ADE_test_00003300.jpg", "width": 769, "id": 25372, "height": 512}, {"file_name": "ADE_test_00003301.jpg", "width": 590, "id": 25373, "height": 350}, {"file_name": "ADE_test_00003302.jpg", "width": 765, "id": 25374, "height": 512}, {"file_name": "ADE_test_00003303.jpg", "width": 852, "id": 25375, "height": 480}, {"file_name": "ADE_test_00003304.jpg", "width": 518, "id": 25376, "height": 512}, {"file_name": "ADE_test_00003305.jpg", "width": 768, "id": 25377, "height": 512}, {"file_name": "ADE_test_00003306.jpg", "width": 620, "id": 25378, "height": 494}, {"file_name": "ADE_test_00003307.jpg", "width": 541, "id": 25379, "height": 320}, {"file_name": "ADE_test_00003308.jpg", "width": 649, "id": 25380, "height": 431}, {"file_name": "ADE_test_00003309.jpg", "width": 909, "id": 25381, "height": 512}, {"file_name": "ADE_test_00003310.jpg", "width": 773, "id": 25382, "height": 512}, {"file_name": "ADE_test_00003311.jpg", "width": 400, "id": 25383, "height": 300}, {"file_name": "ADE_test_00003312.jpg", "width": 550, "id": 25384, "height": 413}, {"file_name": "ADE_test_00003313.jpg", "width": 689, "id": 25385, "height": 512}, {"file_name": "ADE_test_00003314.jpg", "width": 624, "id": 25386, "height": 365}, {"file_name": "ADE_test_00003315.jpg", "width": 600, "id": 25387, "height": 345}, {"file_name": "ADE_test_00003316.jpg", "width": 852, "id": 25388, "height": 480}, {"file_name": "ADE_test_00003317.jpg", "width": 682, "id": 25389, "height": 512}, {"file_name": "ADE_test_00003318.jpg", "width": 913, "id": 25390, "height": 512}, {"file_name": "ADE_test_00003319.jpg", "width": 650, "id": 25391, "height": 488}, {"file_name": "ADE_test_00003320.jpg", "width": 945, "id": 25392, "height": 512}, {"file_name": "ADE_test_00003321.jpg", "width": 651, "id": 25393, "height": 512}, {"file_name": "ADE_test_00003322.jpg", "width": 640, "id": 25394, "height": 480}, {"file_name": "ADE_test_00003323.jpg", "width": 472, "id": 25395, "height": 355}, {"file_name": "ADE_test_00003324.jpg", "width": 512, "id": 25396, "height": 683}, {"file_name": "ADE_test_00003325.jpg", "width": 512, "id": 25397, "height": 771}, {"file_name": "ADE_test_00003326.jpg", "width": 512, "id": 25398, "height": 688}, {"file_name": "ADE_test_00003327.jpg", "width": 512, "id": 25399, "height": 683}, {"file_name": "ADE_test_00003328.jpg", "width": 480, "id": 25400, "height": 640}, {"file_name": "ADE_test_00003329.jpg", "width": 512, "id": 25401, "height": 910}, {"file_name": "ADE_test_00003330.jpg", "width": 512, "id": 25402, "height": 683}, {"file_name": "ADE_test_00003331.jpg", "width": 773, "id": 25403, "height": 512}, {"file_name": "ADE_test_00003332.jpg", "width": 640, "id": 25404, "height": 480}, {"file_name": "ADE_test_00003333.jpg", "width": 512, "id": 25405, "height": 683}, {"file_name": "ADE_test_00003334.jpg", "width": 683, "id": 25406, "height": 512}, {"file_name": "ADE_test_00003335.jpg", "width": 683, "id": 25407, "height": 512}, {"file_name": "ADE_test_00003336.jpg", "width": 512, "id": 25408, "height": 666}, {"file_name": "ADE_test_00003337.jpg", "width": 770, "id": 25409, "height": 512}, {"file_name": "ADE_test_00003338.jpg", "width": 770, "id": 25410, "height": 512}, {"file_name": "ADE_test_00003339.jpg", "width": 750, "id": 25411, "height": 500}, {"file_name": "ADE_test_00003340.jpg", "width": 771, "id": 25412, "height": 512}, {"file_name": "ADE_test_00003341.jpg", "width": 857, "id": 25413, "height": 512}, {"file_name": "ADE_test_00003342.jpg", "width": 683, "id": 25414, "height": 512}, {"file_name": "ADE_test_00003343.jpg", "width": 683, "id": 25415, "height": 512}, {"file_name": "ADE_test_00003344.jpg", "width": 683, "id": 25416, "height": 512}, {"file_name": "ADE_test_00003345.jpg", "width": 683, "id": 25417, "height": 512}, {"file_name": "ADE_test_00003346.jpg", "width": 512, "id": 25418, "height": 694}, {"file_name": "ADE_test_00003347.jpg", "width": 765, "id": 25419, "height": 512}, {"file_name": "ADE_test_00003348.jpg", "width": 911, "id": 25420, "height": 512}, {"file_name": "ADE_test_00003349.jpg", "width": 690, "id": 25421, "height": 512}, {"file_name": "ADE_test_00003350.jpg", "width": 640, "id": 25422, "height": 480}, {"file_name": "ADE_test_00003351.jpg", "width": 682, "id": 25423, "height": 512}, {"file_name": "ADE_test_00003352.jpg", "width": 683, "id": 25424, "height": 512}, {"file_name": "ADE_test_00003353.jpg", "width": 638, "id": 25425, "height": 512}, {"file_name": "ADE_test_00003354.jpg", "width": 683, "id": 25426, "height": 512}, {"file_name": "ADE_test_00003355.jpg", "width": 500, "id": 25427, "height": 500}, {"file_name": "ADE_test_00003356.jpg", "width": 771, "id": 25428, "height": 512}, {"file_name": "ADE_test_00003357.jpg", "width": 582, "id": 25429, "height": 512}, {"file_name": "ADE_test_00003358.jpg", "width": 640, "id": 25430, "height": 478}, {"file_name": "ADE_test_00003359.jpg", "width": 756, "id": 25431, "height": 512}, {"file_name": "ADE_test_00003360.jpg", "width": 576, "id": 25432, "height": 412}, {"file_name": "ADE_test_00003361.jpg", "width": 604, "id": 25433, "height": 453}, {"file_name": "ADE_test_00003362.jpg", "width": 683, "id": 25434, "height": 512}, {"file_name": "ADE_test_00003363.jpg", "width": 480, "id": 25435, "height": 360}, {"file_name": "ADE_test_00003364.jpg", "width": 599, "id": 25436, "height": 449}, {"file_name": "ADE_test_00003365.jpg", "width": 600, "id": 25437, "height": 450}, {"file_name": "ADE_test_00003366.jpg", "width": 683, "id": 25438, "height": 512}, {"file_name": "ADE_test_00003367.jpg", "width": 640, "id": 25439, "height": 478}, {"file_name": "ADE_test_00003368.jpg", "width": 683, "id": 25440, "height": 512}, {"file_name": "ADE_test_00003369.jpg", "width": 575, "id": 25441, "height": 390}, {"file_name": "ADE_test_00003370.jpg", "width": 646, "id": 25442, "height": 512}, {"file_name": "ADE_test_00003371.jpg", "width": 765, "id": 25443, "height": 512}, {"file_name": "ADE_test_00003372.jpg", "width": 767, "id": 25444, "height": 512}, {"file_name": "ADE_test_00003373.jpg", "width": 697, "id": 25445, "height": 512}, {"file_name": "ADE_test_00003374.jpg", "width": 811, "id": 25446, "height": 512}, {"file_name": "ADE_test_00003375.jpg", "width": 600, "id": 25447, "height": 450}, {"file_name": "ADE_test_00003376.jpg", "width": 819, "id": 25448, "height": 512}, {"file_name": "ADE_test_00003377.jpg", "width": 620, "id": 25449, "height": 413}, {"file_name": "ADE_test_00003378.jpg", "width": 852, "id": 25450, "height": 480}, {"file_name": "ADE_test_00003379.jpg", "width": 773, "id": 25451, "height": 512}, {"file_name": "ADE_test_00003380.jpg", "width": 640, "id": 25452, "height": 447}, {"file_name": "ADE_test_00003381.jpg", "width": 636, "id": 25453, "height": 357}, {"file_name": "ADE_test_00003382.jpg", "width": 512, "id": 25454, "height": 516}, {"file_name": "ADE_test_00003383.jpg", "width": 695, "id": 25455, "height": 512}, {"file_name": "ADE_test_00003384.jpg", "width": 852, "id": 25456, "height": 480}, {"file_name": "ADE_test_00003385.jpg", "width": 683, "id": 25457, "height": 512}, {"file_name": "ADE_test_00003386.jpg", "width": 358, "id": 25458, "height": 478}, {"file_name": "ADE_test_00003387.jpg", "width": 768, "id": 25459, "height": 512}, {"file_name": "ADE_test_00003388.jpg", "width": 768, "id": 25460, "height": 512}, {"file_name": "ADE_test_00003389.jpg", "width": 683, "id": 25461, "height": 512}, {"file_name": "ADE_test_00003390.jpg", "width": 683, "id": 25462, "height": 512}, {"file_name": "ADE_test_00003391.jpg", "width": 768, "id": 25463, "height": 512}, {"file_name": "ADE_test_00003392.jpg", "width": 640, "id": 25464, "height": 480}, {"file_name": "ADE_test_00003393.jpg", "width": 650, "id": 25465, "height": 366}, {"file_name": "ADE_test_00003394.jpg", "width": 620, "id": 25466, "height": 349}, {"file_name": "ADE_test_00003395.jpg", "width": 783, "id": 25467, "height": 512}, {"file_name": "ADE_test_00003396.jpg", "width": 769, "id": 25468, "height": 512}, {"file_name": "ADE_test_00003397.jpg", "width": 768, "id": 25469, "height": 512}, {"file_name": "ADE_test_00003398.jpg", "width": 683, "id": 25470, "height": 512}, {"file_name": "ADE_test_00003399.jpg", "width": 683, "id": 25471, "height": 512}, {"file_name": "ADE_test_00003400.jpg", "width": 768, "id": 25472, "height": 512}, {"file_name": "ADE_test_00003401.jpg", "width": 773, "id": 25473, "height": 512}, {"file_name": "ADE_test_00003402.jpg", "width": 512, "id": 25474, "height": 683}, {"file_name": "ADE_test_00003403.jpg", "width": 750, "id": 25475, "height": 512}, {"file_name": "ADE_test_00003404.jpg", "width": 768, "id": 25476, "height": 512}, {"file_name": "ADE_test_00003405.jpg", "width": 1024, "id": 25477, "height": 512}, {"file_name": "ADE_test_00003406.jpg", "width": 640, "id": 25478, "height": 480}, {"file_name": "ADE_test_00003407.jpg", "width": 512, "id": 25479, "height": 684}, {"file_name": "ADE_test_00003408.jpg", "width": 683, "id": 25480, "height": 512}, {"file_name": "ADE_test_00003409.jpg", "width": 683, "id": 25481, "height": 512}, {"file_name": "ADE_test_00003410.jpg", "width": 678, "id": 25482, "height": 512}, {"file_name": "ADE_test_00003411.jpg", "width": 512, "id": 25483, "height": 640}, {"file_name": "ADE_test_00003412.jpg", "width": 764, "id": 25484, "height": 512}, {"file_name": "ADE_test_00003413.jpg", "width": 683, "id": 25485, "height": 512}, {"file_name": "ADE_test_00003414.jpg", "width": 640, "id": 25486, "height": 480}, {"file_name": "ADE_test_00003415.jpg", "width": 797, "id": 25487, "height": 512}, {"file_name": "ADE_test_00003416.jpg", "width": 768, "id": 25488, "height": 512}, {"file_name": "ADE_test_00003417.jpg", "width": 765, "id": 25489, "height": 512}, {"file_name": "ADE_test_00003418.jpg", "width": 910, "id": 25490, "height": 512}, {"file_name": "ADE_test_00003419.jpg", "width": 765, "id": 25491, "height": 512}, {"file_name": "ADE_test_00003420.jpg", "width": 768, "id": 25492, "height": 512}, {"file_name": "ADE_test_00003421.jpg", "width": 768, "id": 25493, "height": 512}, {"file_name": "ADE_test_00003422.jpg", "width": 910, "id": 25494, "height": 512}, {"file_name": "ADE_test_00003423.jpg", "width": 771, "id": 25495, "height": 512}, {"file_name": "ADE_test_00003424.jpg", "width": 1024, "id": 25496, "height": 495}, {"file_name": "ADE_test_00003425.jpg", "width": 762, "id": 25497, "height": 512}, {"file_name": "ADE_test_00003426.jpg", "width": 768, "id": 25498, "height": 512}, {"file_name": "ADE_test_00003427.jpg", "width": 768, "id": 25499, "height": 512}, {"file_name": "ADE_test_00003428.jpg", "width": 768, "id": 25500, "height": 512}, {"file_name": "ADE_test_00003429.jpg", "width": 768, "id": 25501, "height": 512}, {"file_name": "ADE_test_00003430.jpg", "width": 910, "id": 25502, "height": 512}, {"file_name": "ADE_test_00003431.jpg", "width": 910, "id": 25503, "height": 512}, {"file_name": "ADE_test_00003432.jpg", "width": 520, "id": 25504, "height": 390}, {"file_name": "ADE_test_00003433.jpg", "width": 740, "id": 25505, "height": 320}, {"file_name": "ADE_test_00003434.jpg", "width": 819, "id": 25506, "height": 512}, {"file_name": "ADE_test_00003435.jpg", "width": 683, "id": 25507, "height": 512}, {"file_name": "ADE_test_00003436.jpg", "width": 768, "id": 25508, "height": 512}, {"file_name": "ADE_test_00003437.jpg", "width": 787, "id": 25509, "height": 512}, {"file_name": "ADE_test_00003438.jpg", "width": 910, "id": 25510, "height": 512}, {"file_name": "ADE_test_00003439.jpg", "width": 554, "id": 25511, "height": 405}, {"file_name": "ADE_test_00003440.jpg", "width": 821, "id": 25512, "height": 512}, {"file_name": "ADE_test_00003441.jpg", "width": 512, "id": 25513, "height": 716}, {"file_name": "ADE_test_00003442.jpg", "width": 512, "id": 25514, "height": 685}, {"file_name": "ADE_test_00003443.jpg", "width": 512, "id": 25515, "height": 772}, {"file_name": "ADE_test_00003444.jpg", "width": 512, "id": 25516, "height": 681}, {"file_name": "ADE_test_00003445.jpg", "width": 512, "id": 25517, "height": 683}, {"file_name": "ADE_test_00003446.jpg", "width": 512, "id": 25518, "height": 910}, {"file_name": "ADE_test_00003447.jpg", "width": 512, "id": 25519, "height": 683}, {"file_name": "ADE_test_00003448.jpg", "width": 512, "id": 25520, "height": 683}, {"file_name": "ADE_test_00003449.jpg", "width": 640, "id": 25521, "height": 480}, {"file_name": "ADE_test_00003450.jpg", "width": 512, "id": 25522, "height": 683}, {"file_name": "ADE_test_00003451.jpg", "width": 768, "id": 25523, "height": 512}, {"file_name": "ADE_test_00003452.jpg", "width": 512, "id": 25524, "height": 702}, {"file_name": "ADE_test_00003453.jpg", "width": 512, "id": 25525, "height": 921}, {"file_name": "ADE_test_00003454.jpg", "width": 512, "id": 25526, "height": 683}, {"file_name": "ADE_test_00003455.jpg", "width": 512, "id": 25527, "height": 683}, {"file_name": "ADE_test_00003456.jpg", "width": 512, "id": 25528, "height": 683}, {"file_name": "ADE_test_00003457.jpg", "width": 512, "id": 25529, "height": 770}, {"file_name": "ADE_test_00003458.jpg", "width": 512, "id": 25530, "height": 685}, {"file_name": "ADE_test_00003459.jpg", "width": 512, "id": 25531, "height": 683}, {"file_name": "ADE_test_00003460.jpg", "width": 512, "id": 25532, "height": 683}, {"file_name": "ADE_test_00003461.jpg", "width": 512, "id": 25533, "height": 978}, {"file_name": "ADE_test_00003462.jpg", "width": 768, "id": 25534, "height": 512}, {"file_name": "ADE_test_00003463.jpg", "width": 512, "id": 25535, "height": 770}, {"file_name": "ADE_test_00003464.jpg", "width": 1024, "id": 25536, "height": 1024}, {"file_name": "ADE_test_00003465.jpg", "width": 512, "id": 25537, "height": 719}, {"file_name": "ADE_test_00003466.jpg", "width": 512, "id": 25538, "height": 777}, {"file_name": "ADE_test_00003467.jpg", "width": 512, "id": 25539, "height": 771}, {"file_name": "ADE_test_00003468.jpg", "width": 512, "id": 25540, "height": 765}, {"file_name": "ADE_test_00003469.jpg", "width": 512, "id": 25541, "height": 768}, {"file_name": "ADE_test_00003470.jpg", "width": 512, "id": 25542, "height": 768}, {"file_name": "ADE_test_00003471.jpg", "width": 512, "id": 25543, "height": 909}, {"file_name": "ADE_test_00003472.jpg", "width": 768, "id": 25544, "height": 512}, {"file_name": "ADE_test_00003473.jpg", "width": 512, "id": 25545, "height": 685}, {"file_name": "ADE_test_00003474.jpg", "width": 512, "id": 25546, "height": 910}, {"file_name": "ADE_test_00003475.jpg", "width": 512, "id": 25547, "height": 640}, {"file_name": "ADE_test_00003476.jpg", "width": 772, "id": 25548, "height": 512}, {"file_name": "ADE_test_00003477.jpg", "width": 771, "id": 25549, "height": 512}, {"file_name": "ADE_test_00003478.jpg", "width": 512, "id": 25550, "height": 765}, {"file_name": "ADE_test_00003479.jpg", "width": 512, "id": 25551, "height": 715}, {"file_name": "ADE_test_00003480.jpg", "width": 512, "id": 25552, "height": 768}, {"file_name": "ADE_test_00003481.jpg", "width": 683, "id": 25553, "height": 512}, {"file_name": "ADE_test_00003482.jpg", "width": 480, "id": 25554, "height": 640}, {"file_name": "ADE_test_00003483.jpg", "width": 770, "id": 25555, "height": 512}, {"file_name": "ADE_test_00003484.jpg", "width": 683, "id": 25556, "height": 512}, {"file_name": "ADE_test_00003485.jpg", "width": 512, "id": 25557, "height": 770}, {"file_name": "ADE_test_00003486.jpg", "width": 512, "id": 25558, "height": 765}, {"file_name": "ADE_test_00003487.jpg", "width": 512, "id": 25559, "height": 683}, {"file_name": "ADE_test_00003488.jpg", "width": 512, "id": 25560, "height": 716}, {"file_name": "ADE_test_00003489.jpg", "width": 512, "id": 25561, "height": 750}], "categories": [{"id": 1, "name": "bed"}, {"id": 2, "name": "windowpane"}, {"id": 3, "name": "cabinet"}, {"id": 4, "name": "person"}, {"id": 5, "name": "door"}, {"id": 6, "name": "table"}, {"id": 7, "name": "curtain"}, {"id": 8, "name": "chair"}, {"id": 9, "name": "car"}, {"id": 10, "name": "painting"}, {"id": 11, "name": "sofa"}, {"id": 12, "name": "shelf"}, {"id": 13, "name": "mirror"}, {"id": 14, "name": "armchair"}, {"id": 15, "name": "seat"}, {"id": 16, "name": "fence"}, {"id": 17, "name": "desk"}, {"id": 18, "name": "wardrobe"}, {"id": 19, "name": "lamp"}, {"id": 20, "name": "bathtub"}, {"id": 21, "name": "railing"}, {"id": 22, "name": "cushion"}, {"id": 23, "name": "box"}, {"id": 24, "name": "column"}, {"id": 25, "name": "signboard"}, {"id": 26, "name": "chest of drawers"}, {"id": 27, "name": "counter"}, {"id": 28, "name": "sink"}, {"id": 29, "name": "fireplace"}, {"id": 30, "name": "refrigerator"}, {"id": 31, "name": "stairs"}, {"id": 32, "name": "case"}, {"id": 33, "name": "pool table"}, {"id": 34, "name": "pillow"}, {"id": 35, "name": "screen door"}, {"id": 36, "name": "bookcase"}, {"id": 37, "name": "coffee table"}, {"id": 38, "name": "toilet"}, {"id": 39, "name": "flower"}, {"id": 40, "name": "book"}, {"id": 41, "name": "bench"}, {"id": 42, "name": "countertop"}, {"id": 43, "name": "stove"}, {"id": 44, "name": "palm"}, {"id": 45, "name": "kitchen island"}, {"id": 46, "name": "computer"}, {"id": 47, "name": "swivel chair"}, {"id": 48, "name": "boat"}, {"id": 49, "name": "arcade machine"}, {"id": 50, "name": "bus"}, {"id": 51, "name": "towel"}, {"id": 52, "name": "light"}, {"id": 53, "name": "truck"}, {"id": 54, "name": "chandelier"}, {"id": 55, "name": "awning"}, {"id": 56, "name": "streetlight"}, {"id": 57, "name": "booth"}, {"id": 58, "name": "television receiver"}, {"id": 59, "name": "airplane"}, {"id": 60, "name": "apparel"}, {"id": 61, "name": "pole"}, {"id": 62, "name": "bannister"}, {"id": 63, "name": "ottoman"}, {"id": 64, "name": "bottle"}, {"id": 65, "name": "van"}, {"id": 66, "name": "ship"}, {"id": 67, "name": "fountain"}, {"id": 68, "name": "washer"}, {"id": 69, "name": "plaything"}, {"id": 70, "name": "stool"}, {"id": 71, "name": "barrel"}, {"id": 72, "name": "basket"}, {"id": 73, "name": "bag"}, {"id": 74, "name": "minibike"}, {"id": 75, "name": "oven"}, {"id": 76, "name": "ball"}, {"id": 77, "name": "food"}, {"id": 78, "name": "step"}, {"id": 79, "name": "trade name"}, {"id": 80, "name": "microwave"}, {"id": 81, "name": "pot"}, {"id": 82, "name": "animal"}, {"id": 83, "name": "bicycle"}, {"id": 84, "name": "dishwasher"}, {"id": 85, "name": "screen"}, {"id": 86, "name": "sculpture"}, {"id": 87, "name": "hood"}, {"id": 88, "name": "sconce"}, {"id": 89, "name": "vase"}, {"id": 90, "name": "traffic light"}, {"id": 91, "name": "tray"}, {"id": 92, "name": "ashcan"}, {"id": 93, "name": "fan"}, {"id": 94, "name": "plate"}, {"id": 95, "name": "monitor"}, {"id": 96, "name": "bulletin board"}, {"id": 97, "name": "radiator"}, {"id": 98, "name": "glass"}, {"id": 99, "name": "clock"}, {"id": 100, "name": "flag"}]}
\ No newline at end of file
diff --git a/videocutler/datasets/prepare_ade20k_ins_seg.py b/videocutler/datasets/prepare_ade20k_ins_seg.py
new file mode 100644
index 0000000000000000000000000000000000000000..e4e951adcd84dbd08b3d6570aee56887bf1c69a6
--- /dev/null
+++ b/videocutler/datasets/prepare_ade20k_ins_seg.py
@@ -0,0 +1,112 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Copyright (c) Facebook, Inc. and its affiliates.
+import glob
+import json
+import os
+from collections import Counter
+
+import numpy as np
+import tqdm
+from panopticapi.utils import IdGenerator, save_json
+from PIL import Image
+import pycocotools.mask as mask_util
+
+
+if __name__ == "__main__":
+ dataset_dir = os.getenv("DETECTRON2_DATASETS", "datasets")
+
+ for name, dirname in [("train", "training"), ("val", "validation")]:
+ image_dir = os.path.join(dataset_dir, f"ADEChallengeData2016/images/{dirname}/")
+ instance_dir = os.path.join(
+ dataset_dir, f"ADEChallengeData2016/annotations_instance/{dirname}/"
+ )
+
+ # img_id = 0
+ ann_id = 1
+
+ # json
+ out_file = os.path.join(dataset_dir, f"ADEChallengeData2016/ade20k_instance_{name}.json")
+
+ # json config
+ instance_config_file = "datasets/ade20k_instance_imgCatIds.json"
+ with open(instance_config_file) as f:
+ category_dict = json.load(f)["categories"]
+
+ # load catid mapping
+ # it is important to share category id for both instance and panoptic annotations
+ mapping_file = "datasets/ade20k_instance_catid_mapping.txt"
+ with open(mapping_file) as f:
+ map_id = {}
+ for i, line in enumerate(f.readlines()):
+ if i == 0:
+ continue
+ ins_id, sem_id, _ = line.strip().split()
+ # shift id by 1 because we want it to start from 0!
+ # ignore_label becomes 255
+ map_id[int(ins_id)] = int(sem_id) - 1
+
+ for cat in category_dict:
+ cat["id"] = map_id[cat["id"]]
+
+ filenames = sorted(glob.glob(os.path.join(image_dir, "*.jpg")))
+
+ ann_dict = {}
+ images = []
+ annotations = []
+
+ for idx, filename in enumerate(tqdm.tqdm(filenames)):
+ image = {}
+ image_id = os.path.basename(filename).split(".")[0]
+
+ image["id"] = image_id
+ image["file_name"] = os.path.basename(filename)
+
+ original_format = np.array(Image.open(filename))
+ image["width"] = original_format.shape[1]
+ image["height"] = original_format.shape[0]
+
+ images.append(image)
+
+ filename_instance = os.path.join(instance_dir, image_id + ".png")
+ ins_seg = np.asarray(Image.open(filename_instance))
+ assert ins_seg.dtype == np.uint8
+
+ instance_cat_ids = ins_seg[..., 0]
+ # instance id starts from 1!
+ # because 0 is reserved as VOID label
+ instance_ins_ids = ins_seg[..., 1]
+
+ # process things
+ for thing_id in np.unique(instance_ins_ids):
+ if thing_id == 0:
+ continue
+ mask = instance_ins_ids == thing_id
+ instance_cat_id = np.unique(instance_cat_ids[mask])
+ assert len(instance_cat_id) == 1
+
+ anno = {}
+ anno['id'] = ann_id
+ ann_id += 1
+ anno['image_id'] = image['id']
+ anno["iscrowd"] = int(0)
+ anno["category_id"] = int(map_id[instance_cat_id[0]])
+
+ inds = np.nonzero(mask)
+ ymin, ymax = inds[0].min(), inds[0].max()
+ xmin, xmax = inds[1].min(), inds[1].max()
+ anno["bbox"] = [int(xmin), int(ymin), int(xmax - xmin + 1), int(ymax - ymin + 1)]
+ # if xmax <= xmin or ymax <= ymin:
+ # continue
+ rle = mask_util.encode(np.array(mask[:, :, None], order="F", dtype="uint8"))[0]
+ rle["counts"] = rle["counts"].decode("utf-8")
+ anno["segmentation"] = rle
+ anno["area"] = int(mask_util.area(rle))
+ annotations.append(anno)
+
+ # save this
+ ann_dict['images'] = images
+ ann_dict['categories'] = category_dict
+ ann_dict['annotations'] = annotations
+
+ save_json(ann_dict, out_file)
diff --git a/videocutler/datasets/prepare_ade20k_pan_seg.py b/videocutler/datasets/prepare_ade20k_pan_seg.py
new file mode 100644
index 0000000000000000000000000000000000000000..8b1b03281dd4307c6dad2dc7e2505aacad3e72a3
--- /dev/null
+++ b/videocutler/datasets/prepare_ade20k_pan_seg.py
@@ -0,0 +1,500 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Copyright (c) Facebook, Inc. and its affiliates.
+import glob
+import json
+import os
+from collections import Counter
+
+import numpy as np
+import tqdm
+from panopticapi.utils import IdGenerator, save_json
+from PIL import Image
+
+ADE20K_SEM_SEG_CATEGORIES = [
+ "wall",
+ "building",
+ "sky",
+ "floor",
+ "tree",
+ "ceiling",
+ "road, route",
+ "bed",
+ "window ",
+ "grass",
+ "cabinet",
+ "sidewalk, pavement",
+ "person",
+ "earth, ground",
+ "door",
+ "table",
+ "mountain, mount",
+ "plant",
+ "curtain",
+ "chair",
+ "car",
+ "water",
+ "painting, picture",
+ "sofa",
+ "shelf",
+ "house",
+ "sea",
+ "mirror",
+ "rug",
+ "field",
+ "armchair",
+ "seat",
+ "fence",
+ "desk",
+ "rock, stone",
+ "wardrobe, closet, press",
+ "lamp",
+ "tub",
+ "rail",
+ "cushion",
+ "base, pedestal, stand",
+ "box",
+ "column, pillar",
+ "signboard, sign",
+ "chest of drawers, chest, bureau, dresser",
+ "counter",
+ "sand",
+ "sink",
+ "skyscraper",
+ "fireplace",
+ "refrigerator, icebox",
+ "grandstand, covered stand",
+ "path",
+ "stairs",
+ "runway",
+ "case, display case, showcase, vitrine",
+ "pool table, billiard table, snooker table",
+ "pillow",
+ "screen door, screen",
+ "stairway, staircase",
+ "river",
+ "bridge, span",
+ "bookcase",
+ "blind, screen",
+ "coffee table",
+ "toilet, can, commode, crapper, pot, potty, stool, throne",
+ "flower",
+ "book",
+ "hill",
+ "bench",
+ "countertop",
+ "stove",
+ "palm, palm tree",
+ "kitchen island",
+ "computer",
+ "swivel chair",
+ "boat",
+ "bar",
+ "arcade machine",
+ "hovel, hut, hutch, shack, shanty",
+ "bus",
+ "towel",
+ "light",
+ "truck",
+ "tower",
+ "chandelier",
+ "awning, sunshade, sunblind",
+ "street lamp",
+ "booth",
+ "tv",
+ "plane",
+ "dirt track",
+ "clothes",
+ "pole",
+ "land, ground, soil",
+ "bannister, banister, balustrade, balusters, handrail",
+ "escalator, moving staircase, moving stairway",
+ "ottoman, pouf, pouffe, puff, hassock",
+ "bottle",
+ "buffet, counter, sideboard",
+ "poster, posting, placard, notice, bill, card",
+ "stage",
+ "van",
+ "ship",
+ "fountain",
+ "conveyer belt, conveyor belt, conveyer, conveyor, transporter",
+ "canopy",
+ "washer, automatic washer, washing machine",
+ "plaything, toy",
+ "pool",
+ "stool",
+ "barrel, cask",
+ "basket, handbasket",
+ "falls",
+ "tent",
+ "bag",
+ "minibike, motorbike",
+ "cradle",
+ "oven",
+ "ball",
+ "food, solid food",
+ "step, stair",
+ "tank, storage tank",
+ "trade name",
+ "microwave",
+ "pot",
+ "animal",
+ "bicycle",
+ "lake",
+ "dishwasher",
+ "screen",
+ "blanket, cover",
+ "sculpture",
+ "hood, exhaust hood",
+ "sconce",
+ "vase",
+ "traffic light",
+ "tray",
+ "trash can",
+ "fan",
+ "pier",
+ "crt screen",
+ "plate",
+ "monitor",
+ "bulletin board",
+ "shower",
+ "radiator",
+ "glass, drinking glass",
+ "clock",
+ "flag", # noqa
+]
+
+PALETTE = [
+ [120, 120, 120],
+ [180, 120, 120],
+ [6, 230, 230],
+ [80, 50, 50],
+ [4, 200, 3],
+ [120, 120, 80],
+ [140, 140, 140],
+ [204, 5, 255],
+ [230, 230, 230],
+ [4, 250, 7],
+ [224, 5, 255],
+ [235, 255, 7],
+ [150, 5, 61],
+ [120, 120, 70],
+ [8, 255, 51],
+ [255, 6, 82],
+ [143, 255, 140],
+ [204, 255, 4],
+ [255, 51, 7],
+ [204, 70, 3],
+ [0, 102, 200],
+ [61, 230, 250],
+ [255, 6, 51],
+ [11, 102, 255],
+ [255, 7, 71],
+ [255, 9, 224],
+ [9, 7, 230],
+ [220, 220, 220],
+ [255, 9, 92],
+ [112, 9, 255],
+ [8, 255, 214],
+ [7, 255, 224],
+ [255, 184, 6],
+ [10, 255, 71],
+ [255, 41, 10],
+ [7, 255, 255],
+ [224, 255, 8],
+ [102, 8, 255],
+ [255, 61, 6],
+ [255, 194, 7],
+ [255, 122, 8],
+ [0, 255, 20],
+ [255, 8, 41],
+ [255, 5, 153],
+ [6, 51, 255],
+ [235, 12, 255],
+ [160, 150, 20],
+ [0, 163, 255],
+ [140, 140, 200],
+ [250, 10, 15],
+ [20, 255, 0],
+ [31, 255, 0],
+ [255, 31, 0],
+ [255, 224, 0],
+ [153, 255, 0],
+ [0, 0, 255],
+ [255, 71, 0],
+ [0, 235, 255],
+ [0, 173, 255],
+ [31, 0, 255],
+ [11, 200, 200],
+ [255, 82, 0],
+ [0, 255, 245],
+ [0, 61, 255],
+ [0, 255, 112],
+ [0, 255, 133],
+ [255, 0, 0],
+ [255, 163, 0],
+ [255, 102, 0],
+ [194, 255, 0],
+ [0, 143, 255],
+ [51, 255, 0],
+ [0, 82, 255],
+ [0, 255, 41],
+ [0, 255, 173],
+ [10, 0, 255],
+ [173, 255, 0],
+ [0, 255, 153],
+ [255, 92, 0],
+ [255, 0, 255],
+ [255, 0, 245],
+ [255, 0, 102],
+ [255, 173, 0],
+ [255, 0, 20],
+ [255, 184, 184],
+ [0, 31, 255],
+ [0, 255, 61],
+ [0, 71, 255],
+ [255, 0, 204],
+ [0, 255, 194],
+ [0, 255, 82],
+ [0, 10, 255],
+ [0, 112, 255],
+ [51, 0, 255],
+ [0, 194, 255],
+ [0, 122, 255],
+ [0, 255, 163],
+ [255, 153, 0],
+ [0, 255, 10],
+ [255, 112, 0],
+ [143, 255, 0],
+ [82, 0, 255],
+ [163, 255, 0],
+ [255, 235, 0],
+ [8, 184, 170],
+ [133, 0, 255],
+ [0, 255, 92],
+ [184, 0, 255],
+ [255, 0, 31],
+ [0, 184, 255],
+ [0, 214, 255],
+ [255, 0, 112],
+ [92, 255, 0],
+ [0, 224, 255],
+ [112, 224, 255],
+ [70, 184, 160],
+ [163, 0, 255],
+ [153, 0, 255],
+ [71, 255, 0],
+ [255, 0, 163],
+ [255, 204, 0],
+ [255, 0, 143],
+ [0, 255, 235],
+ [133, 255, 0],
+ [255, 0, 235],
+ [245, 0, 255],
+ [255, 0, 122],
+ [255, 245, 0],
+ [10, 190, 212],
+ [214, 255, 0],
+ [0, 204, 255],
+ [20, 0, 255],
+ [255, 255, 0],
+ [0, 153, 255],
+ [0, 41, 255],
+ [0, 255, 204],
+ [41, 0, 255],
+ [41, 255, 0],
+ [173, 0, 255],
+ [0, 245, 255],
+ [71, 0, 255],
+ [122, 0, 255],
+ [0, 255, 184],
+ [0, 92, 255],
+ [184, 255, 0],
+ [0, 133, 255],
+ [255, 214, 0],
+ [25, 194, 194],
+ [102, 255, 0],
+ [92, 0, 255],
+]
+
+
+if __name__ == "__main__":
+ dataset_dir = os.getenv("DETECTRON2_DATASETS", "datasets")
+
+ for name, dirname in [("train", "training"), ("val", "validation")]:
+ image_dir = os.path.join(dataset_dir, f"ADEChallengeData2016/images/{dirname}/")
+ semantic_dir = os.path.join(dataset_dir, f"ADEChallengeData2016/annotations/{dirname}/")
+ instance_dir = os.path.join(
+ dataset_dir, f"ADEChallengeData2016/annotations_instance/{dirname}/"
+ )
+
+ # folder to store panoptic PNGs
+ out_folder = os.path.join(dataset_dir, f"ADEChallengeData2016/ade20k_panoptic_{name}/")
+ # json with segmentations information
+ out_file = os.path.join(dataset_dir, f"ADEChallengeData2016/ade20k_panoptic_{name}.json")
+
+ if not os.path.isdir(out_folder):
+ print("Creating folder {} for panoptic segmentation PNGs".format(out_folder))
+ os.mkdir(out_folder)
+
+ # json config
+ config_file = "datasets/ade20k_instance_imgCatIds.json"
+ with open(config_file) as f:
+ config = json.load(f)
+
+ # load catid mapping
+ mapping_file = "datasets/ade20k_instance_catid_mapping.txt"
+ with open(mapping_file) as f:
+ map_id = {}
+ for i, line in enumerate(f.readlines()):
+ if i == 0:
+ continue
+ ins_id, sem_id, _ = line.strip().split()
+ # shift id by 1 because we want it to start from 0!
+ # ignore_label becomes 255
+ map_id[int(ins_id) - 1] = int(sem_id) - 1
+
+ ADE20K_150_CATEGORIES = []
+ for cat_id, cat_name in enumerate(ADE20K_SEM_SEG_CATEGORIES):
+ ADE20K_150_CATEGORIES.append(
+ {
+ "name": cat_name,
+ "id": cat_id,
+ "isthing": int(cat_id in map_id.values()),
+ "color": PALETTE[cat_id],
+ }
+ )
+ categories_dict = {cat["id"]: cat for cat in ADE20K_150_CATEGORIES}
+
+ panoptic_json_categories = ADE20K_150_CATEGORIES[:]
+ panoptic_json_images = []
+ panoptic_json_annotations = []
+
+ filenames = sorted(glob.glob(os.path.join(image_dir, "*.jpg")))
+ for idx, filename in enumerate(tqdm.tqdm(filenames)):
+ panoptic_json_image = {}
+ panoptic_json_annotation = {}
+
+ image_id = os.path.basename(filename).split(".")[0]
+
+ panoptic_json_image["id"] = image_id
+ panoptic_json_image["file_name"] = os.path.basename(filename)
+
+ original_format = np.array(Image.open(filename))
+ panoptic_json_image["width"] = original_format.shape[1]
+ panoptic_json_image["height"] = original_format.shape[0]
+
+ pan_seg = np.zeros(
+ (original_format.shape[0], original_format.shape[1], 3), dtype=np.uint8
+ )
+ id_generator = IdGenerator(categories_dict)
+
+ filename_semantic = os.path.join(semantic_dir, image_id + ".png")
+ filename_instance = os.path.join(instance_dir, image_id + ".png")
+
+ sem_seg = np.asarray(Image.open(filename_semantic))
+ ins_seg = np.asarray(Image.open(filename_instance))
+
+ assert sem_seg.dtype == np.uint8
+ assert ins_seg.dtype == np.uint8
+
+ semantic_cat_ids = sem_seg - 1
+ instance_cat_ids = ins_seg[..., 0] - 1
+ # instance id starts from 1!
+ # because 0 is reserved as VOID label
+ instance_ins_ids = ins_seg[..., 1]
+
+ segm_info = []
+
+ # NOTE: there is some overlap between semantic and instance annotation
+ # thus we paste stuffs first
+
+ # process stuffs
+ for semantic_cat_id in np.unique(semantic_cat_ids):
+ if semantic_cat_id == 255:
+ continue
+ if categories_dict[semantic_cat_id]["isthing"]:
+ continue
+ mask = semantic_cat_ids == semantic_cat_id
+ # should not have any overlap
+ assert pan_seg[mask].sum() == 0
+
+ segment_id, color = id_generator.get_id_and_color(semantic_cat_id)
+ pan_seg[mask] = color
+
+ area = np.sum(mask) # segment area computation
+ # bbox computation for a segment
+ hor = np.sum(mask, axis=0)
+ hor_idx = np.nonzero(hor)[0]
+ x = hor_idx[0]
+ width = hor_idx[-1] - x + 1
+ vert = np.sum(mask, axis=1)
+ vert_idx = np.nonzero(vert)[0]
+ y = vert_idx[0]
+ height = vert_idx[-1] - y + 1
+ bbox = [int(x), int(y), int(width), int(height)]
+
+ segm_info.append(
+ {
+ "id": int(segment_id),
+ "category_id": int(semantic_cat_id),
+ "area": int(area),
+ "bbox": bbox,
+ "iscrowd": 0,
+ }
+ )
+
+ # process things
+ for thing_id in np.unique(instance_ins_ids):
+ if thing_id == 0:
+ continue
+ mask = instance_ins_ids == thing_id
+ instance_cat_id = np.unique(instance_cat_ids[mask])
+ assert len(instance_cat_id) == 1
+
+ semantic_cat_id = map_id[instance_cat_id[0]]
+
+ segment_id, color = id_generator.get_id_and_color(semantic_cat_id)
+ pan_seg[mask] = color
+
+ area = np.sum(mask) # segment area computation
+ # bbox computation for a segment
+ hor = np.sum(mask, axis=0)
+ hor_idx = np.nonzero(hor)[0]
+ x = hor_idx[0]
+ width = hor_idx[-1] - x + 1
+ vert = np.sum(mask, axis=1)
+ vert_idx = np.nonzero(vert)[0]
+ y = vert_idx[0]
+ height = vert_idx[-1] - y + 1
+ bbox = [int(x), int(y), int(width), int(height)]
+
+ segm_info.append(
+ {
+ "id": int(segment_id),
+ "category_id": int(semantic_cat_id),
+ "area": int(area),
+ "bbox": bbox,
+ "iscrowd": 0,
+ }
+ )
+
+ panoptic_json_annotation = {
+ "image_id": image_id,
+ "file_name": image_id + ".png",
+ "segments_info": segm_info,
+ }
+
+ Image.fromarray(pan_seg).save(os.path.join(out_folder, image_id + ".png"))
+
+ panoptic_json_images.append(panoptic_json_image)
+ panoptic_json_annotations.append(panoptic_json_annotation)
+
+ # save this
+ d = {
+ "images": panoptic_json_images,
+ "annotations": panoptic_json_annotations,
+ "categories": panoptic_json_categories,
+ }
+
+ save_json(d, out_file)
diff --git a/videocutler/datasets/prepare_ade20k_sem_seg.py b/videocutler/datasets/prepare_ade20k_sem_seg.py
new file mode 100644
index 0000000000000000000000000000000000000000..b0edfeb340edaff45beb14b3f9438aef2c65e78f
--- /dev/null
+++ b/videocutler/datasets/prepare_ade20k_sem_seg.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Copyright (c) Facebook, Inc. and its affiliates.
+import os
+from pathlib import Path
+
+import numpy as np
+import tqdm
+from PIL import Image
+
+
+def convert(input, output):
+ img = np.asarray(Image.open(input))
+ assert img.dtype == np.uint8
+ img = img - 1 # 0 (ignore) becomes 255. others are shifted by 1
+ Image.fromarray(img).save(output)
+
+
+if __name__ == "__main__":
+ dataset_dir = Path(os.getenv("DETECTRON2_DATASETS", "datasets")) / "ADEChallengeData2016"
+ for name in ["training", "validation"]:
+ annotation_dir = dataset_dir / "annotations" / name
+ output_dir = dataset_dir / "annotations_detectron2" / name
+ output_dir.mkdir(parents=True, exist_ok=True)
+ for file in tqdm.tqdm(list(annotation_dir.iterdir())):
+ output_file = output_dir / file.name
+ convert(file, output_file)
diff --git a/videocutler/datasets/prepare_coco_semantic_annos_from_panoptic_annos.py b/videocutler/datasets/prepare_coco_semantic_annos_from_panoptic_annos.py
new file mode 100644
index 0000000000000000000000000000000000000000..3090c9bc2f9a63156a4132e89c635613691eb350
--- /dev/null
+++ b/videocutler/datasets/prepare_coco_semantic_annos_from_panoptic_annos.py
@@ -0,0 +1,84 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Copyright (c) Facebook, Inc. and its affiliates.
+
+import functools
+import json
+import multiprocessing as mp
+import numpy as np
+import os
+import time
+from fvcore.common.download import download
+from panopticapi.utils import rgb2id
+from PIL import Image
+
+from detectron2.data.datasets.builtin_meta import COCO_CATEGORIES
+
+
+def _process_panoptic_to_semantic(input_panoptic, output_semantic, segments, id_map):
+ panoptic = np.asarray(Image.open(input_panoptic), dtype=np.uint32)
+ panoptic = rgb2id(panoptic)
+ output = np.zeros_like(panoptic, dtype=np.uint8) + 255
+ for seg in segments:
+ cat_id = seg["category_id"]
+ new_cat_id = id_map[cat_id]
+ output[panoptic == seg["id"]] = new_cat_id
+ Image.fromarray(output).save(output_semantic)
+
+
+def separate_coco_semantic_from_panoptic(panoptic_json, panoptic_root, sem_seg_root, categories):
+ """
+ Create semantic segmentation annotations from panoptic segmentation
+ annotations, to be used by PanopticFPN.
+ It maps all thing categories to class 0, and maps all unlabeled pixels to class 255.
+ It maps all stuff categories to contiguous ids starting from 1.
+ Args:
+ panoptic_json (str): path to the panoptic json file, in COCO's format.
+ panoptic_root (str): a directory with panoptic annotation files, in COCO's format.
+ sem_seg_root (str): a directory to output semantic annotation files
+ categories (list[dict]): category metadata. Each dict needs to have:
+ "id": corresponds to the "category_id" in the json annotations
+ "isthing": 0 or 1
+ """
+ os.makedirs(sem_seg_root, exist_ok=True)
+
+ id_map = {} # map from category id to id in the output semantic annotation
+ assert len(categories) <= 254
+ for i, k in enumerate(categories):
+ id_map[k["id"]] = i
+ # what is id = 0?
+ # id_map[0] = 255
+ print(id_map)
+
+ with open(panoptic_json) as f:
+ obj = json.load(f)
+
+ pool = mp.Pool(processes=max(mp.cpu_count() // 2, 4))
+
+ def iter_annotations():
+ for anno in obj["annotations"]:
+ file_name = anno["file_name"]
+ segments = anno["segments_info"]
+ input = os.path.join(panoptic_root, file_name)
+ output = os.path.join(sem_seg_root, file_name)
+ yield input, output, segments
+
+ print("Start writing to {} ...".format(sem_seg_root))
+ start = time.time()
+ pool.starmap(
+ functools.partial(_process_panoptic_to_semantic, id_map=id_map),
+ iter_annotations(),
+ chunksize=100,
+ )
+ print("Finished. time: {:.2f}s".format(time.time() - start))
+
+
+if __name__ == "__main__":
+ dataset_dir = os.path.join(os.getenv("DETECTRON2_DATASETS", "datasets"), "coco")
+ for s in ["val2017", "train2017"]:
+ separate_coco_semantic_from_panoptic(
+ os.path.join(dataset_dir, "annotations/panoptic_{}.json".format(s)),
+ os.path.join(dataset_dir, "panoptic_{}".format(s)),
+ os.path.join(dataset_dir, "panoptic_semseg_{}".format(s)),
+ COCO_CATEGORIES,
+ )
diff --git a/videocutler/demo.sh b/videocutler/demo.sh
new file mode 100644
index 0000000000000000000000000000000000000000..baaa6862939b1111809d60ec663b24b72b90874d
--- /dev/null
+++ b/videocutler/demo.sh
@@ -0,0 +1,8 @@
+python demo_video/demo.py \
+ --config-file configs/imagenet_video/video_mask2former_R50_cls_agnostic.yaml \
+ --input docs/demo-videos/99c6b1acf2/*.jpg \
+ --confidence-threshold 0.8 \
+ --output demos/ \
+ # --save-frames True \
+ # --save-masks True \
+ --opts MODEL.WEIGHTS videocutler_m2f_rn50.pth
\ No newline at end of file
diff --git a/videocutler/demo/README.md b/videocutler/demo/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..b32a57e08d320114efd12c307f587d9db28dbcd8
--- /dev/null
+++ b/videocutler/demo/README.md
@@ -0,0 +1,5 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+## VideoCutLER Demo
+
+We provide a command line tool to run a simple demo of builtin configs.
+The usage is explained in [GETTING_STARTED.md](../GETTING_STARTED.md).
diff --git a/videocutler/demo/demo.py b/videocutler/demo/demo.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b0b4d9db88555b99cec9ba6ef703a9ba9e7323d
--- /dev/null
+++ b/videocutler/demo/demo.py
@@ -0,0 +1,194 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from: https://github.com/facebookresearch/detectron2/blob/master/demo/demo.py
+import argparse
+import glob
+import multiprocessing as mp
+import os
+
+# fmt: off
+import sys
+sys.path.insert(1, os.path.join(sys.path[0], '..'))
+# fmt: on
+
+import tempfile
+import time
+import warnings
+
+import cv2
+import numpy as np
+import tqdm
+
+from detectron2.config import get_cfg
+from detectron2.data.detection_utils import read_image
+from detectron2.projects.deeplab import add_deeplab_config
+from detectron2.utils.logger import setup_logger
+
+from mask2former import add_maskformer2_config
+from predictor import VisualizationDemo
+
+
+# constants
+WINDOW_NAME = "mask2former demo"
+
+
+def setup_cfg(args):
+ # load config from file and command-line arguments
+ cfg = get_cfg()
+ add_deeplab_config(cfg)
+ add_maskformer2_config(cfg)
+ cfg.merge_from_file(args.config_file)
+ cfg.merge_from_list(args.opts)
+ cfg.freeze()
+ return cfg
+
+
+def get_parser():
+ parser = argparse.ArgumentParser(description="maskformer2 demo for builtin configs")
+ parser.add_argument(
+ "--config-file",
+ default="configs/coco/panoptic-segmentation/maskformer2_R50_bs16_50ep.yaml",
+ metavar="FILE",
+ help="path to config file",
+ )
+ parser.add_argument("--webcam", action="store_true", help="Take inputs from webcam.")
+ parser.add_argument("--video-input", help="Path to video file.")
+ parser.add_argument(
+ "--input",
+ nargs="+",
+ help="A list of space separated input images; "
+ "or a single glob pattern such as 'directory/*.jpg'",
+ )
+ parser.add_argument(
+ "--output",
+ help="A file or directory to save output visualizations. "
+ "If not given, will show output in an OpenCV window.",
+ )
+
+ parser.add_argument(
+ "--confidence-threshold",
+ type=float,
+ default=0.5,
+ help="Minimum score for instance predictions to be shown",
+ )
+ parser.add_argument(
+ "--opts",
+ help="Modify config options using the command-line 'KEY VALUE' pairs",
+ default=[],
+ nargs=argparse.REMAINDER,
+ )
+ return parser
+
+
+def test_opencv_video_format(codec, file_ext):
+ with tempfile.TemporaryDirectory(prefix="video_format_test") as dir:
+ filename = os.path.join(dir, "test_file" + file_ext)
+ writer = cv2.VideoWriter(
+ filename=filename,
+ fourcc=cv2.VideoWriter_fourcc(*codec),
+ fps=float(30),
+ frameSize=(10, 10),
+ isColor=True,
+ )
+ [writer.write(np.zeros((10, 10, 3), np.uint8)) for _ in range(30)]
+ writer.release()
+ if os.path.isfile(filename):
+ return True
+ return False
+
+
+if __name__ == "__main__":
+ mp.set_start_method("spawn", force=True)
+ args = get_parser().parse_args()
+ setup_logger(name="fvcore")
+ logger = setup_logger()
+ logger.info("Arguments: " + str(args))
+
+ cfg = setup_cfg(args)
+
+ demo = VisualizationDemo(cfg)
+
+ if args.input:
+ if len(args.input) == 1:
+ args.input = glob.glob(os.path.expanduser(args.input[0]))
+ assert args.input, "The input path(s) was not found"
+ for path in tqdm.tqdm(args.input, disable=not args.output):
+ # use PIL, to be consistent with evaluation
+ img = read_image(path, format="BGR")
+ start_time = time.time()
+ predictions, visualized_output = demo.run_on_image(img)
+ logger.info(
+ "{}: {} in {:.2f}s".format(
+ path,
+ "detected {} instances".format(len(predictions["instances"]))
+ if "instances" in predictions
+ else "finished",
+ time.time() - start_time,
+ )
+ )
+
+ if args.output:
+ if os.path.isdir(args.output):
+ assert os.path.isdir(args.output), args.output
+ out_filename = os.path.join(args.output, os.path.basename(path))
+ else:
+ assert len(args.input) == 1, "Please specify a directory with args.output"
+ out_filename = args.output
+ visualized_output.save(out_filename)
+ else:
+ cv2.namedWindow(WINDOW_NAME, cv2.WINDOW_NORMAL)
+ cv2.imshow(WINDOW_NAME, visualized_output.get_image()[:, :, ::-1])
+ if cv2.waitKey(0) == 27:
+ break # esc to quit
+ elif args.webcam:
+ assert args.input is None, "Cannot have both --input and --webcam!"
+ assert args.output is None, "output not yet supported with --webcam!"
+ cam = cv2.VideoCapture(0)
+ for vis in tqdm.tqdm(demo.run_on_video(cam)):
+ cv2.namedWindow(WINDOW_NAME, cv2.WINDOW_NORMAL)
+ cv2.imshow(WINDOW_NAME, vis)
+ if cv2.waitKey(1) == 27:
+ break # esc to quit
+ cam.release()
+ cv2.destroyAllWindows()
+ elif args.video_input:
+ video = cv2.VideoCapture(args.video_input)
+ width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
+ height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
+ frames_per_second = video.get(cv2.CAP_PROP_FPS)
+ num_frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
+ basename = os.path.basename(args.video_input)
+ codec, file_ext = (
+ ("x264", ".mkv") if test_opencv_video_format("x264", ".mkv") else ("mp4v", ".mp4")
+ )
+ if codec == ".mp4v":
+ warnings.warn("x264 codec not available, switching to mp4v")
+ if args.output:
+ if os.path.isdir(args.output):
+ output_fname = os.path.join(args.output, basename)
+ output_fname = os.path.splitext(output_fname)[0] + file_ext
+ else:
+ output_fname = args.output
+ assert not os.path.isfile(output_fname), output_fname
+ output_file = cv2.VideoWriter(
+ filename=output_fname,
+ # some installation of opencv may not support x264 (due to its license),
+ # you can try other format (e.g. MPEG)
+ fourcc=cv2.VideoWriter_fourcc(*codec),
+ fps=float(frames_per_second),
+ frameSize=(width, height),
+ isColor=True,
+ )
+ assert os.path.isfile(args.video_input)
+ for vis_frame in tqdm.tqdm(demo.run_on_video(video), total=num_frames):
+ if args.output:
+ output_file.write(vis_frame)
+ else:
+ cv2.namedWindow(basename, cv2.WINDOW_NORMAL)
+ cv2.imshow(basename, vis_frame)
+ if cv2.waitKey(1) == 27:
+ break # esc to quit
+ video.release()
+ if args.output:
+ output_file.release()
+ else:
+ cv2.destroyAllWindows()
diff --git a/videocutler/demo/predictor.py b/videocutler/demo/predictor.py
new file mode 100644
index 0000000000000000000000000000000000000000..189ec7976f4283b7f3116b6e15b3191fb8fe969f
--- /dev/null
+++ b/videocutler/demo/predictor.py
@@ -0,0 +1,219 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Copied from: https://github.com/facebookresearch/detectron2/blob/master/demo/predictor.py
+import atexit
+import bisect
+import multiprocessing as mp
+from collections import deque
+
+import cv2
+import torch
+
+from detectron2.data import MetadataCatalog
+from detectron2.engine.defaults import DefaultPredictor
+from detectron2.utils.video_visualizer import VideoVisualizer
+from detectron2.utils.visualizer import ColorMode, Visualizer
+
+
+class VisualizationDemo(object):
+ def __init__(self, cfg, instance_mode=ColorMode.IMAGE, parallel=False):
+ """
+ Args:
+ cfg (CfgNode):
+ instance_mode (ColorMode):
+ parallel (bool): whether to run the model in different processes from visualization.
+ Useful since the visualization logic can be slow.
+ """
+ self.metadata = MetadataCatalog.get(
+ cfg.DATASETS.TEST[0] if len(cfg.DATASETS.TEST) else "__unused"
+ )
+ self.cpu_device = torch.device("cpu")
+ self.instance_mode = instance_mode
+
+ self.parallel = parallel
+ if parallel:
+ num_gpu = torch.cuda.device_count()
+ self.predictor = AsyncPredictor(cfg, num_gpus=num_gpu)
+ else:
+ self.predictor = DefaultPredictor(cfg)
+
+ def run_on_image(self, image):
+ """
+ Args:
+ image (np.ndarray): an image of shape (H, W, C) (in BGR order).
+ This is the format used by OpenCV.
+ Returns:
+ predictions (dict): the output of the model.
+ vis_output (VisImage): the visualized image output.
+ """
+ vis_output = None
+ predictions = self.predictor(image)
+ # Convert image from OpenCV BGR format to Matplotlib RGB format.
+ image = image[:, :, ::-1]
+ visualizer = Visualizer(image, self.metadata, instance_mode=self.instance_mode)
+ if "panoptic_seg" in predictions:
+ panoptic_seg, segments_info = predictions["panoptic_seg"]
+ vis_output = visualizer.draw_panoptic_seg_predictions(
+ panoptic_seg.to(self.cpu_device), segments_info
+ )
+ else:
+ if "sem_seg" in predictions:
+ vis_output = visualizer.draw_sem_seg(
+ predictions["sem_seg"].argmax(dim=0).to(self.cpu_device)
+ )
+ if "instances" in predictions:
+ instances = predictions["instances"].to(self.cpu_device)
+ vis_output = visualizer.draw_instance_predictions(predictions=instances)
+
+ return predictions, vis_output
+
+ def _frame_from_video(self, video):
+ while video.isOpened():
+ success, frame = video.read()
+ if success:
+ yield frame
+ else:
+ break
+
+ def run_on_video(self, video):
+ """
+ Visualizes predictions on frames of the input video.
+ Args:
+ video (cv2.VideoCapture): a :class:`VideoCapture` object, whose source can be
+ either a webcam or a video file.
+ Yields:
+ ndarray: BGR visualizations of each video frame.
+ """
+ video_visualizer = VideoVisualizer(self.metadata, self.instance_mode)
+
+ def process_predictions(frame, predictions):
+ frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
+ if "panoptic_seg" in predictions:
+ panoptic_seg, segments_info = predictions["panoptic_seg"]
+ vis_frame = video_visualizer.draw_panoptic_seg_predictions(
+ frame, panoptic_seg.to(self.cpu_device), segments_info
+ )
+ elif "instances" in predictions:
+ predictions = predictions["instances"].to(self.cpu_device)
+ vis_frame = video_visualizer.draw_instance_predictions(frame, predictions)
+ elif "sem_seg" in predictions:
+ vis_frame = video_visualizer.draw_sem_seg(
+ frame, predictions["sem_seg"].argmax(dim=0).to(self.cpu_device)
+ )
+
+ # Converts Matplotlib RGB format to OpenCV BGR format
+ vis_frame = cv2.cvtColor(vis_frame.get_image(), cv2.COLOR_RGB2BGR)
+ return vis_frame
+
+ frame_gen = self._frame_from_video(video)
+ if self.parallel:
+ buffer_size = self.predictor.default_buffer_size
+
+ frame_data = deque()
+
+ for cnt, frame in enumerate(frame_gen):
+ frame_data.append(frame)
+ self.predictor.put(frame)
+
+ if cnt >= buffer_size:
+ frame = frame_data.popleft()
+ predictions = self.predictor.get()
+ yield process_predictions(frame, predictions)
+
+ while len(frame_data):
+ frame = frame_data.popleft()
+ predictions = self.predictor.get()
+ yield process_predictions(frame, predictions)
+ else:
+ for frame in frame_gen:
+ yield process_predictions(frame, self.predictor(frame))
+
+
+class AsyncPredictor:
+ """
+ A predictor that runs the model asynchronously, possibly on >1 GPUs.
+ Because rendering the visualization takes considerably amount of time,
+ this helps improve throughput a little bit when rendering videos.
+ """
+
+ class _StopToken:
+ pass
+
+ class _PredictWorker(mp.Process):
+ def __init__(self, cfg, task_queue, result_queue):
+ self.cfg = cfg
+ self.task_queue = task_queue
+ self.result_queue = result_queue
+ super().__init__()
+
+ def run(self):
+ predictor = DefaultPredictor(self.cfg)
+
+ while True:
+ task = self.task_queue.get()
+ if isinstance(task, AsyncPredictor._StopToken):
+ break
+ idx, data = task
+ result = predictor(data)
+ self.result_queue.put((idx, result))
+
+ def __init__(self, cfg, num_gpus: int = 1):
+ """
+ Args:
+ cfg (CfgNode):
+ num_gpus (int): if 0, will run on CPU
+ """
+ num_workers = max(num_gpus, 1)
+ self.task_queue = mp.Queue(maxsize=num_workers * 3)
+ self.result_queue = mp.Queue(maxsize=num_workers * 3)
+ self.procs = []
+ for gpuid in range(max(num_gpus, 1)):
+ cfg = cfg.clone()
+ cfg.defrost()
+ cfg.MODEL.DEVICE = "cuda:{}".format(gpuid) if num_gpus > 0 else "cpu"
+ self.procs.append(
+ AsyncPredictor._PredictWorker(cfg, self.task_queue, self.result_queue)
+ )
+
+ self.put_idx = 0
+ self.get_idx = 0
+ self.result_rank = []
+ self.result_data = []
+
+ for p in self.procs:
+ p.start()
+ atexit.register(self.shutdown)
+
+ def put(self, image):
+ self.put_idx += 1
+ self.task_queue.put((self.put_idx, image))
+
+ def get(self):
+ self.get_idx += 1 # the index needed for this request
+ if len(self.result_rank) and self.result_rank[0] == self.get_idx:
+ res = self.result_data[0]
+ del self.result_data[0], self.result_rank[0]
+ return res
+
+ while True:
+ # make sure the results are returned in the correct order
+ idx, res = self.result_queue.get()
+ if idx == self.get_idx:
+ return res
+ insert = bisect.bisect(self.result_rank, idx)
+ self.result_rank.insert(insert, idx)
+ self.result_data.insert(insert, res)
+
+ def __len__(self):
+ return self.put_idx - self.get_idx
+
+ def __call__(self, image):
+ self.put(image)
+ return self.get()
+
+ def shutdown(self):
+ for _ in self.procs:
+ self.task_queue.put(AsyncPredictor._StopToken())
+
+ @property
+ def default_buffer_size(self):
+ return len(self.procs) * 5
diff --git a/videocutler/demo_video/colormap.py b/videocutler/demo_video/colormap.py
new file mode 100644
index 0000000000000000000000000000000000000000..ddca838306b8c6837be3c6cf051769697fce6f30
--- /dev/null
+++ b/videocutler/demo_video/colormap.py
@@ -0,0 +1,170 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# copied from https://github.com/facebookresearch/detectron2/blob/main/detectron2/utils/colormap.py
+
+"""
+An awesome colormap for really neat visualizations.
+Copied from Detectron, and removed gray colors.
+"""
+
+import numpy as np
+import random
+
+__all__ = ["colormap", "random_color", "random_colors"]
+
+# fmt: off
+# RGB:
+_COLORS = np.array(
+ [
+ 0.000, 0.447, 0.741,
+ 0.850, 0.325, 0.098,
+ 0.929, 0.694, 0.125,
+ 0.494, 0.184, 0.556,
+ 0.466, 0.674, 0.188,
+ 0.301, 0.745, 0.933,
+ 0.635, 0.078, 0.184,
+ 0.300, 0.300, 0.300,
+ 0.600, 0.600, 0.600,
+ 1.000, 0.000, 0.000,
+ 1.000, 0.500, 0.000,
+ 0.749, 0.749, 0.000,
+ 0.000, 1.000, 0.000,
+ 0.000, 0.000, 1.000,
+ 0.667, 0.000, 1.000,
+ 0.333, 0.333, 0.000,
+ 0.333, 0.667, 0.000,
+ 0.333, 1.000, 0.000,
+ 0.667, 0.333, 0.000,
+ 0.667, 0.667, 0.000,
+ 0.667, 1.000, 0.000,
+ 1.000, 0.333, 0.000,
+ 1.000, 0.667, 0.000,
+ 1.000, 1.000, 0.000,
+ 0.000, 0.333, 0.500,
+ 0.000, 0.667, 0.500,
+ 0.000, 1.000, 0.500,
+ 0.333, 0.000, 0.500,
+ 0.333, 0.333, 0.500,
+ 0.333, 0.667, 0.500,
+ 0.333, 1.000, 0.500,
+ 0.667, 0.000, 0.500,
+ 0.667, 0.333, 0.500,
+ 0.667, 0.667, 0.500,
+ 0.667, 1.000, 0.500,
+ 1.000, 0.000, 0.500,
+ 1.000, 0.333, 0.500,
+ 1.000, 0.667, 0.500,
+ 1.000, 1.000, 0.500,
+ 0.000, 0.333, 1.000,
+ 0.000, 0.667, 1.000,
+ 0.000, 1.000, 1.000,
+ 0.333, 0.000, 1.000,
+ 0.333, 0.333, 1.000,
+ 0.333, 0.667, 1.000,
+ 0.333, 1.000, 1.000,
+ 0.667, 0.000, 1.000,
+ 0.667, 0.333, 1.000,
+ 0.667, 0.667, 1.000,
+ 0.667, 1.000, 1.000,
+ 1.000, 0.000, 1.000,
+ 1.000, 0.333, 1.000,
+ 1.000, 0.667, 1.000,
+ 0.333, 0.000, 0.000,
+ 0.500, 0.000, 0.000,
+ 0.667, 0.000, 0.000,
+ 0.833, 0.000, 0.000,
+ 1.000, 0.000, 0.000,
+ 0.000, 0.167, 0.000,
+ 0.000, 0.333, 0.000,
+ 0.000, 0.500, 0.000,
+ 0.000, 0.667, 0.000,
+ 0.000, 0.833, 0.000,
+ 0.000, 1.000, 0.000,
+ 0.000, 0.000, 0.167,
+ 0.000, 0.000, 0.333,
+ 0.000, 0.000, 0.500,
+ 0.000, 0.000, 0.667,
+ 0.000, 0.000, 0.833,
+ 0.000, 0.000, 1.000,
+ 0.000, 0.000, 0.000,
+ 0.143, 0.143, 0.143,
+ 0.857, 0.857, 0.857,
+ 1.000, 1.000, 1.000
+ ]
+).astype(np.float32).reshape(-1, 3)
+# fmt: on
+
+
+def colormap(rgb=False, maximum=255):
+ """
+ Args:
+ rgb (bool): whether to return RGB colors or BGR colors.
+ maximum (int): either 255 or 1
+ Returns:
+ ndarray: a float32 array of Nx3 colors, in range [0, 255] or [0, 1]
+ """
+ assert maximum in [255, 1], maximum
+ c = _COLORS * maximum
+ if not rgb:
+ c = c[:, ::-1]
+ return c
+
+
+def random_color(rgb=False, maximum=255):
+ """
+ Args:
+ rgb (bool): whether to return RGB colors or BGR colors.
+ maximum (int): either 255 or 1
+ Returns:
+ ndarray: a vector of 3 numbers
+ """
+ idx = np.random.randint(0, len(_COLORS))
+ ret = _COLORS[idx] * maximum
+ if not rgb:
+ ret = ret[::-1]
+ return ret
+
+
+def random_colors(N, rgb=False, maximum=255):
+ """
+ Args:
+ N (int): number of unique colors needed
+ rgb (bool): whether to return RGB colors or BGR colors.
+ maximum (int): either 255 or 1
+ Returns:
+ ndarray: a list of random_color
+ """
+ indices = random.sample(range(len(_COLORS)), N)
+ ret = [_COLORS[i] * maximum for i in indices]
+ if not rgb:
+ ret = [x[::-1] for x in ret]
+ return ret
+
+def select_colors(rgb=False, maximum=255, indices=[0]):
+ """
+ Args:
+ N (int): number of unique colors needed
+ rgb (bool): whether to return RGB colors or BGR colors.
+ maximum (int): either 255 or 1
+ Returns:
+ ndarray: a list of random_color
+ """
+ # indices = random.sample(range(len(_COLORS)), N)
+ ret = [_COLORS[i] * maximum for i in indices]
+ if not rgb:
+ ret = [x[::-1] for x in ret]
+ return ret
+
+if __name__ == "__main__":
+ import cv2
+
+ size = 100
+ H, W = 10, 10
+ canvas = np.random.rand(H * size, W * size, 3).astype("float32")
+ for h in range(H):
+ for w in range(W):
+ idx = h * W + w
+ if idx >= len(_COLORS):
+ break
+ canvas[h * size : (h + 1) * size, w * size : (w + 1) * size] = _COLORS[idx]
+ cv2.imshow("a", canvas)
+ cv2.waitKey(0)
\ No newline at end of file
diff --git a/videocutler/demo_video/demo.py b/videocutler/demo_video/demo.py
new file mode 100644
index 0000000000000000000000000000000000000000..41d1dd33a3b17b9add892e69b53f8e115132f6bd
--- /dev/null
+++ b/videocutler/demo_video/demo.py
@@ -0,0 +1,227 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang
+
+import argparse
+import glob
+import multiprocessing as mp
+import os
+
+# fmt: off
+import sys
+sys.path.insert(1, os.path.join(sys.path[0], '..'))
+# fmt: on
+
+import tempfile
+import time
+
+import cv2
+import numpy as np
+
+from torch.cuda.amp import autocast
+
+from detectron2.config import get_cfg
+from detectron2.data.detection_utils import read_image
+from detectron2.projects.deeplab import add_deeplab_config
+from detectron2.utils.logger import setup_logger
+
+from mask2former import add_maskformer2_config
+from mask2former_video import add_maskformer2_video_config
+from predictor import VisualizationDemo
+
+from PIL import Image
+
+# constants
+WINDOW_NAME = "VideoCutLER video demo"
+
+
+def setup_cfg(args):
+ # load config from file and command-line arguments
+ cfg = get_cfg()
+ add_deeplab_config(cfg)
+ add_maskformer2_config(cfg)
+ add_maskformer2_video_config(cfg)
+ cfg.merge_from_file(args.config_file)
+ cfg.merge_from_list(args.opts)
+ cfg.freeze()
+ return cfg
+
+
+def get_parser():
+ parser = argparse.ArgumentParser(description="maskformer2 demo for builtin configs")
+ parser.add_argument(
+ "--config-file",
+ default="configs/youtubevis_2019/video_maskformer2_R50_bs16_8ep.yaml",
+ metavar="FILE",
+ help="path to config file",
+ )
+ parser.add_argument("--video-input", help="Path to video file.")
+ parser.add_argument(
+ "--input",
+ nargs="+",
+ help="A list of space separated input images; "
+ "or a single glob pattern such as 'directory/*.jpg'"
+ "this will be treated as frames of a video",
+ )
+ parser.add_argument(
+ "--output",
+ help="A file or directory to save output visualizations. "
+ "If not given, will show output in an OpenCV window.",
+ )
+
+ parser.add_argument(
+ "--save-frames",
+ default=False,
+ help="Save frame level image outputs.",
+ )
+ parser.add_argument(
+ "--save-masks",
+ default=False,
+ help="Save frame level image masks.",
+ )
+ parser.add_argument(
+ "--confidence-threshold",
+ type=float,
+ default=0.5,
+ help="Minimum score for instance predictions to be shown",
+ )
+ parser.add_argument(
+ "--opts",
+ help="Modify config options using the command-line 'KEY VALUE' pairs",
+ default=[],
+ nargs=argparse.REMAINDER,
+ )
+ return parser
+
+
+def test_opencv_video_format(codec, file_ext):
+ with tempfile.TemporaryDirectory(prefix="video_format_test") as dir:
+ filename = os.path.join(dir, "test_file" + file_ext)
+ writer = cv2.VideoWriter(
+ filename=filename,
+ fourcc=cv2.VideoWriter_fourcc(*codec),
+ fps=float(30),
+ frameSize=(10, 10),
+ isColor=True,
+ )
+ [writer.write(np.zeros((10, 10, 3), np.uint8)) for _ in range(30)]
+ writer.release()
+ if os.path.isfile(filename):
+ return True
+ return False
+
+PALETTE = [0, 0, 0, 128, 0, 0, 0, 128, 0, 128, 128, 0, 0, 0, 128, 128, 0, 128, 0, 128, 128, 128, 128, 128, 64, 0, 0, 191, 0, 0, 64, 128, 0, 191, 128, 0, 64, 0, 128]
+
+def save_masks(masks, file_path):
+ # n_masks = len(masks)
+ # width, height = masks[0].shape
+ mask_image = np.zeros(masks[0].shape, dtype=np.uint8)
+ for i, mask in enumerate(masks):
+ mask_image[mask!=0] = i + 1
+ mask_image = Image.fromarray(mask_image, mode="P")
+ mask_image.putpalette(PALETTE)
+ mask_image.save(file_path)
+
+if __name__ == "__main__":
+ mp.set_start_method("spawn", force=True)
+ args = get_parser().parse_args()
+ setup_logger(name="fvcore")
+ logger = setup_logger()
+ logger.info("Arguments: " + str(args))
+
+ cfg = setup_cfg(args)
+
+ demo = VisualizationDemo(cfg)
+
+ if args.output:
+ os.makedirs(args.output, exist_ok=True)
+
+ if args.input:
+ folder = args.input
+ video_name = folder[0].split("/")[-2]
+
+ if len(folder) == 1:
+ args.input = sorted(glob.glob(os.path.expanduser(folder[0])))
+ assert args.input, "The input path(s) was not found"
+
+ vid_frames = []
+ for path in args.input:
+ img = read_image(path, format="BGR")
+ vid_frames.append(img)
+
+ start_time = time.time()
+ with autocast():
+ predictions, visualized_output = demo.run_on_video(vid_frames, confidence_threshold=args.confidence_threshold)
+
+ selected_idx = [idx for idx, score in enumerate(predictions["pred_scores"]) if score >= args.confidence_threshold]
+ predictions["pred_scores"] = [predictions["pred_scores"][idx] for idx in selected_idx]
+ predictions["pred_labels"] = [predictions["pred_labels"][idx] for idx in selected_idx]
+ predictions["pred_masks"] = [predictions["pred_masks"][idx] for idx in selected_idx]
+
+ logger.info(
+ "detected {} instances per frame in {:.2f}s".format(
+ len(predictions["pred_scores"]), time.time() - start_time
+ )
+ )
+
+ if args.output:
+ # save image-level predictions
+ if args.save_frames:
+ frame_index = 0
+ for path, _vis_output in zip(args.input, visualized_output):
+ video_folder_path = os.path.join(args.output, video_name)
+ os.makedirs(video_folder_path, exist_ok=True)
+ out_filename = os.path.join(video_folder_path, os.path.basename(path))
+ _vis_output.save(out_filename)
+ # get masks for frame frame_index and save them
+ if args.save_masks:
+ pseudo_masks = [predictions["pred_masks"][inst_id][frame_index] for inst_id in range(len(predictions["pred_masks"]))]
+ save_masks(pseudo_masks, os.path.join(video_folder_path, "mask_" + os.path.basename(path)).replace(".jpg", ".png"))
+ frame_index += 1
+
+ # save mp4
+ H, W = visualized_output[0].height, visualized_output[0].width
+ cap = cv2.VideoCapture(-1)
+ fourcc = cv2.VideoWriter_fourcc(*"mp4v")
+ out = cv2.VideoWriter(os.path.join(args.output, video_name + "_visualization.mp4"), fourcc, 10.0, (W, H), True)
+ for _vis_output in visualized_output:
+ frame = _vis_output.get_image()[:, :, ::-1]
+ out.write(frame)
+ cap.release()
+ out.release()
+
+ elif args.video_input:
+ video = cv2.VideoCapture(args.video_input)
+
+ vid_frames = []
+ while video.isOpened():
+ success, frame = video.read()
+ if success:
+ vid_frames.append(frame)
+ else:
+ break
+
+ start_time = time.time()
+ with autocast():
+ predictions, visualized_output = demo.run_on_video(vid_frames)
+ logger.info(
+ "detected {} instances per frame in {:.2f}s".format(
+ len(predictions["pred_scores"]), time.time() - start_time
+ )
+ )
+
+ if args.output:
+ if args.save_frames:
+ for idx, _vis_output in enumerate(visualized_output):
+ out_filename = os.path.join(args.output, f"{idx}.jpg")
+ _vis_output.save(out_filename)
+
+ H, W = visualized_output[0].height, visualized_output[0].width
+
+ cap = cv2.VideoCapture(-1)
+ fourcc = cv2.VideoWriter_fourcc(*"mp4v")
+ out = cv2.VideoWriter(os.path.join(args.output, "visualization.mp4"), fourcc, 10.0, (W, H), True)
+ for _vis_output in visualized_output:
+ frame = _vis_output.get_image()[:, :, ::-1]
+ out.write(frame)
+ cap.release()
+ out.release()
diff --git a/videocutler/demo_video/predictor.py b/videocutler/demo_video/predictor.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ffd3147cec281d56a3b0ee3135e483066abf52c
--- /dev/null
+++ b/videocutler/demo_video/predictor.py
@@ -0,0 +1,215 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from: https://github.com/sukjunhwang/IFC/blob/master/projects/IFC/demo/predictor.py
+
+import atexit
+import bisect
+import multiprocessing as mp
+from collections import deque
+import cv2
+import torch
+
+from visualizer import TrackVisualizer
+
+from detectron2.data import MetadataCatalog
+from detectron2.engine.defaults import DefaultPredictor
+from detectron2.structures import Instances
+from detectron2.utils.video_visualizer import VideoVisualizer
+from detectron2.utils.visualizer import ColorMode
+
+
+class VisualizationDemo(object):
+ def __init__(self, cfg, instance_mode=ColorMode.IMAGE, parallel=False):
+ """
+ Args:
+ cfg (CfgNode):
+ instance_mode (ColorMode):
+ parallel (bool): whether to run the model in different processes from visualization.
+ Useful since the visualization logic can be slow.
+ """
+ self.metadata = MetadataCatalog.get(
+ cfg.DATASETS.TRAIN[0] if len(cfg.DATASETS.TRAIN) else "__unused"
+ )
+ self.cpu_device = torch.device("cpu")
+ self.instance_mode = instance_mode
+
+ self.parallel = parallel
+ if parallel:
+ num_gpu = torch.cuda.device_count()
+ self.predictor = AsyncPredictor(cfg, num_gpus=num_gpu)
+ else:
+ self.predictor = VideoPredictor(cfg)
+
+ def run_on_video(self, frames, confidence_threshold=0, inst_id=0):
+ """
+ Args:
+ frames (List[np.ndarray]): a list of images of shape (H, W, C) (in BGR order).
+ This is the format used by OpenCV.
+ Returns:
+ predictions (dict): the output of the model.
+ vis_output (VisImage): the visualized image output.
+ """
+ vis_output = None
+ predictions = self.predictor(frames)
+
+ image_size = predictions["image_size"]
+ pred_scores = predictions["pred_scores"]
+ pred_labels = predictions["pred_labels"]
+ pred_masks = predictions["pred_masks"]
+
+ selected_idx = [idx for idx, score in enumerate(pred_scores) if score >= confidence_threshold]
+ pred_scores = [pred_scores[idx] for idx in selected_idx]
+ pred_labels = [pred_labels[idx] for idx in selected_idx]
+ pred_masks = [pred_masks[idx] for idx in selected_idx]
+
+ frame_masks = list(zip(*pred_masks))
+ total_vis_output = []
+ for frame_idx in range(len(frames)):
+ frame = frames[frame_idx][:, :, ::-1]
+ visualizer = TrackVisualizer(frame, self.metadata, instance_mode=self.instance_mode, inst_id=inst_id)
+ ins = Instances(image_size)
+ if len(pred_scores) > 0:
+ ins.scores = pred_scores
+ ins.pred_classes = pred_labels
+ ins.pred_masks = torch.stack(frame_masks[frame_idx], dim=0)
+
+ vis_output = visualizer.draw_instance_predictions(predictions=ins)
+ total_vis_output.append(vis_output)
+
+ return predictions, total_vis_output
+
+
+class VideoPredictor(DefaultPredictor):
+ """
+ Create a simple end-to-end predictor with the given config that runs on
+ single device for a single input image.
+ Compared to using the model directly, this class does the following additions:
+ 1. Load checkpoint from `cfg.MODEL.WEIGHTS`.
+ 2. Always take BGR image as the input and apply conversion defined by `cfg.INPUT.FORMAT`.
+ 3. Apply resizing defined by `cfg.INPUT.{MIN,MAX}_SIZE_TEST`.
+ 4. Take one input image and produce a single output, instead of a batch.
+ If you'd like to do anything more fancy, please refer to its source code
+ as examples to build and use the model manually.
+ Attributes:
+ metadata (Metadata): the metadata of the underlying dataset, obtained from
+ cfg.DATASETS.TEST.
+ Examples:
+ ::
+ pred = DefaultPredictor(cfg)
+ inputs = cv2.imread("input.jpg")
+ outputs = pred(inputs)
+ """
+ def __call__(self, frames):
+ """
+ Args:
+ original_image (np.ndarray): an image of shape (H, W, C) (in BGR order).
+ Returns:
+ predictions (dict):
+ the output of the model for one image only.
+ See :doc:`/tutorials/models` for details about the format.
+ """
+ with torch.no_grad(): # https://github.com/sphinx-doc/sphinx/issues/4258
+ input_frames = []
+ for original_image in frames:
+ # Apply pre-processing to image.
+ if self.input_format == "RGB":
+ # whether the model expects BGR inputs or RGB
+ original_image = original_image[:, :, ::-1]
+ height, width = original_image.shape[:2]
+ image = self.aug.get_transform(original_image).apply_image(original_image)
+ image = torch.as_tensor(image.astype("float32").transpose(2, 0, 1))
+ input_frames.append(image)
+
+ inputs = {"image": input_frames, "height": height, "width": width}
+ predictions = self.model([inputs])
+ return predictions
+
+
+class AsyncPredictor:
+ """
+ A predictor that runs the model asynchronously, possibly on >1 GPUs.
+ Because rendering the visualization takes considerably amount of time,
+ this helps improve throughput when rendering videos.
+ """
+
+ class _StopToken:
+ pass
+
+ class _PredictWorker(mp.Process):
+ def __init__(self, cfg, task_queue, result_queue):
+ self.cfg = cfg
+ self.task_queue = task_queue
+ self.result_queue = result_queue
+ super().__init__()
+
+ def run(self):
+ predictor = VideoPredictor(self.cfg)
+
+ while True:
+ task = self.task_queue.get()
+ if isinstance(task, AsyncPredictor._StopToken):
+ break
+ idx, data = task
+ result = predictor(data)
+ self.result_queue.put((idx, result))
+
+ def __init__(self, cfg, num_gpus: int = 1):
+ """
+ Args:
+ cfg (CfgNode):
+ num_gpus (int): if 0, will run on CPU
+ """
+ num_workers = max(num_gpus, 1)
+ self.task_queue = mp.Queue(maxsize=num_workers * 3)
+ self.result_queue = mp.Queue(maxsize=num_workers * 3)
+ self.procs = []
+ for gpuid in range(max(num_gpus, 1)):
+ cfg = cfg.clone()
+ cfg.defrost()
+ cfg.MODEL.DEVICE = "cuda:{}".format(gpuid) if num_gpus > 0 else "cpu"
+ self.procs.append(
+ AsyncPredictor._PredictWorker(cfg, self.task_queue, self.result_queue)
+ )
+
+ self.put_idx = 0
+ self.get_idx = 0
+ self.result_rank = []
+ self.result_data = []
+
+ for p in self.procs:
+ p.start()
+ atexit.register(self.shutdown)
+
+ def put(self, image):
+ self.put_idx += 1
+ self.task_queue.put((self.put_idx, image))
+
+ def get(self):
+ self.get_idx += 1 # the index needed for this request
+ if len(self.result_rank) and self.result_rank[0] == self.get_idx:
+ res = self.result_data[0]
+ del self.result_data[0], self.result_rank[0]
+ return res
+
+ while True:
+ # make sure the results are returned in the correct order
+ idx, res = self.result_queue.get()
+ if idx == self.get_idx:
+ return res
+ insert = bisect.bisect(self.result_rank, idx)
+ self.result_rank.insert(insert, idx)
+ self.result_data.insert(insert, res)
+
+ def __len__(self):
+ return self.put_idx - self.get_idx
+
+ def __call__(self, image):
+ self.put(image)
+ return self.get()
+
+ def shutdown(self):
+ for _ in self.procs:
+ self.task_queue.put(AsyncPredictor._StopToken())
+
+ @property
+ def default_buffer_size(self):
+ return len(self.procs) * 5
diff --git a/videocutler/demo_video/visualizer.py b/videocutler/demo_video/visualizer.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1b0546ec0d54fcdadf77c16c9c1c88b952b8d41
--- /dev/null
+++ b/videocutler/demo_video/visualizer.py
@@ -0,0 +1,94 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from : https://github.com/sukjunhwang/IFC/blob/master/projects/IFC/demo/visualizer.py
+
+import torch
+import numpy as np
+import matplotlib.colors as mplc
+
+from detectron2.utils.visualizer import ColorMode, GenericMask, Visualizer, _create_text_labels
+from colormap import random_colors, select_colors, colormap
+import random
+
+_ID_JITTERS = [[0.9047944201469568, 0.3241718265806123, 0.33443746665210006], [0.4590171386127151, 0.9095038146383864, 0.3143840671974788], [0.4769356899795538, 0.5044406738441948, 0.5354530846360839], [0.00820945625670777, 0.24099210193126785, 0.15471834055332978], [0.6195684374237388, 0.4020380013509799, 0.26100266066404676], [0.08281237756545068, 0.05900744492710419, 0.06106221202154216], [0.2264886829978755, 0.04925271007292076, 0.10214429345996079], [0.1888247470009874, 0.11275000298612425, 0.46112894830685514], [0.37415767691880975, 0.844284596118331, 0.950471611180866], [0.3817344218157631, 0.3483259270707101, 0.6572989333690541], [0.2403115731054466, 0.03078280287279167, 0.5385975692534737], [0.7035076951650824, 0.12352084932325424, 0.12873080308790197], [0.12607434914489934, 0.111244793010015, 0.09333334699716023], [0.6551607300342269, 0.7003064103554443, 0.4131794512286162], [0.13592107365596595, 0.5390702818232149, 0.004540643174930525], [0.38286244894454347, 0.709142545393449, 0.529074791609835], [0.4279376583651734, 0.5634708596431771, 0.8505569717104301], [0.3460488523902999, 0.464769595519293, 0.6676839675477276], [0.8544063246675081, 0.5041190233407755, 0.9081217697141578], [0.9207009090747208, 0.2403865944739051, 0.05375410999863772], [0.6515786136947107, 0.6299918449948327, 0.45292029442034387], [0.986174217295693, 0.2424849846977214, 0.3981993323108266], [0.22101915872994693, 0.3408589198278038, 0.006381420347677524], [0.3159785813515982, 0.1145748921741011, 0.595754317197274], [0.10263421488052715, 0.5864139253490858, 0.23908000741142432], [0.8272999391532938, 0.6123527260897751, 0.3365197327803193], [0.5269583712937912, 0.25668929554516506, 0.7888411215078127], [0.2433880265410031, 0.7240751234287827, 0.8483215810528648], [0.7254601709704898, 0.8316525547295984, 0.9325253855921963], [0.5574483824856672, 0.2935331727879944, 0.6594839453793155], [0.6209642371433579, 0.054030693198821256, 0.5080873988178534], [0.9055507077365624, 0.12865888619203514, 0.9309191861440005], [0.9914469722960537, 0.3074114506206205, 0.8762107657323488], [0.4812682518247371, 0.15055826298548158, 0.9656340505308308], [0.6459219454316445, 0.9144794010251625, 0.751338812155106], [0.860840174209798, 0.8844626353077639, 0.3604624506769899], [0.8194991672032272, 0.926399617787601, 0.8059222327343247], [0.6540413175393658, 0.04579445254618297, 0.26891917826531275], [0.37778835833987046, 0.36247927666109536, 0.7989799305827889], [0.22738304978177726, 0.9038018263773739, 0.6970838854138303], [0.6362015495896184, 0.527680794236961, 0.5570915425178721], [0.6436401915860954, 0.6316925317144524, 0.9137151236993912], [0.04161828388587163, 0.3832413349082706, 0.6880829921949752], [0.7768167825719299, 0.8933821497682587, 0.7221278391266809], [0.8632760876301346, 0.3278628094906323, 0.8421587587114462], [0.8556499133262127, 0.6497385872901932, 0.5436895688477963], [0.9861940318610894, 0.03562313777386272, 0.9183454677106616], [0.8042586091176366, 0.6167222703170994, 0.24181981557207644], [0.9504247117633057, 0.3454233714011461, 0.6883727005547743], [0.9611909135491202, 0.46384154263898114, 0.32700443315058914], [0.523542176970206, 0.446222414615845, 0.9067402987747814], [0.7536954008682911, 0.6675512338797588, 0.22538238957839196], [0.1554052265688285, 0.05746097492966129, 0.8580358872587424], [0.8540838640971405, 0.9165504335482566, 0.6806982829158964], [0.7065090319405029, 0.8683059983962002, 0.05167128320624026], [0.39134812961899124, 0.8910075505622979, 0.7639815712623922], [0.1578117311479783, 0.20047326898284668, 0.9220177338840568], [0.2017488993096358, 0.6949259970936679, 0.8729196864798128], [0.5591089340651949, 0.15576770423813258, 0.1469857469387812], [0.14510398622626974, 0.24451497734532168, 0.46574271993578786], [0.13286397822351492, 0.4178244533944635, 0.03728728952131943], [0.556463206310225, 0.14027595183361663, 0.2731537988657907], [0.4093837966398032, 0.8015225687789814, 0.8033567296903834], [0.527442563956637, 0.902232617214431, 0.7066626674362227], [0.9058355503297827, 0.34983989180213004, 0.8353262183839384], [0.7108382186953104, 0.08591307895133471, 0.21434688012521974], [0.22757345065207668, 0.7943075496583976, 0.2992305547627421], [0.20454109788173636, 0.8251670332103687, 0.012981987094547232], [0.7672562637297392, 0.005429019973062554, 0.022163616037108702], [0.37487345910117564, 0.5086240194440863, 0.9061216063654387], [0.9878004014101087, 0.006345852772772331, 0.17499753379350858], [0.030061528704491303, 0.1409704315546606, 0.3337131835834506], [0.5022506782611504, 0.5448435505388706, 0.40584238936140726], [0.39560774627423445, 0.8905943695833262, 0.5850815030921116], [0.058615671926786406, 0.5365713844300387, 0.1620457551256279], [0.41843842882069693, 0.1536005983609976, 0.3127878501592438], [0.05947621790155899, 0.5412421167331932, 0.2611322146455659], [0.5196159938235607, 0.7066461551682705, 0.970261497412556], [0.30443031606149007, 0.45158581060034975, 0.4331841153149706], [0.8848298403933996, 0.7241791700943656, 0.8917110054596072], [0.5720260591898779, 0.3072801598203052, 0.8891066705989902], [0.13964015336177327, 0.2531778096760302, 0.5703756837403124], [0.2156307542329836, 0.4139947500641685, 0.87051676884144], [0.10800455881891169, 0.05554646035458266, 0.2947027428551443], [0.35198009410633857, 0.365849666213808, 0.06525787683513773], [0.5223264108118847, 0.9032195574351178, 0.28579084943315025], [0.7607724246546966, 0.3087194381828555, 0.6253235528354899], [0.5060485442077824, 0.19173600467625274, 0.9931175692203702], [0.5131805830323746, 0.07719515392040577, 0.923212006754969], [0.3629762141280106, 0.02429179642710888, 0.6963754952399983], [0.7542592485456767, 0.6478893299494212, 0.3424965345400731], [0.49944574453364454, 0.6775665366832825, 0.33758796076989583], [0.010621818120767679, 0.8221571611173205, 0.5186257457566332], [0.5857910304290109, 0.7178133992025467, 0.9729243483606071], [0.16987399482717613, 0.9942570210657463, 0.18120758122552927], [0.016362572521240848, 0.17582788603087263, 0.7255176922640298], [0.10981764283706419, 0.9078582203470377, 0.7638063718334003], [0.9252097840441119, 0.3330197086990039, 0.27888705301420136], [0.12769972651171546, 0.11121470804891687, 0.12710743734391716], [0.5753520518360334, 0.2763862879599456, 0.6115636613363361]]
+
+
+class TrackVisualizer(Visualizer):
+ def __init__(self, img_rgb, metadata=None, scale=1.0, instance_mode=ColorMode.IMAGE, inst_id=0):
+ super().__init__(
+ img_rgb, metadata=metadata, scale=scale, instance_mode=instance_mode
+ )
+ self.cpu_device = torch.device("cpu")
+ self.inst_id = inst_id
+
+ def _jitter(self, color, id):
+ """
+ Randomly modifies given color to produce a slightly different color than the color given.
+ Args:
+ color (tuple[double]): a tuple of 3 elements, containing the RGB values of the color
+ picked. The values in the list are in the [0.0, 1.0] range.
+ Returns:
+ jittered_color (tuple[double]): a tuple of 3 elements, containing the RGB values of the
+ color after being jittered. The values in the list are in the [0.0, 1.0] range.
+ """
+ color = mplc.to_rgb(color)
+ vec = _ID_JITTERS[id]
+ # better to do it in another color space
+ vec = vec / np.linalg.norm(vec) * 0.5
+ res = np.clip(vec + color, 0, 1)
+ return tuple(res)
+
+ def draw_instance_predictions(self, predictions):
+ """
+ Draw instance-level prediction results on an image.
+ Args:
+ predictions (Instances): the output of an instance detection/segmentation
+ model. Following fields will be used to draw:
+ "pred_boxes", "pred_classes", "scores", "pred_masks" (or "pred_masks_rle").
+ Returns:
+ output (VisImage): image object with visualizations.
+ """
+ preds = predictions.to(self.cpu_device)
+
+ boxes = preds.pred_boxes if preds.has("pred_boxes") else None
+ scores = preds.scores if preds.has("scores") else None
+ classes = preds.pred_classes if preds.has("pred_classes") else None
+ labels = _create_text_labels(classes, scores, self.metadata.get("thing_classes", None))
+ if labels is not None:
+ # labels = ["[{}] ".format(_id) + l for _id, l in enumerate(labels)]
+ labels = ["[{}] ".format(_id) for _id, l in enumerate(labels)]
+
+ if preds.has("pred_masks"):
+ masks = np.asarray(preds.pred_masks)
+ masks = [GenericMask(x, self.output.height, self.output.width) for x in masks]
+ else:
+ masks = None
+
+ if classes is None:
+ return self.output
+
+ colors = colormap(rgb=True, maximum=1)
+ index_start = self.inst_id % len(colors)
+ # select len(classes) colors from the list of colors
+ if index_start + len(classes) >= len(colors):
+ colors = colors[:len(classes)]
+ else:
+ colors = colors[index_start:index_start+len(classes)]
+ alpha = 0.5 # DEFAULT 0.5
+
+ if self._instance_mode == ColorMode.IMAGE_BW:
+ self.output.img = self._create_grayscale_image(
+ (preds.pred_masks.any(dim=0) > 0).numpy()
+ if preds.has("pred_masks")
+ else None
+ )
+ alpha = 0.5 # DEFAULT 0.3
+
+ self.overlay_instances(
+ masks=masks,
+ boxes=boxes,
+ labels=labels,
+ assigned_colors=colors,
+ alpha=alpha,
+ )
+
+ return self.output
diff --git a/videocutler/eval.sh b/videocutler/eval.sh
new file mode 100644
index 0000000000000000000000000000000000000000..01db90350168a738f59f664d431ccd45fb800e6e
--- /dev/null
+++ b/videocutler/eval.sh
@@ -0,0 +1,17 @@
+export DETECTRON2_DATASETS=/shared/xudongw/DATASETS/
+
+###### eval YouTubeVIS-2019 ######
+CUDA_VISIBLE_DEVICES=0,1,2,3 python train_net_video.py --num-gpus 4 \
+ --config-file configs/imagenet_video/videocutler_eval_ytvis2019.yaml \
+ --eval-only MODEL.WEIGHTS videocutler_m2f_rn50.pth \
+ OUTPUT_DIR OUTPUT/ytvis_2019
+
+python eval_ytvis.py --dataset-path ${DETECTRON2_DATASETS} --dataset-name 'ytvis_2019' --result-path 'OUTPUT/ytvis_2019/'
+
+###### eval YouTubeVIS-2021 ######
+# CUDA_VISIBLE_DEVICES=0,1,2,3 python train_net_video.py --num-gpus 4 \
+# --config-file configs/imagenet_video/videocutler_eval_ytvis2021.yaml \
+# --eval-only MODEL.WEIGHTS videocutler_m2f_rn50.pth \
+# OUTPUT_DIR OUTPUT/ytvis_2021/
+
+# python eval_ytvis.py --dataset-path ${DETECTRON2_DATASETS} --dataset-name 'ytvis_2021' --result-path 'OUTPUT/ytvis_2021/'
\ No newline at end of file
diff --git a/videocutler/eval_ytvis.py b/videocutler/eval_ytvis.py
new file mode 100644
index 0000000000000000000000000000000000000000..14687ad5a80f9048ee7e58bae92cd8ec617a2b1e
--- /dev/null
+++ b/videocutler/eval_ytvis.py
@@ -0,0 +1,46 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from detectron2 and cocoapi
+
+import argparse
+import os
+
+from mask2former_video.data_video.datasets.ytvis_api.ytvoseval import YTVOSeval
+from mask2former_video.data_video.datasets.ytvis_api.ytvos import YTVOS
+
+def print_and_summary(cocoEval):
+ str_print = ""
+ for key in cocoEval.stats:
+ str_print += "{:.2f},".format(key*100)
+ return str_print
+
+def get_parser():
+ parser = argparse.ArgumentParser(description="eval configs")
+ parser.add_argument(
+ "--dataset-path", default="DATASETS", help="path to the annotation file",
+ )
+ parser.add_argument(
+ "--dataset-name", default="ytvis_2019", help="path to the annotation file",
+ )
+ parser.add_argument(
+ "--result-path", default="OUTPUT", help="path to the the result file",
+ )
+ return parser
+
+if __name__ == "__main__":
+ args = get_parser().parse_args()
+
+ annFile = os.path.join(args.dataset_path, args.dataset_name, 'train.json')
+ cocoGt=YTVOS(annFile)
+
+ resFile = os.path.join(args.result_path, 'inference/results.json')
+ cocoDt=cocoGt.loadRes(resFile)
+
+ annType = 'segm'
+ print('Running demo for {} results.'.format(annType))
+ cocoEval = YTVOSeval(cocoGt,cocoDt,annType)
+ cocoEval.params.useCats = 0
+ cocoEval.evaluate()
+ cocoEval.accumulate()
+ cocoEval.summarize()
+ copypaste = print_and_summary(cocoEval)
+ print(copypaste)
\ No newline at end of file
diff --git a/videocutler/mask2former/__init__.py b/videocutler/mask2former/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9b405c83bd2e8fa186a556a7db450af86c28c79b
--- /dev/null
+++ b/videocutler/mask2former/__init__.py
@@ -0,0 +1,26 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+from . import data # register all new datasets
+from . import modeling
+
+# config
+from .config import add_maskformer2_config
+
+# dataset loading
+from .data.dataset_mappers.coco_instance_new_baseline_dataset_mapper import COCOInstanceNewBaselineDatasetMapper
+from .data.dataset_mappers.coco_panoptic_new_baseline_dataset_mapper import COCOPanopticNewBaselineDatasetMapper
+from .data.dataset_mappers.mask_former_instance_dataset_mapper import (
+ MaskFormerInstanceDatasetMapper,
+)
+from .data.dataset_mappers.mask_former_panoptic_dataset_mapper import (
+ MaskFormerPanopticDatasetMapper,
+)
+from .data.dataset_mappers.mask_former_semantic_dataset_mapper import (
+ MaskFormerSemanticDatasetMapper,
+)
+
+# models
+from .maskformer_model import MaskFormer
+from .test_time_augmentation import SemanticSegmentorWithTTA
+
+# evaluation
+from .evaluation.instance_evaluation import InstanceSegEvaluator
diff --git a/videocutler/mask2former/config.py b/videocutler/mask2former/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..3c3291a72432f6b509230a36c8fadcd4c023ec5a
--- /dev/null
+++ b/videocutler/mask2former/config.py
@@ -0,0 +1,115 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Facebook, Inc. and its affiliates.
+from detectron2.config import CfgNode as CN
+
+
+def add_maskformer2_config(cfg):
+ """
+ Add config for MASK_FORMER.
+ """
+ # NOTE: configs from original maskformer
+ # data config
+ # select the dataset mapper
+ cfg.INPUT.DATASET_MAPPER_NAME = "mask_former_semantic"
+ # Color augmentation
+ cfg.INPUT.COLOR_AUG_SSD = False
+ # We retry random cropping until no single category in semantic segmentation GT occupies more
+ # than `SINGLE_CATEGORY_MAX_AREA` part of the crop.
+ cfg.INPUT.CROP.SINGLE_CATEGORY_MAX_AREA = 1.0
+ # Pad image and segmentation GT in dataset mapper.
+ cfg.INPUT.SIZE_DIVISIBILITY = -1
+
+ # solver config
+ # weight decay on embedding
+ cfg.SOLVER.WEIGHT_DECAY_EMBED = 0.0
+ # optimizer
+ cfg.SOLVER.OPTIMIZER = "ADAMW"
+ cfg.SOLVER.BACKBONE_MULTIPLIER = 0.1
+
+ # mask_former model config
+ cfg.MODEL.MASK_FORMER = CN()
+
+ # loss
+ cfg.MODEL.MASK_FORMER.DEEP_SUPERVISION = True
+ cfg.MODEL.MASK_FORMER.NO_OBJECT_WEIGHT = 0.1
+ cfg.MODEL.MASK_FORMER.CLASS_WEIGHT = 1.0
+ cfg.MODEL.MASK_FORMER.DICE_WEIGHT = 1.0
+ cfg.MODEL.MASK_FORMER.MASK_WEIGHT = 20.0
+ cfg.MODEL.MASK_FORMER.POSITIVE_BANK_IOU_THRESH = 0.01
+
+ # transformer config
+ cfg.MODEL.MASK_FORMER.NHEADS = 8
+ cfg.MODEL.MASK_FORMER.DROPOUT = 0.1
+ cfg.MODEL.MASK_FORMER.DIM_FEEDFORWARD = 2048
+ cfg.MODEL.MASK_FORMER.ENC_LAYERS = 0
+ cfg.MODEL.MASK_FORMER.DEC_LAYERS = 6
+ cfg.MODEL.MASK_FORMER.PRE_NORM = False
+
+ cfg.MODEL.MASK_FORMER.HIDDEN_DIM = 256
+ cfg.MODEL.MASK_FORMER.NUM_OBJECT_QUERIES = 100
+
+ cfg.MODEL.MASK_FORMER.TRANSFORMER_IN_FEATURE = "res5"
+ cfg.MODEL.MASK_FORMER.ENFORCE_INPUT_PROJ = False
+
+ # mask_former inference config
+ cfg.MODEL.MASK_FORMER.TEST = CN()
+ cfg.MODEL.MASK_FORMER.TEST.SEMANTIC_ON = True
+ cfg.MODEL.MASK_FORMER.TEST.INSTANCE_ON = False
+ cfg.MODEL.MASK_FORMER.TEST.PANOPTIC_ON = False
+ cfg.MODEL.MASK_FORMER.TEST.OBJECT_MASK_THRESHOLD = 0.0
+ cfg.MODEL.MASK_FORMER.TEST.OVERLAP_THRESHOLD = 0.0
+ cfg.MODEL.MASK_FORMER.TEST.SEM_SEG_POSTPROCESSING_BEFORE_INFERENCE = False
+
+ # Sometimes `backbone.size_divisibility` is set to 0 for some backbone (e.g. ResNet)
+ # you can use this config to override
+ cfg.MODEL.MASK_FORMER.SIZE_DIVISIBILITY = 32
+
+ # pixel decoder config
+ cfg.MODEL.SEM_SEG_HEAD.MASK_DIM = 256
+ # adding transformer in pixel decoder
+ cfg.MODEL.SEM_SEG_HEAD.TRANSFORMER_ENC_LAYERS = 0
+ # pixel decoder
+ cfg.MODEL.SEM_SEG_HEAD.PIXEL_DECODER_NAME = "BasePixelDecoder"
+
+ # swin transformer backbone
+ cfg.MODEL.SWIN = CN()
+ cfg.MODEL.SWIN.PRETRAIN_IMG_SIZE = 224
+ cfg.MODEL.SWIN.PATCH_SIZE = 4
+ cfg.MODEL.SWIN.EMBED_DIM = 96
+ cfg.MODEL.SWIN.DEPTHS = [2, 2, 6, 2]
+ cfg.MODEL.SWIN.NUM_HEADS = [3, 6, 12, 24]
+ cfg.MODEL.SWIN.WINDOW_SIZE = 7
+ cfg.MODEL.SWIN.MLP_RATIO = 4.0
+ cfg.MODEL.SWIN.QKV_BIAS = True
+ cfg.MODEL.SWIN.QK_SCALE = None
+ cfg.MODEL.SWIN.DROP_RATE = 0.0
+ cfg.MODEL.SWIN.ATTN_DROP_RATE = 0.0
+ cfg.MODEL.SWIN.DROP_PATH_RATE = 0.3
+ cfg.MODEL.SWIN.APE = False
+ cfg.MODEL.SWIN.PATCH_NORM = True
+ cfg.MODEL.SWIN.OUT_FEATURES = ["res2", "res3", "res4", "res5"]
+ cfg.MODEL.SWIN.USE_CHECKPOINT = False
+
+ # NOTE: maskformer2 extra configs
+ # transformer module
+ cfg.MODEL.MASK_FORMER.TRANSFORMER_DECODER_NAME = "MultiScaleMaskedTransformerDecoder"
+
+ # LSJ aug
+ cfg.INPUT.IMAGE_SIZE = 1024
+ cfg.INPUT.MIN_SCALE = 0.1
+ cfg.INPUT.MAX_SCALE = 2.0
+
+ # MSDeformAttn encoder configs
+ cfg.MODEL.SEM_SEG_HEAD.DEFORMABLE_TRANSFORMER_ENCODER_IN_FEATURES = ["res3", "res4", "res5"]
+ cfg.MODEL.SEM_SEG_HEAD.DEFORMABLE_TRANSFORMER_ENCODER_N_POINTS = 4
+ cfg.MODEL.SEM_SEG_HEAD.DEFORMABLE_TRANSFORMER_ENCODER_N_HEADS = 8
+
+ # point loss configs
+ # Number of points sampled during training for a mask point head.
+ cfg.MODEL.MASK_FORMER.TRAIN_NUM_POINTS = 112 * 112
+ # Oversampling parameter for PointRend point sampling during training. Parameter `k` in the
+ # original paper.
+ cfg.MODEL.MASK_FORMER.OVERSAMPLE_RATIO = 3.0
+ # Importance sampling parameter for PointRend point sampling during training. Parametr `beta` in
+ # the original paper.
+ cfg.MODEL.MASK_FORMER.IMPORTANCE_SAMPLE_RATIO = 0.75
diff --git a/videocutler/mask2former/data/__init__.py b/videocutler/mask2former/data/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..63ba265b1effc69f1eef16e57a04db8902ee347e
--- /dev/null
+++ b/videocutler/mask2former/data/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+from . import datasets
diff --git a/videocutler/mask2former/data/dataset_mappers/__init__.py b/videocutler/mask2former/data/dataset_mappers/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9020c2df23e2af280b7bb168b996ae9eaf312eb8
--- /dev/null
+++ b/videocutler/mask2former/data/dataset_mappers/__init__.py
@@ -0,0 +1 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/videocutler/mask2former/data/dataset_mappers/coco_instance_new_baseline_dataset_mapper.py b/videocutler/mask2former/data/dataset_mappers/coco_instance_new_baseline_dataset_mapper.py
new file mode 100644
index 0000000000000000000000000000000000000000..83b2de05ab0e9edaa5cc3f419b1bf1622c960b71
--- /dev/null
+++ b/videocutler/mask2former/data/dataset_mappers/coco_instance_new_baseline_dataset_mapper.py
@@ -0,0 +1,194 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/Mask2Former/tree/main/mask2former/data/dataset_mappers/dataset_mapper.py
+import copy
+import logging
+
+import numpy as np
+import torch
+
+from detectron2.config import configurable
+from detectron2.data import detection_utils as utils
+from detectron2.data import transforms as T
+from detectron2.data.transforms import TransformGen
+from detectron2.structures import BitMasks, Instances
+
+from pycocotools import mask as coco_mask
+
+__all__ = ["COCOInstanceNewBaselineDatasetMapper"]
+
+
+def convert_coco_poly_to_mask(segmentations, height, width):
+ masks = []
+ for polygons in segmentations:
+ rles = coco_mask.frPyObjects(polygons, height, width)
+ mask = coco_mask.decode(rles)
+ if len(mask.shape) < 3:
+ mask = mask[..., None]
+ mask = torch.as_tensor(mask, dtype=torch.uint8)
+ mask = mask.any(dim=2)
+ masks.append(mask)
+ if masks:
+ masks = torch.stack(masks, dim=0)
+ else:
+ masks = torch.zeros((0, height, width), dtype=torch.uint8)
+ return masks
+
+
+def build_transform_gen(cfg, is_train):
+ """
+ Create a list of default :class:`Augmentation` from config.
+ Now it includes resizing and flipping.
+ Returns:
+ list[Augmentation]
+ """
+ assert is_train, "Only support training augmentation"
+ image_size = cfg.INPUT.IMAGE_SIZE
+ min_scale = cfg.INPUT.MIN_SCALE
+ max_scale = cfg.INPUT.MAX_SCALE
+
+ augmentation = []
+
+ if cfg.INPUT.RANDOM_FLIP != "none":
+ augmentation.append(
+ T.RandomFlip(
+ horizontal=cfg.INPUT.RANDOM_FLIP == "horizontal",
+ vertical=cfg.INPUT.RANDOM_FLIP == "vertical",
+ )
+ )
+
+ augmentation.extend([
+ T.ResizeScale(
+ min_scale=min_scale, max_scale=max_scale, target_height=image_size, target_width=image_size
+ ),
+ T.FixedSizeCrop(crop_size=(image_size, image_size)),
+ ])
+
+ return augmentation
+
+
+# This is specifically designed for the COCO dataset.
+class COCOInstanceNewBaselineDatasetMapper:
+ """
+ A callable which takes a dataset dict in Detectron2 Dataset format,
+ and map it into a format used by MaskFormer.
+
+ This dataset mapper applies the same transformation as DETR for COCO panoptic segmentation.
+
+ The callable currently does the following:
+
+ 1. Read the image from "file_name"
+ 2. Applies geometric transforms to the image and annotation
+ 3. Find and applies suitable cropping to the image and annotation
+ 4. Prepare image and annotation to Tensors
+ """
+
+ @configurable
+ def __init__(
+ self,
+ is_train=True,
+ *,
+ tfm_gens,
+ image_format,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ is_train: for training or inference
+ augmentations: a list of augmentations or deterministic transforms to apply
+ tfm_gens: data augmentation
+ image_format: an image format supported by :func:`detection_utils.read_image`.
+ """
+ self.tfm_gens = tfm_gens
+ logging.getLogger(__name__).info(
+ "[COCOInstanceNewBaselineDatasetMapper] Full TransformGens used in training: {}".format(str(self.tfm_gens))
+ )
+
+ self.img_format = image_format
+ self.is_train = is_train
+
+ @classmethod
+ def from_config(cls, cfg, is_train=True):
+ # Build augmentation
+ tfm_gens = build_transform_gen(cfg, is_train)
+
+ ret = {
+ "is_train": is_train,
+ "tfm_gens": tfm_gens,
+ "image_format": cfg.INPUT.FORMAT,
+ }
+ return ret
+
+ def __call__(self, dataset_dict):
+ """
+ Args:
+ dataset_dict (dict): Metadata of one image, in Detectron2 Dataset format.
+
+ Returns:
+ dict: a format that builtin models in detectron2 accept
+ """
+ dataset_dict = copy.deepcopy(dataset_dict) # it will be modified by code below
+ image = utils.read_image(dataset_dict["file_name"], format=self.img_format)
+ utils.check_image_size(dataset_dict, image)
+
+ # TODO: get padding mask
+ # by feeding a "segmentation mask" to the same transforms
+ padding_mask = np.ones(image.shape[:2])
+
+ image, transforms = T.apply_transform_gens(self.tfm_gens, image)
+ # the crop transformation has default padding value 0 for segmentation
+ padding_mask = transforms.apply_segmentation(padding_mask)
+ padding_mask = ~ padding_mask.astype(bool)
+
+ image_shape = image.shape[:2] # h, w
+
+ # Pytorch's dataloader is efficient on torch.Tensor due to shared-memory,
+ # but not efficient on large generic data structures due to the use of pickle & mp.Queue.
+ # Therefore it's important to use torch.Tensor.
+ dataset_dict["image"] = torch.as_tensor(np.ascontiguousarray(image.transpose(2, 0, 1)))
+ dataset_dict["padding_mask"] = torch.as_tensor(np.ascontiguousarray(padding_mask))
+
+ if not self.is_train:
+ # USER: Modify this if you want to keep them for some reason.
+ dataset_dict.pop("annotations", None)
+ return dataset_dict
+
+ if "annotations" in dataset_dict:
+ # USER: Modify this if you want to keep them for some reason.
+ for anno in dataset_dict["annotations"]:
+ # Let's always keep mask
+ # if not self.mask_on:
+ # anno.pop("segmentation", None)
+ anno.pop("keypoints", None)
+
+ # USER: Implement additional transformations if you have other types of data
+ # annos = [
+ # utils.transform_instance_annotations(obj, transforms, image_shape)
+ # for obj in dataset_dict.pop("annotations")
+ # ]
+ annos = [
+ utils.transform_instance_annotations(obj, transforms, image_shape)
+ for obj in dataset_dict.pop("annotations")
+ if obj.get("iscrowd", 0) == 0
+ ]
+ # NOTE: does not support BitMask due to augmentation
+ # Current BitMask cannot handle empty objects
+ instances = utils.annotations_to_instances(annos, image_shape)
+ # print('instances: ', instances)
+ # After transforms such as cropping are applied, the bounding box may no longer
+ # tightly bound the object. As an example, imagine a triangle object
+ # [(0,0), (2,0), (0,2)] cropped by a box [(1,0),(2,2)] (XYXY format). The tight
+ # bounding box of the cropped triangle should be [(1,0),(2,1)], which is not equal to
+ # the intersection of original bounding box and the cropping box.
+ instances.gt_boxes = instances.gt_masks.get_bounding_boxes()
+ # Need to filter empty instances first (due to augmentation)
+ instances = utils.filter_empty_instances(instances)
+ # Generate masks from polygon
+ h, w = instances.image_size
+ # image_size_xyxy = torch.as_tensor([w, h, w, h], dtype=torch.float)
+ if hasattr(instances, 'gt_masks'):
+ gt_masks = instances.gt_masks
+ gt_masks = convert_coco_poly_to_mask(gt_masks.polygons, h, w)
+ instances.gt_masks = gt_masks
+ dataset_dict["instances"] = instances
+
+ return dataset_dict
diff --git a/videocutler/mask2former/data/dataset_mappers/coco_panoptic_new_baseline_dataset_mapper.py b/videocutler/mask2former/data/dataset_mappers/coco_panoptic_new_baseline_dataset_mapper.py
new file mode 100644
index 0000000000000000000000000000000000000000..2c9676f909c6edd24329ae61874f1e227050bc21
--- /dev/null
+++ b/videocutler/mask2former/data/dataset_mappers/coco_panoptic_new_baseline_dataset_mapper.py
@@ -0,0 +1,165 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Copied from https://github.com/facebookresearch/Mask2Former/tree/main/mask2former/data/dataset_mappers/
+import copy
+import logging
+
+import numpy as np
+import torch
+
+from detectron2.config import configurable
+from detectron2.data import detection_utils as utils
+from detectron2.data import transforms as T
+from detectron2.data.transforms import TransformGen
+from detectron2.structures import BitMasks, Boxes, Instances
+
+__all__ = ["COCOPanopticNewBaselineDatasetMapper"]
+
+
+def build_transform_gen(cfg, is_train):
+ """
+ Create a list of default :class:`Augmentation` from config.
+ Now it includes resizing and flipping.
+ Returns:
+ list[Augmentation]
+ """
+ assert is_train, "Only support training augmentation"
+ image_size = cfg.INPUT.IMAGE_SIZE
+ min_scale = cfg.INPUT.MIN_SCALE
+ max_scale = cfg.INPUT.MAX_SCALE
+
+ augmentation = []
+
+ if cfg.INPUT.RANDOM_FLIP != "none":
+ augmentation.append(
+ T.RandomFlip(
+ horizontal=cfg.INPUT.RANDOM_FLIP == "horizontal",
+ vertical=cfg.INPUT.RANDOM_FLIP == "vertical",
+ )
+ )
+
+ augmentation.extend([
+ T.ResizeScale(
+ min_scale=min_scale, max_scale=max_scale, target_height=image_size, target_width=image_size
+ ),
+ T.FixedSizeCrop(crop_size=(image_size, image_size)),
+ ])
+
+ return augmentation
+
+
+# This is specifically designed for the COCO dataset.
+class COCOPanopticNewBaselineDatasetMapper:
+ """
+ A callable which takes a dataset dict in Detectron2 Dataset format,
+ and map it into a format used by MaskFormer.
+
+ This dataset mapper applies the same transformation as DETR for COCO panoptic segmentation.
+
+ The callable currently does the following:
+
+ 1. Read the image from "file_name"
+ 2. Applies geometric transforms to the image and annotation
+ 3. Find and applies suitable cropping to the image and annotation
+ 4. Prepare image and annotation to Tensors
+ """
+
+ @configurable
+ def __init__(
+ self,
+ is_train=True,
+ *,
+ tfm_gens,
+ image_format,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ is_train: for training or inference
+ augmentations: a list of augmentations or deterministic transforms to apply
+ crop_gen: crop augmentation
+ tfm_gens: data augmentation
+ image_format: an image format supported by :func:`detection_utils.read_image`.
+ """
+ self.tfm_gens = tfm_gens
+ logging.getLogger(__name__).info(
+ "[COCOPanopticNewBaselineDatasetMapper] Full TransformGens used in training: {}".format(
+ str(self.tfm_gens)
+ )
+ )
+
+ self.img_format = image_format
+ self.is_train = is_train
+
+ @classmethod
+ def from_config(cls, cfg, is_train=True):
+ # Build augmentation
+ tfm_gens = build_transform_gen(cfg, is_train)
+
+ ret = {
+ "is_train": is_train,
+ "tfm_gens": tfm_gens,
+ "image_format": cfg.INPUT.FORMAT,
+ }
+ return ret
+
+ def __call__(self, dataset_dict):
+ """
+ Args:
+ dataset_dict (dict): Metadata of one image, in Detectron2 Dataset format.
+
+ Returns:
+ dict: a format that builtin models in detectron2 accept
+ """
+ dataset_dict = copy.deepcopy(dataset_dict) # it will be modified by code below
+ image = utils.read_image(dataset_dict["file_name"], format=self.img_format)
+ utils.check_image_size(dataset_dict, image)
+
+ image, transforms = T.apply_transform_gens(self.tfm_gens, image)
+ image_shape = image.shape[:2] # h, w
+
+ # Pytorch's dataloader is efficient on torch.Tensor due to shared-memory,
+ # but not efficient on large generic data structures due to the use of pickle & mp.Queue.
+ # Therefore it's important to use torch.Tensor.
+ dataset_dict["image"] = torch.as_tensor(np.ascontiguousarray(image.transpose(2, 0, 1)))
+
+ if not self.is_train:
+ # USER: Modify this if you want to keep them for some reason.
+ dataset_dict.pop("annotations", None)
+ return dataset_dict
+
+ if "pan_seg_file_name" in dataset_dict:
+ pan_seg_gt = utils.read_image(dataset_dict.pop("pan_seg_file_name"), "RGB")
+ segments_info = dataset_dict["segments_info"]
+
+ # apply the same transformation to panoptic segmentation
+ pan_seg_gt = transforms.apply_segmentation(pan_seg_gt)
+
+ from panopticapi.utils import rgb2id
+
+ pan_seg_gt = rgb2id(pan_seg_gt)
+
+ instances = Instances(image_shape)
+ classes = []
+ masks = []
+ for segment_info in segments_info:
+ class_id = segment_info["category_id"]
+ if not segment_info["iscrowd"]:
+ classes.append(class_id)
+ masks.append(pan_seg_gt == segment_info["id"])
+
+ classes = np.array(classes)
+ instances.gt_classes = torch.tensor(classes, dtype=torch.int64)
+ if len(masks) == 0:
+ # Some image does not have annotation (all ignored)
+ instances.gt_masks = torch.zeros((0, pan_seg_gt.shape[-2], pan_seg_gt.shape[-1]))
+ instances.gt_boxes = Boxes(torch.zeros((0, 4)))
+ else:
+ masks = BitMasks(
+ torch.stack([torch.from_numpy(np.ascontiguousarray(x.copy())) for x in masks])
+ )
+ instances.gt_masks = masks.tensor
+ instances.gt_boxes = masks.get_bounding_boxes()
+
+ dataset_dict["instances"] = instances
+
+ return dataset_dict
diff --git a/videocutler/mask2former/data/dataset_mappers/mask_former_instance_dataset_mapper.py b/videocutler/mask2former/data/dataset_mappers/mask_former_instance_dataset_mapper.py
new file mode 100644
index 0000000000000000000000000000000000000000..81222181cb606d8d5dbd13540e61244a34cecde2
--- /dev/null
+++ b/videocutler/mask2former/data/dataset_mappers/mask_former_instance_dataset_mapper.py
@@ -0,0 +1,182 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by XuDong from https://github.com/facebookresearch/Mask2Former/tree/main/mask2former/data/dataset_mappers/
+
+import copy
+import logging
+
+import numpy as np
+import pycocotools.mask as mask_util
+import torch
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.data import detection_utils as utils
+from detectron2.data import transforms as T
+from detectron2.projects.point_rend import ColorAugSSDTransform
+from detectron2.structures import BitMasks, Instances, polygons_to_bitmask
+
+__all__ = ["MaskFormerInstanceDatasetMapper"]
+
+
+class MaskFormerInstanceDatasetMapper:
+ """
+ A callable which takes a dataset dict in Detectron2 Dataset format,
+ and map it into a format used by MaskFormer for instance segmentation.
+
+ The callable currently does the following:
+
+ 1. Read the image from "file_name"
+ 2. Applies geometric transforms to the image and annotation
+ 3. Find and applies suitable cropping to the image and annotation
+ 4. Prepare image and annotation to Tensors
+ """
+
+ @configurable
+ def __init__(
+ self,
+ is_train=True,
+ *,
+ augmentations,
+ image_format,
+ size_divisibility,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ is_train: for training or inference
+ augmentations: a list of augmentations or deterministic transforms to apply
+ image_format: an image format supported by :func:`detection_utils.read_image`.
+ size_divisibility: pad image size to be divisible by this value
+ """
+ self.is_train = is_train
+ self.tfm_gens = augmentations
+ self.img_format = image_format
+ self.size_divisibility = size_divisibility
+
+ logger = logging.getLogger(__name__)
+ mode = "training" if is_train else "inference"
+ logger.info(f"[{self.__class__.__name__}] Augmentations used in {mode}: {augmentations}")
+
+ @classmethod
+ def from_config(cls, cfg, is_train=True):
+ # Build augmentation
+ augs = [
+ T.ResizeShortestEdge(
+ cfg.INPUT.MIN_SIZE_TRAIN,
+ cfg.INPUT.MAX_SIZE_TRAIN,
+ cfg.INPUT.MIN_SIZE_TRAIN_SAMPLING,
+ )
+ ]
+ if cfg.INPUT.CROP.ENABLED:
+ augs.append(
+ T.RandomCrop(
+ cfg.INPUT.CROP.TYPE,
+ cfg.INPUT.CROP.SIZE,
+ )
+ )
+ if cfg.INPUT.COLOR_AUG_SSD:
+ augs.append(ColorAugSSDTransform(img_format=cfg.INPUT.FORMAT))
+ augs.append(T.RandomFlip())
+
+ ret = {
+ "is_train": is_train,
+ "augmentations": augs,
+ "image_format": cfg.INPUT.FORMAT,
+ "size_divisibility": cfg.INPUT.SIZE_DIVISIBILITY,
+ }
+ return ret
+
+ def __call__(self, dataset_dict):
+ """
+ Args:
+ dataset_dict (dict): Metadata of one image, in Detectron2 Dataset format.
+
+ Returns:
+ dict: a format that builtin models in detectron2 accept
+ """
+ assert self.is_train, "MaskFormerPanopticDatasetMapper should only be used for training!"
+
+ dataset_dict = copy.deepcopy(dataset_dict) # it will be modified by code below
+ image = utils.read_image(dataset_dict["file_name"], format=self.img_format)
+ utils.check_image_size(dataset_dict, image)
+
+ aug_input = T.AugInput(image)
+ aug_input, transforms = T.apply_transform_gens(self.tfm_gens, aug_input)
+ image = aug_input.image
+
+ # transform instnace masks
+ assert "annotations" in dataset_dict
+ for anno in dataset_dict["annotations"]:
+ anno.pop("keypoints", None)
+
+ annos = [
+ utils.transform_instance_annotations(obj, transforms, image.shape[:2])
+ for obj in dataset_dict.pop("annotations")
+ if obj.get("iscrowd", 0) == 0
+ ]
+
+ if len(annos):
+ assert "segmentation" in annos[0]
+ segms = [obj["segmentation"] for obj in annos]
+ masks = []
+ for segm in segms:
+ if isinstance(segm, list):
+ # polygon
+ masks.append(polygons_to_bitmask(segm, *image.shape[:2]))
+ elif isinstance(segm, dict):
+ # COCO RLE
+ masks.append(mask_util.decode(segm))
+ elif isinstance(segm, np.ndarray):
+ assert segm.ndim == 2, "Expect segmentation of 2 dimensions, got {}.".format(
+ segm.ndim
+ )
+ # mask array
+ masks.append(segm)
+ else:
+ raise ValueError(
+ "Cannot convert segmentation of type '{}' to BitMasks!"
+ "Supported types are: polygons as list[list[float] or ndarray],"
+ " COCO-style RLE as a dict, or a binary segmentation mask "
+ " in a 2D numpy array of shape HxW.".format(type(segm))
+ )
+
+ # Pad image and segmentation label here!
+ image = torch.as_tensor(np.ascontiguousarray(image.transpose(2, 0, 1)))
+ masks = [torch.from_numpy(np.ascontiguousarray(x)) for x in masks]
+
+ classes = [int(obj["category_id"]) for obj in annos]
+ classes = torch.tensor(classes, dtype=torch.int64)
+
+ if self.size_divisibility > 0:
+ image_size = (image.shape[-2], image.shape[-1])
+ padding_size = [
+ 0,
+ self.size_divisibility - image_size[1],
+ 0,
+ self.size_divisibility - image_size[0],
+ ]
+ # pad image
+ image = F.pad(image, padding_size, value=128).contiguous()
+ # pad mask
+ masks = [F.pad(x, padding_size, value=0).contiguous() for x in masks]
+
+ image_shape = (image.shape[-2], image.shape[-1]) # h, w
+
+ # Pytorch's dataloader is efficient on torch.Tensor due to shared-memory,
+ # but not efficient on large generic data structures due to the use of pickle & mp.Queue.
+ # Therefore it's important to use torch.Tensor.
+ dataset_dict["image"] = image
+
+ # Prepare per-category binary masks
+ instances = Instances(image_shape)
+ instances.gt_classes = classes
+ if len(masks) == 0:
+ # Some image does not have annotation (all ignored)
+ instances.gt_masks = torch.zeros((0, image.shape[-2], image.shape[-1]))
+ else:
+ masks = BitMasks(torch.stack(masks))
+ instances.gt_masks = masks.tensor
+
+ dataset_dict["instances"] = instances
+
+ return dataset_dict
diff --git a/videocutler/mask2former/data/dataset_mappers/mask_former_panoptic_dataset_mapper.py b/videocutler/mask2former/data/dataset_mappers/mask_former_panoptic_dataset_mapper.py
new file mode 100644
index 0000000000000000000000000000000000000000..9e54083cb4eecc82a4765b725697fd54aa81e189
--- /dev/null
+++ b/videocutler/mask2former/data/dataset_mappers/mask_former_panoptic_dataset_mapper.py
@@ -0,0 +1,167 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by XuDong from https://github.com/facebookresearch/Mask2Former/tree/main/mask2former/data/dataset_mappers/
+
+import copy
+import logging
+
+import numpy as np
+import torch
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.data import detection_utils as utils
+from detectron2.data import transforms as T
+from detectron2.structures import BitMasks, Instances
+
+from .mask_former_semantic_dataset_mapper import MaskFormerSemanticDatasetMapper
+
+__all__ = ["MaskFormerPanopticDatasetMapper"]
+
+
+class MaskFormerPanopticDatasetMapper(MaskFormerSemanticDatasetMapper):
+ """
+ A callable which takes a dataset dict in Detectron2 Dataset format,
+ and map it into a format used by MaskFormer for panoptic segmentation.
+
+ The callable currently does the following:
+
+ 1. Read the image from "file_name"
+ 2. Applies geometric transforms to the image and annotation
+ 3. Find and applies suitable cropping to the image and annotation
+ 4. Prepare image and annotation to Tensors
+ """
+
+ @configurable
+ def __init__(
+ self,
+ is_train=True,
+ *,
+ augmentations,
+ image_format,
+ ignore_label,
+ size_divisibility,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ is_train: for training or inference
+ augmentations: a list of augmentations or deterministic transforms to apply
+ image_format: an image format supported by :func:`detection_utils.read_image`.
+ ignore_label: the label that is ignored to evaluation
+ size_divisibility: pad image size to be divisible by this value
+ """
+ super().__init__(
+ is_train,
+ augmentations=augmentations,
+ image_format=image_format,
+ ignore_label=ignore_label,
+ size_divisibility=size_divisibility,
+ )
+
+ def __call__(self, dataset_dict):
+ """
+ Args:
+ dataset_dict (dict): Metadata of one image, in Detectron2 Dataset format.
+
+ Returns:
+ dict: a format that builtin models in detectron2 accept
+ """
+ assert self.is_train, "MaskFormerPanopticDatasetMapper should only be used for training!"
+
+ dataset_dict = copy.deepcopy(dataset_dict) # it will be modified by code below
+ image = utils.read_image(dataset_dict["file_name"], format=self.img_format)
+ utils.check_image_size(dataset_dict, image)
+
+ # semantic segmentation
+ if "sem_seg_file_name" in dataset_dict:
+ # PyTorch transformation not implemented for uint16, so converting it to double first
+ sem_seg_gt = utils.read_image(dataset_dict.pop("sem_seg_file_name")).astype("double")
+ else:
+ sem_seg_gt = None
+
+ # panoptic segmentation
+ if "pan_seg_file_name" in dataset_dict:
+ pan_seg_gt = utils.read_image(dataset_dict.pop("pan_seg_file_name"), "RGB")
+ segments_info = dataset_dict["segments_info"]
+ else:
+ pan_seg_gt = None
+ segments_info = None
+
+ if pan_seg_gt is None:
+ raise ValueError(
+ "Cannot find 'pan_seg_file_name' for panoptic segmentation dataset {}.".format(
+ dataset_dict["file_name"]
+ )
+ )
+
+ aug_input = T.AugInput(image, sem_seg=sem_seg_gt)
+ aug_input, transforms = T.apply_transform_gens(self.tfm_gens, aug_input)
+ image = aug_input.image
+ if sem_seg_gt is not None:
+ sem_seg_gt = aug_input.sem_seg
+
+ # apply the same transformation to panoptic segmentation
+ pan_seg_gt = transforms.apply_segmentation(pan_seg_gt)
+
+ from panopticapi.utils import rgb2id
+
+ pan_seg_gt = rgb2id(pan_seg_gt)
+
+ # Pad image and segmentation label here!
+ image = torch.as_tensor(np.ascontiguousarray(image.transpose(2, 0, 1)))
+ if sem_seg_gt is not None:
+ sem_seg_gt = torch.as_tensor(sem_seg_gt.astype("long"))
+ pan_seg_gt = torch.as_tensor(pan_seg_gt.astype("long"))
+
+ if self.size_divisibility > 0:
+ image_size = (image.shape[-2], image.shape[-1])
+ padding_size = [
+ 0,
+ self.size_divisibility - image_size[1],
+ 0,
+ self.size_divisibility - image_size[0],
+ ]
+ image = F.pad(image, padding_size, value=128).contiguous()
+ if sem_seg_gt is not None:
+ sem_seg_gt = F.pad(sem_seg_gt, padding_size, value=self.ignore_label).contiguous()
+ pan_seg_gt = F.pad(
+ pan_seg_gt, padding_size, value=0
+ ).contiguous() # 0 is the VOID panoptic label
+
+ image_shape = (image.shape[-2], image.shape[-1]) # h, w
+
+ # Pytorch's dataloader is efficient on torch.Tensor due to shared-memory,
+ # but not efficient on large generic data structures due to the use of pickle & mp.Queue.
+ # Therefore it's important to use torch.Tensor.
+ dataset_dict["image"] = image
+ if sem_seg_gt is not None:
+ dataset_dict["sem_seg"] = sem_seg_gt.long()
+
+ if "annotations" in dataset_dict:
+ raise ValueError("Pemantic segmentation dataset should not have 'annotations'.")
+
+ # Prepare per-category binary masks
+ pan_seg_gt = pan_seg_gt.numpy()
+ instances = Instances(image_shape)
+ classes = []
+ masks = []
+ for segment_info in segments_info:
+ class_id = segment_info["category_id"]
+ if not segment_info["iscrowd"]:
+ classes.append(class_id)
+ masks.append(pan_seg_gt == segment_info["id"])
+
+ classes = np.array(classes)
+ instances.gt_classes = torch.tensor(classes, dtype=torch.int64)
+ if len(masks) == 0:
+ # Some image does not have annotation (all ignored)
+ instances.gt_masks = torch.zeros((0, pan_seg_gt.shape[-2], pan_seg_gt.shape[-1]))
+ else:
+ masks = BitMasks(
+ torch.stack([torch.from_numpy(np.ascontiguousarray(x.copy())) for x in masks])
+ )
+ instances.gt_masks = masks.tensor
+
+ dataset_dict["instances"] = instances
+
+ return dataset_dict
diff --git a/videocutler/mask2former/data/dataset_mappers/mask_former_semantic_dataset_mapper.py b/videocutler/mask2former/data/dataset_mappers/mask_former_semantic_dataset_mapper.py
new file mode 100644
index 0000000000000000000000000000000000000000..b2e1240a7763605b004919df34d64c64767d1106
--- /dev/null
+++ b/videocutler/mask2former/data/dataset_mappers/mask_former_semantic_dataset_mapper.py
@@ -0,0 +1,186 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by XuDong from https://github.com/facebookresearch/Mask2Former/tree/main/mask2former/data/dataset_mappers/
+
+import copy
+import logging
+
+import numpy as np
+import torch
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.data import MetadataCatalog
+from detectron2.data import detection_utils as utils
+from detectron2.data import transforms as T
+from detectron2.projects.point_rend import ColorAugSSDTransform
+from detectron2.structures import BitMasks, Instances
+
+__all__ = ["MaskFormerSemanticDatasetMapper"]
+
+
+class MaskFormerSemanticDatasetMapper:
+ """
+ A callable which takes a dataset dict in Detectron2 Dataset format,
+ and map it into a format used by MaskFormer for semantic segmentation.
+
+ The callable currently does the following:
+
+ 1. Read the image from "file_name"
+ 2. Applies geometric transforms to the image and annotation
+ 3. Find and applies suitable cropping to the image and annotation
+ 4. Prepare image and annotation to Tensors
+ """
+
+ @configurable
+ def __init__(
+ self,
+ is_train=True,
+ *,
+ augmentations,
+ image_format,
+ ignore_label,
+ size_divisibility,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ is_train: for training or inference
+ augmentations: a list of augmentations or deterministic transforms to apply
+ image_format: an image format supported by :func:`detection_utils.read_image`.
+ ignore_label: the label that is ignored to evaluation
+ size_divisibility: pad image size to be divisible by this value
+ """
+ self.is_train = is_train
+ self.tfm_gens = augmentations
+ self.img_format = image_format
+ self.ignore_label = ignore_label
+ self.size_divisibility = size_divisibility
+
+ logger = logging.getLogger(__name__)
+ mode = "training" if is_train else "inference"
+ logger.info(f"[{self.__class__.__name__}] Augmentations used in {mode}: {augmentations}")
+
+ @classmethod
+ def from_config(cls, cfg, is_train=True):
+ # Build augmentation
+ augs = [
+ T.ResizeShortestEdge(
+ cfg.INPUT.MIN_SIZE_TRAIN,
+ cfg.INPUT.MAX_SIZE_TRAIN,
+ cfg.INPUT.MIN_SIZE_TRAIN_SAMPLING,
+ )
+ ]
+ if cfg.INPUT.CROP.ENABLED:
+ augs.append(
+ T.RandomCrop_CategoryAreaConstraint(
+ cfg.INPUT.CROP.TYPE,
+ cfg.INPUT.CROP.SIZE,
+ cfg.INPUT.CROP.SINGLE_CATEGORY_MAX_AREA,
+ cfg.MODEL.SEM_SEG_HEAD.IGNORE_VALUE,
+ )
+ )
+ if cfg.INPUT.COLOR_AUG_SSD:
+ augs.append(ColorAugSSDTransform(img_format=cfg.INPUT.FORMAT))
+ augs.append(T.RandomFlip())
+
+ # Assume always applies to the training set.
+ dataset_names = cfg.DATASETS.TRAIN
+ meta = MetadataCatalog.get(dataset_names[0])
+ ignore_label = meta.ignore_label
+
+ ret = {
+ "is_train": is_train,
+ "augmentations": augs,
+ "image_format": cfg.INPUT.FORMAT,
+ "ignore_label": ignore_label,
+ "size_divisibility": cfg.INPUT.SIZE_DIVISIBILITY,
+ }
+ return ret
+
+ def __call__(self, dataset_dict):
+ """
+ Args:
+ dataset_dict (dict): Metadata of one image, in Detectron2 Dataset format.
+
+ Returns:
+ dict: a format that builtin models in detectron2 accept
+ """
+ assert self.is_train, "MaskFormerSemanticDatasetMapper should only be used for training!"
+
+ dataset_dict = copy.deepcopy(dataset_dict) # it will be modified by code below
+ image = utils.read_image(dataset_dict["file_name"], format=self.img_format)
+ utils.check_image_size(dataset_dict, image)
+
+ if "sem_seg_file_name" in dataset_dict:
+ # PyTorch transformation not implemented for uint16, so converting it to double first
+ sem_seg_gt = utils.read_image(dataset_dict.pop("sem_seg_file_name")).astype("double")
+ else:
+ sem_seg_gt = None
+
+ if sem_seg_gt is None:
+ raise ValueError(
+ "Cannot find 'sem_seg_file_name' for semantic segmentation dataset {}.".format(
+ dataset_dict["file_name"]
+ )
+ )
+
+ aug_input = T.AugInput(image, sem_seg=sem_seg_gt)
+ aug_input, transforms = T.apply_transform_gens(self.tfm_gens, aug_input)
+ image = aug_input.image
+ sem_seg_gt = aug_input.sem_seg
+
+ # Pad image and segmentation label here!
+ image = torch.as_tensor(np.ascontiguousarray(image.transpose(2, 0, 1)))
+ if sem_seg_gt is not None:
+ sem_seg_gt = torch.as_tensor(sem_seg_gt.astype("long"))
+
+ if self.size_divisibility > 0:
+ image_size = (image.shape[-2], image.shape[-1])
+ padding_size = [
+ 0,
+ self.size_divisibility - image_size[1],
+ 0,
+ self.size_divisibility - image_size[0],
+ ]
+ image = F.pad(image, padding_size, value=128).contiguous()
+ if sem_seg_gt is not None:
+ sem_seg_gt = F.pad(sem_seg_gt, padding_size, value=self.ignore_label).contiguous()
+
+ image_shape = (image.shape[-2], image.shape[-1]) # h, w
+
+ # Pytorch's dataloader is efficient on torch.Tensor due to shared-memory,
+ # but not efficient on large generic data structures due to the use of pickle & mp.Queue.
+ # Therefore it's important to use torch.Tensor.
+ dataset_dict["image"] = image
+
+ if sem_seg_gt is not None:
+ dataset_dict["sem_seg"] = sem_seg_gt.long()
+
+ if "annotations" in dataset_dict:
+ raise ValueError("Semantic segmentation dataset should not have 'annotations'.")
+
+ # Prepare per-category binary masks
+ if sem_seg_gt is not None:
+ sem_seg_gt = sem_seg_gt.numpy()
+ instances = Instances(image_shape)
+ classes = np.unique(sem_seg_gt)
+ # remove ignored region
+ classes = classes[classes != self.ignore_label]
+ instances.gt_classes = torch.tensor(classes, dtype=torch.int64)
+
+ masks = []
+ for class_id in classes:
+ masks.append(sem_seg_gt == class_id)
+
+ if len(masks) == 0:
+ # Some image does not have annotation (all ignored)
+ instances.gt_masks = torch.zeros((0, sem_seg_gt.shape[-2], sem_seg_gt.shape[-1]))
+ else:
+ masks = BitMasks(
+ torch.stack([torch.from_numpy(np.ascontiguousarray(x.copy())) for x in masks])
+ )
+ instances.gt_masks = masks.tensor
+
+ dataset_dict["instances"] = instances
+
+ return dataset_dict
diff --git a/videocutler/mask2former/data/datasets/__init__.py b/videocutler/mask2former/data/datasets/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..403a678e3ba6655135f36e788ad53587f05d6d1e
--- /dev/null
+++ b/videocutler/mask2former/data/datasets/__init__.py
@@ -0,0 +1,10 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+from . import (
+ register_ade20k_full,
+ register_ade20k_panoptic,
+ register_coco_stuff_10k,
+ register_mapillary_vistas,
+ register_coco_panoptic_annos_semseg,
+ register_ade20k_instance,
+ register_mapillary_vistas_panoptic,
+)
diff --git a/videocutler/mask2former/data/datasets/register_ade20k_full.py b/videocutler/mask2former/data/datasets/register_ade20k_full.py
new file mode 100644
index 0000000000000000000000000000000000000000..7121a22227583b29a6e167b560703e33371f1081
--- /dev/null
+++ b/videocutler/mask2former/data/datasets/register_ade20k_full.py
@@ -0,0 +1,964 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import os
+
+from detectron2.data import DatasetCatalog, MetadataCatalog
+from detectron2.data.datasets import load_sem_seg
+
+ADE20K_SEM_SEG_FULL_CATEGORIES = [
+ {"name": "wall", "id": 2978, "trainId": 0},
+ {"name": "building, edifice", "id": 312, "trainId": 1},
+ {"name": "sky", "id": 2420, "trainId": 2},
+ {"name": "tree", "id": 2855, "trainId": 3},
+ {"name": "road, route", "id": 2131, "trainId": 4},
+ {"name": "floor, flooring", "id": 976, "trainId": 5},
+ {"name": "ceiling", "id": 447, "trainId": 6},
+ {"name": "bed", "id": 165, "trainId": 7},
+ {"name": "sidewalk, pavement", "id": 2377, "trainId": 8},
+ {"name": "earth, ground", "id": 838, "trainId": 9},
+ {"name": "cabinet", "id": 350, "trainId": 10},
+ {"name": "person, individual, someone, somebody, mortal, soul", "id": 1831, "trainId": 11},
+ {"name": "grass", "id": 1125, "trainId": 12},
+ {"name": "windowpane, window", "id": 3055, "trainId": 13},
+ {"name": "car, auto, automobile, machine, motorcar", "id": 401, "trainId": 14},
+ {"name": "mountain, mount", "id": 1610, "trainId": 15},
+ {"name": "plant, flora, plant life", "id": 1910, "trainId": 16},
+ {"name": "table", "id": 2684, "trainId": 17},
+ {"name": "chair", "id": 471, "trainId": 18},
+ {"name": "curtain, drape, drapery, mantle, pall", "id": 687, "trainId": 19},
+ {"name": "door", "id": 774, "trainId": 20},
+ {"name": "sofa, couch, lounge", "id": 2473, "trainId": 21},
+ {"name": "sea", "id": 2264, "trainId": 22},
+ {"name": "painting, picture", "id": 1735, "trainId": 23},
+ {"name": "water", "id": 2994, "trainId": 24},
+ {"name": "mirror", "id": 1564, "trainId": 25},
+ {"name": "house", "id": 1276, "trainId": 26},
+ {"name": "rug, carpet, carpeting", "id": 2178, "trainId": 27},
+ {"name": "shelf", "id": 2329, "trainId": 28},
+ {"name": "armchair", "id": 57, "trainId": 29},
+ {"name": "fence, fencing", "id": 907, "trainId": 30},
+ {"name": "field", "id": 913, "trainId": 31},
+ {"name": "lamp", "id": 1395, "trainId": 32},
+ {"name": "rock, stone", "id": 2138, "trainId": 33},
+ {"name": "seat", "id": 2272, "trainId": 34},
+ {"name": "river", "id": 2128, "trainId": 35},
+ {"name": "desk", "id": 724, "trainId": 36},
+ {"name": "bathtub, bathing tub, bath, tub", "id": 155, "trainId": 37},
+ {"name": "railing, rail", "id": 2053, "trainId": 38},
+ {"name": "signboard, sign", "id": 2380, "trainId": 39},
+ {"name": "cushion", "id": 689, "trainId": 40},
+ {"name": "path", "id": 1788, "trainId": 41},
+ {"name": "work surface", "id": 3087, "trainId": 42},
+ {"name": "stairs, steps", "id": 2530, "trainId": 43},
+ {"name": "column, pillar", "id": 581, "trainId": 44},
+ {"name": "sink", "id": 2388, "trainId": 45},
+ {"name": "wardrobe, closet, press", "id": 2985, "trainId": 46},
+ {"name": "snow", "id": 2454, "trainId": 47},
+ {"name": "refrigerator, icebox", "id": 2096, "trainId": 48},
+ {"name": "base, pedestal, stand", "id": 137, "trainId": 49},
+ {"name": "bridge, span", "id": 294, "trainId": 50},
+ {"name": "blind, screen", "id": 212, "trainId": 51},
+ {"name": "runway", "id": 2185, "trainId": 52},
+ {"name": "cliff, drop, drop-off", "id": 524, "trainId": 53},
+ {"name": "sand", "id": 2212, "trainId": 54},
+ {"name": "fireplace, hearth, open fireplace", "id": 943, "trainId": 55},
+ {"name": "pillow", "id": 1869, "trainId": 56},
+ {"name": "screen door, screen", "id": 2251, "trainId": 57},
+ {"name": "toilet, can, commode, crapper, pot, potty, stool, throne", "id": 2793, "trainId": 58},
+ {"name": "skyscraper", "id": 2423, "trainId": 59},
+ {"name": "grandstand, covered stand", "id": 1121, "trainId": 60},
+ {"name": "box", "id": 266, "trainId": 61},
+ {"name": "pool table, billiard table, snooker table", "id": 1948, "trainId": 62},
+ {"name": "palm, palm tree", "id": 1744, "trainId": 63},
+ {"name": "double door", "id": 783, "trainId": 64},
+ {"name": "coffee table, cocktail table", "id": 571, "trainId": 65},
+ {"name": "counter", "id": 627, "trainId": 66},
+ {"name": "countertop", "id": 629, "trainId": 67},
+ {"name": "chest of drawers, chest, bureau, dresser", "id": 491, "trainId": 68},
+ {"name": "kitchen island", "id": 1374, "trainId": 69},
+ {"name": "boat", "id": 223, "trainId": 70},
+ {"name": "waterfall, falls", "id": 3016, "trainId": 71},
+ {
+ "name": "stove, kitchen stove, range, kitchen range, cooking stove",
+ "id": 2598,
+ "trainId": 72,
+ },
+ {"name": "flower", "id": 978, "trainId": 73},
+ {"name": "bookcase", "id": 239, "trainId": 74},
+ {"name": "controls", "id": 608, "trainId": 75},
+ {"name": "book", "id": 236, "trainId": 76},
+ {"name": "stairway, staircase", "id": 2531, "trainId": 77},
+ {"name": "streetlight, street lamp", "id": 2616, "trainId": 78},
+ {
+ "name": "computer, computing machine, computing device, data processor, electronic computer, information processing system",
+ "id": 591,
+ "trainId": 79,
+ },
+ {
+ "name": "bus, autobus, coach, charabanc, double-decker, jitney, motorbus, motorcoach, omnibus, passenger vehicle",
+ "id": 327,
+ "trainId": 80,
+ },
+ {"name": "swivel chair", "id": 2679, "trainId": 81},
+ {"name": "light, light source", "id": 1451, "trainId": 82},
+ {"name": "bench", "id": 181, "trainId": 83},
+ {"name": "case, display case, showcase, vitrine", "id": 420, "trainId": 84},
+ {"name": "towel", "id": 2821, "trainId": 85},
+ {"name": "fountain", "id": 1023, "trainId": 86},
+ {"name": "embankment", "id": 855, "trainId": 87},
+ {
+ "name": "television receiver, television, television set, tv, tv set, idiot box, boob tube, telly, goggle box",
+ "id": 2733,
+ "trainId": 88,
+ },
+ {"name": "van", "id": 2928, "trainId": 89},
+ {"name": "hill", "id": 1240, "trainId": 90},
+ {"name": "awning, sunshade, sunblind", "id": 77, "trainId": 91},
+ {"name": "poster, posting, placard, notice, bill, card", "id": 1969, "trainId": 92},
+ {"name": "truck, motortruck", "id": 2880, "trainId": 93},
+ {"name": "airplane, aeroplane, plane", "id": 14, "trainId": 94},
+ {"name": "pole", "id": 1936, "trainId": 95},
+ {"name": "tower", "id": 2828, "trainId": 96},
+ {"name": "court", "id": 631, "trainId": 97},
+ {"name": "ball", "id": 103, "trainId": 98},
+ {
+ "name": "aircraft carrier, carrier, flattop, attack aircraft carrier",
+ "id": 3144,
+ "trainId": 99,
+ },
+ {"name": "buffet, counter, sideboard", "id": 308, "trainId": 100},
+ {"name": "hovel, hut, hutch, shack, shanty", "id": 1282, "trainId": 101},
+ {"name": "apparel, wearing apparel, dress, clothes", "id": 38, "trainId": 102},
+ {"name": "minibike, motorbike", "id": 1563, "trainId": 103},
+ {"name": "animal, animate being, beast, brute, creature, fauna", "id": 29, "trainId": 104},
+ {"name": "chandelier, pendant, pendent", "id": 480, "trainId": 105},
+ {"name": "step, stair", "id": 2569, "trainId": 106},
+ {"name": "booth, cubicle, stall, kiosk", "id": 247, "trainId": 107},
+ {"name": "bicycle, bike, wheel, cycle", "id": 187, "trainId": 108},
+ {"name": "doorframe, doorcase", "id": 778, "trainId": 109},
+ {"name": "sconce", "id": 2243, "trainId": 110},
+ {"name": "pond", "id": 1941, "trainId": 111},
+ {"name": "trade name, brand name, brand, marque", "id": 2833, "trainId": 112},
+ {"name": "bannister, banister, balustrade, balusters, handrail", "id": 120, "trainId": 113},
+ {"name": "bag", "id": 95, "trainId": 114},
+ {"name": "traffic light, traffic signal, stoplight", "id": 2836, "trainId": 115},
+ {"name": "gazebo", "id": 1087, "trainId": 116},
+ {"name": "escalator, moving staircase, moving stairway", "id": 868, "trainId": 117},
+ {"name": "land, ground, soil", "id": 1401, "trainId": 118},
+ {"name": "board, plank", "id": 220, "trainId": 119},
+ {"name": "arcade machine", "id": 47, "trainId": 120},
+ {"name": "eiderdown, duvet, continental quilt", "id": 843, "trainId": 121},
+ {"name": "bar", "id": 123, "trainId": 122},
+ {"name": "stall, stand, sales booth", "id": 2537, "trainId": 123},
+ {"name": "playground", "id": 1927, "trainId": 124},
+ {"name": "ship", "id": 2337, "trainId": 125},
+ {"name": "ottoman, pouf, pouffe, puff, hassock", "id": 1702, "trainId": 126},
+ {
+ "name": "ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin",
+ "id": 64,
+ "trainId": 127,
+ },
+ {"name": "bottle", "id": 249, "trainId": 128},
+ {"name": "cradle", "id": 642, "trainId": 129},
+ {"name": "pot, flowerpot", "id": 1981, "trainId": 130},
+ {
+ "name": "conveyer belt, conveyor belt, conveyer, conveyor, transporter",
+ "id": 609,
+ "trainId": 131,
+ },
+ {"name": "train, railroad train", "id": 2840, "trainId": 132},
+ {"name": "stool", "id": 2586, "trainId": 133},
+ {"name": "lake", "id": 1393, "trainId": 134},
+ {"name": "tank, storage tank", "id": 2704, "trainId": 135},
+ {"name": "ice, water ice", "id": 1304, "trainId": 136},
+ {"name": "basket, handbasket", "id": 146, "trainId": 137},
+ {"name": "manhole", "id": 1494, "trainId": 138},
+ {"name": "tent, collapsible shelter", "id": 2739, "trainId": 139},
+ {"name": "canopy", "id": 389, "trainId": 140},
+ {"name": "microwave, microwave oven", "id": 1551, "trainId": 141},
+ {"name": "barrel, cask", "id": 131, "trainId": 142},
+ {"name": "dirt track", "id": 738, "trainId": 143},
+ {"name": "beam", "id": 161, "trainId": 144},
+ {"name": "dishwasher, dish washer, dishwashing machine", "id": 747, "trainId": 145},
+ {"name": "plate", "id": 1919, "trainId": 146},
+ {"name": "screen, crt screen", "id": 3109, "trainId": 147},
+ {"name": "ruins", "id": 2179, "trainId": 148},
+ {"name": "washer, automatic washer, washing machine", "id": 2989, "trainId": 149},
+ {"name": "blanket, cover", "id": 206, "trainId": 150},
+ {"name": "plaything, toy", "id": 1930, "trainId": 151},
+ {"name": "food, solid food", "id": 1002, "trainId": 152},
+ {"name": "screen, silver screen, projection screen", "id": 2254, "trainId": 153},
+ {"name": "oven", "id": 1708, "trainId": 154},
+ {"name": "stage", "id": 2526, "trainId": 155},
+ {"name": "beacon, lighthouse, beacon light, pharos", "id": 160, "trainId": 156},
+ {"name": "umbrella", "id": 2901, "trainId": 157},
+ {"name": "sculpture", "id": 2262, "trainId": 158},
+ {"name": "aqueduct", "id": 44, "trainId": 159},
+ {"name": "container", "id": 597, "trainId": 160},
+ {"name": "scaffolding, staging", "id": 2235, "trainId": 161},
+ {"name": "hood, exhaust hood", "id": 1260, "trainId": 162},
+ {"name": "curb, curbing, kerb", "id": 682, "trainId": 163},
+ {"name": "roller coaster", "id": 2151, "trainId": 164},
+ {"name": "horse, equus caballus", "id": 3107, "trainId": 165},
+ {"name": "catwalk", "id": 432, "trainId": 166},
+ {"name": "glass, drinking glass", "id": 1098, "trainId": 167},
+ {"name": "vase", "id": 2932, "trainId": 168},
+ {"name": "central reservation", "id": 461, "trainId": 169},
+ {"name": "carousel", "id": 410, "trainId": 170},
+ {"name": "radiator", "id": 2046, "trainId": 171},
+ {"name": "closet", "id": 533, "trainId": 172},
+ {"name": "machine", "id": 1481, "trainId": 173},
+ {"name": "pier, wharf, wharfage, dock", "id": 1858, "trainId": 174},
+ {"name": "fan", "id": 894, "trainId": 175},
+ {"name": "inflatable bounce game", "id": 1322, "trainId": 176},
+ {"name": "pitch", "id": 1891, "trainId": 177},
+ {"name": "paper", "id": 1756, "trainId": 178},
+ {"name": "arcade, colonnade", "id": 49, "trainId": 179},
+ {"name": "hot tub", "id": 1272, "trainId": 180},
+ {"name": "helicopter", "id": 1229, "trainId": 181},
+ {"name": "tray", "id": 2850, "trainId": 182},
+ {"name": "partition, divider", "id": 1784, "trainId": 183},
+ {"name": "vineyard", "id": 2962, "trainId": 184},
+ {"name": "bowl", "id": 259, "trainId": 185},
+ {"name": "bullring", "id": 319, "trainId": 186},
+ {"name": "flag", "id": 954, "trainId": 187},
+ {"name": "pot", "id": 1974, "trainId": 188},
+ {"name": "footbridge, overcrossing, pedestrian bridge", "id": 1013, "trainId": 189},
+ {"name": "shower", "id": 2356, "trainId": 190},
+ {"name": "bag, traveling bag, travelling bag, grip, suitcase", "id": 97, "trainId": 191},
+ {"name": "bulletin board, notice board", "id": 318, "trainId": 192},
+ {"name": "confessional booth", "id": 592, "trainId": 193},
+ {"name": "trunk, tree trunk, bole", "id": 2885, "trainId": 194},
+ {"name": "forest", "id": 1017, "trainId": 195},
+ {"name": "elevator door", "id": 851, "trainId": 196},
+ {"name": "laptop, laptop computer", "id": 1407, "trainId": 197},
+ {"name": "instrument panel", "id": 1332, "trainId": 198},
+ {"name": "bucket, pail", "id": 303, "trainId": 199},
+ {"name": "tapestry, tapis", "id": 2714, "trainId": 200},
+ {"name": "platform", "id": 1924, "trainId": 201},
+ {"name": "jacket", "id": 1346, "trainId": 202},
+ {"name": "gate", "id": 1081, "trainId": 203},
+ {"name": "monitor, monitoring device", "id": 1583, "trainId": 204},
+ {
+ "name": "telephone booth, phone booth, call box, telephone box, telephone kiosk",
+ "id": 2727,
+ "trainId": 205,
+ },
+ {"name": "spotlight, spot", "id": 2509, "trainId": 206},
+ {"name": "ring", "id": 2123, "trainId": 207},
+ {"name": "control panel", "id": 602, "trainId": 208},
+ {"name": "blackboard, chalkboard", "id": 202, "trainId": 209},
+ {"name": "air conditioner, air conditioning", "id": 10, "trainId": 210},
+ {"name": "chest", "id": 490, "trainId": 211},
+ {"name": "clock", "id": 530, "trainId": 212},
+ {"name": "sand dune", "id": 2213, "trainId": 213},
+ {"name": "pipe, pipage, piping", "id": 1884, "trainId": 214},
+ {"name": "vault", "id": 2934, "trainId": 215},
+ {"name": "table football", "id": 2687, "trainId": 216},
+ {"name": "cannon", "id": 387, "trainId": 217},
+ {"name": "swimming pool, swimming bath, natatorium", "id": 2668, "trainId": 218},
+ {"name": "fluorescent, fluorescent fixture", "id": 982, "trainId": 219},
+ {"name": "statue", "id": 2547, "trainId": 220},
+ {
+ "name": "loudspeaker, speaker, speaker unit, loudspeaker system, speaker system",
+ "id": 1474,
+ "trainId": 221,
+ },
+ {"name": "exhibitor", "id": 877, "trainId": 222},
+ {"name": "ladder", "id": 1391, "trainId": 223},
+ {"name": "carport", "id": 414, "trainId": 224},
+ {"name": "dam", "id": 698, "trainId": 225},
+ {"name": "pulpit", "id": 2019, "trainId": 226},
+ {"name": "skylight, fanlight", "id": 2422, "trainId": 227},
+ {"name": "water tower", "id": 3010, "trainId": 228},
+ {"name": "grill, grille, grillwork", "id": 1139, "trainId": 229},
+ {"name": "display board", "id": 753, "trainId": 230},
+ {"name": "pane, pane of glass, window glass", "id": 1747, "trainId": 231},
+ {"name": "rubbish, trash, scrap", "id": 2175, "trainId": 232},
+ {"name": "ice rink", "id": 1301, "trainId": 233},
+ {"name": "fruit", "id": 1033, "trainId": 234},
+ {"name": "patio", "id": 1789, "trainId": 235},
+ {"name": "vending machine", "id": 2939, "trainId": 236},
+ {"name": "telephone, phone, telephone set", "id": 2730, "trainId": 237},
+ {"name": "net", "id": 1652, "trainId": 238},
+ {
+ "name": "backpack, back pack, knapsack, packsack, rucksack, haversack",
+ "id": 90,
+ "trainId": 239,
+ },
+ {"name": "jar", "id": 1349, "trainId": 240},
+ {"name": "track", "id": 2830, "trainId": 241},
+ {"name": "magazine", "id": 1485, "trainId": 242},
+ {"name": "shutter", "id": 2370, "trainId": 243},
+ {"name": "roof", "id": 2155, "trainId": 244},
+ {"name": "banner, streamer", "id": 118, "trainId": 245},
+ {"name": "landfill", "id": 1402, "trainId": 246},
+ {"name": "post", "id": 1957, "trainId": 247},
+ {"name": "altarpiece, reredos", "id": 3130, "trainId": 248},
+ {"name": "hat, chapeau, lid", "id": 1197, "trainId": 249},
+ {"name": "arch, archway", "id": 52, "trainId": 250},
+ {"name": "table game", "id": 2688, "trainId": 251},
+ {"name": "bag, handbag, pocketbook, purse", "id": 96, "trainId": 252},
+ {"name": "document, written document, papers", "id": 762, "trainId": 253},
+ {"name": "dome", "id": 772, "trainId": 254},
+ {"name": "pier", "id": 1857, "trainId": 255},
+ {"name": "shanties", "id": 2315, "trainId": 256},
+ {"name": "forecourt", "id": 1016, "trainId": 257},
+ {"name": "crane", "id": 643, "trainId": 258},
+ {"name": "dog, domestic dog, canis familiaris", "id": 3105, "trainId": 259},
+ {"name": "piano, pianoforte, forte-piano", "id": 1849, "trainId": 260},
+ {"name": "drawing", "id": 791, "trainId": 261},
+ {"name": "cabin", "id": 349, "trainId": 262},
+ {
+ "name": "ad, advertisement, advertizement, advertising, advertizing, advert",
+ "id": 6,
+ "trainId": 263,
+ },
+ {"name": "amphitheater, amphitheatre, coliseum", "id": 3114, "trainId": 264},
+ {"name": "monument", "id": 1587, "trainId": 265},
+ {"name": "henhouse", "id": 1233, "trainId": 266},
+ {"name": "cockpit", "id": 559, "trainId": 267},
+ {"name": "heater, warmer", "id": 1223, "trainId": 268},
+ {"name": "windmill, aerogenerator, wind generator", "id": 3049, "trainId": 269},
+ {"name": "pool", "id": 1943, "trainId": 270},
+ {"name": "elevator, lift", "id": 853, "trainId": 271},
+ {"name": "decoration, ornament, ornamentation", "id": 709, "trainId": 272},
+ {"name": "labyrinth", "id": 1390, "trainId": 273},
+ {"name": "text, textual matter", "id": 2748, "trainId": 274},
+ {"name": "printer", "id": 2007, "trainId": 275},
+ {"name": "mezzanine, first balcony", "id": 1546, "trainId": 276},
+ {"name": "mattress", "id": 1513, "trainId": 277},
+ {"name": "straw", "id": 2600, "trainId": 278},
+ {"name": "stalls", "id": 2538, "trainId": 279},
+ {"name": "patio, terrace", "id": 1790, "trainId": 280},
+ {"name": "billboard, hoarding", "id": 194, "trainId": 281},
+ {"name": "bus stop", "id": 326, "trainId": 282},
+ {"name": "trouser, pant", "id": 2877, "trainId": 283},
+ {"name": "console table, console", "id": 594, "trainId": 284},
+ {"name": "rack", "id": 2036, "trainId": 285},
+ {"name": "notebook", "id": 1662, "trainId": 286},
+ {"name": "shrine", "id": 2366, "trainId": 287},
+ {"name": "pantry", "id": 1754, "trainId": 288},
+ {"name": "cart", "id": 418, "trainId": 289},
+ {"name": "steam shovel", "id": 2553, "trainId": 290},
+ {"name": "porch", "id": 1951, "trainId": 291},
+ {"name": "postbox, mailbox, letter box", "id": 1963, "trainId": 292},
+ {"name": "figurine, statuette", "id": 918, "trainId": 293},
+ {"name": "recycling bin", "id": 2086, "trainId": 294},
+ {"name": "folding screen", "id": 997, "trainId": 295},
+ {"name": "telescope", "id": 2731, "trainId": 296},
+ {"name": "deck chair, beach chair", "id": 704, "trainId": 297},
+ {"name": "kennel", "id": 1365, "trainId": 298},
+ {"name": "coffee maker", "id": 569, "trainId": 299},
+ {"name": "altar, communion table, lord's table", "id": 3108, "trainId": 300},
+ {"name": "fish", "id": 948, "trainId": 301},
+ {"name": "easel", "id": 839, "trainId": 302},
+ {"name": "artificial golf green", "id": 63, "trainId": 303},
+ {"name": "iceberg", "id": 1305, "trainId": 304},
+ {"name": "candlestick, candle holder", "id": 378, "trainId": 305},
+ {"name": "shower stall, shower bath", "id": 2362, "trainId": 306},
+ {"name": "television stand", "id": 2734, "trainId": 307},
+ {
+ "name": "wall socket, wall plug, electric outlet, electrical outlet, outlet, electric receptacle",
+ "id": 2982,
+ "trainId": 308,
+ },
+ {"name": "skeleton", "id": 2398, "trainId": 309},
+ {"name": "grand piano, grand", "id": 1119, "trainId": 310},
+ {"name": "candy, confect", "id": 382, "trainId": 311},
+ {"name": "grille door", "id": 1141, "trainId": 312},
+ {"name": "pedestal, plinth, footstall", "id": 1805, "trainId": 313},
+ {"name": "jersey, t-shirt, tee shirt", "id": 3102, "trainId": 314},
+ {"name": "shoe", "id": 2341, "trainId": 315},
+ {"name": "gravestone, headstone, tombstone", "id": 1131, "trainId": 316},
+ {"name": "shanty", "id": 2316, "trainId": 317},
+ {"name": "structure", "id": 2626, "trainId": 318},
+ {"name": "rocking chair, rocker", "id": 3104, "trainId": 319},
+ {"name": "bird", "id": 198, "trainId": 320},
+ {"name": "place mat", "id": 1896, "trainId": 321},
+ {"name": "tomb", "id": 2800, "trainId": 322},
+ {"name": "big top", "id": 190, "trainId": 323},
+ {"name": "gas pump, gasoline pump, petrol pump, island dispenser", "id": 3131, "trainId": 324},
+ {"name": "lockers", "id": 1463, "trainId": 325},
+ {"name": "cage", "id": 357, "trainId": 326},
+ {"name": "finger", "id": 929, "trainId": 327},
+ {"name": "bleachers", "id": 209, "trainId": 328},
+ {"name": "ferris wheel", "id": 912, "trainId": 329},
+ {"name": "hairdresser chair", "id": 1164, "trainId": 330},
+ {"name": "mat", "id": 1509, "trainId": 331},
+ {"name": "stands", "id": 2539, "trainId": 332},
+ {"name": "aquarium, fish tank, marine museum", "id": 3116, "trainId": 333},
+ {"name": "streetcar, tram, tramcar, trolley, trolley car", "id": 2615, "trainId": 334},
+ {"name": "napkin, table napkin, serviette", "id": 1644, "trainId": 335},
+ {"name": "dummy", "id": 818, "trainId": 336},
+ {"name": "booklet, brochure, folder, leaflet, pamphlet", "id": 242, "trainId": 337},
+ {"name": "sand trap", "id": 2217, "trainId": 338},
+ {"name": "shop, store", "id": 2347, "trainId": 339},
+ {"name": "table cloth", "id": 2686, "trainId": 340},
+ {"name": "service station", "id": 2300, "trainId": 341},
+ {"name": "coffin", "id": 572, "trainId": 342},
+ {"name": "drawer", "id": 789, "trainId": 343},
+ {"name": "cages", "id": 358, "trainId": 344},
+ {"name": "slot machine, coin machine", "id": 2443, "trainId": 345},
+ {"name": "balcony", "id": 101, "trainId": 346},
+ {"name": "volleyball court", "id": 2969, "trainId": 347},
+ {"name": "table tennis", "id": 2692, "trainId": 348},
+ {"name": "control table", "id": 606, "trainId": 349},
+ {"name": "shirt", "id": 2339, "trainId": 350},
+ {"name": "merchandise, ware, product", "id": 1533, "trainId": 351},
+ {"name": "railway", "id": 2060, "trainId": 352},
+ {"name": "parterre", "id": 1782, "trainId": 353},
+ {"name": "chimney", "id": 495, "trainId": 354},
+ {"name": "can, tin, tin can", "id": 371, "trainId": 355},
+ {"name": "tanks", "id": 2707, "trainId": 356},
+ {"name": "fabric, cloth, material, textile", "id": 889, "trainId": 357},
+ {"name": "alga, algae", "id": 3156, "trainId": 358},
+ {"name": "system", "id": 2683, "trainId": 359},
+ {"name": "map", "id": 1499, "trainId": 360},
+ {"name": "greenhouse", "id": 1135, "trainId": 361},
+ {"name": "mug", "id": 1619, "trainId": 362},
+ {"name": "barbecue", "id": 125, "trainId": 363},
+ {"name": "trailer", "id": 2838, "trainId": 364},
+ {"name": "toilet tissue, toilet paper, bathroom tissue", "id": 2792, "trainId": 365},
+ {"name": "organ", "id": 1695, "trainId": 366},
+ {"name": "dishrag, dishcloth", "id": 746, "trainId": 367},
+ {"name": "island", "id": 1343, "trainId": 368},
+ {"name": "keyboard", "id": 1370, "trainId": 369},
+ {"name": "trench", "id": 2858, "trainId": 370},
+ {"name": "basket, basketball hoop, hoop", "id": 145, "trainId": 371},
+ {"name": "steering wheel, wheel", "id": 2565, "trainId": 372},
+ {"name": "pitcher, ewer", "id": 1892, "trainId": 373},
+ {"name": "goal", "id": 1103, "trainId": 374},
+ {"name": "bread, breadstuff, staff of life", "id": 286, "trainId": 375},
+ {"name": "beds", "id": 170, "trainId": 376},
+ {"name": "wood", "id": 3073, "trainId": 377},
+ {"name": "file cabinet", "id": 922, "trainId": 378},
+ {"name": "newspaper, paper", "id": 1655, "trainId": 379},
+ {"name": "motorboat", "id": 1602, "trainId": 380},
+ {"name": "rope", "id": 2160, "trainId": 381},
+ {"name": "guitar", "id": 1151, "trainId": 382},
+ {"name": "rubble", "id": 2176, "trainId": 383},
+ {"name": "scarf", "id": 2239, "trainId": 384},
+ {"name": "barrels", "id": 132, "trainId": 385},
+ {"name": "cap", "id": 394, "trainId": 386},
+ {"name": "leaves", "id": 1424, "trainId": 387},
+ {"name": "control tower", "id": 607, "trainId": 388},
+ {"name": "dashboard", "id": 700, "trainId": 389},
+ {"name": "bandstand", "id": 116, "trainId": 390},
+ {"name": "lectern", "id": 1425, "trainId": 391},
+ {"name": "switch, electric switch, electrical switch", "id": 2676, "trainId": 392},
+ {"name": "baseboard, mopboard, skirting board", "id": 141, "trainId": 393},
+ {"name": "shower room", "id": 2360, "trainId": 394},
+ {"name": "smoke", "id": 2449, "trainId": 395},
+ {"name": "faucet, spigot", "id": 897, "trainId": 396},
+ {"name": "bulldozer", "id": 317, "trainId": 397},
+ {"name": "saucepan", "id": 2228, "trainId": 398},
+ {"name": "shops", "id": 2351, "trainId": 399},
+ {"name": "meter", "id": 1543, "trainId": 400},
+ {"name": "crevasse", "id": 656, "trainId": 401},
+ {"name": "gear", "id": 1088, "trainId": 402},
+ {"name": "candelabrum, candelabra", "id": 373, "trainId": 403},
+ {"name": "sofa bed", "id": 2472, "trainId": 404},
+ {"name": "tunnel", "id": 2892, "trainId": 405},
+ {"name": "pallet", "id": 1740, "trainId": 406},
+ {"name": "wire, conducting wire", "id": 3067, "trainId": 407},
+ {"name": "kettle, boiler", "id": 1367, "trainId": 408},
+ {"name": "bidet", "id": 188, "trainId": 409},
+ {
+ "name": "baby buggy, baby carriage, carriage, perambulator, pram, stroller, go-cart, pushchair, pusher",
+ "id": 79,
+ "trainId": 410,
+ },
+ {"name": "music stand", "id": 1633, "trainId": 411},
+ {"name": "pipe, tube", "id": 1885, "trainId": 412},
+ {"name": "cup", "id": 677, "trainId": 413},
+ {"name": "parking meter", "id": 1779, "trainId": 414},
+ {"name": "ice hockey rink", "id": 1297, "trainId": 415},
+ {"name": "shelter", "id": 2334, "trainId": 416},
+ {"name": "weeds", "id": 3027, "trainId": 417},
+ {"name": "temple", "id": 2735, "trainId": 418},
+ {"name": "patty, cake", "id": 1791, "trainId": 419},
+ {"name": "ski slope", "id": 2405, "trainId": 420},
+ {"name": "panel", "id": 1748, "trainId": 421},
+ {"name": "wallet", "id": 2983, "trainId": 422},
+ {"name": "wheel", "id": 3035, "trainId": 423},
+ {"name": "towel rack, towel horse", "id": 2824, "trainId": 424},
+ {"name": "roundabout", "id": 2168, "trainId": 425},
+ {"name": "canister, cannister, tin", "id": 385, "trainId": 426},
+ {"name": "rod", "id": 2148, "trainId": 427},
+ {"name": "soap dispenser", "id": 2465, "trainId": 428},
+ {"name": "bell", "id": 175, "trainId": 429},
+ {"name": "canvas", "id": 390, "trainId": 430},
+ {"name": "box office, ticket office, ticket booth", "id": 268, "trainId": 431},
+ {"name": "teacup", "id": 2722, "trainId": 432},
+ {"name": "trellis", "id": 2857, "trainId": 433},
+ {"name": "workbench", "id": 3088, "trainId": 434},
+ {"name": "valley, vale", "id": 2926, "trainId": 435},
+ {"name": "toaster", "id": 2782, "trainId": 436},
+ {"name": "knife", "id": 1378, "trainId": 437},
+ {"name": "podium", "id": 1934, "trainId": 438},
+ {"name": "ramp", "id": 2072, "trainId": 439},
+ {"name": "tumble dryer", "id": 2889, "trainId": 440},
+ {"name": "fireplug, fire hydrant, plug", "id": 944, "trainId": 441},
+ {"name": "gym shoe, sneaker, tennis shoe", "id": 1158, "trainId": 442},
+ {"name": "lab bench", "id": 1383, "trainId": 443},
+ {"name": "equipment", "id": 867, "trainId": 444},
+ {"name": "rocky formation", "id": 2145, "trainId": 445},
+ {"name": "plastic", "id": 1915, "trainId": 446},
+ {"name": "calendar", "id": 361, "trainId": 447},
+ {"name": "caravan", "id": 402, "trainId": 448},
+ {"name": "check-in-desk", "id": 482, "trainId": 449},
+ {"name": "ticket counter", "id": 2761, "trainId": 450},
+ {"name": "brush", "id": 300, "trainId": 451},
+ {"name": "mill", "id": 1554, "trainId": 452},
+ {"name": "covered bridge", "id": 636, "trainId": 453},
+ {"name": "bowling alley", "id": 260, "trainId": 454},
+ {"name": "hanger", "id": 1186, "trainId": 455},
+ {"name": "excavator", "id": 871, "trainId": 456},
+ {"name": "trestle", "id": 2859, "trainId": 457},
+ {"name": "revolving door", "id": 2103, "trainId": 458},
+ {"name": "blast furnace", "id": 208, "trainId": 459},
+ {"name": "scale, weighing machine", "id": 2236, "trainId": 460},
+ {"name": "projector", "id": 2012, "trainId": 461},
+ {"name": "soap", "id": 2462, "trainId": 462},
+ {"name": "locker", "id": 1462, "trainId": 463},
+ {"name": "tractor", "id": 2832, "trainId": 464},
+ {"name": "stretcher", "id": 2617, "trainId": 465},
+ {"name": "frame", "id": 1024, "trainId": 466},
+ {"name": "grating", "id": 1129, "trainId": 467},
+ {"name": "alembic", "id": 18, "trainId": 468},
+ {"name": "candle, taper, wax light", "id": 376, "trainId": 469},
+ {"name": "barrier", "id": 134, "trainId": 470},
+ {"name": "cardboard", "id": 407, "trainId": 471},
+ {"name": "cave", "id": 434, "trainId": 472},
+ {"name": "puddle", "id": 2017, "trainId": 473},
+ {"name": "tarp", "id": 2717, "trainId": 474},
+ {"name": "price tag", "id": 2005, "trainId": 475},
+ {"name": "watchtower", "id": 2993, "trainId": 476},
+ {"name": "meters", "id": 1545, "trainId": 477},
+ {
+ "name": "light bulb, lightbulb, bulb, incandescent lamp, electric light, electric-light bulb",
+ "id": 1445,
+ "trainId": 478,
+ },
+ {"name": "tracks", "id": 2831, "trainId": 479},
+ {"name": "hair dryer", "id": 1161, "trainId": 480},
+ {"name": "skirt", "id": 2411, "trainId": 481},
+ {"name": "viaduct", "id": 2949, "trainId": 482},
+ {"name": "paper towel", "id": 1769, "trainId": 483},
+ {"name": "coat", "id": 552, "trainId": 484},
+ {"name": "sheet", "id": 2327, "trainId": 485},
+ {"name": "fire extinguisher, extinguisher, asphyxiator", "id": 939, "trainId": 486},
+ {"name": "water wheel", "id": 3013, "trainId": 487},
+ {"name": "pottery, clayware", "id": 1986, "trainId": 488},
+ {"name": "magazine rack", "id": 1486, "trainId": 489},
+ {"name": "teapot", "id": 2723, "trainId": 490},
+ {"name": "microphone, mike", "id": 1549, "trainId": 491},
+ {"name": "support", "id": 2649, "trainId": 492},
+ {"name": "forklift", "id": 1020, "trainId": 493},
+ {"name": "canyon", "id": 392, "trainId": 494},
+ {"name": "cash register, register", "id": 422, "trainId": 495},
+ {"name": "leaf, leafage, foliage", "id": 1419, "trainId": 496},
+ {"name": "remote control, remote", "id": 2099, "trainId": 497},
+ {"name": "soap dish", "id": 2464, "trainId": 498},
+ {"name": "windshield, windscreen", "id": 3058, "trainId": 499},
+ {"name": "cat", "id": 430, "trainId": 500},
+ {"name": "cue, cue stick, pool cue, pool stick", "id": 675, "trainId": 501},
+ {"name": "vent, venthole, vent-hole, blowhole", "id": 2941, "trainId": 502},
+ {"name": "videos", "id": 2955, "trainId": 503},
+ {"name": "shovel", "id": 2355, "trainId": 504},
+ {"name": "eaves", "id": 840, "trainId": 505},
+ {"name": "antenna, aerial, transmitting aerial", "id": 32, "trainId": 506},
+ {"name": "shipyard", "id": 2338, "trainId": 507},
+ {"name": "hen, biddy", "id": 1232, "trainId": 508},
+ {"name": "traffic cone", "id": 2834, "trainId": 509},
+ {"name": "washing machines", "id": 2991, "trainId": 510},
+ {"name": "truck crane", "id": 2879, "trainId": 511},
+ {"name": "cds", "id": 444, "trainId": 512},
+ {"name": "niche", "id": 1657, "trainId": 513},
+ {"name": "scoreboard", "id": 2246, "trainId": 514},
+ {"name": "briefcase", "id": 296, "trainId": 515},
+ {"name": "boot", "id": 245, "trainId": 516},
+ {"name": "sweater, jumper", "id": 2661, "trainId": 517},
+ {"name": "hay", "id": 1202, "trainId": 518},
+ {"name": "pack", "id": 1714, "trainId": 519},
+ {"name": "bottle rack", "id": 251, "trainId": 520},
+ {"name": "glacier", "id": 1095, "trainId": 521},
+ {"name": "pergola", "id": 1828, "trainId": 522},
+ {"name": "building materials", "id": 311, "trainId": 523},
+ {"name": "television camera", "id": 2732, "trainId": 524},
+ {"name": "first floor", "id": 947, "trainId": 525},
+ {"name": "rifle", "id": 2115, "trainId": 526},
+ {"name": "tennis table", "id": 2738, "trainId": 527},
+ {"name": "stadium", "id": 2525, "trainId": 528},
+ {"name": "safety belt", "id": 2194, "trainId": 529},
+ {"name": "cover", "id": 634, "trainId": 530},
+ {"name": "dish rack", "id": 740, "trainId": 531},
+ {"name": "synthesizer", "id": 2682, "trainId": 532},
+ {"name": "pumpkin", "id": 2020, "trainId": 533},
+ {"name": "gutter", "id": 1156, "trainId": 534},
+ {"name": "fruit stand", "id": 1036, "trainId": 535},
+ {"name": "ice floe, floe", "id": 1295, "trainId": 536},
+ {"name": "handle, grip, handgrip, hold", "id": 1181, "trainId": 537},
+ {"name": "wheelchair", "id": 3037, "trainId": 538},
+ {"name": "mousepad, mouse mat", "id": 1614, "trainId": 539},
+ {"name": "diploma", "id": 736, "trainId": 540},
+ {"name": "fairground ride", "id": 893, "trainId": 541},
+ {"name": "radio", "id": 2047, "trainId": 542},
+ {"name": "hotplate", "id": 1274, "trainId": 543},
+ {"name": "junk", "id": 1361, "trainId": 544},
+ {"name": "wheelbarrow", "id": 3036, "trainId": 545},
+ {"name": "stream", "id": 2606, "trainId": 546},
+ {"name": "toll plaza", "id": 2797, "trainId": 547},
+ {"name": "punching bag", "id": 2022, "trainId": 548},
+ {"name": "trough", "id": 2876, "trainId": 549},
+ {"name": "throne", "id": 2758, "trainId": 550},
+ {"name": "chair desk", "id": 472, "trainId": 551},
+ {"name": "weighbridge", "id": 3028, "trainId": 552},
+ {"name": "extractor fan", "id": 882, "trainId": 553},
+ {"name": "hanging clothes", "id": 1189, "trainId": 554},
+ {"name": "dish, dish aerial, dish antenna, saucer", "id": 743, "trainId": 555},
+ {"name": "alarm clock, alarm", "id": 3122, "trainId": 556},
+ {"name": "ski lift", "id": 2401, "trainId": 557},
+ {"name": "chain", "id": 468, "trainId": 558},
+ {"name": "garage", "id": 1061, "trainId": 559},
+ {"name": "mechanical shovel", "id": 1523, "trainId": 560},
+ {"name": "wine rack", "id": 3059, "trainId": 561},
+ {"name": "tramway", "id": 2843, "trainId": 562},
+ {"name": "treadmill", "id": 2853, "trainId": 563},
+ {"name": "menu", "id": 1529, "trainId": 564},
+ {"name": "block", "id": 214, "trainId": 565},
+ {"name": "well", "id": 3032, "trainId": 566},
+ {"name": "witness stand", "id": 3071, "trainId": 567},
+ {"name": "branch", "id": 277, "trainId": 568},
+ {"name": "duck", "id": 813, "trainId": 569},
+ {"name": "casserole", "id": 426, "trainId": 570},
+ {"name": "frying pan", "id": 1039, "trainId": 571},
+ {"name": "desk organizer", "id": 727, "trainId": 572},
+ {"name": "mast", "id": 1508, "trainId": 573},
+ {"name": "spectacles, specs, eyeglasses, glasses", "id": 2490, "trainId": 574},
+ {"name": "service elevator", "id": 2299, "trainId": 575},
+ {"name": "dollhouse", "id": 768, "trainId": 576},
+ {"name": "hammock", "id": 1172, "trainId": 577},
+ {"name": "clothes hanging", "id": 537, "trainId": 578},
+ {"name": "photocopier", "id": 1847, "trainId": 579},
+ {"name": "notepad", "id": 1664, "trainId": 580},
+ {"name": "golf cart", "id": 1110, "trainId": 581},
+ {"name": "footpath", "id": 1014, "trainId": 582},
+ {"name": "cross", "id": 662, "trainId": 583},
+ {"name": "baptismal font", "id": 121, "trainId": 584},
+ {"name": "boiler", "id": 227, "trainId": 585},
+ {"name": "skip", "id": 2410, "trainId": 586},
+ {"name": "rotisserie", "id": 2165, "trainId": 587},
+ {"name": "tables", "id": 2696, "trainId": 588},
+ {"name": "water mill", "id": 3005, "trainId": 589},
+ {"name": "helmet", "id": 1231, "trainId": 590},
+ {"name": "cover curtain", "id": 635, "trainId": 591},
+ {"name": "brick", "id": 292, "trainId": 592},
+ {"name": "table runner", "id": 2690, "trainId": 593},
+ {"name": "ashtray", "id": 65, "trainId": 594},
+ {"name": "street box", "id": 2607, "trainId": 595},
+ {"name": "stick", "id": 2574, "trainId": 596},
+ {"name": "hangers", "id": 1188, "trainId": 597},
+ {"name": "cells", "id": 456, "trainId": 598},
+ {"name": "urinal", "id": 2913, "trainId": 599},
+ {"name": "centerpiece", "id": 459, "trainId": 600},
+ {"name": "portable fridge", "id": 1955, "trainId": 601},
+ {"name": "dvds", "id": 827, "trainId": 602},
+ {"name": "golf club", "id": 1111, "trainId": 603},
+ {"name": "skirting board", "id": 2412, "trainId": 604},
+ {"name": "water cooler", "id": 2997, "trainId": 605},
+ {"name": "clipboard", "id": 528, "trainId": 606},
+ {"name": "camera, photographic camera", "id": 366, "trainId": 607},
+ {"name": "pigeonhole", "id": 1863, "trainId": 608},
+ {"name": "chips", "id": 500, "trainId": 609},
+ {"name": "food processor", "id": 1001, "trainId": 610},
+ {"name": "post box", "id": 1958, "trainId": 611},
+ {"name": "lid", "id": 1441, "trainId": 612},
+ {"name": "drum", "id": 809, "trainId": 613},
+ {"name": "blender", "id": 210, "trainId": 614},
+ {"name": "cave entrance", "id": 435, "trainId": 615},
+ {"name": "dental chair", "id": 718, "trainId": 616},
+ {"name": "obelisk", "id": 1674, "trainId": 617},
+ {"name": "canoe", "id": 388, "trainId": 618},
+ {"name": "mobile", "id": 1572, "trainId": 619},
+ {"name": "monitors", "id": 1584, "trainId": 620},
+ {"name": "pool ball", "id": 1944, "trainId": 621},
+ {"name": "cue rack", "id": 674, "trainId": 622},
+ {"name": "baggage carts", "id": 99, "trainId": 623},
+ {"name": "shore", "id": 2352, "trainId": 624},
+ {"name": "fork", "id": 1019, "trainId": 625},
+ {"name": "paper filer", "id": 1763, "trainId": 626},
+ {"name": "bicycle rack", "id": 185, "trainId": 627},
+ {"name": "coat rack", "id": 554, "trainId": 628},
+ {"name": "garland", "id": 1066, "trainId": 629},
+ {"name": "sports bag", "id": 2508, "trainId": 630},
+ {"name": "fish tank", "id": 951, "trainId": 631},
+ {"name": "towel dispenser", "id": 2822, "trainId": 632},
+ {"name": "carriage", "id": 415, "trainId": 633},
+ {"name": "brochure", "id": 297, "trainId": 634},
+ {"name": "plaque", "id": 1914, "trainId": 635},
+ {"name": "stringer", "id": 2619, "trainId": 636},
+ {"name": "iron", "id": 1338, "trainId": 637},
+ {"name": "spoon", "id": 2505, "trainId": 638},
+ {"name": "flag pole", "id": 955, "trainId": 639},
+ {"name": "toilet brush", "id": 2786, "trainId": 640},
+ {"name": "book stand", "id": 238, "trainId": 641},
+ {"name": "water faucet, water tap, tap, hydrant", "id": 3000, "trainId": 642},
+ {"name": "ticket office", "id": 2763, "trainId": 643},
+ {"name": "broom", "id": 299, "trainId": 644},
+ {"name": "dvd", "id": 822, "trainId": 645},
+ {"name": "ice bucket", "id": 1288, "trainId": 646},
+ {"name": "carapace, shell, cuticle, shield", "id": 3101, "trainId": 647},
+ {"name": "tureen", "id": 2894, "trainId": 648},
+ {"name": "folders", "id": 992, "trainId": 649},
+ {"name": "chess", "id": 489, "trainId": 650},
+ {"name": "root", "id": 2157, "trainId": 651},
+ {"name": "sewing machine", "id": 2309, "trainId": 652},
+ {"name": "model", "id": 1576, "trainId": 653},
+ {"name": "pen", "id": 1810, "trainId": 654},
+ {"name": "violin", "id": 2964, "trainId": 655},
+ {"name": "sweatshirt", "id": 2662, "trainId": 656},
+ {"name": "recycling materials", "id": 2087, "trainId": 657},
+ {"name": "mitten", "id": 1569, "trainId": 658},
+ {"name": "chopping board, cutting board", "id": 503, "trainId": 659},
+ {"name": "mask", "id": 1505, "trainId": 660},
+ {"name": "log", "id": 1468, "trainId": 661},
+ {"name": "mouse, computer mouse", "id": 1613, "trainId": 662},
+ {"name": "grill", "id": 1138, "trainId": 663},
+ {"name": "hole", "id": 1256, "trainId": 664},
+ {"name": "target", "id": 2715, "trainId": 665},
+ {"name": "trash bag", "id": 2846, "trainId": 666},
+ {"name": "chalk", "id": 477, "trainId": 667},
+ {"name": "sticks", "id": 2576, "trainId": 668},
+ {"name": "balloon", "id": 108, "trainId": 669},
+ {"name": "score", "id": 2245, "trainId": 670},
+ {"name": "hair spray", "id": 1162, "trainId": 671},
+ {"name": "roll", "id": 2149, "trainId": 672},
+ {"name": "runner", "id": 2183, "trainId": 673},
+ {"name": "engine", "id": 858, "trainId": 674},
+ {"name": "inflatable glove", "id": 1324, "trainId": 675},
+ {"name": "games", "id": 1055, "trainId": 676},
+ {"name": "pallets", "id": 1741, "trainId": 677},
+ {"name": "baskets", "id": 149, "trainId": 678},
+ {"name": "coop", "id": 615, "trainId": 679},
+ {"name": "dvd player", "id": 825, "trainId": 680},
+ {"name": "rocking horse", "id": 2143, "trainId": 681},
+ {"name": "buckets", "id": 304, "trainId": 682},
+ {"name": "bread rolls", "id": 283, "trainId": 683},
+ {"name": "shawl", "id": 2322, "trainId": 684},
+ {"name": "watering can", "id": 3017, "trainId": 685},
+ {"name": "spotlights", "id": 2510, "trainId": 686},
+ {"name": "post-it", "id": 1960, "trainId": 687},
+ {"name": "bowls", "id": 265, "trainId": 688},
+ {"name": "security camera", "id": 2282, "trainId": 689},
+ {"name": "runner cloth", "id": 2184, "trainId": 690},
+ {"name": "lock", "id": 1461, "trainId": 691},
+ {"name": "alarm, warning device, alarm system", "id": 3113, "trainId": 692},
+ {"name": "side", "id": 2372, "trainId": 693},
+ {"name": "roulette", "id": 2166, "trainId": 694},
+ {"name": "bone", "id": 232, "trainId": 695},
+ {"name": "cutlery", "id": 693, "trainId": 696},
+ {"name": "pool balls", "id": 1945, "trainId": 697},
+ {"name": "wheels", "id": 3039, "trainId": 698},
+ {"name": "spice rack", "id": 2494, "trainId": 699},
+ {"name": "plant pots", "id": 1908, "trainId": 700},
+ {"name": "towel ring", "id": 2827, "trainId": 701},
+ {"name": "bread box", "id": 280, "trainId": 702},
+ {"name": "video", "id": 2950, "trainId": 703},
+ {"name": "funfair", "id": 1044, "trainId": 704},
+ {"name": "breads", "id": 288, "trainId": 705},
+ {"name": "tripod", "id": 2863, "trainId": 706},
+ {"name": "ironing board", "id": 1342, "trainId": 707},
+ {"name": "skimmer", "id": 2409, "trainId": 708},
+ {"name": "hollow", "id": 1258, "trainId": 709},
+ {"name": "scratching post", "id": 2249, "trainId": 710},
+ {"name": "tricycle", "id": 2862, "trainId": 711},
+ {"name": "file box", "id": 920, "trainId": 712},
+ {"name": "mountain pass", "id": 1607, "trainId": 713},
+ {"name": "tombstones", "id": 2802, "trainId": 714},
+ {"name": "cooker", "id": 610, "trainId": 715},
+ {"name": "card game, cards", "id": 3129, "trainId": 716},
+ {"name": "golf bag", "id": 1108, "trainId": 717},
+ {"name": "towel paper", "id": 2823, "trainId": 718},
+ {"name": "chaise lounge", "id": 476, "trainId": 719},
+ {"name": "sun", "id": 2641, "trainId": 720},
+ {"name": "toilet paper holder", "id": 2788, "trainId": 721},
+ {"name": "rake", "id": 2070, "trainId": 722},
+ {"name": "key", "id": 1368, "trainId": 723},
+ {"name": "umbrella stand", "id": 2903, "trainId": 724},
+ {"name": "dartboard", "id": 699, "trainId": 725},
+ {"name": "transformer", "id": 2844, "trainId": 726},
+ {"name": "fireplace utensils", "id": 942, "trainId": 727},
+ {"name": "sweatshirts", "id": 2663, "trainId": 728},
+ {
+ "name": "cellular telephone, cellular phone, cellphone, cell, mobile phone",
+ "id": 457,
+ "trainId": 729,
+ },
+ {"name": "tallboy", "id": 2701, "trainId": 730},
+ {"name": "stapler", "id": 2540, "trainId": 731},
+ {"name": "sauna", "id": 2231, "trainId": 732},
+ {"name": "test tube", "id": 2746, "trainId": 733},
+ {"name": "palette", "id": 1738, "trainId": 734},
+ {"name": "shopping carts", "id": 2350, "trainId": 735},
+ {"name": "tools", "id": 2808, "trainId": 736},
+ {"name": "push button, push, button", "id": 2025, "trainId": 737},
+ {"name": "star", "id": 2541, "trainId": 738},
+ {"name": "roof rack", "id": 2156, "trainId": 739},
+ {"name": "barbed wire", "id": 126, "trainId": 740},
+ {"name": "spray", "id": 2512, "trainId": 741},
+ {"name": "ear", "id": 831, "trainId": 742},
+ {"name": "sponge", "id": 2503, "trainId": 743},
+ {"name": "racket", "id": 2039, "trainId": 744},
+ {"name": "tins", "id": 2774, "trainId": 745},
+ {"name": "eyeglasses", "id": 886, "trainId": 746},
+ {"name": "file", "id": 919, "trainId": 747},
+ {"name": "scarfs", "id": 2240, "trainId": 748},
+ {"name": "sugar bowl", "id": 2636, "trainId": 749},
+ {"name": "flip flop", "id": 963, "trainId": 750},
+ {"name": "headstones", "id": 1218, "trainId": 751},
+ {"name": "laptop bag", "id": 1406, "trainId": 752},
+ {"name": "leash", "id": 1420, "trainId": 753},
+ {"name": "climbing frame", "id": 526, "trainId": 754},
+ {"name": "suit hanger", "id": 2639, "trainId": 755},
+ {"name": "floor spotlight", "id": 975, "trainId": 756},
+ {"name": "plate rack", "id": 1921, "trainId": 757},
+ {"name": "sewer", "id": 2305, "trainId": 758},
+ {"name": "hard drive", "id": 1193, "trainId": 759},
+ {"name": "sprinkler", "id": 2517, "trainId": 760},
+ {"name": "tools box", "id": 2809, "trainId": 761},
+ {"name": "necklace", "id": 1647, "trainId": 762},
+ {"name": "bulbs", "id": 314, "trainId": 763},
+ {"name": "steel industry", "id": 2560, "trainId": 764},
+ {"name": "club", "id": 545, "trainId": 765},
+ {"name": "jack", "id": 1345, "trainId": 766},
+ {"name": "door bars", "id": 775, "trainId": 767},
+ {
+ "name": "control panel, instrument panel, control board, board, panel",
+ "id": 603,
+ "trainId": 768,
+ },
+ {"name": "hairbrush", "id": 1163, "trainId": 769},
+ {"name": "napkin holder", "id": 1641, "trainId": 770},
+ {"name": "office", "id": 1678, "trainId": 771},
+ {"name": "smoke detector", "id": 2450, "trainId": 772},
+ {"name": "utensils", "id": 2915, "trainId": 773},
+ {"name": "apron", "id": 42, "trainId": 774},
+ {"name": "scissors", "id": 2242, "trainId": 775},
+ {"name": "terminal", "id": 2741, "trainId": 776},
+ {"name": "grinder", "id": 1143, "trainId": 777},
+ {"name": "entry phone", "id": 862, "trainId": 778},
+ {"name": "newspaper stand", "id": 1654, "trainId": 779},
+ {"name": "pepper shaker", "id": 1826, "trainId": 780},
+ {"name": "onions", "id": 1689, "trainId": 781},
+ {
+ "name": "central processing unit, cpu, c p u , central processor, processor, mainframe",
+ "id": 3124,
+ "trainId": 782,
+ },
+ {"name": "tape", "id": 2710, "trainId": 783},
+ {"name": "bat", "id": 152, "trainId": 784},
+ {"name": "coaster", "id": 549, "trainId": 785},
+ {"name": "calculator", "id": 360, "trainId": 786},
+ {"name": "potatoes", "id": 1982, "trainId": 787},
+ {"name": "luggage rack", "id": 1478, "trainId": 788},
+ {"name": "salt", "id": 2203, "trainId": 789},
+ {"name": "street number", "id": 2612, "trainId": 790},
+ {"name": "viewpoint", "id": 2956, "trainId": 791},
+ {"name": "sword", "id": 2681, "trainId": 792},
+ {"name": "cd", "id": 437, "trainId": 793},
+ {"name": "rowing machine", "id": 2171, "trainId": 794},
+ {"name": "plug", "id": 1933, "trainId": 795},
+ {"name": "andiron, firedog, dog, dog-iron", "id": 3110, "trainId": 796},
+ {"name": "pepper", "id": 1824, "trainId": 797},
+ {"name": "tongs", "id": 2803, "trainId": 798},
+ {"name": "bonfire", "id": 234, "trainId": 799},
+ {"name": "dog dish", "id": 764, "trainId": 800},
+ {"name": "belt", "id": 177, "trainId": 801},
+ {"name": "dumbbells", "id": 817, "trainId": 802},
+ {"name": "videocassette recorder, vcr", "id": 3145, "trainId": 803},
+ {"name": "hook", "id": 1262, "trainId": 804},
+ {"name": "envelopes", "id": 864, "trainId": 805},
+ {"name": "shower faucet", "id": 2359, "trainId": 806},
+ {"name": "watch", "id": 2992, "trainId": 807},
+ {"name": "padlock", "id": 1725, "trainId": 808},
+ {"name": "swimming pool ladder", "id": 2667, "trainId": 809},
+ {"name": "spanners", "id": 2484, "trainId": 810},
+ {"name": "gravy boat", "id": 1133, "trainId": 811},
+ {"name": "notice board", "id": 1667, "trainId": 812},
+ {"name": "trash bags", "id": 2847, "trainId": 813},
+ {"name": "fire alarm", "id": 932, "trainId": 814},
+ {"name": "ladle", "id": 1392, "trainId": 815},
+ {"name": "stethoscope", "id": 2573, "trainId": 816},
+ {"name": "rocket", "id": 2140, "trainId": 817},
+ {"name": "funnel", "id": 1046, "trainId": 818},
+ {"name": "bowling pins", "id": 264, "trainId": 819},
+ {"name": "valve", "id": 2927, "trainId": 820},
+ {"name": "thermometer", "id": 2752, "trainId": 821},
+ {"name": "cups", "id": 679, "trainId": 822},
+ {"name": "spice jar", "id": 2493, "trainId": 823},
+ {"name": "night light", "id": 1658, "trainId": 824},
+ {"name": "soaps", "id": 2466, "trainId": 825},
+ {"name": "games table", "id": 1057, "trainId": 826},
+ {"name": "slotted spoon", "id": 2444, "trainId": 827},
+ {"name": "reel", "id": 2093, "trainId": 828},
+ {"name": "scourer", "id": 2248, "trainId": 829},
+ {"name": "sleeping robe", "id": 2432, "trainId": 830},
+ {"name": "desk mat", "id": 726, "trainId": 831},
+ {"name": "dumbbell", "id": 816, "trainId": 832},
+ {"name": "hammer", "id": 1171, "trainId": 833},
+ {"name": "tie", "id": 2766, "trainId": 834},
+ {"name": "typewriter", "id": 2900, "trainId": 835},
+ {"name": "shaker", "id": 2313, "trainId": 836},
+ {"name": "cheese dish", "id": 488, "trainId": 837},
+ {"name": "sea star", "id": 2265, "trainId": 838},
+ {"name": "racquet", "id": 2043, "trainId": 839},
+ {"name": "butane gas cylinder", "id": 332, "trainId": 840},
+ {"name": "paper weight", "id": 1771, "trainId": 841},
+ {"name": "shaving brush", "id": 2320, "trainId": 842},
+ {"name": "sunglasses", "id": 2646, "trainId": 843},
+ {"name": "gear shift", "id": 1089, "trainId": 844},
+ {"name": "towel rail", "id": 2826, "trainId": 845},
+ {"name": "adding machine, totalizer, totaliser", "id": 3148, "trainId": 846},
+]
+
+
+def _get_ade20k_full_meta():
+ # Id 0 is reserved for ignore_label, we change ignore_label for 0
+ # to 255 in our pre-processing, so all ids are shifted by 1.
+ stuff_ids = [k["id"] for k in ADE20K_SEM_SEG_FULL_CATEGORIES]
+ assert len(stuff_ids) == 847, len(stuff_ids)
+
+ # For semantic segmentation, this mapping maps from contiguous stuff id
+ # (in [0, 91], used in models) to ids in the dataset (used for processing results)
+ stuff_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(stuff_ids)}
+ stuff_classes = [k["name"] for k in ADE20K_SEM_SEG_FULL_CATEGORIES]
+
+ ret = {
+ "stuff_dataset_id_to_contiguous_id": stuff_dataset_id_to_contiguous_id,
+ "stuff_classes": stuff_classes,
+ }
+ return ret
+
+
+def register_all_ade20k_full(root):
+ root = os.path.join(root, "ADE20K_2021_17_01")
+ meta = _get_ade20k_full_meta()
+ for name, dirname in [("train", "training"), ("val", "validation")]:
+ image_dir = os.path.join(root, "images_detectron2", dirname)
+ gt_dir = os.path.join(root, "annotations_detectron2", dirname)
+ name = f"ade20k_full_sem_seg_{name}"
+ DatasetCatalog.register(
+ name, lambda x=image_dir, y=gt_dir: load_sem_seg(y, x, gt_ext="tif", image_ext="jpg")
+ )
+ MetadataCatalog.get(name).set(
+ stuff_classes=meta["stuff_classes"][:],
+ image_root=image_dir,
+ sem_seg_root=gt_dir,
+ evaluator_type="sem_seg",
+ ignore_label=65535, # NOTE: gt is saved in 16-bit TIFF images
+ )
+
+
+_root = os.getenv("DETECTRON2_DATASETS", "datasets")
+register_all_ade20k_full(_root)
diff --git a/videocutler/mask2former/data/datasets/register_ade20k_instance.py b/videocutler/mask2former/data/datasets/register_ade20k_instance.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ded7095cde756dfa1d94c25b2f7d1d2e5da6313
--- /dev/null
+++ b/videocutler/mask2former/data/datasets/register_ade20k_instance.py
@@ -0,0 +1,53 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import json
+import logging
+import numpy as np
+import os
+from PIL import Image
+
+from detectron2.data import DatasetCatalog, MetadataCatalog
+from detectron2.data.datasets.coco import load_coco_json, register_coco_instances
+from detectron2.utils.file_io import PathManager
+
+ADE_CATEGORIES = [{'id': 7, 'name': 'bed'}, {'id': 8, 'name': 'windowpane'}, {'id': 10, 'name': 'cabinet'}, {'id': 12, 'name': 'person'}, {'id': 14, 'name': 'door'}, {'id': 15, 'name': 'table'}, {'id': 18, 'name': 'curtain'}, {'id': 19, 'name': 'chair'}, {'id': 20, 'name': 'car'}, {'id': 22, 'name': 'painting'}, {'id': 23, 'name': 'sofa'}, {'id': 24, 'name': 'shelf'}, {'id': 27, 'name': 'mirror'}, {'id': 30, 'name': 'armchair'}, {'id': 31, 'name': 'seat'}, {'id': 32, 'name': 'fence'}, {'id': 33, 'name': 'desk'}, {'id': 35, 'name': 'wardrobe'}, {'id': 36, 'name': 'lamp'}, {'id': 37, 'name': 'bathtub'}, {'id': 38, 'name': 'railing'}, {'id': 39, 'name': 'cushion'}, {'id': 41, 'name': 'box'}, {'id': 42, 'name': 'column'}, {'id': 43, 'name': 'signboard'}, {'id': 44, 'name': 'chest of drawers'}, {'id': 45, 'name': 'counter'}, {'id': 47, 'name': 'sink'}, {'id': 49, 'name': 'fireplace'}, {'id': 50, 'name': 'refrigerator'}, {'id': 53, 'name': 'stairs'}, {'id': 55, 'name': 'case'}, {'id': 56, 'name': 'pool table'}, {'id': 57, 'name': 'pillow'}, {'id': 58, 'name': 'screen door'}, {'id': 62, 'name': 'bookcase'}, {'id': 64, 'name': 'coffee table'}, {'id': 65, 'name': 'toilet'}, {'id': 66, 'name': 'flower'}, {'id': 67, 'name': 'book'}, {'id': 69, 'name': 'bench'}, {'id': 70, 'name': 'countertop'}, {'id': 71, 'name': 'stove'}, {'id': 72, 'name': 'palm'}, {'id': 73, 'name': 'kitchen island'}, {'id': 74, 'name': 'computer'}, {'id': 75, 'name': 'swivel chair'}, {'id': 76, 'name': 'boat'}, {'id': 78, 'name': 'arcade machine'}, {'id': 80, 'name': 'bus'}, {'id': 81, 'name': 'towel'}, {'id': 82, 'name': 'light'}, {'id': 83, 'name': 'truck'}, {'id': 85, 'name': 'chandelier'}, {'id': 86, 'name': 'awning'}, {'id': 87, 'name': 'streetlight'}, {'id': 88, 'name': 'booth'}, {'id': 89, 'name': 'television receiver'}, {'id': 90, 'name': 'airplane'}, {'id': 92, 'name': 'apparel'}, {'id': 93, 'name': 'pole'}, {'id': 95, 'name': 'bannister'}, {'id': 97, 'name': 'ottoman'}, {'id': 98, 'name': 'bottle'}, {'id': 102, 'name': 'van'}, {'id': 103, 'name': 'ship'}, {'id': 104, 'name': 'fountain'}, {'id': 107, 'name': 'washer'}, {'id': 108, 'name': 'plaything'}, {'id': 110, 'name': 'stool'}, {'id': 111, 'name': 'barrel'}, {'id': 112, 'name': 'basket'}, {'id': 115, 'name': 'bag'}, {'id': 116, 'name': 'minibike'}, {'id': 118, 'name': 'oven'}, {'id': 119, 'name': 'ball'}, {'id': 120, 'name': 'food'}, {'id': 121, 'name': 'step'}, {'id': 123, 'name': 'trade name'}, {'id': 124, 'name': 'microwave'}, {'id': 125, 'name': 'pot'}, {'id': 126, 'name': 'animal'}, {'id': 127, 'name': 'bicycle'}, {'id': 129, 'name': 'dishwasher'}, {'id': 130, 'name': 'screen'}, {'id': 132, 'name': 'sculpture'}, {'id': 133, 'name': 'hood'}, {'id': 134, 'name': 'sconce'}, {'id': 135, 'name': 'vase'}, {'id': 136, 'name': 'traffic light'}, {'id': 137, 'name': 'tray'}, {'id': 138, 'name': 'ashcan'}, {'id': 139, 'name': 'fan'}, {'id': 142, 'name': 'plate'}, {'id': 143, 'name': 'monitor'}, {'id': 144, 'name': 'bulletin board'}, {'id': 146, 'name': 'radiator'}, {'id': 147, 'name': 'glass'}, {'id': 148, 'name': 'clock'}, {'id': 149, 'name': 'flag'}]
+
+
+_PREDEFINED_SPLITS = {
+ # point annotations without masks
+ "ade20k_instance_train": (
+ "ADEChallengeData2016/images/training",
+ "ADEChallengeData2016/ade20k_instance_train.json",
+ ),
+ "ade20k_instance_val": (
+ "ADEChallengeData2016/images/validation",
+ "ADEChallengeData2016/ade20k_instance_val.json",
+ ),
+}
+
+
+def _get_ade_instances_meta():
+ thing_ids = [k["id"] for k in ADE_CATEGORIES]
+ assert len(thing_ids) == 100, len(thing_ids)
+ # Mapping from the incontiguous ADE category id to an id in [0, 99]
+ thing_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(thing_ids)}
+ thing_classes = [k["name"] for k in ADE_CATEGORIES]
+ ret = {
+ "thing_dataset_id_to_contiguous_id": thing_dataset_id_to_contiguous_id,
+ "thing_classes": thing_classes,
+ }
+ return ret
+
+
+def register_all_ade20k_instance(root):
+ for key, (image_root, json_file) in _PREDEFINED_SPLITS.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_coco_instances(
+ key,
+ _get_ade_instances_meta(),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+
+_root = os.getenv("DETECTRON2_DATASETS", "datasets")
+register_all_ade20k_instance(_root)
diff --git a/videocutler/mask2former/data/datasets/register_ade20k_panoptic.py b/videocutler/mask2former/data/datasets/register_ade20k_panoptic.py
new file mode 100644
index 0000000000000000000000000000000000000000..a76c999f96c58b2f44ab363a55dcc1c8c7f1b074
--- /dev/null
+++ b/videocutler/mask2former/data/datasets/register_ade20k_panoptic.py
@@ -0,0 +1,390 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import json
+import os
+
+from detectron2.data import DatasetCatalog, MetadataCatalog
+from detectron2.utils.file_io import PathManager
+
+ADE20K_150_CATEGORIES = [
+ {"color": [120, 120, 120], "id": 0, "isthing": 0, "name": "wall"},
+ {"color": [180, 120, 120], "id": 1, "isthing": 0, "name": "building"},
+ {"color": [6, 230, 230], "id": 2, "isthing": 0, "name": "sky"},
+ {"color": [80, 50, 50], "id": 3, "isthing": 0, "name": "floor"},
+ {"color": [4, 200, 3], "id": 4, "isthing": 0, "name": "tree"},
+ {"color": [120, 120, 80], "id": 5, "isthing": 0, "name": "ceiling"},
+ {"color": [140, 140, 140], "id": 6, "isthing": 0, "name": "road, route"},
+ {"color": [204, 5, 255], "id": 7, "isthing": 1, "name": "bed"},
+ {"color": [230, 230, 230], "id": 8, "isthing": 1, "name": "window "},
+ {"color": [4, 250, 7], "id": 9, "isthing": 0, "name": "grass"},
+ {"color": [224, 5, 255], "id": 10, "isthing": 1, "name": "cabinet"},
+ {"color": [235, 255, 7], "id": 11, "isthing": 0, "name": "sidewalk, pavement"},
+ {"color": [150, 5, 61], "id": 12, "isthing": 1, "name": "person"},
+ {"color": [120, 120, 70], "id": 13, "isthing": 0, "name": "earth, ground"},
+ {"color": [8, 255, 51], "id": 14, "isthing": 1, "name": "door"},
+ {"color": [255, 6, 82], "id": 15, "isthing": 1, "name": "table"},
+ {"color": [143, 255, 140], "id": 16, "isthing": 0, "name": "mountain, mount"},
+ {"color": [204, 255, 4], "id": 17, "isthing": 0, "name": "plant"},
+ {"color": [255, 51, 7], "id": 18, "isthing": 1, "name": "curtain"},
+ {"color": [204, 70, 3], "id": 19, "isthing": 1, "name": "chair"},
+ {"color": [0, 102, 200], "id": 20, "isthing": 1, "name": "car"},
+ {"color": [61, 230, 250], "id": 21, "isthing": 0, "name": "water"},
+ {"color": [255, 6, 51], "id": 22, "isthing": 1, "name": "painting, picture"},
+ {"color": [11, 102, 255], "id": 23, "isthing": 1, "name": "sofa"},
+ {"color": [255, 7, 71], "id": 24, "isthing": 1, "name": "shelf"},
+ {"color": [255, 9, 224], "id": 25, "isthing": 0, "name": "house"},
+ {"color": [9, 7, 230], "id": 26, "isthing": 0, "name": "sea"},
+ {"color": [220, 220, 220], "id": 27, "isthing": 1, "name": "mirror"},
+ {"color": [255, 9, 92], "id": 28, "isthing": 0, "name": "rug"},
+ {"color": [112, 9, 255], "id": 29, "isthing": 0, "name": "field"},
+ {"color": [8, 255, 214], "id": 30, "isthing": 1, "name": "armchair"},
+ {"color": [7, 255, 224], "id": 31, "isthing": 1, "name": "seat"},
+ {"color": [255, 184, 6], "id": 32, "isthing": 1, "name": "fence"},
+ {"color": [10, 255, 71], "id": 33, "isthing": 1, "name": "desk"},
+ {"color": [255, 41, 10], "id": 34, "isthing": 0, "name": "rock, stone"},
+ {"color": [7, 255, 255], "id": 35, "isthing": 1, "name": "wardrobe, closet, press"},
+ {"color": [224, 255, 8], "id": 36, "isthing": 1, "name": "lamp"},
+ {"color": [102, 8, 255], "id": 37, "isthing": 1, "name": "tub"},
+ {"color": [255, 61, 6], "id": 38, "isthing": 1, "name": "rail"},
+ {"color": [255, 194, 7], "id": 39, "isthing": 1, "name": "cushion"},
+ {"color": [255, 122, 8], "id": 40, "isthing": 0, "name": "base, pedestal, stand"},
+ {"color": [0, 255, 20], "id": 41, "isthing": 1, "name": "box"},
+ {"color": [255, 8, 41], "id": 42, "isthing": 1, "name": "column, pillar"},
+ {"color": [255, 5, 153], "id": 43, "isthing": 1, "name": "signboard, sign"},
+ {
+ "color": [6, 51, 255],
+ "id": 44,
+ "isthing": 1,
+ "name": "chest of drawers, chest, bureau, dresser",
+ },
+ {"color": [235, 12, 255], "id": 45, "isthing": 1, "name": "counter"},
+ {"color": [160, 150, 20], "id": 46, "isthing": 0, "name": "sand"},
+ {"color": [0, 163, 255], "id": 47, "isthing": 1, "name": "sink"},
+ {"color": [140, 140, 140], "id": 48, "isthing": 0, "name": "skyscraper"},
+ {"color": [250, 10, 15], "id": 49, "isthing": 1, "name": "fireplace"},
+ {"color": [20, 255, 0], "id": 50, "isthing": 1, "name": "refrigerator, icebox"},
+ {"color": [31, 255, 0], "id": 51, "isthing": 0, "name": "grandstand, covered stand"},
+ {"color": [255, 31, 0], "id": 52, "isthing": 0, "name": "path"},
+ {"color": [255, 224, 0], "id": 53, "isthing": 1, "name": "stairs"},
+ {"color": [153, 255, 0], "id": 54, "isthing": 0, "name": "runway"},
+ {"color": [0, 0, 255], "id": 55, "isthing": 1, "name": "case, display case, showcase, vitrine"},
+ {
+ "color": [255, 71, 0],
+ "id": 56,
+ "isthing": 1,
+ "name": "pool table, billiard table, snooker table",
+ },
+ {"color": [0, 235, 255], "id": 57, "isthing": 1, "name": "pillow"},
+ {"color": [0, 173, 255], "id": 58, "isthing": 1, "name": "screen door, screen"},
+ {"color": [31, 0, 255], "id": 59, "isthing": 0, "name": "stairway, staircase"},
+ {"color": [11, 200, 200], "id": 60, "isthing": 0, "name": "river"},
+ {"color": [255, 82, 0], "id": 61, "isthing": 0, "name": "bridge, span"},
+ {"color": [0, 255, 245], "id": 62, "isthing": 1, "name": "bookcase"},
+ {"color": [0, 61, 255], "id": 63, "isthing": 0, "name": "blind, screen"},
+ {"color": [0, 255, 112], "id": 64, "isthing": 1, "name": "coffee table"},
+ {
+ "color": [0, 255, 133],
+ "id": 65,
+ "isthing": 1,
+ "name": "toilet, can, commode, crapper, pot, potty, stool, throne",
+ },
+ {"color": [255, 0, 0], "id": 66, "isthing": 1, "name": "flower"},
+ {"color": [255, 163, 0], "id": 67, "isthing": 1, "name": "book"},
+ {"color": [255, 102, 0], "id": 68, "isthing": 0, "name": "hill"},
+ {"color": [194, 255, 0], "id": 69, "isthing": 1, "name": "bench"},
+ {"color": [0, 143, 255], "id": 70, "isthing": 1, "name": "countertop"},
+ {"color": [51, 255, 0], "id": 71, "isthing": 1, "name": "stove"},
+ {"color": [0, 82, 255], "id": 72, "isthing": 1, "name": "palm, palm tree"},
+ {"color": [0, 255, 41], "id": 73, "isthing": 1, "name": "kitchen island"},
+ {"color": [0, 255, 173], "id": 74, "isthing": 1, "name": "computer"},
+ {"color": [10, 0, 255], "id": 75, "isthing": 1, "name": "swivel chair"},
+ {"color": [173, 255, 0], "id": 76, "isthing": 1, "name": "boat"},
+ {"color": [0, 255, 153], "id": 77, "isthing": 0, "name": "bar"},
+ {"color": [255, 92, 0], "id": 78, "isthing": 1, "name": "arcade machine"},
+ {"color": [255, 0, 255], "id": 79, "isthing": 0, "name": "hovel, hut, hutch, shack, shanty"},
+ {"color": [255, 0, 245], "id": 80, "isthing": 1, "name": "bus"},
+ {"color": [255, 0, 102], "id": 81, "isthing": 1, "name": "towel"},
+ {"color": [255, 173, 0], "id": 82, "isthing": 1, "name": "light"},
+ {"color": [255, 0, 20], "id": 83, "isthing": 1, "name": "truck"},
+ {"color": [255, 184, 184], "id": 84, "isthing": 0, "name": "tower"},
+ {"color": [0, 31, 255], "id": 85, "isthing": 1, "name": "chandelier"},
+ {"color": [0, 255, 61], "id": 86, "isthing": 1, "name": "awning, sunshade, sunblind"},
+ {"color": [0, 71, 255], "id": 87, "isthing": 1, "name": "street lamp"},
+ {"color": [255, 0, 204], "id": 88, "isthing": 1, "name": "booth"},
+ {"color": [0, 255, 194], "id": 89, "isthing": 1, "name": "tv"},
+ {"color": [0, 255, 82], "id": 90, "isthing": 1, "name": "plane"},
+ {"color": [0, 10, 255], "id": 91, "isthing": 0, "name": "dirt track"},
+ {"color": [0, 112, 255], "id": 92, "isthing": 1, "name": "clothes"},
+ {"color": [51, 0, 255], "id": 93, "isthing": 1, "name": "pole"},
+ {"color": [0, 194, 255], "id": 94, "isthing": 0, "name": "land, ground, soil"},
+ {
+ "color": [0, 122, 255],
+ "id": 95,
+ "isthing": 1,
+ "name": "bannister, banister, balustrade, balusters, handrail",
+ },
+ {
+ "color": [0, 255, 163],
+ "id": 96,
+ "isthing": 0,
+ "name": "escalator, moving staircase, moving stairway",
+ },
+ {
+ "color": [255, 153, 0],
+ "id": 97,
+ "isthing": 1,
+ "name": "ottoman, pouf, pouffe, puff, hassock",
+ },
+ {"color": [0, 255, 10], "id": 98, "isthing": 1, "name": "bottle"},
+ {"color": [255, 112, 0], "id": 99, "isthing": 0, "name": "buffet, counter, sideboard"},
+ {
+ "color": [143, 255, 0],
+ "id": 100,
+ "isthing": 0,
+ "name": "poster, posting, placard, notice, bill, card",
+ },
+ {"color": [82, 0, 255], "id": 101, "isthing": 0, "name": "stage"},
+ {"color": [163, 255, 0], "id": 102, "isthing": 1, "name": "van"},
+ {"color": [255, 235, 0], "id": 103, "isthing": 1, "name": "ship"},
+ {"color": [8, 184, 170], "id": 104, "isthing": 1, "name": "fountain"},
+ {
+ "color": [133, 0, 255],
+ "id": 105,
+ "isthing": 0,
+ "name": "conveyer belt, conveyor belt, conveyer, conveyor, transporter",
+ },
+ {"color": [0, 255, 92], "id": 106, "isthing": 0, "name": "canopy"},
+ {
+ "color": [184, 0, 255],
+ "id": 107,
+ "isthing": 1,
+ "name": "washer, automatic washer, washing machine",
+ },
+ {"color": [255, 0, 31], "id": 108, "isthing": 1, "name": "plaything, toy"},
+ {"color": [0, 184, 255], "id": 109, "isthing": 0, "name": "pool"},
+ {"color": [0, 214, 255], "id": 110, "isthing": 1, "name": "stool"},
+ {"color": [255, 0, 112], "id": 111, "isthing": 1, "name": "barrel, cask"},
+ {"color": [92, 255, 0], "id": 112, "isthing": 1, "name": "basket, handbasket"},
+ {"color": [0, 224, 255], "id": 113, "isthing": 0, "name": "falls"},
+ {"color": [112, 224, 255], "id": 114, "isthing": 0, "name": "tent"},
+ {"color": [70, 184, 160], "id": 115, "isthing": 1, "name": "bag"},
+ {"color": [163, 0, 255], "id": 116, "isthing": 1, "name": "minibike, motorbike"},
+ {"color": [153, 0, 255], "id": 117, "isthing": 0, "name": "cradle"},
+ {"color": [71, 255, 0], "id": 118, "isthing": 1, "name": "oven"},
+ {"color": [255, 0, 163], "id": 119, "isthing": 1, "name": "ball"},
+ {"color": [255, 204, 0], "id": 120, "isthing": 1, "name": "food, solid food"},
+ {"color": [255, 0, 143], "id": 121, "isthing": 1, "name": "step, stair"},
+ {"color": [0, 255, 235], "id": 122, "isthing": 0, "name": "tank, storage tank"},
+ {"color": [133, 255, 0], "id": 123, "isthing": 1, "name": "trade name"},
+ {"color": [255, 0, 235], "id": 124, "isthing": 1, "name": "microwave"},
+ {"color": [245, 0, 255], "id": 125, "isthing": 1, "name": "pot"},
+ {"color": [255, 0, 122], "id": 126, "isthing": 1, "name": "animal"},
+ {"color": [255, 245, 0], "id": 127, "isthing": 1, "name": "bicycle"},
+ {"color": [10, 190, 212], "id": 128, "isthing": 0, "name": "lake"},
+ {"color": [214, 255, 0], "id": 129, "isthing": 1, "name": "dishwasher"},
+ {"color": [0, 204, 255], "id": 130, "isthing": 1, "name": "screen"},
+ {"color": [20, 0, 255], "id": 131, "isthing": 0, "name": "blanket, cover"},
+ {"color": [255, 255, 0], "id": 132, "isthing": 1, "name": "sculpture"},
+ {"color": [0, 153, 255], "id": 133, "isthing": 1, "name": "hood, exhaust hood"},
+ {"color": [0, 41, 255], "id": 134, "isthing": 1, "name": "sconce"},
+ {"color": [0, 255, 204], "id": 135, "isthing": 1, "name": "vase"},
+ {"color": [41, 0, 255], "id": 136, "isthing": 1, "name": "traffic light"},
+ {"color": [41, 255, 0], "id": 137, "isthing": 1, "name": "tray"},
+ {"color": [173, 0, 255], "id": 138, "isthing": 1, "name": "trash can"},
+ {"color": [0, 245, 255], "id": 139, "isthing": 1, "name": "fan"},
+ {"color": [71, 0, 255], "id": 140, "isthing": 0, "name": "pier"},
+ {"color": [122, 0, 255], "id": 141, "isthing": 0, "name": "crt screen"},
+ {"color": [0, 255, 184], "id": 142, "isthing": 1, "name": "plate"},
+ {"color": [0, 92, 255], "id": 143, "isthing": 1, "name": "monitor"},
+ {"color": [184, 255, 0], "id": 144, "isthing": 1, "name": "bulletin board"},
+ {"color": [0, 133, 255], "id": 145, "isthing": 0, "name": "shower"},
+ {"color": [255, 214, 0], "id": 146, "isthing": 1, "name": "radiator"},
+ {"color": [25, 194, 194], "id": 147, "isthing": 1, "name": "glass, drinking glass"},
+ {"color": [102, 255, 0], "id": 148, "isthing": 1, "name": "clock"},
+ {"color": [92, 0, 255], "id": 149, "isthing": 1, "name": "flag"},
+]
+
+ADE20k_COLORS = [k["color"] for k in ADE20K_150_CATEGORIES]
+
+MetadataCatalog.get("ade20k_sem_seg_train").set(
+ stuff_colors=ADE20k_COLORS[:],
+)
+
+MetadataCatalog.get("ade20k_sem_seg_val").set(
+ stuff_colors=ADE20k_COLORS[:],
+)
+
+
+def load_ade20k_panoptic_json(json_file, image_dir, gt_dir, semseg_dir, meta):
+ """
+ Args:
+ image_dir (str): path to the raw dataset. e.g., "~/coco/train2017".
+ gt_dir (str): path to the raw annotations. e.g., "~/coco/panoptic_train2017".
+ json_file (str): path to the json file. e.g., "~/coco/annotations/panoptic_train2017.json".
+ Returns:
+ list[dict]: a list of dicts in Detectron2 standard format. (See
+ `Using Custom Datasets `_ )
+ """
+
+ def _convert_category_id(segment_info, meta):
+ if segment_info["category_id"] in meta["thing_dataset_id_to_contiguous_id"]:
+ segment_info["category_id"] = meta["thing_dataset_id_to_contiguous_id"][
+ segment_info["category_id"]
+ ]
+ segment_info["isthing"] = True
+ else:
+ segment_info["category_id"] = meta["stuff_dataset_id_to_contiguous_id"][
+ segment_info["category_id"]
+ ]
+ segment_info["isthing"] = False
+ return segment_info
+
+ with PathManager.open(json_file) as f:
+ json_info = json.load(f)
+
+ ret = []
+ for ann in json_info["annotations"]:
+ image_id = ann["image_id"]
+ # TODO: currently we assume image and label has the same filename but
+ # different extension, and images have extension ".jpg" for COCO. Need
+ # to make image extension a user-provided argument if we extend this
+ # function to support other COCO-like datasets.
+ image_file = os.path.join(image_dir, os.path.splitext(ann["file_name"])[0] + ".jpg")
+ label_file = os.path.join(gt_dir, ann["file_name"])
+ sem_label_file = os.path.join(semseg_dir, ann["file_name"])
+ segments_info = [_convert_category_id(x, meta) for x in ann["segments_info"]]
+ ret.append(
+ {
+ "file_name": image_file,
+ "image_id": image_id,
+ "pan_seg_file_name": label_file,
+ "sem_seg_file_name": sem_label_file,
+ "segments_info": segments_info,
+ }
+ )
+ assert len(ret), f"No images found in {image_dir}!"
+ assert PathManager.isfile(ret[0]["file_name"]), ret[0]["file_name"]
+ assert PathManager.isfile(ret[0]["pan_seg_file_name"]), ret[0]["pan_seg_file_name"]
+ assert PathManager.isfile(ret[0]["sem_seg_file_name"]), ret[0]["sem_seg_file_name"]
+ return ret
+
+
+def register_ade20k_panoptic(
+ name, metadata, image_root, panoptic_root, semantic_root, panoptic_json, instances_json=None
+):
+ """
+ Register a "standard" version of ADE20k panoptic segmentation dataset named `name`.
+ The dictionaries in this registered dataset follows detectron2's standard format.
+ Hence it's called "standard".
+ Args:
+ name (str): the name that identifies a dataset,
+ e.g. "ade20k_panoptic_train"
+ metadata (dict): extra metadata associated with this dataset.
+ image_root (str): directory which contains all the images
+ panoptic_root (str): directory which contains panoptic annotation images in COCO format
+ panoptic_json (str): path to the json panoptic annotation file in COCO format
+ sem_seg_root (none): not used, to be consistent with
+ `register_coco_panoptic_separated`.
+ instances_json (str): path to the json instance annotation file
+ """
+ panoptic_name = name
+ DatasetCatalog.register(
+ panoptic_name,
+ lambda: load_ade20k_panoptic_json(
+ panoptic_json, image_root, panoptic_root, semantic_root, metadata
+ ),
+ )
+ MetadataCatalog.get(panoptic_name).set(
+ panoptic_root=panoptic_root,
+ image_root=image_root,
+ panoptic_json=panoptic_json,
+ json_file=instances_json,
+ evaluator_type="ade20k_panoptic_seg",
+ ignore_label=255,
+ label_divisor=1000,
+ **metadata,
+ )
+
+
+_PREDEFINED_SPLITS_ADE20K_PANOPTIC = {
+ "ade20k_panoptic_train": (
+ "ADEChallengeData2016/images/training",
+ "ADEChallengeData2016/ade20k_panoptic_train",
+ "ADEChallengeData2016/ade20k_panoptic_train.json",
+ "ADEChallengeData2016/annotations_detectron2/training",
+ "ADEChallengeData2016/ade20k_instance_train.json",
+ ),
+ "ade20k_panoptic_val": (
+ "ADEChallengeData2016/images/validation",
+ "ADEChallengeData2016/ade20k_panoptic_val",
+ "ADEChallengeData2016/ade20k_panoptic_val.json",
+ "ADEChallengeData2016/annotations_detectron2/validation",
+ "ADEChallengeData2016/ade20k_instance_val.json",
+ ),
+}
+
+
+def get_metadata():
+ meta = {}
+ # The following metadata maps contiguous id from [0, #thing categories +
+ # #stuff categories) to their names and colors. We have to replica of the
+ # same name and color under "thing_*" and "stuff_*" because the current
+ # visualization function in D2 handles thing and class classes differently
+ # due to some heuristic used in Panoptic FPN. We keep the same naming to
+ # enable reusing existing visualization functions.
+ thing_classes = [k["name"] for k in ADE20K_150_CATEGORIES if k["isthing"] == 1]
+ thing_colors = [k["color"] for k in ADE20K_150_CATEGORIES if k["isthing"] == 1]
+ stuff_classes = [k["name"] for k in ADE20K_150_CATEGORIES]
+ stuff_colors = [k["color"] for k in ADE20K_150_CATEGORIES]
+
+ meta["thing_classes"] = thing_classes
+ meta["thing_colors"] = thing_colors
+ meta["stuff_classes"] = stuff_classes
+ meta["stuff_colors"] = stuff_colors
+
+ # Convert category id for training:
+ # category id: like semantic segmentation, it is the class id for each
+ # pixel. Since there are some classes not used in evaluation, the category
+ # id is not always contiguous and thus we have two set of category ids:
+ # - original category id: category id in the original dataset, mainly
+ # used for evaluation.
+ # - contiguous category id: [0, #classes), in order to train the linear
+ # softmax classifier.
+ thing_dataset_id_to_contiguous_id = {}
+ stuff_dataset_id_to_contiguous_id = {}
+
+ for i, cat in enumerate(ADE20K_150_CATEGORIES):
+ if cat["isthing"]:
+ thing_dataset_id_to_contiguous_id[cat["id"]] = i
+ # else:
+ # stuff_dataset_id_to_contiguous_id[cat["id"]] = i
+
+ # in order to use sem_seg evaluator
+ stuff_dataset_id_to_contiguous_id[cat["id"]] = i
+
+ meta["thing_dataset_id_to_contiguous_id"] = thing_dataset_id_to_contiguous_id
+ meta["stuff_dataset_id_to_contiguous_id"] = stuff_dataset_id_to_contiguous_id
+
+ return meta
+
+
+def register_all_ade20k_panoptic(root):
+ metadata = get_metadata()
+ for (
+ prefix,
+ (image_root, panoptic_root, panoptic_json, semantic_root, instance_json),
+ ) in _PREDEFINED_SPLITS_ADE20K_PANOPTIC.items():
+ # The "standard" version of COCO panoptic segmentation dataset,
+ # e.g. used by Panoptic-DeepLab
+ register_ade20k_panoptic(
+ prefix,
+ metadata,
+ os.path.join(root, image_root),
+ os.path.join(root, panoptic_root),
+ os.path.join(root, semantic_root),
+ os.path.join(root, panoptic_json),
+ os.path.join(root, instance_json),
+ )
+
+
+_root = os.getenv("DETECTRON2_DATASETS", "datasets")
+register_all_ade20k_panoptic(_root)
diff --git a/videocutler/mask2former/data/datasets/register_coco_panoptic_annos_semseg.py b/videocutler/mask2former/data/datasets/register_coco_panoptic_annos_semseg.py
new file mode 100644
index 0000000000000000000000000000000000000000..eecd413d4ed028f94e3aad9fc6bad231e850b5da
--- /dev/null
+++ b/videocutler/mask2former/data/datasets/register_coco_panoptic_annos_semseg.py
@@ -0,0 +1,181 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import json
+import os
+
+from detectron2.data import DatasetCatalog, MetadataCatalog
+from detectron2.data.datasets import load_sem_seg
+from detectron2.data.datasets.builtin_meta import COCO_CATEGORIES
+from detectron2.utils.file_io import PathManager
+
+
+_PREDEFINED_SPLITS_COCO_PANOPTIC = {
+ "coco_2017_train_panoptic": (
+ # This is the original panoptic annotation directory
+ "coco/panoptic_train2017",
+ "coco/annotations/panoptic_train2017.json",
+ # This directory contains semantic annotations that are
+ # converted from panoptic annotations.
+ # It is used by PanopticFPN.
+ # You can use the script at detectron2/datasets/prepare_panoptic_fpn.py
+ # to create these directories.
+ "coco/panoptic_semseg_train2017",
+ ),
+ "coco_2017_val_panoptic": (
+ "coco/panoptic_val2017",
+ "coco/annotations/panoptic_val2017.json",
+ "coco/panoptic_semseg_val2017",
+ ),
+}
+
+
+def get_metadata():
+ meta = {}
+ # The following metadata maps contiguous id from [0, #thing categories +
+ # #stuff categories) to their names and colors. We have to replica of the
+ # same name and color under "thing_*" and "stuff_*" because the current
+ # visualization function in D2 handles thing and class classes differently
+ # due to some heuristic used in Panoptic FPN. We keep the same naming to
+ # enable reusing existing visualization functions.
+ thing_classes = [k["name"] for k in COCO_CATEGORIES if k["isthing"] == 1]
+ thing_colors = [k["color"] for k in COCO_CATEGORIES if k["isthing"] == 1]
+ stuff_classes = [k["name"] for k in COCO_CATEGORIES]
+ stuff_colors = [k["color"] for k in COCO_CATEGORIES]
+
+ meta["thing_classes"] = thing_classes
+ meta["thing_colors"] = thing_colors
+ meta["stuff_classes"] = stuff_classes
+ meta["stuff_colors"] = stuff_colors
+
+ # Convert category id for training:
+ # category id: like semantic segmentation, it is the class id for each
+ # pixel. Since there are some classes not used in evaluation, the category
+ # id is not always contiguous and thus we have two set of category ids:
+ # - original category id: category id in the original dataset, mainly
+ # used for evaluation.
+ # - contiguous category id: [0, #classes), in order to train the linear
+ # softmax classifier.
+ thing_dataset_id_to_contiguous_id = {}
+ stuff_dataset_id_to_contiguous_id = {}
+
+ for i, cat in enumerate(COCO_CATEGORIES):
+ if cat["isthing"]:
+ thing_dataset_id_to_contiguous_id[cat["id"]] = i
+ # else:
+ # stuff_dataset_id_to_contiguous_id[cat["id"]] = i
+
+ # in order to use sem_seg evaluator
+ stuff_dataset_id_to_contiguous_id[cat["id"]] = i
+
+ meta["thing_dataset_id_to_contiguous_id"] = thing_dataset_id_to_contiguous_id
+ meta["stuff_dataset_id_to_contiguous_id"] = stuff_dataset_id_to_contiguous_id
+
+ return meta
+
+
+def load_coco_panoptic_json(json_file, image_dir, gt_dir, semseg_dir, meta):
+ """
+ Args:
+ image_dir (str): path to the raw dataset. e.g., "~/coco/train2017".
+ gt_dir (str): path to the raw annotations. e.g., "~/coco/panoptic_train2017".
+ json_file (str): path to the json file. e.g., "~/coco/annotations/panoptic_train2017.json".
+ Returns:
+ list[dict]: a list of dicts in Detectron2 standard format. (See
+ `Using Custom Datasets `_ )
+ """
+
+ def _convert_category_id(segment_info, meta):
+ if segment_info["category_id"] in meta["thing_dataset_id_to_contiguous_id"]:
+ segment_info["category_id"] = meta["thing_dataset_id_to_contiguous_id"][
+ segment_info["category_id"]
+ ]
+ segment_info["isthing"] = True
+ else:
+ segment_info["category_id"] = meta["stuff_dataset_id_to_contiguous_id"][
+ segment_info["category_id"]
+ ]
+ segment_info["isthing"] = False
+ return segment_info
+
+ with PathManager.open(json_file) as f:
+ json_info = json.load(f)
+
+ ret = []
+ for ann in json_info["annotations"]:
+ image_id = int(ann["image_id"])
+ # TODO: currently we assume image and label has the same filename but
+ # different extension, and images have extension ".jpg" for COCO. Need
+ # to make image extension a user-provided argument if we extend this
+ # function to support other COCO-like datasets.
+ image_file = os.path.join(image_dir, os.path.splitext(ann["file_name"])[0] + ".jpg")
+ label_file = os.path.join(gt_dir, ann["file_name"])
+ sem_label_file = os.path.join(semseg_dir, ann["file_name"])
+ segments_info = [_convert_category_id(x, meta) for x in ann["segments_info"]]
+ ret.append(
+ {
+ "file_name": image_file,
+ "image_id": image_id,
+ "pan_seg_file_name": label_file,
+ "sem_seg_file_name": sem_label_file,
+ "segments_info": segments_info,
+ }
+ )
+ assert len(ret), f"No images found in {image_dir}!"
+ assert PathManager.isfile(ret[0]["file_name"]), ret[0]["file_name"]
+ assert PathManager.isfile(ret[0]["pan_seg_file_name"]), ret[0]["pan_seg_file_name"]
+ assert PathManager.isfile(ret[0]["sem_seg_file_name"]), ret[0]["sem_seg_file_name"]
+ return ret
+
+
+def register_coco_panoptic_annos_sem_seg(
+ name, metadata, image_root, panoptic_root, panoptic_json, sem_seg_root, instances_json
+):
+ panoptic_name = name
+ delattr(MetadataCatalog.get(panoptic_name), "thing_classes")
+ delattr(MetadataCatalog.get(panoptic_name), "thing_colors")
+ MetadataCatalog.get(panoptic_name).set(
+ thing_classes=metadata["thing_classes"],
+ thing_colors=metadata["thing_colors"],
+ # thing_dataset_id_to_contiguous_id=metadata["thing_dataset_id_to_contiguous_id"],
+ )
+
+ # the name is "coco_2017_train_panoptic_with_sem_seg" and "coco_2017_val_panoptic_with_sem_seg"
+ semantic_name = name + "_with_sem_seg"
+ DatasetCatalog.register(
+ semantic_name,
+ lambda: load_coco_panoptic_json(panoptic_json, image_root, panoptic_root, sem_seg_root, metadata),
+ )
+ MetadataCatalog.get(semantic_name).set(
+ sem_seg_root=sem_seg_root,
+ panoptic_root=panoptic_root,
+ image_root=image_root,
+ panoptic_json=panoptic_json,
+ json_file=instances_json,
+ evaluator_type="coco_panoptic_seg",
+ ignore_label=255,
+ label_divisor=1000,
+ **metadata,
+ )
+
+
+def register_all_coco_panoptic_annos_sem_seg(root):
+ for (
+ prefix,
+ (panoptic_root, panoptic_json, semantic_root),
+ ) in _PREDEFINED_SPLITS_COCO_PANOPTIC.items():
+ prefix_instances = prefix[: -len("_panoptic")]
+ instances_meta = MetadataCatalog.get(prefix_instances)
+ image_root, instances_json = instances_meta.image_root, instances_meta.json_file
+
+ register_coco_panoptic_annos_sem_seg(
+ prefix,
+ get_metadata(),
+ image_root,
+ os.path.join(root, panoptic_root),
+ os.path.join(root, panoptic_json),
+ os.path.join(root, semantic_root),
+ instances_json,
+ )
+
+
+_root = os.getenv("DETECTRON2_DATASETS", "datasets")
+register_all_coco_panoptic_annos_sem_seg(_root)
diff --git a/videocutler/mask2former/data/datasets/register_coco_stuff_10k.py b/videocutler/mask2former/data/datasets/register_coco_stuff_10k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a1ec0375858ada8e4270b534fcd58106254c7fa9
--- /dev/null
+++ b/videocutler/mask2former/data/datasets/register_coco_stuff_10k.py
@@ -0,0 +1,223 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import os
+
+from detectron2.data import DatasetCatalog, MetadataCatalog
+from detectron2.data.datasets import load_sem_seg
+
+COCO_CATEGORIES = [
+ {"color": [220, 20, 60], "isthing": 1, "id": 1, "name": "person"},
+ {"color": [119, 11, 32], "isthing": 1, "id": 2, "name": "bicycle"},
+ {"color": [0, 0, 142], "isthing": 1, "id": 3, "name": "car"},
+ {"color": [0, 0, 230], "isthing": 1, "id": 4, "name": "motorcycle"},
+ {"color": [106, 0, 228], "isthing": 1, "id": 5, "name": "airplane"},
+ {"color": [0, 60, 100], "isthing": 1, "id": 6, "name": "bus"},
+ {"color": [0, 80, 100], "isthing": 1, "id": 7, "name": "train"},
+ {"color": [0, 0, 70], "isthing": 1, "id": 8, "name": "truck"},
+ {"color": [0, 0, 192], "isthing": 1, "id": 9, "name": "boat"},
+ {"color": [250, 170, 30], "isthing": 1, "id": 10, "name": "traffic light"},
+ {"color": [100, 170, 30], "isthing": 1, "id": 11, "name": "fire hydrant"},
+ {"color": [220, 220, 0], "isthing": 1, "id": 13, "name": "stop sign"},
+ {"color": [175, 116, 175], "isthing": 1, "id": 14, "name": "parking meter"},
+ {"color": [250, 0, 30], "isthing": 1, "id": 15, "name": "bench"},
+ {"color": [165, 42, 42], "isthing": 1, "id": 16, "name": "bird"},
+ {"color": [255, 77, 255], "isthing": 1, "id": 17, "name": "cat"},
+ {"color": [0, 226, 252], "isthing": 1, "id": 18, "name": "dog"},
+ {"color": [182, 182, 255], "isthing": 1, "id": 19, "name": "horse"},
+ {"color": [0, 82, 0], "isthing": 1, "id": 20, "name": "sheep"},
+ {"color": [120, 166, 157], "isthing": 1, "id": 21, "name": "cow"},
+ {"color": [110, 76, 0], "isthing": 1, "id": 22, "name": "elephant"},
+ {"color": [174, 57, 255], "isthing": 1, "id": 23, "name": "bear"},
+ {"color": [199, 100, 0], "isthing": 1, "id": 24, "name": "zebra"},
+ {"color": [72, 0, 118], "isthing": 1, "id": 25, "name": "giraffe"},
+ {"color": [255, 179, 240], "isthing": 1, "id": 27, "name": "backpack"},
+ {"color": [0, 125, 92], "isthing": 1, "id": 28, "name": "umbrella"},
+ {"color": [209, 0, 151], "isthing": 1, "id": 31, "name": "handbag"},
+ {"color": [188, 208, 182], "isthing": 1, "id": 32, "name": "tie"},
+ {"color": [0, 220, 176], "isthing": 1, "id": 33, "name": "suitcase"},
+ {"color": [255, 99, 164], "isthing": 1, "id": 34, "name": "frisbee"},
+ {"color": [92, 0, 73], "isthing": 1, "id": 35, "name": "skis"},
+ {"color": [133, 129, 255], "isthing": 1, "id": 36, "name": "snowboard"},
+ {"color": [78, 180, 255], "isthing": 1, "id": 37, "name": "sports ball"},
+ {"color": [0, 228, 0], "isthing": 1, "id": 38, "name": "kite"},
+ {"color": [174, 255, 243], "isthing": 1, "id": 39, "name": "baseball bat"},
+ {"color": [45, 89, 255], "isthing": 1, "id": 40, "name": "baseball glove"},
+ {"color": [134, 134, 103], "isthing": 1, "id": 41, "name": "skateboard"},
+ {"color": [145, 148, 174], "isthing": 1, "id": 42, "name": "surfboard"},
+ {"color": [255, 208, 186], "isthing": 1, "id": 43, "name": "tennis racket"},
+ {"color": [197, 226, 255], "isthing": 1, "id": 44, "name": "bottle"},
+ {"color": [171, 134, 1], "isthing": 1, "id": 46, "name": "wine glass"},
+ {"color": [109, 63, 54], "isthing": 1, "id": 47, "name": "cup"},
+ {"color": [207, 138, 255], "isthing": 1, "id": 48, "name": "fork"},
+ {"color": [151, 0, 95], "isthing": 1, "id": 49, "name": "knife"},
+ {"color": [9, 80, 61], "isthing": 1, "id": 50, "name": "spoon"},
+ {"color": [84, 105, 51], "isthing": 1, "id": 51, "name": "bowl"},
+ {"color": [74, 65, 105], "isthing": 1, "id": 52, "name": "banana"},
+ {"color": [166, 196, 102], "isthing": 1, "id": 53, "name": "apple"},
+ {"color": [208, 195, 210], "isthing": 1, "id": 54, "name": "sandwich"},
+ {"color": [255, 109, 65], "isthing": 1, "id": 55, "name": "orange"},
+ {"color": [0, 143, 149], "isthing": 1, "id": 56, "name": "broccoli"},
+ {"color": [179, 0, 194], "isthing": 1, "id": 57, "name": "carrot"},
+ {"color": [209, 99, 106], "isthing": 1, "id": 58, "name": "hot dog"},
+ {"color": [5, 121, 0], "isthing": 1, "id": 59, "name": "pizza"},
+ {"color": [227, 255, 205], "isthing": 1, "id": 60, "name": "donut"},
+ {"color": [147, 186, 208], "isthing": 1, "id": 61, "name": "cake"},
+ {"color": [153, 69, 1], "isthing": 1, "id": 62, "name": "chair"},
+ {"color": [3, 95, 161], "isthing": 1, "id": 63, "name": "couch"},
+ {"color": [163, 255, 0], "isthing": 1, "id": 64, "name": "potted plant"},
+ {"color": [119, 0, 170], "isthing": 1, "id": 65, "name": "bed"},
+ {"color": [0, 182, 199], "isthing": 1, "id": 67, "name": "dining table"},
+ {"color": [0, 165, 120], "isthing": 1, "id": 70, "name": "toilet"},
+ {"color": [183, 130, 88], "isthing": 1, "id": 72, "name": "tv"},
+ {"color": [95, 32, 0], "isthing": 1, "id": 73, "name": "laptop"},
+ {"color": [130, 114, 135], "isthing": 1, "id": 74, "name": "mouse"},
+ {"color": [110, 129, 133], "isthing": 1, "id": 75, "name": "remote"},
+ {"color": [166, 74, 118], "isthing": 1, "id": 76, "name": "keyboard"},
+ {"color": [219, 142, 185], "isthing": 1, "id": 77, "name": "cell phone"},
+ {"color": [79, 210, 114], "isthing": 1, "id": 78, "name": "microwave"},
+ {"color": [178, 90, 62], "isthing": 1, "id": 79, "name": "oven"},
+ {"color": [65, 70, 15], "isthing": 1, "id": 80, "name": "toaster"},
+ {"color": [127, 167, 115], "isthing": 1, "id": 81, "name": "sink"},
+ {"color": [59, 105, 106], "isthing": 1, "id": 82, "name": "refrigerator"},
+ {"color": [142, 108, 45], "isthing": 1, "id": 84, "name": "book"},
+ {"color": [196, 172, 0], "isthing": 1, "id": 85, "name": "clock"},
+ {"color": [95, 54, 80], "isthing": 1, "id": 86, "name": "vase"},
+ {"color": [128, 76, 255], "isthing": 1, "id": 87, "name": "scissors"},
+ {"color": [201, 57, 1], "isthing": 1, "id": 88, "name": "teddy bear"},
+ {"color": [246, 0, 122], "isthing": 1, "id": 89, "name": "hair drier"},
+ {"color": [191, 162, 208], "isthing": 1, "id": 90, "name": "toothbrush"},
+ {"id": 92, "name": "banner", "supercategory": "textile"},
+ {"id": 93, "name": "blanket", "supercategory": "textile"},
+ {"id": 94, "name": "branch", "supercategory": "plant"},
+ {"id": 95, "name": "bridge", "supercategory": "building"},
+ {"id": 96, "name": "building-other", "supercategory": "building"},
+ {"id": 97, "name": "bush", "supercategory": "plant"},
+ {"id": 98, "name": "cabinet", "supercategory": "furniture-stuff"},
+ {"id": 99, "name": "cage", "supercategory": "structural"},
+ {"id": 100, "name": "cardboard", "supercategory": "raw-material"},
+ {"id": 101, "name": "carpet", "supercategory": "floor"},
+ {"id": 102, "name": "ceiling-other", "supercategory": "ceiling"},
+ {"id": 103, "name": "ceiling-tile", "supercategory": "ceiling"},
+ {"id": 104, "name": "cloth", "supercategory": "textile"},
+ {"id": 105, "name": "clothes", "supercategory": "textile"},
+ {"id": 106, "name": "clouds", "supercategory": "sky"},
+ {"id": 107, "name": "counter", "supercategory": "furniture-stuff"},
+ {"id": 108, "name": "cupboard", "supercategory": "furniture-stuff"},
+ {"id": 109, "name": "curtain", "supercategory": "textile"},
+ {"id": 110, "name": "desk-stuff", "supercategory": "furniture-stuff"},
+ {"id": 111, "name": "dirt", "supercategory": "ground"},
+ {"id": 112, "name": "door-stuff", "supercategory": "furniture-stuff"},
+ {"id": 113, "name": "fence", "supercategory": "structural"},
+ {"id": 114, "name": "floor-marble", "supercategory": "floor"},
+ {"id": 115, "name": "floor-other", "supercategory": "floor"},
+ {"id": 116, "name": "floor-stone", "supercategory": "floor"},
+ {"id": 117, "name": "floor-tile", "supercategory": "floor"},
+ {"id": 118, "name": "floor-wood", "supercategory": "floor"},
+ {"id": 119, "name": "flower", "supercategory": "plant"},
+ {"id": 120, "name": "fog", "supercategory": "water"},
+ {"id": 121, "name": "food-other", "supercategory": "food-stuff"},
+ {"id": 122, "name": "fruit", "supercategory": "food-stuff"},
+ {"id": 123, "name": "furniture-other", "supercategory": "furniture-stuff"},
+ {"id": 124, "name": "grass", "supercategory": "plant"},
+ {"id": 125, "name": "gravel", "supercategory": "ground"},
+ {"id": 126, "name": "ground-other", "supercategory": "ground"},
+ {"id": 127, "name": "hill", "supercategory": "solid"},
+ {"id": 128, "name": "house", "supercategory": "building"},
+ {"id": 129, "name": "leaves", "supercategory": "plant"},
+ {"id": 130, "name": "light", "supercategory": "furniture-stuff"},
+ {"id": 131, "name": "mat", "supercategory": "textile"},
+ {"id": 132, "name": "metal", "supercategory": "raw-material"},
+ {"id": 133, "name": "mirror-stuff", "supercategory": "furniture-stuff"},
+ {"id": 134, "name": "moss", "supercategory": "plant"},
+ {"id": 135, "name": "mountain", "supercategory": "solid"},
+ {"id": 136, "name": "mud", "supercategory": "ground"},
+ {"id": 137, "name": "napkin", "supercategory": "textile"},
+ {"id": 138, "name": "net", "supercategory": "structural"},
+ {"id": 139, "name": "paper", "supercategory": "raw-material"},
+ {"id": 140, "name": "pavement", "supercategory": "ground"},
+ {"id": 141, "name": "pillow", "supercategory": "textile"},
+ {"id": 142, "name": "plant-other", "supercategory": "plant"},
+ {"id": 143, "name": "plastic", "supercategory": "raw-material"},
+ {"id": 144, "name": "platform", "supercategory": "ground"},
+ {"id": 145, "name": "playingfield", "supercategory": "ground"},
+ {"id": 146, "name": "railing", "supercategory": "structural"},
+ {"id": 147, "name": "railroad", "supercategory": "ground"},
+ {"id": 148, "name": "river", "supercategory": "water"},
+ {"id": 149, "name": "road", "supercategory": "ground"},
+ {"id": 150, "name": "rock", "supercategory": "solid"},
+ {"id": 151, "name": "roof", "supercategory": "building"},
+ {"id": 152, "name": "rug", "supercategory": "textile"},
+ {"id": 153, "name": "salad", "supercategory": "food-stuff"},
+ {"id": 154, "name": "sand", "supercategory": "ground"},
+ {"id": 155, "name": "sea", "supercategory": "water"},
+ {"id": 156, "name": "shelf", "supercategory": "furniture-stuff"},
+ {"id": 157, "name": "sky-other", "supercategory": "sky"},
+ {"id": 158, "name": "skyscraper", "supercategory": "building"},
+ {"id": 159, "name": "snow", "supercategory": "ground"},
+ {"id": 160, "name": "solid-other", "supercategory": "solid"},
+ {"id": 161, "name": "stairs", "supercategory": "furniture-stuff"},
+ {"id": 162, "name": "stone", "supercategory": "solid"},
+ {"id": 163, "name": "straw", "supercategory": "plant"},
+ {"id": 164, "name": "structural-other", "supercategory": "structural"},
+ {"id": 165, "name": "table", "supercategory": "furniture-stuff"},
+ {"id": 166, "name": "tent", "supercategory": "building"},
+ {"id": 167, "name": "textile-other", "supercategory": "textile"},
+ {"id": 168, "name": "towel", "supercategory": "textile"},
+ {"id": 169, "name": "tree", "supercategory": "plant"},
+ {"id": 170, "name": "vegetable", "supercategory": "food-stuff"},
+ {"id": 171, "name": "wall-brick", "supercategory": "wall"},
+ {"id": 172, "name": "wall-concrete", "supercategory": "wall"},
+ {"id": 173, "name": "wall-other", "supercategory": "wall"},
+ {"id": 174, "name": "wall-panel", "supercategory": "wall"},
+ {"id": 175, "name": "wall-stone", "supercategory": "wall"},
+ {"id": 176, "name": "wall-tile", "supercategory": "wall"},
+ {"id": 177, "name": "wall-wood", "supercategory": "wall"},
+ {"id": 178, "name": "water-other", "supercategory": "water"},
+ {"id": 179, "name": "waterdrops", "supercategory": "water"},
+ {"id": 180, "name": "window-blind", "supercategory": "window"},
+ {"id": 181, "name": "window-other", "supercategory": "window"},
+ {"id": 182, "name": "wood", "supercategory": "solid"},
+]
+
+
+def _get_coco_stuff_meta():
+ # Id 0 is reserved for ignore_label, we change ignore_label for 0
+ # to 255 in our pre-processing.
+ stuff_ids = [k["id"] for k in COCO_CATEGORIES]
+ assert len(stuff_ids) == 171, len(stuff_ids)
+
+ # For semantic segmentation, this mapping maps from contiguous stuff id
+ # (in [0, 91], used in models) to ids in the dataset (used for processing results)
+ stuff_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(stuff_ids)}
+ stuff_classes = [k["name"] for k in COCO_CATEGORIES]
+
+ ret = {
+ "stuff_dataset_id_to_contiguous_id": stuff_dataset_id_to_contiguous_id,
+ "stuff_classes": stuff_classes,
+ }
+ return ret
+
+
+def register_all_coco_stuff_10k(root):
+ root = os.path.join(root, "coco", "coco_stuff_10k")
+ meta = _get_coco_stuff_meta()
+ for name, image_dirname, sem_seg_dirname in [
+ ("train", "images_detectron2/train", "annotations_detectron2/train"),
+ ("test", "images_detectron2/test", "annotations_detectron2/test"),
+ ]:
+ image_dir = os.path.join(root, image_dirname)
+ gt_dir = os.path.join(root, sem_seg_dirname)
+ name = f"coco_2017_{name}_stuff_10k_sem_seg"
+ DatasetCatalog.register(
+ name, lambda x=image_dir, y=gt_dir: load_sem_seg(y, x, gt_ext="png", image_ext="jpg")
+ )
+ MetadataCatalog.get(name).set(
+ image_root=image_dir,
+ sem_seg_root=gt_dir,
+ evaluator_type="sem_seg",
+ ignore_label=255,
+ **meta,
+ )
+
+
+_root = os.getenv("DETECTRON2_DATASETS", "datasets")
+register_all_coco_stuff_10k(_root)
diff --git a/videocutler/mask2former/data/datasets/register_mapillary_vistas.py b/videocutler/mask2former/data/datasets/register_mapillary_vistas.py
new file mode 100644
index 0000000000000000000000000000000000000000..ce3874b65d943c333d093abd6998500f8a3775f5
--- /dev/null
+++ b/videocutler/mask2former/data/datasets/register_mapillary_vistas.py
@@ -0,0 +1,507 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import os
+
+from detectron2.data import DatasetCatalog, MetadataCatalog
+from detectron2.data.datasets import load_sem_seg
+
+MAPILLARY_VISTAS_SEM_SEG_CATEGORIES = [
+ {
+ "color": [165, 42, 42],
+ "instances": True,
+ "readable": "Bird",
+ "name": "animal--bird",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 192, 0],
+ "instances": True,
+ "readable": "Ground Animal",
+ "name": "animal--ground-animal",
+ "evaluate": True,
+ },
+ {
+ "color": [196, 196, 196],
+ "instances": False,
+ "readable": "Curb",
+ "name": "construction--barrier--curb",
+ "evaluate": True,
+ },
+ {
+ "color": [190, 153, 153],
+ "instances": False,
+ "readable": "Fence",
+ "name": "construction--barrier--fence",
+ "evaluate": True,
+ },
+ {
+ "color": [180, 165, 180],
+ "instances": False,
+ "readable": "Guard Rail",
+ "name": "construction--barrier--guard-rail",
+ "evaluate": True,
+ },
+ {
+ "color": [90, 120, 150],
+ "instances": False,
+ "readable": "Barrier",
+ "name": "construction--barrier--other-barrier",
+ "evaluate": True,
+ },
+ {
+ "color": [102, 102, 156],
+ "instances": False,
+ "readable": "Wall",
+ "name": "construction--barrier--wall",
+ "evaluate": True,
+ },
+ {
+ "color": [128, 64, 255],
+ "instances": False,
+ "readable": "Bike Lane",
+ "name": "construction--flat--bike-lane",
+ "evaluate": True,
+ },
+ {
+ "color": [140, 140, 200],
+ "instances": True,
+ "readable": "Crosswalk - Plain",
+ "name": "construction--flat--crosswalk-plain",
+ "evaluate": True,
+ },
+ {
+ "color": [170, 170, 170],
+ "instances": False,
+ "readable": "Curb Cut",
+ "name": "construction--flat--curb-cut",
+ "evaluate": True,
+ },
+ {
+ "color": [250, 170, 160],
+ "instances": False,
+ "readable": "Parking",
+ "name": "construction--flat--parking",
+ "evaluate": True,
+ },
+ {
+ "color": [96, 96, 96],
+ "instances": False,
+ "readable": "Pedestrian Area",
+ "name": "construction--flat--pedestrian-area",
+ "evaluate": True,
+ },
+ {
+ "color": [230, 150, 140],
+ "instances": False,
+ "readable": "Rail Track",
+ "name": "construction--flat--rail-track",
+ "evaluate": True,
+ },
+ {
+ "color": [128, 64, 128],
+ "instances": False,
+ "readable": "Road",
+ "name": "construction--flat--road",
+ "evaluate": True,
+ },
+ {
+ "color": [110, 110, 110],
+ "instances": False,
+ "readable": "Service Lane",
+ "name": "construction--flat--service-lane",
+ "evaluate": True,
+ },
+ {
+ "color": [244, 35, 232],
+ "instances": False,
+ "readable": "Sidewalk",
+ "name": "construction--flat--sidewalk",
+ "evaluate": True,
+ },
+ {
+ "color": [150, 100, 100],
+ "instances": False,
+ "readable": "Bridge",
+ "name": "construction--structure--bridge",
+ "evaluate": True,
+ },
+ {
+ "color": [70, 70, 70],
+ "instances": False,
+ "readable": "Building",
+ "name": "construction--structure--building",
+ "evaluate": True,
+ },
+ {
+ "color": [150, 120, 90],
+ "instances": False,
+ "readable": "Tunnel",
+ "name": "construction--structure--tunnel",
+ "evaluate": True,
+ },
+ {
+ "color": [220, 20, 60],
+ "instances": True,
+ "readable": "Person",
+ "name": "human--person",
+ "evaluate": True,
+ },
+ {
+ "color": [255, 0, 0],
+ "instances": True,
+ "readable": "Bicyclist",
+ "name": "human--rider--bicyclist",
+ "evaluate": True,
+ },
+ {
+ "color": [255, 0, 100],
+ "instances": True,
+ "readable": "Motorcyclist",
+ "name": "human--rider--motorcyclist",
+ "evaluate": True,
+ },
+ {
+ "color": [255, 0, 200],
+ "instances": True,
+ "readable": "Other Rider",
+ "name": "human--rider--other-rider",
+ "evaluate": True,
+ },
+ {
+ "color": [200, 128, 128],
+ "instances": True,
+ "readable": "Lane Marking - Crosswalk",
+ "name": "marking--crosswalk-zebra",
+ "evaluate": True,
+ },
+ {
+ "color": [255, 255, 255],
+ "instances": False,
+ "readable": "Lane Marking - General",
+ "name": "marking--general",
+ "evaluate": True,
+ },
+ {
+ "color": [64, 170, 64],
+ "instances": False,
+ "readable": "Mountain",
+ "name": "nature--mountain",
+ "evaluate": True,
+ },
+ {
+ "color": [230, 160, 50],
+ "instances": False,
+ "readable": "Sand",
+ "name": "nature--sand",
+ "evaluate": True,
+ },
+ {
+ "color": [70, 130, 180],
+ "instances": False,
+ "readable": "Sky",
+ "name": "nature--sky",
+ "evaluate": True,
+ },
+ {
+ "color": [190, 255, 255],
+ "instances": False,
+ "readable": "Snow",
+ "name": "nature--snow",
+ "evaluate": True,
+ },
+ {
+ "color": [152, 251, 152],
+ "instances": False,
+ "readable": "Terrain",
+ "name": "nature--terrain",
+ "evaluate": True,
+ },
+ {
+ "color": [107, 142, 35],
+ "instances": False,
+ "readable": "Vegetation",
+ "name": "nature--vegetation",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 170, 30],
+ "instances": False,
+ "readable": "Water",
+ "name": "nature--water",
+ "evaluate": True,
+ },
+ {
+ "color": [255, 255, 128],
+ "instances": True,
+ "readable": "Banner",
+ "name": "object--banner",
+ "evaluate": True,
+ },
+ {
+ "color": [250, 0, 30],
+ "instances": True,
+ "readable": "Bench",
+ "name": "object--bench",
+ "evaluate": True,
+ },
+ {
+ "color": [100, 140, 180],
+ "instances": True,
+ "readable": "Bike Rack",
+ "name": "object--bike-rack",
+ "evaluate": True,
+ },
+ {
+ "color": [220, 220, 220],
+ "instances": True,
+ "readable": "Billboard",
+ "name": "object--billboard",
+ "evaluate": True,
+ },
+ {
+ "color": [220, 128, 128],
+ "instances": True,
+ "readable": "Catch Basin",
+ "name": "object--catch-basin",
+ "evaluate": True,
+ },
+ {
+ "color": [222, 40, 40],
+ "instances": True,
+ "readable": "CCTV Camera",
+ "name": "object--cctv-camera",
+ "evaluate": True,
+ },
+ {
+ "color": [100, 170, 30],
+ "instances": True,
+ "readable": "Fire Hydrant",
+ "name": "object--fire-hydrant",
+ "evaluate": True,
+ },
+ {
+ "color": [40, 40, 40],
+ "instances": True,
+ "readable": "Junction Box",
+ "name": "object--junction-box",
+ "evaluate": True,
+ },
+ {
+ "color": [33, 33, 33],
+ "instances": True,
+ "readable": "Mailbox",
+ "name": "object--mailbox",
+ "evaluate": True,
+ },
+ {
+ "color": [100, 128, 160],
+ "instances": True,
+ "readable": "Manhole",
+ "name": "object--manhole",
+ "evaluate": True,
+ },
+ {
+ "color": [142, 0, 0],
+ "instances": True,
+ "readable": "Phone Booth",
+ "name": "object--phone-booth",
+ "evaluate": True,
+ },
+ {
+ "color": [70, 100, 150],
+ "instances": False,
+ "readable": "Pothole",
+ "name": "object--pothole",
+ "evaluate": True,
+ },
+ {
+ "color": [210, 170, 100],
+ "instances": True,
+ "readable": "Street Light",
+ "name": "object--street-light",
+ "evaluate": True,
+ },
+ {
+ "color": [153, 153, 153],
+ "instances": True,
+ "readable": "Pole",
+ "name": "object--support--pole",
+ "evaluate": True,
+ },
+ {
+ "color": [128, 128, 128],
+ "instances": True,
+ "readable": "Traffic Sign Frame",
+ "name": "object--support--traffic-sign-frame",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 0, 80],
+ "instances": True,
+ "readable": "Utility Pole",
+ "name": "object--support--utility-pole",
+ "evaluate": True,
+ },
+ {
+ "color": [250, 170, 30],
+ "instances": True,
+ "readable": "Traffic Light",
+ "name": "object--traffic-light",
+ "evaluate": True,
+ },
+ {
+ "color": [192, 192, 192],
+ "instances": True,
+ "readable": "Traffic Sign (Back)",
+ "name": "object--traffic-sign--back",
+ "evaluate": True,
+ },
+ {
+ "color": [220, 220, 0],
+ "instances": True,
+ "readable": "Traffic Sign (Front)",
+ "name": "object--traffic-sign--front",
+ "evaluate": True,
+ },
+ {
+ "color": [140, 140, 20],
+ "instances": True,
+ "readable": "Trash Can",
+ "name": "object--trash-can",
+ "evaluate": True,
+ },
+ {
+ "color": [119, 11, 32],
+ "instances": True,
+ "readable": "Bicycle",
+ "name": "object--vehicle--bicycle",
+ "evaluate": True,
+ },
+ {
+ "color": [150, 0, 255],
+ "instances": True,
+ "readable": "Boat",
+ "name": "object--vehicle--boat",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 60, 100],
+ "instances": True,
+ "readable": "Bus",
+ "name": "object--vehicle--bus",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 0, 142],
+ "instances": True,
+ "readable": "Car",
+ "name": "object--vehicle--car",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 0, 90],
+ "instances": True,
+ "readable": "Caravan",
+ "name": "object--vehicle--caravan",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 0, 230],
+ "instances": True,
+ "readable": "Motorcycle",
+ "name": "object--vehicle--motorcycle",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 80, 100],
+ "instances": False,
+ "readable": "On Rails",
+ "name": "object--vehicle--on-rails",
+ "evaluate": True,
+ },
+ {
+ "color": [128, 64, 64],
+ "instances": True,
+ "readable": "Other Vehicle",
+ "name": "object--vehicle--other-vehicle",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 0, 110],
+ "instances": True,
+ "readable": "Trailer",
+ "name": "object--vehicle--trailer",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 0, 70],
+ "instances": True,
+ "readable": "Truck",
+ "name": "object--vehicle--truck",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 0, 192],
+ "instances": True,
+ "readable": "Wheeled Slow",
+ "name": "object--vehicle--wheeled-slow",
+ "evaluate": True,
+ },
+ {
+ "color": [32, 32, 32],
+ "instances": False,
+ "readable": "Car Mount",
+ "name": "void--car-mount",
+ "evaluate": True,
+ },
+ {
+ "color": [120, 10, 10],
+ "instances": False,
+ "readable": "Ego Vehicle",
+ "name": "void--ego-vehicle",
+ "evaluate": True,
+ },
+ {
+ "color": [0, 0, 0],
+ "instances": False,
+ "readable": "Unlabeled",
+ "name": "void--unlabeled",
+ "evaluate": False,
+ },
+]
+
+
+def _get_mapillary_vistas_meta():
+ stuff_classes = [k["readable"] for k in MAPILLARY_VISTAS_SEM_SEG_CATEGORIES if k["evaluate"]]
+ assert len(stuff_classes) == 65
+
+ stuff_colors = [k["color"] for k in MAPILLARY_VISTAS_SEM_SEG_CATEGORIES if k["evaluate"]]
+ assert len(stuff_colors) == 65
+
+ ret = {
+ "stuff_classes": stuff_classes,
+ "stuff_colors": stuff_colors,
+ }
+ return ret
+
+
+def register_all_mapillary_vistas(root):
+ root = os.path.join(root, "mapillary_vistas")
+ meta = _get_mapillary_vistas_meta()
+ for name, dirname in [("train", "training"), ("val", "validation")]:
+ image_dir = os.path.join(root, dirname, "images")
+ gt_dir = os.path.join(root, dirname, "labels")
+ name = f"mapillary_vistas_sem_seg_{name}"
+ DatasetCatalog.register(
+ name, lambda x=image_dir, y=gt_dir: load_sem_seg(y, x, gt_ext="png", image_ext="jpg")
+ )
+ MetadataCatalog.get(name).set(
+ image_root=image_dir,
+ sem_seg_root=gt_dir,
+ evaluator_type="sem_seg",
+ ignore_label=65, # different from other datasets, Mapillary Vistas sets ignore_label to 65
+ **meta,
+ )
+
+
+_root = os.getenv("DETECTRON2_DATASETS", "datasets")
+register_all_mapillary_vistas(_root)
diff --git a/videocutler/mask2former/data/datasets/register_mapillary_vistas_panoptic.py b/videocutler/mask2former/data/datasets/register_mapillary_vistas_panoptic.py
new file mode 100644
index 0000000000000000000000000000000000000000..0123185583f03ba1715da6e0b1eb24f71c12adda
--- /dev/null
+++ b/videocutler/mask2former/data/datasets/register_mapillary_vistas_panoptic.py
@@ -0,0 +1,508 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import json
+import os
+
+from detectron2.data import DatasetCatalog, MetadataCatalog
+from detectron2.utils.file_io import PathManager
+
+
+MAPILLARY_VISTAS_SEM_SEG_CATEGORIES = [
+ {'color': [165, 42, 42],
+ 'id': 1,
+ 'isthing': 1,
+ 'name': 'Bird',
+ 'supercategory': 'animal--bird'},
+ {'color': [0, 192, 0],
+ 'id': 2,
+ 'isthing': 1,
+ 'name': 'Ground Animal',
+ 'supercategory': 'animal--ground-animal'},
+ {'color': [196, 196, 196],
+ 'id': 3,
+ 'isthing': 0,
+ 'name': 'Curb',
+ 'supercategory': 'construction--barrier--curb'},
+ {'color': [190, 153, 153],
+ 'id': 4,
+ 'isthing': 0,
+ 'name': 'Fence',
+ 'supercategory': 'construction--barrier--fence'},
+ {'color': [180, 165, 180],
+ 'id': 5,
+ 'isthing': 0,
+ 'name': 'Guard Rail',
+ 'supercategory': 'construction--barrier--guard-rail'},
+ {'color': [90, 120, 150],
+ 'id': 6,
+ 'isthing': 0,
+ 'name': 'Barrier',
+ 'supercategory': 'construction--barrier--other-barrier'},
+ {'color': [102, 102, 156],
+ 'id': 7,
+ 'isthing': 0,
+ 'name': 'Wall',
+ 'supercategory': 'construction--barrier--wall'},
+ {'color': [128, 64, 255],
+ 'id': 8,
+ 'isthing': 0,
+ 'name': 'Bike Lane',
+ 'supercategory': 'construction--flat--bike-lane'},
+ {'color': [140, 140, 200],
+ 'id': 9,
+ 'isthing': 1,
+ 'name': 'Crosswalk - Plain',
+ 'supercategory': 'construction--flat--crosswalk-plain'},
+ {'color': [170, 170, 170],
+ 'id': 10,
+ 'isthing': 0,
+ 'name': 'Curb Cut',
+ 'supercategory': 'construction--flat--curb-cut'},
+ {'color': [250, 170, 160],
+ 'id': 11,
+ 'isthing': 0,
+ 'name': 'Parking',
+ 'supercategory': 'construction--flat--parking'},
+ {'color': [96, 96, 96],
+ 'id': 12,
+ 'isthing': 0,
+ 'name': 'Pedestrian Area',
+ 'supercategory': 'construction--flat--pedestrian-area'},
+ {'color': [230, 150, 140],
+ 'id': 13,
+ 'isthing': 0,
+ 'name': 'Rail Track',
+ 'supercategory': 'construction--flat--rail-track'},
+ {'color': [128, 64, 128],
+ 'id': 14,
+ 'isthing': 0,
+ 'name': 'Road',
+ 'supercategory': 'construction--flat--road'},
+ {'color': [110, 110, 110],
+ 'id': 15,
+ 'isthing': 0,
+ 'name': 'Service Lane',
+ 'supercategory': 'construction--flat--service-lane'},
+ {'color': [244, 35, 232],
+ 'id': 16,
+ 'isthing': 0,
+ 'name': 'Sidewalk',
+ 'supercategory': 'construction--flat--sidewalk'},
+ {'color': [150, 100, 100],
+ 'id': 17,
+ 'isthing': 0,
+ 'name': 'Bridge',
+ 'supercategory': 'construction--structure--bridge'},
+ {'color': [70, 70, 70],
+ 'id': 18,
+ 'isthing': 0,
+ 'name': 'Building',
+ 'supercategory': 'construction--structure--building'},
+ {'color': [150, 120, 90],
+ 'id': 19,
+ 'isthing': 0,
+ 'name': 'Tunnel',
+ 'supercategory': 'construction--structure--tunnel'},
+ {'color': [220, 20, 60],
+ 'id': 20,
+ 'isthing': 1,
+ 'name': 'Person',
+ 'supercategory': 'human--person'},
+ {'color': [255, 0, 0],
+ 'id': 21,
+ 'isthing': 1,
+ 'name': 'Bicyclist',
+ 'supercategory': 'human--rider--bicyclist'},
+ {'color': [255, 0, 100],
+ 'id': 22,
+ 'isthing': 1,
+ 'name': 'Motorcyclist',
+ 'supercategory': 'human--rider--motorcyclist'},
+ {'color': [255, 0, 200],
+ 'id': 23,
+ 'isthing': 1,
+ 'name': 'Other Rider',
+ 'supercategory': 'human--rider--other-rider'},
+ {'color': [200, 128, 128],
+ 'id': 24,
+ 'isthing': 1,
+ 'name': 'Lane Marking - Crosswalk',
+ 'supercategory': 'marking--crosswalk-zebra'},
+ {'color': [255, 255, 255],
+ 'id': 25,
+ 'isthing': 0,
+ 'name': 'Lane Marking - General',
+ 'supercategory': 'marking--general'},
+ {'color': [64, 170, 64],
+ 'id': 26,
+ 'isthing': 0,
+ 'name': 'Mountain',
+ 'supercategory': 'nature--mountain'},
+ {'color': [230, 160, 50],
+ 'id': 27,
+ 'isthing': 0,
+ 'name': 'Sand',
+ 'supercategory': 'nature--sand'},
+ {'color': [70, 130, 180],
+ 'id': 28,
+ 'isthing': 0,
+ 'name': 'Sky',
+ 'supercategory': 'nature--sky'},
+ {'color': [190, 255, 255],
+ 'id': 29,
+ 'isthing': 0,
+ 'name': 'Snow',
+ 'supercategory': 'nature--snow'},
+ {'color': [152, 251, 152],
+ 'id': 30,
+ 'isthing': 0,
+ 'name': 'Terrain',
+ 'supercategory': 'nature--terrain'},
+ {'color': [107, 142, 35],
+ 'id': 31,
+ 'isthing': 0,
+ 'name': 'Vegetation',
+ 'supercategory': 'nature--vegetation'},
+ {'color': [0, 170, 30],
+ 'id': 32,
+ 'isthing': 0,
+ 'name': 'Water',
+ 'supercategory': 'nature--water'},
+ {'color': [255, 255, 128],
+ 'id': 33,
+ 'isthing': 1,
+ 'name': 'Banner',
+ 'supercategory': 'object--banner'},
+ {'color': [250, 0, 30],
+ 'id': 34,
+ 'isthing': 1,
+ 'name': 'Bench',
+ 'supercategory': 'object--bench'},
+ {'color': [100, 140, 180],
+ 'id': 35,
+ 'isthing': 1,
+ 'name': 'Bike Rack',
+ 'supercategory': 'object--bike-rack'},
+ {'color': [220, 220, 220],
+ 'id': 36,
+ 'isthing': 1,
+ 'name': 'Billboard',
+ 'supercategory': 'object--billboard'},
+ {'color': [220, 128, 128],
+ 'id': 37,
+ 'isthing': 1,
+ 'name': 'Catch Basin',
+ 'supercategory': 'object--catch-basin'},
+ {'color': [222, 40, 40],
+ 'id': 38,
+ 'isthing': 1,
+ 'name': 'CCTV Camera',
+ 'supercategory': 'object--cctv-camera'},
+ {'color': [100, 170, 30],
+ 'id': 39,
+ 'isthing': 1,
+ 'name': 'Fire Hydrant',
+ 'supercategory': 'object--fire-hydrant'},
+ {'color': [40, 40, 40],
+ 'id': 40,
+ 'isthing': 1,
+ 'name': 'Junction Box',
+ 'supercategory': 'object--junction-box'},
+ {'color': [33, 33, 33],
+ 'id': 41,
+ 'isthing': 1,
+ 'name': 'Mailbox',
+ 'supercategory': 'object--mailbox'},
+ {'color': [100, 128, 160],
+ 'id': 42,
+ 'isthing': 1,
+ 'name': 'Manhole',
+ 'supercategory': 'object--manhole'},
+ {'color': [142, 0, 0],
+ 'id': 43,
+ 'isthing': 1,
+ 'name': 'Phone Booth',
+ 'supercategory': 'object--phone-booth'},
+ {'color': [70, 100, 150],
+ 'id': 44,
+ 'isthing': 0,
+ 'name': 'Pothole',
+ 'supercategory': 'object--pothole'},
+ {'color': [210, 170, 100],
+ 'id': 45,
+ 'isthing': 1,
+ 'name': 'Street Light',
+ 'supercategory': 'object--street-light'},
+ {'color': [153, 153, 153],
+ 'id': 46,
+ 'isthing': 1,
+ 'name': 'Pole',
+ 'supercategory': 'object--support--pole'},
+ {'color': [128, 128, 128],
+ 'id': 47,
+ 'isthing': 1,
+ 'name': 'Traffic Sign Frame',
+ 'supercategory': 'object--support--traffic-sign-frame'},
+ {'color': [0, 0, 80],
+ 'id': 48,
+ 'isthing': 1,
+ 'name': 'Utility Pole',
+ 'supercategory': 'object--support--utility-pole'},
+ {'color': [250, 170, 30],
+ 'id': 49,
+ 'isthing': 1,
+ 'name': 'Traffic Light',
+ 'supercategory': 'object--traffic-light'},
+ {'color': [192, 192, 192],
+ 'id': 50,
+ 'isthing': 1,
+ 'name': 'Traffic Sign (Back)',
+ 'supercategory': 'object--traffic-sign--back'},
+ {'color': [220, 220, 0],
+ 'id': 51,
+ 'isthing': 1,
+ 'name': 'Traffic Sign (Front)',
+ 'supercategory': 'object--traffic-sign--front'},
+ {'color': [140, 140, 20],
+ 'id': 52,
+ 'isthing': 1,
+ 'name': 'Trash Can',
+ 'supercategory': 'object--trash-can'},
+ {'color': [119, 11, 32],
+ 'id': 53,
+ 'isthing': 1,
+ 'name': 'Bicycle',
+ 'supercategory': 'object--vehicle--bicycle'},
+ {'color': [150, 0, 255],
+ 'id': 54,
+ 'isthing': 1,
+ 'name': 'Boat',
+ 'supercategory': 'object--vehicle--boat'},
+ {'color': [0, 60, 100],
+ 'id': 55,
+ 'isthing': 1,
+ 'name': 'Bus',
+ 'supercategory': 'object--vehicle--bus'},
+ {'color': [0, 0, 142],
+ 'id': 56,
+ 'isthing': 1,
+ 'name': 'Car',
+ 'supercategory': 'object--vehicle--car'},
+ {'color': [0, 0, 90],
+ 'id': 57,
+ 'isthing': 1,
+ 'name': 'Caravan',
+ 'supercategory': 'object--vehicle--caravan'},
+ {'color': [0, 0, 230],
+ 'id': 58,
+ 'isthing': 1,
+ 'name': 'Motorcycle',
+ 'supercategory': 'object--vehicle--motorcycle'},
+ {'color': [0, 80, 100],
+ 'id': 59,
+ 'isthing': 0,
+ 'name': 'On Rails',
+ 'supercategory': 'object--vehicle--on-rails'},
+ {'color': [128, 64, 64],
+ 'id': 60,
+ 'isthing': 1,
+ 'name': 'Other Vehicle',
+ 'supercategory': 'object--vehicle--other-vehicle'},
+ {'color': [0, 0, 110],
+ 'id': 61,
+ 'isthing': 1,
+ 'name': 'Trailer',
+ 'supercategory': 'object--vehicle--trailer'},
+ {'color': [0, 0, 70],
+ 'id': 62,
+ 'isthing': 1,
+ 'name': 'Truck',
+ 'supercategory': 'object--vehicle--truck'},
+ {'color': [0, 0, 192],
+ 'id': 63,
+ 'isthing': 1,
+ 'name': 'Wheeled Slow',
+ 'supercategory': 'object--vehicle--wheeled-slow'},
+ {'color': [32, 32, 32],
+ 'id': 64,
+ 'isthing': 0,
+ 'name': 'Car Mount',
+ 'supercategory': 'void--car-mount'},
+ {'color': [120, 10, 10],
+ 'id': 65,
+ 'isthing': 0,
+ 'name': 'Ego Vehicle',
+ 'supercategory': 'void--ego-vehicle'}
+]
+
+
+def load_mapillary_vistas_panoptic_json(json_file, image_dir, gt_dir, semseg_dir, meta):
+ """
+ Args:
+ image_dir (str): path to the raw dataset. e.g., "~/coco/train2017".
+ gt_dir (str): path to the raw annotations. e.g., "~/coco/panoptic_train2017".
+ json_file (str): path to the json file. e.g., "~/coco/annotations/panoptic_train2017.json".
+ Returns:
+ list[dict]: a list of dicts in Detectron2 standard format. (See
+ `Using Custom Datasets `_ )
+ """
+
+ def _convert_category_id(segment_info, meta):
+ if segment_info["category_id"] in meta["thing_dataset_id_to_contiguous_id"]:
+ segment_info["category_id"] = meta["thing_dataset_id_to_contiguous_id"][
+ segment_info["category_id"]
+ ]
+ segment_info["isthing"] = True
+ else:
+ segment_info["category_id"] = meta["stuff_dataset_id_to_contiguous_id"][
+ segment_info["category_id"]
+ ]
+ segment_info["isthing"] = False
+ return segment_info
+
+ with PathManager.open(json_file) as f:
+ json_info = json.load(f)
+
+ ret = []
+ for ann in json_info["annotations"]:
+ image_id = ann["image_id"]
+ # TODO: currently we assume image and label has the same filename but
+ # different extension, and images have extension ".jpg" for COCO. Need
+ # to make image extension a user-provided argument if we extend this
+ # function to support other COCO-like datasets.
+ image_file = os.path.join(image_dir, os.path.splitext(ann["file_name"])[0] + ".jpg")
+ label_file = os.path.join(gt_dir, ann["file_name"])
+ sem_label_file = os.path.join(semseg_dir, ann["file_name"])
+ segments_info = [_convert_category_id(x, meta) for x in ann["segments_info"]]
+ ret.append(
+ {
+ "file_name": image_file,
+ "image_id": image_id,
+ "pan_seg_file_name": label_file,
+ "sem_seg_file_name": sem_label_file,
+ "segments_info": segments_info,
+ }
+ )
+ assert len(ret), f"No images found in {image_dir}!"
+ assert PathManager.isfile(ret[0]["file_name"]), ret[0]["file_name"]
+ assert PathManager.isfile(ret[0]["pan_seg_file_name"]), ret[0]["pan_seg_file_name"]
+ assert PathManager.isfile(ret[0]["sem_seg_file_name"]), ret[0]["sem_seg_file_name"]
+ return ret
+
+
+def register_mapillary_vistas_panoptic(
+ name, metadata, image_root, panoptic_root, semantic_root, panoptic_json, instances_json=None
+):
+ """
+ Register a "standard" version of ADE20k panoptic segmentation dataset named `name`.
+ The dictionaries in this registered dataset follows detectron2's standard format.
+ Hence it's called "standard".
+ Args:
+ name (str): the name that identifies a dataset,
+ e.g. "ade20k_panoptic_train"
+ metadata (dict): extra metadata associated with this dataset.
+ image_root (str): directory which contains all the images
+ panoptic_root (str): directory which contains panoptic annotation images in COCO format
+ panoptic_json (str): path to the json panoptic annotation file in COCO format
+ sem_seg_root (none): not used, to be consistent with
+ `register_coco_panoptic_separated`.
+ instances_json (str): path to the json instance annotation file
+ """
+ panoptic_name = name
+ DatasetCatalog.register(
+ panoptic_name,
+ lambda: load_mapillary_vistas_panoptic_json(
+ panoptic_json, image_root, panoptic_root, semantic_root, metadata
+ ),
+ )
+ MetadataCatalog.get(panoptic_name).set(
+ panoptic_root=panoptic_root,
+ image_root=image_root,
+ panoptic_json=panoptic_json,
+ json_file=instances_json,
+ evaluator_type="mapillary_vistas_panoptic_seg",
+ ignore_label=65, # different from other datasets, Mapillary Vistas sets ignore_label to 65
+ label_divisor=1000,
+ **metadata,
+ )
+
+
+_PREDEFINED_SPLITS_ADE20K_PANOPTIC = {
+ "mapillary_vistas_panoptic_train": (
+ "mapillary_vistas/training/images",
+ "mapillary_vistas/training/panoptic",
+ "mapillary_vistas/training/panoptic/panoptic_2018.json",
+ "mapillary_vistas/training/labels",
+ ),
+ "mapillary_vistas_panoptic_val": (
+ "mapillary_vistas/validation/images",
+ "mapillary_vistas/validation/panoptic",
+ "mapillary_vistas/validation/panoptic/panoptic_2018.json",
+ "mapillary_vistas/validation/labels",
+ ),
+}
+
+
+def get_metadata():
+ meta = {}
+ # The following metadata maps contiguous id from [0, #thing categories +
+ # #stuff categories) to their names and colors. We have to replica of the
+ # same name and color under "thing_*" and "stuff_*" because the current
+ # visualization function in D2 handles thing and class classes differently
+ # due to some heuristic used in Panoptic FPN. We keep the same naming to
+ # enable reusing existing visualization functions.
+ thing_classes = [k["name"] for k in MAPILLARY_VISTAS_SEM_SEG_CATEGORIES]
+ thing_colors = [k["color"] for k in MAPILLARY_VISTAS_SEM_SEG_CATEGORIES]
+ stuff_classes = [k["name"] for k in MAPILLARY_VISTAS_SEM_SEG_CATEGORIES]
+ stuff_colors = [k["color"] for k in MAPILLARY_VISTAS_SEM_SEG_CATEGORIES]
+
+ meta["thing_classes"] = thing_classes
+ meta["thing_colors"] = thing_colors
+ meta["stuff_classes"] = stuff_classes
+ meta["stuff_colors"] = stuff_colors
+
+ # Convert category id for training:
+ # category id: like semantic segmentation, it is the class id for each
+ # pixel. Since there are some classes not used in evaluation, the category
+ # id is not always contiguous and thus we have two set of category ids:
+ # - original category id: category id in the original dataset, mainly
+ # used for evaluation.
+ # - contiguous category id: [0, #classes), in order to train the linear
+ # softmax classifier.
+ thing_dataset_id_to_contiguous_id = {}
+ stuff_dataset_id_to_contiguous_id = {}
+
+ for i, cat in enumerate(MAPILLARY_VISTAS_SEM_SEG_CATEGORIES):
+ if cat["isthing"]:
+ thing_dataset_id_to_contiguous_id[cat["id"]] = i
+ # else:
+ # stuff_dataset_id_to_contiguous_id[cat["id"]] = i
+
+ # in order to use sem_seg evaluator
+ stuff_dataset_id_to_contiguous_id[cat["id"]] = i
+
+ meta["thing_dataset_id_to_contiguous_id"] = thing_dataset_id_to_contiguous_id
+ meta["stuff_dataset_id_to_contiguous_id"] = stuff_dataset_id_to_contiguous_id
+
+ return meta
+
+
+def register_all_mapillary_vistas_panoptic(root):
+ metadata = get_metadata()
+ for (
+ prefix,
+ (image_root, panoptic_root, panoptic_json, semantic_root),
+ ) in _PREDEFINED_SPLITS_ADE20K_PANOPTIC.items():
+ # The "standard" version of COCO panoptic segmentation dataset,
+ # e.g. used by Panoptic-DeepLab
+ register_mapillary_vistas_panoptic(
+ prefix,
+ metadata,
+ os.path.join(root, image_root),
+ os.path.join(root, panoptic_root),
+ os.path.join(root, semantic_root),
+ os.path.join(root, panoptic_json),
+ )
+
+
+_root = os.getenv("DETECTRON2_DATASETS", "datasets")
+register_all_mapillary_vistas_panoptic(_root)
diff --git a/videocutler/mask2former/evaluation/__init__.py b/videocutler/mask2former/evaluation/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/videocutler/mask2former/evaluation/instance_evaluation.py b/videocutler/mask2former/evaluation/instance_evaluation.py
new file mode 100644
index 0000000000000000000000000000000000000000..bc2facec351e5f6ee965ee9acb4394f12c023f54
--- /dev/null
+++ b/videocutler/mask2former/evaluation/instance_evaluation.py
@@ -0,0 +1,107 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import contextlib
+import copy
+import io
+import itertools
+import json
+import logging
+import numpy as np
+import os
+import pickle
+from collections import OrderedDict
+import pycocotools.mask as mask_util
+import torch
+from pycocotools.coco import COCO
+from pycocotools.cocoeval import COCOeval
+from tabulate import tabulate
+
+import detectron2.utils.comm as comm
+from detectron2.config import CfgNode
+from detectron2.data import MetadataCatalog
+from detectron2.data.datasets.coco import convert_to_coco_json
+from detectron2.evaluation.coco_evaluation import COCOEvaluator, _evaluate_predictions_on_coco
+from detectron2.evaluation.fast_eval_api import COCOeval_opt
+from detectron2.structures import Boxes, BoxMode, pairwise_iou
+from detectron2.utils.file_io import PathManager
+from detectron2.utils.logger import create_small_table
+
+
+# modified from COCOEvaluator for instance segmetnat
+class InstanceSegEvaluator(COCOEvaluator):
+ """
+ Evaluate AR for object proposals, AP for instance detection/segmentation, AP
+ for keypoint detection outputs using COCO's metrics.
+ See http://cocodataset.org/#detection-eval and
+ http://cocodataset.org/#keypoints-eval to understand its metrics.
+ The metrics range from 0 to 100 (instead of 0 to 1), where a -1 or NaN means
+ the metric cannot be computed (e.g. due to no predictions made).
+
+ In addition to COCO, this evaluator is able to support any bounding box detection,
+ instance segmentation, or keypoint detection dataset.
+ """
+
+ def _eval_predictions(self, predictions, img_ids=None):
+ """
+ Evaluate predictions. Fill self._results with the metrics of the tasks.
+ """
+ self._logger.info("Preparing results for COCO format ...")
+ coco_results = list(itertools.chain(*[x["instances"] for x in predictions]))
+ tasks = self._tasks or self._tasks_from_predictions(coco_results)
+
+ # unmap the category ids for COCO
+ if hasattr(self._metadata, "thing_dataset_id_to_contiguous_id"):
+ dataset_id_to_contiguous_id = self._metadata.thing_dataset_id_to_contiguous_id
+ # all_contiguous_ids = list(dataset_id_to_contiguous_id.values())
+ # num_classes = len(all_contiguous_ids)
+ # assert min(all_contiguous_ids) == 0 and max(all_contiguous_ids) == num_classes - 1
+
+ reverse_id_mapping = {v: k for k, v in dataset_id_to_contiguous_id.items()}
+ for result in coco_results:
+ category_id = result["category_id"]
+ # assert category_id < num_classes, (
+ # f"A prediction has class={category_id}, "
+ # f"but the dataset only has {num_classes} classes and "
+ # f"predicted class id should be in [0, {num_classes - 1}]."
+ # )
+ assert category_id in reverse_id_mapping, (
+ f"A prediction has class={category_id}, "
+ f"but the dataset only has class ids in {dataset_id_to_contiguous_id}."
+ )
+ result["category_id"] = reverse_id_mapping[category_id]
+
+ if self._output_dir:
+ file_path = os.path.join(self._output_dir, "coco_instances_results.json")
+ self._logger.info("Saving results to {}".format(file_path))
+ with PathManager.open(file_path, "w") as f:
+ f.write(json.dumps(coco_results))
+ f.flush()
+
+ if not self._do_evaluation:
+ self._logger.info("Annotations are not available for evaluation.")
+ return
+
+ self._logger.info(
+ "Evaluating predictions with {} COCO API...".format(
+ "unofficial" if self._use_fast_impl else "official"
+ )
+ )
+ for task in sorted(tasks):
+ assert task in {"bbox", "segm", "keypoints"}, f"Got unknown task: {task}!"
+ coco_eval = (
+ _evaluate_predictions_on_coco(
+ self._coco_api,
+ coco_results,
+ task,
+ kpt_oks_sigmas=self._kpt_oks_sigmas,
+ use_fast_impl=self._use_fast_impl,
+ img_ids=img_ids,
+ max_dets_per_image=self._max_dets_per_image,
+ )
+ if len(coco_results) > 0
+ else None # cocoapi does not handle empty results very well
+ )
+
+ res = self._derive_coco_results(
+ coco_eval, task, class_names=self._metadata.get("thing_classes")
+ )
+ self._results[task] = res
diff --git a/videocutler/mask2former/maskformer_model.py b/videocutler/mask2former/maskformer_model.py
new file mode 100644
index 0000000000000000000000000000000000000000..a73fe5b9f7eee40e6702b527b8680eca04a0c2f2
--- /dev/null
+++ b/videocutler/mask2former/maskformer_model.py
@@ -0,0 +1,381 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+from typing import Tuple
+
+import torch
+from torch import nn
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.data import MetadataCatalog
+from detectron2.modeling import META_ARCH_REGISTRY, build_backbone, build_sem_seg_head
+from detectron2.modeling.backbone import Backbone
+from detectron2.modeling.postprocessing import sem_seg_postprocess
+from detectron2.structures import Boxes, ImageList, Instances, BitMasks
+from detectron2.utils.memory import retry_if_cuda_oom
+
+from .modeling.criterion import SetCriterion
+from .modeling.matcher import HungarianMatcher
+
+
+@META_ARCH_REGISTRY.register()
+class MaskFormer(nn.Module):
+ """
+ Main class for mask classification semantic segmentation architectures.
+ """
+
+ @configurable
+ def __init__(
+ self,
+ *,
+ backbone: Backbone,
+ sem_seg_head: nn.Module,
+ criterion: nn.Module,
+ num_queries: int,
+ object_mask_threshold: float,
+ overlap_threshold: float,
+ metadata,
+ size_divisibility: int,
+ sem_seg_postprocess_before_inference: bool,
+ pixel_mean: Tuple[float],
+ pixel_std: Tuple[float],
+ # inference
+ semantic_on: bool,
+ panoptic_on: bool,
+ instance_on: bool,
+ test_topk_per_image: int,
+ ):
+ """
+ Args:
+ backbone: a backbone module, must follow detectron2's backbone interface
+ sem_seg_head: a module that predicts semantic segmentation from backbone features
+ criterion: a module that defines the loss
+ num_queries: int, number of queries
+ object_mask_threshold: float, threshold to filter query based on classification score
+ for panoptic segmentation inference
+ overlap_threshold: overlap threshold used in general inference for panoptic segmentation
+ metadata: dataset meta, get `thing` and `stuff` category names for panoptic
+ segmentation inference
+ size_divisibility: Some backbones require the input height and width to be divisible by a
+ specific integer. We can use this to override such requirement.
+ sem_seg_postprocess_before_inference: whether to resize the prediction back
+ to original input size before semantic segmentation inference or after.
+ For high-resolution dataset like Mapillary, resizing predictions before
+ inference will cause OOM error.
+ pixel_mean, pixel_std: list or tuple with #channels element, representing
+ the per-channel mean and std to be used to normalize the input image
+ semantic_on: bool, whether to output semantic segmentation prediction
+ instance_on: bool, whether to output instance segmentation prediction
+ panoptic_on: bool, whether to output panoptic segmentation prediction
+ test_topk_per_image: int, instance segmentation parameter, keep topk instances per image
+ """
+ super().__init__()
+ self.backbone = backbone
+ self.sem_seg_head = sem_seg_head
+ self.criterion = criterion
+ self.num_queries = num_queries
+ self.overlap_threshold = overlap_threshold
+ self.object_mask_threshold = object_mask_threshold
+ self.metadata = metadata
+ if size_divisibility < 0:
+ # use backbone size_divisibility if not set
+ size_divisibility = self.backbone.size_divisibility
+ self.size_divisibility = size_divisibility
+ self.sem_seg_postprocess_before_inference = sem_seg_postprocess_before_inference
+ self.register_buffer("pixel_mean", torch.Tensor(pixel_mean).view(-1, 1, 1), False)
+ self.register_buffer("pixel_std", torch.Tensor(pixel_std).view(-1, 1, 1), False)
+
+ # additional args
+ self.semantic_on = semantic_on
+ self.instance_on = instance_on
+ self.panoptic_on = panoptic_on
+ self.test_topk_per_image = test_topk_per_image
+
+ if not self.semantic_on:
+ assert self.sem_seg_postprocess_before_inference
+
+ @classmethod
+ def from_config(cls, cfg):
+ backbone = build_backbone(cfg)
+ sem_seg_head = build_sem_seg_head(cfg, backbone.output_shape())
+
+ # Loss parameters:
+ deep_supervision = cfg.MODEL.MASK_FORMER.DEEP_SUPERVISION
+ no_object_weight = cfg.MODEL.MASK_FORMER.NO_OBJECT_WEIGHT
+
+ # loss weights
+ class_weight = cfg.MODEL.MASK_FORMER.CLASS_WEIGHT
+ dice_weight = cfg.MODEL.MASK_FORMER.DICE_WEIGHT
+ mask_weight = cfg.MODEL.MASK_FORMER.MASK_WEIGHT
+
+ # building criterion
+ matcher = HungarianMatcher(
+ cost_class=class_weight,
+ cost_mask=mask_weight,
+ cost_dice=dice_weight,
+ num_points=cfg.MODEL.MASK_FORMER.TRAIN_NUM_POINTS,
+ thresh=cfg.MODEL.MASK_FORMER.POSITIVE_BANK_IOU_THRESH,
+ )
+
+ weight_dict = {"loss_ce": class_weight, "loss_mask": mask_weight, "loss_dice": dice_weight}
+
+ if deep_supervision:
+ dec_layers = cfg.MODEL.MASK_FORMER.DEC_LAYERS
+ aux_weight_dict = {}
+ for i in range(dec_layers - 1):
+ aux_weight_dict.update({k + f"_{i}": v for k, v in weight_dict.items()})
+ weight_dict.update(aux_weight_dict)
+
+ losses = ["labels", "masks"]
+
+ criterion = SetCriterion(
+ sem_seg_head.num_classes,
+ matcher=matcher,
+ weight_dict=weight_dict,
+ eos_coef=no_object_weight,
+ losses=losses,
+ num_points=cfg.MODEL.MASK_FORMER.TRAIN_NUM_POINTS,
+ oversample_ratio=cfg.MODEL.MASK_FORMER.OVERSAMPLE_RATIO,
+ importance_sample_ratio=cfg.MODEL.MASK_FORMER.IMPORTANCE_SAMPLE_RATIO,
+ )
+
+ return {
+ "backbone": backbone,
+ "sem_seg_head": sem_seg_head,
+ "criterion": criterion,
+ "num_queries": cfg.MODEL.MASK_FORMER.NUM_OBJECT_QUERIES,
+ "object_mask_threshold": cfg.MODEL.MASK_FORMER.TEST.OBJECT_MASK_THRESHOLD,
+ "overlap_threshold": cfg.MODEL.MASK_FORMER.TEST.OVERLAP_THRESHOLD,
+ "metadata": MetadataCatalog.get(cfg.DATASETS.TRAIN[0]),
+ "size_divisibility": cfg.MODEL.MASK_FORMER.SIZE_DIVISIBILITY,
+ "sem_seg_postprocess_before_inference": (
+ cfg.MODEL.MASK_FORMER.TEST.SEM_SEG_POSTPROCESSING_BEFORE_INFERENCE
+ or cfg.MODEL.MASK_FORMER.TEST.PANOPTIC_ON
+ or cfg.MODEL.MASK_FORMER.TEST.INSTANCE_ON
+ ),
+ "pixel_mean": cfg.MODEL.PIXEL_MEAN,
+ "pixel_std": cfg.MODEL.PIXEL_STD,
+ # inference
+ "semantic_on": cfg.MODEL.MASK_FORMER.TEST.SEMANTIC_ON,
+ "instance_on": cfg.MODEL.MASK_FORMER.TEST.INSTANCE_ON,
+ "panoptic_on": cfg.MODEL.MASK_FORMER.TEST.PANOPTIC_ON,
+ "test_topk_per_image": cfg.TEST.DETECTIONS_PER_IMAGE,
+ }
+
+ @property
+ def device(self):
+ return self.pixel_mean.device
+
+ def forward(self, batched_inputs):
+ """
+ Args:
+ batched_inputs: a list, batched outputs of :class:`DatasetMapper`.
+ Each item in the list contains the inputs for one image.
+ For now, each item in the list is a dict that contains:
+ * "image": Tensor, image in (C, H, W) format.
+ * "instances": per-region ground truth
+ * Other information that's included in the original dicts, such as:
+ "height", "width" (int): the output resolution of the model (may be different
+ from input resolution), used in inference.
+ Returns:
+ list[dict]:
+ each dict has the results for one image. The dict contains the following keys:
+
+ * "sem_seg":
+ A Tensor that represents the
+ per-pixel segmentation prediced by the head.
+ The prediction has shape KxHxW that represents the logits of
+ each class for each pixel.
+ * "panoptic_seg":
+ A tuple that represent panoptic output
+ panoptic_seg (Tensor): of shape (height, width) where the values are ids for each segment.
+ segments_info (list[dict]): Describe each segment in `panoptic_seg`.
+ Each dict contains keys "id", "category_id", "isthing".
+ """
+ images = [x["image"].to(self.device) for x in batched_inputs]
+ images = [(x - self.pixel_mean) / self.pixel_std for x in images]
+ images = ImageList.from_tensors(images, self.size_divisibility)
+
+ features = self.backbone(images.tensor)
+ outputs = self.sem_seg_head(features)
+
+ if self.training:
+ # mask classification target
+ if "instances" in batched_inputs[0]:
+ gt_instances = [x["instances"].to(self.device) for x in batched_inputs]
+ targets = self.prepare_targets(gt_instances, images)
+ else:
+ targets = None
+
+ # bipartite matching-based loss
+ losses = self.criterion(outputs, targets)
+
+ for k in list(losses.keys()):
+ if k in self.criterion.weight_dict:
+ losses[k] *= self.criterion.weight_dict[k]
+ else:
+ # remove this loss if not specified in `weight_dict`
+ losses.pop(k)
+ return losses
+ else:
+ mask_cls_results = outputs["pred_logits"]
+ mask_pred_results = outputs["pred_masks"]
+ # upsample masks
+ mask_pred_results = F.interpolate(
+ mask_pred_results,
+ size=(images.tensor.shape[-2], images.tensor.shape[-1]),
+ mode="bilinear",
+ align_corners=False,
+ )
+
+ del outputs
+
+ processed_results = []
+ for mask_cls_result, mask_pred_result, input_per_image, image_size in zip(
+ mask_cls_results, mask_pred_results, batched_inputs, images.image_sizes
+ ):
+ height = input_per_image.get("height", image_size[0])
+ width = input_per_image.get("width", image_size[1])
+ processed_results.append({})
+
+ if self.sem_seg_postprocess_before_inference:
+ mask_pred_result = retry_if_cuda_oom(sem_seg_postprocess)(
+ mask_pred_result, image_size, height, width
+ )
+ mask_cls_result = mask_cls_result.to(mask_pred_result)
+
+ # semantic segmentation inference
+ if self.semantic_on:
+ r = retry_if_cuda_oom(self.semantic_inference)(mask_cls_result, mask_pred_result)
+ if not self.sem_seg_postprocess_before_inference:
+ r = retry_if_cuda_oom(sem_seg_postprocess)(r, image_size, height, width)
+ processed_results[-1]["sem_seg"] = r
+
+ # panoptic segmentation inference
+ if self.panoptic_on:
+ panoptic_r = retry_if_cuda_oom(self.panoptic_inference)(mask_cls_result, mask_pred_result)
+ processed_results[-1]["panoptic_seg"] = panoptic_r
+
+ # instance segmentation inference
+ if self.instance_on:
+ instance_r = retry_if_cuda_oom(self.instance_inference)(mask_cls_result, mask_pred_result)
+ processed_results[-1]["instances"] = instance_r
+
+ return processed_results
+
+ def prepare_targets(self, targets, images):
+ h_pad, w_pad = images.tensor.shape[-2:]
+ new_targets = []
+ for targets_per_image in targets:
+ # pad gt
+ gt_masks = targets_per_image.gt_masks
+ padded_masks = torch.zeros((gt_masks.shape[0], h_pad, w_pad), dtype=gt_masks.dtype, device=gt_masks.device)
+ padded_masks[:, : gt_masks.shape[1], : gt_masks.shape[2]] = gt_masks
+ new_targets.append(
+ {
+ "labels": targets_per_image.gt_classes,
+ "masks": padded_masks,
+ }
+ )
+ return new_targets
+
+ def semantic_inference(self, mask_cls, mask_pred):
+ mask_cls = F.softmax(mask_cls, dim=-1)[..., :-1]
+ mask_pred = mask_pred.sigmoid()
+ semseg = torch.einsum("qc,qhw->chw", mask_cls, mask_pred)
+ return semseg
+
+ def panoptic_inference(self, mask_cls, mask_pred):
+ scores, labels = F.softmax(mask_cls, dim=-1).max(-1)
+ mask_pred = mask_pred.sigmoid()
+
+ keep = labels.ne(self.sem_seg_head.num_classes) & (scores > self.object_mask_threshold)
+ cur_scores = scores[keep]
+ cur_classes = labels[keep]
+ cur_masks = mask_pred[keep]
+ cur_mask_cls = mask_cls[keep]
+ cur_mask_cls = cur_mask_cls[:, :-1]
+
+ cur_prob_masks = cur_scores.view(-1, 1, 1) * cur_masks
+
+ h, w = cur_masks.shape[-2:]
+ panoptic_seg = torch.zeros((h, w), dtype=torch.int32, device=cur_masks.device)
+ segments_info = []
+
+ current_segment_id = 0
+
+ if cur_masks.shape[0] == 0:
+ # We didn't detect any mask :(
+ return panoptic_seg, segments_info
+ else:
+ # take argmax
+ cur_mask_ids = cur_prob_masks.argmax(0)
+ stuff_memory_list = {}
+ for k in range(cur_classes.shape[0]):
+ pred_class = cur_classes[k].item()
+ isthing = pred_class in self.metadata.thing_dataset_id_to_contiguous_id.values()
+ mask_area = (cur_mask_ids == k).sum().item()
+ original_area = (cur_masks[k] >= 0.5).sum().item()
+ mask = (cur_mask_ids == k) & (cur_masks[k] >= 0.5)
+
+ if mask_area > 0 and original_area > 0 and mask.sum().item() > 0:
+ if mask_area / original_area < self.overlap_threshold:
+ continue
+
+ # merge stuff regions
+ if not isthing:
+ if int(pred_class) in stuff_memory_list.keys():
+ panoptic_seg[mask] = stuff_memory_list[int(pred_class)]
+ continue
+ else:
+ stuff_memory_list[int(pred_class)] = current_segment_id + 1
+
+ current_segment_id += 1
+ panoptic_seg[mask] = current_segment_id
+
+ segments_info.append(
+ {
+ "id": current_segment_id,
+ "isthing": bool(isthing),
+ "category_id": int(pred_class),
+ }
+ )
+
+ return panoptic_seg, segments_info
+
+ def instance_inference(self, mask_cls, mask_pred):
+ # mask_pred is already processed to have the same shape as original input
+ image_size = mask_pred.shape[-2:]
+
+ # [Q, K]
+ scores = F.softmax(mask_cls, dim=-1)[:, :-1]
+ labels = torch.arange(self.sem_seg_head.num_classes, device=self.device).unsqueeze(0).repeat(self.num_queries, 1).flatten(0, 1)
+ # scores_per_image, topk_indices = scores.flatten(0, 1).topk(self.num_queries, sorted=False)
+ scores_per_image, topk_indices = scores.flatten(0, 1).topk(self.test_topk_per_image, sorted=False)
+ labels_per_image = labels[topk_indices]
+
+ topk_indices = topk_indices // self.sem_seg_head.num_classes
+ # mask_pred = mask_pred.unsqueeze(1).repeat(1, self.sem_seg_head.num_classes, 1).flatten(0, 1)
+ mask_pred = mask_pred[topk_indices]
+
+ # if this is panoptic segmentation, we only keep the "thing" classes
+ if self.panoptic_on:
+ keep = torch.zeros_like(scores_per_image).bool()
+ for i, lab in enumerate(labels_per_image):
+ keep[i] = lab in self.metadata.thing_dataset_id_to_contiguous_id.values()
+
+ scores_per_image = scores_per_image[keep]
+ labels_per_image = labels_per_image[keep]
+ mask_pred = mask_pred[keep]
+
+ result = Instances(image_size)
+ # mask (before sigmoid)
+ result.pred_masks = (mask_pred > 0).float()
+ result.pred_boxes = Boxes(torch.zeros(mask_pred.size(0), 4))
+ # Uncomment the following to get boxes from masks (this is slow)
+ # result.pred_boxes = BitMasks(mask_pred > 0).get_bounding_boxes()
+
+ # calculate average mask prob
+ mask_scores_per_image = (mask_pred.sigmoid().flatten(1) * result.pred_masks.flatten(1)).sum(1) / (result.pred_masks.flatten(1).sum(1) + 1e-6)
+ result.scores = scores_per_image * mask_scores_per_image
+ result.pred_classes = labels_per_image
+ return result
diff --git a/videocutler/mask2former/modeling/__init__.py b/videocutler/mask2former/modeling/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..7aed7beac4a880371b14b368f64227a0d129e7c7
--- /dev/null
+++ b/videocutler/mask2former/modeling/__init__.py
@@ -0,0 +1,6 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+from .backbone.swin import D2SwinTransformer
+from .pixel_decoder.fpn import BasePixelDecoder
+from .pixel_decoder.msdeformattn import MSDeformAttnPixelDecoder
+from .meta_arch.mask_former_head import MaskFormerHead
+from .meta_arch.per_pixel_baseline import PerPixelBaselineHead, PerPixelBaselinePlusHead
diff --git a/videocutler/mask2former/modeling/backbone/__init__.py b/videocutler/mask2former/modeling/backbone/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9020c2df23e2af280b7bb168b996ae9eaf312eb8
--- /dev/null
+++ b/videocutler/mask2former/modeling/backbone/__init__.py
@@ -0,0 +1 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/videocutler/mask2former/modeling/backbone/swin.py b/videocutler/mask2former/modeling/backbone/swin.py
new file mode 100644
index 0000000000000000000000000000000000000000..3b099d84396ac31d22881e5b6c9e53d2d0abaef3
--- /dev/null
+++ b/videocutler/mask2former/modeling/backbone/swin.py
@@ -0,0 +1,770 @@
+# --------------------------------------------------------
+# Swin Transformer
+# Copyright (c) 2021 Microsoft
+# Licensed under The MIT License [see LICENSE for details]
+# Written by Ze Liu, Yutong Lin, Yixuan Wei
+# --------------------------------------------------------
+
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/SwinTransformer/Swin-Transformer-Semantic-Segmentation/blob/main/mmseg/models/backbones/swin_transformer.py
+
+import numpy as np
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+import torch.utils.checkpoint as checkpoint
+from timm.models.layers import DropPath, to_2tuple, trunc_normal_
+
+from detectron2.modeling import BACKBONE_REGISTRY, Backbone, ShapeSpec
+
+
+class Mlp(nn.Module):
+ """Multilayer perceptron."""
+
+ def __init__(
+ self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.0
+ ):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+
+ def forward(self, x):
+ x = self.fc1(x)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+def window_partition(x, window_size):
+ """
+ Args:
+ x: (B, H, W, C)
+ window_size (int): window size
+ Returns:
+ windows: (num_windows*B, window_size, window_size, C)
+ """
+ B, H, W, C = x.shape
+ x = x.view(B, H // window_size, window_size, W // window_size, window_size, C)
+ windows = x.permute(0, 1, 3, 2, 4, 5).contiguous().view(-1, window_size, window_size, C)
+ return windows
+
+
+def window_reverse(windows, window_size, H, W):
+ """
+ Args:
+ windows: (num_windows*B, window_size, window_size, C)
+ window_size (int): Window size
+ H (int): Height of image
+ W (int): Width of image
+ Returns:
+ x: (B, H, W, C)
+ """
+ B = int(windows.shape[0] / (H * W / window_size / window_size))
+ x = windows.view(B, H // window_size, W // window_size, window_size, window_size, -1)
+ x = x.permute(0, 1, 3, 2, 4, 5).contiguous().view(B, H, W, -1)
+ return x
+
+
+class WindowAttention(nn.Module):
+ """Window based multi-head self attention (W-MSA) module with relative position bias.
+ It supports both of shifted and non-shifted window.
+ Args:
+ dim (int): Number of input channels.
+ window_size (tuple[int]): The height and width of the window.
+ num_heads (int): Number of attention heads.
+ qkv_bias (bool, optional): If True, add a learnable bias to query, key, value. Default: True
+ qk_scale (float | None, optional): Override default qk scale of head_dim ** -0.5 if set
+ attn_drop (float, optional): Dropout ratio of attention weight. Default: 0.0
+ proj_drop (float, optional): Dropout ratio of output. Default: 0.0
+ """
+
+ def __init__(
+ self,
+ dim,
+ window_size,
+ num_heads,
+ qkv_bias=True,
+ qk_scale=None,
+ attn_drop=0.0,
+ proj_drop=0.0,
+ ):
+
+ super().__init__()
+ self.dim = dim
+ self.window_size = window_size # Wh, Ww
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ # define a parameter table of relative position bias
+ self.relative_position_bias_table = nn.Parameter(
+ torch.zeros((2 * window_size[0] - 1) * (2 * window_size[1] - 1), num_heads)
+ ) # 2*Wh-1 * 2*Ww-1, nH
+
+ # get pair-wise relative position index for each token inside the window
+ coords_h = torch.arange(self.window_size[0])
+ coords_w = torch.arange(self.window_size[1])
+ coords = torch.stack(torch.meshgrid([coords_h, coords_w])) # 2, Wh, Ww
+ coords_flatten = torch.flatten(coords, 1) # 2, Wh*Ww
+ relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :] # 2, Wh*Ww, Wh*Ww
+ relative_coords = relative_coords.permute(1, 2, 0).contiguous() # Wh*Ww, Wh*Ww, 2
+ relative_coords[:, :, 0] += self.window_size[0] - 1 # shift to start from 0
+ relative_coords[:, :, 1] += self.window_size[1] - 1
+ relative_coords[:, :, 0] *= 2 * self.window_size[1] - 1
+ relative_position_index = relative_coords.sum(-1) # Wh*Ww, Wh*Ww
+ self.register_buffer("relative_position_index", relative_position_index)
+
+ self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ trunc_normal_(self.relative_position_bias_table, std=0.02)
+ self.softmax = nn.Softmax(dim=-1)
+
+ def forward(self, x, mask=None):
+ """Forward function.
+ Args:
+ x: input features with shape of (num_windows*B, N, C)
+ mask: (0/-inf) mask with shape of (num_windows, Wh*Ww, Wh*Ww) or None
+ """
+ B_, N, C = x.shape
+ qkv = (
+ self.qkv(x)
+ .reshape(B_, N, 3, self.num_heads, C // self.num_heads)
+ .permute(2, 0, 3, 1, 4)
+ )
+ q, k, v = qkv[0], qkv[1], qkv[2] # make torchscript happy (cannot use tensor as tuple)
+
+ q = q * self.scale
+ attn = q @ k.transpose(-2, -1)
+
+ relative_position_bias = self.relative_position_bias_table[
+ self.relative_position_index.view(-1)
+ ].view(
+ self.window_size[0] * self.window_size[1], self.window_size[0] * self.window_size[1], -1
+ ) # Wh*Ww,Wh*Ww,nH
+ relative_position_bias = relative_position_bias.permute(
+ 2, 0, 1
+ ).contiguous() # nH, Wh*Ww, Wh*Ww
+ attn = attn + relative_position_bias.unsqueeze(0)
+
+ if mask is not None:
+ nW = mask.shape[0]
+ attn = attn.view(B_ // nW, nW, self.num_heads, N, N) + mask.unsqueeze(1).unsqueeze(0)
+ attn = attn.view(-1, self.num_heads, N, N)
+ attn = self.softmax(attn)
+ else:
+ attn = self.softmax(attn)
+
+ attn = self.attn_drop(attn)
+
+ x = (attn @ v).transpose(1, 2).reshape(B_, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+ return x
+
+
+class SwinTransformerBlock(nn.Module):
+ """Swin Transformer Block.
+ Args:
+ dim (int): Number of input channels.
+ num_heads (int): Number of attention heads.
+ window_size (int): Window size.
+ shift_size (int): Shift size for SW-MSA.
+ mlp_ratio (float): Ratio of mlp hidden dim to embedding dim.
+ qkv_bias (bool, optional): If True, add a learnable bias to query, key, value. Default: True
+ qk_scale (float | None, optional): Override default qk scale of head_dim ** -0.5 if set.
+ drop (float, optional): Dropout rate. Default: 0.0
+ attn_drop (float, optional): Attention dropout rate. Default: 0.0
+ drop_path (float, optional): Stochastic depth rate. Default: 0.0
+ act_layer (nn.Module, optional): Activation layer. Default: nn.GELU
+ norm_layer (nn.Module, optional): Normalization layer. Default: nn.LayerNorm
+ """
+
+ def __init__(
+ self,
+ dim,
+ num_heads,
+ window_size=7,
+ shift_size=0,
+ mlp_ratio=4.0,
+ qkv_bias=True,
+ qk_scale=None,
+ drop=0.0,
+ attn_drop=0.0,
+ drop_path=0.0,
+ act_layer=nn.GELU,
+ norm_layer=nn.LayerNorm,
+ ):
+ super().__init__()
+ self.dim = dim
+ self.num_heads = num_heads
+ self.window_size = window_size
+ self.shift_size = shift_size
+ self.mlp_ratio = mlp_ratio
+ assert 0 <= self.shift_size < self.window_size, "shift_size must in 0-window_size"
+
+ self.norm1 = norm_layer(dim)
+ self.attn = WindowAttention(
+ dim,
+ window_size=to_2tuple(self.window_size),
+ num_heads=num_heads,
+ qkv_bias=qkv_bias,
+ qk_scale=qk_scale,
+ attn_drop=attn_drop,
+ proj_drop=drop,
+ )
+
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = Mlp(
+ in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop
+ )
+
+ self.H = None
+ self.W = None
+
+ def forward(self, x, mask_matrix):
+ """Forward function.
+ Args:
+ x: Input feature, tensor size (B, H*W, C).
+ H, W: Spatial resolution of the input feature.
+ mask_matrix: Attention mask for cyclic shift.
+ """
+ B, L, C = x.shape
+ H, W = self.H, self.W
+ assert L == H * W, "input feature has wrong size"
+
+ shortcut = x
+ x = self.norm1(x)
+ x = x.view(B, H, W, C)
+
+ # pad feature maps to multiples of window size
+ pad_l = pad_t = 0
+ pad_r = (self.window_size - W % self.window_size) % self.window_size
+ pad_b = (self.window_size - H % self.window_size) % self.window_size
+ x = F.pad(x, (0, 0, pad_l, pad_r, pad_t, pad_b))
+ _, Hp, Wp, _ = x.shape
+
+ # cyclic shift
+ if self.shift_size > 0:
+ shifted_x = torch.roll(x, shifts=(-self.shift_size, -self.shift_size), dims=(1, 2))
+ attn_mask = mask_matrix
+ else:
+ shifted_x = x
+ attn_mask = None
+
+ # partition windows
+ x_windows = window_partition(
+ shifted_x, self.window_size
+ ) # nW*B, window_size, window_size, C
+ x_windows = x_windows.view(
+ -1, self.window_size * self.window_size, C
+ ) # nW*B, window_size*window_size, C
+
+ # W-MSA/SW-MSA
+ attn_windows = self.attn(x_windows, mask=attn_mask) # nW*B, window_size*window_size, C
+
+ # merge windows
+ attn_windows = attn_windows.view(-1, self.window_size, self.window_size, C)
+ shifted_x = window_reverse(attn_windows, self.window_size, Hp, Wp) # B H' W' C
+
+ # reverse cyclic shift
+ if self.shift_size > 0:
+ x = torch.roll(shifted_x, shifts=(self.shift_size, self.shift_size), dims=(1, 2))
+ else:
+ x = shifted_x
+
+ if pad_r > 0 or pad_b > 0:
+ x = x[:, :H, :W, :].contiguous()
+
+ x = x.view(B, H * W, C)
+
+ # FFN
+ x = shortcut + self.drop_path(x)
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+
+ return x
+
+
+class PatchMerging(nn.Module):
+ """Patch Merging Layer
+ Args:
+ dim (int): Number of input channels.
+ norm_layer (nn.Module, optional): Normalization layer. Default: nn.LayerNorm
+ """
+
+ def __init__(self, dim, norm_layer=nn.LayerNorm):
+ super().__init__()
+ self.dim = dim
+ self.reduction = nn.Linear(4 * dim, 2 * dim, bias=False)
+ self.norm = norm_layer(4 * dim)
+
+ def forward(self, x, H, W):
+ """Forward function.
+ Args:
+ x: Input feature, tensor size (B, H*W, C).
+ H, W: Spatial resolution of the input feature.
+ """
+ B, L, C = x.shape
+ assert L == H * W, "input feature has wrong size"
+
+ x = x.view(B, H, W, C)
+
+ # padding
+ pad_input = (H % 2 == 1) or (W % 2 == 1)
+ if pad_input:
+ x = F.pad(x, (0, 0, 0, W % 2, 0, H % 2))
+
+ x0 = x[:, 0::2, 0::2, :] # B H/2 W/2 C
+ x1 = x[:, 1::2, 0::2, :] # B H/2 W/2 C
+ x2 = x[:, 0::2, 1::2, :] # B H/2 W/2 C
+ x3 = x[:, 1::2, 1::2, :] # B H/2 W/2 C
+ x = torch.cat([x0, x1, x2, x3], -1) # B H/2 W/2 4*C
+ x = x.view(B, -1, 4 * C) # B H/2*W/2 4*C
+
+ x = self.norm(x)
+ x = self.reduction(x)
+
+ return x
+
+
+class BasicLayer(nn.Module):
+ """A basic Swin Transformer layer for one stage.
+ Args:
+ dim (int): Number of feature channels
+ depth (int): Depths of this stage.
+ num_heads (int): Number of attention head.
+ window_size (int): Local window size. Default: 7.
+ mlp_ratio (float): Ratio of mlp hidden dim to embedding dim. Default: 4.
+ qkv_bias (bool, optional): If True, add a learnable bias to query, key, value. Default: True
+ qk_scale (float | None, optional): Override default qk scale of head_dim ** -0.5 if set.
+ drop (float, optional): Dropout rate. Default: 0.0
+ attn_drop (float, optional): Attention dropout rate. Default: 0.0
+ drop_path (float | tuple[float], optional): Stochastic depth rate. Default: 0.0
+ norm_layer (nn.Module, optional): Normalization layer. Default: nn.LayerNorm
+ downsample (nn.Module | None, optional): Downsample layer at the end of the layer. Default: None
+ use_checkpoint (bool): Whether to use checkpointing to save memory. Default: False.
+ """
+
+ def __init__(
+ self,
+ dim,
+ depth,
+ num_heads,
+ window_size=7,
+ mlp_ratio=4.0,
+ qkv_bias=True,
+ qk_scale=None,
+ drop=0.0,
+ attn_drop=0.0,
+ drop_path=0.0,
+ norm_layer=nn.LayerNorm,
+ downsample=None,
+ use_checkpoint=False,
+ ):
+ super().__init__()
+ self.window_size = window_size
+ self.shift_size = window_size // 2
+ self.depth = depth
+ self.use_checkpoint = use_checkpoint
+
+ # build blocks
+ self.blocks = nn.ModuleList(
+ [
+ SwinTransformerBlock(
+ dim=dim,
+ num_heads=num_heads,
+ window_size=window_size,
+ shift_size=0 if (i % 2 == 0) else window_size // 2,
+ mlp_ratio=mlp_ratio,
+ qkv_bias=qkv_bias,
+ qk_scale=qk_scale,
+ drop=drop,
+ attn_drop=attn_drop,
+ drop_path=drop_path[i] if isinstance(drop_path, list) else drop_path,
+ norm_layer=norm_layer,
+ )
+ for i in range(depth)
+ ]
+ )
+
+ # patch merging layer
+ if downsample is not None:
+ self.downsample = downsample(dim=dim, norm_layer=norm_layer)
+ else:
+ self.downsample = None
+
+ def forward(self, x, H, W):
+ """Forward function.
+ Args:
+ x: Input feature, tensor size (B, H*W, C).
+ H, W: Spatial resolution of the input feature.
+ """
+
+ # calculate attention mask for SW-MSA
+ Hp = int(np.ceil(H / self.window_size)) * self.window_size
+ Wp = int(np.ceil(W / self.window_size)) * self.window_size
+ img_mask = torch.zeros((1, Hp, Wp, 1), device=x.device) # 1 Hp Wp 1
+ h_slices = (
+ slice(0, -self.window_size),
+ slice(-self.window_size, -self.shift_size),
+ slice(-self.shift_size, None),
+ )
+ w_slices = (
+ slice(0, -self.window_size),
+ slice(-self.window_size, -self.shift_size),
+ slice(-self.shift_size, None),
+ )
+ cnt = 0
+ for h in h_slices:
+ for w in w_slices:
+ img_mask[:, h, w, :] = cnt
+ cnt += 1
+
+ mask_windows = window_partition(
+ img_mask, self.window_size
+ ) # nW, window_size, window_size, 1
+ mask_windows = mask_windows.view(-1, self.window_size * self.window_size)
+ attn_mask = mask_windows.unsqueeze(1) - mask_windows.unsqueeze(2)
+ attn_mask = attn_mask.masked_fill(attn_mask != 0, float(-100.0)).masked_fill(
+ attn_mask == 0, float(0.0)
+ )
+
+ for blk in self.blocks:
+ blk.H, blk.W = H, W
+ if self.use_checkpoint:
+ x = checkpoint.checkpoint(blk, x, attn_mask)
+ else:
+ x = blk(x, attn_mask)
+ if self.downsample is not None:
+ x_down = self.downsample(x, H, W)
+ Wh, Ww = (H + 1) // 2, (W + 1) // 2
+ return x, H, W, x_down, Wh, Ww
+ else:
+ return x, H, W, x, H, W
+
+
+class PatchEmbed(nn.Module):
+ """Image to Patch Embedding
+ Args:
+ patch_size (int): Patch token size. Default: 4.
+ in_chans (int): Number of input image channels. Default: 3.
+ embed_dim (int): Number of linear projection output channels. Default: 96.
+ norm_layer (nn.Module, optional): Normalization layer. Default: None
+ """
+
+ def __init__(self, patch_size=4, in_chans=3, embed_dim=96, norm_layer=None):
+ super().__init__()
+ patch_size = to_2tuple(patch_size)
+ self.patch_size = patch_size
+
+ self.in_chans = in_chans
+ self.embed_dim = embed_dim
+
+ self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size)
+ if norm_layer is not None:
+ self.norm = norm_layer(embed_dim)
+ else:
+ self.norm = None
+
+ def forward(self, x):
+ """Forward function."""
+ # padding
+ _, _, H, W = x.size()
+ if W % self.patch_size[1] != 0:
+ x = F.pad(x, (0, self.patch_size[1] - W % self.patch_size[1]))
+ if H % self.patch_size[0] != 0:
+ x = F.pad(x, (0, 0, 0, self.patch_size[0] - H % self.patch_size[0]))
+
+ x = self.proj(x) # B C Wh Ww
+ if self.norm is not None:
+ Wh, Ww = x.size(2), x.size(3)
+ x = x.flatten(2).transpose(1, 2)
+ x = self.norm(x)
+ x = x.transpose(1, 2).view(-1, self.embed_dim, Wh, Ww)
+
+ return x
+
+
+class SwinTransformer(nn.Module):
+ """Swin Transformer backbone.
+ A PyTorch impl of : `Swin Transformer: Hierarchical Vision Transformer using Shifted Windows` -
+ https://arxiv.org/pdf/2103.14030
+ Args:
+ pretrain_img_size (int): Input image size for training the pretrained model,
+ used in absolute postion embedding. Default 224.
+ patch_size (int | tuple(int)): Patch size. Default: 4.
+ in_chans (int): Number of input image channels. Default: 3.
+ embed_dim (int): Number of linear projection output channels. Default: 96.
+ depths (tuple[int]): Depths of each Swin Transformer stage.
+ num_heads (tuple[int]): Number of attention head of each stage.
+ window_size (int): Window size. Default: 7.
+ mlp_ratio (float): Ratio of mlp hidden dim to embedding dim. Default: 4.
+ qkv_bias (bool): If True, add a learnable bias to query, key, value. Default: True
+ qk_scale (float): Override default qk scale of head_dim ** -0.5 if set.
+ drop_rate (float): Dropout rate.
+ attn_drop_rate (float): Attention dropout rate. Default: 0.
+ drop_path_rate (float): Stochastic depth rate. Default: 0.2.
+ norm_layer (nn.Module): Normalization layer. Default: nn.LayerNorm.
+ ape (bool): If True, add absolute position embedding to the patch embedding. Default: False.
+ patch_norm (bool): If True, add normalization after patch embedding. Default: True.
+ out_indices (Sequence[int]): Output from which stages.
+ frozen_stages (int): Stages to be frozen (stop grad and set eval mode).
+ -1 means not freezing any parameters.
+ use_checkpoint (bool): Whether to use checkpointing to save memory. Default: False.
+ """
+
+ def __init__(
+ self,
+ pretrain_img_size=224,
+ patch_size=4,
+ in_chans=3,
+ embed_dim=96,
+ depths=[2, 2, 6, 2],
+ num_heads=[3, 6, 12, 24],
+ window_size=7,
+ mlp_ratio=4.0,
+ qkv_bias=True,
+ qk_scale=None,
+ drop_rate=0.0,
+ attn_drop_rate=0.0,
+ drop_path_rate=0.2,
+ norm_layer=nn.LayerNorm,
+ ape=False,
+ patch_norm=True,
+ out_indices=(0, 1, 2, 3),
+ frozen_stages=-1,
+ use_checkpoint=False,
+ ):
+ super().__init__()
+
+ self.pretrain_img_size = pretrain_img_size
+ self.num_layers = len(depths)
+ self.embed_dim = embed_dim
+ self.ape = ape
+ self.patch_norm = patch_norm
+ self.out_indices = out_indices
+ self.frozen_stages = frozen_stages
+
+ # split image into non-overlapping patches
+ self.patch_embed = PatchEmbed(
+ patch_size=patch_size,
+ in_chans=in_chans,
+ embed_dim=embed_dim,
+ norm_layer=norm_layer if self.patch_norm else None,
+ )
+
+ # absolute position embedding
+ if self.ape:
+ pretrain_img_size = to_2tuple(pretrain_img_size)
+ patch_size = to_2tuple(patch_size)
+ patches_resolution = [
+ pretrain_img_size[0] // patch_size[0],
+ pretrain_img_size[1] // patch_size[1],
+ ]
+
+ self.absolute_pos_embed = nn.Parameter(
+ torch.zeros(1, embed_dim, patches_resolution[0], patches_resolution[1])
+ )
+ trunc_normal_(self.absolute_pos_embed, std=0.02)
+
+ self.pos_drop = nn.Dropout(p=drop_rate)
+
+ # stochastic depth
+ dpr = [
+ x.item() for x in torch.linspace(0, drop_path_rate, sum(depths))
+ ] # stochastic depth decay rule
+
+ # build layers
+ self.layers = nn.ModuleList()
+ for i_layer in range(self.num_layers):
+ layer = BasicLayer(
+ dim=int(embed_dim * 2 ** i_layer),
+ depth=depths[i_layer],
+ num_heads=num_heads[i_layer],
+ window_size=window_size,
+ mlp_ratio=mlp_ratio,
+ qkv_bias=qkv_bias,
+ qk_scale=qk_scale,
+ drop=drop_rate,
+ attn_drop=attn_drop_rate,
+ drop_path=dpr[sum(depths[:i_layer]) : sum(depths[: i_layer + 1])],
+ norm_layer=norm_layer,
+ downsample=PatchMerging if (i_layer < self.num_layers - 1) else None,
+ use_checkpoint=use_checkpoint,
+ )
+ self.layers.append(layer)
+
+ num_features = [int(embed_dim * 2 ** i) for i in range(self.num_layers)]
+ self.num_features = num_features
+
+ # add a norm layer for each output
+ for i_layer in out_indices:
+ layer = norm_layer(num_features[i_layer])
+ layer_name = f"norm{i_layer}"
+ self.add_module(layer_name, layer)
+
+ self._freeze_stages()
+
+ def _freeze_stages(self):
+ if self.frozen_stages >= 0:
+ self.patch_embed.eval()
+ for param in self.patch_embed.parameters():
+ param.requires_grad = False
+
+ if self.frozen_stages >= 1 and self.ape:
+ self.absolute_pos_embed.requires_grad = False
+
+ if self.frozen_stages >= 2:
+ self.pos_drop.eval()
+ for i in range(0, self.frozen_stages - 1):
+ m = self.layers[i]
+ m.eval()
+ for param in m.parameters():
+ param.requires_grad = False
+
+ def init_weights(self, pretrained=None):
+ """Initialize the weights in backbone.
+ Args:
+ pretrained (str, optional): Path to pre-trained weights.
+ Defaults to None.
+ """
+
+ def _init_weights(m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=0.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+
+ def forward(self, x):
+ """Forward function."""
+ x = self.patch_embed(x)
+
+ Wh, Ww = x.size(2), x.size(3)
+ if self.ape:
+ # interpolate the position embedding to the corresponding size
+ absolute_pos_embed = F.interpolate(
+ self.absolute_pos_embed, size=(Wh, Ww), mode="bicubic"
+ )
+ x = (x + absolute_pos_embed).flatten(2).transpose(1, 2) # B Wh*Ww C
+ else:
+ x = x.flatten(2).transpose(1, 2)
+ x = self.pos_drop(x)
+
+ outs = {}
+ for i in range(self.num_layers):
+ layer = self.layers[i]
+ x_out, H, W, x, Wh, Ww = layer(x, Wh, Ww)
+
+ if i in self.out_indices:
+ norm_layer = getattr(self, f"norm{i}")
+ x_out = norm_layer(x_out)
+
+ out = x_out.view(-1, H, W, self.num_features[i]).permute(0, 3, 1, 2).contiguous()
+ outs["res{}".format(i + 2)] = out
+
+ return outs
+
+ def train(self, mode=True):
+ """Convert the model into training mode while keep layers freezed."""
+ super(SwinTransformer, self).train(mode)
+ self._freeze_stages()
+
+
+@BACKBONE_REGISTRY.register()
+class D2SwinTransformer(SwinTransformer, Backbone):
+ def __init__(self, cfg, input_shape):
+
+ pretrain_img_size = cfg.MODEL.SWIN.PRETRAIN_IMG_SIZE
+ patch_size = cfg.MODEL.SWIN.PATCH_SIZE
+ in_chans = 3
+ embed_dim = cfg.MODEL.SWIN.EMBED_DIM
+ depths = cfg.MODEL.SWIN.DEPTHS
+ num_heads = cfg.MODEL.SWIN.NUM_HEADS
+ window_size = cfg.MODEL.SWIN.WINDOW_SIZE
+ mlp_ratio = cfg.MODEL.SWIN.MLP_RATIO
+ qkv_bias = cfg.MODEL.SWIN.QKV_BIAS
+ qk_scale = cfg.MODEL.SWIN.QK_SCALE
+ drop_rate = cfg.MODEL.SWIN.DROP_RATE
+ attn_drop_rate = cfg.MODEL.SWIN.ATTN_DROP_RATE
+ drop_path_rate = cfg.MODEL.SWIN.DROP_PATH_RATE
+ norm_layer = nn.LayerNorm
+ ape = cfg.MODEL.SWIN.APE
+ patch_norm = cfg.MODEL.SWIN.PATCH_NORM
+ use_checkpoint = cfg.MODEL.SWIN.USE_CHECKPOINT
+
+ super().__init__(
+ pretrain_img_size,
+ patch_size,
+ in_chans,
+ embed_dim,
+ depths,
+ num_heads,
+ window_size,
+ mlp_ratio,
+ qkv_bias,
+ qk_scale,
+ drop_rate,
+ attn_drop_rate,
+ drop_path_rate,
+ norm_layer,
+ ape,
+ patch_norm,
+ use_checkpoint=use_checkpoint,
+ )
+
+ self._out_features = cfg.MODEL.SWIN.OUT_FEATURES
+
+ self._out_feature_strides = {
+ "res2": 4,
+ "res3": 8,
+ "res4": 16,
+ "res5": 32,
+ }
+ self._out_feature_channels = {
+ "res2": self.num_features[0],
+ "res3": self.num_features[1],
+ "res4": self.num_features[2],
+ "res5": self.num_features[3],
+ }
+
+ def forward(self, x):
+ """
+ Args:
+ x: Tensor of shape (N,C,H,W). H, W must be a multiple of ``self.size_divisibility``.
+ Returns:
+ dict[str->Tensor]: names and the corresponding features
+ """
+ assert (
+ x.dim() == 4
+ ), f"SwinTransformer takes an input of shape (N, C, H, W). Got {x.shape} instead!"
+ outputs = {}
+ y = super().forward(x)
+ for k in y.keys():
+ if k in self._out_features:
+ outputs[k] = y[k]
+ return outputs
+
+ def output_shape(self):
+ return {
+ name: ShapeSpec(
+ channels=self._out_feature_channels[name], stride=self._out_feature_strides[name]
+ )
+ for name in self._out_features
+ }
+
+ @property
+ def size_divisibility(self):
+ return 32
diff --git a/videocutler/mask2former/modeling/criterion.py b/videocutler/mask2former/modeling/criterion.py
new file mode 100644
index 0000000000000000000000000000000000000000..878ae754d1a108084644bfaebb3409fa6849cf13
--- /dev/null
+++ b/videocutler/mask2former/modeling/criterion.py
@@ -0,0 +1,263 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/facebookresearch/detr/blob/master/models/detr.py
+"""
+MaskFormer criterion.
+"""
+import logging
+
+import torch
+import torch.nn.functional as F
+from torch import nn
+
+from detectron2.utils.comm import get_world_size
+from detectron2.projects.point_rend.point_features import (
+ get_uncertain_point_coords_with_randomness,
+ point_sample,
+)
+
+from ..utils.misc import is_dist_avail_and_initialized, nested_tensor_from_tensor_list
+
+
+def dice_loss(
+ inputs: torch.Tensor,
+ targets: torch.Tensor,
+ num_masks: float,
+ ):
+ """
+ Compute the DICE loss, similar to generalized IOU for masks
+ Args:
+ inputs: A float tensor of arbitrary shape.
+ The predictions for each example.
+ targets: A float tensor with the same shape as inputs. Stores the binary
+ classification label for each element in inputs
+ (0 for the negative class and 1 for the positive class).
+ """
+ inputs = inputs.sigmoid()
+ inputs = inputs.flatten(1)
+ numerator = 2 * (inputs * targets).sum(-1)
+ denominator = inputs.sum(-1) + targets.sum(-1)
+ loss = 1 - (numerator + 1) / (denominator + 1)
+ return loss.sum() / num_masks
+
+
+dice_loss_jit = torch.jit.script(
+ dice_loss
+) # type: torch.jit.ScriptModule
+
+
+def sigmoid_ce_loss(
+ inputs: torch.Tensor,
+ targets: torch.Tensor,
+ num_masks: float,
+ ):
+ """
+ Args:
+ inputs: A float tensor of arbitrary shape.
+ The predictions for each example.
+ targets: A float tensor with the same shape as inputs. Stores the binary
+ classification label for each element in inputs
+ (0 for the negative class and 1 for the positive class).
+ Returns:
+ Loss tensor
+ """
+ loss = F.binary_cross_entropy_with_logits(inputs, targets, reduction="none")
+
+ return loss.mean(1).sum() / num_masks
+
+
+sigmoid_ce_loss_jit = torch.jit.script(
+ sigmoid_ce_loss
+) # type: torch.jit.ScriptModule
+
+
+def calculate_uncertainty(logits):
+ """
+ We estimate uncerainty as L1 distance between 0.0 and the logit prediction in 'logits' for the
+ foreground class in `classes`.
+ Args:
+ logits (Tensor): A tensor of shape (R, 1, ...) for class-specific or
+ class-agnostic, where R is the total number of predicted masks in all images and C is
+ the number of foreground classes. The values are logits.
+ Returns:
+ scores (Tensor): A tensor of shape (R, 1, ...) that contains uncertainty scores with
+ the most uncertain locations having the highest uncertainty score.
+ """
+ assert logits.shape[1] == 1
+ gt_class_logits = logits.clone()
+ return -(torch.abs(gt_class_logits))
+
+
+class SetCriterion(nn.Module):
+ """This class computes the loss for DETR.
+ The process happens in two steps:
+ 1) we compute hungarian assignment between ground truth boxes and the outputs of the model
+ 2) we supervise each pair of matched ground-truth / prediction (supervise class and box)
+ """
+
+ def __init__(self, num_classes, matcher, weight_dict, eos_coef, losses,
+ num_points, oversample_ratio, importance_sample_ratio):
+ """Create the criterion.
+ Parameters:
+ num_classes: number of object categories, omitting the special no-object category
+ matcher: module able to compute a matching between targets and proposals
+ weight_dict: dict containing as key the names of the losses and as values their relative weight.
+ eos_coef: relative classification weight applied to the no-object category
+ losses: list of all the losses to be applied. See get_loss for list of available losses.
+ """
+ super().__init__()
+ self.num_classes = num_classes
+ self.matcher = matcher
+ self.weight_dict = weight_dict
+ self.eos_coef = eos_coef
+ self.losses = losses
+ empty_weight = torch.ones(self.num_classes + 1)
+ empty_weight[-1] = self.eos_coef
+ self.register_buffer("empty_weight", empty_weight)
+
+ # pointwise mask loss parameters
+ self.num_points = num_points
+ self.oversample_ratio = oversample_ratio
+ self.importance_sample_ratio = importance_sample_ratio
+
+ def loss_labels(self, outputs, targets, indices, num_masks):
+ """Classification loss (NLL)
+ targets dicts must contain the key "labels" containing a tensor of dim [nb_target_boxes]
+ """
+ assert "pred_logits" in outputs
+ src_logits = outputs["pred_logits"].float()
+
+ idx = self._get_src_permutation_idx(indices)
+ target_classes_o = torch.cat([t["labels"][J] for t, (_, J) in zip(targets, indices)])
+ target_classes = torch.full(
+ src_logits.shape[:2], self.num_classes, dtype=torch.int64, device=src_logits.device
+ )
+ target_classes[idx] = target_classes_o
+
+ loss_ce = F.cross_entropy(src_logits.transpose(1, 2), target_classes, self.empty_weight)
+ losses = {"loss_ce": loss_ce}
+ return losses
+
+ def loss_masks(self, outputs, targets, indices, num_masks):
+ """Compute the losses related to the masks: the focal loss and the dice loss.
+ targets dicts must contain the key "masks" containing a tensor of dim [nb_target_boxes, h, w]
+ """
+ assert "pred_masks" in outputs
+
+ src_idx = self._get_src_permutation_idx(indices)
+ tgt_idx = self._get_tgt_permutation_idx(indices)
+ src_masks = outputs["pred_masks"]
+ src_masks = src_masks[src_idx]
+ masks = [t["masks"] for t in targets]
+ # TODO use valid to mask invalid areas due to padding in loss
+ target_masks, valid = nested_tensor_from_tensor_list(masks).decompose()
+ target_masks = target_masks.to(src_masks)
+ target_masks = target_masks[tgt_idx]
+
+ # No need to upsample predictions as we are using normalized coordinates :)
+ # N x 1 x H x W
+ src_masks = src_masks[:, None]
+ target_masks = target_masks[:, None]
+
+ with torch.no_grad():
+ # sample point_coords
+ point_coords = get_uncertain_point_coords_with_randomness(
+ src_masks,
+ lambda logits: calculate_uncertainty(logits),
+ self.num_points,
+ self.oversample_ratio,
+ self.importance_sample_ratio,
+ )
+ # get gt labels
+ point_labels = point_sample(
+ target_masks,
+ point_coords,
+ align_corners=False,
+ ).squeeze(1)
+
+ point_logits = point_sample(
+ src_masks,
+ point_coords,
+ align_corners=False,
+ ).squeeze(1)
+
+ losses = {
+ "loss_mask": sigmoid_ce_loss_jit(point_logits, point_labels, num_masks),
+ "loss_dice": dice_loss_jit(point_logits, point_labels, num_masks),
+ }
+
+ del src_masks
+ del target_masks
+ return losses
+
+ def _get_src_permutation_idx(self, indices):
+ # permute predictions following indices
+ batch_idx = torch.cat([torch.full_like(src, i) for i, (src, _) in enumerate(indices)])
+ src_idx = torch.cat([src for (src, _) in indices])
+ return batch_idx, src_idx
+
+ def _get_tgt_permutation_idx(self, indices):
+ # permute targets following indices
+ batch_idx = torch.cat([torch.full_like(tgt, i) for i, (_, tgt) in enumerate(indices)])
+ tgt_idx = torch.cat([tgt for (_, tgt) in indices])
+ return batch_idx, tgt_idx
+
+ def get_loss(self, loss, outputs, targets, indices, num_masks):
+ loss_map = {
+ 'labels': self.loss_labels,
+ 'masks': self.loss_masks,
+ }
+ assert loss in loss_map, f"do you really want to compute {loss} loss?"
+ return loss_map[loss](outputs, targets, indices, num_masks)
+
+ def forward(self, outputs, targets):
+ """This performs the loss computation.
+ Parameters:
+ outputs: dict of tensors, see the output specification of the model for the format
+ targets: list of dicts, such that len(targets) == batch_size.
+ The expected keys in each dict depends on the losses applied, see each loss' doc
+ """
+ outputs_without_aux = {k: v for k, v in outputs.items() if k != "aux_outputs"}
+
+ # Retrieve the matching between the outputs of the last layer and the targets
+ indices = self.matcher(outputs_without_aux, targets)
+
+ # Compute the average number of target boxes accross all nodes, for normalization purposes
+ num_masks = sum(len(t["labels"]) for t in targets)
+ num_masks = torch.as_tensor(
+ [num_masks], dtype=torch.float, device=next(iter(outputs.values())).device
+ )
+ if is_dist_avail_and_initialized():
+ torch.distributed.all_reduce(num_masks)
+ num_masks = torch.clamp(num_masks / get_world_size(), min=1).item()
+
+ # Compute all the requested losses
+ losses = {}
+ for loss in self.losses:
+ losses.update(self.get_loss(loss, outputs, targets, indices, num_masks))
+
+ # In case of auxiliary losses, we repeat this process with the output of each intermediate layer.
+ if "aux_outputs" in outputs:
+ for i, aux_outputs in enumerate(outputs["aux_outputs"]):
+ indices = self.matcher(aux_outputs, targets)
+ for loss in self.losses:
+ l_dict = self.get_loss(loss, aux_outputs, targets, indices, num_masks)
+ l_dict = {k + f"_{i}": v for k, v in l_dict.items()}
+ losses.update(l_dict)
+
+ return losses
+
+ def __repr__(self):
+ head = "Criterion " + self.__class__.__name__
+ body = [
+ "matcher: {}".format(self.matcher.__repr__(_repr_indent=8)),
+ "losses: {}".format(self.losses),
+ "weight_dict: {}".format(self.weight_dict),
+ "num_classes: {}".format(self.num_classes),
+ "eos_coef: {}".format(self.eos_coef),
+ "num_points: {}".format(self.num_points),
+ "oversample_ratio: {}".format(self.oversample_ratio),
+ "importance_sample_ratio: {}".format(self.importance_sample_ratio),
+ ]
+ _repr_indent = 4
+ lines = [head] + [" " * _repr_indent + line for line in body]
+ return "\n".join(lines)
diff --git a/videocutler/mask2former/modeling/matcher.py b/videocutler/mask2former/modeling/matcher.py
new file mode 100644
index 0000000000000000000000000000000000000000..5d7efedb9cb89cd8bf2014e8c5a1c3285141da83
--- /dev/null
+++ b/videocutler/mask2former/modeling/matcher.py
@@ -0,0 +1,207 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/facebookresearch/detr/blob/master/models/matcher.py
+"""
+Modules to compute the matching cost and solve the corresponding LSAP.
+"""
+import torch
+import torch.nn.functional as F
+from scipy.optimize import linear_sum_assignment
+from torch import nn
+from torch.cuda.amp import autocast
+
+from detectron2.projects.point_rend.point_features import point_sample
+
+
+def batch_dice_loss(inputs: torch.Tensor, targets: torch.Tensor, thresh: float):
+ """
+ Compute the DICE loss, similar to generalized IOU for masks
+ Args:
+ inputs: A float tensor of arbitrary shape.
+ The predictions for each example.
+ targets: A float tensor with the same shape as inputs. Stores the binary
+ classification label for each element in inputs
+ (0 for the negative class and 1 for the positive class).
+ """
+ inputs = inputs.sigmoid()
+ inputs = inputs.flatten(1)
+ numerator = 2 * torch.einsum("nc,mc->nm", inputs, targets)
+ denominator = inputs.sum(-1)[:, None] + targets.sum(-1)[None, :]
+ loss = 1 - (numerator + 1) / (denominator + 1)
+
+ if targets.size()[0] != 0:
+ hw = inputs.shape[1]
+ drop_weights = torch.einsum("nc,mc->nm", inputs.ge(0.0).float(), targets).max(-1)[0] / hw
+ drop_weights = drop_weights.ge(thresh).float().detach()[:,None]
+ loss = drop_weights * loss
+
+ return loss
+
+
+batch_dice_loss_jit = torch.jit.script(
+ batch_dice_loss
+) # type: torch.jit.ScriptModule
+
+
+def batch_sigmoid_ce_loss(inputs: torch.Tensor, targets: torch.Tensor, thresh: float,):
+ """
+ Args:
+ inputs: A float tensor of arbitrary shape.
+ The predictions for each example.
+ targets: A float tensor with the same shape as inputs. Stores the binary
+ classification label for each element in inputs
+ (0 for the negative class and 1 for the positive class).
+ Returns:
+ Loss tensor
+ """
+ hw = inputs.shape[1]
+
+ pos = F.binary_cross_entropy_with_logits(
+ inputs, torch.ones_like(inputs), reduction="none"
+ )
+ # print("pos: ", pos.size())
+ neg = F.binary_cross_entropy_with_logits(
+ inputs, torch.zeros_like(inputs), reduction="none"
+ )
+ # print("neg: ", neg.size())
+
+ loss = torch.einsum("nc,mc->nm", pos, targets) + torch.einsum(
+ "nc,mc->nm", neg, (1 - targets)
+ )
+ if targets.size()[0] != 0:
+ drop_weights = torch.einsum("nc,mc->nm", inputs.ge(0.0).float(), targets).max(-1)[0] / hw
+ drop_weights = drop_weights.ge(thresh).float().detach()[:,None]
+ loss = drop_weights * loss
+ # print("drop_weights: ", drop_weights.size(), drop_weights.sum())
+
+ return loss / hw
+
+
+batch_sigmoid_ce_loss_jit = torch.jit.script(
+ batch_sigmoid_ce_loss
+) # type: torch.jit.ScriptModule
+
+
+class HungarianMatcher(nn.Module):
+ """This class computes an assignment between the targets and the predictions of the network
+
+ For efficiency reasons, the targets don't include the no_object. Because of this, in general,
+ there are more predictions than targets. In this case, we do a 1-to-1 matching of the best predictions,
+ while the others are un-matched (and thus treated as non-objects).
+ """
+ # used in mask2former/maskformer_model.py
+ def __init__(self, cost_class: float = 1, cost_mask: float = 1, cost_dice: float = 1, num_points: int = 0, thresh: float = 0.01):
+ """Creates the matcher
+
+ Params:
+ cost_class: This is the relative weight of the classification error in the matching cost
+ cost_mask: This is the relative weight of the focal loss of the binary mask in the matching cost
+ cost_dice: This is the relative weight of the dice loss of the binary mask in the matching cost
+ """
+ super().__init__()
+ self.cost_class = cost_class
+ self.cost_mask = cost_mask
+ self.cost_dice = cost_dice
+
+ assert cost_class != 0 or cost_mask != 0 or cost_dice != 0, "all costs cant be 0"
+
+ self.num_points = num_points
+ self.thresh = thresh
+
+ @torch.no_grad()
+ def memory_efficient_forward(self, outputs, targets):
+ """More memory-friendly matching"""
+ bs, num_queries = outputs["pred_logits"].shape[:2]
+
+ indices = []
+
+ # Iterate through batch size
+ for b in range(bs):
+
+ out_prob = outputs["pred_logits"][b].softmax(-1) # [num_queries, num_classes]
+ tgt_ids = targets[b]["labels"]
+
+ # Compute the classification cost. Contrary to the loss, we don't use the NLL,
+ # but approximate it in 1 - proba[target class].
+ # The 1 is a constant that doesn't change the matching, it can be ommitted.
+ cost_class = -out_prob[:, tgt_ids]
+
+ out_mask = outputs["pred_masks"][b] # [num_queries, H_pred, W_pred]
+ # gt masks are already padded when preparing target
+ tgt_mask = targets[b]["masks"].to(out_mask)
+
+ out_mask = out_mask[:, None]
+ tgt_mask = tgt_mask[:, None]
+ # all masks share the same set of points for efficient matching!
+ point_coords = torch.rand(1, self.num_points, 2, device=out_mask.device)
+ # get gt labels
+ tgt_mask = point_sample(
+ tgt_mask,
+ point_coords.repeat(tgt_mask.shape[0], 1, 1),
+ align_corners=False,
+ ).squeeze(1)
+
+ out_mask = point_sample(
+ out_mask,
+ point_coords.repeat(out_mask.shape[0], 1, 1),
+ align_corners=False,
+ ).squeeze(1)
+
+ with autocast(enabled=False):
+ out_mask = out_mask.float()
+ tgt_mask = tgt_mask.float()
+
+ if out_mask.shape[0] == 0 or tgt_mask.shape[0] == 0:
+ cost_mask = batch_sigmoid_ce_loss(out_mask, tgt_mask, thresh=self.thresh)
+ cost_dice = batch_dice_loss(out_mask, tgt_mask, thresh=self.thresh)
+ else:
+ # Compute the focal loss between masks
+ cost_mask = batch_sigmoid_ce_loss_jit(out_mask, tgt_mask, thresh=self.thresh)
+ # Compute the dice loss betwen masks
+ cost_dice = batch_dice_loss_jit(out_mask, tgt_mask, thresh=self.thresh)
+ # Final cost matrix
+ C = (
+ self.cost_mask * cost_mask
+ + self.cost_class * cost_class
+ + self.cost_dice * cost_dice
+ )
+ C = C.reshape(num_queries, -1).cpu()
+
+ indices.append(linear_sum_assignment(C))
+
+ return [
+ (torch.as_tensor(i, dtype=torch.int64), torch.as_tensor(j, dtype=torch.int64))
+ for i, j in indices
+ ]
+
+ @torch.no_grad()
+ def forward(self, outputs, targets):
+ """Performs the matching
+
+ Params:
+ outputs: This is a dict that contains at least these entries:
+ "pred_logits": Tensor of dim [batch_size, num_queries, num_classes] with the classification logits
+ "pred_masks": Tensor of dim [batch_size, num_queries, H_pred, W_pred] with the predicted masks
+
+ targets: This is a list of targets (len(targets) = batch_size), where each target is a dict containing:
+ "labels": Tensor of dim [num_target_boxes] (where num_target_boxes is the number of ground-truth
+ objects in the target) containing the class labels
+ "masks": Tensor of dim [num_target_boxes, H_gt, W_gt] containing the target masks
+
+ Returns:
+ A list of size batch_size, containing tuples of (index_i, index_j) where:
+ - index_i is the indices of the selected predictions (in order)
+ - index_j is the indices of the corresponding selected targets (in order)
+ For each batch element, it holds:
+ len(index_i) = len(index_j) = min(num_queries, num_target_boxes)
+ """
+ return self.memory_efficient_forward(outputs, targets)
+
+ def __repr__(self, _repr_indent=4):
+ head = "Matcher " + self.__class__.__name__
+ body = [
+ "cost_class: {}".format(self.cost_class),
+ "cost_mask: {}".format(self.cost_mask),
+ "cost_dice: {}".format(self.cost_dice),
+ ]
+ lines = [head] + [" " * _repr_indent + line for line in body]
+ return "\n".join(lines)
diff --git a/videocutler/mask2former/modeling/meta_arch/__init__.py b/videocutler/mask2former/modeling/meta_arch/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9020c2df23e2af280b7bb168b996ae9eaf312eb8
--- /dev/null
+++ b/videocutler/mask2former/modeling/meta_arch/__init__.py
@@ -0,0 +1 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/videocutler/mask2former/modeling/meta_arch/mask_former_head.py b/videocutler/mask2former/modeling/meta_arch/mask_former_head.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e484d1a0be526a8d27d449f561c8495c3446a02
--- /dev/null
+++ b/videocutler/mask2former/modeling/meta_arch/mask_former_head.py
@@ -0,0 +1,132 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import logging
+from copy import deepcopy
+from typing import Callable, Dict, List, Optional, Tuple, Union
+
+import fvcore.nn.weight_init as weight_init
+from torch import nn
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.layers import Conv2d, ShapeSpec, get_norm
+from detectron2.modeling import SEM_SEG_HEADS_REGISTRY
+
+from ..transformer_decoder.maskformer_transformer_decoder import build_transformer_decoder
+from ..pixel_decoder.fpn import build_pixel_decoder
+
+
+@SEM_SEG_HEADS_REGISTRY.register()
+class MaskFormerHead(nn.Module):
+
+ _version = 2
+
+ def _load_from_state_dict(
+ self, state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, error_msgs
+ ):
+ version = local_metadata.get("version", None)
+ if version is None or version < 2:
+ # Do not warn if train from scratch
+ scratch = True
+ logger = logging.getLogger(__name__)
+ for k in list(state_dict.keys()):
+ newk = k
+ # if "sem_seg_head" in k and not k.startswith(prefix + "predictor"):
+ # newk = k.replace(prefix, prefix + "pixel_decoder.")
+ # logger.debug(f"{k} ==> {newk}")
+ if newk != k:
+ state_dict[newk] = state_dict[k]
+ del state_dict[k]
+ scratch = False
+
+ if not scratch:
+ logger.warning(
+ f"Weight format of {self.__class__.__name__} have changed! "
+ "Please upgrade your models. Applying automatic conversion now ..."
+ )
+
+ @configurable
+ def __init__(
+ self,
+ input_shape: Dict[str, ShapeSpec],
+ *,
+ num_classes: int,
+ pixel_decoder: nn.Module,
+ loss_weight: float = 1.0,
+ ignore_value: int = -1,
+ # extra parameters
+ transformer_predictor: nn.Module,
+ transformer_in_feature: str,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ input_shape: shapes (channels and stride) of the input features
+ num_classes: number of classes to predict
+ pixel_decoder: the pixel decoder module
+ loss_weight: loss weight
+ ignore_value: category id to be ignored during training.
+ transformer_predictor: the transformer decoder that makes prediction
+ transformer_in_feature: input feature name to the transformer_predictor
+ """
+ super().__init__()
+ input_shape = sorted(input_shape.items(), key=lambda x: x[1].stride)
+ self.in_features = [k for k, v in input_shape]
+ feature_strides = [v.stride for k, v in input_shape]
+ feature_channels = [v.channels for k, v in input_shape]
+
+ self.ignore_value = ignore_value
+ self.common_stride = 4
+ self.loss_weight = loss_weight
+
+ self.pixel_decoder = pixel_decoder
+ self.predictor = transformer_predictor
+ self.transformer_in_feature = transformer_in_feature
+
+ self.num_classes = num_classes
+
+ @classmethod
+ def from_config(cls, cfg, input_shape: Dict[str, ShapeSpec]):
+ # figure out in_channels to transformer predictor
+ if cfg.MODEL.MASK_FORMER.TRANSFORMER_IN_FEATURE == "transformer_encoder":
+ transformer_predictor_in_channels = cfg.MODEL.SEM_SEG_HEAD.CONVS_DIM
+ elif cfg.MODEL.MASK_FORMER.TRANSFORMER_IN_FEATURE == "pixel_embedding":
+ transformer_predictor_in_channels = cfg.MODEL.SEM_SEG_HEAD.MASK_DIM
+ elif cfg.MODEL.MASK_FORMER.TRANSFORMER_IN_FEATURE == "multi_scale_pixel_decoder": # for maskformer2
+ transformer_predictor_in_channels = cfg.MODEL.SEM_SEG_HEAD.CONVS_DIM
+ else:
+ transformer_predictor_in_channels = input_shape[cfg.MODEL.MASK_FORMER.TRANSFORMER_IN_FEATURE].channels
+
+ return {
+ "input_shape": {
+ k: v for k, v in input_shape.items() if k in cfg.MODEL.SEM_SEG_HEAD.IN_FEATURES
+ },
+ "ignore_value": cfg.MODEL.SEM_SEG_HEAD.IGNORE_VALUE,
+ "num_classes": cfg.MODEL.SEM_SEG_HEAD.NUM_CLASSES,
+ "pixel_decoder": build_pixel_decoder(cfg, input_shape),
+ "loss_weight": cfg.MODEL.SEM_SEG_HEAD.LOSS_WEIGHT,
+ "transformer_in_feature": cfg.MODEL.MASK_FORMER.TRANSFORMER_IN_FEATURE,
+ "transformer_predictor": build_transformer_decoder(
+ cfg,
+ transformer_predictor_in_channels,
+ mask_classification=True,
+ ),
+ }
+
+ def forward(self, features, mask=None):
+ return self.layers(features, mask)
+
+ def layers(self, features, mask=None):
+ mask_features, transformer_encoder_features, multi_scale_features = self.pixel_decoder.forward_features(features)
+ if self.transformer_in_feature == "multi_scale_pixel_decoder":
+ predictions = self.predictor(multi_scale_features, mask_features, mask)
+ else:
+ if self.transformer_in_feature == "transformer_encoder":
+ assert (
+ transformer_encoder_features is not None
+ ), "Please use the TransformerEncoderPixelDecoder."
+ predictions = self.predictor(transformer_encoder_features, mask_features, mask)
+ elif self.transformer_in_feature == "pixel_embedding":
+ predictions = self.predictor(mask_features, mask_features, mask)
+ else:
+ predictions = self.predictor(features[self.transformer_in_feature], mask_features, mask)
+ return predictions
diff --git a/videocutler/mask2former/modeling/meta_arch/per_pixel_baseline.py b/videocutler/mask2former/modeling/meta_arch/per_pixel_baseline.py
new file mode 100644
index 0000000000000000000000000000000000000000..4ce7573e0ff97e7fdeef0ea94928def6e263ab1d
--- /dev/null
+++ b/videocutler/mask2former/modeling/meta_arch/per_pixel_baseline.py
@@ -0,0 +1,243 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import logging
+from typing import Callable, Dict, List, Optional, Tuple, Union
+
+import fvcore.nn.weight_init as weight_init
+from torch import nn
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.layers import Conv2d, ShapeSpec, get_norm
+from detectron2.modeling import SEM_SEG_HEADS_REGISTRY
+
+from ..transformer_decoder.maskformer_transformer_decoder import StandardTransformerDecoder
+from ..pixel_decoder.fpn import build_pixel_decoder
+
+
+@SEM_SEG_HEADS_REGISTRY.register()
+class PerPixelBaselineHead(nn.Module):
+
+ _version = 2
+
+ def _load_from_state_dict(
+ self, state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, error_msgs
+ ):
+ version = local_metadata.get("version", None)
+ if version is None or version < 2:
+ logger = logging.getLogger(__name__)
+ # Do not warn if train from scratch
+ scratch = True
+ logger = logging.getLogger(__name__)
+ for k in list(state_dict.keys()):
+ newk = k
+ if "sem_seg_head" in k and not k.startswith(prefix + "predictor"):
+ newk = k.replace(prefix, prefix + "pixel_decoder.")
+ # logger.warning(f"{k} ==> {newk}")
+ if newk != k:
+ state_dict[newk] = state_dict[k]
+ del state_dict[k]
+ scratch = False
+
+ if not scratch:
+ logger.warning(
+ f"Weight format of {self.__class__.__name__} have changed! "
+ "Please upgrade your models. Applying automatic conversion now ..."
+ )
+
+ @configurable
+ def __init__(
+ self,
+ input_shape: Dict[str, ShapeSpec],
+ *,
+ num_classes: int,
+ pixel_decoder: nn.Module,
+ loss_weight: float = 1.0,
+ ignore_value: int = -1,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ input_shape: shapes (channels and stride) of the input features
+ num_classes: number of classes to predict
+ pixel_decoder: the pixel decoder module
+ loss_weight: loss weight
+ ignore_value: category id to be ignored during training.
+ """
+ super().__init__()
+ input_shape = sorted(input_shape.items(), key=lambda x: x[1].stride)
+ self.in_features = [k for k, v in input_shape]
+ feature_strides = [v.stride for k, v in input_shape]
+ feature_channels = [v.channels for k, v in input_shape]
+
+ self.ignore_value = ignore_value
+ self.common_stride = 4
+ self.loss_weight = loss_weight
+
+ self.pixel_decoder = pixel_decoder
+ self.predictor = Conv2d(
+ self.pixel_decoder.mask_dim, num_classes, kernel_size=1, stride=1, padding=0
+ )
+ weight_init.c2_msra_fill(self.predictor)
+
+ @classmethod
+ def from_config(cls, cfg, input_shape: Dict[str, ShapeSpec]):
+ return {
+ "input_shape": {
+ k: v for k, v in input_shape.items() if k in cfg.MODEL.SEM_SEG_HEAD.IN_FEATURES
+ },
+ "ignore_value": cfg.MODEL.SEM_SEG_HEAD.IGNORE_VALUE,
+ "num_classes": cfg.MODEL.SEM_SEG_HEAD.NUM_CLASSES,
+ "pixel_decoder": build_pixel_decoder(cfg, input_shape),
+ "loss_weight": cfg.MODEL.SEM_SEG_HEAD.LOSS_WEIGHT,
+ }
+
+ def forward(self, features, targets=None):
+ """
+ Returns:
+ In training, returns (None, dict of losses)
+ In inference, returns (CxHxW logits, {})
+ """
+ x = self.layers(features)
+ if self.training:
+ return None, self.losses(x, targets)
+ else:
+ x = F.interpolate(
+ x, scale_factor=self.common_stride, mode="bilinear", align_corners=False
+ )
+ return x, {}
+
+ def layers(self, features):
+ x, _, _ = self.pixel_decoder.forward_features(features)
+ x = self.predictor(x)
+ return x
+
+ def losses(self, predictions, targets):
+ predictions = predictions.float() # https://github.com/pytorch/pytorch/issues/48163
+ predictions = F.interpolate(
+ predictions, scale_factor=self.common_stride, mode="bilinear", align_corners=False
+ )
+ loss = F.cross_entropy(
+ predictions, targets, reduction="mean", ignore_index=self.ignore_value
+ )
+ losses = {"loss_sem_seg": loss * self.loss_weight}
+ return losses
+
+
+@SEM_SEG_HEADS_REGISTRY.register()
+class PerPixelBaselinePlusHead(PerPixelBaselineHead):
+ def _load_from_state_dict(
+ self, state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, error_msgs
+ ):
+ version = local_metadata.get("version", None)
+ if version is None or version < 2:
+ # Do not warn if train from scratch
+ scratch = True
+ logger = logging.getLogger(__name__)
+ for k in list(state_dict.keys()):
+ newk = k
+ if "sem_seg_head" in k and not k.startswith(prefix + "predictor"):
+ newk = k.replace(prefix, prefix + "pixel_decoder.")
+ logger.debug(f"{k} ==> {newk}")
+ if newk != k:
+ state_dict[newk] = state_dict[k]
+ del state_dict[k]
+ scratch = False
+
+ if not scratch:
+ logger.warning(
+ f"Weight format of {self.__class__.__name__} have changed! "
+ "Please upgrade your models. Applying automatic conversion now ..."
+ )
+
+ @configurable
+ def __init__(
+ self,
+ input_shape: Dict[str, ShapeSpec],
+ *,
+ # extra parameters
+ transformer_predictor: nn.Module,
+ transformer_in_feature: str,
+ deep_supervision: bool,
+ # inherit parameters
+ num_classes: int,
+ pixel_decoder: nn.Module,
+ loss_weight: float = 1.0,
+ ignore_value: int = -1,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ input_shape: shapes (channels and stride) of the input features
+ transformer_predictor: the transformer decoder that makes prediction
+ transformer_in_feature: input feature name to the transformer_predictor
+ deep_supervision: whether or not to add supervision to the output of
+ every transformer decoder layer
+ num_classes: number of classes to predict
+ pixel_decoder: the pixel decoder module
+ loss_weight: loss weight
+ ignore_value: category id to be ignored during training.
+ """
+ super().__init__(
+ input_shape,
+ num_classes=num_classes,
+ pixel_decoder=pixel_decoder,
+ loss_weight=loss_weight,
+ ignore_value=ignore_value,
+ )
+
+ del self.predictor
+
+ self.predictor = transformer_predictor
+ self.transformer_in_feature = transformer_in_feature
+ self.deep_supervision = deep_supervision
+
+ @classmethod
+ def from_config(cls, cfg, input_shape: Dict[str, ShapeSpec]):
+ ret = super().from_config(cfg, input_shape)
+ ret["transformer_in_feature"] = cfg.MODEL.MASK_FORMER.TRANSFORMER_IN_FEATURE
+ if cfg.MODEL.MASK_FORMER.TRANSFORMER_IN_FEATURE == "transformer_encoder":
+ in_channels = cfg.MODEL.SEM_SEG_HEAD.CONVS_DIM
+ else:
+ in_channels = input_shape[ret["transformer_in_feature"]].channels
+ ret["transformer_predictor"] = StandardTransformerDecoder(
+ cfg, in_channels, mask_classification=False
+ )
+ ret["deep_supervision"] = cfg.MODEL.MASK_FORMER.DEEP_SUPERVISION
+ return ret
+
+ def forward(self, features, targets=None):
+ """
+ Returns:
+ In training, returns (None, dict of losses)
+ In inference, returns (CxHxW logits, {})
+ """
+ x, aux_outputs = self.layers(features)
+ if self.training:
+ if self.deep_supervision:
+ losses = self.losses(x, targets)
+ for i, aux_output in enumerate(aux_outputs):
+ losses["loss_sem_seg" + f"_{i}"] = self.losses(
+ aux_output["pred_masks"], targets
+ )["loss_sem_seg"]
+ return None, losses
+ else:
+ return None, self.losses(x, targets)
+ else:
+ x = F.interpolate(
+ x, scale_factor=self.common_stride, mode="bilinear", align_corners=False
+ )
+ return x, {}
+
+ def layers(self, features):
+ mask_features, transformer_encoder_features, _ = self.pixel_decoder.forward_features(features)
+ if self.transformer_in_feature == "transformer_encoder":
+ assert (
+ transformer_encoder_features is not None
+ ), "Please use the TransformerEncoderPixelDecoder."
+ predictions = self.predictor(transformer_encoder_features, mask_features)
+ else:
+ predictions = self.predictor(features[self.transformer_in_feature], mask_features)
+ if self.deep_supervision:
+ return predictions["pred_masks"], predictions["aux_outputs"]
+ else:
+ return predictions["pred_masks"], None
diff --git a/videocutler/mask2former/modeling/pixel_decoder/__init__.py b/videocutler/mask2former/modeling/pixel_decoder/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9020c2df23e2af280b7bb168b996ae9eaf312eb8
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/__init__.py
@@ -0,0 +1 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/videocutler/mask2former/modeling/pixel_decoder/fpn.py b/videocutler/mask2former/modeling/pixel_decoder/fpn.py
new file mode 100644
index 0000000000000000000000000000000000000000..7df65a178ce4a105d5c803ff5aa18aa56c44d374
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/fpn.py
@@ -0,0 +1,312 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import logging
+import numpy as np
+from typing import Callable, Dict, List, Optional, Tuple, Union
+
+import fvcore.nn.weight_init as weight_init
+import torch
+from torch import nn
+from torch.nn import functional as F
+from torch.nn.init import xavier_uniform_, constant_, uniform_, normal_
+from torch.cuda.amp import autocast
+
+from detectron2.config import configurable
+from detectron2.layers import Conv2d, DeformConv, ShapeSpec, get_norm
+from detectron2.modeling import SEM_SEG_HEADS_REGISTRY
+
+from ..transformer_decoder.position_encoding import PositionEmbeddingSine
+from ..transformer_decoder.transformer import TransformerEncoder, TransformerEncoderLayer, _get_clones, _get_activation_fn
+
+
+def build_pixel_decoder(cfg, input_shape):
+ """
+ Build a pixel decoder from `cfg.MODEL.MASK_FORMER.PIXEL_DECODER_NAME`.
+ """
+ name = cfg.MODEL.SEM_SEG_HEAD.PIXEL_DECODER_NAME
+ model = SEM_SEG_HEADS_REGISTRY.get(name)(cfg, input_shape)
+ forward_features = getattr(model, "forward_features", None)
+ if not callable(forward_features):
+ raise ValueError(
+ "Only SEM_SEG_HEADS with forward_features method can be used as pixel decoder. "
+ f"Please implement forward_features for {name} to only return mask features."
+ )
+ return model
+
+
+# This is a modified FPN decoder.
+@SEM_SEG_HEADS_REGISTRY.register()
+class BasePixelDecoder(nn.Module):
+ @configurable
+ def __init__(
+ self,
+ input_shape: Dict[str, ShapeSpec],
+ *,
+ conv_dim: int,
+ mask_dim: int,
+ norm: Optional[Union[str, Callable]] = None,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ input_shape: shapes (channels and stride) of the input features
+ conv_dims: number of output channels for the intermediate conv layers.
+ mask_dim: number of output channels for the final conv layer.
+ norm (str or callable): normalization for all conv layers
+ """
+ super().__init__()
+
+ input_shape = sorted(input_shape.items(), key=lambda x: x[1].stride)
+ self.in_features = [k for k, v in input_shape] # starting from "res2" to "res5"
+ feature_channels = [v.channels for k, v in input_shape]
+
+ lateral_convs = []
+ output_convs = []
+
+ use_bias = norm == ""
+ for idx, in_channels in enumerate(feature_channels):
+ if idx == len(self.in_features) - 1:
+ output_norm = get_norm(norm, conv_dim)
+ output_conv = Conv2d(
+ in_channels,
+ conv_dim,
+ kernel_size=3,
+ stride=1,
+ padding=1,
+ bias=use_bias,
+ norm=output_norm,
+ activation=F.relu,
+ )
+ weight_init.c2_xavier_fill(output_conv)
+ self.add_module("layer_{}".format(idx + 1), output_conv)
+
+ lateral_convs.append(None)
+ output_convs.append(output_conv)
+ else:
+ lateral_norm = get_norm(norm, conv_dim)
+ output_norm = get_norm(norm, conv_dim)
+
+ lateral_conv = Conv2d(
+ in_channels, conv_dim, kernel_size=1, bias=use_bias, norm=lateral_norm
+ )
+ output_conv = Conv2d(
+ conv_dim,
+ conv_dim,
+ kernel_size=3,
+ stride=1,
+ padding=1,
+ bias=use_bias,
+ norm=output_norm,
+ activation=F.relu,
+ )
+ weight_init.c2_xavier_fill(lateral_conv)
+ weight_init.c2_xavier_fill(output_conv)
+ self.add_module("adapter_{}".format(idx + 1), lateral_conv)
+ self.add_module("layer_{}".format(idx + 1), output_conv)
+
+ lateral_convs.append(lateral_conv)
+ output_convs.append(output_conv)
+ # Place convs into top-down order (from low to high resolution)
+ # to make the top-down computation in forward clearer.
+ self.lateral_convs = lateral_convs[::-1]
+ self.output_convs = output_convs[::-1]
+
+ self.mask_dim = mask_dim
+ self.mask_features = Conv2d(
+ conv_dim,
+ mask_dim,
+ kernel_size=3,
+ stride=1,
+ padding=1,
+ )
+ weight_init.c2_xavier_fill(self.mask_features)
+
+ self.maskformer_num_feature_levels = 3 # always use 3 scales
+
+ @classmethod
+ def from_config(cls, cfg, input_shape: Dict[str, ShapeSpec]):
+ ret = {}
+ ret["input_shape"] = {
+ k: v for k, v in input_shape.items() if k in cfg.MODEL.SEM_SEG_HEAD.IN_FEATURES
+ }
+ ret["conv_dim"] = cfg.MODEL.SEM_SEG_HEAD.CONVS_DIM
+ ret["mask_dim"] = cfg.MODEL.SEM_SEG_HEAD.MASK_DIM
+ ret["norm"] = cfg.MODEL.SEM_SEG_HEAD.NORM
+ return ret
+
+ def forward_features(self, features):
+ multi_scale_features = []
+ num_cur_levels = 0
+ # Reverse feature maps into top-down order (from low to high resolution)
+ for idx, f in enumerate(self.in_features[::-1]):
+ x = features[f]
+ lateral_conv = self.lateral_convs[idx]
+ output_conv = self.output_convs[idx]
+ if lateral_conv is None:
+ y = output_conv(x)
+ else:
+ cur_fpn = lateral_conv(x)
+ # Following FPN implementation, we use nearest upsampling here
+ y = cur_fpn + F.interpolate(y, size=cur_fpn.shape[-2:], mode="nearest")
+ y = output_conv(y)
+ if num_cur_levels < self.maskformer_num_feature_levels:
+ multi_scale_features.append(y)
+ num_cur_levels += 1
+ return self.mask_features(y), None, multi_scale_features
+
+ def forward(self, features, targets=None):
+ logger = logging.getLogger(__name__)
+ logger.warning("Calling forward() may cause unpredicted behavior of PixelDecoder module.")
+ return self.forward_features(features)
+
+
+class TransformerEncoderOnly(nn.Module):
+ def __init__(
+ self,
+ d_model=512,
+ nhead=8,
+ num_encoder_layers=6,
+ dim_feedforward=2048,
+ dropout=0.1,
+ activation="relu",
+ normalize_before=False,
+ ):
+ super().__init__()
+
+ encoder_layer = TransformerEncoderLayer(
+ d_model, nhead, dim_feedforward, dropout, activation, normalize_before
+ )
+ encoder_norm = nn.LayerNorm(d_model) if normalize_before else None
+ self.encoder = TransformerEncoder(encoder_layer, num_encoder_layers, encoder_norm)
+
+ self._reset_parameters()
+
+ self.d_model = d_model
+ self.nhead = nhead
+
+ def _reset_parameters(self):
+ for p in self.parameters():
+ if p.dim() > 1:
+ nn.init.xavier_uniform_(p)
+
+ def forward(self, src, mask, pos_embed):
+ # flatten NxCxHxW to HWxNxC
+ bs, c, h, w = src.shape
+ src = src.flatten(2).permute(2, 0, 1)
+ pos_embed = pos_embed.flatten(2).permute(2, 0, 1)
+ if mask is not None:
+ mask = mask.flatten(1)
+
+ memory = self.encoder(src, src_key_padding_mask=mask, pos=pos_embed)
+ return memory.permute(1, 2, 0).view(bs, c, h, w)
+
+
+# This is a modified FPN decoder with extra Transformer encoder that processes the lowest-resolution feature map.
+@SEM_SEG_HEADS_REGISTRY.register()
+class TransformerEncoderPixelDecoder(BasePixelDecoder):
+ @configurable
+ def __init__(
+ self,
+ input_shape: Dict[str, ShapeSpec],
+ *,
+ transformer_dropout: float,
+ transformer_nheads: int,
+ transformer_dim_feedforward: int,
+ transformer_enc_layers: int,
+ transformer_pre_norm: bool,
+ conv_dim: int,
+ mask_dim: int,
+ norm: Optional[Union[str, Callable]] = None,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ input_shape: shapes (channels and stride) of the input features
+ transformer_dropout: dropout probability in transformer
+ transformer_nheads: number of heads in transformer
+ transformer_dim_feedforward: dimension of feedforward network
+ transformer_enc_layers: number of transformer encoder layers
+ transformer_pre_norm: whether to use pre-layernorm or not
+ conv_dims: number of output channels for the intermediate conv layers.
+ mask_dim: number of output channels for the final conv layer.
+ norm (str or callable): normalization for all conv layers
+ """
+ super().__init__(input_shape, conv_dim=conv_dim, mask_dim=mask_dim, norm=norm)
+
+ input_shape = sorted(input_shape.items(), key=lambda x: x[1].stride)
+ self.in_features = [k for k, v in input_shape] # starting from "res2" to "res5"
+ feature_strides = [v.stride for k, v in input_shape]
+ feature_channels = [v.channels for k, v in input_shape]
+
+ in_channels = feature_channels[len(self.in_features) - 1]
+ self.input_proj = Conv2d(in_channels, conv_dim, kernel_size=1)
+ weight_init.c2_xavier_fill(self.input_proj)
+ self.transformer = TransformerEncoderOnly(
+ d_model=conv_dim,
+ dropout=transformer_dropout,
+ nhead=transformer_nheads,
+ dim_feedforward=transformer_dim_feedforward,
+ num_encoder_layers=transformer_enc_layers,
+ normalize_before=transformer_pre_norm,
+ )
+ N_steps = conv_dim // 2
+ self.pe_layer = PositionEmbeddingSine(N_steps, normalize=True)
+
+ # update layer
+ use_bias = norm == ""
+ output_norm = get_norm(norm, conv_dim)
+ output_conv = Conv2d(
+ conv_dim,
+ conv_dim,
+ kernel_size=3,
+ stride=1,
+ padding=1,
+ bias=use_bias,
+ norm=output_norm,
+ activation=F.relu,
+ )
+ weight_init.c2_xavier_fill(output_conv)
+ delattr(self, "layer_{}".format(len(self.in_features)))
+ self.add_module("layer_{}".format(len(self.in_features)), output_conv)
+ self.output_convs[0] = output_conv
+
+ @classmethod
+ def from_config(cls, cfg, input_shape: Dict[str, ShapeSpec]):
+ ret = super().from_config(cfg, input_shape)
+ ret["transformer_dropout"] = cfg.MODEL.MASK_FORMER.DROPOUT
+ ret["transformer_nheads"] = cfg.MODEL.MASK_FORMER.NHEADS
+ ret["transformer_dim_feedforward"] = cfg.MODEL.MASK_FORMER.DIM_FEEDFORWARD
+ ret[
+ "transformer_enc_layers"
+ ] = cfg.MODEL.SEM_SEG_HEAD.TRANSFORMER_ENC_LAYERS # a separate config
+ ret["transformer_pre_norm"] = cfg.MODEL.MASK_FORMER.PRE_NORM
+ return ret
+
+ def forward_features(self, features):
+ multi_scale_features = []
+ num_cur_levels = 0
+ # Reverse feature maps into top-down order (from low to high resolution)
+ for idx, f in enumerate(self.in_features[::-1]):
+ x = features[f]
+ lateral_conv = self.lateral_convs[idx]
+ output_conv = self.output_convs[idx]
+ if lateral_conv is None:
+ transformer = self.input_proj(x)
+ pos = self.pe_layer(x)
+ transformer = self.transformer(transformer, None, pos)
+ y = output_conv(transformer)
+ # save intermediate feature as input to Transformer decoder
+ transformer_encoder_features = transformer
+ else:
+ cur_fpn = lateral_conv(x)
+ # Following FPN implementation, we use nearest upsampling here
+ y = cur_fpn + F.interpolate(y, size=cur_fpn.shape[-2:], mode="nearest")
+ y = output_conv(y)
+ if num_cur_levels < self.maskformer_num_feature_levels:
+ multi_scale_features.append(y)
+ num_cur_levels += 1
+ return self.mask_features(y), transformer_encoder_features, multi_scale_features
+
+ def forward(self, features, targets=None):
+ logger = logging.getLogger(__name__)
+ logger.warning("Calling forward() may cause unpredicted behavior of PixelDecoder module.")
+ return self.forward_features(features)
diff --git a/videocutler/mask2former/modeling/pixel_decoder/msdeformattn.py b/videocutler/mask2former/modeling/pixel_decoder/msdeformattn.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ff1a81a3ed0c05464dad2143830bacac5951dfe
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/msdeformattn.py
@@ -0,0 +1,358 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import logging
+import numpy as np
+from typing import Callable, Dict, List, Optional, Tuple, Union
+
+import fvcore.nn.weight_init as weight_init
+import torch
+from torch import nn
+from torch.nn import functional as F
+from torch.nn.init import xavier_uniform_, constant_, uniform_, normal_
+from torch.cuda.amp import autocast
+
+from detectron2.config import configurable
+from detectron2.layers import Conv2d, ShapeSpec, get_norm
+from detectron2.modeling import SEM_SEG_HEADS_REGISTRY
+
+from ..transformer_decoder.position_encoding import PositionEmbeddingSine
+from ..transformer_decoder.transformer import _get_clones, _get_activation_fn
+from .ops.modules import MSDeformAttn
+
+
+# MSDeformAttn Transformer encoder in deformable detr
+class MSDeformAttnTransformerEncoderOnly(nn.Module):
+ def __init__(self, d_model=256, nhead=8,
+ num_encoder_layers=6, dim_feedforward=1024, dropout=0.1,
+ activation="relu",
+ num_feature_levels=4, enc_n_points=4,
+ ):
+ super().__init__()
+
+ self.d_model = d_model
+ self.nhead = nhead
+
+ encoder_layer = MSDeformAttnTransformerEncoderLayer(d_model, dim_feedforward,
+ dropout, activation,
+ num_feature_levels, nhead, enc_n_points)
+ self.encoder = MSDeformAttnTransformerEncoder(encoder_layer, num_encoder_layers)
+
+ self.level_embed = nn.Parameter(torch.Tensor(num_feature_levels, d_model))
+
+ self._reset_parameters()
+
+ def _reset_parameters(self):
+ for p in self.parameters():
+ if p.dim() > 1:
+ nn.init.xavier_uniform_(p)
+ for m in self.modules():
+ if isinstance(m, MSDeformAttn):
+ m._reset_parameters()
+ normal_(self.level_embed)
+
+ def get_valid_ratio(self, mask):
+ _, H, W = mask.shape
+ valid_H = torch.sum(~mask[:, :, 0], 1)
+ valid_W = torch.sum(~mask[:, 0, :], 1)
+ valid_ratio_h = valid_H.float() / H
+ valid_ratio_w = valid_W.float() / W
+ valid_ratio = torch.stack([valid_ratio_w, valid_ratio_h], -1)
+ return valid_ratio
+
+ def forward(self, srcs, pos_embeds):
+ masks = [torch.zeros((x.size(0), x.size(2), x.size(3)), device=x.device, dtype=torch.bool) for x in srcs]
+ # prepare input for encoder
+ src_flatten = []
+ mask_flatten = []
+ lvl_pos_embed_flatten = []
+ spatial_shapes = []
+ for lvl, (src, mask, pos_embed) in enumerate(zip(srcs, masks, pos_embeds)):
+ bs, c, h, w = src.shape
+ spatial_shape = (h, w)
+ spatial_shapes.append(spatial_shape)
+ src = src.flatten(2).transpose(1, 2)
+ mask = mask.flatten(1)
+ pos_embed = pos_embed.flatten(2).transpose(1, 2)
+ lvl_pos_embed = pos_embed + self.level_embed[lvl].view(1, 1, -1)
+ lvl_pos_embed_flatten.append(lvl_pos_embed)
+ src_flatten.append(src)
+ mask_flatten.append(mask)
+ src_flatten = torch.cat(src_flatten, 1)
+ mask_flatten = torch.cat(mask_flatten, 1)
+ lvl_pos_embed_flatten = torch.cat(lvl_pos_embed_flatten, 1)
+ spatial_shapes = torch.as_tensor(spatial_shapes, dtype=torch.long, device=src_flatten.device)
+ level_start_index = torch.cat((spatial_shapes.new_zeros((1, )), spatial_shapes.prod(1).cumsum(0)[:-1]))
+ valid_ratios = torch.stack([self.get_valid_ratio(m) for m in masks], 1)
+
+ # encoder
+ memory = self.encoder(src_flatten, spatial_shapes, level_start_index, valid_ratios, lvl_pos_embed_flatten, mask_flatten)
+
+ return memory, spatial_shapes, level_start_index
+
+
+class MSDeformAttnTransformerEncoderLayer(nn.Module):
+ def __init__(self,
+ d_model=256, d_ffn=1024,
+ dropout=0.1, activation="relu",
+ n_levels=4, n_heads=8, n_points=4):
+ super().__init__()
+
+ # self attention
+ self.self_attn = MSDeformAttn(d_model, n_levels, n_heads, n_points)
+ self.dropout1 = nn.Dropout(dropout)
+ self.norm1 = nn.LayerNorm(d_model)
+
+ # ffn
+ self.linear1 = nn.Linear(d_model, d_ffn)
+ self.activation = _get_activation_fn(activation)
+ self.dropout2 = nn.Dropout(dropout)
+ self.linear2 = nn.Linear(d_ffn, d_model)
+ self.dropout3 = nn.Dropout(dropout)
+ self.norm2 = nn.LayerNorm(d_model)
+
+ @staticmethod
+ def with_pos_embed(tensor, pos):
+ return tensor if pos is None else tensor + pos
+
+ def forward_ffn(self, src):
+ src2 = self.linear2(self.dropout2(self.activation(self.linear1(src))))
+ src = src + self.dropout3(src2)
+ src = self.norm2(src)
+ return src
+
+ def forward(self, src, pos, reference_points, spatial_shapes, level_start_index, padding_mask=None):
+ # self attention
+ src2 = self.self_attn(self.with_pos_embed(src, pos), reference_points, src, spatial_shapes, level_start_index, padding_mask)
+ src = src + self.dropout1(src2)
+ src = self.norm1(src)
+
+ # ffn
+ src = self.forward_ffn(src)
+
+ return src
+
+
+class MSDeformAttnTransformerEncoder(nn.Module):
+ def __init__(self, encoder_layer, num_layers):
+ super().__init__()
+ self.layers = _get_clones(encoder_layer, num_layers)
+ self.num_layers = num_layers
+
+ @staticmethod
+ def get_reference_points(spatial_shapes, valid_ratios, device):
+ reference_points_list = []
+ for lvl, (H_, W_) in enumerate(spatial_shapes):
+
+ ref_y, ref_x = torch.meshgrid(torch.linspace(0.5, H_ - 0.5, H_, dtype=torch.float32, device=device),
+ torch.linspace(0.5, W_ - 0.5, W_, dtype=torch.float32, device=device))
+ ref_y = ref_y.reshape(-1)[None] / (valid_ratios[:, None, lvl, 1] * H_)
+ ref_x = ref_x.reshape(-1)[None] / (valid_ratios[:, None, lvl, 0] * W_)
+ ref = torch.stack((ref_x, ref_y), -1)
+ reference_points_list.append(ref)
+ reference_points = torch.cat(reference_points_list, 1)
+ reference_points = reference_points[:, :, None] * valid_ratios[:, None]
+ return reference_points
+
+ def forward(self, src, spatial_shapes, level_start_index, valid_ratios, pos=None, padding_mask=None):
+ output = src
+ reference_points = self.get_reference_points(spatial_shapes, valid_ratios, device=src.device)
+ for _, layer in enumerate(self.layers):
+ output = layer(output, pos, reference_points, spatial_shapes, level_start_index, padding_mask)
+
+ return output
+
+
+@SEM_SEG_HEADS_REGISTRY.register()
+class MSDeformAttnPixelDecoder(nn.Module):
+ @configurable
+ def __init__(
+ self,
+ input_shape: Dict[str, ShapeSpec],
+ *,
+ transformer_dropout: float,
+ transformer_nheads: int,
+ transformer_dim_feedforward: int,
+ transformer_enc_layers: int,
+ conv_dim: int,
+ mask_dim: int,
+ norm: Optional[Union[str, Callable]] = None,
+ # deformable transformer encoder args
+ transformer_in_features: List[str],
+ common_stride: int,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ input_shape: shapes (channels and stride) of the input features
+ transformer_dropout: dropout probability in transformer
+ transformer_nheads: number of heads in transformer
+ transformer_dim_feedforward: dimension of feedforward network
+ transformer_enc_layers: number of transformer encoder layers
+ conv_dims: number of output channels for the intermediate conv layers.
+ mask_dim: number of output channels for the final conv layer.
+ norm (str or callable): normalization for all conv layers
+ """
+ super().__init__()
+ transformer_input_shape = {
+ k: v for k, v in input_shape.items() if k in transformer_in_features
+ }
+
+ # this is the input shape of pixel decoder
+ input_shape = sorted(input_shape.items(), key=lambda x: x[1].stride)
+ self.in_features = [k for k, v in input_shape] # starting from "res2" to "res5"
+ self.feature_strides = [v.stride for k, v in input_shape]
+ self.feature_channels = [v.channels for k, v in input_shape]
+
+ # this is the input shape of transformer encoder (could use less features than pixel decoder
+ transformer_input_shape = sorted(transformer_input_shape.items(), key=lambda x: x[1].stride)
+ self.transformer_in_features = [k for k, v in transformer_input_shape] # starting from "res2" to "res5"
+ transformer_in_channels = [v.channels for k, v in transformer_input_shape]
+ self.transformer_feature_strides = [v.stride for k, v in transformer_input_shape] # to decide extra FPN layers
+
+ self.transformer_num_feature_levels = len(self.transformer_in_features)
+ if self.transformer_num_feature_levels > 1:
+ input_proj_list = []
+ # from low resolution to high resolution (res5 -> res2)
+ for in_channels in transformer_in_channels[::-1]:
+ input_proj_list.append(nn.Sequential(
+ nn.Conv2d(in_channels, conv_dim, kernel_size=1),
+ nn.GroupNorm(32, conv_dim),
+ ))
+ self.input_proj = nn.ModuleList(input_proj_list)
+ else:
+ self.input_proj = nn.ModuleList([
+ nn.Sequential(
+ nn.Conv2d(transformer_in_channels[-1], conv_dim, kernel_size=1),
+ nn.GroupNorm(32, conv_dim),
+ )])
+
+ for proj in self.input_proj:
+ nn.init.xavier_uniform_(proj[0].weight, gain=1)
+ nn.init.constant_(proj[0].bias, 0)
+
+ self.transformer = MSDeformAttnTransformerEncoderOnly(
+ d_model=conv_dim,
+ dropout=transformer_dropout,
+ nhead=transformer_nheads,
+ dim_feedforward=transformer_dim_feedforward,
+ num_encoder_layers=transformer_enc_layers,
+ num_feature_levels=self.transformer_num_feature_levels,
+ )
+ N_steps = conv_dim // 2
+ self.pe_layer = PositionEmbeddingSine(N_steps, normalize=True)
+
+ self.mask_dim = mask_dim
+ # use 1x1 conv instead
+ self.mask_features = Conv2d(
+ conv_dim,
+ mask_dim,
+ kernel_size=1,
+ stride=1,
+ padding=0,
+ )
+ weight_init.c2_xavier_fill(self.mask_features)
+
+ self.maskformer_num_feature_levels = 3 # always use 3 scales
+ self.common_stride = common_stride
+
+ # extra fpn levels
+ stride = min(self.transformer_feature_strides)
+ self.num_fpn_levels = int(np.log2(stride) - np.log2(self.common_stride))
+
+ lateral_convs = []
+ output_convs = []
+
+ use_bias = norm == ""
+ for idx, in_channels in enumerate(self.feature_channels[:self.num_fpn_levels]):
+ lateral_norm = get_norm(norm, conv_dim)
+ output_norm = get_norm(norm, conv_dim)
+
+ lateral_conv = Conv2d(
+ in_channels, conv_dim, kernel_size=1, bias=use_bias, norm=lateral_norm
+ )
+ output_conv = Conv2d(
+ conv_dim,
+ conv_dim,
+ kernel_size=3,
+ stride=1,
+ padding=1,
+ bias=use_bias,
+ norm=output_norm,
+ activation=F.relu,
+ )
+ weight_init.c2_xavier_fill(lateral_conv)
+ weight_init.c2_xavier_fill(output_conv)
+ self.add_module("adapter_{}".format(idx + 1), lateral_conv)
+ self.add_module("layer_{}".format(idx + 1), output_conv)
+
+ lateral_convs.append(lateral_conv)
+ output_convs.append(output_conv)
+ # Place convs into top-down order (from low to high resolution)
+ # to make the top-down computation in forward clearer.
+ self.lateral_convs = lateral_convs[::-1]
+ self.output_convs = output_convs[::-1]
+
+ @classmethod
+ def from_config(cls, cfg, input_shape: Dict[str, ShapeSpec]):
+ ret = {}
+ ret["input_shape"] = {
+ k: v for k, v in input_shape.items() if k in cfg.MODEL.SEM_SEG_HEAD.IN_FEATURES
+ }
+ ret["conv_dim"] = cfg.MODEL.SEM_SEG_HEAD.CONVS_DIM
+ ret["mask_dim"] = cfg.MODEL.SEM_SEG_HEAD.MASK_DIM
+ ret["norm"] = cfg.MODEL.SEM_SEG_HEAD.NORM
+ ret["transformer_dropout"] = cfg.MODEL.MASK_FORMER.DROPOUT
+ ret["transformer_nheads"] = cfg.MODEL.MASK_FORMER.NHEADS
+ # ret["transformer_dim_feedforward"] = cfg.MODEL.MASK_FORMER.DIM_FEEDFORWARD
+ ret["transformer_dim_feedforward"] = 1024 # use 1024 for deformable transformer encoder
+ ret[
+ "transformer_enc_layers"
+ ] = cfg.MODEL.SEM_SEG_HEAD.TRANSFORMER_ENC_LAYERS # a separate config
+ ret["transformer_in_features"] = cfg.MODEL.SEM_SEG_HEAD.DEFORMABLE_TRANSFORMER_ENCODER_IN_FEATURES
+ ret["common_stride"] = cfg.MODEL.SEM_SEG_HEAD.COMMON_STRIDE
+ return ret
+
+ @autocast(enabled=False)
+ def forward_features(self, features):
+ srcs = []
+ pos = []
+ # Reverse feature maps into top-down order (from low to high resolution)
+ for idx, f in enumerate(self.transformer_in_features[::-1]):
+ x = features[f].float() # deformable detr does not support half precision
+ srcs.append(self.input_proj[idx](x))
+ pos.append(self.pe_layer(x))
+
+ y, spatial_shapes, level_start_index = self.transformer(srcs, pos)
+ bs = y.shape[0]
+
+ split_size_or_sections = [None] * self.transformer_num_feature_levels
+ for i in range(self.transformer_num_feature_levels):
+ if i < self.transformer_num_feature_levels - 1:
+ split_size_or_sections[i] = level_start_index[i + 1] - level_start_index[i]
+ else:
+ split_size_or_sections[i] = y.shape[1] - level_start_index[i]
+ y = torch.split(y, split_size_or_sections, dim=1)
+
+ out = []
+ multi_scale_features = []
+ num_cur_levels = 0
+ for i, z in enumerate(y):
+ out.append(z.transpose(1, 2).view(bs, -1, spatial_shapes[i][0], spatial_shapes[i][1]))
+
+ # append `out` with extra FPN levels
+ # Reverse feature maps into top-down order (from low to high resolution)
+ for idx, f in enumerate(self.in_features[:self.num_fpn_levels][::-1]):
+ x = features[f].float()
+ lateral_conv = self.lateral_convs[idx]
+ output_conv = self.output_convs[idx]
+ cur_fpn = lateral_conv(x)
+ # Following FPN implementation, we use nearest upsampling here
+ y = cur_fpn + F.interpolate(out[-1], size=cur_fpn.shape[-2:], mode="bilinear", align_corners=False)
+ y = output_conv(y)
+ out.append(y)
+
+ for o in out:
+ if num_cur_levels < self.maskformer_num_feature_levels:
+ multi_scale_features.append(o)
+ num_cur_levels += 1
+
+ return self.mask_features(out[-1]), out[0], multi_scale_features
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/functions/__init__.py b/videocutler/mask2former/modeling/pixel_decoder/ops/functions/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..2b06b5ac538b63bdb9a6c82e4635b95bb5491d5b
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/functions/__init__.py
@@ -0,0 +1,13 @@
+# ------------------------------------------------------------------------------------------------
+# Deformable DETR
+# Copyright (c) 2020 SenseTime. All Rights Reserved.
+# Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+# ------------------------------------------------------------------------------------------------
+# Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+# ------------------------------------------------------------------------------------------------
+
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+
+from .ms_deform_attn_func import MSDeformAttnFunction
+
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/functions/ms_deform_attn_func.py b/videocutler/mask2former/modeling/pixel_decoder/ops/functions/ms_deform_attn_func.py
new file mode 100644
index 0000000000000000000000000000000000000000..94a36ab85b7c5f9ecee342db91a5d5731740740f
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/functions/ms_deform_attn_func.py
@@ -0,0 +1,72 @@
+# ------------------------------------------------------------------------------------------------
+# Deformable DETR
+# Copyright (c) 2020 SenseTime. All Rights Reserved.
+# Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+# ------------------------------------------------------------------------------------------------
+# Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+# ------------------------------------------------------------------------------------------------
+
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+
+from __future__ import absolute_import
+from __future__ import print_function
+from __future__ import division
+
+import torch
+import torch.nn.functional as F
+from torch.autograd import Function
+from torch.autograd.function import once_differentiable
+
+try:
+ import MultiScaleDeformableAttention as MSDA
+except ModuleNotFoundError as e:
+ info_string = (
+ "\n\nPlease compile MultiScaleDeformableAttention CUDA op with the following commands:\n"
+ "\t`cd mask2former/modeling/pixel_decoder/ops`\n"
+ "\t`sh make.sh`\n"
+ )
+ raise ModuleNotFoundError(info_string)
+
+
+class MSDeformAttnFunction(Function):
+ @staticmethod
+ def forward(ctx, value, value_spatial_shapes, value_level_start_index, sampling_locations, attention_weights, im2col_step):
+ ctx.im2col_step = im2col_step
+ output = MSDA.ms_deform_attn_forward(
+ value, value_spatial_shapes, value_level_start_index, sampling_locations, attention_weights, ctx.im2col_step)
+ ctx.save_for_backward(value, value_spatial_shapes, value_level_start_index, sampling_locations, attention_weights)
+ return output
+
+ @staticmethod
+ @once_differentiable
+ def backward(ctx, grad_output):
+ value, value_spatial_shapes, value_level_start_index, sampling_locations, attention_weights = ctx.saved_tensors
+ grad_value, grad_sampling_loc, grad_attn_weight = \
+ MSDA.ms_deform_attn_backward(
+ value, value_spatial_shapes, value_level_start_index, sampling_locations, attention_weights, grad_output, ctx.im2col_step)
+
+ return grad_value, None, None, grad_sampling_loc, grad_attn_weight, None
+
+
+def ms_deform_attn_core_pytorch(value, value_spatial_shapes, sampling_locations, attention_weights):
+ # for debug and test only,
+ # need to use cuda version instead
+ N_, S_, M_, D_ = value.shape
+ _, Lq_, M_, L_, P_, _ = sampling_locations.shape
+ value_list = value.split([H_ * W_ for H_, W_ in value_spatial_shapes], dim=1)
+ sampling_grids = 2 * sampling_locations - 1
+ sampling_value_list = []
+ for lid_, (H_, W_) in enumerate(value_spatial_shapes):
+ # N_, H_*W_, M_, D_ -> N_, H_*W_, M_*D_ -> N_, M_*D_, H_*W_ -> N_*M_, D_, H_, W_
+ value_l_ = value_list[lid_].flatten(2).transpose(1, 2).reshape(N_*M_, D_, H_, W_)
+ # N_, Lq_, M_, P_, 2 -> N_, M_, Lq_, P_, 2 -> N_*M_, Lq_, P_, 2
+ sampling_grid_l_ = sampling_grids[:, :, :, lid_].transpose(1, 2).flatten(0, 1)
+ # N_*M_, D_, Lq_, P_
+ sampling_value_l_ = F.grid_sample(value_l_, sampling_grid_l_,
+ mode='bilinear', padding_mode='zeros', align_corners=False)
+ sampling_value_list.append(sampling_value_l_)
+ # (N_, Lq_, M_, L_, P_) -> (N_, M_, Lq_, L_, P_) -> (N_, M_, 1, Lq_, L_*P_)
+ attention_weights = attention_weights.transpose(1, 2).reshape(N_*M_, 1, Lq_, L_*P_)
+ output = (torch.stack(sampling_value_list, dim=-2).flatten(-2) * attention_weights).sum(-1).view(N_, M_*D_, Lq_)
+ return output.transpose(1, 2).contiguous()
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/make.sh b/videocutler/mask2former/modeling/pixel_decoder/ops/make.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7b38cdbf48f3571d986a33e7563b517952b51bb2
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/make.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+# ------------------------------------------------------------------------------------------------
+# Deformable DETR
+# Copyright (c) 2020 SenseTime. All Rights Reserved.
+# Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+# ------------------------------------------------------------------------------------------------
+# Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+# ------------------------------------------------------------------------------------------------
+
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+
+python setup.py build install
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/modules/__init__.py b/videocutler/mask2former/modeling/pixel_decoder/ops/modules/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..6fdbf03359958f3d67ab00f879bf6b61a6c8f06a
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/modules/__init__.py
@@ -0,0 +1,12 @@
+# ------------------------------------------------------------------------------------------------
+# Deformable DETR
+# Copyright (c) 2020 SenseTime. All Rights Reserved.
+# Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+# ------------------------------------------------------------------------------------------------
+# Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+# ------------------------------------------------------------------------------------------------
+
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+
+from .ms_deform_attn import MSDeformAttn
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/modules/ms_deform_attn.py b/videocutler/mask2former/modeling/pixel_decoder/ops/modules/ms_deform_attn.py
new file mode 100644
index 0000000000000000000000000000000000000000..e7b4c42ea504a0859ccadd72646919c941e72f73
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/modules/ms_deform_attn.py
@@ -0,0 +1,125 @@
+# ------------------------------------------------------------------------------------------------
+# Deformable DETR
+# Copyright (c) 2020 SenseTime. All Rights Reserved.
+# Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+# ------------------------------------------------------------------------------------------------
+# Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+# ------------------------------------------------------------------------------------------------
+
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+
+from __future__ import absolute_import
+from __future__ import print_function
+from __future__ import division
+
+import warnings
+import math
+
+import torch
+from torch import nn
+import torch.nn.functional as F
+from torch.nn.init import xavier_uniform_, constant_
+
+from ..functions import MSDeformAttnFunction
+from ..functions.ms_deform_attn_func import ms_deform_attn_core_pytorch
+
+
+def _is_power_of_2(n):
+ if (not isinstance(n, int)) or (n < 0):
+ raise ValueError("invalid input for _is_power_of_2: {} (type: {})".format(n, type(n)))
+ return (n & (n-1) == 0) and n != 0
+
+
+class MSDeformAttn(nn.Module):
+ def __init__(self, d_model=256, n_levels=4, n_heads=8, n_points=4):
+ """
+ Multi-Scale Deformable Attention Module
+ :param d_model hidden dimension
+ :param n_levels number of feature levels
+ :param n_heads number of attention heads
+ :param n_points number of sampling points per attention head per feature level
+ """
+ super().__init__()
+ if d_model % n_heads != 0:
+ raise ValueError('d_model must be divisible by n_heads, but got {} and {}'.format(d_model, n_heads))
+ _d_per_head = d_model // n_heads
+ # you'd better set _d_per_head to a power of 2 which is more efficient in our CUDA implementation
+ if not _is_power_of_2(_d_per_head):
+ warnings.warn("You'd better set d_model in MSDeformAttn to make the dimension of each attention head a power of 2 "
+ "which is more efficient in our CUDA implementation.")
+
+ self.im2col_step = 128
+
+ self.d_model = d_model
+ self.n_levels = n_levels
+ self.n_heads = n_heads
+ self.n_points = n_points
+
+ self.sampling_offsets = nn.Linear(d_model, n_heads * n_levels * n_points * 2)
+ self.attention_weights = nn.Linear(d_model, n_heads * n_levels * n_points)
+ self.value_proj = nn.Linear(d_model, d_model)
+ self.output_proj = nn.Linear(d_model, d_model)
+
+ self._reset_parameters()
+
+ def _reset_parameters(self):
+ constant_(self.sampling_offsets.weight.data, 0.)
+ thetas = torch.arange(self.n_heads, dtype=torch.float32) * (2.0 * math.pi / self.n_heads)
+ grid_init = torch.stack([thetas.cos(), thetas.sin()], -1)
+ grid_init = (grid_init / grid_init.abs().max(-1, keepdim=True)[0]).view(self.n_heads, 1, 1, 2).repeat(1, self.n_levels, self.n_points, 1)
+ for i in range(self.n_points):
+ grid_init[:, :, i, :] *= i + 1
+ with torch.no_grad():
+ self.sampling_offsets.bias = nn.Parameter(grid_init.view(-1))
+ constant_(self.attention_weights.weight.data, 0.)
+ constant_(self.attention_weights.bias.data, 0.)
+ xavier_uniform_(self.value_proj.weight.data)
+ constant_(self.value_proj.bias.data, 0.)
+ xavier_uniform_(self.output_proj.weight.data)
+ constant_(self.output_proj.bias.data, 0.)
+
+ def forward(self, query, reference_points, input_flatten, input_spatial_shapes, input_level_start_index, input_padding_mask=None):
+ """
+ :param query (N, Length_{query}, C)
+ :param reference_points (N, Length_{query}, n_levels, 2), range in [0, 1], top-left (0,0), bottom-right (1, 1), including padding area
+ or (N, Length_{query}, n_levels, 4), add additional (w, h) to form reference boxes
+ :param input_flatten (N, \sum_{l=0}^{L-1} H_l \cdot W_l, C)
+ :param input_spatial_shapes (n_levels, 2), [(H_0, W_0), (H_1, W_1), ..., (H_{L-1}, W_{L-1})]
+ :param input_level_start_index (n_levels, ), [0, H_0*W_0, H_0*W_0+H_1*W_1, H_0*W_0+H_1*W_1+H_2*W_2, ..., H_0*W_0+H_1*W_1+...+H_{L-1}*W_{L-1}]
+ :param input_padding_mask (N, \sum_{l=0}^{L-1} H_l \cdot W_l), True for padding elements, False for non-padding elements
+
+ :return output (N, Length_{query}, C)
+ """
+ N, Len_q, _ = query.shape
+ N, Len_in, _ = input_flatten.shape
+ assert (input_spatial_shapes[:, 0] * input_spatial_shapes[:, 1]).sum() == Len_in
+
+ value = self.value_proj(input_flatten)
+ if input_padding_mask is not None:
+ value = value.masked_fill(input_padding_mask[..., None], float(0))
+ value = value.view(N, Len_in, self.n_heads, self.d_model // self.n_heads)
+ sampling_offsets = self.sampling_offsets(query).view(N, Len_q, self.n_heads, self.n_levels, self.n_points, 2)
+ attention_weights = self.attention_weights(query).view(N, Len_q, self.n_heads, self.n_levels * self.n_points)
+ attention_weights = F.softmax(attention_weights, -1).view(N, Len_q, self.n_heads, self.n_levels, self.n_points)
+ # N, Len_q, n_heads, n_levels, n_points, 2
+ if reference_points.shape[-1] == 2:
+ offset_normalizer = torch.stack([input_spatial_shapes[..., 1], input_spatial_shapes[..., 0]], -1)
+ sampling_locations = reference_points[:, :, None, :, None, :] \
+ + sampling_offsets / offset_normalizer[None, None, None, :, None, :]
+ elif reference_points.shape[-1] == 4:
+ sampling_locations = reference_points[:, :, None, :, None, :2] \
+ + sampling_offsets / self.n_points * reference_points[:, :, None, :, None, 2:] * 0.5
+ else:
+ raise ValueError(
+ 'Last dim of reference_points must be 2 or 4, but get {} instead.'.format(reference_points.shape[-1]))
+ try:
+ output = MSDeformAttnFunction.apply(
+ value, input_spatial_shapes, input_level_start_index, sampling_locations, attention_weights, self.im2col_step)
+ except:
+ # CPU
+ output = ms_deform_attn_core_pytorch(value, input_spatial_shapes, sampling_locations, attention_weights)
+ # # For FLOPs calculation only
+ # output = ms_deform_attn_core_pytorch(value, input_spatial_shapes, sampling_locations, attention_weights)
+ output = self.output_proj(output)
+ return output
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/setup.py b/videocutler/mask2former/modeling/pixel_decoder/ops/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..3b57ad313ac8f9b6586892142da8ba943e516cec
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/setup.py
@@ -0,0 +1,78 @@
+# ------------------------------------------------------------------------------------------------
+# Deformable DETR
+# Copyright (c) 2020 SenseTime. All Rights Reserved.
+# Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+# ------------------------------------------------------------------------------------------------
+# Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+# ------------------------------------------------------------------------------------------------
+
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+
+import os
+import glob
+
+import torch
+
+from torch.utils.cpp_extension import CUDA_HOME
+from torch.utils.cpp_extension import CppExtension
+from torch.utils.cpp_extension import CUDAExtension
+
+from setuptools import find_packages
+from setuptools import setup
+
+requirements = ["torch", "torchvision"]
+
+def get_extensions():
+ this_dir = os.path.dirname(os.path.abspath(__file__))
+ extensions_dir = os.path.join(this_dir, "src")
+
+ main_file = glob.glob(os.path.join(extensions_dir, "*.cpp"))
+ source_cpu = glob.glob(os.path.join(extensions_dir, "cpu", "*.cpp"))
+ source_cuda = glob.glob(os.path.join(extensions_dir, "cuda", "*.cu"))
+
+ sources = main_file + source_cpu
+ extension = CppExtension
+ extra_compile_args = {"cxx": []}
+ define_macros = []
+
+ # Force cuda since torch ask for a device, not if cuda is in fact available.
+ if (os.environ.get('FORCE_CUDA') or torch.cuda.is_available()) and CUDA_HOME is not None:
+ extension = CUDAExtension
+ sources += source_cuda
+ define_macros += [("WITH_CUDA", None)]
+ extra_compile_args["nvcc"] = [
+ "-DCUDA_HAS_FP16=1",
+ "-D__CUDA_NO_HALF_OPERATORS__",
+ "-D__CUDA_NO_HALF_CONVERSIONS__",
+ "-D__CUDA_NO_HALF2_OPERATORS__",
+ ]
+ else:
+ if CUDA_HOME is None:
+ raise NotImplementedError('CUDA_HOME is None. Please set environment variable CUDA_HOME.')
+ else:
+ raise NotImplementedError('No CUDA runtime is found. Please set FORCE_CUDA=1 or test it by running torch.cuda.is_available().')
+
+ sources = [os.path.join(extensions_dir, s) for s in sources]
+ include_dirs = [extensions_dir]
+ ext_modules = [
+ extension(
+ "MultiScaleDeformableAttention",
+ sources,
+ include_dirs=include_dirs,
+ define_macros=define_macros,
+ extra_compile_args=extra_compile_args,
+ )
+ ]
+ return ext_modules
+
+setup(
+ name="MultiScaleDeformableAttention",
+ version="1.0",
+ author="Weijie Su",
+ url="https://github.com/fundamentalvision/Deformable-DETR",
+ description="PyTorch Wrapper for CUDA Functions of Multi-Scale Deformable Attention",
+ packages=find_packages(exclude=("configs", "tests",)),
+ ext_modules=get_extensions(),
+ cmdclass={"build_ext": torch.utils.cpp_extension.BuildExtension},
+)
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/src/cpu/ms_deform_attn_cpu.cpp b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cpu/ms_deform_attn_cpu.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..48757e2b0156b2c1513b615d2a17e5aee5172ae7
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cpu/ms_deform_attn_cpu.cpp
@@ -0,0 +1,46 @@
+/*!
+**************************************************************************************************
+* Deformable DETR
+* Copyright (c) 2020 SenseTime. All Rights Reserved.
+* Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+**************************************************************************************************
+* Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+**************************************************************************************************
+*/
+
+/*!
+* Copyright (c) Facebook, Inc. and its affiliates.
+* Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+*/
+
+#include
+
+#include
+#include
+
+
+at::Tensor
+ms_deform_attn_cpu_forward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const int im2col_step)
+{
+ AT_ERROR("Not implement on cpu");
+}
+
+std::vector
+ms_deform_attn_cpu_backward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const at::Tensor &grad_output,
+ const int im2col_step)
+{
+ AT_ERROR("Not implement on cpu");
+}
+
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/src/cpu/ms_deform_attn_cpu.h b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cpu/ms_deform_attn_cpu.h
new file mode 100644
index 0000000000000000000000000000000000000000..51bb27e9ee828f967e8aa854c2d55574040c6d7e
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cpu/ms_deform_attn_cpu.h
@@ -0,0 +1,38 @@
+/*!
+**************************************************************************************************
+* Deformable DETR
+* Copyright (c) 2020 SenseTime. All Rights Reserved.
+* Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+**************************************************************************************************
+* Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+**************************************************************************************************
+*/
+
+/*!
+* Copyright (c) Facebook, Inc. and its affiliates.
+* Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+*/
+
+#pragma once
+#include
+
+at::Tensor
+ms_deform_attn_cpu_forward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const int im2col_step);
+
+std::vector
+ms_deform_attn_cpu_backward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const at::Tensor &grad_output,
+ const int im2col_step);
+
+
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/src/cuda/ms_deform_attn_cuda.cu b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cuda/ms_deform_attn_cuda.cu
new file mode 100644
index 0000000000000000000000000000000000000000..0c465dab3d636dfd6a44523c63f148b6e15084d9
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cuda/ms_deform_attn_cuda.cu
@@ -0,0 +1,158 @@
+/*!
+**************************************************************************************************
+* Deformable DETR
+* Copyright (c) 2020 SenseTime. All Rights Reserved.
+* Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+**************************************************************************************************
+* Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+**************************************************************************************************
+*/
+
+/*!
+* Copyright (c) Facebook, Inc. and its affiliates.
+* Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+*/
+
+#include
+#include "cuda/ms_deform_im2col_cuda.cuh"
+
+#include
+#include
+#include
+#include
+
+
+at::Tensor ms_deform_attn_cuda_forward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const int im2col_step)
+{
+ AT_ASSERTM(value.is_contiguous(), "value tensor has to be contiguous");
+ AT_ASSERTM(spatial_shapes.is_contiguous(), "spatial_shapes tensor has to be contiguous");
+ AT_ASSERTM(level_start_index.is_contiguous(), "level_start_index tensor has to be contiguous");
+ AT_ASSERTM(sampling_loc.is_contiguous(), "sampling_loc tensor has to be contiguous");
+ AT_ASSERTM(attn_weight.is_contiguous(), "attn_weight tensor has to be contiguous");
+
+ AT_ASSERTM(value.type().is_cuda(), "value must be a CUDA tensor");
+ AT_ASSERTM(spatial_shapes.type().is_cuda(), "spatial_shapes must be a CUDA tensor");
+ AT_ASSERTM(level_start_index.type().is_cuda(), "level_start_index must be a CUDA tensor");
+ AT_ASSERTM(sampling_loc.type().is_cuda(), "sampling_loc must be a CUDA tensor");
+ AT_ASSERTM(attn_weight.type().is_cuda(), "attn_weight must be a CUDA tensor");
+
+ const int batch = value.size(0);
+ const int spatial_size = value.size(1);
+ const int num_heads = value.size(2);
+ const int channels = value.size(3);
+
+ const int num_levels = spatial_shapes.size(0);
+
+ const int num_query = sampling_loc.size(1);
+ const int num_point = sampling_loc.size(4);
+
+ const int im2col_step_ = std::min(batch, im2col_step);
+
+ AT_ASSERTM(batch % im2col_step_ == 0, "batch(%d) must divide im2col_step(%d)", batch, im2col_step_);
+
+ auto output = at::zeros({batch, num_query, num_heads, channels}, value.options());
+
+ const int batch_n = im2col_step_;
+ auto output_n = output.view({batch/im2col_step_, batch_n, num_query, num_heads, channels});
+ auto per_value_size = spatial_size * num_heads * channels;
+ auto per_sample_loc_size = num_query * num_heads * num_levels * num_point * 2;
+ auto per_attn_weight_size = num_query * num_heads * num_levels * num_point;
+ for (int n = 0; n < batch/im2col_step_; ++n)
+ {
+ auto columns = output_n.select(0, n);
+ AT_DISPATCH_FLOATING_TYPES(value.type(), "ms_deform_attn_forward_cuda", ([&] {
+ ms_deformable_im2col_cuda(at::cuda::getCurrentCUDAStream(),
+ value.data() + n * im2col_step_ * per_value_size,
+ spatial_shapes.data(),
+ level_start_index.data(),
+ sampling_loc.data() + n * im2col_step_ * per_sample_loc_size,
+ attn_weight.data() + n * im2col_step_ * per_attn_weight_size,
+ batch_n, spatial_size, num_heads, channels, num_levels, num_query, num_point,
+ columns.data());
+
+ }));
+ }
+
+ output = output.view({batch, num_query, num_heads*channels});
+
+ return output;
+}
+
+
+std::vector ms_deform_attn_cuda_backward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const at::Tensor &grad_output,
+ const int im2col_step)
+{
+
+ AT_ASSERTM(value.is_contiguous(), "value tensor has to be contiguous");
+ AT_ASSERTM(spatial_shapes.is_contiguous(), "spatial_shapes tensor has to be contiguous");
+ AT_ASSERTM(level_start_index.is_contiguous(), "level_start_index tensor has to be contiguous");
+ AT_ASSERTM(sampling_loc.is_contiguous(), "sampling_loc tensor has to be contiguous");
+ AT_ASSERTM(attn_weight.is_contiguous(), "attn_weight tensor has to be contiguous");
+ AT_ASSERTM(grad_output.is_contiguous(), "grad_output tensor has to be contiguous");
+
+ AT_ASSERTM(value.type().is_cuda(), "value must be a CUDA tensor");
+ AT_ASSERTM(spatial_shapes.type().is_cuda(), "spatial_shapes must be a CUDA tensor");
+ AT_ASSERTM(level_start_index.type().is_cuda(), "level_start_index must be a CUDA tensor");
+ AT_ASSERTM(sampling_loc.type().is_cuda(), "sampling_loc must be a CUDA tensor");
+ AT_ASSERTM(attn_weight.type().is_cuda(), "attn_weight must be a CUDA tensor");
+ AT_ASSERTM(grad_output.type().is_cuda(), "grad_output must be a CUDA tensor");
+
+ const int batch = value.size(0);
+ const int spatial_size = value.size(1);
+ const int num_heads = value.size(2);
+ const int channels = value.size(3);
+
+ const int num_levels = spatial_shapes.size(0);
+
+ const int num_query = sampling_loc.size(1);
+ const int num_point = sampling_loc.size(4);
+
+ const int im2col_step_ = std::min(batch, im2col_step);
+
+ AT_ASSERTM(batch % im2col_step_ == 0, "batch(%d) must divide im2col_step(%d)", batch, im2col_step_);
+
+ auto grad_value = at::zeros_like(value);
+ auto grad_sampling_loc = at::zeros_like(sampling_loc);
+ auto grad_attn_weight = at::zeros_like(attn_weight);
+
+ const int batch_n = im2col_step_;
+ auto per_value_size = spatial_size * num_heads * channels;
+ auto per_sample_loc_size = num_query * num_heads * num_levels * num_point * 2;
+ auto per_attn_weight_size = num_query * num_heads * num_levels * num_point;
+ auto grad_output_n = grad_output.view({batch/im2col_step_, batch_n, num_query, num_heads, channels});
+
+ for (int n = 0; n < batch/im2col_step_; ++n)
+ {
+ auto grad_output_g = grad_output_n.select(0, n);
+ AT_DISPATCH_FLOATING_TYPES(value.type(), "ms_deform_attn_backward_cuda", ([&] {
+ ms_deformable_col2im_cuda(at::cuda::getCurrentCUDAStream(),
+ grad_output_g.data(),
+ value.data() + n * im2col_step_ * per_value_size,
+ spatial_shapes.data(),
+ level_start_index.data(),
+ sampling_loc.data() + n * im2col_step_ * per_sample_loc_size,
+ attn_weight.data() + n * im2col_step_ * per_attn_weight_size,
+ batch_n, spatial_size, num_heads, channels, num_levels, num_query, num_point,
+ grad_value.data() + n * im2col_step_ * per_value_size,
+ grad_sampling_loc.data() + n * im2col_step_ * per_sample_loc_size,
+ grad_attn_weight.data() + n * im2col_step_ * per_attn_weight_size);
+
+ }));
+ }
+
+ return {
+ grad_value, grad_sampling_loc, grad_attn_weight
+ };
+}
\ No newline at end of file
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/src/cuda/ms_deform_attn_cuda.h b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cuda/ms_deform_attn_cuda.h
new file mode 100644
index 0000000000000000000000000000000000000000..4f0658e8668a11f0e7d71deff9adac71884f2e87
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cuda/ms_deform_attn_cuda.h
@@ -0,0 +1,35 @@
+/*!
+**************************************************************************************************
+* Deformable DETR
+* Copyright (c) 2020 SenseTime. All Rights Reserved.
+* Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+**************************************************************************************************
+* Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+**************************************************************************************************
+*/
+
+/*!
+* Copyright (c) Facebook, Inc. and its affiliates.
+* Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+*/
+
+#pragma once
+#include
+
+at::Tensor ms_deform_attn_cuda_forward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const int im2col_step);
+
+std::vector ms_deform_attn_cuda_backward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const at::Tensor &grad_output,
+ const int im2col_step);
+
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/src/cuda/ms_deform_im2col_cuda.cuh b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cuda/ms_deform_im2col_cuda.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..c04e0d4ab97d25c1756fcd8d08dd1e5a6d280b7c
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/src/cuda/ms_deform_im2col_cuda.cuh
@@ -0,0 +1,1332 @@
+/*!
+**************************************************************************
+* Deformable DETR
+* Copyright (c) 2020 SenseTime. All Rights Reserved.
+* Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+**************************************************************************
+* Modified from DCN (https://github.com/msracver/Deformable-ConvNets)
+* Copyright (c) 2018 Microsoft
+**************************************************************************
+*/
+
+/*!
+* Copyright (c) Facebook, Inc. and its affiliates.
+* Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+*/
+
+#include
+#include
+#include
+
+#include
+#include
+
+#include
+
+#define CUDA_KERNEL_LOOP(i, n) \
+ for (int i = blockIdx.x * blockDim.x + threadIdx.x; \
+ i < (n); \
+ i += blockDim.x * gridDim.x)
+
+const int CUDA_NUM_THREADS = 1024;
+inline int GET_BLOCKS(const int N, const int num_threads)
+{
+ return (N + num_threads - 1) / num_threads;
+}
+
+
+template
+__device__ scalar_t ms_deform_attn_im2col_bilinear(const scalar_t* &bottom_data,
+ const int &height, const int &width, const int &nheads, const int &channels,
+ const scalar_t &h, const scalar_t &w, const int &m, const int &c)
+{
+ const int h_low = floor(h);
+ const int w_low = floor(w);
+ const int h_high = h_low + 1;
+ const int w_high = w_low + 1;
+
+ const scalar_t lh = h - h_low;
+ const scalar_t lw = w - w_low;
+ const scalar_t hh = 1 - lh, hw = 1 - lw;
+
+ const int w_stride = nheads * channels;
+ const int h_stride = width * w_stride;
+ const int h_low_ptr_offset = h_low * h_stride;
+ const int h_high_ptr_offset = h_low_ptr_offset + h_stride;
+ const int w_low_ptr_offset = w_low * w_stride;
+ const int w_high_ptr_offset = w_low_ptr_offset + w_stride;
+ const int base_ptr = m * channels + c;
+
+ scalar_t v1 = 0;
+ if (h_low >= 0 && w_low >= 0)
+ {
+ const int ptr1 = h_low_ptr_offset + w_low_ptr_offset + base_ptr;
+ v1 = bottom_data[ptr1];
+ }
+ scalar_t v2 = 0;
+ if (h_low >= 0 && w_high <= width - 1)
+ {
+ const int ptr2 = h_low_ptr_offset + w_high_ptr_offset + base_ptr;
+ v2 = bottom_data[ptr2];
+ }
+ scalar_t v3 = 0;
+ if (h_high <= height - 1 && w_low >= 0)
+ {
+ const int ptr3 = h_high_ptr_offset + w_low_ptr_offset + base_ptr;
+ v3 = bottom_data[ptr3];
+ }
+ scalar_t v4 = 0;
+ if (h_high <= height - 1 && w_high <= width - 1)
+ {
+ const int ptr4 = h_high_ptr_offset + w_high_ptr_offset + base_ptr;
+ v4 = bottom_data[ptr4];
+ }
+
+ const scalar_t w1 = hh * hw, w2 = hh * lw, w3 = lh * hw, w4 = lh * lw;
+
+ const scalar_t val = (w1 * v1 + w2 * v2 + w3 * v3 + w4 * v4);
+ return val;
+}
+
+
+template
+__device__ void ms_deform_attn_col2im_bilinear(const scalar_t* &bottom_data,
+ const int &height, const int &width, const int &nheads, const int &channels,
+ const scalar_t &h, const scalar_t &w, const int &m, const int &c,
+ const scalar_t &top_grad,
+ const scalar_t &attn_weight,
+ scalar_t* &grad_value,
+ scalar_t* grad_sampling_loc,
+ scalar_t* grad_attn_weight)
+{
+ const int h_low = floor(h);
+ const int w_low = floor(w);
+ const int h_high = h_low + 1;
+ const int w_high = w_low + 1;
+
+ const scalar_t lh = h - h_low;
+ const scalar_t lw = w - w_low;
+ const scalar_t hh = 1 - lh, hw = 1 - lw;
+
+ const int w_stride = nheads * channels;
+ const int h_stride = width * w_stride;
+ const int h_low_ptr_offset = h_low * h_stride;
+ const int h_high_ptr_offset = h_low_ptr_offset + h_stride;
+ const int w_low_ptr_offset = w_low * w_stride;
+ const int w_high_ptr_offset = w_low_ptr_offset + w_stride;
+ const int base_ptr = m * channels + c;
+
+ const scalar_t w1 = hh * hw, w2 = hh * lw, w3 = lh * hw, w4 = lh * lw;
+ const scalar_t top_grad_value = top_grad * attn_weight;
+ scalar_t grad_h_weight = 0, grad_w_weight = 0;
+
+ scalar_t v1 = 0;
+ if (h_low >= 0 && w_low >= 0)
+ {
+ const int ptr1 = h_low_ptr_offset + w_low_ptr_offset + base_ptr;
+ v1 = bottom_data[ptr1];
+ grad_h_weight -= hw * v1;
+ grad_w_weight -= hh * v1;
+ atomicAdd(grad_value+ptr1, w1*top_grad_value);
+ }
+ scalar_t v2 = 0;
+ if (h_low >= 0 && w_high <= width - 1)
+ {
+ const int ptr2 = h_low_ptr_offset + w_high_ptr_offset + base_ptr;
+ v2 = bottom_data[ptr2];
+ grad_h_weight -= lw * v2;
+ grad_w_weight += hh * v2;
+ atomicAdd(grad_value+ptr2, w2*top_grad_value);
+ }
+ scalar_t v3 = 0;
+ if (h_high <= height - 1 && w_low >= 0)
+ {
+ const int ptr3 = h_high_ptr_offset + w_low_ptr_offset + base_ptr;
+ v3 = bottom_data[ptr3];
+ grad_h_weight += hw * v3;
+ grad_w_weight -= lh * v3;
+ atomicAdd(grad_value+ptr3, w3*top_grad_value);
+ }
+ scalar_t v4 = 0;
+ if (h_high <= height - 1 && w_high <= width - 1)
+ {
+ const int ptr4 = h_high_ptr_offset + w_high_ptr_offset + base_ptr;
+ v4 = bottom_data[ptr4];
+ grad_h_weight += lw * v4;
+ grad_w_weight += lh * v4;
+ atomicAdd(grad_value+ptr4, w4*top_grad_value);
+ }
+
+ const scalar_t val = (w1 * v1 + w2 * v2 + w3 * v3 + w4 * v4);
+ *grad_attn_weight = top_grad * val;
+ *grad_sampling_loc = width * grad_w_weight * top_grad_value;
+ *(grad_sampling_loc + 1) = height * grad_h_weight * top_grad_value;
+}
+
+
+template
+__device__ void ms_deform_attn_col2im_bilinear_gm(const scalar_t* &bottom_data,
+ const int &height, const int &width, const int &nheads, const int &channels,
+ const scalar_t &h, const scalar_t &w, const int &m, const int &c,
+ const scalar_t &top_grad,
+ const scalar_t &attn_weight,
+ scalar_t* &grad_value,
+ scalar_t* grad_sampling_loc,
+ scalar_t* grad_attn_weight)
+{
+ const int h_low = floor(h);
+ const int w_low = floor(w);
+ const int h_high = h_low + 1;
+ const int w_high = w_low + 1;
+
+ const scalar_t lh = h - h_low;
+ const scalar_t lw = w - w_low;
+ const scalar_t hh = 1 - lh, hw = 1 - lw;
+
+ const int w_stride = nheads * channels;
+ const int h_stride = width * w_stride;
+ const int h_low_ptr_offset = h_low * h_stride;
+ const int h_high_ptr_offset = h_low_ptr_offset + h_stride;
+ const int w_low_ptr_offset = w_low * w_stride;
+ const int w_high_ptr_offset = w_low_ptr_offset + w_stride;
+ const int base_ptr = m * channels + c;
+
+ const scalar_t w1 = hh * hw, w2 = hh * lw, w3 = lh * hw, w4 = lh * lw;
+ const scalar_t top_grad_value = top_grad * attn_weight;
+ scalar_t grad_h_weight = 0, grad_w_weight = 0;
+
+ scalar_t v1 = 0;
+ if (h_low >= 0 && w_low >= 0)
+ {
+ const int ptr1 = h_low_ptr_offset + w_low_ptr_offset + base_ptr;
+ v1 = bottom_data[ptr1];
+ grad_h_weight -= hw * v1;
+ grad_w_weight -= hh * v1;
+ atomicAdd(grad_value+ptr1, w1*top_grad_value);
+ }
+ scalar_t v2 = 0;
+ if (h_low >= 0 && w_high <= width - 1)
+ {
+ const int ptr2 = h_low_ptr_offset + w_high_ptr_offset + base_ptr;
+ v2 = bottom_data[ptr2];
+ grad_h_weight -= lw * v2;
+ grad_w_weight += hh * v2;
+ atomicAdd(grad_value+ptr2, w2*top_grad_value);
+ }
+ scalar_t v3 = 0;
+ if (h_high <= height - 1 && w_low >= 0)
+ {
+ const int ptr3 = h_high_ptr_offset + w_low_ptr_offset + base_ptr;
+ v3 = bottom_data[ptr3];
+ grad_h_weight += hw * v3;
+ grad_w_weight -= lh * v3;
+ atomicAdd(grad_value+ptr3, w3*top_grad_value);
+ }
+ scalar_t v4 = 0;
+ if (h_high <= height - 1 && w_high <= width - 1)
+ {
+ const int ptr4 = h_high_ptr_offset + w_high_ptr_offset + base_ptr;
+ v4 = bottom_data[ptr4];
+ grad_h_weight += lw * v4;
+ grad_w_weight += lh * v4;
+ atomicAdd(grad_value+ptr4, w4*top_grad_value);
+ }
+
+ const scalar_t val = (w1 * v1 + w2 * v2 + w3 * v3 + w4 * v4);
+ atomicAdd(grad_attn_weight, top_grad * val);
+ atomicAdd(grad_sampling_loc, width * grad_w_weight * top_grad_value);
+ atomicAdd(grad_sampling_loc + 1, height * grad_h_weight * top_grad_value);
+}
+
+
+template
+__global__ void ms_deformable_im2col_gpu_kernel(const int n,
+ const scalar_t *data_value,
+ const int64_t *data_spatial_shapes,
+ const int64_t *data_level_start_index,
+ const scalar_t *data_sampling_loc,
+ const scalar_t *data_attn_weight,
+ const int batch_size,
+ const int spatial_size,
+ const int num_heads,
+ const int channels,
+ const int num_levels,
+ const int num_query,
+ const int num_point,
+ scalar_t *data_col)
+{
+ CUDA_KERNEL_LOOP(index, n)
+ {
+ int _temp = index;
+ const int c_col = _temp % channels;
+ _temp /= channels;
+ const int sampling_index = _temp;
+ const int m_col = _temp % num_heads;
+ _temp /= num_heads;
+ const int q_col = _temp % num_query;
+ _temp /= num_query;
+ const int b_col = _temp;
+
+ scalar_t *data_col_ptr = data_col + index;
+ int data_weight_ptr = sampling_index * num_levels * num_point;
+ int data_loc_w_ptr = data_weight_ptr << 1;
+ const int qid_stride = num_heads * channels;
+ const int data_value_ptr_init_offset = b_col * spatial_size * qid_stride;
+ scalar_t col = 0;
+
+ for (int l_col=0; l_col < num_levels; ++l_col)
+ {
+ const int level_start_id = data_level_start_index[l_col];
+ const int spatial_h_ptr = l_col << 1;
+ const int spatial_h = data_spatial_shapes[spatial_h_ptr];
+ const int spatial_w = data_spatial_shapes[spatial_h_ptr + 1];
+ const scalar_t *data_value_ptr = data_value + (data_value_ptr_init_offset + level_start_id * qid_stride);
+ for (int p_col=0; p_col < num_point; ++p_col)
+ {
+ const scalar_t loc_w = data_sampling_loc[data_loc_w_ptr];
+ const scalar_t loc_h = data_sampling_loc[data_loc_w_ptr + 1];
+ const scalar_t weight = data_attn_weight[data_weight_ptr];
+
+ const scalar_t h_im = loc_h * spatial_h - 0.5;
+ const scalar_t w_im = loc_w * spatial_w - 0.5;
+
+ if (h_im > -1 && w_im > -1 && h_im < spatial_h && w_im < spatial_w)
+ {
+ col += ms_deform_attn_im2col_bilinear(data_value_ptr, spatial_h, spatial_w, num_heads, channels, h_im, w_im, m_col, c_col) * weight;
+ }
+
+ data_weight_ptr += 1;
+ data_loc_w_ptr += 2;
+ }
+ }
+ *data_col_ptr = col;
+ }
+}
+
+template
+__global__ void ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v1(const int n,
+ const scalar_t *grad_col,
+ const scalar_t *data_value,
+ const int64_t *data_spatial_shapes,
+ const int64_t *data_level_start_index,
+ const scalar_t *data_sampling_loc,
+ const scalar_t *data_attn_weight,
+ const int batch_size,
+ const int spatial_size,
+ const int num_heads,
+ const int channels,
+ const int num_levels,
+ const int num_query,
+ const int num_point,
+ scalar_t *grad_value,
+ scalar_t *grad_sampling_loc,
+ scalar_t *grad_attn_weight)
+{
+ CUDA_KERNEL_LOOP(index, n)
+ {
+ __shared__ scalar_t cache_grad_sampling_loc[blockSize * 2];
+ __shared__ scalar_t cache_grad_attn_weight[blockSize];
+ unsigned int tid = threadIdx.x;
+ int _temp = index;
+ const int c_col = _temp % channels;
+ _temp /= channels;
+ const int sampling_index = _temp;
+ const int m_col = _temp % num_heads;
+ _temp /= num_heads;
+ const int q_col = _temp % num_query;
+ _temp /= num_query;
+ const int b_col = _temp;
+
+ const scalar_t top_grad = grad_col[index];
+
+ int data_weight_ptr = sampling_index * num_levels * num_point;
+ int data_loc_w_ptr = data_weight_ptr << 1;
+ const int grad_sampling_ptr = data_weight_ptr;
+ grad_sampling_loc += grad_sampling_ptr << 1;
+ grad_attn_weight += grad_sampling_ptr;
+ const int grad_weight_stride = 1;
+ const int grad_loc_stride = 2;
+ const int qid_stride = num_heads * channels;
+ const int data_value_ptr_init_offset = b_col * spatial_size * qid_stride;
+
+ for (int l_col=0; l_col < num_levels; ++l_col)
+ {
+ const int level_start_id = data_level_start_index[l_col];
+ const int spatial_h_ptr = l_col << 1;
+ const int spatial_h = data_spatial_shapes[spatial_h_ptr];
+ const int spatial_w = data_spatial_shapes[spatial_h_ptr + 1];
+ const int value_ptr_offset = data_value_ptr_init_offset + level_start_id * qid_stride;
+ const scalar_t *data_value_ptr = data_value + value_ptr_offset;
+ scalar_t *grad_value_ptr = grad_value + value_ptr_offset;
+
+ for (int p_col=0; p_col < num_point; ++p_col)
+ {
+ const scalar_t loc_w = data_sampling_loc[data_loc_w_ptr];
+ const scalar_t loc_h = data_sampling_loc[data_loc_w_ptr + 1];
+ const scalar_t weight = data_attn_weight[data_weight_ptr];
+
+ const scalar_t h_im = loc_h * spatial_h - 0.5;
+ const scalar_t w_im = loc_w * spatial_w - 0.5;
+ *(cache_grad_sampling_loc+(threadIdx.x << 1)) = 0;
+ *(cache_grad_sampling_loc+((threadIdx.x << 1) + 1)) = 0;
+ *(cache_grad_attn_weight+threadIdx.x)=0;
+ if (h_im > -1 && w_im > -1 && h_im < spatial_h && w_im < spatial_w)
+ {
+ ms_deform_attn_col2im_bilinear(
+ data_value_ptr, spatial_h, spatial_w, num_heads, channels, h_im, w_im, m_col, c_col,
+ top_grad, weight, grad_value_ptr,
+ cache_grad_sampling_loc+(threadIdx.x << 1), cache_grad_attn_weight+threadIdx.x);
+ }
+
+ __syncthreads();
+ if (tid == 0)
+ {
+ scalar_t _grad_w=cache_grad_sampling_loc[0], _grad_h=cache_grad_sampling_loc[1], _grad_a=cache_grad_attn_weight[0];
+ int sid=2;
+ for (unsigned int tid = 1; tid < blockSize; ++tid)
+ {
+ _grad_w += cache_grad_sampling_loc[sid];
+ _grad_h += cache_grad_sampling_loc[sid + 1];
+ _grad_a += cache_grad_attn_weight[tid];
+ sid += 2;
+ }
+
+
+ *grad_sampling_loc = _grad_w;
+ *(grad_sampling_loc + 1) = _grad_h;
+ *grad_attn_weight = _grad_a;
+ }
+ __syncthreads();
+
+ data_weight_ptr += 1;
+ data_loc_w_ptr += 2;
+ grad_attn_weight += grad_weight_stride;
+ grad_sampling_loc += grad_loc_stride;
+ }
+ }
+ }
+}
+
+
+template
+__global__ void ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v2(const int n,
+ const scalar_t *grad_col,
+ const scalar_t *data_value,
+ const int64_t *data_spatial_shapes,
+ const int64_t *data_level_start_index,
+ const scalar_t *data_sampling_loc,
+ const scalar_t *data_attn_weight,
+ const int batch_size,
+ const int spatial_size,
+ const int num_heads,
+ const int channels,
+ const int num_levels,
+ const int num_query,
+ const int num_point,
+ scalar_t *grad_value,
+ scalar_t *grad_sampling_loc,
+ scalar_t *grad_attn_weight)
+{
+ CUDA_KERNEL_LOOP(index, n)
+ {
+ __shared__ scalar_t cache_grad_sampling_loc[blockSize * 2];
+ __shared__ scalar_t cache_grad_attn_weight[blockSize];
+ unsigned int tid = threadIdx.x;
+ int _temp = index;
+ const int c_col = _temp % channels;
+ _temp /= channels;
+ const int sampling_index = _temp;
+ const int m_col = _temp % num_heads;
+ _temp /= num_heads;
+ const int q_col = _temp % num_query;
+ _temp /= num_query;
+ const int b_col = _temp;
+
+ const scalar_t top_grad = grad_col[index];
+
+ int data_weight_ptr = sampling_index * num_levels * num_point;
+ int data_loc_w_ptr = data_weight_ptr << 1;
+ const int grad_sampling_ptr = data_weight_ptr;
+ grad_sampling_loc += grad_sampling_ptr << 1;
+ grad_attn_weight += grad_sampling_ptr;
+ const int grad_weight_stride = 1;
+ const int grad_loc_stride = 2;
+ const int qid_stride = num_heads * channels;
+ const int data_value_ptr_init_offset = b_col * spatial_size * qid_stride;
+
+ for (int l_col=0; l_col < num_levels; ++l_col)
+ {
+ const int level_start_id = data_level_start_index[l_col];
+ const int spatial_h_ptr = l_col << 1;
+ const int spatial_h = data_spatial_shapes[spatial_h_ptr];
+ const int spatial_w = data_spatial_shapes[spatial_h_ptr + 1];
+ const int value_ptr_offset = data_value_ptr_init_offset + level_start_id * qid_stride;
+ const scalar_t *data_value_ptr = data_value + value_ptr_offset;
+ scalar_t *grad_value_ptr = grad_value + value_ptr_offset;
+
+ for (int p_col=0; p_col < num_point; ++p_col)
+ {
+ const scalar_t loc_w = data_sampling_loc[data_loc_w_ptr];
+ const scalar_t loc_h = data_sampling_loc[data_loc_w_ptr + 1];
+ const scalar_t weight = data_attn_weight[data_weight_ptr];
+
+ const scalar_t h_im = loc_h * spatial_h - 0.5;
+ const scalar_t w_im = loc_w * spatial_w - 0.5;
+ *(cache_grad_sampling_loc+(threadIdx.x << 1)) = 0;
+ *(cache_grad_sampling_loc+((threadIdx.x << 1) + 1)) = 0;
+ *(cache_grad_attn_weight+threadIdx.x)=0;
+ if (h_im > -1 && w_im > -1 && h_im < spatial_h && w_im < spatial_w)
+ {
+ ms_deform_attn_col2im_bilinear(
+ data_value_ptr, spatial_h, spatial_w, num_heads, channels, h_im, w_im, m_col, c_col,
+ top_grad, weight, grad_value_ptr,
+ cache_grad_sampling_loc+(threadIdx.x << 1), cache_grad_attn_weight+threadIdx.x);
+ }
+
+ __syncthreads();
+
+ for (unsigned int s=blockSize/2; s>0; s>>=1)
+ {
+ if (tid < s) {
+ const unsigned int xid1 = tid << 1;
+ const unsigned int xid2 = (tid + s) << 1;
+ cache_grad_attn_weight[tid] += cache_grad_attn_weight[tid + s];
+ cache_grad_sampling_loc[xid1] += cache_grad_sampling_loc[xid2];
+ cache_grad_sampling_loc[xid1 + 1] += cache_grad_sampling_loc[xid2 + 1];
+ }
+ __syncthreads();
+ }
+
+ if (tid == 0)
+ {
+ *grad_sampling_loc = cache_grad_sampling_loc[0];
+ *(grad_sampling_loc + 1) = cache_grad_sampling_loc[1];
+ *grad_attn_weight = cache_grad_attn_weight[0];
+ }
+ __syncthreads();
+
+ data_weight_ptr += 1;
+ data_loc_w_ptr += 2;
+ grad_attn_weight += grad_weight_stride;
+ grad_sampling_loc += grad_loc_stride;
+ }
+ }
+ }
+}
+
+
+template
+__global__ void ms_deformable_col2im_gpu_kernel_shm_reduce_v1(const int n,
+ const scalar_t *grad_col,
+ const scalar_t *data_value,
+ const int64_t *data_spatial_shapes,
+ const int64_t *data_level_start_index,
+ const scalar_t *data_sampling_loc,
+ const scalar_t *data_attn_weight,
+ const int batch_size,
+ const int spatial_size,
+ const int num_heads,
+ const int channels,
+ const int num_levels,
+ const int num_query,
+ const int num_point,
+ scalar_t *grad_value,
+ scalar_t *grad_sampling_loc,
+ scalar_t *grad_attn_weight)
+{
+ CUDA_KERNEL_LOOP(index, n)
+ {
+ extern __shared__ int _s[];
+ scalar_t* cache_grad_sampling_loc = (scalar_t*)_s;
+ scalar_t* cache_grad_attn_weight = cache_grad_sampling_loc + 2 * blockDim.x;
+ unsigned int tid = threadIdx.x;
+ int _temp = index;
+ const int c_col = _temp % channels;
+ _temp /= channels;
+ const int sampling_index = _temp;
+ const int m_col = _temp % num_heads;
+ _temp /= num_heads;
+ const int q_col = _temp % num_query;
+ _temp /= num_query;
+ const int b_col = _temp;
+
+ const scalar_t top_grad = grad_col[index];
+
+ int data_weight_ptr = sampling_index * num_levels * num_point;
+ int data_loc_w_ptr = data_weight_ptr << 1;
+ const int grad_sampling_ptr = data_weight_ptr;
+ grad_sampling_loc += grad_sampling_ptr << 1;
+ grad_attn_weight += grad_sampling_ptr;
+ const int grad_weight_stride = 1;
+ const int grad_loc_stride = 2;
+ const int qid_stride = num_heads * channels;
+ const int data_value_ptr_init_offset = b_col * spatial_size * qid_stride;
+
+ for (int l_col=0; l_col < num_levels; ++l_col)
+ {
+ const int level_start_id = data_level_start_index[l_col];
+ const int spatial_h_ptr = l_col << 1;
+ const int spatial_h = data_spatial_shapes[spatial_h_ptr];
+ const int spatial_w = data_spatial_shapes[spatial_h_ptr + 1];
+ const int value_ptr_offset = data_value_ptr_init_offset + level_start_id * qid_stride;
+ const scalar_t *data_value_ptr = data_value + value_ptr_offset;
+ scalar_t *grad_value_ptr = grad_value + value_ptr_offset;
+
+ for (int p_col=0; p_col < num_point; ++p_col)
+ {
+ const scalar_t loc_w = data_sampling_loc[data_loc_w_ptr];
+ const scalar_t loc_h = data_sampling_loc[data_loc_w_ptr + 1];
+ const scalar_t weight = data_attn_weight[data_weight_ptr];
+
+ const scalar_t h_im = loc_h * spatial_h - 0.5;
+ const scalar_t w_im = loc_w * spatial_w - 0.5;
+ *(cache_grad_sampling_loc+(threadIdx.x << 1)) = 0;
+ *(cache_grad_sampling_loc+((threadIdx.x << 1) + 1)) = 0;
+ *(cache_grad_attn_weight+threadIdx.x)=0;
+ if (h_im > -1 && w_im > -1 && h_im < spatial_h && w_im < spatial_w)
+ {
+ ms_deform_attn_col2im_bilinear(
+ data_value_ptr, spatial_h, spatial_w, num_heads, channels, h_im, w_im, m_col, c_col,
+ top_grad, weight, grad_value_ptr,
+ cache_grad_sampling_loc+(threadIdx.x << 1), cache_grad_attn_weight+threadIdx.x);
+ }
+
+ __syncthreads();
+ if (tid == 0)
+ {
+ scalar_t _grad_w=cache_grad_sampling_loc[0], _grad_h=cache_grad_sampling_loc[1], _grad_a=cache_grad_attn_weight[0];
+ int sid=2;
+ for (unsigned int tid = 1; tid < blockDim.x; ++tid)
+ {
+ _grad_w += cache_grad_sampling_loc[sid];
+ _grad_h += cache_grad_sampling_loc[sid + 1];
+ _grad_a += cache_grad_attn_weight[tid];
+ sid += 2;
+ }
+
+
+ *grad_sampling_loc = _grad_w;
+ *(grad_sampling_loc + 1) = _grad_h;
+ *grad_attn_weight = _grad_a;
+ }
+ __syncthreads();
+
+ data_weight_ptr += 1;
+ data_loc_w_ptr += 2;
+ grad_attn_weight += grad_weight_stride;
+ grad_sampling_loc += grad_loc_stride;
+ }
+ }
+ }
+}
+
+template
+__global__ void ms_deformable_col2im_gpu_kernel_shm_reduce_v2(const int n,
+ const scalar_t *grad_col,
+ const scalar_t *data_value,
+ const int64_t *data_spatial_shapes,
+ const int64_t *data_level_start_index,
+ const scalar_t *data_sampling_loc,
+ const scalar_t *data_attn_weight,
+ const int batch_size,
+ const int spatial_size,
+ const int num_heads,
+ const int channels,
+ const int num_levels,
+ const int num_query,
+ const int num_point,
+ scalar_t *grad_value,
+ scalar_t *grad_sampling_loc,
+ scalar_t *grad_attn_weight)
+{
+ CUDA_KERNEL_LOOP(index, n)
+ {
+ extern __shared__ int _s[];
+ scalar_t* cache_grad_sampling_loc = (scalar_t*)_s;
+ scalar_t* cache_grad_attn_weight = cache_grad_sampling_loc + 2 * blockDim.x;
+ unsigned int tid = threadIdx.x;
+ int _temp = index;
+ const int c_col = _temp % channels;
+ _temp /= channels;
+ const int sampling_index = _temp;
+ const int m_col = _temp % num_heads;
+ _temp /= num_heads;
+ const int q_col = _temp % num_query;
+ _temp /= num_query;
+ const int b_col = _temp;
+
+ const scalar_t top_grad = grad_col[index];
+
+ int data_weight_ptr = sampling_index * num_levels * num_point;
+ int data_loc_w_ptr = data_weight_ptr << 1;
+ const int grad_sampling_ptr = data_weight_ptr;
+ grad_sampling_loc += grad_sampling_ptr << 1;
+ grad_attn_weight += grad_sampling_ptr;
+ const int grad_weight_stride = 1;
+ const int grad_loc_stride = 2;
+ const int qid_stride = num_heads * channels;
+ const int data_value_ptr_init_offset = b_col * spatial_size * qid_stride;
+
+ for (int l_col=0; l_col < num_levels; ++l_col)
+ {
+ const int level_start_id = data_level_start_index[l_col];
+ const int spatial_h_ptr = l_col << 1;
+ const int spatial_h = data_spatial_shapes[spatial_h_ptr];
+ const int spatial_w = data_spatial_shapes[spatial_h_ptr + 1];
+ const int value_ptr_offset = data_value_ptr_init_offset + level_start_id * qid_stride;
+ const scalar_t *data_value_ptr = data_value + value_ptr_offset;
+ scalar_t *grad_value_ptr = grad_value + value_ptr_offset;
+
+ for (int p_col=0; p_col < num_point; ++p_col)
+ {
+ const scalar_t loc_w = data_sampling_loc[data_loc_w_ptr];
+ const scalar_t loc_h = data_sampling_loc[data_loc_w_ptr + 1];
+ const scalar_t weight = data_attn_weight[data_weight_ptr];
+
+ const scalar_t h_im = loc_h * spatial_h - 0.5;
+ const scalar_t w_im = loc_w * spatial_w - 0.5;
+ *(cache_grad_sampling_loc+(threadIdx.x << 1)) = 0;
+ *(cache_grad_sampling_loc+((threadIdx.x << 1) + 1)) = 0;
+ *(cache_grad_attn_weight+threadIdx.x)=0;
+ if (h_im > -1 && w_im > -1 && h_im < spatial_h && w_im < spatial_w)
+ {
+ ms_deform_attn_col2im_bilinear(
+ data_value_ptr, spatial_h, spatial_w, num_heads, channels, h_im, w_im, m_col, c_col,
+ top_grad, weight, grad_value_ptr,
+ cache_grad_sampling_loc+(threadIdx.x << 1), cache_grad_attn_weight+threadIdx.x);
+ }
+
+ __syncthreads();
+
+ for (unsigned int s=blockDim.x/2, spre=blockDim.x; s>0; s>>=1, spre>>=1)
+ {
+ if (tid < s) {
+ const unsigned int xid1 = tid << 1;
+ const unsigned int xid2 = (tid + s) << 1;
+ cache_grad_attn_weight[tid] += cache_grad_attn_weight[tid + s];
+ cache_grad_sampling_loc[xid1] += cache_grad_sampling_loc[xid2];
+ cache_grad_sampling_loc[xid1 + 1] += cache_grad_sampling_loc[xid2 + 1];
+ if (tid + (s << 1) < spre)
+ {
+ cache_grad_attn_weight[tid] += cache_grad_attn_weight[tid + (s << 1)];
+ cache_grad_sampling_loc[xid1] += cache_grad_sampling_loc[xid2 + (s << 1)];
+ cache_grad_sampling_loc[xid1 + 1] += cache_grad_sampling_loc[xid2 + 1 + (s << 1)];
+ }
+ }
+ __syncthreads();
+ }
+
+ if (tid == 0)
+ {
+ *grad_sampling_loc = cache_grad_sampling_loc[0];
+ *(grad_sampling_loc + 1) = cache_grad_sampling_loc[1];
+ *grad_attn_weight = cache_grad_attn_weight[0];
+ }
+ __syncthreads();
+
+ data_weight_ptr += 1;
+ data_loc_w_ptr += 2;
+ grad_attn_weight += grad_weight_stride;
+ grad_sampling_loc += grad_loc_stride;
+ }
+ }
+ }
+}
+
+template
+__global__ void ms_deformable_col2im_gpu_kernel_shm_reduce_v2_multi_blocks(const int n,
+ const scalar_t *grad_col,
+ const scalar_t *data_value,
+ const int64_t *data_spatial_shapes,
+ const int64_t *data_level_start_index,
+ const scalar_t *data_sampling_loc,
+ const scalar_t *data_attn_weight,
+ const int batch_size,
+ const int spatial_size,
+ const int num_heads,
+ const int channels,
+ const int num_levels,
+ const int num_query,
+ const int num_point,
+ scalar_t *grad_value,
+ scalar_t *grad_sampling_loc,
+ scalar_t *grad_attn_weight)
+{
+ CUDA_KERNEL_LOOP(index, n)
+ {
+ extern __shared__ int _s[];
+ scalar_t* cache_grad_sampling_loc = (scalar_t*)_s;
+ scalar_t* cache_grad_attn_weight = cache_grad_sampling_loc + 2 * blockDim.x;
+ unsigned int tid = threadIdx.x;
+ int _temp = index;
+ const int c_col = _temp % channels;
+ _temp /= channels;
+ const int sampling_index = _temp;
+ const int m_col = _temp % num_heads;
+ _temp /= num_heads;
+ const int q_col = _temp % num_query;
+ _temp /= num_query;
+ const int b_col = _temp;
+
+ const scalar_t top_grad = grad_col[index];
+
+ int data_weight_ptr = sampling_index * num_levels * num_point;
+ int data_loc_w_ptr = data_weight_ptr << 1;
+ const int grad_sampling_ptr = data_weight_ptr;
+ grad_sampling_loc += grad_sampling_ptr << 1;
+ grad_attn_weight += grad_sampling_ptr;
+ const int grad_weight_stride = 1;
+ const int grad_loc_stride = 2;
+ const int qid_stride = num_heads * channels;
+ const int data_value_ptr_init_offset = b_col * spatial_size * qid_stride;
+
+ for (int l_col=0; l_col < num_levels; ++l_col)
+ {
+ const int level_start_id = data_level_start_index[l_col];
+ const int spatial_h_ptr = l_col << 1;
+ const int spatial_h = data_spatial_shapes[spatial_h_ptr];
+ const int spatial_w = data_spatial_shapes[spatial_h_ptr + 1];
+ const int value_ptr_offset = data_value_ptr_init_offset + level_start_id * qid_stride;
+ const scalar_t *data_value_ptr = data_value + value_ptr_offset;
+ scalar_t *grad_value_ptr = grad_value + value_ptr_offset;
+
+ for (int p_col=0; p_col < num_point; ++p_col)
+ {
+ const scalar_t loc_w = data_sampling_loc[data_loc_w_ptr];
+ const scalar_t loc_h = data_sampling_loc[data_loc_w_ptr + 1];
+ const scalar_t weight = data_attn_weight[data_weight_ptr];
+
+ const scalar_t h_im = loc_h * spatial_h - 0.5;
+ const scalar_t w_im = loc_w * spatial_w - 0.5;
+ *(cache_grad_sampling_loc+(threadIdx.x << 1)) = 0;
+ *(cache_grad_sampling_loc+((threadIdx.x << 1) + 1)) = 0;
+ *(cache_grad_attn_weight+threadIdx.x)=0;
+ if (h_im > -1 && w_im > -1 && h_im < spatial_h && w_im < spatial_w)
+ {
+ ms_deform_attn_col2im_bilinear(
+ data_value_ptr, spatial_h, spatial_w, num_heads, channels, h_im, w_im, m_col, c_col,
+ top_grad, weight, grad_value_ptr,
+ cache_grad_sampling_loc+(threadIdx.x << 1), cache_grad_attn_weight+threadIdx.x);
+ }
+
+ __syncthreads();
+
+ for (unsigned int s=blockDim.x/2, spre=blockDim.x; s>0; s>>=1, spre>>=1)
+ {
+ if (tid < s) {
+ const unsigned int xid1 = tid << 1;
+ const unsigned int xid2 = (tid + s) << 1;
+ cache_grad_attn_weight[tid] += cache_grad_attn_weight[tid + s];
+ cache_grad_sampling_loc[xid1] += cache_grad_sampling_loc[xid2];
+ cache_grad_sampling_loc[xid1 + 1] += cache_grad_sampling_loc[xid2 + 1];
+ if (tid + (s << 1) < spre)
+ {
+ cache_grad_attn_weight[tid] += cache_grad_attn_weight[tid + (s << 1)];
+ cache_grad_sampling_loc[xid1] += cache_grad_sampling_loc[xid2 + (s << 1)];
+ cache_grad_sampling_loc[xid1 + 1] += cache_grad_sampling_loc[xid2 + 1 + (s << 1)];
+ }
+ }
+ __syncthreads();
+ }
+
+ if (tid == 0)
+ {
+ atomicAdd(grad_sampling_loc, cache_grad_sampling_loc[0]);
+ atomicAdd(grad_sampling_loc + 1, cache_grad_sampling_loc[1]);
+ atomicAdd(grad_attn_weight, cache_grad_attn_weight[0]);
+ }
+ __syncthreads();
+
+ data_weight_ptr += 1;
+ data_loc_w_ptr += 2;
+ grad_attn_weight += grad_weight_stride;
+ grad_sampling_loc += grad_loc_stride;
+ }
+ }
+ }
+}
+
+
+template
+__global__ void ms_deformable_col2im_gpu_kernel_gm(const int n,
+ const scalar_t *grad_col,
+ const scalar_t *data_value,
+ const int64_t *data_spatial_shapes,
+ const int64_t *data_level_start_index,
+ const scalar_t *data_sampling_loc,
+ const scalar_t *data_attn_weight,
+ const int batch_size,
+ const int spatial_size,
+ const int num_heads,
+ const int channels,
+ const int num_levels,
+ const int num_query,
+ const int num_point,
+ scalar_t *grad_value,
+ scalar_t *grad_sampling_loc,
+ scalar_t *grad_attn_weight)
+{
+ CUDA_KERNEL_LOOP(index, n)
+ {
+ int _temp = index;
+ const int c_col = _temp % channels;
+ _temp /= channels;
+ const int sampling_index = _temp;
+ const int m_col = _temp % num_heads;
+ _temp /= num_heads;
+ const int q_col = _temp % num_query;
+ _temp /= num_query;
+ const int b_col = _temp;
+
+ const scalar_t top_grad = grad_col[index];
+
+ int data_weight_ptr = sampling_index * num_levels * num_point;
+ int data_loc_w_ptr = data_weight_ptr << 1;
+ const int grad_sampling_ptr = data_weight_ptr;
+ grad_sampling_loc += grad_sampling_ptr << 1;
+ grad_attn_weight += grad_sampling_ptr;
+ const int grad_weight_stride = 1;
+ const int grad_loc_stride = 2;
+ const int qid_stride = num_heads * channels;
+ const int data_value_ptr_init_offset = b_col * spatial_size * qid_stride;
+
+ for (int l_col=0; l_col < num_levels; ++l_col)
+ {
+ const int level_start_id = data_level_start_index[l_col];
+ const int spatial_h_ptr = l_col << 1;
+ const int spatial_h = data_spatial_shapes[spatial_h_ptr];
+ const int spatial_w = data_spatial_shapes[spatial_h_ptr + 1];
+ const int value_ptr_offset = data_value_ptr_init_offset + level_start_id * qid_stride;
+ const scalar_t *data_value_ptr = data_value + value_ptr_offset;
+ scalar_t *grad_value_ptr = grad_value + value_ptr_offset;
+
+ for (int p_col=0; p_col < num_point; ++p_col)
+ {
+ const scalar_t loc_w = data_sampling_loc[data_loc_w_ptr];
+ const scalar_t loc_h = data_sampling_loc[data_loc_w_ptr + 1];
+ const scalar_t weight = data_attn_weight[data_weight_ptr];
+
+ const scalar_t h_im = loc_h * spatial_h - 0.5;
+ const scalar_t w_im = loc_w * spatial_w - 0.5;
+ if (h_im > -1 && w_im > -1 && h_im < spatial_h && w_im < spatial_w)
+ {
+ ms_deform_attn_col2im_bilinear_gm(
+ data_value_ptr, spatial_h, spatial_w, num_heads, channels, h_im, w_im, m_col, c_col,
+ top_grad, weight, grad_value_ptr,
+ grad_sampling_loc, grad_attn_weight);
+ }
+ data_weight_ptr += 1;
+ data_loc_w_ptr += 2;
+ grad_attn_weight += grad_weight_stride;
+ grad_sampling_loc += grad_loc_stride;
+ }
+ }
+ }
+}
+
+
+template
+void ms_deformable_im2col_cuda(cudaStream_t stream,
+ const scalar_t* data_value,
+ const int64_t* data_spatial_shapes,
+ const int64_t* data_level_start_index,
+ const scalar_t* data_sampling_loc,
+ const scalar_t* data_attn_weight,
+ const int batch_size,
+ const int spatial_size,
+ const int num_heads,
+ const int channels,
+ const int num_levels,
+ const int num_query,
+ const int num_point,
+ scalar_t* data_col)
+{
+ const int num_kernels = batch_size * num_query * num_heads * channels;
+ const int num_actual_kernels = batch_size * num_query * num_heads * channels;
+ const int num_threads = CUDA_NUM_THREADS;
+ ms_deformable_im2col_gpu_kernel
+ <<>>(
+ num_kernels, data_value, data_spatial_shapes, data_level_start_index, data_sampling_loc, data_attn_weight,
+ batch_size, spatial_size, num_heads, channels, num_levels, num_query, num_point, data_col);
+
+ cudaError_t err = cudaGetLastError();
+ if (err != cudaSuccess)
+ {
+ printf("error in ms_deformable_im2col_cuda: %s\n", cudaGetErrorString(err));
+ }
+
+}
+
+template
+void ms_deformable_col2im_cuda(cudaStream_t stream,
+ const scalar_t* grad_col,
+ const scalar_t* data_value,
+ const int64_t * data_spatial_shapes,
+ const int64_t * data_level_start_index,
+ const scalar_t * data_sampling_loc,
+ const scalar_t * data_attn_weight,
+ const int batch_size,
+ const int spatial_size,
+ const int num_heads,
+ const int channels,
+ const int num_levels,
+ const int num_query,
+ const int num_point,
+ scalar_t* grad_value,
+ scalar_t* grad_sampling_loc,
+ scalar_t* grad_attn_weight)
+{
+ const int num_threads = (channels > CUDA_NUM_THREADS)?CUDA_NUM_THREADS:channels;
+ const int num_kernels = batch_size * num_query * num_heads * channels;
+ const int num_actual_kernels = batch_size * num_query * num_heads * channels;
+ if (channels > 1024)
+ {
+ if ((channels & 1023) == 0)
+ {
+ ms_deformable_col2im_gpu_kernel_shm_reduce_v2_multi_blocks
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ }
+ else
+ {
+ ms_deformable_col2im_gpu_kernel_gm
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ }
+ }
+ else{
+ switch(channels)
+ {
+ case 1:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v1
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 2:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v1
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 4:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v1
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 8:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v1
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 16:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v1
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 32:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v1
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 64:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v2
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 128:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v2
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 256:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v2
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 512:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v2
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ case 1024:
+ ms_deformable_col2im_gpu_kernel_shm_blocksize_aware_reduce_v2
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ break;
+ default:
+ if (channels < 64)
+ {
+ ms_deformable_col2im_gpu_kernel_shm_reduce_v1
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ }
+ else
+ {
+ ms_deformable_col2im_gpu_kernel_shm_reduce_v2
+ <<>>(
+ num_kernels,
+ grad_col,
+ data_value,
+ data_spatial_shapes,
+ data_level_start_index,
+ data_sampling_loc,
+ data_attn_weight,
+ batch_size,
+ spatial_size,
+ num_heads,
+ channels,
+ num_levels,
+ num_query,
+ num_point,
+ grad_value,
+ grad_sampling_loc,
+ grad_attn_weight);
+ }
+ }
+ }
+ cudaError_t err = cudaGetLastError();
+ if (err != cudaSuccess)
+ {
+ printf("error in ms_deformable_col2im_cuda: %s\n", cudaGetErrorString(err));
+ }
+
+}
\ No newline at end of file
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/src/ms_deform_attn.h b/videocutler/mask2former/modeling/pixel_decoder/ops/src/ms_deform_attn.h
new file mode 100644
index 0000000000000000000000000000000000000000..2f80a1b294c55b37d13bb3558ff7aeadba3b37de
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/src/ms_deform_attn.h
@@ -0,0 +1,67 @@
+/*!
+**************************************************************************************************
+* Deformable DETR
+* Copyright (c) 2020 SenseTime. All Rights Reserved.
+* Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+**************************************************************************************************
+* Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+**************************************************************************************************
+*/
+
+/*!
+* Copyright (c) Facebook, Inc. and its affiliates.
+* Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+*/
+
+#pragma once
+
+#include "cpu/ms_deform_attn_cpu.h"
+
+#ifdef WITH_CUDA
+#include "cuda/ms_deform_attn_cuda.h"
+#endif
+
+
+at::Tensor
+ms_deform_attn_forward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const int im2col_step)
+{
+ if (value.type().is_cuda())
+ {
+#ifdef WITH_CUDA
+ return ms_deform_attn_cuda_forward(
+ value, spatial_shapes, level_start_index, sampling_loc, attn_weight, im2col_step);
+#else
+ AT_ERROR("Not compiled with GPU support");
+#endif
+ }
+ AT_ERROR("Not implemented on the CPU");
+}
+
+std::vector
+ms_deform_attn_backward(
+ const at::Tensor &value,
+ const at::Tensor &spatial_shapes,
+ const at::Tensor &level_start_index,
+ const at::Tensor &sampling_loc,
+ const at::Tensor &attn_weight,
+ const at::Tensor &grad_output,
+ const int im2col_step)
+{
+ if (value.type().is_cuda())
+ {
+#ifdef WITH_CUDA
+ return ms_deform_attn_cuda_backward(
+ value, spatial_shapes, level_start_index, sampling_loc, attn_weight, grad_output, im2col_step);
+#else
+ AT_ERROR("Not compiled with GPU support");
+#endif
+ }
+ AT_ERROR("Not implemented on the CPU");
+}
+
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/src/vision.cpp b/videocutler/mask2former/modeling/pixel_decoder/ops/src/vision.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4a08821e0121a77556aa7a263ec8ebfa928b13b6
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/src/vision.cpp
@@ -0,0 +1,21 @@
+/*!
+**************************************************************************************************
+* Deformable DETR
+* Copyright (c) 2020 SenseTime. All Rights Reserved.
+* Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+**************************************************************************************************
+* Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+**************************************************************************************************
+*/
+
+/*!
+* Copyright (c) Facebook, Inc. and its affiliates.
+* Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+*/
+
+#include "ms_deform_attn.h"
+
+PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
+ m.def("ms_deform_attn_forward", &ms_deform_attn_forward, "ms_deform_attn_forward");
+ m.def("ms_deform_attn_backward", &ms_deform_attn_backward, "ms_deform_attn_backward");
+}
diff --git a/videocutler/mask2former/modeling/pixel_decoder/ops/test.py b/videocutler/mask2former/modeling/pixel_decoder/ops/test.py
new file mode 100644
index 0000000000000000000000000000000000000000..6e1b545459f6fd3235767e721eb5a1090ae14bef
--- /dev/null
+++ b/videocutler/mask2former/modeling/pixel_decoder/ops/test.py
@@ -0,0 +1,92 @@
+# ------------------------------------------------------------------------------------------------
+# Deformable DETR
+# Copyright (c) 2020 SenseTime. All Rights Reserved.
+# Licensed under the Apache License, Version 2.0 [see LICENSE for details]
+# ------------------------------------------------------------------------------------------------
+# Modified from https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/tree/pytorch_1.0.0
+# ------------------------------------------------------------------------------------------------
+
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/fundamentalvision/Deformable-DETR
+
+from __future__ import absolute_import
+from __future__ import print_function
+from __future__ import division
+
+import time
+import torch
+import torch.nn as nn
+from torch.autograd import gradcheck
+
+from functions.ms_deform_attn_func import MSDeformAttnFunction, ms_deform_attn_core_pytorch
+
+
+N, M, D = 1, 2, 2
+Lq, L, P = 2, 2, 2
+shapes = torch.as_tensor([(6, 4), (3, 2)], dtype=torch.long).cuda()
+level_start_index = torch.cat((shapes.new_zeros((1, )), shapes.prod(1).cumsum(0)[:-1]))
+S = sum([(H*W).item() for H, W in shapes])
+
+
+torch.manual_seed(3)
+
+
+@torch.no_grad()
+def check_forward_equal_with_pytorch_double():
+ value = torch.rand(N, S, M, D).cuda() * 0.01
+ sampling_locations = torch.rand(N, Lq, M, L, P, 2).cuda()
+ attention_weights = torch.rand(N, Lq, M, L, P).cuda() + 1e-5
+ attention_weights /= attention_weights.sum(-1, keepdim=True).sum(-2, keepdim=True)
+ im2col_step = 2
+ output_pytorch = ms_deform_attn_core_pytorch(value.double(), shapes, sampling_locations.double(), attention_weights.double()).detach().cpu()
+ output_cuda = MSDeformAttnFunction.apply(value.double(), shapes, level_start_index, sampling_locations.double(), attention_weights.double(), im2col_step).detach().cpu()
+ fwdok = torch.allclose(output_cuda, output_pytorch)
+ max_abs_err = (output_cuda - output_pytorch).abs().max()
+ max_rel_err = ((output_cuda - output_pytorch).abs() / output_pytorch.abs()).max()
+
+ print(f'* {fwdok} check_forward_equal_with_pytorch_double: max_abs_err {max_abs_err:.2e} max_rel_err {max_rel_err:.2e}')
+
+
+@torch.no_grad()
+def check_forward_equal_with_pytorch_float():
+ value = torch.rand(N, S, M, D).cuda() * 0.01
+ sampling_locations = torch.rand(N, Lq, M, L, P, 2).cuda()
+ attention_weights = torch.rand(N, Lq, M, L, P).cuda() + 1e-5
+ attention_weights /= attention_weights.sum(-1, keepdim=True).sum(-2, keepdim=True)
+ im2col_step = 2
+ output_pytorch = ms_deform_attn_core_pytorch(value, shapes, sampling_locations, attention_weights).detach().cpu()
+ output_cuda = MSDeformAttnFunction.apply(value, shapes, level_start_index, sampling_locations, attention_weights, im2col_step).detach().cpu()
+ fwdok = torch.allclose(output_cuda, output_pytorch, rtol=1e-2, atol=1e-3)
+ max_abs_err = (output_cuda - output_pytorch).abs().max()
+ max_rel_err = ((output_cuda - output_pytorch).abs() / output_pytorch.abs()).max()
+
+ print(f'* {fwdok} check_forward_equal_with_pytorch_float: max_abs_err {max_abs_err:.2e} max_rel_err {max_rel_err:.2e}')
+
+
+def check_gradient_numerical(channels=4, grad_value=True, grad_sampling_loc=True, grad_attn_weight=True):
+
+ value = torch.rand(N, S, M, channels).cuda() * 0.01
+ sampling_locations = torch.rand(N, Lq, M, L, P, 2).cuda()
+ attention_weights = torch.rand(N, Lq, M, L, P).cuda() + 1e-5
+ attention_weights /= attention_weights.sum(-1, keepdim=True).sum(-2, keepdim=True)
+ im2col_step = 2
+ func = MSDeformAttnFunction.apply
+
+ value.requires_grad = grad_value
+ sampling_locations.requires_grad = grad_sampling_loc
+ attention_weights.requires_grad = grad_attn_weight
+
+ gradok = gradcheck(func, (value.double(), shapes, level_start_index, sampling_locations.double(), attention_weights.double(), im2col_step))
+
+ print(f'* {gradok} check_gradient_numerical(D={channels})')
+
+
+if __name__ == '__main__':
+ check_forward_equal_with_pytorch_double()
+ check_forward_equal_with_pytorch_float()
+
+ for channels in [30, 32, 64, 71, 1025, 2048, 3096]:
+ check_gradient_numerical(channels, True, True, True)
+
+
+
diff --git a/videocutler/mask2former/modeling/transformer_decoder/__init__.py b/videocutler/mask2former/modeling/transformer_decoder/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..ddcf38e78f3bbb2380b0a246000bcb5e5b385619
--- /dev/null
+++ b/videocutler/mask2former/modeling/transformer_decoder/__init__.py
@@ -0,0 +1,3 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+from .maskformer_transformer_decoder import StandardTransformerDecoder
+from .mask2former_transformer_decoder import MultiScaleMaskedTransformerDecoder
diff --git a/videocutler/mask2former/modeling/transformer_decoder/mask2former_transformer_decoder.py b/videocutler/mask2former/modeling/transformer_decoder/mask2former_transformer_decoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..52594f62693e6bf48a4c140ba2fe7131a0317774
--- /dev/null
+++ b/videocutler/mask2former/modeling/transformer_decoder/mask2former_transformer_decoder.py
@@ -0,0 +1,461 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from: https://github.com/facebookresearch/detr/blob/master/models/detr.py
+import logging
+import fvcore.nn.weight_init as weight_init
+from typing import Optional
+import torch
+from torch import nn, Tensor
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.layers import Conv2d
+
+from .position_encoding import PositionEmbeddingSine
+from .maskformer_transformer_decoder import TRANSFORMER_DECODER_REGISTRY
+
+
+class SelfAttentionLayer(nn.Module):
+
+ def __init__(self, d_model, nhead, dropout=0.0,
+ activation="relu", normalize_before=False):
+ super().__init__()
+ self.self_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
+
+ self.norm = nn.LayerNorm(d_model)
+ self.dropout = nn.Dropout(dropout)
+
+ self.activation = _get_activation_fn(activation)
+ self.normalize_before = normalize_before
+
+ self._reset_parameters()
+
+ def _reset_parameters(self):
+ for p in self.parameters():
+ if p.dim() > 1:
+ nn.init.xavier_uniform_(p)
+
+ def with_pos_embed(self, tensor, pos: Optional[Tensor]):
+ return tensor if pos is None else tensor + pos
+
+ def forward_post(self, tgt,
+ tgt_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ q = k = self.with_pos_embed(tgt, query_pos)
+ tgt2 = self.self_attn(q, k, value=tgt, attn_mask=tgt_mask,
+ key_padding_mask=tgt_key_padding_mask)[0]
+ tgt = tgt + self.dropout(tgt2)
+ tgt = self.norm(tgt)
+
+ return tgt
+
+ def forward_pre(self, tgt,
+ tgt_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ tgt2 = self.norm(tgt)
+ q = k = self.with_pos_embed(tgt2, query_pos)
+ tgt2 = self.self_attn(q, k, value=tgt2, attn_mask=tgt_mask,
+ key_padding_mask=tgt_key_padding_mask)[0]
+ tgt = tgt + self.dropout(tgt2)
+
+ return tgt
+
+ def forward(self, tgt,
+ tgt_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ if self.normalize_before:
+ return self.forward_pre(tgt, tgt_mask,
+ tgt_key_padding_mask, query_pos)
+ return self.forward_post(tgt, tgt_mask,
+ tgt_key_padding_mask, query_pos)
+
+
+class CrossAttentionLayer(nn.Module):
+
+ def __init__(self, d_model, nhead, dropout=0.0,
+ activation="relu", normalize_before=False):
+ super().__init__()
+ self.multihead_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
+
+ self.norm = nn.LayerNorm(d_model)
+ self.dropout = nn.Dropout(dropout)
+
+ self.activation = _get_activation_fn(activation)
+ self.normalize_before = normalize_before
+
+ self._reset_parameters()
+
+ def _reset_parameters(self):
+ for p in self.parameters():
+ if p.dim() > 1:
+ nn.init.xavier_uniform_(p)
+
+ def with_pos_embed(self, tensor, pos: Optional[Tensor]):
+ return tensor if pos is None else tensor + pos
+
+ def forward_post(self, tgt, memory,
+ memory_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ tgt2 = self.multihead_attn(query=self.with_pos_embed(tgt, query_pos),
+ key=self.with_pos_embed(memory, pos),
+ value=memory, attn_mask=memory_mask,
+ key_padding_mask=memory_key_padding_mask)[0]
+ tgt = tgt + self.dropout(tgt2)
+ tgt = self.norm(tgt)
+
+ return tgt
+
+ def forward_pre(self, tgt, memory,
+ memory_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ tgt2 = self.norm(tgt)
+ tgt2 = self.multihead_attn(query=self.with_pos_embed(tgt2, query_pos),
+ key=self.with_pos_embed(memory, pos),
+ value=memory, attn_mask=memory_mask,
+ key_padding_mask=memory_key_padding_mask)[0]
+ tgt = tgt + self.dropout(tgt2)
+
+ return tgt
+
+ def forward(self, tgt, memory,
+ memory_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ if self.normalize_before:
+ return self.forward_pre(tgt, memory, memory_mask,
+ memory_key_padding_mask, pos, query_pos)
+ return self.forward_post(tgt, memory, memory_mask,
+ memory_key_padding_mask, pos, query_pos)
+
+
+class FFNLayer(nn.Module):
+
+ def __init__(self, d_model, dim_feedforward=2048, dropout=0.0,
+ activation="relu", normalize_before=False):
+ super().__init__()
+ # Implementation of Feedforward model
+ self.linear1 = nn.Linear(d_model, dim_feedforward)
+ self.dropout = nn.Dropout(dropout)
+ self.linear2 = nn.Linear(dim_feedforward, d_model)
+
+ self.norm = nn.LayerNorm(d_model)
+
+ self.activation = _get_activation_fn(activation)
+ self.normalize_before = normalize_before
+
+ self._reset_parameters()
+
+ def _reset_parameters(self):
+ for p in self.parameters():
+ if p.dim() > 1:
+ nn.init.xavier_uniform_(p)
+
+ def with_pos_embed(self, tensor, pos: Optional[Tensor]):
+ return tensor if pos is None else tensor + pos
+
+ def forward_post(self, tgt):
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt))))
+ tgt = tgt + self.dropout(tgt2)
+ tgt = self.norm(tgt)
+ return tgt
+
+ def forward_pre(self, tgt):
+ tgt2 = self.norm(tgt)
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt2))))
+ tgt = tgt + self.dropout(tgt2)
+ return tgt
+
+ def forward(self, tgt):
+ if self.normalize_before:
+ return self.forward_pre(tgt)
+ return self.forward_post(tgt)
+
+
+def _get_activation_fn(activation):
+ """Return an activation function given a string"""
+ if activation == "relu":
+ return F.relu
+ if activation == "gelu":
+ return F.gelu
+ if activation == "glu":
+ return F.glu
+ raise RuntimeError(F"activation should be relu/gelu, not {activation}.")
+
+
+class MLP(nn.Module):
+ """ Very simple multi-layer perceptron (also called FFN)"""
+
+ def __init__(self, input_dim, hidden_dim, output_dim, num_layers):
+ super().__init__()
+ self.num_layers = num_layers
+ h = [hidden_dim] * (num_layers - 1)
+ self.layers = nn.ModuleList(nn.Linear(n, k) for n, k in zip([input_dim] + h, h + [output_dim]))
+
+ def forward(self, x):
+ for i, layer in enumerate(self.layers):
+ x = F.relu(layer(x)) if i < self.num_layers - 1 else layer(x)
+ return x
+
+
+@TRANSFORMER_DECODER_REGISTRY.register()
+class MultiScaleMaskedTransformerDecoder(nn.Module):
+
+ _version = 2
+
+ def _load_from_state_dict(
+ self, state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, error_msgs
+ ):
+ version = local_metadata.get("version", None)
+ if version is None or version < 2:
+ # Do not warn if train from scratch
+ scratch = True
+ logger = logging.getLogger(__name__)
+ for k in list(state_dict.keys()):
+ newk = k
+ if "static_query" in k:
+ newk = k.replace("static_query", "query_feat")
+ if newk != k:
+ state_dict[newk] = state_dict[k]
+ del state_dict[k]
+ scratch = False
+
+ if not scratch:
+ logger.warning(
+ f"Weight format of {self.__class__.__name__} have changed! "
+ "Please upgrade your models. Applying automatic conversion now ..."
+ )
+
+ @configurable
+ def __init__(
+ self,
+ in_channels,
+ mask_classification=True,
+ *,
+ num_classes: int,
+ hidden_dim: int,
+ num_queries: int,
+ nheads: int,
+ dim_feedforward: int,
+ dec_layers: int,
+ pre_norm: bool,
+ mask_dim: int,
+ enforce_input_project: bool,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ in_channels: channels of the input features
+ mask_classification: whether to add mask classifier or not
+ num_classes: number of classes
+ hidden_dim: Transformer feature dimension
+ num_queries: number of queries
+ nheads: number of heads
+ dim_feedforward: feature dimension in feedforward network
+ enc_layers: number of Transformer encoder layers
+ dec_layers: number of Transformer decoder layers
+ pre_norm: whether to use pre-LayerNorm or not
+ mask_dim: mask feature dimension
+ enforce_input_project: add input project 1x1 conv even if input
+ channels and hidden dim is identical
+ """
+ super().__init__()
+
+ assert mask_classification, "Only support mask classification model"
+ self.mask_classification = mask_classification
+
+ # positional encoding
+ N_steps = hidden_dim // 2
+ self.pe_layer = PositionEmbeddingSine(N_steps, normalize=True)
+
+ # define Transformer decoder here
+ self.num_heads = nheads
+ self.num_layers = dec_layers
+ self.transformer_self_attention_layers = nn.ModuleList()
+ self.transformer_cross_attention_layers = nn.ModuleList()
+ self.transformer_ffn_layers = nn.ModuleList()
+
+ for _ in range(self.num_layers):
+ self.transformer_self_attention_layers.append(
+ SelfAttentionLayer(
+ d_model=hidden_dim,
+ nhead=nheads,
+ dropout=0.0,
+ normalize_before=pre_norm,
+ )
+ )
+
+ self.transformer_cross_attention_layers.append(
+ CrossAttentionLayer(
+ d_model=hidden_dim,
+ nhead=nheads,
+ dropout=0.0,
+ normalize_before=pre_norm,
+ )
+ )
+
+ self.transformer_ffn_layers.append(
+ FFNLayer(
+ d_model=hidden_dim,
+ dim_feedforward=dim_feedforward,
+ dropout=0.0,
+ normalize_before=pre_norm,
+ )
+ )
+
+ self.decoder_norm = nn.LayerNorm(hidden_dim)
+
+ self.num_queries = num_queries
+ # learnable query features
+ self.query_feat = nn.Embedding(num_queries, hidden_dim)
+ # learnable query p.e.
+ self.query_embed = nn.Embedding(num_queries, hidden_dim)
+
+ # level embedding (we always use 3 scales)
+ self.num_feature_levels = 3
+ self.level_embed = nn.Embedding(self.num_feature_levels, hidden_dim)
+ self.input_proj = nn.ModuleList()
+ for _ in range(self.num_feature_levels):
+ if in_channels != hidden_dim or enforce_input_project:
+ self.input_proj.append(Conv2d(in_channels, hidden_dim, kernel_size=1))
+ weight_init.c2_xavier_fill(self.input_proj[-1])
+ else:
+ self.input_proj.append(nn.Sequential())
+
+ # output FFNs
+ if self.mask_classification:
+ self.class_embed = nn.Linear(hidden_dim, num_classes + 1)
+ self.mask_embed = MLP(hidden_dim, hidden_dim, mask_dim, 3)
+
+ @classmethod
+ def from_config(cls, cfg, in_channels, mask_classification):
+ ret = {}
+ ret["in_channels"] = in_channels
+ ret["mask_classification"] = mask_classification
+
+ ret["num_classes"] = cfg.MODEL.SEM_SEG_HEAD.NUM_CLASSES
+ ret["hidden_dim"] = cfg.MODEL.MASK_FORMER.HIDDEN_DIM
+ ret["num_queries"] = cfg.MODEL.MASK_FORMER.NUM_OBJECT_QUERIES
+ # Transformer parameters:
+ ret["nheads"] = cfg.MODEL.MASK_FORMER.NHEADS
+ ret["dim_feedforward"] = cfg.MODEL.MASK_FORMER.DIM_FEEDFORWARD
+
+ # NOTE: because we add learnable query features which requires supervision,
+ # we add minus 1 to decoder layers to be consistent with our loss
+ # implementation: that is, number of auxiliary losses is always
+ # equal to number of decoder layers. With learnable query features, the number of
+ # auxiliary losses equals number of decoders plus 1.
+ assert cfg.MODEL.MASK_FORMER.DEC_LAYERS >= 1
+ ret["dec_layers"] = cfg.MODEL.MASK_FORMER.DEC_LAYERS - 1
+ ret["pre_norm"] = cfg.MODEL.MASK_FORMER.PRE_NORM
+ ret["enforce_input_project"] = cfg.MODEL.MASK_FORMER.ENFORCE_INPUT_PROJ
+
+ ret["mask_dim"] = cfg.MODEL.SEM_SEG_HEAD.MASK_DIM
+
+ return ret
+
+ def forward(self, x, mask_features, mask = None):
+ # x is a list of multi-scale feature
+ assert len(x) == self.num_feature_levels
+ src = []
+ pos = []
+ size_list = []
+
+ # disable mask, it does not affect performance
+ del mask
+
+ for i in range(self.num_feature_levels):
+ size_list.append(x[i].shape[-2:])
+ pos.append(self.pe_layer(x[i], None).flatten(2))
+ src.append(self.input_proj[i](x[i]).flatten(2) + self.level_embed.weight[i][None, :, None])
+
+ # flatten NxCxHxW to HWxNxC
+ pos[-1] = pos[-1].permute(2, 0, 1)
+ src[-1] = src[-1].permute(2, 0, 1)
+
+ _, bs, _ = src[0].shape
+
+ # QxNxC
+ query_embed = self.query_embed.weight.unsqueeze(1).repeat(1, bs, 1)
+ output = self.query_feat.weight.unsqueeze(1).repeat(1, bs, 1)
+
+ predictions_class = []
+ predictions_mask = []
+
+ # prediction heads on learnable query features
+ outputs_class, outputs_mask, attn_mask = self.forward_prediction_heads(output, mask_features, attn_mask_target_size=size_list[0])
+ predictions_class.append(outputs_class)
+ predictions_mask.append(outputs_mask)
+
+ for i in range(self.num_layers):
+ level_index = i % self.num_feature_levels
+ attn_mask[torch.where(attn_mask.sum(-1) == attn_mask.shape[-1])] = False
+ # attention: cross-attention first
+ output = self.transformer_cross_attention_layers[i](
+ output, src[level_index],
+ memory_mask=attn_mask,
+ memory_key_padding_mask=None, # here we do not apply masking on padded region
+ pos=pos[level_index], query_pos=query_embed
+ )
+
+ output = self.transformer_self_attention_layers[i](
+ output, tgt_mask=None,
+ tgt_key_padding_mask=None,
+ query_pos=query_embed
+ )
+
+ # FFN
+ output = self.transformer_ffn_layers[i](
+ output
+ )
+
+ outputs_class, outputs_mask, attn_mask = self.forward_prediction_heads(output, mask_features, attn_mask_target_size=size_list[(i + 1) % self.num_feature_levels])
+ predictions_class.append(outputs_class)
+ predictions_mask.append(outputs_mask)
+
+ assert len(predictions_class) == self.num_layers + 1
+
+ out = {
+ 'pred_logits': predictions_class[-1],
+ 'pred_masks': predictions_mask[-1],
+ 'aux_outputs': self._set_aux_loss(
+ predictions_class if self.mask_classification else None, predictions_mask
+ )
+ }
+ return out
+
+ def forward_prediction_heads(self, output, mask_features, attn_mask_target_size):
+ decoder_output = self.decoder_norm(output)
+ decoder_output = decoder_output.transpose(0, 1)
+ outputs_class = self.class_embed(decoder_output)
+ mask_embed = self.mask_embed(decoder_output)
+ outputs_mask = torch.einsum("bqc,bchw->bqhw", mask_embed, mask_features)
+
+ # NOTE: prediction is of higher-resolution
+ # [B, Q, H, W] -> [B, Q, H*W] -> [B, h, Q, H*W] -> [B*h, Q, HW]
+ attn_mask = F.interpolate(outputs_mask, size=attn_mask_target_size, mode="bilinear", align_corners=False)
+ # must use bool type
+ # If a BoolTensor is provided, positions with ``True`` are not allowed to attend while ``False`` values will be unchanged.
+ attn_mask = (attn_mask.sigmoid().flatten(2).unsqueeze(1).repeat(1, self.num_heads, 1, 1).flatten(0, 1) < 0.5).bool()
+ attn_mask = attn_mask.detach()
+
+ return outputs_class, outputs_mask, attn_mask
+
+ @torch.jit.unused
+ def _set_aux_loss(self, outputs_class, outputs_seg_masks):
+ # this is a workaround to make torchscript happy, as torchscript
+ # doesn't support dictionary with non-homogeneous values, such
+ # as a dict having both a Tensor and a list.
+ if self.mask_classification:
+ return [
+ {"pred_logits": a, "pred_masks": b}
+ for a, b in zip(outputs_class[:-1], outputs_seg_masks[:-1])
+ ]
+ else:
+ return [{"pred_masks": b} for b in outputs_seg_masks[:-1]]
diff --git a/videocutler/mask2former/modeling/transformer_decoder/maskformer_transformer_decoder.py b/videocutler/mask2former/modeling/transformer_decoder/maskformer_transformer_decoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..79f09fa43f2f5a33c3422a6bb999b20763ab8b5e
--- /dev/null
+++ b/videocutler/mask2former/modeling/transformer_decoder/maskformer_transformer_decoder.py
@@ -0,0 +1,188 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from: https://github.com/facebookresearch/detr/blob/master/models/detr.py
+import fvcore.nn.weight_init as weight_init
+import torch
+from torch import nn
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.layers import Conv2d
+from detectron2.utils.registry import Registry
+
+from .position_encoding import PositionEmbeddingSine
+from .transformer import Transformer
+
+
+TRANSFORMER_DECODER_REGISTRY = Registry("TRANSFORMER_MODULE")
+TRANSFORMER_DECODER_REGISTRY.__doc__ = """
+Registry for transformer module in MaskFormer.
+"""
+
+
+def build_transformer_decoder(cfg, in_channels, mask_classification=True):
+ """
+ Build a instance embedding branch from `cfg.MODEL.INS_EMBED_HEAD.NAME`.
+ """
+ name = cfg.MODEL.MASK_FORMER.TRANSFORMER_DECODER_NAME
+ return TRANSFORMER_DECODER_REGISTRY.get(name)(cfg, in_channels, mask_classification)
+
+
+@TRANSFORMER_DECODER_REGISTRY.register()
+class StandardTransformerDecoder(nn.Module):
+ @configurable
+ def __init__(
+ self,
+ in_channels,
+ mask_classification=True,
+ *,
+ num_classes: int,
+ hidden_dim: int,
+ num_queries: int,
+ nheads: int,
+ dropout: float,
+ dim_feedforward: int,
+ enc_layers: int,
+ dec_layers: int,
+ pre_norm: bool,
+ deep_supervision: bool,
+ mask_dim: int,
+ enforce_input_project: bool,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ in_channels: channels of the input features
+ mask_classification: whether to add mask classifier or not
+ num_classes: number of classes
+ hidden_dim: Transformer feature dimension
+ num_queries: number of queries
+ nheads: number of heads
+ dropout: dropout in Transformer
+ dim_feedforward: feature dimension in feedforward network
+ enc_layers: number of Transformer encoder layers
+ dec_layers: number of Transformer decoder layers
+ pre_norm: whether to use pre-LayerNorm or not
+ deep_supervision: whether to add supervision to every decoder layers
+ mask_dim: mask feature dimension
+ enforce_input_project: add input project 1x1 conv even if input
+ channels and hidden dim is identical
+ """
+ super().__init__()
+
+ self.mask_classification = mask_classification
+
+ # positional encoding
+ N_steps = hidden_dim // 2
+ self.pe_layer = PositionEmbeddingSine(N_steps, normalize=True)
+
+ transformer = Transformer(
+ d_model=hidden_dim,
+ dropout=dropout,
+ nhead=nheads,
+ dim_feedforward=dim_feedforward,
+ num_encoder_layers=enc_layers,
+ num_decoder_layers=dec_layers,
+ normalize_before=pre_norm,
+ return_intermediate_dec=deep_supervision,
+ )
+
+ self.num_queries = num_queries
+ self.transformer = transformer
+ hidden_dim = transformer.d_model
+
+ self.query_embed = nn.Embedding(num_queries, hidden_dim)
+
+ if in_channels != hidden_dim or enforce_input_project:
+ self.input_proj = Conv2d(in_channels, hidden_dim, kernel_size=1)
+ weight_init.c2_xavier_fill(self.input_proj)
+ else:
+ self.input_proj = nn.Sequential()
+ self.aux_loss = deep_supervision
+
+ # output FFNs
+ if self.mask_classification:
+ self.class_embed = nn.Linear(hidden_dim, num_classes + 1)
+ self.mask_embed = MLP(hidden_dim, hidden_dim, mask_dim, 3)
+
+ @classmethod
+ def from_config(cls, cfg, in_channels, mask_classification):
+ ret = {}
+ ret["in_channels"] = in_channels
+ ret["mask_classification"] = mask_classification
+
+ ret["num_classes"] = cfg.MODEL.SEM_SEG_HEAD.NUM_CLASSES
+ ret["hidden_dim"] = cfg.MODEL.MASK_FORMER.HIDDEN_DIM
+ ret["num_queries"] = cfg.MODEL.MASK_FORMER.NUM_OBJECT_QUERIES
+ # Transformer parameters:
+ ret["nheads"] = cfg.MODEL.MASK_FORMER.NHEADS
+ ret["dropout"] = cfg.MODEL.MASK_FORMER.DROPOUT
+ ret["dim_feedforward"] = cfg.MODEL.MASK_FORMER.DIM_FEEDFORWARD
+ ret["enc_layers"] = cfg.MODEL.MASK_FORMER.ENC_LAYERS
+ ret["dec_layers"] = cfg.MODEL.MASK_FORMER.DEC_LAYERS
+ ret["pre_norm"] = cfg.MODEL.MASK_FORMER.PRE_NORM
+ ret["deep_supervision"] = cfg.MODEL.MASK_FORMER.DEEP_SUPERVISION
+ ret["enforce_input_project"] = cfg.MODEL.MASK_FORMER.ENFORCE_INPUT_PROJ
+
+ ret["mask_dim"] = cfg.MODEL.SEM_SEG_HEAD.MASK_DIM
+
+ return ret
+
+ def forward(self, x, mask_features, mask=None):
+ if mask is not None:
+ mask = F.interpolate(mask[None].float(), size=x.shape[-2:]).to(torch.bool)[0]
+ pos = self.pe_layer(x, mask)
+
+ src = x
+ hs, memory = self.transformer(self.input_proj(src), mask, self.query_embed.weight, pos)
+
+ if self.mask_classification:
+ outputs_class = self.class_embed(hs)
+ out = {"pred_logits": outputs_class[-1]}
+ else:
+ out = {}
+
+ if self.aux_loss:
+ # [l, bs, queries, embed]
+ mask_embed = self.mask_embed(hs)
+ outputs_seg_masks = torch.einsum("lbqc,bchw->lbqhw", mask_embed, mask_features)
+ out["pred_masks"] = outputs_seg_masks[-1]
+ out["aux_outputs"] = self._set_aux_loss(
+ outputs_class if self.mask_classification else None, outputs_seg_masks
+ )
+ else:
+ # FIXME h_boxes takes the last one computed, keep this in mind
+ # [bs, queries, embed]
+ mask_embed = self.mask_embed(hs[-1])
+ outputs_seg_masks = torch.einsum("bqc,bchw->bqhw", mask_embed, mask_features)
+ out["pred_masks"] = outputs_seg_masks
+ return out
+
+ @torch.jit.unused
+ def _set_aux_loss(self, outputs_class, outputs_seg_masks):
+ # this is a workaround to make torchscript happy, as torchscript
+ # doesn't support dictionary with non-homogeneous values, such
+ # as a dict having both a Tensor and a list.
+ if self.mask_classification:
+ return [
+ {"pred_logits": a, "pred_masks": b}
+ for a, b in zip(outputs_class[:-1], outputs_seg_masks[:-1])
+ ]
+ else:
+ return [{"pred_masks": b} for b in outputs_seg_masks[:-1]]
+
+
+class MLP(nn.Module):
+ """Very simple multi-layer perceptron (also called FFN)"""
+
+ def __init__(self, input_dim, hidden_dim, output_dim, num_layers):
+ super().__init__()
+ self.num_layers = num_layers
+ h = [hidden_dim] * (num_layers - 1)
+ self.layers = nn.ModuleList(
+ nn.Linear(n, k) for n, k in zip([input_dim] + h, h + [output_dim])
+ )
+
+ def forward(self, x):
+ for i, layer in enumerate(self.layers):
+ x = F.relu(layer(x)) if i < self.num_layers - 1 else layer(x)
+ return x
diff --git a/videocutler/mask2former/modeling/transformer_decoder/position_encoding.py b/videocutler/mask2former/modeling/transformer_decoder/position_encoding.py
new file mode 100644
index 0000000000000000000000000000000000000000..f32532e070e67b2cd25771aea1ad10e7e5a5dc69
--- /dev/null
+++ b/videocutler/mask2former/modeling/transformer_decoder/position_encoding.py
@@ -0,0 +1,64 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# # Modified by Bowen Cheng from: https://github.com/facebookresearch/detr/blob/master/models/position_encoding.py
+"""
+Various positional encodings for the transformer.
+"""
+import math
+
+import torch
+from torch import nn
+
+
+class PositionEmbeddingSine(nn.Module):
+ """
+ This is a more standard version of the position embedding, very similar to the one
+ used by the Attention is all you need paper, generalized to work on images.
+ """
+
+ def __init__(self, num_pos_feats=64, temperature=10000, normalize=False, scale=None):
+ super().__init__()
+ self.num_pos_feats = num_pos_feats
+ self.temperature = temperature
+ self.normalize = normalize
+ if scale is not None and normalize is False:
+ raise ValueError("normalize should be True if scale is passed")
+ if scale is None:
+ scale = 2 * math.pi
+ self.scale = scale
+
+ def forward(self, x, mask=None):
+ if mask is None:
+ mask = torch.zeros((x.size(0), x.size(2), x.size(3)), device=x.device, dtype=torch.bool)
+ not_mask = ~mask
+ y_embed = not_mask.cumsum(1, dtype=torch.float32)
+ x_embed = not_mask.cumsum(2, dtype=torch.float32)
+ if self.normalize:
+ eps = 1e-6
+ y_embed = y_embed / (y_embed[:, -1:, :] + eps) * self.scale
+ x_embed = x_embed / (x_embed[:, :, -1:] + eps) * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ pos_x = x_embed[:, :, :, None] / dim_t
+ pos_y = y_embed[:, :, :, None] / dim_t
+ pos_x = torch.stack(
+ (pos_x[:, :, :, 0::2].sin(), pos_x[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos_y = torch.stack(
+ (pos_y[:, :, :, 0::2].sin(), pos_y[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos = torch.cat((pos_y, pos_x), dim=3).permute(0, 3, 1, 2)
+ return pos
+
+ def __repr__(self, _repr_indent=4):
+ head = "Positional encoding " + self.__class__.__name__
+ body = [
+ "num_pos_feats: {}".format(self.num_pos_feats),
+ "temperature: {}".format(self.temperature),
+ "normalize: {}".format(self.normalize),
+ "scale: {}".format(self.scale),
+ ]
+ # _repr_indent = 4
+ lines = [head] + [" " * _repr_indent + line for line in body]
+ return "\n".join(lines)
diff --git a/videocutler/mask2former/modeling/transformer_decoder/transformer.py b/videocutler/mask2former/modeling/transformer_decoder/transformer.py
new file mode 100644
index 0000000000000000000000000000000000000000..ea8caa0108f5e136a9739320ab69a3e1b6f40298
--- /dev/null
+++ b/videocutler/mask2former/modeling/transformer_decoder/transformer.py
@@ -0,0 +1,369 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from: https://github.com/facebookresearch/detr/blob/master/models/transformer.py
+"""
+Transformer class.
+
+Copy-paste from torch.nn.Transformer with modifications:
+ * positional encodings are passed in MHattention
+ * extra LN at the end of encoder is removed
+ * decoder returns a stack of activations from all decoding layers
+"""
+import copy
+from typing import List, Optional
+
+import torch
+import torch.nn.functional as F
+from torch import Tensor, nn
+
+
+class Transformer(nn.Module):
+ def __init__(
+ self,
+ d_model=512,
+ nhead=8,
+ num_encoder_layers=6,
+ num_decoder_layers=6,
+ dim_feedforward=2048,
+ dropout=0.1,
+ activation="relu",
+ normalize_before=False,
+ return_intermediate_dec=False,
+ ):
+ super().__init__()
+
+ encoder_layer = TransformerEncoderLayer(
+ d_model, nhead, dim_feedforward, dropout, activation, normalize_before
+ )
+ encoder_norm = nn.LayerNorm(d_model) if normalize_before else None
+ self.encoder = TransformerEncoder(encoder_layer, num_encoder_layers, encoder_norm)
+
+ decoder_layer = TransformerDecoderLayer(
+ d_model, nhead, dim_feedforward, dropout, activation, normalize_before
+ )
+ decoder_norm = nn.LayerNorm(d_model)
+ self.decoder = TransformerDecoder(
+ decoder_layer,
+ num_decoder_layers,
+ decoder_norm,
+ return_intermediate=return_intermediate_dec,
+ )
+
+ self._reset_parameters()
+
+ self.d_model = d_model
+ self.nhead = nhead
+
+ def _reset_parameters(self):
+ for p in self.parameters():
+ if p.dim() > 1:
+ nn.init.xavier_uniform_(p)
+
+ def forward(self, src, mask, query_embed, pos_embed):
+ # flatten NxCxHxW to HWxNxC
+ bs, c, h, w = src.shape
+ src = src.flatten(2).permute(2, 0, 1)
+ pos_embed = pos_embed.flatten(2).permute(2, 0, 1)
+ query_embed = query_embed.unsqueeze(1).repeat(1, bs, 1)
+ if mask is not None:
+ mask = mask.flatten(1)
+
+ tgt = torch.zeros_like(query_embed)
+ memory = self.encoder(src, src_key_padding_mask=mask, pos=pos_embed)
+ hs = self.decoder(
+ tgt, memory, memory_key_padding_mask=mask, pos=pos_embed, query_pos=query_embed
+ )
+ return hs.transpose(1, 2), memory.permute(1, 2, 0).view(bs, c, h, w)
+
+
+class TransformerEncoder(nn.Module):
+ def __init__(self, encoder_layer, num_layers, norm=None):
+ super().__init__()
+ self.layers = _get_clones(encoder_layer, num_layers)
+ self.num_layers = num_layers
+ self.norm = norm
+
+ def forward(
+ self,
+ src,
+ mask: Optional[Tensor] = None,
+ src_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ ):
+ output = src
+
+ for layer in self.layers:
+ output = layer(
+ output, src_mask=mask, src_key_padding_mask=src_key_padding_mask, pos=pos
+ )
+
+ if self.norm is not None:
+ output = self.norm(output)
+
+ return output
+
+
+class TransformerDecoder(nn.Module):
+ def __init__(self, decoder_layer, num_layers, norm=None, return_intermediate=False):
+ super().__init__()
+ self.layers = _get_clones(decoder_layer, num_layers)
+ self.num_layers = num_layers
+ self.norm = norm
+ self.return_intermediate = return_intermediate
+
+ def forward(
+ self,
+ tgt,
+ memory,
+ tgt_mask: Optional[Tensor] = None,
+ memory_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None,
+ ):
+ output = tgt
+
+ intermediate = []
+
+ for layer in self.layers:
+ output = layer(
+ output,
+ memory,
+ tgt_mask=tgt_mask,
+ memory_mask=memory_mask,
+ tgt_key_padding_mask=tgt_key_padding_mask,
+ memory_key_padding_mask=memory_key_padding_mask,
+ pos=pos,
+ query_pos=query_pos,
+ )
+ if self.return_intermediate:
+ intermediate.append(self.norm(output))
+
+ if self.norm is not None:
+ output = self.norm(output)
+ if self.return_intermediate:
+ intermediate.pop()
+ intermediate.append(output)
+
+ if self.return_intermediate:
+ return torch.stack(intermediate)
+
+ return output.unsqueeze(0)
+
+
+class TransformerEncoderLayer(nn.Module):
+ def __init__(
+ self,
+ d_model,
+ nhead,
+ dim_feedforward=2048,
+ dropout=0.1,
+ activation="relu",
+ normalize_before=False,
+ ):
+ super().__init__()
+ self.self_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
+ # Implementation of Feedforward model
+ self.linear1 = nn.Linear(d_model, dim_feedforward)
+ self.dropout = nn.Dropout(dropout)
+ self.linear2 = nn.Linear(dim_feedforward, d_model)
+
+ self.norm1 = nn.LayerNorm(d_model)
+ self.norm2 = nn.LayerNorm(d_model)
+ self.dropout1 = nn.Dropout(dropout)
+ self.dropout2 = nn.Dropout(dropout)
+
+ self.activation = _get_activation_fn(activation)
+ self.normalize_before = normalize_before
+
+ def with_pos_embed(self, tensor, pos: Optional[Tensor]):
+ return tensor if pos is None else tensor + pos
+
+ def forward_post(
+ self,
+ src,
+ src_mask: Optional[Tensor] = None,
+ src_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ ):
+ q = k = self.with_pos_embed(src, pos)
+ src2 = self.self_attn(
+ q, k, value=src, attn_mask=src_mask, key_padding_mask=src_key_padding_mask
+ )[0]
+ src = src + self.dropout1(src2)
+ src = self.norm1(src)
+ src2 = self.linear2(self.dropout(self.activation(self.linear1(src))))
+ src = src + self.dropout2(src2)
+ src = self.norm2(src)
+ return src
+
+ def forward_pre(
+ self,
+ src,
+ src_mask: Optional[Tensor] = None,
+ src_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ ):
+ src2 = self.norm1(src)
+ q = k = self.with_pos_embed(src2, pos)
+ src2 = self.self_attn(
+ q, k, value=src2, attn_mask=src_mask, key_padding_mask=src_key_padding_mask
+ )[0]
+ src = src + self.dropout1(src2)
+ src2 = self.norm2(src)
+ src2 = self.linear2(self.dropout(self.activation(self.linear1(src2))))
+ src = src + self.dropout2(src2)
+ return src
+
+ def forward(
+ self,
+ src,
+ src_mask: Optional[Tensor] = None,
+ src_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ ):
+ if self.normalize_before:
+ return self.forward_pre(src, src_mask, src_key_padding_mask, pos)
+ return self.forward_post(src, src_mask, src_key_padding_mask, pos)
+
+
+class TransformerDecoderLayer(nn.Module):
+ def __init__(
+ self,
+ d_model,
+ nhead,
+ dim_feedforward=2048,
+ dropout=0.1,
+ activation="relu",
+ normalize_before=False,
+ ):
+ super().__init__()
+ self.self_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
+ self.multihead_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
+ # Implementation of Feedforward model
+ self.linear1 = nn.Linear(d_model, dim_feedforward)
+ self.dropout = nn.Dropout(dropout)
+ self.linear2 = nn.Linear(dim_feedforward, d_model)
+
+ self.norm1 = nn.LayerNorm(d_model)
+ self.norm2 = nn.LayerNorm(d_model)
+ self.norm3 = nn.LayerNorm(d_model)
+ self.dropout1 = nn.Dropout(dropout)
+ self.dropout2 = nn.Dropout(dropout)
+ self.dropout3 = nn.Dropout(dropout)
+
+ self.activation = _get_activation_fn(activation)
+ self.normalize_before = normalize_before
+
+ def with_pos_embed(self, tensor, pos: Optional[Tensor]):
+ return tensor if pos is None else tensor + pos
+
+ def forward_post(
+ self,
+ tgt,
+ memory,
+ tgt_mask: Optional[Tensor] = None,
+ memory_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None,
+ ):
+ q = k = self.with_pos_embed(tgt, query_pos)
+ tgt2 = self.self_attn(
+ q, k, value=tgt, attn_mask=tgt_mask, key_padding_mask=tgt_key_padding_mask
+ )[0]
+ tgt = tgt + self.dropout1(tgt2)
+ tgt = self.norm1(tgt)
+ tgt2 = self.multihead_attn(
+ query=self.with_pos_embed(tgt, query_pos),
+ key=self.with_pos_embed(memory, pos),
+ value=memory,
+ attn_mask=memory_mask,
+ key_padding_mask=memory_key_padding_mask,
+ )[0]
+ tgt = tgt + self.dropout2(tgt2)
+ tgt = self.norm2(tgt)
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt))))
+ tgt = tgt + self.dropout3(tgt2)
+ tgt = self.norm3(tgt)
+ return tgt
+
+ def forward_pre(
+ self,
+ tgt,
+ memory,
+ tgt_mask: Optional[Tensor] = None,
+ memory_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None,
+ ):
+ tgt2 = self.norm1(tgt)
+ q = k = self.with_pos_embed(tgt2, query_pos)
+ tgt2 = self.self_attn(
+ q, k, value=tgt2, attn_mask=tgt_mask, key_padding_mask=tgt_key_padding_mask
+ )[0]
+ tgt = tgt + self.dropout1(tgt2)
+ tgt2 = self.norm2(tgt)
+ tgt2 = self.multihead_attn(
+ query=self.with_pos_embed(tgt2, query_pos),
+ key=self.with_pos_embed(memory, pos),
+ value=memory,
+ attn_mask=memory_mask,
+ key_padding_mask=memory_key_padding_mask,
+ )[0]
+ tgt = tgt + self.dropout2(tgt2)
+ tgt2 = self.norm3(tgt)
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt2))))
+ tgt = tgt + self.dropout3(tgt2)
+ return tgt
+
+ def forward(
+ self,
+ tgt,
+ memory,
+ tgt_mask: Optional[Tensor] = None,
+ memory_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None,
+ ):
+ if self.normalize_before:
+ return self.forward_pre(
+ tgt,
+ memory,
+ tgt_mask,
+ memory_mask,
+ tgt_key_padding_mask,
+ memory_key_padding_mask,
+ pos,
+ query_pos,
+ )
+ return self.forward_post(
+ tgt,
+ memory,
+ tgt_mask,
+ memory_mask,
+ tgt_key_padding_mask,
+ memory_key_padding_mask,
+ pos,
+ query_pos,
+ )
+
+
+def _get_clones(module, N):
+ return nn.ModuleList([copy.deepcopy(module) for i in range(N)])
+
+
+def _get_activation_fn(activation):
+ """Return an activation function given a string"""
+ if activation == "relu":
+ return F.relu
+ if activation == "gelu":
+ return F.gelu
+ if activation == "glu":
+ return F.glu
+ raise RuntimeError(f"activation should be relu/gelu, not {activation}.")
diff --git a/videocutler/mask2former/test_time_augmentation.py b/videocutler/mask2former/test_time_augmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..b02568d1b1ed32efb9316b5c4d53c4d71e5cef78
--- /dev/null
+++ b/videocutler/mask2former/test_time_augmentation.py
@@ -0,0 +1,103 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import copy
+import logging
+from itertools import count
+
+import numpy as np
+import torch
+from fvcore.transforms import HFlipTransform
+from torch import nn
+from torch.nn.parallel import DistributedDataParallel
+
+from detectron2.data.detection_utils import read_image
+from detectron2.modeling import DatasetMapperTTA
+
+
+__all__ = [
+ "SemanticSegmentorWithTTA",
+]
+
+
+class SemanticSegmentorWithTTA(nn.Module):
+ """
+ A SemanticSegmentor with test-time augmentation enabled.
+ Its :meth:`__call__` method has the same interface as :meth:`SemanticSegmentor.forward`.
+ """
+
+ def __init__(self, cfg, model, tta_mapper=None, batch_size=1):
+ """
+ Args:
+ cfg (CfgNode):
+ model (SemanticSegmentor): a SemanticSegmentor to apply TTA on.
+ tta_mapper (callable): takes a dataset dict and returns a list of
+ augmented versions of the dataset dict. Defaults to
+ `DatasetMapperTTA(cfg)`.
+ batch_size (int): batch the augmented images into this batch size for inference.
+ """
+ super().__init__()
+ if isinstance(model, DistributedDataParallel):
+ model = model.module
+ self.cfg = cfg.clone()
+
+ self.model = model
+
+ if tta_mapper is None:
+ tta_mapper = DatasetMapperTTA(cfg)
+ self.tta_mapper = tta_mapper
+ self.batch_size = batch_size
+
+ def __call__(self, batched_inputs):
+ """
+ Same input/output format as :meth:`SemanticSegmentor.forward`
+ """
+
+ def _maybe_read_image(dataset_dict):
+ ret = copy.copy(dataset_dict)
+ if "image" not in ret:
+ image = read_image(ret.pop("file_name"), self.model.input_format)
+ image = torch.from_numpy(np.ascontiguousarray(image.transpose(2, 0, 1))) # CHW
+ ret["image"] = image
+ if "height" not in ret and "width" not in ret:
+ ret["height"] = image.shape[1]
+ ret["width"] = image.shape[2]
+ return ret
+
+ processed_results = []
+ for x in batched_inputs:
+ result = self._inference_one_image(_maybe_read_image(x))
+ processed_results.append(result)
+ return processed_results
+
+ def _inference_one_image(self, input):
+ """
+ Args:
+ input (dict): one dataset dict with "image" field being a CHW tensor
+ Returns:
+ dict: one output dict
+ """
+ orig_shape = (input["height"], input["width"])
+ augmented_inputs, tfms = self._get_augmented_inputs(input)
+
+ final_predictions = None
+ count_predictions = 0
+ for input, tfm in zip(augmented_inputs, tfms):
+ count_predictions += 1
+ with torch.no_grad():
+ if final_predictions is None:
+ if any(isinstance(t, HFlipTransform) for t in tfm.transforms):
+ final_predictions = self.model([input])[0].pop("sem_seg").flip(dims=[2])
+ else:
+ final_predictions = self.model([input])[0].pop("sem_seg")
+ else:
+ if any(isinstance(t, HFlipTransform) for t in tfm.transforms):
+ final_predictions += self.model([input])[0].pop("sem_seg").flip(dims=[2])
+ else:
+ final_predictions += self.model([input])[0].pop("sem_seg")
+
+ final_predictions = final_predictions / count_predictions
+ return {"sem_seg": final_predictions}
+
+ def _get_augmented_inputs(self, input):
+ augmented_inputs = self.tta_mapper(input)
+ tfms = [x.pop("transforms") for x in augmented_inputs]
+ return augmented_inputs, tfms
diff --git a/videocutler/mask2former/utils/__init__.py b/videocutler/mask2former/utils/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9020c2df23e2af280b7bb168b996ae9eaf312eb8
--- /dev/null
+++ b/videocutler/mask2former/utils/__init__.py
@@ -0,0 +1 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/videocutler/mask2former/utils/misc.py b/videocutler/mask2former/utils/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..874d9805b482f52bbffc1be620e36e0cffc07c46
--- /dev/null
+++ b/videocutler/mask2former/utils/misc.py
@@ -0,0 +1,111 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/facebookresearch/detr/blob/master/util/misc.py
+"""
+Misc functions, including distributed helpers.
+
+Mostly copy-paste from torchvision references.
+"""
+from typing import List, Optional
+
+import torch
+import torch.distributed as dist
+import torchvision
+from torch import Tensor
+
+
+def _max_by_axis(the_list):
+ # type: (List[List[int]]) -> List[int]
+ maxes = the_list[0]
+ for sublist in the_list[1:]:
+ for index, item in enumerate(sublist):
+ maxes[index] = max(maxes[index], item)
+ return maxes
+
+
+class NestedTensor(object):
+ def __init__(self, tensors, mask: Optional[Tensor]):
+ self.tensors = tensors
+ self.mask = mask
+
+ def to(self, device):
+ # type: (Device) -> NestedTensor # noqa
+ cast_tensor = self.tensors.to(device)
+ mask = self.mask
+ if mask is not None:
+ assert mask is not None
+ cast_mask = mask.to(device)
+ else:
+ cast_mask = None
+ return NestedTensor(cast_tensor, cast_mask)
+
+ def decompose(self):
+ return self.tensors, self.mask
+
+ def __repr__(self):
+ return str(self.tensors)
+
+
+def nested_tensor_from_tensor_list(tensor_list: List[Tensor]):
+ # TODO make this more general
+ if tensor_list[0].ndim == 3:
+ if torchvision._is_tracing():
+ # nested_tensor_from_tensor_list() does not export well to ONNX
+ # call _onnx_nested_tensor_from_tensor_list() instead
+ return _onnx_nested_tensor_from_tensor_list(tensor_list)
+
+ # TODO make it support different-sized images
+ max_size = _max_by_axis([list(img.shape) for img in tensor_list])
+ # min_size = tuple(min(s) for s in zip(*[img.shape for img in tensor_list]))
+ batch_shape = [len(tensor_list)] + max_size
+ b, c, h, w = batch_shape
+ dtype = tensor_list[0].dtype
+ device = tensor_list[0].device
+ tensor = torch.zeros(batch_shape, dtype=dtype, device=device)
+ mask = torch.ones((b, h, w), dtype=torch.bool, device=device)
+ for img, pad_img, m in zip(tensor_list, tensor, mask):
+ pad_img[: img.shape[0], : img.shape[1], : img.shape[2]].copy_(img)
+ m[: img.shape[1], : img.shape[2]] = False
+ else:
+ raise ValueError("not supported")
+ return NestedTensor(tensor, mask)
+
+
+# _onnx_nested_tensor_from_tensor_list() is an implementation of
+# nested_tensor_from_tensor_list() that is supported by ONNX tracing.
+@torch.jit.unused
+def _onnx_nested_tensor_from_tensor_list(tensor_list: List[Tensor]) -> NestedTensor:
+ max_size = []
+ for i in range(tensor_list[0].dim()):
+ max_size_i = torch.max(
+ torch.stack([img.shape[i] for img in tensor_list]).to(torch.float32)
+ ).to(torch.int64)
+ max_size.append(max_size_i)
+ max_size = tuple(max_size)
+
+ # work around for
+ # pad_img[: img.shape[0], : img.shape[1], : img.shape[2]].copy_(img)
+ # m[: img.shape[1], :img.shape[2]] = False
+ # which is not yet supported in onnx
+ padded_imgs = []
+ padded_masks = []
+ for img in tensor_list:
+ padding = [(s1 - s2) for s1, s2 in zip(max_size, tuple(img.shape))]
+ padded_img = torch.nn.functional.pad(img, (0, padding[2], 0, padding[1], 0, padding[0]))
+ padded_imgs.append(padded_img)
+
+ m = torch.zeros_like(img[0], dtype=torch.int, device=img.device)
+ padded_mask = torch.nn.functional.pad(m, (0, padding[2], 0, padding[1]), "constant", 1)
+ padded_masks.append(padded_mask.to(torch.bool))
+
+ tensor = torch.stack(padded_imgs)
+ mask = torch.stack(padded_masks)
+
+ return NestedTensor(tensor, mask=mask)
+
+
+def is_dist_avail_and_initialized():
+ if not dist.is_available():
+ return False
+ if not dist.is_initialized():
+ return False
+ return True
diff --git a/videocutler/mask2former_video/__init__.py b/videocutler/mask2former_video/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1fbb263363489699fdfb9d7bcd36cbf7627c66f4
--- /dev/null
+++ b/videocutler/mask2former_video/__init__.py
@@ -0,0 +1,20 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+from . import modeling
+
+# config
+from .config import add_maskformer2_video_config
+
+# models
+from .video_maskformer_model import VideoMaskFormer
+
+# video
+from .data_video import (
+ YTVISDatasetMapper,
+ YTVISEvaluator,
+ build_detection_train_loader,
+ build_detection_test_loader,
+ get_detection_dataset_dicts,
+)
+
+# copy-paste
+from .engine import *
\ No newline at end of file
diff --git a/videocutler/mask2former_video/config.py b/videocutler/mask2former_video/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..745929b918d7bf5a2e9e51ff6e4b8fc609a3151f
--- /dev/null
+++ b/videocutler/mask2former_video/config.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/Mask2Former/tree/main/mask2former_video
+
+from detectron2.config import CfgNode as CN
+
+
+def add_maskformer2_video_config(cfg):
+ # video data
+ # DataLoader
+ cfg.INPUT.SAMPLING_FRAME_NUM = 2
+ cfg.INPUT.SAMPLING_FRAME_RANGE = 20
+ cfg.INPUT.SAMPLING_FRAME_SHUFFLE = False
+ cfg.INPUT.AUGMENTATIONS = [] # "brightness", "contrast", "saturation", "rotation"
+
+ cfg.DATALOADER.COPY_PASTE = False
+ cfg.DATALOADER.COPY_PASTE_RATE = 0.0
+ cfg.DATALOADER.COPY_PASTE_MIN_RATIO = 0.5
+ cfg.DATALOADER.COPY_PASTE_MAX_RATIO = 1.0
+ cfg.DATALOADER.COPY_PASTE_RANDOM_NUM = True # random select number of instances
+ cfg.DATALOADER.VISUALIZE_COPY_PASTE = False
+
+ cfg.SOLVER.BASE_LR_MULTIPLIER = 1
+ cfg.SOLVER.BASE_LR_MULTIPLIER_NAMES = []
diff --git a/videocutler/mask2former_video/data_video/__init__.py b/videocutler/mask2former_video/data_video/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..3085ed74c61784b0601e535cf7bee00358faefc1
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/__init__.py
@@ -0,0 +1,8 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/sukjunhwang/IFC
+
+from .dataset_mapper import YTVISDatasetMapper, CocoClipDatasetMapper
+from .build import *
+
+from .datasets import *
+from .ytvis_eval import YTVISEvaluator
diff --git a/videocutler/mask2former_video/data_video/augmentation.py b/videocutler/mask2former_video/data_video/augmentation.py
new file mode 100755
index 0000000000000000000000000000000000000000..5739721fdf97a8faf418e42bc4238cc7eb36047b
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/augmentation.py
@@ -0,0 +1,167 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/sukjunhwang/IFC
+
+import numpy as np
+import logging
+import sys
+from fvcore.transforms.transform import (
+ HFlipTransform,
+ NoOpTransform,
+ VFlipTransform,
+)
+from PIL import Image
+
+from detectron2.data import transforms as T
+
+
+class ResizeShortestEdge(T.Augmentation):
+ """
+ Scale the shorter edge to the given size, with a limit of `max_size` on the longer edge.
+ If `max_size` is reached, then downscale so that the longer edge does not exceed max_size.
+ """
+
+ def __init__(
+ self, short_edge_length, max_size=sys.maxsize, sample_style="range", interp=Image.BILINEAR, clip_frame_cnt=1
+ ):
+ """
+ Args:
+ short_edge_length (list[int]): If ``sample_style=="range"``,
+ a [min, max] interval from which to sample the shortest edge length.
+ If ``sample_style=="choice"``, a list of shortest edge lengths to sample from.
+ max_size (int): maximum allowed longest edge length.
+ sample_style (str): either "range" or "choice".
+ """
+ super().__init__()
+ assert sample_style in ["range", "choice", "range_by_clip", "choice_by_clip"], sample_style
+
+ self.is_range = ("range" in sample_style)
+ if isinstance(short_edge_length, int):
+ short_edge_length = (short_edge_length, short_edge_length)
+ if self.is_range:
+ assert len(short_edge_length) == 2, (
+ "short_edge_length must be two values using 'range' sample style."
+ f" Got {short_edge_length}!"
+ )
+ self._cnt = 0
+ self._init(locals())
+
+ def get_transform(self, image):
+ if self._cnt % self.clip_frame_cnt == 0:
+ if self.is_range:
+ self.size = np.random.randint(self.short_edge_length[0], self.short_edge_length[1] + 1)
+ else:
+ self.size = np.random.choice(self.short_edge_length)
+ if self.size == 0:
+ return NoOpTransform()
+
+ self._cnt = 0 # avoiding overflow
+ self._cnt += 1
+
+ h, w = image.shape[:2]
+
+ scale = self.size * 1.0 / min(h, w)
+ if h < w:
+ newh, neww = self.size, scale * w
+ else:
+ newh, neww = scale * h, self.size
+ if max(newh, neww) > self.max_size:
+ scale = self.max_size * 1.0 / max(newh, neww)
+ newh = newh * scale
+ neww = neww * scale
+ neww = int(neww + 0.5)
+ newh = int(newh + 0.5)
+ return T.ResizeTransform(h, w, newh, neww, self.interp)
+
+
+class RandomFlip(T.Augmentation):
+ """
+ Flip the image horizontally or vertically with the given probability.
+ """
+
+ def __init__(self, prob=0.5, *, horizontal=True, vertical=False, clip_frame_cnt=1):
+ """
+ Args:
+ prob (float): probability of flip.
+ horizontal (boolean): whether to apply horizontal flipping
+ vertical (boolean): whether to apply vertical flipping
+ """
+ super().__init__()
+
+ if horizontal and vertical:
+ raise ValueError("Cannot do both horiz and vert. Please use two Flip instead.")
+ if not horizontal and not vertical:
+ raise ValueError("At least one of horiz or vert has to be True!")
+ self._cnt = 0
+
+ self._init(locals())
+
+ def get_transform(self, image):
+ if self._cnt % self.clip_frame_cnt == 0:
+ self.do = self._rand_range() < self.prob
+ self._cnt = 0 # avoiding overflow
+ self._cnt += 1
+
+ h, w = image.shape[:2]
+
+ if self.do:
+ if self.horizontal:
+ return HFlipTransform(w)
+ elif self.vertical:
+ return VFlipTransform(h)
+ else:
+ return NoOpTransform()
+
+
+def build_augmentation(cfg, is_train):
+ logger = logging.getLogger(__name__)
+ aug_list = []
+ if is_train:
+ # Crop
+ if cfg.INPUT.CROP.ENABLED:
+ aug_list.append(T.RandomCrop(cfg.INPUT.CROP.TYPE, cfg.INPUT.CROP.SIZE))
+
+ # Resize
+ min_size = cfg.INPUT.MIN_SIZE_TRAIN
+ max_size = cfg.INPUT.MAX_SIZE_TRAIN
+ sample_style = cfg.INPUT.MIN_SIZE_TRAIN_SAMPLING
+ ms_clip_frame_cnt = cfg.INPUT.SAMPLING_FRAME_NUM if "by_clip" in cfg.INPUT.MIN_SIZE_TRAIN_SAMPLING else 1
+ aug_list.append(ResizeShortestEdge(min_size, max_size, sample_style, clip_frame_cnt=ms_clip_frame_cnt))
+
+ # Flip
+ if cfg.INPUT.RANDOM_FLIP != "none":
+ if cfg.INPUT.RANDOM_FLIP == "flip_by_clip":
+ flip_clip_frame_cnt = cfg.INPUT.SAMPLING_FRAME_NUM
+ else:
+ flip_clip_frame_cnt = 1
+
+ aug_list.append(
+ # NOTE using RandomFlip modified for the support of flip maintenance
+ RandomFlip(
+ horizontal=(cfg.INPUT.RANDOM_FLIP == "horizontal") or (cfg.INPUT.RANDOM_FLIP == "flip_by_clip"),
+ vertical=cfg.INPUT.RANDOM_FLIP == "vertical",
+ clip_frame_cnt=flip_clip_frame_cnt,
+ )
+ )
+
+ # Additional augmentations : brightness, contrast, saturation, rotation
+ augmentations = cfg.INPUT.AUGMENTATIONS
+ if "brightness" in augmentations:
+ aug_list.append(T.RandomBrightness(0.9, 1.1))
+ if "contrast" in augmentations:
+ aug_list.append(T.RandomContrast(0.9, 1.1))
+ if "saturation" in augmentations:
+ aug_list.append(T.RandomSaturation(0.9, 1.1))
+ if "rotation" in augmentations:
+ aug_list.append(
+ T.RandomRotation(
+ [-15, 15], expand=False, center=[(0.4, 0.4), (0.6, 0.6)], sample_style="range"
+ )
+ )
+ else:
+ # Resize
+ min_size = cfg.INPUT.MIN_SIZE_TEST
+ max_size = cfg.INPUT.MAX_SIZE_TEST
+ sample_style = "choice"
+ aug_list.append(T.ResizeShortestEdge(min_size, max_size, sample_style))
+
+ return aug_list
diff --git a/videocutler/mask2former_video/data_video/build.py b/videocutler/mask2former_video/data_video/build.py
new file mode 100755
index 0000000000000000000000000000000000000000..a4f37e48fcc228a756e0108291fa09b1b2e2c6f1
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/build.py
@@ -0,0 +1,250 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/sukjunhwang/IFC
+
+import itertools
+import logging
+import torch.utils.data
+
+from detectron2.config import CfgNode, configurable
+from detectron2.data.build import (
+ build_batch_data_loader,
+ load_proposals_into_dataset,
+ trivial_batch_collator,
+)
+from detectron2.data.catalog import DatasetCatalog
+from detectron2.data.common import DatasetFromList, MapDataset
+from detectron2.data.dataset_mapper import DatasetMapper
+from detectron2.data.samplers import InferenceSampler, TrainingSampler
+from detectron2.utils.comm import get_world_size
+
+
+def _compute_num_images_per_worker(cfg: CfgNode):
+ num_workers = get_world_size()
+ images_per_batch = cfg.SOLVER.IMS_PER_BATCH
+ assert (
+ images_per_batch % num_workers == 0
+ ), "SOLVER.IMS_PER_BATCH ({}) must be divisible by the number of workers ({}).".format(
+ images_per_batch, num_workers
+ )
+ assert (
+ images_per_batch >= num_workers
+ ), "SOLVER.IMS_PER_BATCH ({}) must be larger than the number of workers ({}).".format(
+ images_per_batch, num_workers
+ )
+ images_per_worker = images_per_batch // num_workers
+ return images_per_worker
+
+
+def filter_images_with_only_crowd_annotations(dataset_dicts, dataset_names):
+ """
+ Filter out images with none annotations or only crowd annotations
+ (i.e., images without non-crowd annotations).
+ A common training-time preprocessing on COCO dataset.
+
+ Args:
+ dataset_dicts (list[dict]): annotations in Detectron2 Dataset format.
+
+ Returns:
+ list[dict]: the same format, but filtered.
+ """
+ num_before = len(dataset_dicts)
+
+ def valid(anns):
+ for ann in anns:
+ if isinstance(ann, list):
+ for instance in ann:
+ if instance.get("iscrowd", 0) == 0:
+ return True
+ else:
+ if ann.get("iscrowd", 0) == 0:
+ return True
+ return False
+
+ dataset_dicts = [x for x in dataset_dicts if valid(x["annotations"])]
+ num_after = len(dataset_dicts)
+ logger = logging.getLogger(__name__)
+ logger.info(
+ "Removed {} images with no usable annotations. {} images left.".format(
+ num_before - num_after, num_after
+ )
+ )
+ return dataset_dicts
+
+
+def get_detection_dataset_dicts(
+ dataset_names, filter_empty=True, proposal_files=None
+):
+ """
+ Load and prepare dataset dicts for instance detection/segmentation and semantic segmentation.
+
+ Args:
+ dataset_names (str or list[str]): a dataset name or a list of dataset names
+ filter_empty (bool): whether to filter out images without instance annotations
+ proposal_files (list[str]): if given, a list of object proposal files
+ that match each dataset in `dataset_names`.
+
+ Returns:
+ list[dict]: a list of dicts following the standard dataset dict format.
+ """
+ if isinstance(dataset_names, str):
+ dataset_names = [dataset_names]
+ assert len(dataset_names)
+ dataset_dicts = [DatasetCatalog.get(dataset_name) for dataset_name in dataset_names]
+ for dataset_name, dicts in zip(dataset_names, dataset_dicts):
+ assert len(dicts), "Dataset '{}' is empty!".format(dataset_name)
+
+ if proposal_files is not None:
+ assert len(dataset_names) == len(proposal_files)
+ # load precomputed proposals from proposal files
+ dataset_dicts = [
+ load_proposals_into_dataset(dataset_i_dicts, proposal_file)
+ for dataset_i_dicts, proposal_file in zip(dataset_dicts, proposal_files)
+ ]
+
+ dataset_dicts = list(itertools.chain.from_iterable(dataset_dicts))
+
+ has_instances = "annotations" in dataset_dicts[0]
+ if filter_empty and has_instances:
+ dataset_dicts = filter_images_with_only_crowd_annotations(dataset_dicts, dataset_names)
+
+ assert len(dataset_dicts), "No valid data found in {}.".format(",".join(dataset_names))
+ return dataset_dicts
+
+
+def _train_loader_from_config(cfg, mapper, *, dataset=None, sampler=None):
+ if dataset is None:
+ dataset = get_detection_dataset_dicts(
+ cfg.DATASETS.TRAIN,
+ filter_empty=cfg.DATALOADER.FILTER_EMPTY_ANNOTATIONS,
+ proposal_files=cfg.DATASETS.PROPOSAL_FILES_TRAIN if cfg.MODEL.LOAD_PROPOSALS else None,
+ )
+
+ if mapper is None:
+ mapper = DatasetMapper(cfg, True)
+
+ if sampler is None:
+ sampler_name = cfg.DATALOADER.SAMPLER_TRAIN
+ logger = logging.getLogger(__name__)
+ logger.info("Using training sampler {}".format(sampler_name))
+ sampler = TrainingSampler(len(dataset))
+
+ return {
+ "dataset": dataset,
+ "sampler": sampler,
+ "mapper": mapper,
+ "total_batch_size": cfg.SOLVER.IMS_PER_BATCH,
+ "aspect_ratio_grouping": cfg.DATALOADER.ASPECT_RATIO_GROUPING,
+ "num_workers": cfg.DATALOADER.NUM_WORKERS,
+ }
+
+
+# TODO can allow dataset as an iterable or IterableDataset to make this function more general
+@configurable(from_config=_train_loader_from_config)
+def build_detection_train_loader(
+ dataset, *, mapper, sampler=None, total_batch_size, aspect_ratio_grouping=True, num_workers=0
+):
+ """
+ Build a dataloader for object detection with some default features.
+ This interface is experimental.
+
+ Args:
+ dataset (list or torch.utils.data.Dataset): a list of dataset dicts,
+ or a map-style pytorch dataset. They can be obtained by using
+ :func:`DatasetCatalog.get` or :func:`get_detection_dataset_dicts`.
+ mapper (callable): a callable which takes a sample (dict) from dataset and
+ returns the format to be consumed by the model.
+ When using cfg, the default choice is ``DatasetMapper(cfg, is_train=True)``.
+ sampler (torch.utils.data.sampler.Sampler or None): a sampler that
+ produces indices to be applied on ``dataset``.
+ Default to :class:`TrainingSampler`, which coordinates a random shuffle
+ sequence across all workers.
+ total_batch_size (int): total batch size across all workers. Batching
+ simply puts data into a list.
+ aspect_ratio_grouping (bool): whether to group images with similar
+ aspect ratio for efficiency. When enabled, it requires each
+ element in dataset be a dict with keys "width" and "height".
+ num_workers (int): number of parallel data loading workers
+
+ Returns:
+ torch.utils.data.DataLoader: a dataloader. Each output from it is a
+ ``list[mapped_element]`` of length ``total_batch_size / num_workers``,
+ where ``mapped_element`` is produced by the ``mapper``.
+ """
+ if isinstance(dataset, list):
+ dataset = DatasetFromList(dataset, copy=False)
+ if mapper is not None:
+ dataset = MapDataset(dataset, mapper)
+ if sampler is None:
+ sampler = TrainingSampler(len(dataset))
+ assert isinstance(sampler, torch.utils.data.sampler.Sampler)
+ return build_batch_data_loader(
+ dataset,
+ sampler,
+ total_batch_size,
+ aspect_ratio_grouping=aspect_ratio_grouping,
+ num_workers=num_workers,
+ )
+
+
+def _test_loader_from_config(cfg, dataset_name, mapper=None):
+ """
+ Uses the given `dataset_name` argument (instead of the names in cfg), because the
+ standard practice is to evaluate each test set individually (not combining them).
+ """
+ dataset = get_detection_dataset_dicts(
+ [dataset_name],
+ filter_empty=False,
+ proposal_files=[
+ cfg.DATASETS.PROPOSAL_FILES_TEST[list(cfg.DATASETS.TEST).index(dataset_name)]
+ ]
+ if cfg.MODEL.LOAD_PROPOSALS
+ else None,
+ )
+ if mapper is None:
+ mapper = DatasetMapper(cfg, False)
+ return {"dataset": dataset, "mapper": mapper, "num_workers": cfg.DATALOADER.NUM_WORKERS}
+
+
+@configurable(from_config=_test_loader_from_config)
+def build_detection_test_loader(dataset, *, mapper, num_workers=0):
+ """
+ Similar to `build_detection_train_loader`, but uses a batch size of 1.
+ This interface is experimental.
+
+ Args:
+ dataset (list or torch.utils.data.Dataset): a list of dataset dicts,
+ or a map-style pytorch dataset. They can be obtained by using
+ :func:`DatasetCatalog.get` or :func:`get_detection_dataset_dicts`.
+ mapper (callable): a callable which takes a sample (dict) from dataset
+ and returns the format to be consumed by the model.
+ When using cfg, the default choice is ``DatasetMapper(cfg, is_train=False)``.
+ num_workers (int): number of parallel data loading workers
+
+ Returns:
+ DataLoader: a torch DataLoader, that loads the given detection
+ dataset, with test-time transformation and batching.
+
+ Examples:
+ ::
+ data_loader = build_detection_test_loader(
+ DatasetRegistry.get("my_test"),
+ mapper=DatasetMapper(...))
+
+ # or, instantiate with a CfgNode:
+ data_loader = build_detection_test_loader(cfg, "my_test")
+ """
+ if isinstance(dataset, list):
+ dataset = DatasetFromList(dataset, copy=False)
+ if mapper is not None:
+ dataset = MapDataset(dataset, mapper)
+ sampler = InferenceSampler(len(dataset))
+ # Always use 1 image per worker during inference since this is the
+ # standard when reporting inference time in papers.
+ batch_sampler = torch.utils.data.sampler.BatchSampler(sampler, 1, drop_last=False)
+ data_loader = torch.utils.data.DataLoader(
+ dataset,
+ num_workers=num_workers,
+ batch_sampler=batch_sampler,
+ collate_fn=trivial_batch_collator,
+ )
+ return data_loader
diff --git a/videocutler/mask2former_video/data_video/dataset_mapper.py b/videocutler/mask2former_video/data_video/dataset_mapper.py
new file mode 100755
index 0000000000000000000000000000000000000000..d3f9513d3af000b7dbb321cd5f721122d701cedf
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/dataset_mapper.py
@@ -0,0 +1,415 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/sukjunhwang/IFC
+
+import copy
+import logging
+import random
+import numpy as np
+from typing import List, Union
+import torch
+
+from detectron2.config import configurable
+from detectron2.structures import (
+ BitMasks,
+ Boxes,
+ BoxMode,
+ Instances,
+)
+
+from detectron2.data import detection_utils as utils
+from detectron2.data import transforms as T
+
+from .augmentation import build_augmentation
+
+__all__ = ["YTVISDatasetMapper", "CocoClipDatasetMapper"]
+
+
+def filter_empty_instances(instances, by_box=True, by_mask=True, box_threshold=1e-5):
+ """
+ Filter out empty instances in an `Instances` object.
+
+ Args:
+ instances (Instances):
+ by_box (bool): whether to filter out instances with empty boxes
+ by_mask (bool): whether to filter out instances with empty masks
+ box_threshold (float): minimum width and height to be considered non-empty
+
+ Returns:
+ Instances: the filtered instances.
+ """
+ assert by_box or by_mask
+ r = []
+ if by_box:
+ r.append(instances.gt_boxes.nonempty(threshold=box_threshold))
+ if instances.has("gt_masks") and by_mask:
+ r.append(instances.gt_masks.nonempty())
+
+ if not r:
+ return instances
+ m = r[0]
+ for x in r[1:]:
+ m = m & x
+
+ instances.gt_ids[~m] = -1
+ return instances
+
+
+def _get_dummy_anno(num_classes):
+ return {
+ "iscrowd": 0,
+ "category_id": num_classes,
+ "id": -1,
+ "bbox": np.array([0, 0, 0, 0]),
+ "bbox_mode": BoxMode.XYXY_ABS,
+ "segmentation": [np.array([0.0] * 6)]
+ }
+
+
+def ytvis_annotations_to_instances(annos, image_size):
+ """
+ Create an :class:`Instances` object used by the models,
+ from instance annotations in the dataset dict.
+
+ Args:
+ annos (list[dict]): a list of instance annotations in one image, each
+ element for one instance.
+ image_size (tuple): height, width
+
+ Returns:
+ Instances:
+ It will contain fields "gt_boxes", "gt_classes", "gt_ids",
+ "gt_masks", if they can be obtained from `annos`.
+ This is the format that builtin models expect.
+ """
+ boxes = [BoxMode.convert(obj["bbox"], obj["bbox_mode"], BoxMode.XYXY_ABS) for obj in annos]
+ target = Instances(image_size)
+ target.gt_boxes = Boxes(boxes)
+
+ classes = [int(obj["category_id"]) for obj in annos]
+ classes = torch.tensor(classes, dtype=torch.int64)
+ target.gt_classes = classes
+
+ ids = [int(obj["id"]) for obj in annos]
+ ids = torch.tensor(ids, dtype=torch.int64)
+ target.gt_ids = ids
+
+ if len(annos) and "segmentation" in annos[0]:
+ segms = [obj["segmentation"] for obj in annos]
+ masks = []
+ for segm in segms:
+ assert segm.ndim == 2, "Expect segmentation of 2 dimensions, got {}.".format(
+ segm.ndim
+ )
+ # mask array
+ masks.append(segm)
+ # torch.from_numpy does not support array with negative stride.
+ masks = BitMasks(
+ torch.stack([torch.from_numpy(np.ascontiguousarray(x)) for x in masks])
+ )
+ target.gt_masks = masks
+
+ return target
+
+class SizeMismatchError(ValueError):
+ """
+ When loaded image has difference width/height compared with annotation.
+ """
+
+def check_image_size(dataset_dict, image):
+ """
+ Raise an error if the image does not match the size specified in the dict.
+ """
+ if "width" in dataset_dict or "height" in dataset_dict:
+ image_wh = (image.shape[1], image.shape[0])
+ expected_wh = (dataset_dict["width"], dataset_dict["height"])
+ if not image_wh == expected_wh:
+ expected_wh = (dataset_dict["height"], dataset_dict["width"])
+ dataset_dict["height"], dataset_dict["width"] = dataset_dict["width"], dataset_dict["height"]
+ if image_wh != expected_wh:
+ raise SizeMismatchError(
+ "Mismatched image shape{}, got {}, expect {}.".format(
+ " for image " + dataset_dict["file_name"]
+ if "file_name" in dataset_dict
+ else "",
+ image_wh,
+ expected_wh,
+ )
+ + " Please check the width/height in your annotation."
+ )
+
+ # To ensure bbox always remap to original image size
+ if "width" not in dataset_dict:
+ dataset_dict["width"] = image.shape[1]
+ if "height" not in dataset_dict:
+ dataset_dict["height"] = image.shape[0]
+
+class YTVISDatasetMapper:
+ """
+ A callable which takes a dataset dict in YouTube-VIS Dataset format,
+ and map it into a format used by the model.
+ """
+
+ @configurable
+ def __init__(
+ self,
+ is_train: bool,
+ *,
+ augmentations: List[Union[T.Augmentation, T.Transform]],
+ image_format: str,
+ use_instance_mask: bool = False,
+ sampling_frame_num: int = 2,
+ sampling_frame_range: int = 5,
+ sampling_frame_shuffle: bool = False,
+ num_classes: int = 40,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ is_train: whether it's used in training or inference
+ augmentations: a list of augmentations or deterministic transforms to apply
+ image_format: an image format supported by :func:`detection_utils.read_image`.
+ use_instance_mask: whether to process instance segmentation annotations, if available
+ """
+ # fmt: off
+ self.is_train = is_train
+ self.augmentations = T.AugmentationList(augmentations)
+ self.image_format = image_format
+ self.use_instance_mask = use_instance_mask
+ self.sampling_frame_num = sampling_frame_num
+ self.sampling_frame_range = sampling_frame_range
+ self.sampling_frame_shuffle = sampling_frame_shuffle
+ self.num_classes = num_classes
+ # fmt: on
+ logger = logging.getLogger(__name__)
+ mode = "training" if is_train else "inference"
+ logger.info(f"[DatasetMapper] Augmentations used in {mode}: {augmentations}")
+
+ @classmethod
+ def from_config(cls, cfg, is_train: bool = True):
+ augs = build_augmentation(cfg, is_train)
+
+ sampling_frame_num = cfg.INPUT.SAMPLING_FRAME_NUM
+ sampling_frame_range = cfg.INPUT.SAMPLING_FRAME_RANGE
+ sampling_frame_shuffle = cfg.INPUT.SAMPLING_FRAME_SHUFFLE
+
+ ret = {
+ "is_train": is_train,
+ "augmentations": augs,
+ "image_format": cfg.INPUT.FORMAT,
+ "use_instance_mask": cfg.MODEL.MASK_ON,
+ "sampling_frame_num": sampling_frame_num,
+ "sampling_frame_range": sampling_frame_range,
+ "sampling_frame_shuffle": sampling_frame_shuffle,
+ "num_classes": cfg.MODEL.SEM_SEG_HEAD.NUM_CLASSES,
+ }
+
+ return ret
+
+ def __call__(self, dataset_dict):
+ """
+ Args:
+ dataset_dict (dict): Metadata of one video, in YTVIS Dataset format.
+
+ Returns:
+ dict: a format that builtin models in detectron2 accept
+ """
+ # TODO consider examining below deepcopy as it costs huge amount of computations.
+ dataset_dict = copy.deepcopy(dataset_dict) # it will be modified by code below
+
+ video_length = dataset_dict["length"]
+ if self.is_train:
+ ref_frame = random.randrange(video_length)
+
+ start_idx = max(0, ref_frame-self.sampling_frame_range)
+ end_idx = min(video_length, ref_frame+self.sampling_frame_range + 1)
+
+ selected_idx = np.random.choice(
+ np.array(list(range(start_idx, ref_frame)) + list(range(ref_frame+1, end_idx))),
+ self.sampling_frame_num - 1,
+ )
+ selected_idx = selected_idx.tolist() + [ref_frame]
+ selected_idx = sorted(selected_idx)
+ if self.sampling_frame_shuffle:
+ random.shuffle(selected_idx)
+ else:
+ selected_idx = range(video_length)
+
+ video_annos = dataset_dict.pop("annotations", None)
+ file_names = dataset_dict.pop("file_names", None)
+
+ if self.is_train:
+ _ids = set()
+ for frame_idx in selected_idx:
+ _ids.update([anno["id"] for anno in video_annos[frame_idx]])
+ ids = dict()
+ for i, _id in enumerate(_ids):
+ ids[_id] = i
+
+ dataset_dict["image"] = []
+ dataset_dict["instances"] = []
+ dataset_dict["file_names"] = []
+ for frame_idx in selected_idx:
+ dataset_dict["file_names"].append(file_names[frame_idx])
+
+ # Read image
+ image = utils.read_image(file_names[frame_idx], format=self.image_format)
+ check_image_size(dataset_dict, image)
+
+ aug_input = T.AugInput(image)
+ transforms = self.augmentations(aug_input)
+ image = aug_input.image
+
+ image_shape = image.shape[:2] # h, w
+ # Pytorch's dataloader is efficient on torch.Tensor due to shared-memory,
+ # but not efficient on large generic data structures due to the use of pickle & mp.Queue.
+ # Therefore it's important to use torch.Tensor.
+ dataset_dict["image"].append(torch.as_tensor(np.ascontiguousarray(image.transpose(2, 0, 1))))
+
+ if (video_annos is None) or (not self.is_train):
+ continue
+
+ # NOTE copy() is to prevent annotations getting changed from applying augmentations
+ _frame_annos = []
+ for anno in video_annos[frame_idx]:
+ _anno = {}
+ for k, v in anno.items():
+ _anno[k] = copy.deepcopy(v)
+ _frame_annos.append(_anno)
+
+ # USER: Implement additional transformations if you have other types of data
+ annos = [
+ utils.transform_instance_annotations(obj, transforms, image_shape)
+ for obj in _frame_annos
+ if obj.get("iscrowd", 0) == 0
+ ]
+ sorted_annos = [_get_dummy_anno(self.num_classes) for _ in range(len(ids))]
+
+ for _anno in annos:
+ idx = ids[_anno["id"]]
+ sorted_annos[idx] = _anno
+ _gt_ids = [_anno["id"] for _anno in sorted_annos]
+
+ instances = utils.annotations_to_instances(sorted_annos, image_shape, mask_format="bitmask")
+ instances.gt_ids = torch.tensor(_gt_ids)
+ if instances.has("gt_masks"):
+ instances.gt_boxes = instances.gt_masks.get_bounding_boxes()
+ instances = filter_empty_instances(instances)
+ else:
+ instances.gt_masks = BitMasks(torch.empty((0, *image_shape)))
+ dataset_dict["instances"].append(instances)
+
+ return dataset_dict
+
+
+class CocoClipDatasetMapper:
+ """
+ A callable which takes a COCO image which converts into multiple frames,
+ and map it into a format used by the model.
+ """
+
+ @configurable
+ def __init__(
+ self,
+ is_train: bool,
+ *,
+ augmentations: List[Union[T.Augmentation, T.Transform]],
+ image_format: str,
+ use_instance_mask: bool = False,
+ sampling_frame_num: int = 2,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ is_train: whether it's used in training or inference
+ augmentations: a list of augmentations or deterministic transforms to apply
+ image_format: an image format supported by :func:`detection_utils.read_image`.
+ use_instance_mask: whether to process instance segmentation annotations, if available
+ """
+ # fmt: off
+ self.is_train = is_train
+ self.augmentations = T.AugmentationList(augmentations)
+ self.image_format = image_format
+ self.use_instance_mask = use_instance_mask
+ self.sampling_frame_num = sampling_frame_num
+ # fmt: on
+ logger = logging.getLogger(__name__)
+ mode = "training" if is_train else "inference"
+ logger.info(f"[DatasetMapper] Augmentations used in {mode}: {augmentations}")
+
+ @classmethod
+ def from_config(cls, cfg, is_train: bool = True):
+ augs = build_augmentation(cfg, is_train)
+
+ sampling_frame_num = cfg.INPUT.SAMPLING_FRAME_NUM
+
+ ret = {
+ "is_train": is_train,
+ "augmentations": augs,
+ "image_format": cfg.INPUT.FORMAT,
+ "use_instance_mask": cfg.MODEL.MASK_ON,
+ "sampling_frame_num": sampling_frame_num,
+ }
+
+ return ret
+
+ def __call__(self, dataset_dict):
+ """
+ Args:
+ dataset_dict (dict): Metadata of one image, in Detectron2 Dataset format.
+
+ Returns:
+ dict: a format that builtin models in detectron2 accept
+ """
+ dataset_dict = copy.deepcopy(dataset_dict) # it will be modified by code below
+
+ img_annos = dataset_dict.pop("annotations", None)
+ file_name = dataset_dict.pop("file_name", None)
+ original_image = utils.read_image(file_name, format=self.image_format)
+
+ dataset_dict["image"] = []
+ dataset_dict["instances"] = []
+ dataset_dict["file_names"] = [file_name] * self.sampling_frame_num
+ for _ in range(self.sampling_frame_num):
+ utils.check_image_size(dataset_dict, original_image)
+
+ aug_input = T.AugInput(original_image)
+ transforms = self.augmentations(aug_input)
+ image = aug_input.image
+
+ image_shape = image.shape[:2] # h, w
+ # Pytorch's dataloader is efficient on torch.Tensor due to shared-memory,
+ # but not efficient on large generic data structures due to the use of pickle & mp.Queue.
+ # Therefore it's important to use torch.Tensor.
+ dataset_dict["image"].append(torch.as_tensor(np.ascontiguousarray(image.transpose(2, 0, 1))))
+
+ if (img_annos is None) or (not self.is_train):
+ continue
+
+ _img_annos = []
+ for anno in img_annos:
+ _anno = {}
+ for k, v in anno.items():
+ _anno[k] = copy.deepcopy(v)
+ _img_annos.append(_anno)
+
+ # USER: Implement additional transformations if you have other types of data
+ annos = [
+ utils.transform_instance_annotations(obj, transforms, image_shape)
+ for obj in _img_annos
+ if obj.get("iscrowd", 0) == 0
+ ]
+ _gt_ids = list(range(len(annos)))
+ for idx in range(len(annos)):
+ if len(annos[idx]["segmentation"]) == 0:
+ annos[idx]["segmentation"] = [np.array([0.0] * 6)]
+
+ instances = utils.annotations_to_instances(annos, image_shape, mask_format="bitmask")
+ instances.gt_ids = torch.tensor(_gt_ids)
+ if instances.has("gt_masks"):
+ instances.gt_boxes = instances.gt_masks.get_bounding_boxes()
+ instances = filter_empty_instances(instances)
+ else:
+ instances.gt_masks = BitMasks(torch.empty((0, *image_shape)))
+ dataset_dict["instances"].append(instances)
+
+ return dataset_dict
diff --git a/videocutler/mask2former_video/data_video/datasets/__init__.py b/videocutler/mask2former_video/data_video/datasets/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e18d90b9f7762b2cf362b177faa1e53b580cbeca
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/datasets/__init__.py
@@ -0,0 +1,6 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/Mask2Former/tree/main/mask2former_video
+
+from . import builtin # ensure the builtin datasets are registered
+
+__all__ = [k for k in globals().keys() if "builtin" not in k and not k.startswith("_")]
diff --git a/videocutler/mask2former_video/data_video/datasets/builtin.py b/videocutler/mask2former_video/data_video/datasets/builtin.py
new file mode 100755
index 0000000000000000000000000000000000000000..15cee7dc3639e3532831c0538248aae0f7050213
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/datasets/builtin.py
@@ -0,0 +1,89 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/Mask2Former/tree/main/mask2former_video
+
+import os
+
+from .ytvis import (
+ register_ytvis_instances,
+ _get_ytvis_2019_instances_meta,
+ _get_ytvis_2021_instances_meta,
+ _get_imagenet_cls_agnostic_instances_meta,
+)
+
+# ==== Predefined splits for YTVIS 2019 ===========
+_PREDEFINED_SPLITS_YTVIS_2019 = {
+ "ytvis_2019_train": ("ytvis_2019/train/JPEGImages",
+ "ytvis_2019/train.json"),
+ "ytvis_2019_val": ("ytvis_2019/valid/JPEGImages",
+ "ytvis_2019/valid.json"),
+ "ytvis_2019_test": ("ytvis_2019/test/JPEGImages",
+ "ytvis_2019/test.json"),
+ "ytvis_2019_train_5perc": ("ytvis_2019/train/JPEGImages",
+ "ytvis_2019/train_5percent.json"),
+ "ytvis_2019_train_10perc": ("ytvis_2019/train/JPEGImages",
+ "ytvis_2019/train_10percent.json"),
+ "ytvis_2019_train_20perc": ("ytvis_2019/train/JPEGImages",
+ "ytvis_2019/train_20percent.json"),
+ "ytvis_2019_train_30perc": ("ytvis_2019/train/JPEGImages",
+ "ytvis_2019/train_30percent.json"),
+ "ytvis_2019_train_40perc": ("ytvis_2019/train/JPEGImages",
+ "ytvis_2019/train_40percent.json"),
+ "ytvis_2019_train_50perc": ("ytvis_2019/train/JPEGImages",
+ "ytvis_2019/train_50percent.json"),
+}
+
+# ==== Predefined splits for YTVIS 2021 ===========
+_PREDEFINED_SPLITS_YTVIS_2021 = {
+ "ytvis_2021_train": ("ytvis_2021/train/JPEGImages",
+ "ytvis_2021/train.json"),
+ "ytvis_2021_val": ("ytvis_2021/valid/JPEGImages",
+ "ytvis_2021/valid.json"),
+ "ytvis_2021_test": ("ytvis_2021/test/JPEGImages",
+ "ytvis_2021/test.json"),
+ "ytvis_2021_minus_2019_train": ("ytvis_2021/train/JPEGImages",
+ "ytvis_2021/instances_val_sub.json"),
+}
+
+_PREDEFINED_SPLITS_ImageNet_CLS_AGNOSTIC = {
+ "imagenet_video_train_cls_agnostic": ("imagenet/train",
+ "imagenet/annotations/video_imagenet_train_fixsize480_tau0.15_N3.json"),
+}
+
+
+def register_all_ytvis_2019(root):
+ for key, (image_root, json_file) in _PREDEFINED_SPLITS_YTVIS_2019.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_ytvis_instances(
+ key,
+ _get_ytvis_2019_instances_meta(),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+
+def register_all_ytvis_2021(root):
+ for key, (image_root, json_file) in _PREDEFINED_SPLITS_YTVIS_2021.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_ytvis_instances(
+ key,
+ _get_ytvis_2021_instances_meta(),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+def register_all_imagenet_cls_agnostic(root):
+ for key, (image_root, json_file) in _PREDEFINED_SPLITS_ImageNet_CLS_AGNOSTIC.items():
+ # Assume pre-defined datasets live in `./datasets`.
+ register_ytvis_instances(
+ key,
+ _get_imagenet_cls_agnostic_instances_meta(),
+ os.path.join(root, json_file) if "://" not in json_file else json_file,
+ os.path.join(root, image_root),
+ )
+
+if __name__.endswith(".builtin"):
+ # Assume pre-defined datasets live in `./datasets`.
+ _root = os.getenv("DETECTRON2_DATASETS", "datasets")
+ register_all_ytvis_2019(_root)
+ register_all_ytvis_2021(_root)
+ register_all_imagenet_cls_agnostic(_root)
\ No newline at end of file
diff --git a/videocutler/mask2former_video/data_video/datasets/ytvis.py b/videocutler/mask2former_video/data_video/datasets/ytvis.py
new file mode 100755
index 0000000000000000000000000000000000000000..69f0a8e010f70f4b2b75151c7431b0af91871edd
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/datasets/ytvis.py
@@ -0,0 +1,356 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/Mask2Former/tree/main/mask2former_video
+
+
+import contextlib
+import io
+import json
+import logging
+import numpy as np
+import os
+import pycocotools.mask as mask_util
+from fvcore.common.file_io import PathManager
+from fvcore.common.timer import Timer
+
+from detectron2.structures import Boxes, BoxMode, PolygonMasks
+from detectron2.data import DatasetCatalog, MetadataCatalog
+
+"""
+This file contains functions to parse YTVIS dataset of
+COCO-format annotations into dicts in "Detectron2 format".
+"""
+
+logger = logging.getLogger(__name__)
+
+__all__ = ["load_ytvis_json", "register_ytvis_instances"]
+
+
+YTVIS_CATEGORIES_2019 = [
+ {"color": [220, 20, 60], "isthing": 1, "id": 1, "name": "person"},
+ {"color": [0, 82, 0], "isthing": 1, "id": 2, "name": "giant_panda"},
+ {"color": [119, 11, 32], "isthing": 1, "id": 3, "name": "lizard"},
+ {"color": [165, 42, 42], "isthing": 1, "id": 4, "name": "parrot"},
+ {"color": [134, 134, 103], "isthing": 1, "id": 5, "name": "skateboard"},
+ {"color": [0, 0, 142], "isthing": 1, "id": 6, "name": "sedan"},
+ {"color": [255, 109, 65], "isthing": 1, "id": 7, "name": "ape"},
+ {"color": [0, 226, 252], "isthing": 1, "id": 8, "name": "dog"},
+ {"color": [5, 121, 0], "isthing": 1, "id": 9, "name": "snake"},
+ {"color": [0, 60, 100], "isthing": 1, "id": 10, "name": "monkey"},
+ {"color": [250, 170, 30], "isthing": 1, "id": 11, "name": "hand"},
+ {"color": [100, 170, 30], "isthing": 1, "id": 12, "name": "rabbit"},
+ {"color": [179, 0, 194], "isthing": 1, "id": 13, "name": "duck"},
+ {"color": [255, 77, 255], "isthing": 1, "id": 14, "name": "cat"},
+ {"color": [120, 166, 157], "isthing": 1, "id": 15, "name": "cow"},
+ {"color": [73, 77, 174], "isthing": 1, "id": 16, "name": "fish"},
+ {"color": [0, 80, 100], "isthing": 1, "id": 17, "name": "train"},
+ {"color": [182, 182, 255], "isthing": 1, "id": 18, "name": "horse"},
+ {"color": [0, 143, 149], "isthing": 1, "id": 19, "name": "turtle"},
+ {"color": [174, 57, 255], "isthing": 1, "id": 20, "name": "bear"},
+ {"color": [0, 0, 230], "isthing": 1, "id": 21, "name": "motorbike"},
+ {"color": [72, 0, 118], "isthing": 1, "id": 22, "name": "giraffe"},
+ {"color": [255, 179, 240], "isthing": 1, "id": 23, "name": "leopard"},
+ {"color": [0, 125, 92], "isthing": 1, "id": 24, "name": "fox"},
+ {"color": [209, 0, 151], "isthing": 1, "id": 25, "name": "deer"},
+ {"color": [188, 208, 182], "isthing": 1, "id": 26, "name": "owl"},
+ {"color": [145, 148, 174], "isthing": 1, "id": 27, "name": "surfboard"},
+ {"color": [106, 0, 228], "isthing": 1, "id": 28, "name": "airplane"},
+ {"color": [0, 0, 70], "isthing": 1, "id": 29, "name": "truck"},
+ {"color": [199, 100, 0], "isthing": 1, "id": 30, "name": "zebra"},
+ {"color": [166, 196, 102], "isthing": 1, "id": 31, "name": "tiger"},
+ {"color": [110, 76, 0], "isthing": 1, "id": 32, "name": "elephant"},
+ {"color": [133, 129, 255], "isthing": 1, "id": 33, "name": "snowboard"},
+ {"color": [0, 0, 192], "isthing": 1, "id": 34, "name": "boat"},
+ {"color": [183, 130, 88], "isthing": 1, "id": 35, "name": "shark"},
+ {"color": [130, 114, 135], "isthing": 1, "id": 36, "name": "mouse"},
+ {"color": [107, 142, 35], "isthing": 1, "id": 37, "name": "frog"},
+ {"color": [0, 228, 0], "isthing": 1, "id": 38, "name": "eagle"},
+ {"color": [174, 255, 243], "isthing": 1, "id": 39, "name": "earless_seal"},
+ {"color": [255, 208, 186], "isthing": 1, "id": 40, "name": "tennis_racket"},
+]
+
+
+IMAGENET_CATEGORIES_cls_agnostic = [
+ # {"color": [220, 20, 60], "isthing": 1, "id": 1, "name": "fg"},
+ # {"color": [120, 166, 157], "isthing": 1, "id": 1, "name": "fg"},
+ {"color": [73, 77, 174], "isthing": 1, "id": 1, "name": "fg"},
+ # {"color": [199, 100, 0], "isthing": 1, "id": 2, "name": "fg"},
+]
+
+
+YTVIS_CATEGORIES_2021 = [
+ {"color": [106, 0, 228], "isthing": 1, "id": 1, "name": "airplane"},
+ {"color": [174, 57, 255], "isthing": 1, "id": 2, "name": "bear"},
+ {"color": [255, 109, 65], "isthing": 1, "id": 3, "name": "bird"},
+ {"color": [0, 0, 192], "isthing": 1, "id": 4, "name": "boat"},
+ {"color": [0, 0, 142], "isthing": 1, "id": 5, "name": "car"},
+ {"color": [255, 77, 255], "isthing": 1, "id": 6, "name": "cat"},
+ {"color": [120, 166, 157], "isthing": 1, "id": 7, "name": "cow"},
+ {"color": [209, 0, 151], "isthing": 1, "id": 8, "name": "deer"},
+ {"color": [0, 226, 252], "isthing": 1, "id": 9, "name": "dog"},
+ {"color": [179, 0, 194], "isthing": 1, "id": 10, "name": "duck"},
+ {"color": [174, 255, 243], "isthing": 1, "id": 11, "name": "earless_seal"},
+ {"color": [110, 76, 0], "isthing": 1, "id": 12, "name": "elephant"},
+ {"color": [73, 77, 174], "isthing": 1, "id": 13, "name": "fish"},
+ {"color": [250, 170, 30], "isthing": 1, "id": 14, "name": "flying_disc"},
+ {"color": [0, 125, 92], "isthing": 1, "id": 15, "name": "fox"},
+ {"color": [107, 142, 35], "isthing": 1, "id": 16, "name": "frog"},
+ {"color": [0, 82, 0], "isthing": 1, "id": 17, "name": "giant_panda"},
+ {"color": [72, 0, 118], "isthing": 1, "id": 18, "name": "giraffe"},
+ {"color": [182, 182, 255], "isthing": 1, "id": 19, "name": "horse"},
+ {"color": [255, 179, 240], "isthing": 1, "id": 20, "name": "leopard"},
+ {"color": [119, 11, 32], "isthing": 1, "id": 21, "name": "lizard"},
+ {"color": [0, 60, 100], "isthing": 1, "id": 22, "name": "monkey"},
+ {"color": [0, 0, 230], "isthing": 1, "id": 23, "name": "motorbike"},
+ {"color": [130, 114, 135], "isthing": 1, "id": 24, "name": "mouse"},
+ {"color": [165, 42, 42], "isthing": 1, "id": 25, "name": "parrot"},
+ {"color": [220, 20, 60], "isthing": 1, "id": 26, "name": "person"},
+ {"color": [100, 170, 30], "isthing": 1, "id": 27, "name": "rabbit"},
+ {"color": [183, 130, 88], "isthing": 1, "id": 28, "name": "shark"},
+ {"color": [134, 134, 103], "isthing": 1, "id": 29, "name": "skateboard"},
+ {"color": [5, 121, 0], "isthing": 1, "id": 30, "name": "snake"},
+ {"color": [133, 129, 255], "isthing": 1, "id": 31, "name": "snowboard"},
+ {"color": [188, 208, 182], "isthing": 1, "id": 32, "name": "squirrel"},
+ {"color": [145, 148, 174], "isthing": 1, "id": 33, "name": "surfboard"},
+ {"color": [255, 208, 186], "isthing": 1, "id": 34, "name": "tennis_racket"},
+ {"color": [166, 196, 102], "isthing": 1, "id": 35, "name": "tiger"},
+ {"color": [0, 80, 100], "isthing": 1, "id": 36, "name": "train"},
+ {"color": [0, 0, 70], "isthing": 1, "id": 37, "name": "truck"},
+ {"color": [0, 143, 149], "isthing": 1, "id": 38, "name": "turtle"},
+ {"color": [0, 228, 0], "isthing": 1, "id": 39, "name": "whale"},
+ {"color": [199, 100, 0], "isthing": 1, "id": 40, "name": "zebra"},
+]
+
+
+def _get_ytvis_2019_instances_meta():
+ thing_ids = [k["id"] for k in YTVIS_CATEGORIES_2019 if k["isthing"] == 1]
+ thing_colors = [k["color"] for k in YTVIS_CATEGORIES_2019 if k["isthing"] == 1]
+ assert len(thing_ids) == 40, len(thing_ids)
+ # Mapping from the incontiguous YTVIS category id to an id in [0, 39]
+ thing_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(thing_ids)}
+ thing_classes = [k["name"] for k in YTVIS_CATEGORIES_2019 if k["isthing"] == 1]
+ ret = {
+ "thing_dataset_id_to_contiguous_id": thing_dataset_id_to_contiguous_id,
+ "thing_classes": thing_classes,
+ "thing_colors": thing_colors,
+ }
+ return ret
+
+def _get_ytvis_2021_instances_meta():
+ thing_ids = [k["id"] for k in YTVIS_CATEGORIES_2021 if k["isthing"] == 1]
+ thing_colors = [k["color"] for k in YTVIS_CATEGORIES_2021 if k["isthing"] == 1]
+ assert len(thing_ids) == 40, len(thing_ids)
+ # Mapping from the incontiguous YTVIS category id to an id in [0, 39]
+ thing_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(thing_ids)}
+ thing_classes = [k["name"] for k in YTVIS_CATEGORIES_2021 if k["isthing"] == 1]
+ ret = {
+ "thing_dataset_id_to_contiguous_id": thing_dataset_id_to_contiguous_id,
+ "thing_classes": thing_classes,
+ "thing_colors": thing_colors,
+ }
+ return ret
+
+def _get_imagenet_cls_agnostic_instances_meta():
+ thing_ids = [k["id"] for k in IMAGENET_CATEGORIES_cls_agnostic if k["isthing"] == 1]
+ thing_colors = [k["color"] for k in IMAGENET_CATEGORIES_cls_agnostic if k["isthing"] == 1]
+ assert len(thing_ids) == 1, len(thing_ids)
+ # Mapping from the incontiguous YTVIS category id to an id in [0, 39]
+ thing_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(thing_ids)}
+ thing_classes = [k["name"] for k in IMAGENET_CATEGORIES_cls_agnostic if k["isthing"] == 1]
+ ret = {
+ "thing_dataset_id_to_contiguous_id": thing_dataset_id_to_contiguous_id,
+ "thing_classes": thing_classes,
+ "thing_colors": thing_colors,
+ }
+ return ret
+
+def load_ytvis_json(json_file, image_root, dataset_name=None, extra_annotation_keys=None):
+ from .ytvis_api.ytvos import YTVOS
+
+ timer = Timer()
+ json_file = PathManager.get_local_path(json_file)
+ with contextlib.redirect_stdout(io.StringIO()):
+ ytvis_api = YTVOS(json_file)
+ if timer.seconds() > 1:
+ logger.info("Loading {} takes {:.2f} seconds.".format(json_file, timer.seconds()))
+
+ id_map = None
+ if dataset_name is not None:
+ meta = MetadataCatalog.get(dataset_name)
+ cat_ids = sorted(ytvis_api.getCatIds())
+ cats = ytvis_api.loadCats(cat_ids)
+ # The categories in a custom json file may not be sorted.
+ thing_classes = [c["name"] for c in sorted(cats, key=lambda x: x["id"])]
+ meta.thing_classes = thing_classes
+
+ # In COCO, certain category ids are artificially removed,
+ # and by convention they are always ignored.
+ # We deal with COCO's id issue and translate
+ # the category ids to contiguous ids in [0, 80).
+
+ # It works by looking at the "categories" field in the json, therefore
+ # if users' own json also have incontiguous ids, we'll
+ # apply this mapping as well but print a warning.
+ if not (min(cat_ids) == 1 and max(cat_ids) == len(cat_ids)):
+ if "coco" not in dataset_name:
+ logger.warning(
+ """
+Category ids in annotations are not in [1, #categories]! We'll apply a mapping for you.
+"""
+ )
+ id_map = {v: i for i, v in enumerate(cat_ids)}
+ meta.thing_dataset_id_to_contiguous_id = id_map
+
+ # sort indices for reproducible results
+ vid_ids = sorted(ytvis_api.vids.keys())
+ # vids is a list of dicts, each looks something like:
+ # {'license': 1,
+ # 'flickr_url': ' ',
+ # 'file_names': ['ff25f55852/00000.jpg', 'ff25f55852/00005.jpg', ..., 'ff25f55852/00175.jpg'],
+ # 'height': 720,
+ # 'width': 1280,
+ # 'length': 36,
+ # 'date_captured': '2019-04-11 00:55:41.903902',
+ # 'id': 2232}
+ vids = ytvis_api.loadVids(vid_ids)
+
+ anns = [ytvis_api.vidToAnns[vid_id] for vid_id in vid_ids]
+ total_num_valid_anns = sum([len(x) for x in anns])
+ total_num_anns = len(ytvis_api.anns)
+ if total_num_valid_anns < total_num_anns:
+ logger.warning(
+ f"{json_file} contains {total_num_anns} annotations, but only "
+ f"{total_num_valid_anns} of them match to images in the file."
+ )
+
+ vids_anns = list(zip(vids, anns))
+ logger.info("Loaded {} videos in YTVIS format from {}".format(len(vids_anns), json_file))
+
+ dataset_dicts = []
+
+ ann_keys = ["iscrowd", "category_id", "id"] + (extra_annotation_keys or [])
+
+ num_instances_without_valid_segmentation = 0
+
+ for (vid_dict, anno_dict_list) in vids_anns:
+ record = {}
+ record["file_names"] = [os.path.join(image_root, vid_dict["file_names"][i]) for i in range(vid_dict["length"])]
+ record["height"] = vid_dict["height"]
+ record["width"] = vid_dict["width"]
+ record["length"] = vid_dict["length"]
+ video_id = record["video_id"] = vid_dict["id"]
+
+ video_objs = []
+ for frame_idx in range(record["length"]):
+ frame_objs = []
+ for anno in anno_dict_list:
+ assert anno["video_id"] == video_id
+
+ obj = {key: anno[key] for key in ann_keys if key in anno}
+
+ _bboxes = anno.get("bboxes", None)
+ _segm = anno.get("segmentations", None)
+
+ if not (_bboxes and _segm and _bboxes[frame_idx] and _segm[frame_idx]):
+ continue
+
+ bbox = _bboxes[frame_idx]
+ segm = _segm[frame_idx]
+
+ obj["bbox"] = bbox
+ obj["bbox_mode"] = BoxMode.XYWH_ABS
+
+ if isinstance(segm, dict):
+ if isinstance(segm["counts"], list):
+ # convert to compressed RLE
+ segm = mask_util.frPyObjects(segm, *segm["size"])
+ elif segm:
+ # filter out invalid polygons (< 3 points)
+ segm = [poly for poly in segm if len(poly) % 2 == 0 and len(poly) >= 6]
+ if len(segm) == 0:
+ num_instances_without_valid_segmentation += 1
+ continue # ignore this instance
+ obj["segmentation"] = segm
+
+ if id_map:
+ obj["category_id"] = id_map[obj["category_id"]]
+ frame_objs.append(obj)
+ video_objs.append(frame_objs)
+ record["annotations"] = video_objs
+ dataset_dicts.append(record)
+
+ if num_instances_without_valid_segmentation > 0:
+ logger.warning(
+ "Filtered out {} instances without valid segmentation. ".format(
+ num_instances_without_valid_segmentation
+ )
+ + "There might be issues in your dataset generation process. "
+ "A valid polygon should be a list[float] with even length >= 6."
+ )
+ return dataset_dicts
+
+
+def register_ytvis_instances(name, metadata, json_file, image_root):
+ """
+ Register a dataset in YTVIS's json annotation format for
+ instance tracking.
+
+ Args:
+ name (str): the name that identifies a dataset, e.g. "ytvis_train".
+ metadata (dict): extra metadata associated with this dataset. You can
+ leave it as an empty dict.
+ json_file (str): path to the json instance annotation file.
+ image_root (str or path-like): directory which contains all the images.
+ """
+ assert isinstance(name, str), name
+ assert isinstance(json_file, (str, os.PathLike)), json_file
+ assert isinstance(image_root, (str, os.PathLike)), image_root
+ # 1. register a function which returns dicts
+ DatasetCatalog.register(name, lambda: load_ytvis_json(json_file, image_root, name))
+
+ # 2. Optionally, add metadata about this dataset,
+ # since they might be useful in evaluation, visualization or logging
+ MetadataCatalog.get(name).set(
+ json_file=json_file, image_root=image_root, evaluator_type="ytvis", **metadata
+ )
+
+
+if __name__ == "__main__":
+ """
+ Test the YTVIS json dataset loader.
+ """
+ from detectron2.utils.logger import setup_logger
+ from detectron2.utils.visualizer import Visualizer
+ import detectron2.data.datasets # noqa # add pre-defined metadata
+ import sys
+ from PIL import Image
+
+ logger = setup_logger(name=__name__)
+ #assert sys.argv[3] in DatasetCatalog.list()
+ meta = MetadataCatalog.get("ytvis_2019_train")
+
+ json_file = "./datasets/ytvis/instances_train_sub.json"
+ image_root = "./datasets/ytvis/train/JPEGImages"
+ dicts = load_ytvis_json(json_file, image_root, dataset_name="ytvis_2019_train")
+ logger.info("Done loading {} samples.".format(len(dicts)))
+
+ dirname = "ytvis-data-vis"
+ os.makedirs(dirname, exist_ok=True)
+
+ def extract_frame_dic(dic, frame_idx):
+ import copy
+ frame_dic = copy.deepcopy(dic)
+ annos = frame_dic.get("annotations", None)
+ if annos:
+ frame_dic["annotations"] = annos[frame_idx]
+
+ return frame_dic
+
+ for d in dicts:
+ vid_name = d["file_names"][0].split('/')[-2]
+ os.makedirs(os.path.join(dirname, vid_name), exist_ok=True)
+ for idx, file_name in enumerate(d["file_names"]):
+ img = np.array(Image.open(file_name))
+ visualizer = Visualizer(img, metadata=meta)
+ vis = visualizer.draw_dataset_dict(extract_frame_dic(d, idx))
+ fpath = os.path.join(dirname, vid_name, file_name.split('/')[-1])
+ vis.save(fpath)
diff --git a/videocutler/mask2former_video/data_video/datasets/ytvis_api/__init__.py b/videocutler/mask2former_video/data_video/datasets/ytvis_api/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..d7c96243d4b8477b2c1d22bb835a7e3effd8d6b5
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/datasets/ytvis_api/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/youtubevos/cocoapi
diff --git a/videocutler/mask2former_video/data_video/datasets/ytvis_api/ytvos.py b/videocutler/mask2former_video/data_video/datasets/ytvis_api/ytvos.py
new file mode 100644
index 0000000000000000000000000000000000000000..f8f8792d40f5a692115170672295746035318e7b
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/datasets/ytvis_api/ytvos.py
@@ -0,0 +1,290 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/youtubevos/cocoapi
+
+__author__ = 'ychfan'
+# Interface for accessing the YouTubeVIS dataset.
+
+# The following API functions are defined:
+# YTVOS - YTVOS api class that loads YouTubeVIS annotation file and prepare data structures.
+# decodeMask - Decode binary mask M encoded via run-length encoding.
+# encodeMask - Encode binary mask M using run-length encoding.
+# getAnnIds - Get ann ids that satisfy given filter conditions.
+# getCatIds - Get cat ids that satisfy given filter conditions.
+# getImgIds - Get img ids that satisfy given filter conditions.
+# loadAnns - Load anns with the specified ids.
+# loadCats - Load cats with the specified ids.
+# loadImgs - Load imgs with the specified ids.
+# annToMask - Convert segmentation in an annotation to binary mask.
+# loadRes - Load algorithm results and create API for accessing them.
+
+# Microsoft COCO Toolbox. version 2.0
+# Data, paper, and tutorials available at: http://mscoco.org/
+# Code written by Piotr Dollar and Tsung-Yi Lin, 2014.
+# Licensed under the Simplified BSD License [see bsd.txt]
+
+import json
+import time
+import matplotlib.pyplot as plt
+from matplotlib.collections import PatchCollection
+from matplotlib.patches import Polygon
+import numpy as np
+import copy
+import itertools
+from pycocotools import mask as maskUtils
+import os
+from collections import defaultdict
+import sys
+PYTHON_VERSION = sys.version_info[0]
+if PYTHON_VERSION == 2:
+ from urllib import urlretrieve
+elif PYTHON_VERSION == 3:
+ from urllib.request import urlretrieve
+
+
+def _isArrayLike(obj):
+ return hasattr(obj, '__iter__') and hasattr(obj, '__len__')
+
+
+class YTVOS:
+ def __init__(self, annotation_file=None):
+ """
+ Constructor of Microsoft COCO helper class for reading and visualizing annotations.
+ :param annotation_file (str): location of annotation file
+ :param image_folder (str): location to the folder that hosts images.
+ :return:
+ """
+ # load dataset
+ self.dataset,self.anns,self.cats,self.vids = dict(),dict(),dict(),dict()
+ self.vidToAnns, self.catToVids = defaultdict(list), defaultdict(list)
+ if not annotation_file == None:
+ print('loading annotations into memory...')
+ tic = time.time()
+ dataset = json.load(open(annotation_file, 'r'))
+ assert type(dataset)==dict, 'annotation file format {} not supported'.format(type(dataset))
+ print('Done (t={:0.2f}s)'.format(time.time()- tic))
+ self.dataset = dataset
+ self.createIndex()
+
+ def createIndex(self):
+ # create index
+ print('creating index...')
+ anns, cats, vids = {}, {}, {}
+ vidToAnns,catToVids = defaultdict(list),defaultdict(list)
+ if 'annotations' in self.dataset:
+ for ann in self.dataset['annotations']:
+ vidToAnns[ann['video_id']].append(ann)
+ anns[ann['id']] = ann
+
+ if 'videos' in self.dataset:
+ for vid in self.dataset['videos']:
+ vids[vid['id']] = vid
+
+ if 'categories' in self.dataset:
+ for cat in self.dataset['categories']:
+ cats[cat['id']] = cat
+
+ if 'annotations' in self.dataset and 'categories' in self.dataset:
+ for ann in self.dataset['annotations']:
+ catToVids[ann['category_id']].append(ann['video_id'])
+
+ print('index created!')
+
+ # create class members
+ self.anns = anns
+ self.vidToAnns = vidToAnns
+ self.catToVids = catToVids
+ self.vids = vids
+ self.cats = cats
+
+ def info(self):
+ """
+ Print information about the annotation file.
+ :return:
+ """
+ for key, value in self.dataset['info'].items():
+ print('{}: {}'.format(key, value))
+
+ def getAnnIds(self, vidIds=[], catIds=[], areaRng=[], iscrowd=None):
+ """
+ Get ann ids that satisfy given filter conditions. default skips that filter
+ :param vidIds (int array) : get anns for given vids
+ catIds (int array) : get anns for given cats
+ areaRng (float array) : get anns for given area range (e.g. [0 inf])
+ iscrowd (boolean) : get anns for given crowd label (False or True)
+ :return: ids (int array) : integer array of ann ids
+ """
+ vidIds = vidIds if _isArrayLike(vidIds) else [vidIds]
+ catIds = catIds if _isArrayLike(catIds) else [catIds]
+
+ if len(vidIds) == len(catIds) == len(areaRng) == 0:
+ anns = self.dataset['annotations']
+ else:
+ if not len(vidIds) == 0:
+ lists = [self.vidToAnns[vidId] for vidId in vidIds if vidId in self.vidToAnns]
+ anns = list(itertools.chain.from_iterable(lists))
+ else:
+ anns = self.dataset['annotations']
+ anns = anns if len(catIds) == 0 else [ann for ann in anns if ann['category_id'] in catIds]
+ anns = anns if len(areaRng) == 0 else [ann for ann in anns if ann['avg_area'] > areaRng[0] and ann['avg_area'] < areaRng[1]]
+ if not iscrowd == None:
+ ids = [ann['id'] for ann in anns if ann['iscrowd'] == iscrowd]
+ else:
+ ids = [ann['id'] for ann in anns]
+ return ids
+
+ def getCatIds(self, catNms=[], supNms=[], catIds=[]):
+ """
+ filtering parameters. default skips that filter.
+ :param catNms (str array) : get cats for given cat names
+ :param supNms (str array) : get cats for given supercategory names
+ :param catIds (int array) : get cats for given cat ids
+ :return: ids (int array) : integer array of cat ids
+ """
+ catNms = catNms if _isArrayLike(catNms) else [catNms]
+ supNms = supNms if _isArrayLike(supNms) else [supNms]
+ catIds = catIds if _isArrayLike(catIds) else [catIds]
+
+ if len(catNms) == len(supNms) == len(catIds) == 0:
+ cats = self.dataset['categories']
+ else:
+ cats = self.dataset['categories']
+ cats = cats if len(catNms) == 0 else [cat for cat in cats if cat['name'] in catNms]
+ cats = cats if len(supNms) == 0 else [cat for cat in cats if cat['supercategory'] in supNms]
+ cats = cats if len(catIds) == 0 else [cat for cat in cats if cat['id'] in catIds]
+ ids = [cat['id'] for cat in cats]
+ return ids
+
+ def getVidIds(self, vidIds=[], catIds=[]):
+ '''
+ Get vid ids that satisfy given filter conditions.
+ :param vidIds (int array) : get vids for given ids
+ :param catIds (int array) : get vids with all given cats
+ :return: ids (int array) : integer array of vid ids
+ '''
+ vidIds = vidIds if _isArrayLike(vidIds) else [vidIds]
+ catIds = catIds if _isArrayLike(catIds) else [catIds]
+
+ if len(vidIds) == len(catIds) == 0:
+ ids = self.vids.keys()
+ else:
+ ids = set(vidIds)
+ for i, catId in enumerate(catIds):
+ if i == 0 and len(ids) == 0:
+ ids = set(self.catToVids[catId])
+ else:
+ ids &= set(self.catToVids[catId])
+ return list(ids)
+
+ def loadAnns(self, ids=[]):
+ """
+ Load anns with the specified ids.
+ :param ids (int array) : integer ids specifying anns
+ :return: anns (object array) : loaded ann objects
+ """
+ if _isArrayLike(ids):
+ return [self.anns[id] for id in ids]
+ elif type(ids) == int:
+ return [self.anns[ids]]
+
+ def loadCats(self, ids=[]):
+ """
+ Load cats with the specified ids.
+ :param ids (int array) : integer ids specifying cats
+ :return: cats (object array) : loaded cat objects
+ """
+ if _isArrayLike(ids):
+ return [self.cats[id] for id in ids]
+ elif type(ids) == int:
+ return [self.cats[ids]]
+
+ def loadVids(self, ids=[]):
+ """
+ Load anns with the specified ids.
+ :param ids (int array) : integer ids specifying vid
+ :return: vids (object array) : loaded vid objects
+ """
+ if _isArrayLike(ids):
+ return [self.vids[id] for id in ids]
+ elif type(ids) == int:
+ return [self.vids[ids]]
+
+
+ def loadRes(self, resFile):
+ """
+ Load result file and return a result api object.
+ :param resFile (str) : file name of result file
+ :return: res (obj) : result api object
+ """
+ res = YTVOS()
+ res.dataset['videos'] = [img for img in self.dataset['videos']]
+
+ print('Loading and preparing results...')
+ tic = time.time()
+ if type(resFile) == str or (PYTHON_VERSION == 2 and type(resFile) == unicode):
+ anns = json.load(open(resFile))
+ elif type(resFile) == np.ndarray:
+ anns = self.loadNumpyAnnotations(resFile)
+ else:
+ anns = resFile
+ assert type(anns) == list, 'results in not an array of objects'
+ annsVidIds = [ann['video_id'] for ann in anns]
+ assert set(annsVidIds) == (set(annsVidIds) & set(self.getVidIds())), \
+ 'Results do not correspond to current coco set'
+ if 'segmentations' in anns[0]:
+ res.dataset['categories'] = copy.deepcopy(self.dataset['categories'])
+ for id, ann in enumerate(anns):
+ ann['areas'] = []
+ if not 'bboxes' in ann:
+ ann['bboxes'] = []
+ for seg in ann['segmentations']:
+ # now only support compressed RLE format as segmentation results
+ if seg:
+ ann['areas'].append(maskUtils.area(seg))
+ if len(ann['bboxes']) < len(ann['areas']):
+ ann['bboxes'].append(maskUtils.toBbox(seg))
+ else:
+ ann['areas'].append(None)
+ if len(ann['bboxes']) < len(ann['areas']):
+ ann['bboxes'].append(None)
+ ann['id'] = id+1
+ l = [a for a in ann['areas'] if a]
+ if len(l)==0:
+ ann['avg_area'] = 0
+ else:
+ ann['avg_area'] = np.array(l).mean()
+ ann['iscrowd'] = 0
+ print('DONE (t={:0.2f}s)'.format(time.time()- tic))
+
+ res.dataset['annotations'] = anns
+ res.createIndex()
+ return res
+
+ def annToRLE(self, ann, frameId):
+ """
+ Convert annotation which can be polygons, uncompressed RLE to RLE.
+ :return: binary mask (numpy 2D array)
+ """
+ t = self.vids[ann['video_id']]
+ h, w = t['height'], t['width']
+ segm = ann['segmentations'][frameId]
+ if type(segm) == list:
+ # polygon -- a single object might consist of multiple parts
+ # we merge all parts into one mask rle code
+ rles = maskUtils.frPyObjects(segm, h, w)
+ rle = maskUtils.merge(rles)
+ elif type(segm['counts']) == list:
+ # uncompressed RLE
+ rle = maskUtils.frPyObjects(segm, h, w)
+ else:
+ # rle
+ rle = segm
+ return rle
+
+ def annToMask(self, ann, frameId):
+ """
+ Convert annotation which can be polygons, uncompressed RLE, or RLE to binary mask.
+ :return: binary mask (numpy 2D array)
+ """
+ rle = self.annToRLE(ann, frameId)
+ m = maskUtils.decode(rle)
+ return m
diff --git a/videocutler/mask2former_video/data_video/datasets/ytvis_api/ytvoseval.py b/videocutler/mask2former_video/data_video/datasets/ytvis_api/ytvoseval.py
new file mode 100644
index 0000000000000000000000000000000000000000..9511d830af806d49554ecb00dc89f4a6469a0da8
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/datasets/ytvis_api/ytvoseval.py
@@ -0,0 +1,567 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/youtubevos/cocoapi
+
+__author__ = 'ychfan'
+
+import numpy as np
+import datetime
+import time
+from collections import defaultdict
+from pycocotools import mask as maskUtils
+import copy
+
+class YTVOSeval:
+ # Interface for evaluating video instance segmentation on the YouTubeVIS dataset.
+ #
+ # The usage for YTVOSeval is as follows:
+ # cocoGt=..., cocoDt=... # load dataset and results
+ # E = YTVOSeval(cocoGt,cocoDt); # initialize YTVOSeval object
+ # E.params.recThrs = ...; # set parameters as desired
+ # E.evaluate(); # run per image evaluation
+ # E.accumulate(); # accumulate per image results
+ # E.summarize(); # display summary metrics of results
+ # For example usage see evalDemo.m and http://mscoco.org/.
+ #
+ # The evaluation parameters are as follows (defaults in brackets):
+ # imgIds - [all] N img ids to use for evaluation
+ # catIds - [all] K cat ids to use for evaluation
+ # iouThrs - [.5:.05:.95] T=10 IoU thresholds for evaluation
+ # recThrs - [0:.01:1] R=101 recall thresholds for evaluation
+ # areaRng - [...] A=4 object area ranges for evaluation
+ # maxDets - [1 10 100] M=3 thresholds on max detections per image
+ # iouType - ['segm'] set iouType to 'segm', 'bbox' or 'keypoints'
+ # iouType replaced the now DEPRECATED useSegm parameter.
+ # useCats - [1] if true use category labels for evaluation
+ # Note: if useCats=0 category labels are ignored as in proposal scoring.
+ # Note: multiple areaRngs [Ax2] and maxDets [Mx1] can be specified.
+ #
+ # evaluate(): evaluates detections on every image and every category and
+ # concats the results into the "evalImgs" with fields:
+ # dtIds - [1xD] id for each of the D detections (dt)
+ # gtIds - [1xG] id for each of the G ground truths (gt)
+ # dtMatches - [TxD] matching gt id at each IoU or 0
+ # gtMatches - [TxG] matching dt id at each IoU or 0
+ # dtScores - [1xD] confidence of each dt
+ # gtIgnore - [1xG] ignore flag for each gt
+ # dtIgnore - [TxD] ignore flag for each dt at each IoU
+ #
+ # accumulate(): accumulates the per-image, per-category evaluation
+ # results in "evalImgs" into the dictionary "eval" with fields:
+ # params - parameters used for evaluation
+ # date - date evaluation was performed
+ # counts - [T,R,K,A,M] parameter dimensions (see above)
+ # precision - [TxRxKxAxM] precision for every evaluation setting
+ # recall - [TxKxAxM] max recall for every evaluation setting
+ # Note: precision and recall==-1 for settings with no gt objects.
+ #
+ # See also coco, mask, pycocoDemo, pycocoEvalDemo
+ #
+ # Microsoft COCO Toolbox. version 2.0
+ # Data, paper, and tutorials available at: http://mscoco.org/
+ # Code written by Piotr Dollar and Tsung-Yi Lin, 2015.
+ # Licensed under the Simplified BSD License [see coco/license.txt]
+ def __init__(self, cocoGt=None, cocoDt=None, iouType='segm'):
+ '''
+ Initialize CocoEval using coco APIs for gt and dt
+ :param cocoGt: coco object with ground truth annotations
+ :param cocoDt: coco object with detection results
+ :return: None
+ '''
+ if not iouType:
+ print('iouType not specified. use default iouType segm')
+ self.cocoGt = cocoGt # ground truth COCO API
+ self.cocoDt = cocoDt # detections COCO API
+ self.params = {} # evaluation parameters
+ self.evalVids = defaultdict(list) # per-image per-category evaluation results [KxAxI] elements
+ self.eval = {} # accumulated evaluation results
+ self._gts = defaultdict(list) # gt for evaluation
+ self._dts = defaultdict(list) # dt for evaluation
+ self.params = Params(iouType=iouType) # parameters
+ self._paramsEval = {} # parameters for evaluation
+ self.stats = [] # result summarization
+ self.ious = {} # ious between all gts and dts
+ if not cocoGt is None:
+ self.params.vidIds = sorted(cocoGt.getVidIds())
+ self.params.catIds = sorted(cocoGt.getCatIds())
+
+
+ def _prepare(self):
+ '''
+ Prepare ._gts and ._dts for evaluation based on params
+ :return: None
+ '''
+ def _toMask(anns, coco):
+ # modify ann['segmentation'] by reference
+ for ann in anns:
+ for i, a in enumerate(ann['segmentations']):
+ if a:
+ rle = coco.annToRLE(ann, i)
+ ann['segmentations'][i] = rle
+ l = [a for a in ann['areas'] if a]
+ if len(l)==0:
+ ann['avg_area'] = 0
+ else:
+ ann['avg_area'] = np.array(l).mean()
+ p = self.params
+ if p.useCats:
+ gts=self.cocoGt.loadAnns(self.cocoGt.getAnnIds(vidIds=p.vidIds, catIds=p.catIds))
+ dts=self.cocoDt.loadAnns(self.cocoDt.getAnnIds(vidIds=p.vidIds, catIds=p.catIds))
+ else:
+ gts=self.cocoGt.loadAnns(self.cocoGt.getAnnIds(vidIds=p.vidIds))
+ dts=self.cocoDt.loadAnns(self.cocoDt.getAnnIds(vidIds=p.vidIds))
+
+ # convert ground truth to mask if iouType == 'segm'
+ if p.iouType == 'segm':
+ _toMask(gts, self.cocoGt)
+ _toMask(dts, self.cocoDt)
+ # set ignore flag
+ for gt in gts:
+ gt['ignore'] = gt['ignore'] if 'ignore' in gt else 0
+ gt['ignore'] = 'iscrowd' in gt and gt['iscrowd']
+ if p.iouType == 'keypoints':
+ gt['ignore'] = (gt['num_keypoints'] == 0) or gt['ignore']
+ self._gts = defaultdict(list) # gt for evaluation
+ self._dts = defaultdict(list) # dt for evaluation
+ for gt in gts:
+ self._gts[gt['video_id'], gt['category_id']].append(gt)
+ for dt in dts:
+ self._dts[dt['video_id'], dt['category_id']].append(dt)
+ self.evalVids = defaultdict(list) # per-image per-category evaluation results
+ self.eval = {} # accumulated evaluation results
+
+ def evaluate(self):
+ '''
+ Run per image evaluation on given images and store results (a list of dict) in self.evalVids
+ :return: None
+ '''
+ tic = time.time()
+ print('Running per image evaluation...')
+ p = self.params
+ # add backward compatibility if useSegm is specified in params
+ if not p.useSegm is None:
+ p.iouType = 'segm' if p.useSegm == 1 else 'bbox'
+ print('useSegm (deprecated) is not None. Running {} evaluation'.format(p.iouType))
+ print('Evaluate annotation type *{}*'.format(p.iouType))
+ p.vidIds = list(np.unique(p.vidIds))
+ if p.useCats:
+ p.catIds = list(np.unique(p.catIds))
+ p.maxDets = sorted(p.maxDets)
+ self.params=p
+
+ self._prepare()
+ # loop through images, area range, max detection number
+ catIds = p.catIds if p.useCats else [-1]
+
+ if p.iouType == 'segm' or p.iouType == 'bbox':
+ computeIoU = self.computeIoU
+ elif p.iouType == 'keypoints':
+ computeIoU = self.computeOks
+ self.ious = {(vidId, catId): computeIoU(vidId, catId) \
+ for vidId in p.vidIds
+ for catId in catIds}
+
+ evaluateVid = self.evaluateVid
+ maxDet = p.maxDets[-1]
+
+
+ self.evalImgs = [evaluateVid(vidId, catId, areaRng, maxDet)
+ for catId in catIds
+ for areaRng in p.areaRng
+ for vidId in p.vidIds
+ ]
+ self._paramsEval = copy.deepcopy(self.params)
+ toc = time.time()
+ print('DONE (t={:0.2f}s).'.format(toc-tic))
+
+ def computeIoU(self, vidId, catId):
+ p = self.params
+ if p.useCats:
+ gt = self._gts[vidId,catId]
+ dt = self._dts[vidId,catId]
+ else:
+ gt = [_ for cId in p.catIds for _ in self._gts[vidId,cId]]
+ dt = [_ for cId in p.catIds for _ in self._dts[vidId,cId]]
+ if len(gt) == 0 and len(dt) ==0:
+ return []
+ inds = np.argsort([-d['score'] for d in dt], kind='mergesort')
+ dt = [dt[i] for i in inds]
+ if len(dt) > p.maxDets[-1]:
+ dt=dt[0:p.maxDets[-1]]
+
+ if p.iouType == 'segm':
+ g = [g['segmentations'] for g in gt]
+ d = [d['segmentations'] for d in dt]
+ elif p.iouType == 'bbox':
+ g = [g['bboxes'] for g in gt]
+ d = [d['bboxes'] for d in dt]
+ else:
+ raise Exception('unknown iouType for iou computation')
+
+ # compute iou between each dt and gt region
+ iscrowd = [int(o['iscrowd']) for o in gt]
+ #ious = maskUtils.iou(d,g,iscrowd)
+ def iou_seq(d_seq, g_seq):
+ i = .0
+ u = .0
+ for d, g in zip(d_seq, g_seq):
+ if d and g:
+ i += maskUtils.area(maskUtils.merge([d, g], True))
+ u += maskUtils.area(maskUtils.merge([d, g], False))
+ elif not d and g:
+ u += maskUtils.area(g)
+ elif d and not g:
+ u += maskUtils.area(d)
+ if not u > .0:
+ print("Mask sizes in video {} and category {} may not match!".format(vidId, catId))
+ iou = i / u if u > .0 else .0
+ return iou
+ ious = np.zeros([len(d), len(g)])
+ for i, j in np.ndindex(ious.shape):
+ ious[i, j] = iou_seq(d[i], g[j])
+ #print(vidId, catId, ious.shape, ious)
+ return ious
+
+ def computeOks(self, imgId, catId):
+ p = self.params
+ # dimention here should be Nxm
+ gts = self._gts[imgId, catId]
+ dts = self._dts[imgId, catId]
+ inds = np.argsort([-d['score'] for d in dts], kind='mergesort')
+ dts = [dts[i] for i in inds]
+ if len(dts) > p.maxDets[-1]:
+ dts = dts[0:p.maxDets[-1]]
+ # if len(gts) == 0 and len(dts) == 0:
+ if len(gts) == 0 or len(dts) == 0:
+ return []
+ ious = np.zeros((len(dts), len(gts)))
+ sigmas = np.array([.26, .25, .25, .35, .35, .79, .79, .72, .72, .62,.62, 1.07, 1.07, .87, .87, .89, .89])/10.0
+ vars = (sigmas * 2)**2
+ k = len(sigmas)
+ # compute oks between each detection and ground truth object
+ for j, gt in enumerate(gts):
+ # create bounds for ignore regions(double the gt bbox)
+ g = np.array(gt['keypoints'])
+ xg = g[0::3]; yg = g[1::3]; vg = g[2::3]
+ k1 = np.count_nonzero(vg > 0)
+ bb = gt['bbox']
+ x0 = bb[0] - bb[2]; x1 = bb[0] + bb[2] * 2
+ y0 = bb[1] - bb[3]; y1 = bb[1] + bb[3] * 2
+ for i, dt in enumerate(dts):
+ d = np.array(dt['keypoints'])
+ xd = d[0::3]; yd = d[1::3]
+ if k1>0:
+ # measure the per-keypoint distance if keypoints visible
+ dx = xd - xg
+ dy = yd - yg
+ else:
+ # measure minimum distance to keypoints in (x0,y0) & (x1,y1)
+ z = np.zeros((k))
+ dx = np.max((z, x0-xd),axis=0)+np.max((z, xd-x1),axis=0)
+ dy = np.max((z, y0-yd),axis=0)+np.max((z, yd-y1),axis=0)
+ e = (dx**2 + dy**2) / vars / (gt['avg_area']+np.spacing(1)) / 2
+ if k1 > 0:
+ e=e[vg > 0]
+ ious[i, j] = np.sum(np.exp(-e)) / e.shape[0]
+ return ious
+
+ def evaluateVid(self, vidId, catId, aRng, maxDet):
+ '''
+ perform evaluation for single category and image
+ :return: dict (single image results)
+ '''
+ p = self.params
+ if p.useCats:
+ gt = self._gts[vidId,catId]
+ dt = self._dts[vidId,catId]
+ else:
+ gt = [_ for cId in p.catIds for _ in self._gts[vidId,cId]]
+ dt = [_ for cId in p.catIds for _ in self._dts[vidId,cId]]
+ if len(gt) == 0 and len(dt) ==0:
+ return None
+
+ for g in gt:
+ if g['ignore'] or (g['avg_area']aRng[1]):
+ g['_ignore'] = 1
+ else:
+ g['_ignore'] = 0
+
+ # sort dt highest score first, sort gt ignore last
+ gtind = np.argsort([g['_ignore'] for g in gt], kind='mergesort')
+ gt = [gt[i] for i in gtind]
+ dtind = np.argsort([-d['score'] for d in dt], kind='mergesort')
+ dt = [dt[i] for i in dtind[0:maxDet]]
+ iscrowd = [int(o['iscrowd']) for o in gt]
+ # load computed ious
+ ious = self.ious[vidId, catId][:, gtind] if len(self.ious[vidId, catId]) > 0 else self.ious[vidId, catId]
+
+ T = len(p.iouThrs)
+ G = len(gt)
+ D = len(dt)
+ gtm = np.zeros((T,G))
+ dtm = np.zeros((T,D))
+ gtIg = np.array([g['_ignore'] for g in gt])
+ dtIg = np.zeros((T,D))
+ if not len(ious)==0:
+ for tind, t in enumerate(p.iouThrs):
+ for dind, d in enumerate(dt):
+ # information about best match so far (m=-1 -> unmatched)
+ iou = min([t,1-1e-10])
+ m = -1
+ for gind, g in enumerate(gt):
+ # if this gt already matched, and not a crowd, continue
+ if gtm[tind,gind]>0 and not iscrowd[gind]:
+ continue
+ # if dt matched to reg gt, and on ignore gt, stop
+ if m>-1 and gtIg[m]==0 and gtIg[gind]==1:
+ break
+ # continue to next gt unless better match made
+ if ious[dind,gind] < iou:
+ continue
+ # if match successful and best so far, store appropriately
+ iou=ious[dind,gind]
+ m=gind
+ # if match made store id of match for both dt and gt
+ if m ==-1:
+ continue
+ dtIg[tind,dind] = gtIg[m]
+ dtm[tind,dind] = gt[m]['id']
+ gtm[tind,m] = d['id']
+ # set unmatched detections outside of area range to ignore
+ a = np.array([d['avg_area']aRng[1] for d in dt]).reshape((1, len(dt)))
+ dtIg = np.logical_or(dtIg, np.logical_and(dtm==0, np.repeat(a,T,0)))
+ # store results for given image and category
+ return {
+ 'video_id': vidId,
+ 'category_id': catId,
+ 'aRng': aRng,
+ 'maxDet': maxDet,
+ 'dtIds': [d['id'] for d in dt],
+ 'gtIds': [g['id'] for g in gt],
+ 'dtMatches': dtm,
+ 'gtMatches': gtm,
+ 'dtScores': [d['score'] for d in dt],
+ 'gtIgnore': gtIg,
+ 'dtIgnore': dtIg,
+ }
+
+ def accumulate(self, p = None):
+ '''
+ Accumulate per image evaluation results and store the result in self.eval
+ :param p: input params for evaluation
+ :return: None
+ '''
+ print('Accumulating evaluation results...')
+ tic = time.time()
+ if not self.evalImgs:
+ print('Please run evaluate() first')
+ # allows input customized parameters
+ if p is None:
+ p = self.params
+ p.catIds = p.catIds if p.useCats == 1 else [-1]
+ T = len(p.iouThrs)
+ R = len(p.recThrs)
+ K = len(p.catIds) if p.useCats else 1
+ A = len(p.areaRng)
+ M = len(p.maxDets)
+ precision = -np.ones((T,R,K,A,M)) # -1 for the precision of absent categories
+ recall = -np.ones((T,K,A,M))
+ scores = -np.ones((T,R,K,A,M))
+
+ # create dictionary for future indexing
+ _pe = self._paramsEval
+ catIds = _pe.catIds if _pe.useCats else [-1]
+ setK = set(catIds)
+ setA = set(map(tuple, _pe.areaRng))
+ setM = set(_pe.maxDets)
+ setI = set(_pe.vidIds)
+ # get inds to evaluate
+ k_list = [n for n, k in enumerate(p.catIds) if k in setK]
+ m_list = [m for n, m in enumerate(p.maxDets) if m in setM]
+ a_list = [n for n, a in enumerate(map(lambda x: tuple(x), p.areaRng)) if a in setA]
+ i_list = [n for n, i in enumerate(p.vidIds) if i in setI]
+ I0 = len(_pe.vidIds)
+ A0 = len(_pe.areaRng)
+ # retrieve E at each category, area range, and max number of detections
+ for k, k0 in enumerate(k_list):
+ Nk = k0*A0*I0
+ for a, a0 in enumerate(a_list):
+ Na = a0*I0
+ for m, maxDet in enumerate(m_list):
+ E = [self.evalImgs[Nk + Na + i] for i in i_list]
+ E = [e for e in E if not e is None]
+ if len(E) == 0:
+ continue
+ dtScores = np.concatenate([e['dtScores'][0:maxDet] for e in E])
+
+ # different sorting method generates slightly different results.
+ # mergesort is used to be consistent as Matlab implementation.
+ inds = np.argsort(-dtScores, kind='mergesort')
+ dtScoresSorted = dtScores[inds]
+
+ dtm = np.concatenate([e['dtMatches'][:,0:maxDet] for e in E], axis=1)[:,inds]
+ dtIg = np.concatenate([e['dtIgnore'][:,0:maxDet] for e in E], axis=1)[:,inds]
+ gtIg = np.concatenate([e['gtIgnore'] for e in E])
+ npig = np.count_nonzero(gtIg==0 )
+ if npig == 0:
+ continue
+ tps = np.logical_and( dtm, np.logical_not(dtIg) )
+ fps = np.logical_and(np.logical_not(dtm), np.logical_not(dtIg) )
+
+ tp_sum = np.cumsum(tps, axis=1).astype(dtype=float)
+ fp_sum = np.cumsum(fps, axis=1).astype(dtype=float)
+ for t, (tp, fp) in enumerate(zip(tp_sum, fp_sum)):
+ tp = np.array(tp)
+ fp = np.array(fp)
+ nd = len(tp)
+ rc = tp / npig
+ pr = tp / (fp+tp+np.spacing(1))
+ q = np.zeros((R,))
+ ss = np.zeros((R,))
+
+ if nd:
+ recall[t,k,a,m] = rc[-1]
+ else:
+ recall[t,k,a,m] = 0
+
+ # numpy is slow without cython optimization for accessing elements
+ # use python array gets significant speed improvement
+ pr = pr.tolist(); q = q.tolist()
+
+ for i in range(nd-1, 0, -1):
+ if pr[i] > pr[i-1]:
+ pr[i-1] = pr[i]
+
+ inds = np.searchsorted(rc, p.recThrs, side='left')
+ try:
+ for ri, pi in enumerate(inds):
+ q[ri] = pr[pi]
+ ss[ri] = dtScoresSorted[pi]
+ except:
+ pass
+ precision[t,:,k,a,m] = np.array(q)
+ scores[t,:,k,a,m] = np.array(ss)
+ self.eval = {
+ 'params': p,
+ 'counts': [T, R, K, A, M],
+ 'date': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
+ 'precision': precision,
+ 'recall': recall,
+ 'scores': scores,
+ }
+ toc = time.time()
+ print('DONE (t={:0.2f}s).'.format( toc-tic))
+
+ def summarize(self):
+ '''
+ Compute and display summary metrics for evaluation results.
+ Note this functin can *only* be applied on the default parameter setting
+ '''
+ def _summarize( ap=1, iouThr=None, areaRng='all', maxDets=100 ):
+ p = self.params
+ iStr = ' {:<18} {} @[ IoU={:<9} | area={:>6s} | maxDets={:>3d} ] = {:0.3f}'
+ titleStr = 'Average Precision' if ap == 1 else 'Average Recall'
+ typeStr = '(AP)' if ap==1 else '(AR)'
+ iouStr = '{:0.2f}:{:0.2f}'.format(p.iouThrs[0], p.iouThrs[-1]) \
+ if iouThr is None else '{:0.2f}'.format(iouThr)
+
+ aind = [i for i, aRng in enumerate(p.areaRngLbl) if aRng == areaRng]
+ mind = [i for i, mDet in enumerate(p.maxDets) if mDet == maxDets]
+ if ap == 1:
+ # dimension of precision: [TxRxKxAxM]
+ s = self.eval['precision']
+ # IoU
+ if iouThr is not None:
+ t = np.where(iouThr == p.iouThrs)[0]
+ s = s[t]
+ s = s[:,:,:,aind,mind]
+ else:
+ # dimension of recall: [TxKxAxM]
+ s = self.eval['recall']
+ if iouThr is not None:
+ t = np.where(iouThr == p.iouThrs)[0]
+ s = s[t]
+ s = s[:,:,aind,mind]
+ if len(s[s>-1])==0:
+ mean_s = -1
+ else:
+ mean_s = np.mean(s[s>-1])
+ print(iStr.format(titleStr, typeStr, iouStr, areaRng, maxDets, mean_s))
+ return mean_s
+ def _summarizeDets():
+ stats = np.zeros((12,))
+ stats[0] = _summarize(1)
+ stats[1] = _summarize(1, iouThr=.5, maxDets=self.params.maxDets[2])
+ stats[2] = _summarize(1, iouThr=.75, maxDets=self.params.maxDets[2])
+ stats[3] = _summarize(1, areaRng='small', maxDets=self.params.maxDets[2])
+ stats[4] = _summarize(1, areaRng='medium', maxDets=self.params.maxDets[2])
+ stats[5] = _summarize(1, areaRng='large', maxDets=self.params.maxDets[2])
+ stats[6] = _summarize(0, maxDets=self.params.maxDets[0])
+ stats[7] = _summarize(0, maxDets=self.params.maxDets[1])
+ stats[8] = _summarize(0, maxDets=self.params.maxDets[2])
+ stats[9] = _summarize(0, areaRng='small', maxDets=self.params.maxDets[2])
+ stats[10] = _summarize(0, areaRng='medium', maxDets=self.params.maxDets[2])
+ stats[11] = _summarize(0, areaRng='large', maxDets=self.params.maxDets[2])
+ return stats
+ def _summarizeKps():
+ stats = np.zeros((10,))
+ stats[0] = _summarize(1, maxDets=20)
+ stats[1] = _summarize(1, maxDets=20, iouThr=.5)
+ stats[2] = _summarize(1, maxDets=20, iouThr=.75)
+ stats[3] = _summarize(1, maxDets=20, areaRng='medium')
+ stats[4] = _summarize(1, maxDets=20, areaRng='large')
+ stats[5] = _summarize(0, maxDets=20)
+ stats[6] = _summarize(0, maxDets=20, iouThr=.5)
+ stats[7] = _summarize(0, maxDets=20, iouThr=.75)
+ stats[8] = _summarize(0, maxDets=20, areaRng='medium')
+ stats[9] = _summarize(0, maxDets=20, areaRng='large')
+ return stats
+ if not self.eval:
+ raise Exception('Please run accumulate() first')
+ iouType = self.params.iouType
+ if iouType == 'segm' or iouType == 'bbox':
+ summarize = _summarizeDets
+ elif iouType == 'keypoints':
+ summarize = _summarizeKps
+ self.stats = summarize()
+
+ def __str__(self):
+ self.summarize()
+
+class Params:
+ '''
+ Params for coco evaluation api
+ '''
+ def setDetParams(self):
+ self.vidIds = []
+ self.catIds = []
+ # np.arange causes trouble. the data point on arange is slightly larger than the true value
+ #self.iouThrs = np.linspace(.5, 0.95, np.round((0.95 - .5) / .05) + 1, endpoint=True)
+ #self.recThrs = np.linspace(.0, 1.00, np.round((1.00 - .0) / .01) + 1, endpoint=True)
+ self.iouThrs = np.linspace(.5, 0.95, int(np.round((0.95 - .5) / .05)) + 1, endpoint=True)
+ self.recThrs = np.linspace(.0, 1.00, int(np.round((1.00 - .0) / .01)) + 1, endpoint=True)
+ self.maxDets = [1, 10, 100]
+ self.areaRng = [[0 ** 2, 1e5 ** 2], [0 ** 2, 128 ** 2], [ 128 ** 2, 256 ** 2], [256 ** 2, 1e5 ** 2]]
+ self.areaRngLbl = ['all', 'small', 'medium', 'large']
+ self.useCats = 1
+
+ def setKpParams(self):
+ self.vidIds = []
+ self.catIds = []
+ # np.arange causes trouble. the data point on arange is slightly larger than the true value
+ self.iouThrs = np.linspace(.5, 0.95, np.round((0.95 - .5) / .05) + 1, endpoint=True)
+ self.recThrs = np.linspace(.0, 1.00, np.round((1.00 - .0) / .01) + 1, endpoint=True)
+ self.maxDets = [20]
+ self.areaRng = [[0 ** 2, 1e5 ** 2], [32 ** 2, 96 ** 2], [96 ** 2, 1e5 ** 2]]
+ self.areaRngLbl = ['all', 'medium', 'large']
+ self.useCats = 1
+
+ def __init__(self, iouType='segm'):
+ if iouType == 'segm' or iouType == 'bbox':
+ self.setDetParams()
+ elif iouType == 'keypoints':
+ self.setKpParams()
+ else:
+ raise Exception('iouType not supported')
+ self.iouType = iouType
+ # useSegm is deprecated
+ self.useSegm = None
diff --git a/videocutler/mask2former_video/data_video/ytvis_eval.py b/videocutler/mask2former_video/data_video/ytvis_eval.py
new file mode 100755
index 0000000000000000000000000000000000000000..8d977ef9e639a4c0734a57cc75d34da7d22f7c5d
--- /dev/null
+++ b/videocutler/mask2former_video/data_video/ytvis_eval.py
@@ -0,0 +1,327 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/sukjunhwang/IFC
+
+import contextlib
+import copy
+import io
+import itertools
+import json
+import logging
+import numpy as np
+import os
+from collections import OrderedDict
+import pycocotools.mask as mask_util
+import torch
+from .datasets.ytvis_api.ytvos import YTVOS
+from .datasets.ytvis_api.ytvoseval import YTVOSeval
+from tabulate import tabulate
+
+import detectron2.utils.comm as comm
+from detectron2.config import CfgNode
+from detectron2.data import MetadataCatalog
+from detectron2.evaluation import DatasetEvaluator
+from detectron2.utils.file_io import PathManager
+from detectron2.utils.logger import create_small_table
+
+
+class YTVISEvaluator(DatasetEvaluator):
+ """
+ Evaluate AR for object proposals, AP for instance detection/segmentation, AP
+ for keypoint detection outputs using COCO's metrics.
+ See http://cocodataset.org/#detection-eval and
+ http://cocodataset.org/#keypoints-eval to understand its metrics.
+
+ In addition to COCO, this evaluator is able to support any bounding box detection,
+ instance segmentation, or keypoint detection dataset.
+ """
+
+ def __init__(
+ self,
+ dataset_name,
+ tasks=None,
+ distributed=True,
+ output_dir=None,
+ *,
+ use_fast_impl=True,
+ ):
+ """
+ Args:
+ dataset_name (str): name of the dataset to be evaluated.
+ It must have either the following corresponding metadata:
+
+ "json_file": the path to the COCO format annotation
+
+ Or it must be in detectron2's standard dataset format
+ so it can be converted to COCO format automatically.
+ tasks (tuple[str]): tasks that can be evaluated under the given
+ configuration. A task is one of "bbox", "segm", "keypoints".
+ By default, will infer this automatically from predictions.
+ distributed (True): if True, will collect results from all ranks and run evaluation
+ in the main process.
+ Otherwise, will only evaluate the results in the current process.
+ output_dir (str): optional, an output directory to dump all
+ results predicted on the dataset. The dump contains two files:
+
+ 1. "instances_predictions.pth" a file in torch serialization
+ format that contains all the raw original predictions.
+ 2. "coco_instances_results.json" a json file in COCO's result
+ format.
+ use_fast_impl (bool): use a fast but **unofficial** implementation to compute AP.
+ Although the results should be very close to the official implementation in COCO
+ API, it is still recommended to compute results with the official API for use in
+ papers. The faster implementation also uses more RAM.
+ """
+ self._logger = logging.getLogger(__name__)
+ self._distributed = distributed
+ self._output_dir = output_dir
+ self._use_fast_impl = use_fast_impl
+
+ if tasks is not None and isinstance(tasks, CfgNode):
+ self._logger.warning(
+ "COCO Evaluator instantiated using config, this is deprecated behavior."
+ " Please pass in explicit arguments instead."
+ )
+ self._tasks = None # Infering it from predictions should be better
+ else:
+ self._tasks = tasks
+
+ self._cpu_device = torch.device("cpu")
+
+ self._metadata = MetadataCatalog.get(dataset_name)
+
+ json_file = PathManager.get_local_path(self._metadata.json_file)
+ with contextlib.redirect_stdout(io.StringIO()):
+ self._ytvis_api = YTVOS(json_file)
+
+ # Test set json files do not contain annotations (evaluation must be
+ # performed using the COCO evaluation server).
+ self._do_evaluation = "annotations" in self._ytvis_api.dataset
+
+ def reset(self):
+ self._predictions = []
+
+ def process(self, inputs, outputs):
+ """
+ Args:
+ inputs: the inputs to a COCO model (e.g., GeneralizedRCNN).
+ It is a list of dict. Each dict corresponds to an image and
+ contains keys like "height", "width", "file_name", "image_id".
+ outputs: the outputs of a COCO model. It is a list of dicts with key
+ "instances" that contains :class:`Instances`.
+ """
+ prediction = instances_to_coco_json_video(inputs, outputs)
+ self._predictions.extend(prediction)
+
+ def evaluate(self):
+ """
+ Args:
+ img_ids: a list of image IDs to evaluate on. Default to None for the whole dataset
+ """
+ if self._distributed:
+ comm.synchronize()
+ predictions = comm.gather(self._predictions, dst=0)
+ predictions = list(itertools.chain(*predictions))
+
+ if not comm.is_main_process():
+ return {}
+ else:
+ predictions = self._predictions
+
+ if len(predictions) == 0:
+ self._logger.warning("[COCOEvaluator] Did not receive valid predictions.")
+ return {}
+
+ if self._output_dir:
+ PathManager.mkdirs(self._output_dir)
+ file_path = os.path.join(self._output_dir, "instances_predictions.pth")
+ with PathManager.open(file_path, "wb") as f:
+ torch.save(predictions, f)
+
+ self._results = OrderedDict()
+ self._eval_predictions(predictions)
+ # Copy so the caller can do whatever with results
+ return copy.deepcopy(self._results)
+
+ def _eval_predictions(self, predictions):
+ """
+ Evaluate predictions. Fill self._results with the metrics of the tasks.
+ """
+ self._logger.info("Preparing results for YTVIS format ...")
+
+ # unmap the category ids for COCO
+ if hasattr(self._metadata, "thing_dataset_id_to_contiguous_id"):
+ dataset_id_to_contiguous_id = self._metadata.thing_dataset_id_to_contiguous_id
+ all_contiguous_ids = list(dataset_id_to_contiguous_id.values())
+ num_classes = len(all_contiguous_ids)
+ assert min(all_contiguous_ids) == 0 and max(all_contiguous_ids) == num_classes - 1
+
+ reverse_id_mapping = {v: k for k, v in dataset_id_to_contiguous_id.items()}
+ for result in predictions:
+ category_id = result["category_id"]
+ assert category_id < num_classes, (
+ f"A prediction has class={category_id}, "
+ f"but the dataset only has {num_classes} classes and "
+ f"predicted class id should be in [0, {num_classes - 1}]."
+ )
+ result["category_id"] = reverse_id_mapping[category_id]
+
+ if self._output_dir:
+ file_path = os.path.join(self._output_dir, "results.json")
+ self._logger.info("Saving results to {}".format(file_path))
+ with PathManager.open(file_path, "w") as f:
+ f.write(json.dumps(predictions))
+ f.flush()
+
+ if not self._do_evaluation:
+ self._logger.info("Annotations are not available for evaluation.")
+ return
+
+ coco_eval = (
+ _evaluate_predictions_on_coco(
+ self._ytvis_api,
+ predictions,
+ )
+ if len(predictions) > 0
+ else None # cocoapi does not handle empty results very well
+ )
+
+ res = self._derive_coco_results(
+ coco_eval, class_names=self._metadata.get("thing_classes")
+ )
+ self._results["segm"] = res
+
+ def _derive_coco_results(self, coco_eval, class_names=None):
+ """
+ Derive the desired score numbers from summarized COCOeval.
+ Args:
+ coco_eval (None or COCOEval): None represents no predictions from model.
+ iou_type (str):
+ class_names (None or list[str]): if provided, will use it to predict
+ per-category AP.
+ Returns:
+ a dict of {metric name: score}
+ """
+
+ metrics = ["AP", "AP50", "AP75", "APs", "APm", "APl", "AR1", "AR10"]
+
+ if coco_eval is None:
+ self._logger.warn("No predictions from the model!")
+ return {metric: float("nan") for metric in metrics}
+
+ # the standard metrics
+ results = {
+ metric: float(coco_eval.stats[idx] * 100 if coco_eval.stats[idx] >= 0 else "nan")
+ for idx, metric in enumerate(metrics)
+ }
+ self._logger.info(
+ "Evaluation results for {}: \n".format("segm") + create_small_table(results)
+ )
+ if not np.isfinite(sum(results.values())):
+ self._logger.info("Some metrics cannot be computed and is shown as NaN.")
+
+ if class_names is None or len(class_names) <= 1:
+ return results
+ # Compute per-category AP
+ # from https://github.com/facebookresearch/Detectron/blob/a6a835f5b8208c45d0dce217ce9bbda915f44df7/detectron/datasets/json_dataset_evaluator.py#L222-L252 # noqa
+ precisions = coco_eval.eval["precision"]
+ # precision has dims (iou, recall, cls, area range, max dets)
+ assert len(class_names) == precisions.shape[2]
+
+ results_per_category = []
+ for idx, name in enumerate(class_names):
+ # area range index 0: all area ranges
+ # max dets index -1: typically 100 per image
+ precision = precisions[:, :, idx, 0, -1]
+ precision = precision[precision > -1]
+ ap = np.mean(precision) if precision.size else float("nan")
+ results_per_category.append(("{}".format(name), float(ap * 100)))
+
+ # tabulate it
+ N_COLS = min(6, len(results_per_category) * 2)
+ results_flatten = list(itertools.chain(*results_per_category))
+ results_2d = itertools.zip_longest(*[results_flatten[i::N_COLS] for i in range(N_COLS)])
+ table = tabulate(
+ results_2d,
+ tablefmt="pipe",
+ floatfmt=".3f",
+ headers=["category", "AP"] * (N_COLS // 2),
+ numalign="left",
+ )
+ self._logger.info("Per-category {} AP: \n".format("segm") + table)
+
+ results.update({"AP-" + name: ap for name, ap in results_per_category})
+ return results
+
+
+def instances_to_coco_json_video(inputs, outputs):
+ """
+ Dump an "Instances" object to a COCO-format json that's used for evaluation.
+
+ Args:
+ instances (Instances):
+ video_id (int): the image id
+
+ Returns:
+ list[dict]: list of json annotations in COCO format.
+ """
+ assert len(inputs) == 1, "More than one inputs are loaded for inference!"
+
+ video_id = inputs[0]["video_id"]
+ video_length = inputs[0]["length"]
+
+ scores = outputs["pred_scores"]
+ labels = outputs["pred_labels"]
+ masks = outputs["pred_masks"]
+
+ ytvis_results = []
+ for instance_id, (s, l, m) in enumerate(zip(scores, labels, masks)):
+ segms = [
+ mask_util.encode(np.array(_mask[:, :, None], order="F", dtype="uint8"))[0]
+ for _mask in m
+ ]
+ for rle in segms:
+ rle["counts"] = rle["counts"].decode("utf-8")
+
+ res = {
+ "video_id": video_id,
+ "score": s,
+ "category_id": l,
+ "segmentations": segms,
+ }
+ ytvis_results.append(res)
+
+ return ytvis_results
+
+
+def _evaluate_predictions_on_coco(
+ coco_gt,
+ coco_results,
+ img_ids=None,
+):
+ """
+ Evaluate the coco results using COCOEval API.
+ """
+ assert len(coco_results) > 0
+
+ coco_results = copy.deepcopy(coco_results)
+ # When evaluating mask AP, if the results contain bbox, cocoapi will
+ # use the box area as the area of the instance, instead of the mask area.
+ # This leads to a different definition of small/medium/large.
+ # We remove the bbox field to let mask AP use mask area.
+ for c in coco_results:
+ c.pop("bbox", None)
+
+ coco_dt = coco_gt.loadRes(coco_results)
+ coco_eval = YTVOSeval(coco_gt, coco_dt)
+ # For COCO, the default max_dets_per_image is [1, 10, 100].
+ max_dets_per_image = [1, 10, 100] # Default from COCOEval
+ coco_eval.params.maxDets = max_dets_per_image
+
+ if img_ids is not None:
+ coco_eval.params.imgIds = img_ids
+
+ coco_eval.evaluate()
+ coco_eval.accumulate()
+ coco_eval.summarize()
+
+ return coco_eval
diff --git a/videocutler/mask2former_video/engine/__init__.py b/videocutler/mask2former_video/engine/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..02b5fa56466a1b5ee44fd5adeda393ef0c73d8ba
--- /dev/null
+++ b/videocutler/mask2former_video/engine/__init__.py
@@ -0,0 +1,7 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+
+from .train_loop import *
+
+__all__ = [k for k in globals().keys() if not k.startswith("_")]
+
+from .defaults import *
\ No newline at end of file
diff --git a/videocutler/mask2former_video/engine/defaults.py b/videocutler/mask2former_video/engine/defaults.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3c925ba0a05358ec27803d13a4c0f98f005206e
--- /dev/null
+++ b/videocutler/mask2former_video/engine/defaults.py
@@ -0,0 +1,729 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/engine/defaults.py
+
+"""
+This file contains components with some default boilerplate logic user may need
+in training / testing. They will not work for everyone, but many users may find them useful.
+
+The behavior of functions/classes in this file is subject to change,
+since they are meant to represent the "common default behavior" people need in their projects.
+"""
+
+import argparse
+import logging
+import os
+import sys
+import weakref
+from collections import OrderedDict
+from typing import Optional
+import torch
+from fvcore.nn.precise_bn import get_bn_modules
+from omegaconf import OmegaConf
+from torch.nn.parallel import DistributedDataParallel
+
+import detectron2.data.transforms as T
+from detectron2.checkpoint import DetectionCheckpointer
+from detectron2.config import CfgNode, LazyConfig
+from detectron2.data import (
+ MetadataCatalog,
+)
+from detectron2.data import (
+ build_detection_test_loader,
+ build_detection_train_loader,
+)
+from detectron2.evaluation import (
+ DatasetEvaluator,
+ inference_on_dataset,
+ print_csv_format,
+ verify_results,
+)
+from detectron2.modeling import build_model
+from detectron2.solver import build_lr_scheduler, build_optimizer
+from detectron2.utils import comm
+from detectron2.utils.collect_env import collect_env_info
+from detectron2.utils.env import seed_all_rng
+from detectron2.utils.events import CommonMetricPrinter, JSONWriter, TensorboardXWriter
+from detectron2.utils.file_io import PathManager
+from detectron2.utils.logger import setup_logger
+
+from detectron2.engine import hooks
+from detectron2.engine import TrainerBase
+from .train_loop import CustomAMPTrainer, CustomSimpleTrainer
+
+__all__ = [
+ "create_ddp_model",
+ "default_argument_parser",
+ "default_setup",
+ "default_writers",
+ "DefaultPredictor",
+ "DefaultTrainer",
+]
+
+
+def create_ddp_model(model, *, fp16_compression=False, **kwargs):
+ """
+ Create a DistributedDataParallel model if there are >1 processes.
+
+ Args:
+ model: a torch.nn.Module
+ fp16_compression: add fp16 compression hooks to the ddp object.
+ See more at https://pytorch.org/docs/stable/ddp_comm_hooks.html#torch.distributed.algorithms.ddp_comm_hooks.default_hooks.fp16_compress_hook
+ kwargs: other arguments of :module:`torch.nn.parallel.DistributedDataParallel`.
+ """ # noqa
+ if comm.get_world_size() == 1:
+ return model
+ if "device_ids" not in kwargs:
+ kwargs["device_ids"] = [comm.get_local_rank()]
+ ddp = DistributedDataParallel(model, **kwargs)
+ if fp16_compression:
+ from torch.distributed.algorithms.ddp_comm_hooks import default as comm_hooks
+
+ ddp.register_comm_hook(state=None, hook=comm_hooks.fp16_compress_hook)
+ return ddp
+
+
+def default_argument_parser(epilog=None):
+ """
+ Create a parser with some common arguments used by detectron2 users.
+
+ Args:
+ epilog (str): epilog passed to ArgumentParser describing the usage.
+
+ Returns:
+ argparse.ArgumentParser:
+ """
+ parser = argparse.ArgumentParser(
+ epilog=epilog
+ or f"""
+Examples:
+
+Run on single machine:
+ $ {sys.argv[0]} --num-gpus 8 --config-file cfg.yaml
+
+Change some config options:
+ $ {sys.argv[0]} --config-file cfg.yaml MODEL.WEIGHTS /path/to/weight.pth SOLVER.BASE_LR 0.001
+
+Run on multiple machines:
+ (machine0)$ {sys.argv[0]} --machine-rank 0 --num-machines 2 --dist-url [--other-flags]
+ (machine1)$ {sys.argv[0]} --machine-rank 1 --num-machines 2 --dist-url [--other-flags]
+""",
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ )
+ parser.add_argument("--config-file", default="", metavar="FILE", help="path to config file")
+ parser.add_argument(
+ "--resume",
+ action="store_true",
+ help="Whether to attempt to resume from the checkpoint directory. "
+ "See documentation of `DefaultTrainer.resume_or_load()` for what it means.",
+ )
+ parser.add_argument("--eval-only", action="store_true", help="perform evaluation only")
+ parser.add_argument("--num-gpus", type=int, default=1, help="number of gpus *per machine*")
+ parser.add_argument("--num-machines", type=int, default=1, help="total number of machines")
+ parser.add_argument(
+ "--machine-rank", type=int, default=0, help="the rank of this machine (unique per machine)"
+ )
+ parser.add_argument(
+ "--test-dataset", type=str, default="", help="the dataset used for evaluation"
+ )
+ parser.add_argument(
+ "--train-dataset", type=str, default="", help="the dataset used for training"
+ )
+ parser.add_argument(
+ "--wandb-name", type=str, default="", help="the wandb project name"
+ )
+ parser.add_argument("--no-segm", action="store_true", help="perform evaluation on detection only")
+ # PyTorch still may leave orphan processes in multi-gpu training.
+ # Therefore we use a deterministic way to obtain port,
+ # so that users are aware of orphan processes by seeing the port occupied.
+ port = 2**15 + 2**14 + hash(os.getuid() if sys.platform != "win32" else 1) % 2**14
+ parser.add_argument(
+ "--dist-url",
+ default="tcp://127.0.0.1:{}".format(port),
+ help="initialization URL for pytorch distributed backend. See "
+ "https://pytorch.org/docs/stable/distributed.html for details.",
+ )
+ parser.add_argument(
+ "opts",
+ help="""
+Modify config options at the end of the command. For Yacs configs, use
+space-separated "PATH.KEY VALUE" pairs.
+For python-based LazyConfig, use "path.key=value".
+ """.strip(),
+ default=None,
+ nargs=argparse.REMAINDER,
+ )
+ return parser
+
+
+def _try_get_key(cfg, *keys, default=None):
+ """
+ Try select keys from cfg until the first key that exists. Otherwise return default.
+ """
+ if isinstance(cfg, CfgNode):
+ cfg = OmegaConf.create(cfg.dump())
+ for k in keys:
+ none = object()
+ p = OmegaConf.select(cfg, k, default=none)
+ if p is not none:
+ return p
+ return default
+
+
+def _highlight(code, filename):
+ try:
+ import pygments
+ except ImportError:
+ return code
+
+ from pygments.lexers import Python3Lexer, YamlLexer
+ from pygments.formatters import Terminal256Formatter
+
+ lexer = Python3Lexer() if filename.endswith(".py") else YamlLexer()
+ code = pygments.highlight(code, lexer, Terminal256Formatter(style="monokai"))
+ return code
+
+
+def default_setup(cfg, args):
+ """
+ Perform some basic common setups at the beginning of a job, including:
+
+ 1. Set up the detectron2 logger
+ 2. Log basic information about environment, cmdline arguments, and config
+ 3. Backup the config to the output directory
+
+ Args:
+ cfg (CfgNode or omegaconf.DictConfig): the full config to be used
+ args (argparse.NameSpace): the command line arguments to be logged
+ """
+ output_dir = _try_get_key(cfg, "OUTPUT_DIR", "output_dir", "train.output_dir")
+ if comm.is_main_process() and output_dir:
+ PathManager.mkdirs(output_dir)
+
+ rank = comm.get_rank()
+ setup_logger(output_dir, distributed_rank=rank, name="fvcore")
+ logger = setup_logger(output_dir, distributed_rank=rank)
+
+ logger.info("Rank of current process: {}. World size: {}".format(rank, comm.get_world_size()))
+ logger.info("Environment info:\n" + collect_env_info())
+
+ logger.info("Command line arguments: " + str(args))
+ if hasattr(args, "config_file") and args.config_file != "":
+ logger.info(
+ "Contents of args.config_file={}:\n{}".format(
+ args.config_file,
+ _highlight(PathManager.open(args.config_file, "r").read(), args.config_file),
+ )
+ )
+
+ if comm.is_main_process() and output_dir:
+ # Note: some of our scripts may expect the existence of
+ # config.yaml in output directory
+ path = os.path.join(output_dir, "config.yaml")
+ if isinstance(cfg, CfgNode):
+ logger.info("Running with full config:\n{}".format(_highlight(cfg.dump(), ".yaml")))
+ with PathManager.open(path, "w") as f:
+ f.write(cfg.dump())
+ else:
+ LazyConfig.save(cfg, path)
+ logger.info("Full config saved to {}".format(path))
+
+ # make sure each worker has a different, yet deterministic seed if specified
+ seed = _try_get_key(cfg, "SEED", "train.seed", default=-1)
+ seed_all_rng(None if seed < 0 else seed + rank)
+
+ # cudnn benchmark has large overhead. It shouldn't be used considering the small size of
+ # typical validation set.
+ if not (hasattr(args, "eval_only") and args.eval_only):
+ torch.backends.cudnn.benchmark = _try_get_key(
+ cfg, "CUDNN_BENCHMARK", "train.cudnn_benchmark", default=False
+ )
+
+
+def default_writers(output_dir: str, max_iter: Optional[int] = None):
+ """
+ Build a list of :class:`EventWriter` to be used.
+ It now consists of a :class:`CommonMetricPrinter`,
+ :class:`TensorboardXWriter` and :class:`JSONWriter`.
+
+ Args:
+ output_dir: directory to store JSON metrics and tensorboard events
+ max_iter: the total number of iterations
+
+ Returns:
+ list[EventWriter]: a list of :class:`EventWriter` objects.
+ """
+ PathManager.mkdirs(output_dir)
+ return [
+ # It may not always print what you want to see, since it prints "common" metrics only.
+ CommonMetricPrinter(max_iter),
+ JSONWriter(os.path.join(output_dir, "metrics.json")),
+ TensorboardXWriter(output_dir),
+ ]
+
+
+class DefaultPredictor:
+ """
+ Create a simple end-to-end predictor with the given config that runs on
+ single device for a single input image.
+
+ Compared to using the model directly, this class does the following additions:
+
+ 1. Load checkpoint from `cfg.MODEL.WEIGHTS`.
+ 2. Always take BGR image as the input and apply conversion defined by `cfg.INPUT.FORMAT`.
+ 3. Apply resizing defined by `cfg.INPUT.{MIN,MAX}_SIZE_TEST`.
+ 4. Take one input image and produce a single output, instead of a batch.
+
+ This is meant for simple demo purposes, so it does the above steps automatically.
+ This is not meant for benchmarks or running complicated inference logic.
+ If you'd like to do anything more complicated, please refer to its source code as
+ examples to build and use the model manually.
+
+ Attributes:
+ metadata (Metadata): the metadata of the underlying dataset, obtained from
+ cfg.DATASETS.TEST.
+
+ Examples:
+ ::
+ pred = DefaultPredictor(cfg)
+ inputs = cv2.imread("input.jpg")
+ outputs = pred(inputs)
+ """
+
+ def __init__(self, cfg):
+ self.cfg = cfg.clone() # cfg can be modified by model
+ self.model = build_model(self.cfg)
+ self.model.eval()
+ if len(cfg.DATASETS.TEST):
+ self.metadata = MetadataCatalog.get(cfg.DATASETS.TEST[0])
+
+ checkpointer = DetectionCheckpointer(self.model)
+ checkpointer.load(cfg.MODEL.WEIGHTS)
+
+ self.aug = T.ResizeShortestEdge(
+ [cfg.INPUT.MIN_SIZE_TEST, cfg.INPUT.MIN_SIZE_TEST], cfg.INPUT.MAX_SIZE_TEST
+ )
+
+ self.input_format = cfg.INPUT.FORMAT
+ assert self.input_format in ["RGB", "BGR"], self.input_format
+
+ def __call__(self, original_image):
+ """
+ Args:
+ original_image (np.ndarray): an image of shape (H, W, C) (in BGR order).
+
+ Returns:
+ predictions (dict):
+ the output of the model for one image only.
+ See :doc:`/tutorials/models` for details about the format.
+ """
+ with torch.no_grad(): # https://github.com/sphinx-doc/sphinx/issues/4258
+ # Apply pre-processing to image.
+ if self.input_format == "RGB":
+ # whether the model expects BGR inputs or RGB
+ original_image = original_image[:, :, ::-1]
+ height, width = original_image.shape[:2]
+ image = self.aug.get_transform(original_image).apply_image(original_image)
+ image = torch.as_tensor(image.astype("float32").transpose(2, 0, 1))
+
+ inputs = {"image": image, "height": height, "width": width}
+ predictions = self.model([inputs])[0]
+ return predictions
+
+
+class DefaultTrainer(TrainerBase):
+ """
+ A trainer with default training logic. It does the following:
+
+ 1. Create a :class:`SimpleTrainer` using model, optimizer, dataloader
+ defined by the given config. Create a LR scheduler defined by the config.
+ 2. Load the last checkpoint or `cfg.MODEL.WEIGHTS`, if exists, when
+ `resume_or_load` is called.
+ 3. Register a few common hooks defined by the config.
+
+ It is created to simplify the **standard model training workflow** and reduce code boilerplate
+ for users who only need the standard training workflow, with standard features.
+ It means this class makes *many assumptions* about your training logic that
+ may easily become invalid in a new research. In fact, any assumptions beyond those made in the
+ :class:`SimpleTrainer` are too much for research.
+
+ The code of this class has been annotated about restrictive assumptions it makes.
+ When they do not work for you, you're encouraged to:
+
+ 1. Overwrite methods of this class, OR:
+ 2. Use :class:`SimpleTrainer`, which only does minimal SGD training and
+ nothing else. You can then add your own hooks if needed. OR:
+ 3. Write your own training loop similar to `tools/plain_train_net.py`.
+
+ See the :doc:`/tutorials/training` tutorials for more details.
+
+ Note that the behavior of this class, like other functions/classes in
+ this file, is not stable, since it is meant to represent the "common default behavior".
+ It is only guaranteed to work well with the standard models and training workflow in detectron2.
+ To obtain more stable behavior, write your own training logic with other public APIs.
+
+ Examples:
+ ::
+ trainer = DefaultTrainer(cfg)
+ trainer.resume_or_load() # load last checkpoint or MODEL.WEIGHTS
+ trainer.train()
+
+ Attributes:
+ scheduler:
+ checkpointer (DetectionCheckpointer):
+ cfg (CfgNode):
+ """
+
+ def __init__(self, cfg):
+ """
+ Args:
+ cfg (CfgNode):
+ """
+ super().__init__()
+ logger = logging.getLogger("detectron2")
+ if not logger.isEnabledFor(logging.INFO): # setup_logger is not called for d2
+ setup_logger()
+ cfg = DefaultTrainer.auto_scale_workers(cfg, comm.get_world_size())
+
+ # Assume these objects must be constructed in this order.
+ model = self.build_model(cfg)
+ optimizer = self.build_optimizer(cfg, model)
+ data_loader = self.build_train_loader(cfg)
+
+ model = create_ddp_model(model, broadcast_buffers=False)
+ if cfg.SOLVER.AMP.ENABLED:
+ self._trainer = CustomAMPTrainer(model, data_loader, optimizer, cfg=cfg)
+ else:
+ self._trainer = CustomSimpleTrainer(model, data_loader, optimizer, cfg=cfg)
+
+ self.scheduler = self.build_lr_scheduler(cfg, optimizer)
+ self.checkpointer = DetectionCheckpointer(
+ # Assume you want to save checkpoints together with logs/statistics
+ model,
+ cfg.OUTPUT_DIR,
+ trainer=weakref.proxy(self),
+ )
+ self.start_iter = 0
+ self.max_iter = cfg.SOLVER.MAX_ITER
+ self.cfg = cfg
+
+ self.register_hooks(self.build_hooks())
+
+ def resume_or_load(self, resume=True):
+ """
+ If `resume==True` and `cfg.OUTPUT_DIR` contains the last checkpoint (defined by
+ a `last_checkpoint` file), resume from the file. Resuming means loading all
+ available states (eg. optimizer and scheduler) and update iteration counter
+ from the checkpoint. ``cfg.MODEL.WEIGHTS`` will not be used.
+
+ Otherwise, this is considered as an independent training. The method will load model
+ weights from the file `cfg.MODEL.WEIGHTS` (but will not load other states) and start
+ from iteration 0.
+
+ Args:
+ resume (bool): whether to do resume or not
+ """
+ self.checkpointer.resume_or_load(self.cfg.MODEL.WEIGHTS, resume=resume)
+ if resume and self.checkpointer.has_checkpoint():
+ # The checkpoint stores the training iteration that just finished, thus we start
+ # at the next iteration
+ self.start_iter = self.iter + 1
+
+ def build_hooks(self):
+ """
+ Build a list of default hooks, including timing, evaluation,
+ checkpointing, lr scheduling, precise BN, writing events.
+
+ Returns:
+ list[HookBase]:
+ """
+ cfg = self.cfg.clone()
+ cfg.defrost()
+ cfg.DATALOADER.NUM_WORKERS = 0 # save some memory and time for PreciseBN
+
+ ret = [
+ hooks.IterationTimer(),
+ hooks.LRScheduler(),
+ hooks.PreciseBN(
+ # Run at the same freq as (but before) evaluation.
+ cfg.TEST.EVAL_PERIOD,
+ self.model,
+ # Build a new data loader to not affect training
+ self.build_train_loader(cfg),
+ cfg.TEST.PRECISE_BN.NUM_ITER,
+ )
+ if cfg.TEST.PRECISE_BN.ENABLED and get_bn_modules(self.model)
+ else None,
+ ]
+
+ # Do PreciseBN before checkpointer, because it updates the model and need to
+ # be saved by checkpointer.
+ # This is not always the best: if checkpointing has a different frequency,
+ # some checkpoints may have more precise statistics than others.
+ if comm.is_main_process():
+ ret.append(hooks.PeriodicCheckpointer(self.checkpointer, cfg.SOLVER.CHECKPOINT_PERIOD))
+
+ def test_and_save_results():
+ self._last_eval_results = self.test(self.cfg, self.model)
+ return self._last_eval_results
+
+ # Do evaluation after checkpointer, because then if it fails,
+ # we can use the saved checkpoint to debug.
+ ret.append(hooks.EvalHook(cfg.TEST.EVAL_PERIOD, test_and_save_results))
+
+ if comm.is_main_process():
+ # Here the default print/log frequency of each writer is used.
+ # run writers in the end, so that evaluation metrics are written
+ ret.append(hooks.PeriodicWriter(self.build_writers(), period=20))
+ return ret
+
+ def build_writers(self):
+ """
+ Build a list of writers to be used using :func:`default_writers()`.
+ If you'd like a different list of writers, you can overwrite it in
+ your trainer.
+
+ Returns:
+ list[EventWriter]: a list of :class:`EventWriter` objects.
+ """
+ return default_writers(self.cfg.OUTPUT_DIR, self.max_iter)
+
+ def train(self):
+ """
+ Run training.
+
+ Returns:
+ OrderedDict of results, if evaluation is enabled. Otherwise None.
+ """
+ super().train(self.start_iter, self.max_iter)
+ if len(self.cfg.TEST.EXPECTED_RESULTS) and comm.is_main_process():
+ assert hasattr(
+ self, "_last_eval_results"
+ ), "No evaluation results obtained during training!"
+ verify_results(self.cfg, self._last_eval_results)
+ return self._last_eval_results
+
+ def run_step(self):
+ self._trainer.iter = self.iter
+ self._trainer.run_step()
+
+ def state_dict(self):
+ ret = super().state_dict()
+ ret["_trainer"] = self._trainer.state_dict()
+ return ret
+
+ def load_state_dict(self, state_dict):
+ super().load_state_dict(state_dict)
+ self._trainer.load_state_dict(state_dict["_trainer"])
+
+ @classmethod
+ def build_model(cls, cfg):
+ """
+ Returns:
+ torch.nn.Module:
+
+ It now calls :func:`detectron2.modeling.build_model`.
+ Overwrite it if you'd like a different model.
+ """
+ model = build_model(cfg)
+ logger = logging.getLogger(__name__)
+ logger.info("Model:\n{}".format(model))
+ return model
+
+ @classmethod
+ def build_optimizer(cls, cfg, model):
+ """
+ Returns:
+ torch.optim.Optimizer:
+
+ It now calls :func:`detectron2.solver.build_optimizer`.
+ Overwrite it if you'd like a different optimizer.
+ """
+ return build_optimizer(cfg, model)
+
+ @classmethod
+ def build_lr_scheduler(cls, cfg, optimizer):
+ """
+ It now calls :func:`detectron2.solver.build_lr_scheduler`.
+ Overwrite it if you'd like a different scheduler.
+ """
+ return build_lr_scheduler(cfg, optimizer)
+
+ @classmethod
+ def build_train_loader(cls, cfg):
+ """
+ Returns:
+ iterable
+
+ It now calls :func:`detectron2.data.build_detection_train_loader`.
+ Overwrite it if you'd like a different data loader.
+ """
+ return build_detection_train_loader(cfg)
+
+ @classmethod
+ def build_test_loader(cls, cfg, dataset_name):
+ """
+ Returns:
+ iterable
+
+ It now calls :func:`detectron2.data.build_detection_test_loader`.
+ Overwrite it if you'd like a different data loader.
+ """
+ return build_detection_test_loader(cfg, dataset_name)
+
+ @classmethod
+ def build_evaluator(cls, cfg, dataset_name):
+ """
+ Returns:
+ DatasetEvaluator or None
+
+ It is not implemented by default.
+ """
+ raise NotImplementedError(
+ """
+If you want DefaultTrainer to automatically run evaluation,
+please implement `build_evaluator()` in subclasses (see train_net.py for example).
+Alternatively, you can call evaluation functions yourself (see Colab balloon tutorial for example).
+"""
+ )
+
+ @classmethod
+ def test(cls, cfg, model, evaluators=None):
+ """
+ Evaluate the given model. The given model is expected to already contain
+ weights to evaluate.
+
+ Args:
+ cfg (CfgNode):
+ model (nn.Module):
+ evaluators (list[DatasetEvaluator] or None): if None, will call
+ :meth:`build_evaluator`. Otherwise, must have the same length as
+ ``cfg.DATASETS.TEST``.
+
+ Returns:
+ dict: a dict of result metrics
+ """
+ logger = logging.getLogger(__name__)
+ if isinstance(evaluators, DatasetEvaluator):
+ evaluators = [evaluators]
+ if evaluators is not None:
+ assert len(cfg.DATASETS.TEST) == len(evaluators), "{} != {}".format(
+ len(cfg.DATASETS.TEST), len(evaluators)
+ )
+
+ results = OrderedDict()
+ for idx, dataset_name in enumerate(cfg.DATASETS.TEST):
+ data_loader = cls.build_test_loader(cfg, dataset_name)
+ # When evaluators are passed in as arguments,
+ # implicitly assume that evaluators can be created before data_loader.
+ if evaluators is not None:
+ evaluator = evaluators[idx]
+ else:
+ try:
+ evaluator = cls.build_evaluator(cfg, dataset_name)
+ except NotImplementedError:
+ logger.warn(
+ "No evaluator found. Use `DefaultTrainer.test(evaluators=)`, "
+ "or implement its `build_evaluator` method."
+ )
+ results[dataset_name] = {}
+ continue
+ results_i = inference_on_dataset(model, data_loader, evaluator)
+ results[dataset_name] = results_i
+ if comm.is_main_process():
+ assert isinstance(
+ results_i, dict
+ ), "Evaluator must return a dict on the main process. Got {} instead.".format(
+ results_i
+ )
+ logger.info("Evaluation results for {} in csv format:".format(dataset_name))
+ print_csv_format(results_i)
+
+ if len(results) == 1:
+ results = list(results.values())[0]
+ return results
+
+ @staticmethod
+ def auto_scale_workers(cfg, num_workers: int):
+ """
+ When the config is defined for certain number of workers (according to
+ ``cfg.SOLVER.REFERENCE_WORLD_SIZE``) that's different from the number of
+ workers currently in use, returns a new cfg where the total batch size
+ is scaled so that the per-GPU batch size stays the same as the
+ original ``IMS_PER_BATCH // REFERENCE_WORLD_SIZE``.
+
+ Other config options are also scaled accordingly:
+ * training steps and warmup steps are scaled inverse proportionally.
+ * learning rate are scaled proportionally, following :paper:`ImageNet in 1h`.
+
+ For example, with the original config like the following:
+
+ .. code-block:: yaml
+
+ IMS_PER_BATCH: 16
+ BASE_LR: 0.1
+ REFERENCE_WORLD_SIZE: 8
+ MAX_ITER: 5000
+ STEPS: (4000,)
+ CHECKPOINT_PERIOD: 1000
+
+ When this config is used on 16 GPUs instead of the reference number 8,
+ calling this method will return a new config with:
+
+ .. code-block:: yaml
+
+ IMS_PER_BATCH: 32
+ BASE_LR: 0.2
+ REFERENCE_WORLD_SIZE: 16
+ MAX_ITER: 2500
+ STEPS: (2000,)
+ CHECKPOINT_PERIOD: 500
+
+ Note that both the original config and this new config can be trained on 16 GPUs.
+ It's up to user whether to enable this feature (by setting ``REFERENCE_WORLD_SIZE``).
+
+ Returns:
+ CfgNode: a new config. Same as original if ``cfg.SOLVER.REFERENCE_WORLD_SIZE==0``.
+ """
+ old_world_size = cfg.SOLVER.REFERENCE_WORLD_SIZE
+ if old_world_size == 0 or old_world_size == num_workers:
+ return cfg
+ cfg = cfg.clone()
+ frozen = cfg.is_frozen()
+ cfg.defrost()
+
+ assert (
+ cfg.SOLVER.IMS_PER_BATCH % old_world_size == 0
+ ), "Invalid REFERENCE_WORLD_SIZE in config!"
+ scale = num_workers / old_world_size
+ bs = cfg.SOLVER.IMS_PER_BATCH = int(round(cfg.SOLVER.IMS_PER_BATCH * scale))
+ lr = cfg.SOLVER.BASE_LR = cfg.SOLVER.BASE_LR * scale
+ max_iter = cfg.SOLVER.MAX_ITER = int(round(cfg.SOLVER.MAX_ITER / scale))
+ warmup_iter = cfg.SOLVER.WARMUP_ITERS = int(round(cfg.SOLVER.WARMUP_ITERS / scale))
+ cfg.SOLVER.STEPS = tuple(int(round(s / scale)) for s in cfg.SOLVER.STEPS)
+ cfg.TEST.EVAL_PERIOD = int(round(cfg.TEST.EVAL_PERIOD / scale))
+ cfg.SOLVER.CHECKPOINT_PERIOD = int(round(cfg.SOLVER.CHECKPOINT_PERIOD / scale))
+ cfg.SOLVER.REFERENCE_WORLD_SIZE = num_workers # maintain invariant
+ logger = logging.getLogger(__name__)
+ logger.info(
+ f"Auto-scaling the config to batch_size={bs}, learning_rate={lr}, "
+ f"max_iter={max_iter}, warmup={warmup_iter}."
+ )
+
+ if frozen:
+ cfg.freeze()
+ return cfg
+
+
+# Access basic attributes from the underlying trainer
+for _attr in ["model", "data_loader", "optimizer"]:
+ setattr(
+ DefaultTrainer,
+ _attr,
+ property(
+ # getter
+ lambda self, x=_attr: getattr(self._trainer, x),
+ # setter
+ lambda self, value, x=_attr: setattr(self._trainer, x, value),
+ ),
+ )
diff --git a/videocutler/mask2former_video/engine/train_loop.py b/videocutler/mask2former_video/engine/train_loop.py
new file mode 100644
index 0000000000000000000000000000000000000000..cfb10b64e2e11cb51619455e42fb511f5403124c
--- /dev/null
+++ b/videocutler/mask2former_video/engine/train_loop.py
@@ -0,0 +1,396 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# Modified by XuDong Wang from https://github.com/facebookresearch/detectron2/blob/main/detectron2/engine/train_loop.py
+
+import torch
+from torch.nn.parallel import DataParallel, DistributedDataParallel
+
+import numpy as np
+import time
+import torch
+from torch.nn.parallel import DataParallel, DistributedDataParallel
+import copy
+import random
+import torch.nn.functional as F
+from detectron2.structures.instances import Instances
+from detectron2.structures import BitMasks
+
+from detectron2.engine import SimpleTrainer
+
+__all__ = ["CustomSimpleTrainer", "CustomAMPTrainer"]
+
+class CustomSimpleTrainer(SimpleTrainer):
+ """
+ A simple trainer for the most common type of task:
+ single-cost single-optimizer single-data-source iterative optimization,
+ optionally using data-parallelism.
+ It assumes that every step, you:
+
+ 1. Compute the loss with a data from the data_loader.
+ 2. Compute the gradients with the above loss.
+ 3. Update the model with the optimizer.
+
+ All other tasks during training (checkpointing, logging, evaluation, LR schedule)
+ are maintained by hooks, which can be registered by :meth:`TrainerBase.register_hooks`.
+
+ If you want to do anything fancier than this,
+ either subclass TrainerBase and implement your own `run_step`,
+ or write your own training loop.
+ """
+
+ def __init__(self, model, data_loader, optimizer, cfg=None, use_copy_paste=False,
+ copy_paste_rate=-1, copy_paste_random_num=None, copy_paste_min_ratio=-1,
+ copy_paste_max_ratio=-1, visualize_copy_paste=False):
+ """
+ Args:
+ model: a torch Module. Takes a data from data_loader and returns a
+ dict of losses.
+ data_loader: an iterable. Contains data to be used to call model.
+ optimizer: a torch optimizer.
+ """
+ super().__init__(model, data_loader, optimizer)
+
+ """
+ We set the model to training mode in the trainer.
+ However it's valid to train a model that's in eval mode.
+ If you want your model (or a submodule of it) to behave
+ like evaluation during training, you can overwrite its train() method.
+ """
+ self.cfg = cfg
+ # model.train()
+
+ # self.model = model
+ # self.data_loader = data_loader
+ # to access the data loader iterator, call `self._data_loader_iter`
+ # self._data_loader_iter_obj = None
+ # self.optimizer = optimizer
+
+ self.use_copy_paste = use_copy_paste if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE
+ self.cfg_COPY_PASTE_RATE = copy_paste_rate if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE_RATE
+ self.cfg_COPY_PASTE_RANDOM_NUM = copy_paste_random_num if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE_RANDOM_NUM
+ self.cfg_COPY_PASTE_MIN_RATIO = copy_paste_min_ratio if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE_MIN_RATIO
+ self.cfg_COPY_PASTE_MAX_RATIO = copy_paste_max_ratio if self.cfg is None else self.cfg.DATALOADER.COPY_PASTE_MAX_RATIO
+ self.cfg_VISUALIZE_COPY_PASTE = visualize_copy_paste if self.cfg is None else self.cfg.DATALOADER.VISUALIZE_COPY_PASTE
+ print("copy_paste hyper-params:", self.use_copy_paste, self.cfg_COPY_PASTE_RATE, self.cfg_COPY_PASTE_RANDOM_NUM)
+
+ def IoU(self, mask1, mask2): # only work when the batch size is 1
+ mask1, mask2 = (mask1>0.5).to(torch.bool), (mask2>0.5).to(torch.bool)
+ intersection = torch.sum(mask1 * (mask1 == mask2), dim=[-1, -2]).squeeze()
+ union = torch.sum(mask1 + mask2, dim=[-1, -2]).squeeze()
+ return (intersection.to(torch.float) / union).mean().view(1, -1)
+
+ def IoY(self, mask1, mask2): # only work when the batch size is 1
+ mask1, mask2 = mask1.squeeze(), mask2.squeeze()
+ mask1, mask2 = (mask1>0.5).to(torch.bool), (mask2>0.5).to(torch.bool)
+ intersection = torch.sum(mask1 * (mask1 == mask2), dim=[-1, -2]).squeeze()
+ union = torch.sum(mask2, dim=[-1, -2]).squeeze()
+ return (intersection.to(torch.float) / union).mean().view(1, -1)
+
+ def copy_and_paste(self, sources, targets):
+ def mask_iou_matrix(x, y, mode='iou'):
+ x = x.reshape(x.shape[0], -1).float()
+ y = y.reshape(y.shape[0], -1).float()
+ inter_matrix = x @ y.transpose(1, 0) # n1xn2
+ sum_x = x.sum(1)[:, None].expand(x.shape[0], y.shape[0])
+ sum_y = y.sum(1)[None, :].expand(x.shape[0], y.shape[0])
+ if mode == 'ioy':
+ iou_matrix = inter_matrix / (sum_y) # [1, 1]
+ else:
+ iou_matrix = inter_matrix / (sum_x + sum_y - inter_matrix) # [1, 1]
+ return iou_matrix
+
+ def visualize_data(data, save_path = './sample.jpg'):
+ from detectron2.data import detection_utils as utils
+ from detectron2.data import DatasetCatalog, MetadataCatalog
+ from detectron2.utils.visualizer import Visualizer
+ data["instances"] = data["instances"].to(device='cpu')
+ img = data["image"].permute(1, 2, 0).cpu().detach().numpy()
+ img = utils.convert_image_to_rgb(img, 'RGB')
+ metadata = MetadataCatalog.get('ytvis_2019_train_cls_agnostic')
+ visualizer = Visualizer(img, metadata=metadata, scale=1.0)
+ target_fields = data["instances"].get_fields()
+ labels = [metadata.thing_classes[i] for i in target_fields["gt_classes"]]
+ vis = visualizer.overlay_instances(
+ labels=labels,
+ boxes=target_fields.get("gt_boxes"), # ("gt_boxes", None),
+ masks=target_fields.get("gt_masks"), # ("gt_masks", None),
+ keypoints=target_fields.get("gt_keypoints", None),
+ )
+ print("Saving to {} ...".format(save_path))
+ vis.save(save_path)
+
+ new_targets = []
+ target_data_copy = []
+ for source_data, target_data in zip(sources, targets):
+ # data dict is created by mask2former_video/data_video/dataset_mapper.py
+ # data['instances']: list of instances [[frame1 instances],[frame2 instances]...[frameN instances]]
+ source_instances = source_data["instances"]
+ source_image_list = source_data["image"]
+ target_instances_list = target_data["instances"]
+ target_image_list = target_data["image"]
+ target_data_copy.append(copy.deepcopy(target_data))
+
+ num_source_instances = len(source_instances[0])
+ copy_paste_rate = random.random()
+ if self.cfg_COPY_PASTE_RATE >= copy_paste_rate and num_source_instances > 0:
+ if self.cfg_COPY_PASTE_RANDOM_NUM:
+ num_copy = 1 if num_source_instances == 1 else np.random.randint(1, max(1, num_source_instances))
+ else:
+ num_copy = num_source_instances
+ else:
+ num_copy = 0
+
+ if num_source_instances == 0 or num_copy == 0:
+ new_targets.append(target_data)
+ continue
+ else:
+ choice = np.random.choice(num_source_instances, num_copy, replace=False)
+ # randomly choose instances from the first frame and copy all these selected instances
+ frame_id = np.random.randint(1, max(1, len(source_instances))) - 1
+ copied_instances = source_instances[frame_id][choice].to(device=target_instances_list[frame_id].gt_boxes.device)
+
+ # paste these instances to ALL frames in the same video
+ target_instances_list_new = []
+ target_image_list_new = []
+ for f in range(len(target_instances_list)):
+ # Use DEEPCOPY, otherwise, the objects will be in-place edited
+ target_instances = copy.deepcopy(target_instances_list[f])
+ target_image = copy.deepcopy(target_image_list[f])
+ copied_masks = copy.deepcopy(copied_instances.gt_masks)
+ copied_boxes = copy.deepcopy(copied_instances.gt_boxes)
+ _, labeled_h, labeled_w = source_image_list[frame_id].shape
+ _, unlabeled_h, unlabeled_w = target_image.shape
+
+ # rescale the labeled image to align with unlabeled one.
+ if isinstance(copied_masks, torch.Tensor):
+ masks_new = copied_masks[None, ...].float()
+ else:
+ masks_new = copied_masks.tensor[None, ...].float()
+ # resize the masks with a random ratio from 0.5 to 1.0
+ resize_ratio = random.uniform(self.cfg_COPY_PASTE_MIN_RATIO, self.cfg_COPY_PASTE_MAX_RATIO)
+ w_new = int(resize_ratio * unlabeled_w)
+ h_new = int(resize_ratio * unlabeled_h)
+
+ # randomly shift the masks,so that the masks are not always in the center of the image
+ w_shift = random.randint(0, max(0, unlabeled_w - w_new))
+ h_shift = random.randint(0, max(0, unlabeled_h - h_new))
+
+ source_image_new = F.interpolate(source_image_list[frame_id][None, ...].float(), size=(h_new, w_new), mode="bilinear", align_corners=False).byte().squeeze(0)
+ if isinstance(copied_masks, torch.Tensor):
+ masks_new = F.interpolate(copied_masks[None, ...].float(), size=(h_new, w_new), mode="bilinear", align_corners=False).bool().squeeze(0)
+ else:
+ masks_new = F.interpolate(copied_masks.tensor[None, ...].float(), size=(h_new, w_new), mode="bilinear", align_corners=False).bool().squeeze(0)
+ copied_boxes.scale(1. * unlabeled_w / labeled_w * resize_ratio, 1. * unlabeled_h / labeled_h * resize_ratio)
+
+ if isinstance(target_instances.gt_masks, torch.Tensor):
+ _, mask_w, mask_h = target_instances.gt_masks.size()
+ else:
+ _, mask_w, mask_h = target_instances.gt_masks.tensor.size()
+
+ masks_new_all = torch.zeros(num_copy, mask_w, mask_h)
+ image_new_all = torch.zeros_like(target_image)
+
+ image_new_all[:, h_shift:h_shift+h_new, w_shift:w_shift+w_new] += source_image_new
+ masks_new_all[:, h_shift:h_shift+h_new, w_shift:w_shift+w_new] += masks_new
+
+ source_image = image_new_all.byte() #.squeeze(0)
+ if isinstance(copied_masks, torch.Tensor):
+ copied_masks = masks_new_all.bool() #.squeeze(0)
+ else:
+ copied_masks.tensor = masks_new_all.bool() #.squeeze(0)
+ copied_boxes.tensor[:, 0] += h_shift
+ copied_boxes.tensor[:, 2] += h_shift
+ copied_boxes.tensor[:, 1] += w_shift
+ copied_boxes.tensor[:, 3] += w_shift
+
+ copied_instances.gt_masks = copied_masks
+ copied_instances.gt_boxes = copied_boxes
+ copied_instances._image_size = (unlabeled_h, unlabeled_w)
+ if len(target_instances) == 0:
+ if isinstance(copied_instances.gt_masks, torch.Tensor):
+ alpha = copied_instances.gt_masks.sum(0) > 0
+ else:
+ alpha = copied_instances.gt_masks.tensor.sum(0) > 0
+ # merge image
+ alpha = alpha.cpu()
+ composited_image = (alpha * source_image) + (~alpha * target_image)
+
+ target_image_list_new.append(composited_image)
+ target_instances_list_new.append(copied_instances)
+ else:
+ # remove the copied object if iou greater than 0.5
+ if isinstance(copied_masks, torch.Tensor):
+ iou_matrix = mask_iou_matrix(copied_masks, target_instances.gt_masks, mode='ioy') # nxN
+ else:
+ iou_matrix = mask_iou_matrix(copied_masks.tensor, target_instances.gt_masks.tensor, mode='ioy') # nxN
+
+ # check if the iou is greater than 0.5. for each video, all frames should have
+ # the same amount of instances and gt masks (can be None).
+ if f == 0:
+ keep = iou_matrix.max(1)[0] < 0.5
+ sum_keep = keep.sum()
+ else:
+ keep = iou_matrix.max(1)[0] < 2.0
+
+ if sum_keep < keep.size()[0]:
+ target_image_list_new.append(target_image)
+ target_instances_list_new.append(target_instances)
+ continue
+
+ copied_instances = copied_instances[keep]
+ # update existing instances in unlabeled image
+ if isinstance(copied_instances.gt_masks, torch.Tensor):
+ alpha = copied_instances.gt_masks.sum(0) > 0
+ target_instances.gt_masks = ~alpha * target_instances.gt_masks
+ areas_unlabeled = target_instances.gt_masks.sum((1,2))
+ else:
+ alpha = copied_instances.gt_masks.tensor.sum(0) > 0
+ target_instances.gt_masks.tensor = ~alpha * target_instances.gt_masks.tensor
+ areas_unlabeled = target_instances.gt_masks.tensor.sum((1,2))
+ # merge image
+ alpha = alpha.cpu()
+ composited_image = (alpha * source_image) + (~alpha * target_image)
+ # merge instances
+ merged_instances = Instances.cat([target_instances[areas_unlabeled > 0], copied_instances])
+ # update boxes
+ if isinstance(merged_instances.gt_masks, torch.Tensor):
+ merged_instances.gt_boxes = BitMasks(merged_instances.gt_masks).get_bounding_boxes()
+ else:
+ merged_instances.gt_boxes = merged_instances.gt_masks.get_bounding_boxes()
+
+ target_image_list_new.append(composited_image)
+ target_instances_list_new.append(merged_instances)
+
+ if self.cfg_VISUALIZE_COPY_PASTE:
+ visualize_data(target_data, save_path = 'sample_{}.jpg'.format(np.random.randint(5)))
+
+ target_data["image"] = target_image_list_new
+ target_data["instances"] = target_instances_list_new
+ new_targets.append(target_data)
+
+ new_targets_outputs = []
+ for t, new_target in enumerate(new_targets):
+ n_insts = [len(new_target["instances"][i]) for i in range(len(new_target["instances"]))]
+ try:
+ assert len(set(n_insts)) == 1, "The number of instances should be the same for all frames in the same video."
+ new_targets_outputs.append(new_target)
+ except:
+ new_targets_outputs.append(target_data_copy[t])
+ return new_targets_outputs
+
+ def run_step(self):
+ """
+ Implement the standard training logic described above.
+ """
+ assert self.model.training, "[SimpleTrainer] model was changed to eval mode!"
+ start = time.perf_counter()
+ """
+ If you want to do something with the data, you can wrap the dataloader.
+ """
+ data = next(self._data_loader_iter)
+ if self.use_copy_paste:
+ data = self.copy_and_paste(copy.deepcopy(data[::-1]), data)
+ data_time = time.perf_counter() - start
+
+ """
+ If you want to do something with the losses, you can wrap the model.
+ """
+ loss_dict = self.model(data)
+ if isinstance(loss_dict, torch.Tensor):
+ losses = loss_dict
+ loss_dict = {"total_loss": loss_dict}
+ else:
+ losses = sum(loss_dict.values())
+
+ """
+ If you need to accumulate gradients or do something similar, you can
+ wrap the optimizer with your custom `zero_grad()` method.
+ """
+ if not torch.isnan(losses):
+ self.optimizer.zero_grad()
+ losses.backward()
+ else:
+ print('Nan loss. Skipped.')
+
+ self._write_metrics(loss_dict, data_time)
+
+ """
+ If you need gradient clipping/scaling or other processing, you can
+ wrap the optimizer with your custom `step()` method. But it is
+ suboptimal as explained in https://arxiv.org/abs/2006.15704 Sec 3.2.4
+ """
+ self.optimizer.step()
+
+
+class CustomAMPTrainer(CustomSimpleTrainer):
+ """
+ Like :class:`SimpleTrainer`, but uses PyTorch's native automatic mixed precision
+ in the training loop.
+ """
+
+ def __init__(self, model, data_loader, optimizer, cfg=None, grad_scaler=None, use_copy_paste=False,
+ copy_paste_rate=-1, copy_paste_random_num=None, copy_paste_min_ratio=-1,
+ copy_paste_max_ratio=-1, visualize_copy_paste=False):
+ """
+ Args:
+ model, data_loader, optimizer: same as in :class:`SimpleTrainer`.
+ grad_scaler: torch GradScaler to automatically scale gradients.
+ """
+ unsupported = "AMPTrainer does not support single-process multi-device training!"
+ if isinstance(model, DistributedDataParallel):
+ assert not (model.device_ids and len(model.device_ids) > 1), unsupported
+ assert not isinstance(model, DataParallel), unsupported
+ print("INFO: use AMPTrainer.")
+
+ super().__init__(model, data_loader, optimizer, cfg=cfg, use_copy_paste=use_copy_paste, \
+ copy_paste_rate=copy_paste_rate, copy_paste_random_num=copy_paste_random_num, \
+ copy_paste_min_ratio=copy_paste_min_ratio, copy_paste_max_ratio=copy_paste_max_ratio, \
+ visualize_copy_paste=visualize_copy_paste)
+
+ if grad_scaler is None:
+ from torch.cuda.amp import GradScaler
+
+ grad_scaler = GradScaler()
+ self.grad_scaler = grad_scaler
+
+ def run_step(self):
+ """
+ Implement the AMP training logic.
+ """
+ assert self.model.training, "[AMPTrainer] model was changed to eval mode!"
+ assert torch.cuda.is_available(), "[AMPTrainer] CUDA is required for AMP training!"
+ from torch.cuda.amp import autocast
+
+ start = time.perf_counter()
+ data = next(self._data_loader_iter)
+ if self.use_copy_paste:
+ data = self.copy_and_paste(copy.deepcopy(data[::-1]), data)
+ data_time = time.perf_counter() - start
+
+ with autocast():
+ loss_dict = self.model(data)
+ if isinstance(loss_dict, torch.Tensor):
+ losses = loss_dict
+ loss_dict = {"total_loss": loss_dict}
+ else:
+ losses = sum(loss_dict.values())
+
+ if not torch.isnan(losses):
+ self.optimizer.zero_grad()
+ self.grad_scaler.scale(losses).backward()
+ else:
+ print('Nan loss.')
+
+ self._write_metrics(loss_dict, data_time)
+
+ self.grad_scaler.step(self.optimizer)
+ self.grad_scaler.update()
+
+ def state_dict(self):
+ ret = super().state_dict()
+ ret["grad_scaler"] = self.grad_scaler.state_dict()
+ return ret
+
+ def load_state_dict(self, state_dict):
+ super().load_state_dict(state_dict)
+ self.grad_scaler.load_state_dict(state_dict["grad_scaler"])
diff --git a/videocutler/mask2former_video/modeling/__init__.py b/videocutler/mask2former_video/modeling/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9cc855fb05ad6ad02824f6f307539845a3cea192
--- /dev/null
+++ b/videocutler/mask2former_video/modeling/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+from .transformer_decoder.video_mask2former_transformer_decoder import VideoMultiScaleMaskedTransformerDecoder
diff --git a/videocutler/mask2former_video/modeling/criterion.py b/videocutler/mask2former_video/modeling/criterion.py
new file mode 100644
index 0000000000000000000000000000000000000000..176a55c09eef5a8db7dd87bf187404f2cbe98489
--- /dev/null
+++ b/videocutler/mask2former_video/modeling/criterion.py
@@ -0,0 +1,259 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/facebookresearch/detr/blob/master/models/detr.py
+"""
+MaskFormer criterion.
+"""
+import logging
+
+import torch
+import torch.nn.functional as F
+from torch import nn
+
+from detectron2.utils.comm import get_world_size
+from detectron2.projects.point_rend.point_features import (
+ get_uncertain_point_coords_with_randomness,
+ point_sample,
+)
+
+from mask2former.utils.misc import is_dist_avail_and_initialized
+
+
+def dice_loss(
+ inputs: torch.Tensor,
+ targets: torch.Tensor,
+ num_masks: float,
+ ):
+ """
+ Compute the DICE loss, similar to generalized IOU for masks
+ Args:
+ inputs: A float tensor of arbitrary shape.
+ The predictions for each example.
+ targets: A float tensor with the same shape as inputs. Stores the binary
+ classification label for each element in inputs
+ (0 for the negative class and 1 for the positive class).
+ """
+ inputs = inputs.sigmoid()
+ inputs = inputs.flatten(1)
+ numerator = 2 * (inputs * targets).sum(-1)
+ denominator = inputs.sum(-1) + targets.sum(-1)
+ loss = 1 - (numerator + 1) / (denominator + 1)
+ return loss.sum() / num_masks
+
+
+dice_loss_jit = torch.jit.script(
+ dice_loss
+) # type: torch.jit.ScriptModule
+
+
+def sigmoid_ce_loss(
+ inputs: torch.Tensor,
+ targets: torch.Tensor,
+ num_masks: float,
+ ):
+ """
+ Args:
+ inputs: A float tensor of arbitrary shape.
+ The predictions for each example.
+ targets: A float tensor with the same shape as inputs. Stores the binary
+ classification label for each element in inputs
+ (0 for the negative class and 1 for the positive class).
+ Returns:
+ Loss tensor
+ """
+ loss = F.binary_cross_entropy_with_logits(inputs, targets, reduction="none")
+
+ return loss.mean(1).sum() / num_masks
+
+
+sigmoid_ce_loss_jit = torch.jit.script(
+ sigmoid_ce_loss
+) # type: torch.jit.ScriptModule
+
+
+def calculate_uncertainty(logits):
+ """
+ We estimate uncerainty as L1 distance between 0.0 and the logit prediction in 'logits' for the
+ foreground class in `classes`.
+ Args:
+ logits (Tensor): A tensor of shape (R, 1, ...) for class-specific or
+ class-agnostic, where R is the total number of predicted masks in all images and C is
+ the number of foreground classes. The values are logits.
+ Returns:
+ scores (Tensor): A tensor of shape (R, 1, ...) that contains uncertainty scores with
+ the most uncertain locations having the highest uncertainty score.
+ """
+ assert logits.shape[1] == 1
+ gt_class_logits = logits.clone()
+ return -(torch.abs(gt_class_logits))
+
+
+class VideoSetCriterion(nn.Module):
+ """This class computes the loss for DETR.
+ The process happens in two steps:
+ 1) we compute hungarian assignment between ground truth boxes and the outputs of the model
+ 2) we supervise each pair of matched ground-truth / prediction (supervise class and box)
+ """
+
+ def __init__(self, num_classes, matcher, weight_dict, eos_coef, losses,
+ num_points, oversample_ratio, importance_sample_ratio):
+ """Create the criterion.
+ Parameters:
+ num_classes: number of object categories, omitting the special no-object category
+ matcher: module able to compute a matching between targets and proposals
+ weight_dict: dict containing as key the names of the losses and as values their relative weight.
+ eos_coef: relative classification weight applied to the no-object category
+ losses: list of all the losses to be applied. See get_loss for list of available losses.
+ """
+ super().__init__()
+ self.num_classes = num_classes
+ self.matcher = matcher
+ self.weight_dict = weight_dict
+ self.eos_coef = eos_coef
+ self.losses = losses
+ empty_weight = torch.ones(self.num_classes + 1)
+ empty_weight[-1] = self.eos_coef
+ self.register_buffer("empty_weight", empty_weight)
+
+ # pointwise mask loss parameters
+ self.num_points = num_points
+ self.oversample_ratio = oversample_ratio
+ self.importance_sample_ratio = importance_sample_ratio
+
+ def loss_labels(self, outputs, targets, indices, num_masks):
+ """Classification loss (NLL)
+ targets dicts must contain the key "labels" containing a tensor of dim [nb_target_boxes]
+ """
+ assert "pred_logits" in outputs
+ src_logits = outputs["pred_logits"].float()
+
+ idx = self._get_src_permutation_idx(indices)
+ target_classes_o = torch.cat([t["labels"][J] for t, (_, J) in zip(targets, indices)])
+ target_classes = torch.full(
+ src_logits.shape[:2], self.num_classes, dtype=torch.int64, device=src_logits.device
+ )
+ target_classes[idx] = target_classes_o
+
+ loss_ce = F.cross_entropy(src_logits.transpose(1, 2), target_classes, self.empty_weight)
+ losses = {"loss_ce": loss_ce}
+ return losses
+
+ def loss_masks(self, outputs, targets, indices, num_masks):
+ """Compute the losses related to the masks: the focal loss and the dice loss.
+ targets dicts must contain the key "masks" containing a tensor of dim [nb_target_boxes, h, w]
+ """
+ assert "pred_masks" in outputs
+
+ src_idx = self._get_src_permutation_idx(indices)
+ src_masks = outputs["pred_masks"]
+ src_masks = src_masks[src_idx]
+ # Modified to handle video
+ target_masks = torch.cat([t['masks'][i] for t, (_, i) in zip(targets, indices)]).to(src_masks)
+
+ # No need to upsample predictions as we are using normalized coordinates :)
+ # NT x 1 x H x W
+ src_masks = src_masks.flatten(0, 1)[:, None]
+ target_masks = target_masks.flatten(0, 1)[:, None]
+
+ with torch.no_grad():
+ # sample point_coords
+ point_coords = get_uncertain_point_coords_with_randomness(
+ src_masks,
+ lambda logits: calculate_uncertainty(logits),
+ self.num_points,
+ self.oversample_ratio,
+ self.importance_sample_ratio,
+ )
+ # get gt labels
+ point_labels = point_sample(
+ target_masks,
+ point_coords,
+ align_corners=False,
+ ).squeeze(1)
+
+ point_logits = point_sample(
+ src_masks,
+ point_coords,
+ align_corners=False,
+ ).squeeze(1)
+
+ losses = {
+ "loss_mask": sigmoid_ce_loss_jit(point_logits, point_labels, num_masks),
+ "loss_dice": dice_loss_jit(point_logits, point_labels, num_masks),
+ }
+
+ del src_masks
+ del target_masks
+ return losses
+
+ def _get_src_permutation_idx(self, indices):
+ # permute predictions following indices
+ batch_idx = torch.cat([torch.full_like(src, i) for i, (src, _) in enumerate(indices)])
+ src_idx = torch.cat([src for (src, _) in indices])
+ return batch_idx, src_idx
+
+ def _get_tgt_permutation_idx(self, indices):
+ # permute targets following indices
+ batch_idx = torch.cat([torch.full_like(tgt, i) for i, (_, tgt) in enumerate(indices)])
+ tgt_idx = torch.cat([tgt for (_, tgt) in indices])
+ return batch_idx, tgt_idx
+
+ def get_loss(self, loss, outputs, targets, indices, num_masks):
+ loss_map = {
+ 'labels': self.loss_labels,
+ 'masks': self.loss_masks,
+ }
+ assert loss in loss_map, f"do you really want to compute {loss} loss?"
+ return loss_map[loss](outputs, targets, indices, num_masks)
+
+ def forward(self, outputs, targets):
+ """This performs the loss computation.
+ Parameters:
+ outputs: dict of tensors, see the output specification of the model for the format
+ targets: list of dicts, such that len(targets) == batch_size.
+ The expected keys in each dict depends on the losses applied, see each loss' doc
+ """
+ outputs_without_aux = {k: v for k, v in outputs.items() if k != "aux_outputs"}
+
+ # Retrieve the matching between the outputs of the last layer and the targets
+ indices = self.matcher(outputs_without_aux, targets)
+
+ # Compute the average number of target boxes accross all nodes, for normalization purposes
+ num_masks = sum(len(t["labels"]) for t in targets)
+ num_masks = torch.as_tensor(
+ [num_masks], dtype=torch.float, device=next(iter(outputs.values())).device
+ )
+ if is_dist_avail_and_initialized():
+ torch.distributed.all_reduce(num_masks)
+ num_masks = torch.clamp(num_masks / get_world_size(), min=1).item()
+
+ # Compute all the requested losses
+ losses = {}
+ for loss in self.losses:
+ losses.update(self.get_loss(loss, outputs, targets, indices, num_masks))
+
+ # In case of auxiliary losses, we repeat this process with the output of each intermediate layer.
+ if "aux_outputs" in outputs:
+ for i, aux_outputs in enumerate(outputs["aux_outputs"]):
+ indices = self.matcher(aux_outputs, targets)
+ for loss in self.losses:
+ l_dict = self.get_loss(loss, aux_outputs, targets, indices, num_masks)
+ l_dict = {k + f"_{i}": v for k, v in l_dict.items()}
+ losses.update(l_dict)
+
+ return losses
+
+ def __repr__(self):
+ head = "Criterion " + self.__class__.__name__
+ body = [
+ "matcher: {}".format(self.matcher.__repr__(_repr_indent=8)),
+ "losses: {}".format(self.losses),
+ "weight_dict: {}".format(self.weight_dict),
+ "num_classes: {}".format(self.num_classes),
+ "eos_coef: {}".format(self.eos_coef),
+ "num_points: {}".format(self.num_points),
+ "oversample_ratio: {}".format(self.oversample_ratio),
+ "importance_sample_ratio: {}".format(self.importance_sample_ratio),
+ ]
+ _repr_indent = 4
+ lines = [head] + [" " * _repr_indent + line for line in body]
+ return "\n".join(lines)
diff --git a/videocutler/mask2former_video/modeling/matcher.py b/videocutler/mask2former_video/modeling/matcher.py
new file mode 100644
index 0000000000000000000000000000000000000000..a47091a71ac43649f9e60080565bb18122c0b413
--- /dev/null
+++ b/videocutler/mask2former_video/modeling/matcher.py
@@ -0,0 +1,193 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/facebookresearch/detr/blob/master/models/matcher.py
+"""
+Modules to compute the matching cost and solve the corresponding LSAP.
+"""
+import torch
+import torch.nn.functional as F
+from scipy.optimize import linear_sum_assignment
+from torch import nn
+from torch.cuda.amp import autocast
+
+from detectron2.projects.point_rend.point_features import point_sample
+
+
+def batch_dice_loss(inputs: torch.Tensor, targets: torch.Tensor):
+ """
+ Compute the DICE loss, similar to generalized IOU for masks
+ Args:
+ inputs: A float tensor of arbitrary shape.
+ The predictions for each example.
+ targets: A float tensor with the same shape as inputs. Stores the binary
+ classification label for each element in inputs
+ (0 for the negative class and 1 for the positive class).
+ """
+ inputs = inputs.sigmoid()
+ inputs = inputs.flatten(1)
+ numerator = 2 * torch.einsum("nc,mc->nm", inputs, targets)
+ denominator = inputs.sum(-1)[:, None] + targets.sum(-1)[None, :]
+ loss = 1 - (numerator + 1) / (denominator + 1)
+ return loss
+
+
+batch_dice_loss_jit = torch.jit.script(
+ batch_dice_loss
+) # type: torch.jit.ScriptModule
+
+
+def batch_sigmoid_ce_loss(inputs: torch.Tensor, targets: torch.Tensor):
+ """
+ Args:
+ inputs: A float tensor of arbitrary shape.
+ The predictions for each example.
+ targets: A float tensor with the same shape as inputs. Stores the binary
+ classification label for each element in inputs
+ (0 for the negative class and 1 for the positive class).
+ Returns:
+ Loss tensor
+ """
+ hw = inputs.shape[1]
+
+ pos = F.binary_cross_entropy_with_logits(
+ inputs, torch.ones_like(inputs), reduction="none"
+ )
+ neg = F.binary_cross_entropy_with_logits(
+ inputs, torch.zeros_like(inputs), reduction="none"
+ )
+
+ loss = torch.einsum("nc,mc->nm", pos, targets) + torch.einsum(
+ "nc,mc->nm", neg, (1 - targets)
+ )
+
+ return loss / hw
+
+
+batch_sigmoid_ce_loss_jit = torch.jit.script(
+ batch_sigmoid_ce_loss
+) # type: torch.jit.ScriptModule
+
+
+class VideoHungarianMatcher(nn.Module):
+ """This class computes an assignment between the targets and the predictions of the network
+
+ For efficiency reasons, the targets don't include the no_object. Because of this, in general,
+ there are more predictions than targets. In this case, we do a 1-to-1 matching of the best predictions,
+ while the others are un-matched (and thus treated as non-objects).
+ """
+
+ def __init__(self, cost_class: float = 1, cost_mask: float = 1, cost_dice: float = 1, num_points: int = 0):
+ """Creates the matcher
+
+ Params:
+ cost_class: This is the relative weight of the classification error in the matching cost
+ cost_mask: This is the relative weight of the focal loss of the binary mask in the matching cost
+ cost_dice: This is the relative weight of the dice loss of the binary mask in the matching cost
+ """
+ super().__init__()
+ self.cost_class = cost_class
+ self.cost_mask = cost_mask
+ self.cost_dice = cost_dice
+
+ assert cost_class != 0 or cost_mask != 0 or cost_dice != 0, "all costs cant be 0"
+
+ self.num_points = num_points
+
+ @torch.no_grad()
+ def memory_efficient_forward(self, outputs, targets):
+ """More memory-friendly matching"""
+ bs, num_queries = outputs["pred_logits"].shape[:2]
+
+ indices = []
+
+ # Iterate through batch size
+ for b in range(bs):
+
+ out_prob = outputs["pred_logits"][b].softmax(-1) # [num_queries, num_classes]
+ tgt_ids = targets[b]["labels"]
+
+ # Compute the classification cost. Contrary to the loss, we don't use the NLL,
+ # but approximate it in 1 - proba[target class].
+ # The 1 is a constant that doesn't change the matching, it can be ommitted.
+ cost_class = -out_prob[:, tgt_ids]
+
+ out_mask = outputs["pred_masks"][b] # [num_queries, T, H_pred, W_pred]
+ # gt masks are already padded when preparing target
+ tgt_mask = targets[b]["masks"].to(out_mask) # [num_gts, T, H_pred, W_pred]
+
+ # out_mask = out_mask[:, None]
+ # tgt_mask = tgt_mask[:, None]
+ # all masks share the same set of points for efficient matching!
+ point_coords = torch.rand(1, self.num_points, 2, device=out_mask.device)
+ # get gt labels
+ tgt_mask = point_sample(
+ tgt_mask,
+ point_coords.repeat(tgt_mask.shape[0], 1, 1),
+ align_corners=False,
+ ).flatten(1)
+
+ out_mask = point_sample(
+ out_mask,
+ point_coords.repeat(out_mask.shape[0], 1, 1),
+ align_corners=False,
+ ).flatten(1)
+
+ with autocast(enabled=False):
+ out_mask = out_mask.float()
+ tgt_mask = tgt_mask.float()
+ # Compute the focal loss between masks
+ if out_mask.shape[0] == 0 or tgt_mask.shape[0] == 0:
+ cost_mask = batch_sigmoid_ce_loss(out_mask, tgt_mask)
+ cost_dice = batch_dice_loss(out_mask, tgt_mask)
+ else:
+ cost_mask = batch_sigmoid_ce_loss_jit(out_mask, tgt_mask)
+
+ # Compute the dice loss betwen masks
+ cost_dice = batch_dice_loss_jit(out_mask, tgt_mask)
+
+ # Final cost matrix
+ C = (
+ self.cost_mask * cost_mask
+ + self.cost_class * cost_class
+ + self.cost_dice * cost_dice
+ )
+ C = C.reshape(num_queries, -1).cpu()
+
+ indices.append(linear_sum_assignment(C))
+
+ return [
+ (torch.as_tensor(i, dtype=torch.int64), torch.as_tensor(j, dtype=torch.int64))
+ for i, j in indices
+ ]
+
+ @torch.no_grad()
+ def forward(self, outputs, targets):
+ """Performs the matching
+
+ Params:
+ outputs: This is a dict that contains at least these entries:
+ "pred_logits": Tensor of dim [batch_size, num_queries, num_classes] with the classification logits
+ "pred_masks": Tensor of dim [batch_size, num_queries, H_pred, W_pred] with the predicted masks
+
+ targets: This is a list of targets (len(targets) = batch_size), where each target is a dict containing:
+ "labels": Tensor of dim [num_target_boxes] (where num_target_boxes is the number of ground-truth
+ objects in the target) containing the class labels
+ "masks": Tensor of dim [num_target_boxes, H_gt, W_gt] containing the target masks
+
+ Returns:
+ A list of size batch_size, containing tuples of (index_i, index_j) where:
+ - index_i is the indices of the selected predictions (in order)
+ - index_j is the indices of the corresponding selected targets (in order)
+ For each batch element, it holds:
+ len(index_i) = len(index_j) = min(num_queries, num_target_boxes)
+ """
+ return self.memory_efficient_forward(outputs, targets)
+
+ def __repr__(self, _repr_indent=4):
+ head = "Matcher " + self.__class__.__name__
+ body = [
+ "cost_class: {}".format(self.cost_class),
+ "cost_mask: {}".format(self.cost_mask),
+ "cost_dice: {}".format(self.cost_dice),
+ ]
+ lines = [head] + [" " * _repr_indent + line for line in body]
+ return "\n".join(lines)
diff --git a/videocutler/mask2former_video/modeling/transformer_decoder/__init__.py b/videocutler/mask2former_video/modeling/transformer_decoder/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..c1971bbb1e4216f43e28a511f166a31ba68b3fbd
--- /dev/null
+++ b/videocutler/mask2former_video/modeling/transformer_decoder/__init__.py
@@ -0,0 +1,2 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+from .video_mask2former_transformer_decoder import VideoMultiScaleMaskedTransformerDecoder
diff --git a/videocutler/mask2former_video/modeling/transformer_decoder/position_encoding.py b/videocutler/mask2former_video/modeling/transformer_decoder/position_encoding.py
new file mode 100644
index 0000000000000000000000000000000000000000..b0ebc769de4ed6a86069fcbc9b1e819d5f6b4bc8
--- /dev/null
+++ b/videocutler/mask2former_video/modeling/transformer_decoder/position_encoding.py
@@ -0,0 +1,57 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# # Modified by Bowen Cheng from: https://github.com/facebookresearch/detr/blob/master/models/position_encoding.py
+"""
+Various positional encodings for the transformer.
+"""
+import math
+
+import torch
+from torch import nn
+
+
+class PositionEmbeddingSine3D(nn.Module):
+ """
+ This is a more standard version of the position embedding, very similar to the one
+ used by the Attention is all you need paper, generalized to work on images.
+ """
+
+ def __init__(self, num_pos_feats=64, temperature=10000, normalize=False, scale=None):
+ super().__init__()
+ self.num_pos_feats = num_pos_feats
+ self.temperature = temperature
+ self.normalize = normalize
+ if scale is not None and normalize is False:
+ raise ValueError("normalize should be True if scale is passed")
+ if scale is None:
+ scale = 2 * math.pi
+ self.scale = scale
+
+ def forward(self, x, mask=None):
+ # b, t, c, h, w
+ assert x.dim() == 5, f"{x.shape} should be a 5-dimensional Tensor, got {x.dim()}-dimensional Tensor instead"
+ if mask is None:
+ mask = torch.zeros((x.size(0), x.size(1), x.size(3), x.size(4)), device=x.device, dtype=torch.bool)
+ not_mask = ~mask
+ z_embed = not_mask.cumsum(1, dtype=torch.float32)
+ y_embed = not_mask.cumsum(2, dtype=torch.float32)
+ x_embed = not_mask.cumsum(3, dtype=torch.float32)
+ if self.normalize:
+ eps = 1e-6
+ z_embed = z_embed / (z_embed[:, -1:, :, :] + eps) * self.scale
+ y_embed = y_embed / (y_embed[:, :, -1:, :] + eps) * self.scale
+ x_embed = x_embed / (x_embed[:, :, :, -1:] + eps) * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ dim_t_z = torch.arange((self.num_pos_feats * 2), dtype=torch.float32, device=x.device)
+ dim_t_z = self.temperature ** (2 * (dim_t_z // 2) / (self.num_pos_feats * 2))
+
+ pos_x = x_embed[:, :, :, :, None] / dim_t
+ pos_y = y_embed[:, :, :, :, None] / dim_t
+ pos_z = z_embed[:, :, :, :, None] / dim_t_z
+ pos_x = torch.stack((pos_x[:, :, :, :, 0::2].sin(), pos_x[:, :, :, :, 1::2].cos()), dim=5).flatten(4)
+ pos_y = torch.stack((pos_y[:, :, :, :, 0::2].sin(), pos_y[:, :, :, :, 1::2].cos()), dim=5).flatten(4)
+ pos_z = torch.stack((pos_z[:, :, :, :, 0::2].sin(), pos_z[:, :, :, :, 1::2].cos()), dim=5).flatten(4)
+ pos = (torch.cat((pos_y, pos_x), dim=4) + pos_z).permute(0, 1, 4, 2, 3) # b, t, c, h, w
+ return pos
diff --git a/videocutler/mask2former_video/modeling/transformer_decoder/video_mask2former_transformer_decoder.py b/videocutler/mask2former_video/modeling/transformer_decoder/video_mask2former_transformer_decoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..06d4e8511e99faa3b104b8588cba6163f548135e
--- /dev/null
+++ b/videocutler/mask2former_video/modeling/transformer_decoder/video_mask2former_transformer_decoder.py
@@ -0,0 +1,474 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from: https://github.com/facebookresearch/detr/blob/master/models/detr.py
+import logging
+import fvcore.nn.weight_init as weight_init
+from typing import Optional
+import torch
+from torch import nn, Tensor
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.layers import Conv2d
+
+from mask2former.modeling.transformer_decoder.maskformer_transformer_decoder import TRANSFORMER_DECODER_REGISTRY
+
+from .position_encoding import PositionEmbeddingSine3D
+
+
+class SelfAttentionLayer(nn.Module):
+
+ def __init__(self, d_model, nhead, dropout=0.0,
+ activation="relu", normalize_before=False):
+ super().__init__()
+ self.self_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
+
+ self.norm = nn.LayerNorm(d_model)
+ self.dropout = nn.Dropout(dropout)
+
+ self.activation = _get_activation_fn(activation)
+ self.normalize_before = normalize_before
+
+ self._reset_parameters()
+
+ def _reset_parameters(self):
+ for p in self.parameters():
+ if p.dim() > 1:
+ nn.init.xavier_uniform_(p)
+
+ def with_pos_embed(self, tensor, pos: Optional[Tensor]):
+ return tensor if pos is None else tensor + pos
+
+ def forward_post(self, tgt,
+ tgt_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ q = k = self.with_pos_embed(tgt, query_pos)
+ tgt2 = self.self_attn(q, k, value=tgt, attn_mask=tgt_mask,
+ key_padding_mask=tgt_key_padding_mask)[0]
+ tgt = tgt + self.dropout(tgt2)
+ tgt = self.norm(tgt)
+
+ return tgt
+
+ def forward_pre(self, tgt,
+ tgt_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ tgt2 = self.norm(tgt)
+ q = k = self.with_pos_embed(tgt2, query_pos)
+ tgt2 = self.self_attn(q, k, value=tgt2, attn_mask=tgt_mask,
+ key_padding_mask=tgt_key_padding_mask)[0]
+ tgt = tgt + self.dropout(tgt2)
+
+ return tgt
+
+ def forward(self, tgt,
+ tgt_mask: Optional[Tensor] = None,
+ tgt_key_padding_mask: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ if self.normalize_before:
+ return self.forward_pre(tgt, tgt_mask,
+ tgt_key_padding_mask, query_pos)
+ return self.forward_post(tgt, tgt_mask,
+ tgt_key_padding_mask, query_pos)
+
+
+class CrossAttentionLayer(nn.Module):
+
+ def __init__(self, d_model, nhead, dropout=0.0,
+ activation="relu", normalize_before=False):
+ super().__init__()
+ self.multihead_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
+
+ self.norm = nn.LayerNorm(d_model)
+ self.dropout = nn.Dropout(dropout)
+
+ self.activation = _get_activation_fn(activation)
+ self.normalize_before = normalize_before
+
+ self._reset_parameters()
+
+ def _reset_parameters(self):
+ for p in self.parameters():
+ if p.dim() > 1:
+ nn.init.xavier_uniform_(p)
+
+ def with_pos_embed(self, tensor, pos: Optional[Tensor]):
+ return tensor if pos is None else tensor + pos
+
+ def forward_post(self, tgt, memory,
+ memory_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ tgt2 = self.multihead_attn(query=self.with_pos_embed(tgt, query_pos),
+ key=self.with_pos_embed(memory, pos),
+ value=memory, attn_mask=memory_mask,
+ key_padding_mask=memory_key_padding_mask)[0]
+ tgt = tgt + self.dropout(tgt2)
+ tgt = self.norm(tgt)
+
+ return tgt
+
+ def forward_pre(self, tgt, memory,
+ memory_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ tgt2 = self.norm(tgt)
+ tgt2 = self.multihead_attn(query=self.with_pos_embed(tgt2, query_pos),
+ key=self.with_pos_embed(memory, pos),
+ value=memory, attn_mask=memory_mask,
+ key_padding_mask=memory_key_padding_mask)[0]
+ tgt = tgt + self.dropout(tgt2)
+
+ return tgt
+
+ def forward(self, tgt, memory,
+ memory_mask: Optional[Tensor] = None,
+ memory_key_padding_mask: Optional[Tensor] = None,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None):
+ if self.normalize_before:
+ return self.forward_pre(tgt, memory, memory_mask,
+ memory_key_padding_mask, pos, query_pos)
+ return self.forward_post(tgt, memory, memory_mask,
+ memory_key_padding_mask, pos, query_pos)
+
+
+class FFNLayer(nn.Module):
+
+ def __init__(self, d_model, dim_feedforward=2048, dropout=0.0,
+ activation="relu", normalize_before=False):
+ super().__init__()
+ # Implementation of Feedforward model
+ self.linear1 = nn.Linear(d_model, dim_feedforward)
+ self.dropout = nn.Dropout(dropout)
+ self.linear2 = nn.Linear(dim_feedforward, d_model)
+
+ self.norm = nn.LayerNorm(d_model)
+
+ self.activation = _get_activation_fn(activation)
+ self.normalize_before = normalize_before
+
+ self._reset_parameters()
+
+ def _reset_parameters(self):
+ for p in self.parameters():
+ if p.dim() > 1:
+ nn.init.xavier_uniform_(p)
+
+ def with_pos_embed(self, tensor, pos: Optional[Tensor]):
+ return tensor if pos is None else tensor + pos
+
+ def forward_post(self, tgt):
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt))))
+ tgt = tgt + self.dropout(tgt2)
+ tgt = self.norm(tgt)
+ return tgt
+
+ def forward_pre(self, tgt):
+ tgt2 = self.norm(tgt)
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt2))))
+ tgt = tgt + self.dropout(tgt2)
+ return tgt
+
+ def forward(self, tgt):
+ if self.normalize_before:
+ return self.forward_pre(tgt)
+ return self.forward_post(tgt)
+
+
+def _get_activation_fn(activation):
+ """Return an activation function given a string"""
+ if activation == "relu":
+ return F.relu
+ if activation == "gelu":
+ return F.gelu
+ if activation == "glu":
+ return F.glu
+ raise RuntimeError(F"activation should be relu/gelu, not {activation}.")
+
+
+class MLP(nn.Module):
+ """ Very simple multi-layer perceptron (also called FFN)"""
+
+ def __init__(self, input_dim, hidden_dim, output_dim, num_layers):
+ super().__init__()
+ self.num_layers = num_layers
+ h = [hidden_dim] * (num_layers - 1)
+ self.layers = nn.ModuleList(nn.Linear(n, k) for n, k in zip([input_dim] + h, h + [output_dim]))
+
+ def forward(self, x):
+ for i, layer in enumerate(self.layers):
+ x = F.relu(layer(x)) if i < self.num_layers - 1 else layer(x)
+ return x
+
+
+@TRANSFORMER_DECODER_REGISTRY.register()
+class VideoMultiScaleMaskedTransformerDecoder(nn.Module):
+
+ _version = 2
+
+ def _load_from_state_dict(
+ self, state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, error_msgs
+ ):
+ version = local_metadata.get("version", None)
+ if version is None or version < 2:
+ # Do not warn if train from scratch
+ scratch = True
+ logger = logging.getLogger(__name__)
+ for k in list(state_dict.keys()):
+ newk = k
+ if "static_query" in k:
+ newk = k.replace("static_query", "query_feat")
+ if newk != k:
+ state_dict[newk] = state_dict[k]
+ del state_dict[k]
+ scratch = False
+
+ if not scratch:
+ logger.warning(
+ f"Weight format of {self.__class__.__name__} have changed! "
+ "Please upgrade your models. Applying automatic conversion now ..."
+ )
+
+ @configurable
+ def __init__(
+ self,
+ in_channels,
+ mask_classification=True,
+ *,
+ num_classes: int,
+ hidden_dim: int,
+ num_queries: int,
+ nheads: int,
+ dim_feedforward: int,
+ dec_layers: int,
+ pre_norm: bool,
+ mask_dim: int,
+ enforce_input_project: bool,
+ # video related
+ num_frames,
+ ):
+ """
+ NOTE: this interface is experimental.
+ Args:
+ in_channels: channels of the input features
+ mask_classification: whether to add mask classifier or not
+ num_classes: number of classes
+ hidden_dim: Transformer feature dimension
+ num_queries: number of queries
+ nheads: number of heads
+ dim_feedforward: feature dimension in feedforward network
+ enc_layers: number of Transformer encoder layers
+ dec_layers: number of Transformer decoder layers
+ pre_norm: whether to use pre-LayerNorm or not
+ mask_dim: mask feature dimension
+ enforce_input_project: add input project 1x1 conv even if input
+ channels and hidden dim is identical
+ """
+ super().__init__()
+
+ assert mask_classification, "Only support mask classification model"
+ self.mask_classification = mask_classification
+
+ self.num_frames = num_frames
+
+ # positional encoding
+ N_steps = hidden_dim // 2
+ self.pe_layer = PositionEmbeddingSine3D(N_steps, normalize=True)
+
+ # define Transformer decoder here
+ self.num_heads = nheads
+ self.num_layers = dec_layers
+ self.transformer_self_attention_layers = nn.ModuleList()
+ self.transformer_cross_attention_layers = nn.ModuleList()
+ self.transformer_ffn_layers = nn.ModuleList()
+
+ for _ in range(self.num_layers):
+ self.transformer_self_attention_layers.append(
+ SelfAttentionLayer(
+ d_model=hidden_dim,
+ nhead=nheads,
+ dropout=0.0,
+ normalize_before=pre_norm,
+ )
+ )
+
+ self.transformer_cross_attention_layers.append(
+ CrossAttentionLayer(
+ d_model=hidden_dim,
+ nhead=nheads,
+ dropout=0.0,
+ normalize_before=pre_norm,
+ )
+ )
+
+ self.transformer_ffn_layers.append(
+ FFNLayer(
+ d_model=hidden_dim,
+ dim_feedforward=dim_feedforward,
+ dropout=0.0,
+ normalize_before=pre_norm,
+ )
+ )
+
+ self.decoder_norm = nn.LayerNorm(hidden_dim)
+
+ self.num_queries = num_queries
+ # learnable query features
+ self.query_feat = nn.Embedding(num_queries, hidden_dim)
+ # learnable query p.e.
+ self.query_embed = nn.Embedding(num_queries, hidden_dim)
+
+ # level embedding (we always use 3 scales)
+ self.num_feature_levels = 3
+ self.level_embed = nn.Embedding(self.num_feature_levels, hidden_dim)
+ self.input_proj = nn.ModuleList()
+ for _ in range(self.num_feature_levels):
+ if in_channels != hidden_dim or enforce_input_project:
+ self.input_proj.append(Conv2d(in_channels, hidden_dim, kernel_size=1))
+ weight_init.c2_xavier_fill(self.input_proj[-1])
+ else:
+ self.input_proj.append(nn.Sequential())
+
+ # output FFNs
+ if self.mask_classification:
+ self.class_embed = nn.Linear(hidden_dim, num_classes + 1)
+ self.mask_embed = MLP(hidden_dim, hidden_dim, mask_dim, 3)
+
+ @classmethod
+ def from_config(cls, cfg, in_channels, mask_classification):
+ ret = {}
+ ret["in_channels"] = in_channels
+ ret["mask_classification"] = mask_classification
+
+ ret["num_classes"] = cfg.MODEL.SEM_SEG_HEAD.NUM_CLASSES
+ ret["hidden_dim"] = cfg.MODEL.MASK_FORMER.HIDDEN_DIM
+ ret["num_queries"] = cfg.MODEL.MASK_FORMER.NUM_OBJECT_QUERIES
+ # Transformer parameters:
+ ret["nheads"] = cfg.MODEL.MASK_FORMER.NHEADS
+ ret["dim_feedforward"] = cfg.MODEL.MASK_FORMER.DIM_FEEDFORWARD
+
+ # NOTE: because we add learnable query features which requires supervision,
+ # we add minus 1 to decoder layers to be consistent with our loss
+ # implementation: that is, number of auxiliary losses is always
+ # equal to number of decoder layers. With learnable query features, the number of
+ # auxiliary losses equals number of decoders plus 1.
+ assert cfg.MODEL.MASK_FORMER.DEC_LAYERS >= 1
+ ret["dec_layers"] = cfg.MODEL.MASK_FORMER.DEC_LAYERS - 1
+ ret["pre_norm"] = cfg.MODEL.MASK_FORMER.PRE_NORM
+ ret["enforce_input_project"] = cfg.MODEL.MASK_FORMER.ENFORCE_INPUT_PROJ
+
+ ret["mask_dim"] = cfg.MODEL.SEM_SEG_HEAD.MASK_DIM
+
+ ret["num_frames"] = cfg.INPUT.SAMPLING_FRAME_NUM
+
+ return ret
+
+ def forward(self, x, mask_features, mask = None):
+ bt, c_m, h_m, w_m = mask_features.shape
+ bs = bt // self.num_frames if self.training else 1
+ t = bt // bs
+ mask_features = mask_features.view(bs, t, c_m, h_m, w_m)
+
+ # x is a list of multi-scale feature
+ assert len(x) == self.num_feature_levels
+ src = []
+ pos = []
+ size_list = []
+
+ # disable mask, it does not affect performance
+ del mask
+
+ for i in range(self.num_feature_levels):
+ size_list.append(x[i].shape[-2:])
+ pos.append(self.pe_layer(x[i].view(bs, t, -1, size_list[-1][0], size_list[-1][1]), None).flatten(3))
+ src.append(self.input_proj[i](x[i]).flatten(2) + self.level_embed.weight[i][None, :, None])
+
+ # NTxCxHW => NxTxCxHW => (TxHW)xNxC
+ _, c, hw = src[-1].shape
+ pos[-1] = pos[-1].view(bs, t, c, hw).permute(1, 3, 0, 2).flatten(0, 1)
+ src[-1] = src[-1].view(bs, t, c, hw).permute(1, 3, 0, 2).flatten(0, 1)
+
+ # QxNxC
+ query_embed = self.query_embed.weight.unsqueeze(1).repeat(1, bs, 1)
+ output = self.query_feat.weight.unsqueeze(1).repeat(1, bs, 1)
+
+ predictions_class = []
+ predictions_mask = []
+
+ # prediction heads on learnable query features
+ outputs_class, outputs_mask, attn_mask = self.forward_prediction_heads(output, mask_features, attn_mask_target_size=size_list[0])
+ predictions_class.append(outputs_class)
+ predictions_mask.append(outputs_mask)
+
+ for i in range(self.num_layers):
+ level_index = i % self.num_feature_levels
+ attn_mask[torch.where(attn_mask.sum(-1) == attn_mask.shape[-1])] = False
+ # attention: cross-attention first
+ output = self.transformer_cross_attention_layers[i](
+ output, src[level_index],
+ memory_mask=attn_mask,
+ memory_key_padding_mask=None, # here we do not apply masking on padded region
+ pos=pos[level_index], query_pos=query_embed
+ )
+
+ output = self.transformer_self_attention_layers[i](
+ output, tgt_mask=None,
+ tgt_key_padding_mask=None,
+ query_pos=query_embed
+ )
+
+ # FFN
+ output = self.transformer_ffn_layers[i](
+ output
+ )
+
+ outputs_class, outputs_mask, attn_mask = self.forward_prediction_heads(output, mask_features, attn_mask_target_size=size_list[(i + 1) % self.num_feature_levels])
+ predictions_class.append(outputs_class)
+ predictions_mask.append(outputs_mask)
+
+ assert len(predictions_class) == self.num_layers + 1
+
+ out = {
+ 'pred_logits': predictions_class[-1],
+ 'pred_masks': predictions_mask[-1],
+ 'aux_outputs': self._set_aux_loss(
+ predictions_class if self.mask_classification else None, predictions_mask
+ )
+ }
+ return out
+
+ def forward_prediction_heads(self, output, mask_features, attn_mask_target_size):
+ decoder_output = self.decoder_norm(output)
+ decoder_output = decoder_output.transpose(0, 1)
+ outputs_class = self.class_embed(decoder_output)
+ mask_embed = self.mask_embed(decoder_output)
+ outputs_mask = torch.einsum("bqc,btchw->bqthw", mask_embed, mask_features)
+ b, q, t, _, _ = outputs_mask.shape
+
+ # NOTE: prediction is of higher-resolution
+ # [B, Q, T, H, W] -> [B, Q, T*H*W] -> [B, h, Q, T*H*W] -> [B*h, Q, T*HW]
+ attn_mask = F.interpolate(outputs_mask.flatten(0, 1), size=attn_mask_target_size, mode="bilinear", align_corners=False).view(
+ b, q, t, attn_mask_target_size[0], attn_mask_target_size[1])
+ # must use bool type
+ # If a BoolTensor is provided, positions with ``True`` are not allowed to attend while ``False`` values will be unchanged.
+ attn_mask = (attn_mask.sigmoid().flatten(2).unsqueeze(1).repeat(1, self.num_heads, 1, 1).flatten(0, 1) < 0.5).bool()
+ attn_mask = attn_mask.detach()
+
+ return outputs_class, outputs_mask, attn_mask
+
+ @torch.jit.unused
+ def _set_aux_loss(self, outputs_class, outputs_seg_masks):
+ # this is a workaround to make torchscript happy, as torchscript
+ # doesn't support dictionary with non-homogeneous values, such
+ # as a dict having both a Tensor and a list.
+ if self.mask_classification:
+ return [
+ {"pred_logits": a, "pred_masks": b}
+ for a, b in zip(outputs_class[:-1], outputs_seg_masks[:-1])
+ ]
+ else:
+ return [{"pred_masks": b} for b in outputs_seg_masks[:-1]]
diff --git a/videocutler/mask2former_video/utils/__init__.py b/videocutler/mask2former_video/utils/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9020c2df23e2af280b7bb168b996ae9eaf312eb8
--- /dev/null
+++ b/videocutler/mask2former_video/utils/__init__.py
@@ -0,0 +1 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/videocutler/mask2former_video/utils/memory.py b/videocutler/mask2former_video/utils/memory.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ee5f15d279f85f1738f16e1a5a613d79e26f89a
--- /dev/null
+++ b/videocutler/mask2former_video/utils/memory.py
@@ -0,0 +1,80 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+
+import logging
+from contextlib import contextmanager
+from functools import wraps
+import torch
+from torch.cuda.amp import autocast
+
+__all__ = ["retry_if_cuda_oom"]
+
+
+@contextmanager
+def _ignore_torch_cuda_oom():
+ """
+ A context which ignores CUDA OOM exception from pytorch.
+ """
+ try:
+ yield
+ except RuntimeError as e:
+ # NOTE: the string may change?
+ if "CUDA out of memory. " in str(e):
+ pass
+ else:
+ raise
+
+
+def retry_if_cuda_oom(func):
+ """
+ Makes a function retry itself after encountering
+ pytorch's CUDA OOM error.
+ It will first retry after calling `torch.cuda.empty_cache()`.
+ If that still fails, it will then retry by trying to convert inputs to CPUs.
+ In this case, it expects the function to dispatch to CPU implementation.
+ The return values may become CPU tensors as well and it's user's
+ responsibility to convert it back to CUDA tensor if needed.
+ Args:
+ func: a stateless callable that takes tensor-like objects as arguments
+ Returns:
+ a callable which retries `func` if OOM is encountered.
+ Examples:
+ ::
+ output = retry_if_cuda_oom(some_torch_function)(input1, input2)
+ # output may be on CPU even if inputs are on GPU
+ Note:
+ 1. When converting inputs to CPU, it will only look at each argument and check
+ if it has `.device` and `.to` for conversion. Nested structures of tensors
+ are not supported.
+ 2. Since the function might be called more than once, it has to be
+ stateless.
+ """
+
+ def maybe_to_cpu(x):
+ try:
+ like_gpu_tensor = x.device.type == "cuda" and hasattr(x, "to")
+ except AttributeError:
+ like_gpu_tensor = False
+ if like_gpu_tensor:
+ return x.to(device="cpu").to(torch.float32)
+ else:
+ return x
+
+ @wraps(func)
+ def wrapped(*args, **kwargs):
+ with _ignore_torch_cuda_oom():
+ return func(*args, **kwargs)
+
+ # Clear cache and retry
+ torch.cuda.empty_cache()
+ with _ignore_torch_cuda_oom():
+ return func(*args, **kwargs)
+
+ # Try on CPU. This slows down the code significantly, therefore print a notice.
+ logger = logging.getLogger(__name__)
+ logger.info("Attempting to copy inputs to CPU due to CUDA OOM")
+ new_args = (maybe_to_cpu(x) for x in args)
+ new_kwargs = {k: maybe_to_cpu(v) for k, v in kwargs.items()}
+ with autocast(enabled=False):
+ return func(*new_args, **new_kwargs)
+
+ return wrapped
diff --git a/videocutler/mask2former_video/video_maskformer_model.py b/videocutler/mask2former_video/video_maskformer_model.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e10fccedcaf434195e0e974642d087e2790870d
--- /dev/null
+++ b/videocutler/mask2former_video/video_maskformer_model.py
@@ -0,0 +1,288 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+import logging
+import math
+from typing import Tuple
+
+import torch
+from torch import nn
+from torch.nn import functional as F
+
+from detectron2.config import configurable
+from detectron2.data import MetadataCatalog
+from detectron2.modeling import META_ARCH_REGISTRY, build_backbone, build_sem_seg_head
+from detectron2.modeling.backbone import Backbone
+from detectron2.modeling.postprocessing import sem_seg_postprocess
+from detectron2.structures import Boxes, ImageList, Instances, BitMasks
+
+from .modeling.criterion import VideoSetCriterion
+from .modeling.matcher import VideoHungarianMatcher
+from .utils.memory import retry_if_cuda_oom
+
+logger = logging.getLogger(__name__)
+
+
+@META_ARCH_REGISTRY.register()
+class VideoMaskFormer(nn.Module):
+ """
+ Main class for mask classification semantic segmentation architectures.
+ """
+
+ @configurable
+ def __init__(
+ self,
+ *,
+ backbone: Backbone,
+ sem_seg_head: nn.Module,
+ criterion: nn.Module,
+ num_queries: int,
+ object_mask_threshold: float,
+ overlap_threshold: float,
+ metadata,
+ size_divisibility: int,
+ sem_seg_postprocess_before_inference: bool,
+ pixel_mean: Tuple[float],
+ pixel_std: Tuple[float],
+ # video
+ num_frames,
+ ):
+ """
+ Args:
+ backbone: a backbone module, must follow detectron2's backbone interface
+ sem_seg_head: a module that predicts semantic segmentation from backbone features
+ criterion: a module that defines the loss
+ num_queries: int, number of queries
+ object_mask_threshold: float, threshold to filter query based on classification score
+ for panoptic segmentation inference
+ overlap_threshold: overlap threshold used in general inference for panoptic segmentation
+ metadata: dataset meta, get `thing` and `stuff` category names for panoptic
+ segmentation inference
+ size_divisibility: Some backbones require the input height and width to be divisible by a
+ specific integer. We can use this to override such requirement.
+ sem_seg_postprocess_before_inference: whether to resize the prediction back
+ to original input size before semantic segmentation inference or after.
+ For high-resolution dataset like Mapillary, resizing predictions before
+ inference will cause OOM error.
+ pixel_mean, pixel_std: list or tuple with #channels element, representing
+ the per-channel mean and std to be used to normalize the input image
+ semantic_on: bool, whether to output semantic segmentation prediction
+ instance_on: bool, whether to output instance segmentation prediction
+ panoptic_on: bool, whether to output panoptic segmentation prediction
+ test_topk_per_image: int, instance segmentation parameter, keep topk instances per image
+ """
+ super().__init__()
+ self.backbone = backbone
+ self.sem_seg_head = sem_seg_head
+ self.criterion = criterion
+ self.num_queries = num_queries
+ self.overlap_threshold = overlap_threshold
+ self.object_mask_threshold = object_mask_threshold
+ self.metadata = metadata
+ if size_divisibility < 0:
+ # use backbone size_divisibility if not set
+ size_divisibility = self.backbone.size_divisibility
+ self.size_divisibility = size_divisibility
+ self.sem_seg_postprocess_before_inference = sem_seg_postprocess_before_inference
+ self.register_buffer("pixel_mean", torch.Tensor(pixel_mean).view(-1, 1, 1), False)
+ self.register_buffer("pixel_std", torch.Tensor(pixel_std).view(-1, 1, 1), False)
+
+ self.num_frames = num_frames
+
+ @classmethod
+ def from_config(cls, cfg):
+ backbone = build_backbone(cfg)
+ sem_seg_head = build_sem_seg_head(cfg, backbone.output_shape())
+
+ # Loss parameters:
+ deep_supervision = cfg.MODEL.MASK_FORMER.DEEP_SUPERVISION
+ no_object_weight = cfg.MODEL.MASK_FORMER.NO_OBJECT_WEIGHT
+
+ # loss weights
+ class_weight = cfg.MODEL.MASK_FORMER.CLASS_WEIGHT
+ dice_weight = cfg.MODEL.MASK_FORMER.DICE_WEIGHT
+ mask_weight = cfg.MODEL.MASK_FORMER.MASK_WEIGHT
+
+ # building criterion
+ matcher = VideoHungarianMatcher(
+ cost_class=class_weight,
+ cost_mask=mask_weight,
+ cost_dice=dice_weight,
+ num_points=cfg.MODEL.MASK_FORMER.TRAIN_NUM_POINTS,
+ )
+
+ weight_dict = {"loss_ce": class_weight, "loss_mask": mask_weight, "loss_dice": dice_weight}
+
+ if deep_supervision:
+ dec_layers = cfg.MODEL.MASK_FORMER.DEC_LAYERS
+ aux_weight_dict = {}
+ for i in range(dec_layers - 1):
+ aux_weight_dict.update({k + f"_{i}": v for k, v in weight_dict.items()})
+ weight_dict.update(aux_weight_dict)
+
+ losses = ["labels", "masks"]
+
+ criterion = VideoSetCriterion(
+ sem_seg_head.num_classes,
+ matcher=matcher,
+ weight_dict=weight_dict,
+ eos_coef=no_object_weight,
+ losses=losses,
+ num_points=cfg.MODEL.MASK_FORMER.TRAIN_NUM_POINTS,
+ oversample_ratio=cfg.MODEL.MASK_FORMER.OVERSAMPLE_RATIO,
+ importance_sample_ratio=cfg.MODEL.MASK_FORMER.IMPORTANCE_SAMPLE_RATIO,
+ )
+
+ return {
+ "backbone": backbone,
+ "sem_seg_head": sem_seg_head,
+ "criterion": criterion,
+ "num_queries": cfg.MODEL.MASK_FORMER.NUM_OBJECT_QUERIES,
+ "object_mask_threshold": cfg.MODEL.MASK_FORMER.TEST.OBJECT_MASK_THRESHOLD,
+ "overlap_threshold": cfg.MODEL.MASK_FORMER.TEST.OVERLAP_THRESHOLD,
+ "metadata": MetadataCatalog.get(cfg.DATASETS.TRAIN[0]),
+ "size_divisibility": cfg.MODEL.MASK_FORMER.SIZE_DIVISIBILITY,
+ "sem_seg_postprocess_before_inference": True,
+ "pixel_mean": cfg.MODEL.PIXEL_MEAN,
+ "pixel_std": cfg.MODEL.PIXEL_STD,
+ # video
+ "num_frames": cfg.INPUT.SAMPLING_FRAME_NUM,
+ }
+
+ @property
+ def device(self):
+ return self.pixel_mean.device
+
+ def forward(self, batched_inputs):
+ """
+ Args:
+ batched_inputs: a list, batched outputs of :class:`DatasetMapper`.
+ Each item in the list contains the inputs for one image.
+ For now, each item in the list is a dict that contains:
+ * "image": Tensor, image in (C, H, W) format.
+ * "instances": per-region ground truth
+ * Other information that's included in the original dicts, such as:
+ "height", "width" (int): the output resolution of the model (may be different
+ from input resolution), used in inference.
+ Returns:
+ list[dict]:
+ each dict has the results for one image. The dict contains the following keys:
+
+ * "sem_seg":
+ A Tensor that represents the
+ per-pixel segmentation prediced by the head.
+ The prediction has shape KxHxW that represents the logits of
+ each class for each pixel.
+ * "panoptic_seg":
+ A tuple that represent panoptic output
+ panoptic_seg (Tensor): of shape (height, width) where the values are ids for each segment.
+ segments_info (list[dict]): Describe each segment in `panoptic_seg`.
+ Each dict contains keys "id", "category_id", "isthing".
+ """
+ images = []
+ for video in batched_inputs:
+ for frame in video["image"]:
+ images.append(frame.to(self.device))
+ images = [(x - self.pixel_mean) / self.pixel_std for x in images]
+ images = ImageList.from_tensors(images, self.size_divisibility)
+
+ features = self.backbone(images.tensor)
+ outputs = self.sem_seg_head(features)
+
+ if self.training:
+ # mask classification target
+ targets = self.prepare_targets(batched_inputs, images)
+
+ # bipartite matching-based loss
+ losses = self.criterion(outputs, targets)
+
+ for k in list(losses.keys()):
+ if k in self.criterion.weight_dict:
+ losses[k] *= self.criterion.weight_dict[k]
+ else:
+ # remove this loss if not specified in `weight_dict`
+ losses.pop(k)
+ return losses
+ else:
+ mask_cls_results = outputs["pred_logits"]
+ mask_pred_results = outputs["pred_masks"]
+
+ mask_cls_result = mask_cls_results[0]
+ # upsample masks
+ mask_pred_result = retry_if_cuda_oom(F.interpolate)(
+ mask_pred_results[0],
+ size=(images.tensor.shape[-2], images.tensor.shape[-1]),
+ mode="bilinear",
+ align_corners=False,
+ )
+
+ del outputs
+
+ input_per_image = batched_inputs[0]
+ image_size = images.image_sizes[0] # image size without padding after data augmentation
+
+ height = input_per_image.get("height", image_size[0]) # raw image size before data augmentation
+ width = input_per_image.get("width", image_size[1])
+
+ return retry_if_cuda_oom(self.inference_video)(mask_cls_result, mask_pred_result, image_size, height, width)
+
+ def prepare_targets(self, targets, images):
+ h_pad, w_pad = images.tensor.shape[-2:]
+ gt_instances = []
+ for i, targets_per_video in enumerate(targets):
+ _num_instance = len(targets_per_video["instances"][0])
+ mask_shape = [_num_instance, self.num_frames, h_pad, w_pad]
+ gt_masks_per_video = torch.zeros(mask_shape, dtype=torch.bool, device=self.device)
+
+ gt_ids_per_video = []
+ for f_i, targets_per_frame in enumerate(targets_per_video["instances"]):
+ targets_per_frame = targets_per_frame.to(self.device)
+ h, w = targets_per_frame.image_size
+
+ gt_ids_per_video.append(targets_per_frame.gt_ids[:, None])
+ gt_masks_per_video[:, f_i, :h, :w] = targets_per_frame.gt_masks.tensor
+
+ gt_ids_per_video = torch.cat(gt_ids_per_video, dim=1)
+ valid_idx = (gt_ids_per_video != -1).any(dim=-1)
+
+ gt_classes_per_video = targets_per_frame.gt_classes[valid_idx] # N,
+ gt_ids_per_video = gt_ids_per_video[valid_idx] # N, num_frames
+
+ gt_instances.append({"labels": gt_classes_per_video, "ids": gt_ids_per_video})
+ gt_masks_per_video = gt_masks_per_video[valid_idx].float() # N, num_frames, H, W
+ gt_instances[-1].update({"masks": gt_masks_per_video})
+
+ return gt_instances
+
+ def inference_video(self, pred_cls, pred_masks, img_size, output_height, output_width):
+ if len(pred_cls) > 0:
+ scores = F.softmax(pred_cls, dim=-1)[:, :-1]
+ labels = torch.arange(self.sem_seg_head.num_classes, device=self.device).unsqueeze(0).repeat(self.num_queries, 1).flatten(0, 1)
+ # keep top-10 predictions
+ # TODO: make it configurable
+ scores_per_image, topk_indices = scores.flatten(0, 1).topk(10, sorted=False)
+ labels_per_image = labels[topk_indices]
+ topk_indices = topk_indices // self.sem_seg_head.num_classes
+ pred_masks = pred_masks[topk_indices]
+
+ pred_masks = pred_masks[:, :, : img_size[0], : img_size[1]]
+ pred_masks = F.interpolate(
+ pred_masks, size=(output_height, output_width), mode="bilinear", align_corners=False
+ )
+
+ masks = pred_masks > 0.
+
+ out_scores = scores_per_image.tolist()
+ out_labels = labels_per_image.tolist()
+ out_masks = [m for m in masks.cpu()]
+ else:
+ out_scores = []
+ out_labels = []
+ out_masks = []
+
+ video_output = {
+ "image_size": (output_height, output_width),
+ "pred_scores": out_scores,
+ "pred_labels": out_labels,
+ "pred_masks": out_masks,
+ }
+
+ return video_output
diff --git a/videocutler/predict.py b/videocutler/predict.py
new file mode 100644
index 0000000000000000000000000000000000000000..453479c2429b65aa37bb8f8cdad70101ea7f6988
--- /dev/null
+++ b/videocutler/predict.py
@@ -0,0 +1,54 @@
+import sys
+sys.path.insert(0, "Mask2Former")
+import tempfile
+from pathlib import Path
+import numpy as np
+import cv2
+import cog
+
+# import some common detectron2 utilities
+from detectron2.config import CfgNode as CN
+from detectron2.engine import DefaultPredictor
+from detectron2.config import get_cfg
+from detectron2.utils.visualizer import Visualizer, ColorMode
+from detectron2.data import MetadataCatalog
+from detectron2.projects.deeplab import add_deeplab_config
+
+# import Mask2Former project
+from mask2former import add_maskformer2_config
+
+
+class Predictor(cog.Predictor):
+ def setup(self):
+ cfg = get_cfg()
+ add_deeplab_config(cfg)
+ add_maskformer2_config(cfg)
+ cfg.merge_from_file("Mask2Former/configs/coco/panoptic-segmentation/swin/maskformer2_swin_large_IN21k_384_bs16_100ep.yaml")
+ cfg.MODEL.WEIGHTS = 'model_final_f07440.pkl'
+ cfg.MODEL.MASK_FORMER.TEST.SEMANTIC_ON = True
+ cfg.MODEL.MASK_FORMER.TEST.INSTANCE_ON = True
+ cfg.MODEL.MASK_FORMER.TEST.PANOPTIC_ON = True
+ self.predictor = DefaultPredictor(cfg)
+ self.coco_metadata = MetadataCatalog.get("coco_2017_val_panoptic")
+
+
+ @cog.input(
+ "image",
+ type=Path,
+ help="Input image for segmentation. Output will be the concatenation of Panoptic segmentation (top), "
+ "instance segmentation (middle), and semantic segmentation (bottom).",
+ )
+ def predict(self, image):
+ im = cv2.imread(str(image))
+ outputs = self.predictor(im)
+ v = Visualizer(im[:, :, ::-1], self.coco_metadata, scale=1.2, instance_mode=ColorMode.IMAGE_BW)
+ panoptic_result = v.draw_panoptic_seg(outputs["panoptic_seg"][0].to("cpu"),
+ outputs["panoptic_seg"][1]).get_image()
+ v = Visualizer(im[:, :, ::-1], self.coco_metadata, scale=1.2, instance_mode=ColorMode.IMAGE_BW)
+ instance_result = v.draw_instance_predictions(outputs["instances"].to("cpu")).get_image()
+ v = Visualizer(im[:, :, ::-1], self.coco_metadata, scale=1.2, instance_mode=ColorMode.IMAGE_BW)
+ semantic_result = v.draw_sem_seg(outputs["sem_seg"].argmax(0).to("cpu")).get_image()
+ result = np.concatenate((panoptic_result, instance_result, semantic_result), axis=0)[:, :, ::-1]
+ out_path = Path(tempfile.mkdtemp()) / "out.png"
+ cv2.imwrite(str(out_path), result)
+ return out_path
diff --git a/videocutler/requirements.txt b/videocutler/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cceed66a846f6afe22cdd69d86c17b231e5d8b72
--- /dev/null
+++ b/videocutler/requirements.txt
@@ -0,0 +1,7 @@
+cython
+scipy
+shapely
+timm
+h5py
+submitit
+scikit-image
diff --git a/videocutler/single-node-video_run.sh b/videocutler/single-node-video_run.sh
new file mode 100644
index 0000000000000000000000000000000000000000..e2656d2dcf878067f956f439d11f4ffbccaf37ce
--- /dev/null
+++ b/videocutler/single-node-video_run.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+MASTER_NODE=$(scontrol show hostname "$SLURM_NODELIST" | head -n1)
+DIST_URL="tcp://$MASTER_NODE:12392"
+SOCKET_NAME=$(ip r | grep default | awk '{print $5}')
+export GLOO_SOCKET_IFNAME=ens32
+
+python -u train_net_video.py --num-gpus 8 --num-machines 1 --machine-rank "$SLURM_NODEID" --dist-url "$DIST_URL" "$@"
diff --git a/videocutler/tools/README.md b/videocutler/tools/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..309f767b8f3ae10208107e72032f64d18f429a8c
--- /dev/null
+++ b/videocutler/tools/README.md
@@ -0,0 +1,79 @@
+This directory contains few tools for MaskFormer.
+
+* `convert-torchvision-to-d2.py`
+
+Tool to convert torchvision pre-trained weights for D2.
+
+```
+wget https://download.pytorch.org/models/resnet101-63fe2227.pth
+python tools/convert-torchvision-to-d2.py resnet101-63fe2227.pth R-101.pkl
+```
+
+* `convert-pretrained-swin-model-to-d2.py`
+
+Tool to convert Swin Transformer pre-trained weights for D2.
+
+```
+pip install timm
+
+wget https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_tiny_patch4_window7_224.pth
+python tools/convert-pretrained-swin-model-to-d2.py swin_tiny_patch4_window7_224.pth swin_tiny_patch4_window7_224.pkl
+
+wget https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_small_patch4_window7_224.pth
+python tools/convert-pretrained-swin-model-to-d2.py swin_small_patch4_window7_224.pth swin_small_patch4_window7_224.pkl
+
+wget https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window12_384_22k.pth
+python tools/convert-pretrained-swin-model-to-d2.py swin_base_patch4_window12_384_22k.pth swin_base_patch4_window12_384_22k.pkl
+
+wget https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_large_patch4_window12_384_22k.pth
+python tools/convert-pretrained-swin-model-to-d2.py swin_large_patch4_window12_384_22k.pth swin_large_patch4_window12_384_22k.pkl
+```
+
+* `evaluate_pq_for_semantic_segmentation.py`
+
+Tool to evaluate PQ (PQ-stuff) for semantic segmentation predictions.
+
+Usage:
+
+```
+python tools/evaluate_pq_for_semantic_segmentation.py --dataset-name ade20k_sem_seg_val --json-file OUTPUT_DIR/inference/sem_seg_predictions.json
+```
+
+where `OUTPUT_DIR` is set in the config file.
+
+* `evaluate_coco_boundary_ap.py`
+
+Tool to evaluate Boundary AP for instance segmentation predictions.
+
+Usage:
+
+```
+python tools/coco_instance_evaluation.py --gt-json-file COCO_GT_JSON --dt-json-file COCO_DT_JSON
+```
+
+To install Boundary IoU API, run:
+
+```
+pip install git+https://github.com/bowenc0221/boundary-iou-api.git
+```
+
+* `analyze_model.py`
+
+Tool to analyze model parameters and flops.
+
+Usage for semantic segmentation (ADE20K only, use with caution!):
+
+```
+python tools/analyze_model.py --num-inputs 1 --tasks flop --use-fixed-input-size --config-file CONFIG_FILE
+```
+
+Note that, for semantic segmentation (ADE20K only), we use a dummy image with fixed size that equals to `cfg.INPUT.CROP.SIZE[0] x cfg.INPUT.CROP.SIZE[0]`.
+Please do not use `--use-fixed-input-size` for calculating FLOPs on other datasets like Cityscapes!
+
+Usage for panoptic and instance segmentation:
+
+```
+python tools/analyze_model.py --num-inputs 100 --tasks flop --config-file CONFIG_FILE
+```
+
+Note that, for panoptic and instance segmentation, we compute the average flops over 100 real validation images.
diff --git a/videocutler/tools/analyze_model.py b/videocutler/tools/analyze_model.py
new file mode 100644
index 0000000000000000000000000000000000000000..a92227e2a530bbdcbdf6d72bc9ed93886f24a7bb
--- /dev/null
+++ b/videocutler/tools/analyze_model.py
@@ -0,0 +1,177 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/facebookresearch/detectron2/blob/main/tools/analyze_model.py
+
+import logging
+import numpy as np
+from collections import Counter
+import tqdm
+from fvcore.nn import flop_count_table # can also try flop_count_str
+
+from detectron2.checkpoint import DetectionCheckpointer
+from detectron2.config import CfgNode, LazyConfig, get_cfg, instantiate
+from detectron2.data import build_detection_test_loader
+from detectron2.engine import default_argument_parser
+from detectron2.modeling import build_model
+from detectron2.projects.deeplab import add_deeplab_config
+from detectron2.utils.analysis import (
+ FlopCountAnalysis,
+ activation_count_operators,
+ parameter_count_table,
+)
+from detectron2.utils.logger import setup_logger
+
+# fmt: off
+import os
+import sys
+sys.path.insert(1, os.path.join(sys.path[0], '..'))
+# fmt: on
+
+from mask2former import add_maskformer2_config
+
+logger = logging.getLogger("detectron2")
+
+
+def setup(args):
+ if args.config_file.endswith(".yaml"):
+ cfg = get_cfg()
+ add_deeplab_config(cfg)
+ add_maskformer2_config(cfg)
+ cfg.merge_from_file(args.config_file)
+ cfg.DATALOADER.NUM_WORKERS = 0
+ cfg.merge_from_list(args.opts)
+ cfg.freeze()
+ else:
+ cfg = LazyConfig.load(args.config_file)
+ cfg = LazyConfig.apply_overrides(cfg, args.opts)
+ setup_logger(name="fvcore")
+ setup_logger()
+ return cfg
+
+
+def do_flop(cfg):
+ if isinstance(cfg, CfgNode):
+ data_loader = build_detection_test_loader(cfg, cfg.DATASETS.TEST[0])
+ model = build_model(cfg)
+ DetectionCheckpointer(model).load(cfg.MODEL.WEIGHTS)
+ else:
+ data_loader = instantiate(cfg.dataloader.test)
+ model = instantiate(cfg.model)
+ model.to(cfg.train.device)
+ DetectionCheckpointer(model).load(cfg.train.init_checkpoint)
+ model.eval()
+
+ counts = Counter()
+ total_flops = []
+ for idx, data in zip(tqdm.trange(args.num_inputs), data_loader): # noqa
+ if args.use_fixed_input_size and isinstance(cfg, CfgNode):
+ import torch
+ crop_size = cfg.INPUT.CROP.SIZE[0]
+ data[0]["image"] = torch.zeros((3, crop_size, crop_size))
+ flops = FlopCountAnalysis(model, data)
+ if idx > 0:
+ flops.unsupported_ops_warnings(False).uncalled_modules_warnings(False)
+ counts += flops.by_operator()
+ total_flops.append(flops.total())
+
+ logger.info("Flops table computed from only one input sample:\n" + flop_count_table(flops))
+ logger.info(
+ "Average GFlops for each type of operators:\n"
+ + str([(k, v / (idx + 1) / 1e9) for k, v in counts.items()])
+ )
+ logger.info(
+ "Total GFlops: {:.1f}±{:.1f}".format(np.mean(total_flops) / 1e9, np.std(total_flops) / 1e9)
+ )
+
+
+def do_activation(cfg):
+ if isinstance(cfg, CfgNode):
+ data_loader = build_detection_test_loader(cfg, cfg.DATASETS.TEST[0])
+ model = build_model(cfg)
+ DetectionCheckpointer(model).load(cfg.MODEL.WEIGHTS)
+ else:
+ data_loader = instantiate(cfg.dataloader.test)
+ model = instantiate(cfg.model)
+ model.to(cfg.train.device)
+ DetectionCheckpointer(model).load(cfg.train.init_checkpoint)
+ model.eval()
+
+ counts = Counter()
+ total_activations = []
+ for idx, data in zip(tqdm.trange(args.num_inputs), data_loader): # noqa
+ count = activation_count_operators(model, data)
+ counts += count
+ total_activations.append(sum(count.values()))
+ logger.info(
+ "(Million) Activations for Each Type of Operators:\n"
+ + str([(k, v / idx) for k, v in counts.items()])
+ )
+ logger.info(
+ "Total (Million) Activations: {}±{}".format(
+ np.mean(total_activations), np.std(total_activations)
+ )
+ )
+
+
+def do_parameter(cfg):
+ if isinstance(cfg, CfgNode):
+ model = build_model(cfg)
+ else:
+ model = instantiate(cfg.model)
+ logger.info("Parameter Count:\n" + parameter_count_table(model, max_depth=5))
+
+
+def do_structure(cfg):
+ if isinstance(cfg, CfgNode):
+ model = build_model(cfg)
+ else:
+ model = instantiate(cfg.model)
+ logger.info("Model Structure:\n" + str(model))
+
+
+if __name__ == "__main__":
+ parser = default_argument_parser(
+ epilog="""
+Examples:
+To show parameters of a model:
+$ ./analyze_model.py --tasks parameter \\
+ --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml
+Flops and activations are data-dependent, therefore inputs and model weights
+are needed to count them:
+$ ./analyze_model.py --num-inputs 100 --tasks flop \\
+ --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml \\
+ MODEL.WEIGHTS /path/to/model.pkl
+"""
+ )
+ parser.add_argument(
+ "--tasks",
+ choices=["flop", "activation", "parameter", "structure"],
+ required=True,
+ nargs="+",
+ )
+ parser.add_argument(
+ "-n",
+ "--num-inputs",
+ default=100,
+ type=int,
+ help="number of inputs used to compute statistics for flops/activations, "
+ "both are data dependent.",
+ )
+ parser.add_argument(
+ "--use-fixed-input-size",
+ action="store_true",
+ help="use fixed input size when calculating flops",
+ )
+ args = parser.parse_args()
+ assert not args.eval_only
+ assert args.num_gpus == 1
+
+ cfg = setup(args)
+
+ for task in args.tasks:
+ {
+ "flop": do_flop,
+ "activation": do_activation,
+ "parameter": do_parameter,
+ "structure": do_structure,
+ }[task](cfg)
diff --git a/videocutler/tools/convert-pretrained-swin-model-to-d2.py b/videocutler/tools/convert-pretrained-swin-model-to-d2.py
new file mode 100644
index 0000000000000000000000000000000000000000..8fbaeab990743e60bfe9f6197cbf3bf8585abcb6
--- /dev/null
+++ b/videocutler/tools/convert-pretrained-swin-model-to-d2.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+
+import pickle as pkl
+import sys
+
+import torch
+
+"""
+Usage:
+ # download pretrained swin model:
+ wget https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_tiny_patch4_window7_224.pth
+ # run the conversion
+ ./convert-pretrained-model-to-d2.py swin_tiny_patch4_window7_224.pth swin_tiny_patch4_window7_224.pkl
+ # Then, use swin_tiny_patch4_window7_224.pkl with the following changes in config:
+MODEL:
+ WEIGHTS: "/path/to/swin_tiny_patch4_window7_224.pkl"
+INPUT:
+ FORMAT: "RGB"
+"""
+
+if __name__ == "__main__":
+ input = sys.argv[1]
+
+ obj = torch.load(input, map_location="cpu")["model"]
+
+ res = {"model": obj, "__author__": "third_party", "matching_heuristics": True}
+
+ with open(sys.argv[2], "wb") as f:
+ pkl.dump(res, f)
diff --git a/videocutler/tools/convert-torchvision-to-d2.py b/videocutler/tools/convert-torchvision-to-d2.py
new file mode 100644
index 0000000000000000000000000000000000000000..060390a2c26297d7d9ee97ceb601453c9372f1d5
--- /dev/null
+++ b/videocutler/tools/convert-torchvision-to-d2.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+# Copyright (c) Facebook, Inc. and its affiliates.
+
+import pickle as pkl
+import sys
+
+import torch
+
+"""
+Usage:
+ # download one of the ResNet{18,34,50,101,152} models from torchvision:
+ wget https://download.pytorch.org/models/resnet50-19c8e357.pth -O r50.pth
+ # run the conversion
+ ./convert-torchvision-to-d2.py r50.pth r50.pkl
+ # Then, use r50.pkl with the following changes in config:
+MODEL:
+ WEIGHTS: "/path/to/r50.pkl"
+ PIXEL_MEAN: [123.675, 116.280, 103.530]
+ PIXEL_STD: [58.395, 57.120, 57.375]
+ RESNETS:
+ DEPTH: 50
+ STRIDE_IN_1X1: False
+INPUT:
+ FORMAT: "RGB"
+"""
+
+if __name__ == "__main__":
+ input = sys.argv[1]
+
+ obj = torch.load(input, map_location="cpu")
+
+ newmodel = {}
+ for k in list(obj.keys()):
+ old_k = k
+ if "layer" not in k:
+ k = "stem." + k
+ for t in [1, 2, 3, 4]:
+ k = k.replace("layer{}".format(t), "res{}".format(t + 1))
+ for t in [1, 2, 3]:
+ k = k.replace("bn{}".format(t), "conv{}.norm".format(t))
+ k = k.replace("downsample.0", "shortcut")
+ k = k.replace("downsample.1", "shortcut.norm")
+ print(old_k, "->", k)
+ newmodel[k] = obj.pop(old_k).detach().numpy()
+
+ res = {"model": newmodel, "__author__": "torchvision", "matching_heuristics": True}
+
+ with open(sys.argv[2], "wb") as f:
+ pkl.dump(res, f)
+ if obj:
+ print("Unconverted keys:", obj.keys())
diff --git a/videocutler/tools/evaluate_coco_boundary_ap.py b/videocutler/tools/evaluate_coco_boundary_ap.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e96b5d2f7d3f0987098904e8f5d97854906d58a
--- /dev/null
+++ b/videocutler/tools/evaluate_coco_boundary_ap.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+# Modified by Bowen Cheng from: https://github.com/bowenc0221/boundary-iou-api/blob/master/tools/coco_instance_evaluation.py
+
+"""
+Evaluation for COCO val2017:
+python ./tools/coco_instance_evaluation.py \
+ --gt-json-file COCO_GT_JSON \
+ --dt-json-file COCO_DT_JSON
+"""
+import argparse
+import json
+
+from boundary_iou.coco_instance_api.coco import COCO
+from boundary_iou.coco_instance_api.cocoeval import COCOeval
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--gt-json-file", default="")
+ parser.add_argument("--dt-json-file", default="")
+ parser.add_argument("--iou-type", default="boundary")
+ parser.add_argument("--dilation-ratio", default="0.020", type=float)
+ args = parser.parse_args()
+ print(args)
+
+ annFile = args.gt_json_file
+ resFile = args.dt_json_file
+ dilation_ratio = args.dilation_ratio
+ if args.iou_type == "boundary":
+ get_boundary = True
+ else:
+ get_boundary = False
+ cocoGt = COCO(annFile, get_boundary=get_boundary, dilation_ratio=dilation_ratio)
+
+ # remove box predictions
+ resFile = json.load(open(resFile))
+ for c in resFile:
+ c.pop("bbox", None)
+
+ cocoDt = cocoGt.loadRes(resFile)
+ cocoEval = COCOeval(cocoGt, cocoDt, iouType=args.iou_type, dilation_ratio=dilation_ratio)
+ cocoEval.evaluate()
+ cocoEval.accumulate()
+ cocoEval.summarize()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/videocutler/tools/evaluate_pq_for_semantic_segmentation.py b/videocutler/tools/evaluate_pq_for_semantic_segmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..d22d735b632d885bb213de7804dad68b6068a8d0
--- /dev/null
+++ b/videocutler/tools/evaluate_pq_for_semantic_segmentation.py
@@ -0,0 +1,245 @@
+#!/usr/bin/env python
+# Copyright (c) Facebook, Inc. and its affiliates.
+
+import argparse
+import json
+import os
+from collections import defaultdict
+from tqdm import tqdm
+
+import numpy as np
+import torch
+
+from detectron2.data import MetadataCatalog
+from detectron2.data.detection_utils import read_image
+from detectron2.utils.file_io import PathManager
+from pycocotools import mask as maskUtils
+
+from panopticapi.evaluation import PQStat
+
+
+def default_argument_parser():
+ """
+ Creates a parser with some common arguments used by analysis tools.
+ Returns:
+ argparse.ArgumentParser:
+ """
+ parser = argparse.ArgumentParser(description="Evaluate PQ metric for semantic segmentation.")
+ # NOTE: currently does not support Cityscapes, you need to convert
+ # Cityscapes prediction format to Detectron2 prediction format.
+ parser.add_argument(
+ "--dataset-name",
+ default="ade20k_sem_seg_val",
+ choices=["ade20k_sem_seg_val", "coco_2017_test_stuff_10k_sem_seg", "ade20k_full_sem_seg_val"],
+ help="dataset name you want to evaluate")
+ parser.add_argument("--json-file", default="", help="path to detection json file")
+
+ return parser
+
+
+# Modified from the official panoptic api: https://github.com/cocodataset/panopticapi/blob/master/panopticapi/evaluation.py
+def pq_compute_single_image(segm_gt, segm_dt, categories, ignore_label):
+ pq_stat = PQStat()
+ VOID = ignore_label
+ OFFSET = 256 * 256 * 256
+
+ pan_gt = segm_gt
+ pan_pred = segm_dt
+
+ gt_ann = {'segments_info': []}
+ labels, labels_cnt = np.unique(segm_gt, return_counts=True)
+ for cat_id, cnt in zip(labels, labels_cnt):
+ if cat_id == VOID:
+ continue
+ gt_ann['segments_info'].append(
+ {"id": cat_id, "category_id": cat_id, "area": cnt, "iscrowd": 0}
+ )
+
+ pred_ann = {'segments_info': []}
+ for cat_id in np.unique(segm_dt):
+ pred_ann['segments_info'].append({"id": cat_id, "category_id": cat_id})
+
+ gt_segms = {el['id']: el for el in gt_ann['segments_info']}
+ pred_segms = {el['id']: el for el in pred_ann['segments_info']}
+
+ # predicted segments area calculation + prediction sanity checks
+ pred_labels_set = set(el['id'] for el in pred_ann['segments_info'])
+ labels, labels_cnt = np.unique(pan_pred, return_counts=True)
+ for label, label_cnt in zip(labels, labels_cnt):
+ if label not in pred_segms:
+ if label == VOID:
+ continue
+ raise KeyError('In the image with ID {} segment with ID {} is presented in PNG and not presented in JSON.'.format(image_id, label))
+ pred_segms[label]['area'] = label_cnt
+ pred_labels_set.remove(label)
+ if pred_segms[label]['category_id'] not in categories:
+ raise KeyError('In the image with ID {} segment with ID {} has unknown category_id {}.'.format(image_id, label, pred_segms[label]['category_id']))
+ if len(pred_labels_set) != 0:
+ raise KeyError('In the image with ID {} the following segment IDs {} are presented in JSON and not presented in PNG.'.format(image_id, list(pred_labels_set)))
+
+ # confusion matrix calculation
+ pan_gt_pred = pan_gt.astype(np.uint64) * OFFSET + pan_pred.astype(np.uint64)
+ gt_pred_map = {}
+ labels, labels_cnt = np.unique(pan_gt_pred, return_counts=True)
+ for label, intersection in zip(labels, labels_cnt):
+ gt_id = label // OFFSET
+ pred_id = label % OFFSET
+ gt_pred_map[(gt_id, pred_id)] = intersection
+
+ # count all matched pairs
+ gt_matched = set()
+ pred_matched = set()
+ for label_tuple, intersection in gt_pred_map.items():
+ gt_label, pred_label = label_tuple
+ if gt_label not in gt_segms:
+ continue
+ if pred_label not in pred_segms:
+ continue
+ if gt_segms[gt_label]['iscrowd'] == 1:
+ continue
+ if gt_segms[gt_label]['category_id'] != pred_segms[pred_label]['category_id']:
+ continue
+
+ union = pred_segms[pred_label]['area'] + gt_segms[gt_label]['area'] - intersection - gt_pred_map.get((VOID, pred_label), 0)
+ iou = intersection / union
+ if iou > 0.5:
+ pq_stat[gt_segms[gt_label]['category_id']].tp += 1
+ pq_stat[gt_segms[gt_label]['category_id']].iou += iou
+ gt_matched.add(gt_label)
+ pred_matched.add(pred_label)
+
+ # count false positives
+ crowd_labels_dict = {}
+ for gt_label, gt_info in gt_segms.items():
+ if gt_label in gt_matched:
+ continue
+ # crowd segments are ignored
+ if gt_info['iscrowd'] == 1:
+ crowd_labels_dict[gt_info['category_id']] = gt_label
+ continue
+ pq_stat[gt_info['category_id']].fn += 1
+
+ # count false positives
+ for pred_label, pred_info in pred_segms.items():
+ if pred_label in pred_matched:
+ continue
+ # intersection of the segment with VOID
+ intersection = gt_pred_map.get((VOID, pred_label), 0)
+ # plus intersection with corresponding CROWD region if it exists
+ if pred_info['category_id'] in crowd_labels_dict:
+ intersection += gt_pred_map.get((crowd_labels_dict[pred_info['category_id']], pred_label), 0)
+ # predicted segment is ignored if more than half of the segment correspond to VOID and CROWD regions
+ if intersection / pred_info['area'] > 0.5:
+ continue
+ pq_stat[pred_info['category_id']].fp += 1
+
+ return pq_stat
+
+
+def main():
+ parser = default_argument_parser()
+ args = parser.parse_args()
+
+ _root = os.getenv("DETECTRON2_DATASETS", "datasets")
+ json_file = args.json_file
+
+ with open(json_file) as f:
+ predictions = json.load(f)
+
+ imgToAnns = defaultdict(list)
+ for pred in predictions:
+ image_id = os.path.basename(pred["file_name"]).split(".")[0]
+ imgToAnns[image_id].append(
+ {"category_id" : pred["category_id"], "segmentation" : pred["segmentation"]}
+ )
+
+ image_ids = list(imgToAnns.keys())
+
+ meta = MetadataCatalog.get(args.dataset_name)
+ class_names = meta.stuff_classes
+ num_classes = len(meta.stuff_classes)
+ ignore_label = meta.ignore_label
+ conf_matrix = np.zeros((num_classes + 1, num_classes + 1), dtype=np.int64)
+
+ categories = {}
+ for i in range(num_classes):
+ categories[i] = {"id": i, "name": class_names[i], "isthing": 0}
+
+ pq_stat = PQStat()
+
+ for image_id in tqdm(image_ids):
+ if args.dataset_name == "ade20k_sem_seg_val":
+ gt_dir = os.path.join(_root, "ADEChallengeData2016", "annotations_detectron2", "validation")
+ segm_gt = read_image(os.path.join(gt_dir, image_id + ".png")).copy().astype(np.int64)
+ elif args.dataset_name == "coco_2017_test_stuff_10k_sem_seg":
+ gt_dir = os.path.join(_root, "coco", "coco_stuff_10k", "annotations_detectron2", "test")
+ segm_gt = read_image(os.path.join(gt_dir, image_id + ".png")).copy().astype(np.int64)
+ elif args.dataset_name == "ade20k_full_sem_seg_val":
+ gt_dir = os.path.join(_root, "ADE20K_2021_17_01", "annotations_detectron2", "validation")
+ segm_gt = read_image(os.path.join(gt_dir, image_id + ".tif")).copy().astype(np.int64)
+ else:
+ raise ValueError(f"Unsupported dataset {args.dataset_name}")
+
+ # get predictions
+ segm_dt = np.zeros_like(segm_gt)
+ anns = imgToAnns[image_id]
+ for ann in anns:
+ # map back category_id
+ if hasattr(meta, "stuff_dataset_id_to_contiguous_id"):
+ if ann["category_id"] in meta.stuff_dataset_id_to_contiguous_id:
+ category_id = meta.stuff_dataset_id_to_contiguous_id[ann["category_id"]]
+ else:
+ category_id = ann["category_id"]
+ mask = maskUtils.decode(ann["segmentation"])
+ segm_dt[mask > 0] = category_id
+
+ # miou
+ gt = segm_gt.copy()
+ pred = segm_dt.copy()
+ gt[gt == ignore_label] = num_classes
+ conf_matrix += np.bincount(
+ (num_classes + 1) * pred.reshape(-1) + gt.reshape(-1),
+ minlength=conf_matrix.size,
+ ).reshape(conf_matrix.shape)
+
+ # pq
+ pq_stat_single = pq_compute_single_image(segm_gt, segm_dt, categories, meta.ignore_label)
+ pq_stat += pq_stat_single
+
+ metrics = [("All", None), ("Stuff", False)]
+ results = {}
+ for name, isthing in metrics:
+ results[name], per_class_results = pq_stat.pq_average(categories, isthing=isthing)
+ if name == 'All':
+ results['per_class'] = per_class_results
+ print("{:10s}| {:>5s} {:>5s} {:>5s} {:>5s}".format("", "PQ", "SQ", "RQ", "N"))
+ print("-" * (10 + 7 * 4))
+
+ for name, _isthing in metrics:
+ print("{:10s}| {:5.1f} {:5.1f} {:5.1f} {:5d}".format(
+ name,
+ 100 * results[name]['pq'],
+ 100 * results[name]['sq'],
+ 100 * results[name]['rq'],
+ results[name]['n'])
+ )
+
+ # calculate miou
+ acc = np.full(num_classes, np.nan, dtype=np.float64)
+ iou = np.full(num_classes, np.nan, dtype=np.float64)
+ tp = conf_matrix.diagonal()[:-1].astype(np.float64)
+ pos_gt = np.sum(conf_matrix[:-1, :-1], axis=0).astype(np.float64)
+ pos_pred = np.sum(conf_matrix[:-1, :-1], axis=1).astype(np.float64)
+ acc_valid = pos_gt > 0
+ acc[acc_valid] = tp[acc_valid] / pos_gt[acc_valid]
+ iou_valid = (pos_gt + pos_pred) > 0
+ union = pos_gt + pos_pred - tp
+ iou[acc_valid] = tp[acc_valid] / union[acc_valid]
+ miou = np.sum(iou[acc_valid]) / np.sum(iou_valid)
+
+ print("")
+ print(f"mIoU: {miou}")
+
+
+if __name__ == '__main__':
+ main()
diff --git a/videocutler/train-1node.sh b/videocutler/train-1node.sh
new file mode 100644
index 0000000000000000000000000000000000000000..6a4ed3c2c31b1722e9b31ab2b73ef7ea6f32afad
--- /dev/null
+++ b/videocutler/train-1node.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+#SBATCH -p learnfair
+#SBATCH --nodes=1
+#SBATCH --ntasks=1
+#SBATCH --gres=gpu:8
+#SBATCH --gpus-per-node=8
+#SBATCH --cpus-per-task=48
+#SBATCH --time 10000
+#SBATCH -o "submitit/videocutler/slurm-%j.out"
+
+srun single-node-video_run.sh $@
\ No newline at end of file
diff --git a/videocutler/train_net.py b/videocutler/train_net.py
new file mode 100644
index 0000000000000000000000000000000000000000..09563c12df8e40c04008adb48a8bf7f4e60b8a51
--- /dev/null
+++ b/videocutler/train_net.py
@@ -0,0 +1,350 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+"""
+MaskFormer Training Script.
+
+This script is a simplified version of the training script in detectron2/tools.
+"""
+try:
+ # ignore ShapelyDeprecationWarning from fvcore
+ from shapely.errors import ShapelyDeprecationWarning
+ import warnings
+ warnings.filterwarnings('ignore', category=ShapelyDeprecationWarning)
+except:
+ pass
+
+import copy
+import itertools
+import logging
+import os
+
+from collections import OrderedDict
+from typing import Any, Dict, List, Set
+
+import torch
+
+import detectron2.utils.comm as comm
+from detectron2.checkpoint import DetectionCheckpointer
+from detectron2.config import get_cfg
+from detectron2.data import MetadataCatalog, build_detection_train_loader
+from detectron2.engine import (
+ DefaultTrainer,
+ default_argument_parser,
+ default_setup,
+ launch,
+)
+from detectron2.evaluation import (
+ CityscapesInstanceEvaluator,
+ CityscapesSemSegEvaluator,
+ COCOEvaluator,
+ COCOPanopticEvaluator,
+ DatasetEvaluators,
+ LVISEvaluator,
+ SemSegEvaluator,
+ verify_results,
+)
+from detectron2.projects.deeplab import add_deeplab_config, build_lr_scheduler
+from detectron2.solver.build import maybe_add_gradient_clipping
+from detectron2.utils.logger import setup_logger
+
+# MaskFormer
+from mask2former import (
+ COCOInstanceNewBaselineDatasetMapper,
+ COCOPanopticNewBaselineDatasetMapper,
+ InstanceSegEvaluator,
+ MaskFormerInstanceDatasetMapper,
+ MaskFormerPanopticDatasetMapper,
+ MaskFormerSemanticDatasetMapper,
+ SemanticSegmentorWithTTA,
+ add_maskformer2_config,
+)
+
+import random
+
+# setup wandb
+import wandb
+
+class Trainer(DefaultTrainer):
+ """
+ Extension of the Trainer class adapted to MaskFormer.
+ """
+
+ @classmethod
+ def build_evaluator(cls, cfg, dataset_name, output_folder=None):
+ """
+ Create evaluator(s) for a given dataset.
+ This uses the special metadata "evaluator_type" associated with each
+ builtin dataset. For your own dataset, you can simply create an
+ evaluator manually in your script and do not have to worry about the
+ hacky if-else logic here.
+ """
+ if output_folder is None:
+ output_folder = os.path.join(cfg.OUTPUT_DIR, "inference")
+ evaluator_list = []
+ evaluator_type = MetadataCatalog.get(dataset_name).evaluator_type
+ # semantic segmentation
+ if evaluator_type in ["sem_seg", "ade20k_panoptic_seg"]:
+ evaluator_list.append(
+ SemSegEvaluator(
+ dataset_name,
+ distributed=True,
+ output_dir=output_folder,
+ )
+ )
+ # instance segmentation
+ if evaluator_type == "coco":
+ evaluator_list.append(COCOEvaluator(dataset_name, output_dir=output_folder))
+ # panoptic segmentation
+ if evaluator_type in [
+ "coco_panoptic_seg",
+ "ade20k_panoptic_seg",
+ "cityscapes_panoptic_seg",
+ "mapillary_vistas_panoptic_seg",
+ ]:
+ if cfg.MODEL.MASK_FORMER.TEST.PANOPTIC_ON:
+ evaluator_list.append(COCOPanopticEvaluator(dataset_name, output_folder))
+ # COCO
+ if evaluator_type == "coco_panoptic_seg" and cfg.MODEL.MASK_FORMER.TEST.INSTANCE_ON:
+ evaluator_list.append(COCOEvaluator(dataset_name, output_dir=output_folder))
+ if evaluator_type == "coco_panoptic_seg" and cfg.MODEL.MASK_FORMER.TEST.SEMANTIC_ON:
+ evaluator_list.append(SemSegEvaluator(dataset_name, distributed=True, output_dir=output_folder))
+ # Mapillary Vistas
+ if evaluator_type == "mapillary_vistas_panoptic_seg" and cfg.MODEL.MASK_FORMER.TEST.INSTANCE_ON:
+ evaluator_list.append(InstanceSegEvaluator(dataset_name, output_dir=output_folder))
+ if evaluator_type == "mapillary_vistas_panoptic_seg" and cfg.MODEL.MASK_FORMER.TEST.SEMANTIC_ON:
+ evaluator_list.append(SemSegEvaluator(dataset_name, distributed=True, output_dir=output_folder))
+ # Cityscapes
+ if evaluator_type == "cityscapes_instance":
+ assert (
+ torch.cuda.device_count() > comm.get_rank()
+ ), "CityscapesEvaluator currently do not work with multiple machines."
+ return CityscapesInstanceEvaluator(dataset_name)
+ if evaluator_type == "cityscapes_sem_seg":
+ assert (
+ torch.cuda.device_count() > comm.get_rank()
+ ), "CityscapesEvaluator currently do not work with multiple machines."
+ return CityscapesSemSegEvaluator(dataset_name)
+ if evaluator_type == "cityscapes_panoptic_seg":
+ if cfg.MODEL.MASK_FORMER.TEST.SEMANTIC_ON:
+ assert (
+ torch.cuda.device_count() > comm.get_rank()
+ ), "CityscapesEvaluator currently do not work with multiple machines."
+ evaluator_list.append(CityscapesSemSegEvaluator(dataset_name))
+ if cfg.MODEL.MASK_FORMER.TEST.INSTANCE_ON:
+ assert (
+ torch.cuda.device_count() > comm.get_rank()
+ ), "CityscapesEvaluator currently do not work with multiple machines."
+ evaluator_list.append(CityscapesInstanceEvaluator(dataset_name))
+ # ADE20K
+ if evaluator_type == "ade20k_panoptic_seg" and cfg.MODEL.MASK_FORMER.TEST.INSTANCE_ON:
+ evaluator_list.append(InstanceSegEvaluator(dataset_name, output_dir=output_folder))
+ # LVIS
+ if evaluator_type == "lvis":
+ return LVISEvaluator(dataset_name, output_dir=output_folder)
+ if len(evaluator_list) == 0:
+ raise NotImplementedError(
+ "no Evaluator for the dataset {} with the type {}".format(
+ dataset_name, evaluator_type
+ )
+ )
+ elif len(evaluator_list) == 1:
+ return evaluator_list[0]
+ return DatasetEvaluators(evaluator_list)
+
+ @classmethod
+ def build_train_loader(cls, cfg):
+ # Semantic segmentation dataset mapper
+ if cfg.INPUT.DATASET_MAPPER_NAME == "mask_former_semantic":
+ mapper = MaskFormerSemanticDatasetMapper(cfg, True)
+ return build_detection_train_loader(cfg, mapper=mapper)
+ # Panoptic segmentation dataset mapper
+ elif cfg.INPUT.DATASET_MAPPER_NAME == "mask_former_panoptic":
+ mapper = MaskFormerPanopticDatasetMapper(cfg, True)
+ return build_detection_train_loader(cfg, mapper=mapper)
+ # Instance segmentation dataset mapper
+ elif cfg.INPUT.DATASET_MAPPER_NAME == "mask_former_instance":
+ mapper = MaskFormerInstanceDatasetMapper(cfg, True)
+ return build_detection_train_loader(cfg, mapper=mapper)
+ # coco instance segmentation lsj new baseline
+ elif cfg.INPUT.DATASET_MAPPER_NAME == "coco_instance_lsj":
+ mapper = COCOInstanceNewBaselineDatasetMapper(cfg, True)
+ return build_detection_train_loader(cfg, mapper=mapper)
+ # coco panoptic segmentation lsj new baseline
+ elif cfg.INPUT.DATASET_MAPPER_NAME == "coco_panoptic_lsj":
+ mapper = COCOPanopticNewBaselineDatasetMapper(cfg, True)
+ return build_detection_train_loader(cfg, mapper=mapper)
+ else:
+ mapper = None
+ return build_detection_train_loader(cfg, mapper=mapper)
+
+ @classmethod
+ def build_lr_scheduler(cls, cfg, optimizer):
+ """
+ It now calls :func:`detectron2.solver.build_lr_scheduler`.
+ Overwrite it if you'd like a different scheduler.
+ """
+ return build_lr_scheduler(cfg, optimizer)
+
+ @classmethod
+ def build_optimizer(cls, cfg, model):
+ weight_decay_norm = cfg.SOLVER.WEIGHT_DECAY_NORM
+ weight_decay_embed = cfg.SOLVER.WEIGHT_DECAY_EMBED
+
+ defaults = {}
+ defaults["lr"] = cfg.SOLVER.BASE_LR
+ defaults["weight_decay"] = cfg.SOLVER.WEIGHT_DECAY
+
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ # NaiveSyncBatchNorm inherits from BatchNorm2d
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+
+ params: List[Dict[str, Any]] = []
+ memo: Set[torch.nn.parameter.Parameter] = set()
+ for module_name, module in model.named_modules():
+ for module_param_name, value in module.named_parameters(recurse=False):
+ if not value.requires_grad:
+ continue
+ # Avoid duplicating parameters
+ if value in memo:
+ continue
+ memo.add(value)
+
+ hyperparams = copy.copy(defaults)
+ if "backbone" in module_name:
+ hyperparams["lr"] = hyperparams["lr"] * cfg.SOLVER.BACKBONE_MULTIPLIER
+ if (
+ "relative_position_bias_table" in module_param_name
+ or "absolute_pos_embed" in module_param_name
+ ):
+ print(module_param_name)
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, norm_module_types):
+ hyperparams["weight_decay"] = weight_decay_norm
+ if isinstance(module, torch.nn.Embedding):
+ hyperparams["weight_decay"] = weight_decay_embed
+ params.append({"params": [value], **hyperparams})
+
+ def maybe_add_full_model_gradient_clipping(optim):
+ # detectron2 doesn't have full model gradient clipping now
+ clip_norm_val = cfg.SOLVER.CLIP_GRADIENTS.CLIP_VALUE
+ enable = (
+ cfg.SOLVER.CLIP_GRADIENTS.ENABLED
+ and cfg.SOLVER.CLIP_GRADIENTS.CLIP_TYPE == "full_model"
+ and clip_norm_val > 0.0
+ )
+
+ class FullModelGradientClippingOptimizer(optim):
+ def step(self, closure=None):
+ all_params = itertools.chain(*[x["params"] for x in self.param_groups])
+ torch.nn.utils.clip_grad_norm_(all_params, clip_norm_val)
+ super().step(closure=closure)
+
+ return FullModelGradientClippingOptimizer if enable else optim
+
+ optimizer_type = cfg.SOLVER.OPTIMIZER
+ if optimizer_type == "SGD":
+ optimizer = maybe_add_full_model_gradient_clipping(torch.optim.SGD)(
+ params, cfg.SOLVER.BASE_LR, momentum=cfg.SOLVER.MOMENTUM
+ )
+ elif optimizer_type == "ADAMW":
+ optimizer = maybe_add_full_model_gradient_clipping(torch.optim.AdamW)(
+ params, cfg.SOLVER.BASE_LR
+ )
+ else:
+ raise NotImplementedError(f"no optimizer type {optimizer_type}")
+ if not cfg.SOLVER.CLIP_GRADIENTS.CLIP_TYPE == "full_model":
+ optimizer = maybe_add_gradient_clipping(cfg, optimizer)
+ return optimizer
+
+ @classmethod
+ def test_with_TTA(cls, cfg, model):
+ logger = logging.getLogger("detectron2.trainer")
+ # In the end of training, run an evaluation with TTA.
+ logger.info("Running inference with test-time augmentation ...")
+ model = SemanticSegmentorWithTTA(cfg, model)
+ evaluators = [
+ cls.build_evaluator(
+ cfg, name, output_folder=os.path.join(cfg.OUTPUT_DIR, "inference_TTA")
+ )
+ for name in cfg.DATASETS.TEST
+ ]
+ res = cls.test(cfg, model, evaluators)
+ res = OrderedDict({k + "_TTA": v for k, v in res.items()})
+ return res
+
+
+def setup(args):
+ """
+ Create configs and perform basic setups.
+ """
+ cfg = get_cfg()
+ # for poly lr schedule
+ add_deeplab_config(cfg)
+ add_maskformer2_config(cfg)
+ cfg.merge_from_file(args.config_file)
+ # use shell script commands to define testing datasets
+ if 'DATASETS.TEST' in args.opts:
+ dataset_opt_idx = args.opts.index('DATASETS.TEST')
+ args.opts[dataset_opt_idx+1] = (args.opts[dataset_opt_idx+1],)
+ cfg.merge_from_list(args.opts)
+ if args.test_dataset != "": cfg.DATASETS.TEST = ((args.test_dataset),)
+ if args.train_dataset != "": cfg.DATASETS.TRAIN = ((args.train_dataset),)
+ cfg.freeze()
+ default_setup(cfg, args)
+ # Setup logger for "mask_former" module
+ setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="mask2former")
+ return cfg
+
+
+def main(args):
+ cfg = setup(args)
+
+ if not args.eval_only:
+ if comm.is_main_process(): # only on main process
+ wandb.init(
+ # set the wandb project where this run will be logged
+ project="CutLER-M2F",
+ sync_tensorboard=True,
+ name=args.wandb_name,
+ entity="xdwang",
+ )
+
+ if args.eval_only:
+ model = Trainer.build_model(cfg)
+ DetectionCheckpointer(model, save_dir=cfg.OUTPUT_DIR).resume_or_load(
+ cfg.MODEL.WEIGHTS, resume=args.resume
+ )
+ res = Trainer.test(cfg, model)
+ if cfg.TEST.AUG.ENABLED:
+ res.update(Trainer.test_with_TTA(cfg, model))
+ if comm.is_main_process():
+ verify_results(cfg, res)
+ return res
+
+ trainer = Trainer(cfg)
+ trainer.resume_or_load(resume=args.resume)
+ return trainer.train()
+
+
+if __name__ == "__main__":
+ args = default_argument_parser().parse_args()
+ rint = random.randint(0, 10000)
+ args.dist_url = args.dist_url.replace('12399', str(12399 + rint))
+ print("Command Line Args:", args)
+ launch(
+ main,
+ args.num_gpus,
+ num_machines=args.num_machines,
+ machine_rank=args.machine_rank,
+ dist_url=args.dist_url,
+ args=(args,),
+ )
diff --git a/videocutler/train_net_video.py b/videocutler/train_net_video.py
new file mode 100644
index 0000000000000000000000000000000000000000..f5d816a348a69bf0eb581783edfd518b38205d85
--- /dev/null
+++ b/videocutler/train_net_video.py
@@ -0,0 +1,325 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+"""
+MaskFormer Training Script.
+
+This script is a simplified version of the training script in detectron2/tools.
+"""
+try:
+ # ignore ShapelyDeprecationWarning from fvcore
+ from shapely.errors import ShapelyDeprecationWarning
+ import warnings
+ warnings.filterwarnings('ignore', category=ShapelyDeprecationWarning)
+except:
+ pass
+
+import copy
+import itertools
+import logging
+import os
+
+from collections import OrderedDict
+from typing import Any, Dict, List, Set
+
+import torch
+
+import detectron2.utils.comm as comm
+from detectron2.checkpoint import DetectionCheckpointer
+from detectron2.config import get_cfg
+from detectron2.data import MetadataCatalog
+from detectron2.engine import (
+ # DefaultTrainer,
+ default_argument_parser,
+ default_setup,
+ launch,
+)
+from detectron2.evaluation import (
+ DatasetEvaluator,
+ inference_on_dataset,
+ print_csv_format,
+ verify_results,
+)
+from detectron2.projects.deeplab import add_deeplab_config, build_lr_scheduler
+from detectron2.solver.build import maybe_add_gradient_clipping
+from detectron2.utils.logger import setup_logger
+
+# MaskFormer
+from mask2former import add_maskformer2_config
+from mask2former_video import (
+ YTVISDatasetMapper,
+ YTVISEvaluator,
+ add_maskformer2_video_config,
+ build_detection_train_loader,
+ build_detection_test_loader,
+ get_detection_dataset_dicts,
+)
+# additional settings
+from mask2former_video.engine import DefaultTrainer
+import wandb
+
+# setup wandb
+
+class Trainer(DefaultTrainer):
+ """
+ Extension of the Trainer class adapted to MaskFormer.
+ """
+
+ @classmethod
+ def build_evaluator(cls, cfg, dataset_name, output_folder=None):
+ """
+ Create evaluator(s) for a given dataset.
+ This uses the special metadata "evaluator_type" associated with each builtin dataset.
+ For your own dataset, you can simply create an evaluator manually in your
+ script and do not have to worry about the hacky if-else logic here.
+ """
+ if output_folder is None:
+ output_folder = os.path.join(cfg.OUTPUT_DIR, "inference")
+ os.makedirs(output_folder, exist_ok=True)
+
+ return YTVISEvaluator(dataset_name, cfg, True, output_folder)
+
+ @classmethod
+ def build_train_loader(cls, cfg):
+ dataset_name = cfg.DATASETS.TRAIN[0]
+ mapper = YTVISDatasetMapper(cfg, is_train=True)
+
+ dataset_dict = get_detection_dataset_dicts(
+ dataset_name,
+ filter_empty=cfg.DATALOADER.FILTER_EMPTY_ANNOTATIONS,
+ proposal_files=cfg.DATASETS.PROPOSAL_FILES_TRAIN if cfg.MODEL.LOAD_PROPOSALS else None,
+ )
+
+ return build_detection_train_loader(cfg, mapper=mapper, dataset=dataset_dict)
+
+ @classmethod
+ def build_test_loader(cls, cfg, dataset_name):
+ dataset_name = cfg.DATASETS.TEST[0]
+ mapper = YTVISDatasetMapper(cfg, is_train=False)
+ return build_detection_test_loader(cfg, dataset_name, mapper=mapper)
+
+ @classmethod
+ def build_lr_scheduler(cls, cfg, optimizer):
+ """
+ It now calls :func:`detectron2.solver.build_lr_scheduler`.
+ Overwrite it if you'd like a different scheduler.
+ """
+ return build_lr_scheduler(cfg, optimizer)
+
+ @classmethod
+ def build_optimizer(cls, cfg, model):
+ weight_decay_norm = cfg.SOLVER.WEIGHT_DECAY_NORM
+ weight_decay_embed = cfg.SOLVER.WEIGHT_DECAY_EMBED
+
+ base_lr_multiplier_names = cfg.SOLVER.BASE_LR_MULTIPLIER_NAMES
+ base_lr_multiplier = cfg.SOLVER.BASE_LR_MULTIPLIER
+
+ defaults = {}
+ defaults["lr"] = cfg.SOLVER.BASE_LR
+ defaults["weight_decay"] = cfg.SOLVER.WEIGHT_DECAY
+
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ # NaiveSyncBatchNorm inherits from BatchNorm2d
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+
+ params: List[Dict[str, Any]] = []
+ memo: Set[torch.nn.parameter.Parameter] = set()
+ for module_name, module in model.named_modules():
+ for module_param_name, value in module.named_parameters(recurse=False):
+ if not value.requires_grad:
+ continue
+ # Avoid duplicating parameters
+ if value in memo:
+ continue
+ memo.add(value)
+
+ hyperparams = copy.copy(defaults)
+ if "backbone" in module_name:
+ hyperparams["lr"] = hyperparams["lr"] * cfg.SOLVER.BACKBONE_MULTIPLIER
+ if (
+ "relative_position_bias_table" in module_param_name
+ or "absolute_pos_embed" in module_param_name
+ ):
+ print(module_param_name)
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, norm_module_types):
+ hyperparams["weight_decay"] = weight_decay_norm
+ if isinstance(module, torch.nn.Embedding):
+ hyperparams["weight_decay"] = weight_decay_embed
+ if module_name in base_lr_multiplier_names:
+ hyperparams["lr"] *= base_lr_multiplier
+ print(" Checked: ", module_name, hyperparams["lr"])
+ params.append({"params": [value], **hyperparams})
+
+ def maybe_add_full_model_gradient_clipping(optim):
+ # detectron2 doesn't have full model gradient clipping now
+ clip_norm_val = cfg.SOLVER.CLIP_GRADIENTS.CLIP_VALUE
+ enable = (
+ cfg.SOLVER.CLIP_GRADIENTS.ENABLED
+ and cfg.SOLVER.CLIP_GRADIENTS.CLIP_TYPE == "full_model"
+ and clip_norm_val > 0.0
+ )
+
+ class FullModelGradientClippingOptimizer(optim):
+ def step(self, closure=None):
+ all_params = itertools.chain(*[x["params"] for x in self.param_groups])
+ torch.nn.utils.clip_grad_norm_(all_params, clip_norm_val)
+ super().step(closure=closure)
+
+ return FullModelGradientClippingOptimizer if enable else optim
+
+ optimizer_type = cfg.SOLVER.OPTIMIZER
+ if optimizer_type == "SGD":
+ optimizer = maybe_add_full_model_gradient_clipping(torch.optim.SGD)(
+ params, cfg.SOLVER.BASE_LR, momentum=cfg.SOLVER.MOMENTUM
+ )
+ elif optimizer_type == "ADAMW":
+ optimizer = maybe_add_full_model_gradient_clipping(torch.optim.AdamW)(
+ params, cfg.SOLVER.BASE_LR
+ )
+ else:
+ raise NotImplementedError(f"no optimizer type {optimizer_type}")
+ if not cfg.SOLVER.CLIP_GRADIENTS.CLIP_TYPE == "full_model":
+ optimizer = maybe_add_gradient_clipping(cfg, optimizer)
+ return optimizer
+
+ @classmethod
+ def test(cls, cfg, model, evaluators=None):
+ """
+ Evaluate the given model. The given model is expected to already contain
+ weights to evaluate.
+ Args:
+ cfg (CfgNode):
+ model (nn.Module):
+ evaluators (list[DatasetEvaluator] or None): if None, will call
+ :meth:`build_evaluator`. Otherwise, must have the same length as
+ ``cfg.DATASETS.TEST``.
+ Returns:
+ dict: a dict of result metrics
+ """
+ from torch.cuda.amp import autocast
+ logger = logging.getLogger(__name__)
+ if isinstance(evaluators, DatasetEvaluator):
+ evaluators = [evaluators]
+ if evaluators is not None:
+ assert len(cfg.DATASETS.TEST) == len(evaluators), "{} != {}".format(
+ len(cfg.DATASETS.TEST), len(evaluators)
+ )
+
+ results = OrderedDict()
+ for idx, dataset_name in enumerate(cfg.DATASETS.TEST):
+ data_loader = cls.build_test_loader(cfg, dataset_name)
+ # When evaluators are passed in as arguments,
+ # implicitly assume that evaluators can be created before data_loader.
+ if evaluators is not None:
+ evaluator = evaluators[idx]
+ else:
+ try:
+ evaluator = cls.build_evaluator(cfg, dataset_name)
+ except NotImplementedError:
+ logger.warn(
+ "No evaluator found. Use `DefaultTrainer.test(evaluators=)`, "
+ "or implement its `build_evaluator` method."
+ )
+ results[dataset_name] = {}
+ continue
+ with autocast():
+ results_i = inference_on_dataset(model, data_loader, evaluator)
+ results[dataset_name] = results_i
+ if comm.is_main_process():
+ assert isinstance(
+ results_i, dict
+ ), "Evaluator must return a dict on the main process. Got {} instead.".format(
+ results_i
+ )
+ logger.info("Evaluation results for {} in csv format:".format(dataset_name))
+ print_csv_format(results_i)
+
+ if len(results) == 1:
+ results = list(results.values())[0]
+ return results
+
+
+def setup(args):
+ """
+ Create configs and perform basic setups.
+ """
+ cfg = get_cfg()
+ # for poly lr schedule
+ add_deeplab_config(cfg)
+ add_maskformer2_config(cfg)
+ add_maskformer2_video_config(cfg)
+ cfg.merge_from_file(args.config_file)
+ cfg.merge_from_list(args.opts)
+ # NOTE: need to add following lines to detectron2/detectron2/enginee/defaults.py
+ # parser.add_argument("--train-dataset", default="", help="training dataset")
+ # parser.add_argument("--test-dataset", default="", help="testing dataset")
+ # parser.add_argument("--steps", default=0, help="number of steps to train")
+ # NOTE: need to change detectron2/detectron2/data/transforms/transform.py
+ # replace all assert img.shape[:2] == (self.h, self.w) to the following lines
+ # try:
+ # img.shape[:2] == (self.h, self.w)
+ # except:
+ # (self.h, self.w) = (self.w, self.h)
+ # assert img.shape[:2] == (self.h, self.w)
+ if args.test_dataset != "": cfg.DATASETS.TEST = ((args.test_dataset),)
+ if args.train_dataset != "": cfg.DATASETS.TRAIN = ((args.train_dataset),)
+ if args.steps != 0: cfg.SOLVER.STEPS = (int(args.steps),)
+ cfg.freeze()
+ default_setup(cfg, args)
+ # Setup logger for "mask_former" module
+ setup_logger(name="mask2former")
+ setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="mask2former_video")
+ return cfg
+
+
+def main(args):
+ cfg = setup(args)
+
+ # start a new wandb run to track this script
+ if not args.eval_only or args.wandb_name != "":
+ if comm.is_main_process(): # only on main process
+ wandb.init(
+ # set the wandb project where this run will be logged
+ project="VideoCutLER",
+ sync_tensorboard=True,
+ name=args.wandb_name,
+ entity="xdwang",
+ )
+
+ if args.eval_only:
+ model = Trainer.build_model(cfg)
+ DetectionCheckpointer(model, save_dir=cfg.OUTPUT_DIR).resume_or_load(
+ cfg.MODEL.WEIGHTS, resume=args.resume
+ )
+ res = Trainer.test(cfg, model)
+ if cfg.TEST.AUG.ENABLED:
+ raise NotImplementedError
+ if comm.is_main_process():
+ verify_results(cfg, res)
+ return res
+
+ trainer = Trainer(cfg)
+ trainer.resume_or_load(resume=args.resume)
+ return trainer.train()
+
+
+if __name__ == "__main__":
+ args = default_argument_parser().parse_args()
+ print("Command Line Args:", args)
+ launch(
+ main,
+ args.num_gpus,
+ num_machines=args.num_machines,
+ machine_rank=args.machine_rank,
+ dist_url=args.dist_url,
+ args=(args,),
+ )