Home

Awesome

Kaggle Airbus Ship Detection Challenge : 21st solution

This project is for Kaggle competiton Airbus Ship Detection Challenge.

It can help you quickly get a baseline solution, which is not bad.

infer_example

Related article

These guides are only in Chinese:

Kaggle新手银牌(21st):Airbus Ship Detection 卫星图像分割检测

用Mask R-CNN训练自己的COCO数据集(Detectron)

辅助操作指南:Docker使用、镜像制作、Demo运行...

File strcture

airbus                         
├─0_rle_to_coco                0、turn rle to coco
│  └─pycococreatortools
|
├─1_detectron_infer            1、files needed to be changed in detectron
|  ├─dataset_catalog.py            # ./detectron/datasets/dataset_catalog.py
│  ├─dummy_datasets.py             # ./detectron/datasets/dummy_datasets.py 
│  └─infer_airbus.py               # ./tools/infer_simple.py    
|
├─2_model                      2、model and trainning log
│  ├─log                           log and visualization script
│  └─model                         configure file and .pkl (.pkl not be uploaded)
|
└─3_submit                     3、generate your submission
   └─csv                           reference .csv file

Steps

1. Generate COCO standard dataset

Run codes in ./0_rle_to_coco. The guide has been written in markdwon file ./0_rle_to_coco/README.md

dataset annotation

2. Get Detectron environment

My codes are based on Detectron. So before using it, you need to install caffe2, which is quite troublesome. You can use my docker image, which is a little out of date, by the following command:

$ docker pull pascal1129/detectron:caffe2_cuda9_aliyun

In order to get the latest docker image, you can build the latest image with the official dockerfile: Detectron/docker/Dockerfile.

3. Msodify the source code in detectron

My codes are in the folder ./1_detectron_infer/, you can replace the origin files in detectron with my codes.

my codeorigin code needed to be replaced
dataset_catalog.py./detectron/datasets/dataset_catalog.py
dummy_datasets.py./detectron/datasets/dummy_datasets.py
infer_airbus.py./tools/infer_simple.py

4. Change the configuration file and run

Confirm the .yaml file in ./2_model/model/ and start training. In addition, remember to use |tee command, so you can get the log file like ./2_model/log/20181103.log

5. Visualization

Run ./2_model/analyse_log.py, then you can get the visualization picture.

result

6. Get the final submission

Run ./3_submit/get_final_csv.py.