Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/CAPTAIN-WHU/iSAID_Devkit
[CVPR'W19-Oral] Official repository for "iSAID: A Large-scale Dataset for Instance Segmentation in Aerial Images"
https://github.com/CAPTAIN-WHU/iSAID_Devkit
aerial-imagery cvpr19 dataset devkit dota evaluation-code instance-segmentation object-detection pytorch pytorch-implementation
Last synced: 3 months ago
JSON representation
[CVPR'W19-Oral] Official repository for "iSAID: A Large-scale Dataset for Instance Segmentation in Aerial Images"
- Host: GitHub
- URL: https://github.com/CAPTAIN-WHU/iSAID_Devkit
- Owner: CAPTAIN-WHU
- Created: 2019-07-13T14:58:33.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-04-03T20:29:36.000Z (over 3 years ago)
- Last Synced: 2024-06-24T09:32:53.577Z (5 months ago)
- Topics: aerial-imagery, cvpr19, dataset, devkit, dota, evaluation-code, instance-segmentation, object-detection, pytorch, pytorch-implementation
- Language: Jupyter Notebook
- Homepage: https://captain-whu.github.io/iSAID/
- Size: 27.7 MB
- Stars: 127
- Watchers: 7
- Forks: 19
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/isaid-a-large-scale-dataset-for-instance/object-detection-on-isaid)](https://paperswithcode.com/sota/object-detection-on-isaid?p=isaid-a-large-scale-dataset-for-instance)
[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/isaid-a-large-scale-dataset-for-instance/instance-segmentation-on-isaid)](https://paperswithcode.com/sota/instance-segmentation-on-isaid?p=isaid-a-large-scale-dataset-for-instance)## iSAID: A Large-scale Dataset for Instance Segmentation in Aerial Images, CVPR workshops, 2019.
**Codes for Data Preparation and Evaluation**
1. **Environment and dependencies installation**
1. Create the conda environment
```conda env create -f environment.yml```
2. Activate the current working environment
```source activate py_isaid```
3. Setup pycocotols for the evalaution server
- `cd cocoapi/PythonAPI`
- `make`
- `python setup.py install`
4. Setup cityscapesScripts for the evalaution server
- `cd preprocess/cityscapesScripts`
- `python setup.py install`
5. Setup detectron for the evalaution server
- `cd preprocess/Detectron`
- `make`
6. Note: opencv version == 3.4.2
2. **Data Preparation for Training, Validation and Testing**
1. Please download iSAID dataset that contains image segmentation masks. Also, download original images from DOTA dataset.
Make sure that the final dataset must have this structure:
```
iSAID
├── test
│ └── images
│ ├── P0006.png
│ └── ...
│ └── P0009.png
├── train
│ └── images
│ ├── P0002_instance_color_RGB.png
│ ├── P0002_instance_id_RGB.png
│ ├── P0002.png
│ ├── ...
│ ├── P0010_instance_color_RGB.png
│ ├── P0010_instance_id_RGB.png
│ └── P0010.png
└── val
└── images
├── P0003_instance_color_RGB.png
├── P0003_instance_id_RGB.png
├── P0003.png
├── ...
├── P0004_instance_color_RGB.png
├── P0004_instance_id_RGB.png
└── P0004.png
```
Note that the segmentation masks for the test images are withheld for the evaluation server.
3. Change the current working directory to preprocess folder.
```cd preprocess```
4. Create symlink for iSAID dataset as
```ln -s /path-of-iSAID-dataset ./dataset/```
5. Split training and validation images into patches
```python split.py --set train,val```
6. Split test images into patches
```python split.py --set test```
7. Create coco-format json annotation files for train and val split images
```python preprocess.py --set train,val```
Make sure that the final dataset after preprocesing must have this structure:```
iSAID_patches
├── test
│ └── images
│ ├── P0006_0_0_800_800.png
│ └── ...
│ └── P0009_0_0_800_800.png
├── train
│ └── instance_only_filtered_train.json
│ └── images
│ ├── P0002_0_0_800_800_instance_color_RGB.png
│ ├── P0002_0_0_800_800_instance_id_RGB.png
│ ├── P0002_0_800_800.png
│ ├── ...
│ ├── P0010_0_0_800_800_instance_color_RGB.png
│ ├── P0010_0_0_800_800_instance_id_RGB.png
│ └── P0010_0_800_800.png
└── val
└── instance_only_filtered_val.json
└── images
├── P0003_0_0_800_800_instance_color_RGB.png
├── P0003_0_0_800_800_instance_id_RGB.png
├── P0003_0_0_800_800.png
├── ...
├── P0004_0_0_800_800_instance_color_RGB.png
├── P0004_0_0_800_800_instance_id_RGB.png
└── P0004_0_0_800_800.png
```
3. **Method**
1. Run your instance segmentation method on patches and generate json file of predictions4. **Evaluation**
1. Change the current working directory to evaluate folder.
```cd ../evaluate```
3. Given json of predictions and json of val set ground truth (obtained after preprocess.py), Compute Average Precision
```python evaluate.py ```