끊임없이 부단히

[mmrotate] mmrotate로 rotated RetinaNet 돌려보기 본문

인공지능

[mmrotate] mmrotate로 rotated RetinaNet 돌려보기

허구의 2022. 10. 12. 00:50

이번 포스팅에서는 open-mmlab의 mmrotate를 실행하려 합니다.

먼저 지난 포스팅에서 만든 환경에서 이어서 진행힙니다.

 

https://fictitious.tistory.com/4

 

[mmrotate] open-mmlab의 mmrotate docker로 실행하기

이번 포스팅에서는 open-mmlab의 mmrotate를 실행하려 합니다. 우선 git clone을 해주고 폴더 이동을 합니다. git clone https://github.com/open-mmlab/mmrotate.git cd mmrotate 참고로 github 주소는 아래와 같..

fictitious.tistory.com

 

mmrotate는 많은 object detection (특히, 회전된 bounding box 기반의) 기법들을 제공하고 있습니다.

rotated RetinaNet, rotated FasterFCNN, rotated RepPoints 등 아래 페이지에서 구현된 모델들을 확인할 수 있습니다.

https://github.com/open-mmlab/mmrotate

 

GitHub - open-mmlab/mmrotate: OpenMMLab Rotated Object Detection Toolbox and Benchmark

OpenMMLab Rotated Object Detection Toolbox and Benchmark - GitHub - open-mmlab/mmrotate: OpenMMLab Rotated Object Detection Toolbox and Benchmark

github.com

이번 포스팅에서는 그 중 rotated RetinaNet을 이용하려 합니다.

 

 


1. 데이터 셋 준비

 

데이터 셋이라고 제목을 적었지만 사실 테스트에 사용할 데이터만 준비합니다.

위 페이지의 tools/data에서 mmrotate에서 지원하는 데이터 셋을 확인할 수 있습니다.

저희는 그 중 DOTA 데이터 셋을 사용합니다.

DOTA 홈페이지에서 테스트를 위한 test 사진들을 다운로드 합니다.

 

 

mmrotate에서 해당 데이터를 사용하기 위해서는 영상 크기를 1024x1024로 잘라야 합니다.

이는 tools/data/dota/splitimg_split.py를 이용하여 편하게 처리할 수 있습니다.

split_configs 폴더 안의 json 파일들을 이용하여 데이터 셋 위치나 저장 위치 등을 설정할 수 있습니다.

여기서 ss와 ms는 single / multi scale을 의미합니다.

저희는 테스트 파일만 사용하므로 ss_test.json만 사용합니다.

 

python tools/data/dota/split/img_split.py --base-json \
  tools/data/dota/split/split_configs/ss_test.json

 

추가로, ss_test.json에 설정된 위치와 data_root(configs/_base_/datasets/dotav1.py에서 설정) 위치가 다르기 때문에,

같게 수정해야합니다.

저희는 1024x1024 크기로 분리된 데이터 폴더 이름을 'split_1024_dota1_0'로 수정하였습니다.

 

 

준비된 테스트 용 영상 중 하나는 아래와 같습니다.

 


2. Rotated RetinaNet 실행

먼저, configs/rotated_ratinanet에 CONFIG_FILE 들이 있으며 CHECKPOINT_FILE도 다운받을 수 있습니다.

CHECKPOINT_FILE 까지 준비가 되었다면 tools/test.py를 이용하여 테스트를 진행합니다.

 

python tools/test.py \
  configs/rotated_retinanet/rotated_retinanet_obb_r50_fpn_1x_dota_le90.py \
  checkpoints/SOME_CHECKPOINT.pth \
  --show-dir myDir/vis

 

출력: 

 

결과를 보면 회전된 bounding box들로 배들을 잘 인식하는 것을 확인할 수 있습니다.

 

 

 

감사합니다.

Comments