[오픈소스] MMRotate

Posted by Ryeoeun Kim on January 25, 2023 · 5 mins read

MMRotate는 Pytorch를 기반으로 하는 회전된 객체 감지(Rotated Object Detection)의 통합 구현, 평가를 위한 프레임워크입니다.

회전된 물체 감지(rotated object detection)란?

Demo Image

이미지출처

객체 감지(Object Detection)는 이미지에서 특정 클래스의 객체를 감지하는 컴퓨터 비전 기술 입니다. 이미지에서 감지된 객체 주위에 경계상자(bounding box)를 그려 해당 객체가 어디서 위치에 있는지 찾을 수 있습니다. 객체 카운팅, 얼굴 인식, 이상 감지, 자율 주행 등에서 사용됩니다.
회전된 객체 감지(Rotated Object Detection)은 각도가 포함된 회전된 경계상자로 물체를 감지합니다. 회전된 객체 감지를 사용하면 보다 정확하게 객체의 위치와 윤곽을 설명할 수 있습니다. 경계상자에 배경이 덜 포함되고 다른 물체가 겹치는 것을 방지할수 있습니다.

주요 기능

  • 다중 각도 표현 지원
    MMRotate는 서로 다른 논문 설정을 충족하기 위해 세 가지 주요 각도 표현을 제공합니다.
  • 모듈식 설계
    회전된 객체 감지 프레임워크를 여러 구성 요소로 분해하여 다양한 모듈을 결합하여 새 모델을 훨씬 쉽고 유연하게 구축할 수 있습니다.
  • 강력한 기준선 및 최신 기술
    이 도구 상자는 회전된 물체 감지에서 강력한 기준선과 최첨단 방법을 제공합니다.
Demo Image

구성 요소

MMRotate는 dataset, models, core, api 4가지 주요 부분으로 구성됩니다.

  • datasets 데이터 로딩, 데이터 증강을 위한 것입니다. pipelines에서는 이미지 전처리에 유용한 데이터 증강 변환인 회전된 객체 감지 알고리즘을 위한 다양한 데이터 세트를 지원합니다.
  • models 모델과 손실 함수를 포함합니다.
  • core 모델 교육 및 평가를 위한 평가 도구를 제공합니다.
  • apis 모델 교육, 테스트 및 추론을 위한 높은 수준의 API를 제공합니다.
Demo Image

MMRoate 모듈 디자인

회전된 상자의 정의가 다르기 때문에 다음 사항에 유의해야 합니다.
  • 주석 로드
  • 데이터 증강
  • 샘플 할당
  • 평가

회전된 상자(rotated box)

회전된 개체 감지와 일반 감지 간의 가장 눈에 띄는 차이점은 수평 상자 주석이 회전된 상자 주석으로 대체된다는 것입니다. 객체 감지의 경계상자를 HBB(Horizontal Bounding Box), 회전된 객체 감지에서 경계상자를 OBB(Oriented Bounding Box)라고 합니다.

  • HBB(Horizontal Bounding Box)
  • (x_center, y_center, width, height)
  • OBB(Oriented Bounding Box)
  • (x_center, y_center, width, height, theta)
    theta = angle * pi / 180
    MMRotate에서 각도 파라미터는 라디안 단위입니다.

회전 방향

회전된 상자는 중심점을 기준으로 수평 상자를 시계 방향 또는 시계 반대 방향으로 회전하여 얻을 수 있습니다. 회전 방향은 좌표계의 선택과 밀접한 관련이 있습니다. 오른손 좌표계는 (y, x)를 채택합니다 . 여기서 y는 up->down이고 x는 left->right입니다. 회전에는 두 가지 반대 방향이 있습니다.

시계방향(CW)

1
2
3
4
5
6
7
8
0-------------------> x (0 rad)
|  A-------------B
|  |             |
|  |     box     h
|  |   angle=0   |
|  D------w------C
v
y (pi/2 rad)
cs

반시계방향(CCW)

1
2
3
4
5
6
7
8
9
0-------------------> x (0 rad)
|  A-------------B
|  |             |
|  |     box     h
|  |   angle=0   |
|  D------w------C
v
y (-pi/2 rad)
 
cs

회전된 상자의 정의

Demo Image

MMRotate에서 지원하는 데이터셋

  • DOTA
  • 예시) DOTA 형식의 주석 txt 파일
    x1, y1, x2, y2, x3, y3, x4, y4, Category, Difficulty
    184 2875 193 2923 146 2932 137 2885 plane 0
    66 2095 75 2142 21 2154 11 2107 plane 0

    Difficulty는 객체가 감지하기 어려운지 여부를 나타냅니다(1은 어려움, 0은 어렵지 않음)
  • SSDD
  • 딥 러닝(DL)을 기반으로 SAR(Synthetic Aperture Radar) 이미지에서 선박 탐지 데이터 세트
    (1) 경계 상자 SSDD(BBox-SSDD)
    (2) 회전 가능한 경계 상자 SSDD(RBox-SSDD)
    (3) 다각형 분할 SSDD(PSeg-SSDD)
    Demo Image (a) RBox in a SAR image           (b) xml annotation details.
    하나의 RBox는 A ( x 1, y 1), B ( x 2, y 2), C ( x 3, y 3), D ( x 4, y 4)의 4개의 정점으로 설명될 수 있습니다.
  • HRSC
  • HRSID

References

https://github.com/open-mmlab/mmrotate https://mmrotate.readthedocs.io/en/latest/