일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- MSAC
- kakao map
- gstreamer
- 영상처리
- binomial distribution
- matlab
- CoCo
- Poisson Distribution
- similarity
- vision
- DataLorder
- woodbury matrix identity
- dataset
- measure
- bernoulli distribution
- rotated RetinaNet
- AERIAL IMAGE
- entropy
- RANSAC
- Map
- MMrotate
- detection
- LDU decomposition
- schur complement
- OpenMMlab
- pytorch
- probability
- Today
- Total
끊임없이 부단히
[mmrotate] mmrotate로 rotated RetinaNet 돌려보기 본문
이번 포스팅에서는 open-mmlab의 mmrotate를 실행하려 합니다.
먼저 지난 포스팅에서 만든 환경에서 이어서 진행힙니다.
https://fictitious.tistory.com/4
mmrotate는 많은 object detection (특히, 회전된 bounding box 기반의) 기법들을 제공하고 있습니다.
rotated RetinaNet, rotated FasterFCNN, rotated RepPoints 등 아래 페이지에서 구현된 모델들을 확인할 수 있습니다.
https://github.com/open-mmlab/mmrotate
이번 포스팅에서는 그 중 rotated RetinaNet을 이용하려 합니다.
1. 데이터 셋 준비
데이터 셋이라고 제목을 적었지만 사실 테스트에 사용할 데이터만 준비합니다.
위 페이지의 tools/data에서 mmrotate에서 지원하는 데이터 셋을 확인할 수 있습니다.
저희는 그 중 DOTA 데이터 셋을 사용합니다.
DOTA 홈페이지에서 테스트를 위한 test 사진들을 다운로드 합니다.
mmrotate에서 해당 데이터를 사용하기 위해서는 영상 크기를 1024x1024로 잘라야 합니다.
이는 tools/data/dota/split의 img_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들로 배들을 잘 인식하는 것을 확인할 수 있습니다.
감사합니다.
'인공지능' 카테고리의 다른 글
[mmrotate] 나만의 데이터 셋으로 rotated RetinaNet 학습하기 (2) | 2022.10.14 |
---|---|
[mmrotate] mmrotate로 rotated RetinaNet 학습하기 (0) | 2022.10.13 |
[mmrotate] open-mmlab의 mmrotate docker로 실행하기 (0) | 2022.07.26 |
[Dataset] PyTorch의 Dataset 활용하기 (0) | 2022.07.22 |
[Dataset] Pycocotools를 이용한 COCO Dataset 확인하기 (0) | 2022.07.20 |