개요
RTMDet: AnEmpirical Study of Designing Real-Time Object Detectors 논문의 얕은 리뷰. Github의 mmdetection 리포지토리 기반으로 개발되었다.
RTMDet은 단순 객체 감지 뿐 아니라 인스턴스 세그멘테이션, 회전 객체 감지까지 가능한 모델을 제안한다. 이를 모델 구조의 개선과 학습 전략의 효율화를 통해 달성한다.
방법론
- 일반적인 원-스테이지 객체 감지기는 백본(backbone), 넥(neck), 헤드(head) 형태를 가지고, 본 논문은 이러한 구조상에서 더 성능을 높이기 위한 기본 블록을 탐색하고 회전 객체검출, 인스턴스 세그멘테이션을 위한 헤드를 추가한다.
- CSPDarkNet 의 기본 빌딩 블록에 5x5 depth-wise convolution 을 도입하여 수용 영역(receptive field) 크기를 늘린다. 이는 dilated convolution, non-local 블록보다 연산 효율성을 높인다.
- 블록의 수를 줄이는 대신 너비를 늘려 모델의 전체 용량을 유지하면서 병렬처리의 효율성을 향상 시킨다.
- 멀티스케일 피쳐를 다루기 위해 넥 구조가 중요한데, 이에 대해 백본과 넥의 용량의 밸런스를 맞추기 위한 조정을 실시한다.
- 객체 감지 헤드에서 다른 모델들은 파라미터 공유를 주로 하지 않는데, 본 논문에서는 헤드의 파라미터는 기본적으로 공유하되, 스케일 마다 다른 Batch Normalization 을 적용한다. 이는 파라미터 수를 줄이면서도 정확도를 유지하는 효과를 가져온다.
- 단순 이진 하드라벨을 사용하는 것이 아닌, 분류, 회귀, 중심영역 비용의 가중합을 이용한 소프트 라벨링을 제안한다.
- 분류, 회귀, 중심영역에 대한 loss function은 클래스의 일치, IoU, Center x,y 좌표의 일치 정도를 반영한다.
- 캐시된 Mosaic, MixUp 전략을 활용하여 데이터 로딩 시간을 감소시켜 학습의 속도를 향상 시키고, 이 정도를 캐시의 길이와 제거 전략을 통해 제어한다.
- 학습을 두 단계로 나누어, 280 에폭까지는 강한 증강을 적용하며, 마지막 20 에폭에는 Large Scale Jittering 및 파인튜닝을 적용한다.
- 위와 같은 방식을 적용한 뒤 인스턴스 세그멘테이션과 회전 객체 검출 작업을 적용한다.
- RTMDet에 커널 에측 및 마스크 피쳐 생성 헤드를 추가하여 169차원 벡터로 인스턴스를 예측하고 3개의 dynamic convolution 커널을 이용하여 인스턴스를 분할한다.
- 회전 객체 검출을 위해 기존 회귀 브랜치에 회전 각도를 예측하는 1x1 convolution layer를 추가한다.
- GIoU 손실을 회전 IoU 손실로 교체하며, 기존의 RTMDet 모델과 대부분의 파라미터를 공유하여 Pre-train도 용이하고 최소한의 수정으로 높은 성능을 달성한다.
결론
본 논문은 RTMDet-tiny/s/m/l/x 의 여러 스케일로 된 객체 감지기를 제안하며 이를 기반으로 인스턴스 세그멘테이션과 회전 객체 검출 작업까지도 해결한다. 비교 모델이었던 YOLOv5, YOLOv6 등의 방법론과 비교하여 더 낮은 파라미터 대비 높은 효율 및 성능을 달성한다. 해당 모델을 더욱 산업용 어플리케이션에 가깝도록 실용성을 끌어 올렸다.
번역
Abstract
본 논문에서는 YOLO 계열을 뛰어넘는 효율적인 실시간 객체 검출기를 설계하고, 인스턴스 세그멘테이션 및 회전 객체 검출과 같은 다양한 객체 인식 작업에도 쉽게 확장할 수 있는 방법을 제시한다. 이를 위해, 백본(backbone)과 넥(neck)의 용량을 조화롭게 설계한 모델 구조를 탐구하며, 특히 큰 커널을 사용하는 깊이별 합성곱(large-kernel depth-wise convolution)을 기본 블록으로 채택했다. 또한 동적 라벨 할당(dynamic label assignment) 과정에서 매칭 비용을 계산할 때 소프트 라벨(soft labels)을 적용하여 정확도를 향상시킨다. 향상된 학습 기법과 결합된 최종 객체 검출기인 RTMDet는, NVIDIA 3090 GPU에서 초당 300장 이상의 처리 속도로 COCO 벤치마크에서 52.8% AP를 달성하여 현재 산업계 주류 검출기들의 성능을 뛰어넘는 결과를 보였다. RTMDet는 tiny, small, medium, large, extra-large 등 다양한 모델 크기에서 최고의 파라미터-정확도 균형을 제공하며, 실시간 인스턴스 세그멘테이션과 회전 객체 검출에서도 새로운 최고 성능을 기록한다. 우리는 이 실험 결과가 다방면의 객체 인식 작업에서 활용할 수 있는, 범용적이고 실시간에 적합한 객체 검출기를 설계하는 데 새로운 통찰을 제공할 것이라 기대한다. 소스 코드와 모델은 https://github.com/open-mmlab/mmdetection/tree/3.x/configs/rtmdet 에 공개되어 있다.
1. Introduction
객체 검출에서는 특히 자율주행, 로보틱스, 드론 등 실제 환경에서의 활용을 위해 최적의 효율성을 확보하는 것이 항상 핵심 과제다. 이를 위해 YOLO 계열 연구 [3, 21, 25, 42, 63–65, 71]에서는 단발 검출(one-stage detection) 방식의 모델 구조와 학습 기법을 다양하게 발전시켜 정확도와 효율성을 동시에 높여 왔다.
본 보고서에서는 YOLO 계열의 한계를 뛰어넘고, 이전 연구에서 다루지 않았던 인스턴스 세그멘테이션과 회전 객체 검출까지 가능한 새로운 범주의 실시간 객체 검출 모델인 RTMDet를 제안한다. 주요 성능 향상 요인은, 큰 커널을 사용하는 깊이별 합성곱을 통해 모델 표현력을 높이고, 동적 라벨 할당 과정에 소프트 라벨을 적용하여 최적화 방식을 개선한 데서 비롯된다.
구체적으로는, 먼저 모델의 백본(backbone)과 넥(neck)에 포함된 기본 블록에서 큰 커널의 깊이별 합성곱(large-kernel depth-wise convolution)을 활용하여 전역 맥락(global context) 정보를 더욱 잘 포착하도록 했다 [15]. 그러나 깊이별 합성곱을 블록 내부에 직접 배치하면 모델 깊이가 깊어져 추론 속도가 느려지기 때문에, 우리는 블록 개수를 줄여 모델 깊이를 낮추고 대신 너비를 키워 모델의 용량을 보완했다. 또한 넥(neck)의 파라미터를 늘려 백본(backbone)과 균형을 맞추면, 속도와 정확도 간 트레이드오프를 개선할 수 있음을 확인했다. 이를 종합적으로 적용한 RTMDet는 모델 재파라미터화 기법 [42, 71, 84] 없이도 빠른 추론 속도를 달성한다.
우리는 모델 정확도를 높이기 위해 학습 전략 역시 재검토했다. 구체적으로 데이터 증강, 최적화, 학습 스케줄을 더 적절히 조합하는 것 외에도, 기존의 동적 라벨 할당 기법 [19, 21]을 사용할 때 매칭 과정에서 경직된 이진 라벨 대신 소프트 라벨을 도입함으로써 추가적인 성능 향상을 이룰 수 있음을 실험적으로 확인했다. 이는 고품질 매칭을 위한 비용 행렬의 변별력을 높임과 동시에 라벨 할당 과정에서 발생하는 잡음을 줄여, 모델 정확도를 향상한다.
RTMDet는 범용성이 높아, 소규모 수정만으로 인스턴스 세그멘테이션이나 회전 객체 검출로 쉽게 확장할 수 있다. 예를 들어 [11, 69]에서처럼 별도의 커널과 마스크 특성 추출 헤드(mask feature generation head)만 추가하면, 전체 파라미터가 약 10% 정도만 늘어난 상태에서 인스턴스 세그멘테이션이 가능하다. 회전 객체 검출의 경우, 단순히 박스 회귀(regression) 레이어의 차원을 4에서 5로 확장하고, 회전 박스 디코더로 전환하면 된다. 우리는 또한 일반 객체 검출용 데이터셋 [48]에서 사전 학습(pre-training)한 것이 항공 영상 분야 [81]에서의 회전 객체 검출에 유리함을 확인했다.
다양한 실험을 통해 RTMDet의 효용성을 입증하고, 이를 여러 응용 환경에 맞춰 tiny, small, medium, large, extra-large 모델로 확장했다. 그림 1에서 확인할 수 있듯이, RTMDet는 기존 기법들 [3, 21, 25, 65]보다 파라미터와 정확도 간 균형이 우수하고 [3, 21, 25, 42, 63–65, 71] 대비 뛰어난 성능을 달성한다. 구체적으로 RTMDet-tiny는 파라미터가 480만 개에 불과함에도 1020 FPS에서 41.1% AP를 기록했으며, RTMDet-s는 초당 819 프레임에서 44.6% AP를 달성하여 이전 최고 성능을 능가한다. 인스턴스 세그멘테이션과 회전 객체 검출에도 RTMDet를 확장 적용한 결과, COCO val 세트 기준 초당 180프레임에서 마스크 AP 44.6%, DOTA v1.0에서는 81.33% AP를 달성하며 실시간 처리 영역에서 새로운 최고 성능을 확보했다.
2. Related Work
Efficient neural architecture for object detection.
객체 검출의 목표는 장면 내 객체를 인식하고 위치를 찾는 것이다. 실시간 처리 관점에서, 기존 연구들은 주로 앵커 기반(Anchor-based) [47, 50, 64] 또는 앵커 프리(Anchor-free) [70, 98] 형태의 단발(One-stage) 검출기를 탐구해왔고, 이와 대조적으로 이단계(Two-stage) 검출기 [5, 24, 59, 66]는 상대적으로 덜 활용되었다. 모델 효율성을 높이기 위해, 직접 설계한(backcrafted) 혹은 신경망 구조 탐색(Neural Architecture Search) [10, 17, 23, 74] 기반으로 효율적인 백본 네트워크나 모델 스케일링 전략 [3, 41, 71], 멀티스케일 특성 강화 [7, 23, 36, 46, 49, 68]가 시도되고 있다. 최근에는 모델 재파라미터화 기법 [14, 42, 71, 84]을 통해 모델 배포 후 추론 속도를 높이는 시도도 진행되고 있다. 본 논문에서는 백본과 넥(neck)의 용량을 조화롭게 설계한 새로운 기본 블록을 제안함으로써, 큰 커널 기반 깊이별 합성곱을 활용해 더 효율적인 객체 검출 모델 구조를 소개한다.
Label assignment for object detection.
객체 검출 모델을 개선하기 위한 또 다른 관점은 라벨 할당 및 학습 손실 함수를 어떻게 설계하느냐이다. 초기 연구들 [5, 47, 50, 66]은 라벨 할당 시 예측 박스나 앵커와 정답 박스의 IoU를 기준으로 매칭을 수행했다. 이후 [37, 70, 95, 98]에서는 객체 중심점(center) [70, 98] 등 다양한 매칭 기준을 추가로 시도하였다. 학습 속도 향상과 안정화를 위해 보조 검출 헤드를 추가하는 연구 [62, 71]도 있다. 엔드투엔드 객체 검출을 위한 Hungarian Assignment[6] 에서 영감을 받은 동적 라벨 할당 기법 [19–21]은 수렴 속도와 모델 정확도를 크게 높인다고 알려져 있다. 그러나 기존 방법들이 손실 함수와 동일한 비용 함수를 사용하여 매칭을 수행하는 것과 달리, 우리는 소프트 라벨을 적용해 고품질 매칭과 저품질 매칭의 경계를 더 명확히 구분하고, 이로써 학습을 안정화하고 수렴을 가속하는 방식을 제안한다.
Instance segmentation.
인스턴스 세그멘테이션(Instance segmentation). 인스턴스 세그멘테이션은 관심 객체의 각 픽셀에 해당하는 마스크를 예측하는 문제를 다룬다. 초기 연구들은 마스크 분류 [60,61], ‘탑다운(Top-Down)’ [8,31], ‘바텀업(Bottom-Up)’ [1,39,58] 등 다양한 접근을 시도해왔다. 최근에는 바운딩 박스를 사용하거나 [4,69], 사용하지 않으면서 [76,77,96] 단일 단계(one-stage)로 인스턴스 세그멘테이션을 수행하는 방법들이 제안되었다. 이 중 다이나믹 커널(dynamic kernel) [69,77,96] 기반 접근은 학습된 파라미터 [96] 또는 조밀한 특성 맵 [69,77]을 통해 커널을 동적으로 생성한 뒤, 이를 마스크 특성 맵에 합성곱으로 적용하여 세그멘테이션을 진행한다. 이러한 연구들에서 영감을 받아, 우리는 RTMDet에 커널 예측 및 마스크 특성 헤드 [69]를 추가하여 인스턴스 세그멘테이션 기능을 구현한다.
Rotated object detection.
회전 객체 검출은 객체의 위치와 범주뿐 아니라 회전 각도까지 함께 예측하는 문제다. 기존 범용 검출기(예: RetinaNet [47], Faster R-CNN [66])를 기반으로, 객체 회전으로 인한 특성 불일치를 완화하기 위해 [28, 29, 88] 등 다양한 특성 추출 네트워크들이 제안되어 왔다. 또한, 회전 박스 회귀를 단순화하기 위해 (Gaussian 분포 [89, 90], 볼록 집합(convex set) [26, 44] 등) 다양한 표현 기법이 탐구되어 왔다. 본 논문에서는 이와 달리, 일반 객체 검출기에 최소한의 수정(예: 각도 예측 브랜치를 추가하고 GIoU [67] 대신 회전 IoU Loss [97]를 사용)을 가하는 방식만으로 고정밀 객체 검출 모델을 달성하고, 일반 객체 검출 모델의 구조적 특성과 범용 검출 데이터셋 [48]에서 습득된 지식이 고정밀 회전 객체 검출을 가능케 함을 보인다.
3. Methodology
본 연구에서는 Real-Time Models for object Detection, 즉 RTMDet라는 새로운 계열의 모델을 제안한다. RTMDet의 거시(Macro) 구조는 전형적인 단발(one-stage) 객체 검출기 형태이며(3.1절 참고), 백본(backbone)과 넥(neck)의 기본 블록에서 큰 커널 합성곱을 활용하고, 모델의 깊이·너비·해상도를 균형 있게 조정해(3.2절 참고) 모델 효율성을 높였다. 또한 동적 라벨 할당 기법에 소프트 라벨을 적용하고, 데이터 증강 및 최적화 전략을 개선하여 모델 정확도를 향상하는 방법을 모색했다(3.3절 참고). RTMDet는 인스턴스 세그멘테이션이나 회전 객체 검출과 같은 다양한 인식 작업으로도 소규모 수정만으로 확장 가능한 범용 객체 인식 프레임워크다(3.4절 참고).
3.1. Macro Architecture
단일 단계 객체 검출기의 거시 구조는 크게 백본(backbone), 넥(neck), 헤드(head)로 나눌 수 있으며, 그림 2에 이를 나타냈다. 최근 YOLO 계열 연구 [3, 21]에서는 보통 CSPDarkNet [3]을 백본으로 채택하는데, 이 백본은 4개 스테이지로 구성되며 각 스테이지는 여러 개의 기본 블록(그림 3.a)으로 쌓여 있다. 넥(neck)은 백본에서 추출된 멀티스케일 특성 피라미드를 받아, 동일한 기본 블록을 사용한 상향(bottom-up)·하향(top-down) 피처 전파 기법 [46, 49]을 통해 피라미드 특성 맵을 보강한다. 이후 검출 헤드(detection head)는 각 스케일의 특성 맵을 바탕으로 객체의 경계 박스와 범주를 예측한다. 이 구조는 범용 객체와 회전 객체 검출에도 적용 가능하며, 추가로 커널과 마스크 특성 추출 헤드 [69]를 붙이면 인스턴스 세그멘테이션에도 확장할 수 있다.
우리는 먼저 거시 구조의 잠재력을 최대화하기 위해 더 강력한 기본 블록들을 탐색하고, 이어서 전체 구조에서 연산 병목이 어디서 발생하는지를 조사하여 백본과 넥의 깊이·너비·해상도를 균형 있게 조절하는 방안을 모색했다.
3.2. Model Architecture
Basic building block.
백본(backbone)의 유효 receptive field가 크면 객체 검출이나 세그멘테이션 같은 조밀 예측(dense prediction) 작업에서 전역 맥락(image context)을 더욱 잘 포착하고 모델링할 수 있어 유리하다 [56]. 그러나 기존 연구(예: 팽창 합성곱(dilated convolution) [92], 논-로컬 블록(non-local) [75])들은 연산 비용이 커서 실시간 객체 검출에는 활용이 제한적이었다. 최근 연구 [15, 52]에서는 큰 커널 합성곱(large-kernel convolution)을 다시 주목하면서, 깊이별 합성곱(depth-wise convolution) [35]을 사용해 적절한 연산 비용으로 receptive field를 확장할 수 있음을 보였다. 이에 영감을 받아, 우리는 CSPDarkNet [3]의 기본 빌딩 블록에 5×5 깊이별 합성곱을 도입하여(그림 3.b) 유효 receptive field를 늘렸다. 이를 통해 맥락 정보를 더 폭넓게 모델링할 수 있고, 정확도도 크게 개선된다.
주목할 점은, 일부 실시간 객체 검출기 [42, 71, 84]에서 재파라미터화된 3×3 합성곱(re-parameterized 3×3 convolutions) [14]을 기본 블록에 적용하고 있다는 것이다. 재파라미터화된 3×3 합성곱은 추론 시 정확도를 높이는 ‘공짜 점심’처럼 여겨지지만, 학습 속도 저하와 학습 메모리 증가 같은 부작용도 가져온다. 또한 모델을 저비트로 양자화(quantization)할 때 오차 격차(error gap)가 커지므로, 재파라미터화된 옵티마이저 [13]나 양자화 인식 학습(quantization-aware training) [42] 같은 보정 과정이 필요하다. 반면 큰 커널 깊이별 합성곱은 학습 비용이 적게 들고 양자화 시 오차 격차도 작아, 재파라미터화된 3×3 합성곱에 비해 기본 빌딩 블록에 더 단순하고 효율적인 대안이 될 수 있다.
Balance of model width and depth.
큰 커널 깊이별 합성곱(그림 3.b) 뒤에 추가되는 포인트와이즈 합성곱(point-wise convolution) 때문에 기본 블록의 레이어 수도 늘어나 병렬 처리가 어려워지고, 결과적으로 추론 속도가 떨어질 수 있다. 이를 해결하기 위해, 각 백본 스테이지의 블록 수를 줄이고 대신 블록의 너비를 적절히 늘려 병렬성을 확보함과 동시에 모델 용량(capacity)을 유지하도록 했다. 이를 통해 정확도 손실 없이 추론 속도를 향상했다.
Balance of backbone and neck.
멀티스케일 피처 피라미드는 다양한 크기의 객체를 검출하기 위해 필수적이다. 멀티스케일 특성을 강화하기 위해서는 일반적으로 파라미터가 큰 백본을 사용하거나, 연결과 피처 융합이 많은 무거운 넥(neck) [36, 68]을 활용한다. 하지만 이 경우 연산량과 메모리 사용량이 크게 늘어난다. 따라서 우리는 백본과 넥의 용량을 서로 맞추는 또 다른 전략을 채택했다. 즉, 넥에서 기본 블록의 확장 비율(expansion ratio)을 높여 백본과 유사한 수준의 용량을 갖추게 함으로써, 계산량과 정확도 간 더 나은 균형을 얻도록 했다.
Shared detection head
실시간 객체 검출기들은 대개 스케일마다 서로 다른 검출 헤드 [3, 21, 25, 50]를 사용해 모델 용량을 확보하고 정확도를 높이는 방식을 택하며, 스케일별로 헤드를 공유하지 않는 경우가 많다 [47, 70]. 본 논문에서는 여러 설계를 비교해 본 뒤, 스케일 간에 헤드의 파라미터를 공유하되, 정확도를 유지하기 위해 각 스케일마다 다른 배치 정규화(BN) 레이어를 적용하는 방식을 채택했다. BN은 추론 시 학습 중 계산된 통계값을 그대로 사용하므로, Group Normalization [79] 등에 비해 추론 효율이 높다는 장점이 있다.
3.3. Training Strategy
Label assignment and losses.
단일 단계 객체 검출기를 학습하기 위해서는, 각 스케일에서 나온 조밀 예측 결과를 다양한 라벨 할당 기법 [19, 47, 70]을 통해 정답 경계 박스(ground truth bounding boxes)와 매칭해야 한다. 최근에는 학습 손실과 동일한 비용 함수를 사용하는 동적 라벨 할당 기법 [6, 20, 21]이 주로 활용되고 있지만, 이들의 비용 계산 방식에는 몇 가지 한계가 존재함을 발견했다. 이에 우리는 SimOTA [21]를 기반으로 소프트 라벨을 적용한 동적 라벨 할당 전략을 제안하며, 그 비용 함수는 아래와 같이 정의된다.
\[C= \lambda_1C_{cls}+\lambda_2C_{reg}+\lambda_3C_{center}, \tag{1}\]여기서 $C_{cls}$, $C_{center}$, $C_{reg}$ 는 각각 분류 비용, 중심 영역 비용, 회귀 비용을 의미하며, $λ_1=1, λ_2=3, λ_3=1$ 로 설정되어 있다. 이 세 비용 항의 계산 과정은 아래에서 자세히 설명한다.
이전 기법들은 대개 이진 라벨을 사용해 분류 비용 $C_{cls}$ 을 계산하는데, 이는 예측 경계 박스가 잘못된 경우라도 분류 점수가 높으면 낮은 비용을 얻을 수 있는 문제를 일으킨다. 이를 해결하기 위해 우리는 아래와 같이 $C_{cls}$ 에 소프트 라벨을 도입했다.
이 수정 사항은 GFL [45]에서 영감을 얻었으며, 예측 결과와 정답 박스의 IoU를 소프트 라벨 $Y_{soft}$ 로 활용해 분류 브랜치를 학습하는 방식을 따른다. 할당 과정에서 소프트 분류 비용을 사용하면, 서로 다른 회귀 품질을 가진 매칭에 대해 비용을 재조정할 수 있을 뿐 아니라, 이진 라벨에서 발생하던 잡음과 불안정한 매칭도 방지할 수 있다.
회귀 비용으로 Generalized IoU [67]를 사용할 경우, 최적 매칭과 최악 매칭 간의 차이가 1 미만이어서 고품질 매칭과 저품질 매칭을 구분하기가 어려워진다. 이에 우리는 매칭의 변별력을 높이기 위해 손실 함수에서는 GIoU를 쓰되, 할당 비용 계산 시에는 IoU의 로그를 취한 값을 회귀 비용으로 사용한다. 이렇게 하면 IoU 값이 낮은 매칭일수록 비용이 커지므로 고품질 매칭과 저품질 매칭을 더욱 뚜렷하게 구분할 수 있다. 수식으로는
로 정의된다.
영역 비용 $C_{center}$ 의 경우, 기존 연구 [20, 21, 95]에서 사용되는 고정 중심 영역(fixed center prior) 대신 소프트 중심 영역 비용을 사용해 동적 비용 매칭을 안정화한다. 수식은 다음과 같다.
여기서 $α$와 $β$는 소프트 중심 영역의 하이퍼 파라미터이며, 각각 10, 3으로 설정했다.
Cached Mosaic and MixUp.
MixUp [94]이나 CutMix [93] 같은 교차 샘플 기반 데이터 증강 기법은 최근 객체 검출 연구 [3, 21, 25, 42, 71]에서 널리 활용되고 있다. 이러한 증강은 강력하지만, 두 가지 부작용이 있다. 첫째, 각 반복(iteration)마다 여러 이미지를 불러와 하나의 학습 샘플로 합성해야 하므로 데이터 로딩 비용이 증가해 학습 속도가 느려진다. 둘째, 이렇게 생성된 학습 샘플은 ‘노이즈’가 포함되어 실제 데이터셋 분포와 달라질 수 있어, 모델 학습에 부정적 영향을 줄 수 있다 [21].
우리는 이러한 문제를 해결하기 위해 캐시(caching) 메커니즘을 적용한 Mosaic와 MixUp을 제안한다. 캐시를 활용하면 학습 파이프라인에서 이미지를 합성하는 데 드는 시간 비용을 단일 이미지 처리 수준으로 크게 줄일 수 있다. 캐시는 캐시 길이(cache length)와 제거(popping) 방식으로 동작을 제어하는데, 캐시 길이가 크고 제거 방식이 랜덤이면 기존의 캐시 없는 MixUp/Mosaic과 거의 동일한 동작을 수행한다. 반면, 캐시 길이가 작고 선입선출(FIFO) 방식을 쓰면 반복 증강(repeated augmentation) [2]과 유사한 효과를 낼 수 있어, 동일 이미지를 같은 혹은 인접한 배치에서 다른 증강 기법과 함께 합성하는 것이 가능해진다.
Two-stage training.
강력한 데이터 증강이 초래하는 ‘노이즈’ 샘플의 부작용을 줄이기 위해, YOLOX [21]에서는 이단계(two-stage) 학습 전략을 도입했다. 첫 번째 단계에서는 Mosaic, MixUp, 무작위 회전 및 왜곡(shear) 등 강한 증강을 사용하고, 두 번째 단계에서는 무작위 리사이즈와 뒤집기(flipping)처럼 상대적으로 약한 증강을 적용한다. 초기 학습 단계에서의 강한 증강에는 무작위 회전과 왜곡이 포함되어 입력과 변환된 박스 어노테이션 사이에 불일치가 발생하기 때문에, YOLOX는 두 번째 단계에서 회귀(regression) 브랜치를 미세 조정하기 위해 L1 손실을 추가한다. 본 논문에서는 데이터 증강과 손실 함수를 분리하기 위해 이러한 회전·왜곡 증강을 제외하고, 첫 280 에포크의 학습에서 혼합되는 이미지 수를 8로 늘려 증강 효과를 보강한다. 이후 마지막 20 에포크 동안에는 Large Scale Jittering(LSJ) [22]로 전환하여, 실제 데이터 분포와 더욱 밀접하게 맞춰 모델을 미세 조정한다. 또한 학습을 더욱 안정화하기 위해, 합성곱 기반 객체 검출에서는 드물게 사용되지만 비전 트랜스포머 [16]에서는 기본으로 쓰이는 AdamW [55] 옵티마이저를 채택했다.
3.4. Extending to other tasks
Instance segmentation.
우리는 RTMDet에 간단한 수정만으로 인스턴스 세그멘테이션 기능을 추가해, 이를 RTMDet-Ins라 명명했다. 그림 4에서 보이듯, RTMDet 위에 커널 예측 헤드와 마스크 특성 생성 헤드 [69]를 추가했다. 마스크 특성 헤드는 4개의 합성곱 레이어로 구성되며, 멀티 레벨 특성으로부터 8채널 마스크 특성을 추출한다. 커널 예측 헤드는 각 인스턴스별로 169차원의 벡터를 예측하고, 이 벡터는 세 개의 다이나믹 합성곱 커널로 분할되어 마스크 특성 및 좌표 특성과 상호작용하여 인스턴스 세그멘테이션 마스크를 생성한다. 마스크 주석에 내재된 사전 정보를 더 활용하기 위해, 동적 라벨 할당에서 박스 중심 대신 마스크의 질량 중심(mass center)을 소프트 영역 중심으로 사용했다. 인스턴스 마스크의 손실은 일반적으로 쓰이는 dice loss [57]를 적용한다.
Rotated object detection.
회전 객체 검출과 일반(수평) 객체 검출은 유사점이 많으므로, RTMDet를 회전 객체 검출기 RTMDet-R로 변환하는 데에는 세 단계면 충분하다. (1) 회귀(regression) 브랜치에 1×1 합성곱 레이어를 추가해 회전 각도를 예측하도록 만들고, (2) 박스 코더(box coder)를 회전 박스 형태로 수정하며, (3) GIoU 손실을 회전 IoU 손실(Rotated IoU loss)로 교체하면 된다. RTMDet는 이미 고도로 최적화된 모델 구조를 갖추고 있어, 회전 객체 검출 작업에서도 RTMDet-R가 높은 성능을 낼 수 있다. 또한 RTMDet-R는 RTMDet와 대부분의 파라미터를 공유하므로, 일반 객체 검출용 데이터셋(예: COCO)을 활용해 사전 학습한 RTMDet 모델 가중치를 회전 객체 검출의 초기값으로 사용할 수 있다.
4. Experiments
4.1. Implementation Details
Object detection and instance segmentation.
우리는 COCO 데이터셋 [48]을 사용하여 실험을 수행했으며, 해당 데이터셋은 train2017 세트에 약 11.8만 장의 이미지, val2017 세트에 5000 장의 이미지를 포함하고 있다. 소거 연구(ablation study)를 위해, train2017 세트에서 300 에포크(epoch) 동안 모델을 학습한 후 val2017 세트에서 검증을 수행했다. 하이퍼파라미터는 표 1에 정리되어 있다. 모든 객체 검출 및 인스턴스 세그멘테이션 모델은 NVIDIA A100 GPU 8장에서 학습되었다. 모델 성능은 바운딩 박스 AP (bbox AP) 및 마스크 AP (mask AP) [48]를 기준으로 평가했다.
객체 검출 테스트 시, 바운딩 박스를 필터링하는 점수 임곗값(score threshold) 은 0.001로 설정되며, 비최대 억제(NMS, Non-Maximum Suppression) 전에 적용된다. 검증을 위해 상위 300개의 박스만 유지하는데, 이는 이전 연구 [25, 42, 71]와 동일한 설정으로 공정한 비교를 보장한다. 그러나 소거 연구 과정에서 계산 속도를 높이기 위해 점수 임곗값을 0.05로 조정하고 결과 유지 개수를 100개로 줄였으며, 이로 인해 약 0.3% AP의 정확도 감소가 발생할 수 있다.
Rotated object detection.
우리는 DOTA 데이터셋 [81]을 사용하여 실험을 수행했으며, 해당 데이터셋은 2,800개의 항공 이미지 및 18.8만 개의 객체 인스턴스를 포함하고 있으며, 다양한 해상도의 센서에서 수집되었다. 하이퍼파라미터는 표 1에 정리되어 있다. 단일 스케일(single-scale) 학습 및 테스트에서는 원본 이미지를 1024×1024 크기의 패치로 잘라 사용하며, 256픽셀의 오버랩(overlap)을 적용했다. 멀티 스케일(multi-scale) 학습 및 테스트에서는 원본 이미지를 0.5배, 1.0배, 1.5배로 크기 조정한 후, 1024×1024 크기의 패치로 자르고 500픽셀의 오버랩을 적용했다. 대부분의 회전 객체 검출 모델은 NVIDIA V100 GPU 1장으로 학습되며, 대형 모델의 경우 2장을 사용한다. 평가 지표로는 PASCAL VOC2007 [18]의 mAP(mean Average Precision) 계산 방식을 따르되, 객체 매칭 시 회전 IoU (rotated IoU) 를 적용했다.
Benchmark settings.
모든 모델의 지연(latency) 시간은 FP16(half-precision) 부동소수점 형식으로, NVIDIA 3090 GPU, TensorRT 8.4.3, cuDNN 8.2.0 환경에서 테스트되었다. 추론 배치 크기는 1로 설정되었다.
4.2. Benchmark Results
Object detection.
우리는 RTMDet을 기존의 실시간 객체 검출 모델인 YOLOv5 [25], YOLOX [21], YOLOv6 [42], YOLOv7 [71], PPYOLOE [84]와 비교했다. 공정한 비교를 위해, 모든 모델은 300 에포크(epoch) 동안 지식 증류(distillation) 또는 가지치기(pruning) 없이 학습되었으며, 비최대 억제(NMS, Non-Maximum Suppression) 수행 시간은 지연(latency) 계산에서 제외되었다.
표 2 및 그림 1(a)에서 확인할 수 있듯이, RTMDet은 이전 방법들보다 더 나은 파라미터-정확도 균형(parameter-accuracy trade-off) 을 달성했다. RTMDet-tiny는 4.8M(480만) 개의 파라미터만을 사용하면서도 41.1% AP를 기록하여, 유사한 크기의 다른 모델보다 5% 이상 높은 AP 성능을 보였다. RTMDet-s는 YOLOv6-s의 절반 수준의 파라미터 수와 연산 비용으로도 더 높은 정확도를 달성했으며, RTMDet-m 및 RTMDet-l도 44.6% 및 49.4% AP를 기록하며 동일한 클래스의 모델들보다 우수한 성능을 보였다. 또한, RTMDet-x는 52.8% AP와 300+FPS를 기록하며, 현재 주류 객체 검출 모델보다 뛰어난 성능을 보여주었다. 주목할 점은, YOLOv5 [25] 및 YOLOv7 [71] 모델들이 마스크 어노테이션(mask annotation) 을 활용하여 데이터 증강 후 바운딩 박스를 보정하는 방식으로 0.3% AP의 성능 향상을 달성한 반면, 우리는 추가적인 박스 어노테이션 외의 정보를 활용하지 않고도 더 우수한 결과를 달성했다는 것이다.
Instance segmentation.
우리의 라벨 할당(label assignment) 전략과 손실 함수(loss) 의 우수성을 평가하기 위해, RTMDet-Ins를 기존 방식들과 비교했다. 비교를 위해 ResNet50-FPN [46] 백본을 사용한 표준 방식 및 3배수 스케줄(multi-scale 3× schedule) [9, 80]을 적용했다. 또한, CondInst [69]와의 공정한 비교 및 더 빠른 수렴 속도(faster convergence speed) 를 위해 보조 의미론적 분할(semantic segmentation) 헤드를 도입했다. RTMDet은 CondInst보다 1.5% 더 높은 mask AP를 기록했으며(표 3 첫 번째 행 참고), 그러나 기본 데이터 증강을 활용하여 처음부터 RTMDet을 학습할 때에는, 보조 세그멘테이션 브랜치(semantic segmentation branch)를 사용하지 않았다. 이는 보조 브랜치가 미미한 성능 향상만을 제공했기 때문이다.
마지막으로, 우리는 COCO 데이터셋에서 RTMDet-Ins tiny/s/m/l/x 모델을 RTMDet과 동일한 데이터 증강 및 최적화 하이퍼파라미터를 적용하여 300 에포크 동안 학습했다. RTMDet-Ins-x는 44.6% mask AP를 기록하며, 기존 최고 성능 모델인 YOLOv5-seg-x [25]보다 3.2% 더 높은 AP를 달성했으며, 실시간(real-time) 성능을 유지했다 (표 3 두 번째 행 참고).
Rotated object detection.
우리는 DOTA v1.0 데이터셋에서 RTMDet-R을 기존 최신(state-of-the-art) 방법들과 비교했으며, 결과는 표 4에 정리되어 있다. 단일 스케일(single-scale) 학습 및 테스트에서, RTMDet-R-m 및 RTMDet-R-l은 각각 78.24% 및 78.85% mAP를 달성하여 기존 대부분의 방법을 능가했다. 멀티 스케일(multi-scale) 학습 및 테스트에서는, RTMDet-R-m 및 RTMDet-R-l이 각각 80.26% 및 80.54% mAP를 달성했다. 특히, RTMDet-R-l (COCO 사전학습 모델)은 DOTA-v1.0 데이터셋에서 81.33% mAP를 기록하며 새로운 성능 기록을 세웠다. 또한, RTMDet-R은 모든 모델 크기 범위에서 PPYOLOE-R보다 지속적으로 우수한 성능을 보였다. RTMDet-R은 높은 정확도(high precision) 를 달성하기 위해 특수 연산자(special operators) 를 아키텍처에서 배제하였으며, 이를 통해 다양한 하드웨어에서 쉽게 배포(deploy)할 수 있도록 설계되었다. 또한, 부록(appendix) 에서 HRSC2016 [53] 및 DOTA-v1.5 데이터셋에 대해 RTMDet-R을 다른 방법들과 비교했으며, RTMDet-R이 우수한 성능을 달성했음을 확인했다.
4.3. Ablation Study of Model Architecture
Large kernel matters.
우리는 CSPDarkNet [3]의 기본 빌딩 블록에서 3×3부터 7×7까지 다양한 커널 크기의 효과를 비교했다. 3×3 컨볼루션과 5×5 커널 크기의 깊이 방향 컨볼루션(depth-wise convolution)을 결합하는 것이 속도-정확도 균형(speed-accuracy trade-off) 측면에서 가장 최적의 성능을 보였다(표 5a 참고).
Balance of multiple feature scales.
깊이 방향 컨볼루션(depth-wise convolution)은 모델의 깊이를 증가시키지만, 반대로 추론 속도를 감소시킨다. 따라서, 우리는 2단계와 3단계에서 블록 수를 줄였다. 표 5b에 나타난 것처럼, 9개 블록을 6개로 줄이면 지연 시간이 20% 감소하지만, 정확도가 0.5% AP 감소하는 결과를 보였다. 이러한 정확도 손실을 보완하기 위해, 각 단계의 끝에 채널 어텐션(Channel Attention, CA) 을 추가하여 더 나은 속도-정확도 균형(speed-accuracy trade-off) 을 달성했다. 특히, 두 번째 및 세 번째 단계에서 9개 블록을 사용하는 모델과 비교했을 때, 정확도는 0.1% AP 감소했지만, 지연 시간(latency)은 7% 향상되었다. 전반적으로, 이러한 수정은 정확도를 크게 희생하지 않으면서 탐지기의 지연 시간을 성공적으로 줄이는 데 기여했다.
Balance of backbone and neck.
[3, 25, 42, 84]를 따르며, 우리는 백본(backbone)과 동일한 기본 블록을 넥(neck)에도 활용했다. 실험적으로, 넥에 더 많은 연산을 할당하는 것이 경제적인지를 연구했다. 표 5c에서 볼 수 있듯이, 백본의 복잡도를 증가시키는 대신, 넥의 용량을 백본과 유사하게 유지하는 것이 속도를 더 빠르게 하면서도 정확도는 유지하는 데 효과적임을 확인했다. 이 방식은 소형 및 대형 실시간 탐지기 모두에서 유효한 전략이었다.
Detection head.
표 5d에서, 우리는 다중 스케일 특징(multi-scale features)에 대한 탐지 헤드 공유 전략(detection head sharing strategies) 을 비교했다. 결과에 따르면, 배치 정규화(Batch Normalization, BN)를 공유 가중치(shared-weight)를 사용하는 탐지 헤드에 적용할 경우, 다양한 특징 스케일(feature scales) 간의 통계적 차이로 인해 성능이 저하되었다. 이 문제를 해결하기 위해, 특징 스케일별로 서로 다른 탐지 헤드를 사용하는 방법이 가능하지만, 이는 파라미터 수가 급격히 증가하는 단점이 있다. 반면, 특징 스케일별로 동일한 가중치(weights)를 사용하되, BN 통계를 다르게 적용하는 방법이 가장 효과적인 파라미터-정확도 균형(parameter-accuracy trade-off) 을 달성함을 확인했다.
4.4. Ablation Study of Training Strategy
Label assignment.
우리는 제안된 동적 소프트 라벨 할당(dynamically soft label assignment) 전략의 각 구성 요소의 효과를 검증했다. 이전 연구를 참고하여, 우리는 SimOTA [21] 를 베이스라인으로 사용하고, Focal-Loss [47] 및 GIoU [67] 를 비용 행렬(cost matrix) 로 적용했으며, 이는 학습 손실과 동일한 방식이다. 표 6a에서 확인할 수 있듯이, 기본 버전은 ResNet-50에서 39.9% AP를 달성했다. IoU를 소프트 라벨(soft label)로 추가하면 분류 비용이 개선되며, 정확도가 0.4% AP 증가(40.3% AP) 한다. 고정된 3×3 중심 우선값(center prior)을 소프트 중심 우선값으로 변경하면 정확도가 40.8% AP로 향상된다. GIoU 비용을 로그 IoU 비용(log IoU cost)으로 대체하면, 최종적으로 41.3% AP를 달성했다.
제안된 라벨 할당(label assignment) 전략은 동일한 모델 아키텍처와 손실 조건에서 다른 고성능 전략보다 0.5% AP 높은 성능을 보였다 (표 6b). 또한, 더 긴 학습 스케줄(longer training schedule)과 강력한 데이터 증강(data augmentation)을 적용할 경우, 제안된 동적 소프트 라벨 할당(dynamic soft label assignment) 전략이 손실 함수와 결합되어 SimOTA 대비 1.3% 높은 AP를 기록했다 (표 6c, RTMDet-s).
Data augmentation.
우리는 학습 과정의 서로 다른 단계에서 데이터 증강(data augmentation) 기법을 조합하는 방법을 연구했다. 첫 번째 및 두 번째 학습 단계는 각각 280 에포크(epoch)와 20 에포크 동안 진행된다. 이 두 단계에서 동일한 데이터 증강 기법을 사용할 경우, 결과적으로 단일 단계 학습(one-stage training) 과 유사한 형태가 된다.이 두 단계에서 동일한 데이터 증강 기법을 사용할 경우, 결과적으로 단일 단계 학습(one-stage training) 과 유사한 형태가 된다. YOLOX를 참고하여, Tiny 및 Small 모델에서 Mosaic의 랜덤 리사이징(random resizing) 범위는 (0.5, 2.0) 으로 설정되었으며, 더 큰 모델에서는 (0.1, 2.0)으로 설정되었다. 표 7a에서 확인할 수 있듯이, 모든 학습 단계에서 Large-Scale Jittering (LSJ) [22]을 사용하는 것이 MixUp과 Mosaic을 적용한 것보다 0.4% AP 높은 성능을 보였다. 또한, 캐싱된 Mosaic 및 MixUp은 충분한 캐시된 샘플이 존재하는 경우, 원래 방식과 동일한 성능을 유지하는 것을 확인했다. 그러나, 캐시 메커니즘(cache mechanism)은 Mosaic과 MixUp의 속도를 각각 약 3.6배 및 1.5배 향상시켰다 (표 7b).
두 번째 단계에서 Mosaic과 MixUp 대신 LSJ를 사용하면 RTMDet-s에서 2% AP, RTMDet-l에서 1.5% AP 개선 효과를 보였다. 이는 Mosaic과 MixUp이 LSJ보다 강력한 데이터 증강(data augmentation) 기법이지만, 학습 과정에서 더 많은 노이즈를 유발하므로, 두 번째 단계에서는 제거하는 것이 바람직하다는 것을 의미한다. 또한, 캐시 크기를 약 10개 이미지로 줄이고 First-In-First-Out(FIFO) 제거 방식을 적용하면, 동일한 이미지를 서로 다른 데이터 증강 기법과 혼합하여 같은 배치(batch) 내에서 사용할 수 있으며, 이는 반복 증강(repeated augmentation) [2]과 유사한 효과를 가지면서, tiny 및 small 모델에서 약 0.5% AP 향상을 가져왔다.
YOLOX와 비교했을 때, 우리는 첫 번째 학습 단계에서 랜덤 회전(random rotation)과 왜곡(shearing)을 제거했다. 이는 바운딩 박스(box) 어노테이션과 입력 간의 정렬 불일치(misalignment)를 방지하기 위함이다.
대신, 각 학습 샘플에서 혼합되는 이미지 수를 5개에서 8개로 증가시켜 첫 번째 단계에서 데이터 증강의 강도를 유지했다. 결과적으로, 본 논문에서 제안한 데이터 증강 조합은 다양한 모델 크기에서 YOLOX보다 지속적으로 더 나은 성능을 보였다 (표 7c).
Optimization strategy.
우리는 최적화 전략에 대한 실험을 수행했다. 표 8의 결과에서 볼 수 있듯이, SGD는 데이터 증강이 강하게 적용된 학습 환경에서 수렴 과정이 불안정해지는 경향을 보였다. 이에 따라, 우리는 AdamW(가중 감쇠 0.05)와 코사인 감소 학습률(Cosine Annealing LR) 을 베이스라인으로 선택했다. 코사인 감소 학습률이 초기 또는 중간 학습 단계에서 너무 빠르게 감소하여 과적합(overfitting)이 발생하는 것을 방지하기 위해, 우리는 Flat-Cosine 접근법을 적용했다. 이 방법에서는 첫 번째 절반의 학습 에포크에서 고정된 학습률을 사용하고, 이후 절반에서 코사인 감소(Cosine Annealing)를 적용했다. 이러한 수정은 0.3% AP 성능 향상을 가져왔다. 추가적으로, 정규화 층(normalization layers)과 편향(bias)에 대한 가중 감쇠(weight decay)를 억제하는 것은 0.9% AP 향상 효과를 가져왔다 (참고: [33]). 마지막으로, RSB [78] 학습 전략을 통해 사전 학습된 ImageNet 백본을 적용하면 추가적으로 0.3% AP 증가를 확인했다. 위에서 언급한 최적화 기법들을 조합하여 적용한 결과, 총 1.5% AP의 유의미한 성능 향상을 달성할 수 있었다.
4.5. Step-by-step Results
표 9에서 보이는 바와 같이, 우리는 YOLOX-s에 대해 점진적인 수정을 가했다. 최적화 전략(Optimization strategy)을 조정함으로써, 모델 정확도(model accuracy)가 0.4% AP 향상되었다. 새로운 아키텍처(new architecture)는 백본(backbone)과 넥(neck)의 용량이 유사한 구조를 가지며, 대형 커널 심층 컨볼루션(large-kernel depth-wise convolutions)을 포함한 새로운 기본 블록을 적용했다. 이로 인해 모델 정확도는 1.2% AP 향상되었으며, 그 과정에서 지연 시간(latency) 비용은 거의 증가하지 않았다. 또한, 공유 가중치(shared weights)를 사용하는 검출 헤드(detection head)를 적용함으로써 매개변수 개수를 크게 줄이면서도 정확도는 유지했다. 이후, 레이블 할당(label assignment) 전략과 학습 손실(training loss) 개선을 통해 추가적으로 1.1% AP 성능 향상을 달성했다. 마지막으로, 새로운 데이터 증강(data augmentation) 조합과 백본 사전 학습(pre-training of backbone) 이 각각 1.3% AP 및 0.3% AP의 향상을 가져왔다. 이러한 수정 사항들을 결합한 결과, RTMDet-s가 베이스라인 대비 4.3% AP 더 높은 성능을 기록했다.
5. Conclusion
본 논문에서는 실험적(empirical)이고 포괄적인(comprehensive) 연구를 통해, 실시간 객체 탐지기(real-time object detectors)의 주요 구성 요소를 분석했다. 이러한 구성 요소에는 모델 아키텍처(model architectures), 레이블 할당(label assignment), 데이터 증강(data augmentations), 그리고 최적화(optimization)가 포함된다. 또한, 우리는 최소한의 수정(minimal adaptations)만으로 실시간 인스턴스 분할(instance segmentation) 및 회전 객체 탐지(rotated object detection)에 적합한 고정밀 실시간 객체 탐지기(high-precision real-time object detector)를 개발할 수 있음을 확인했다. 이 연구 결과를 바탕으로 새로운 객체 탐지 모델 계열, 즉 Real-Time Models for Object Detection, 약칭 RTMDet과 다양한 파생 모델(derivatives)이 탄생했다. RTMDet은 산업 수준(industrial-grade)의 애플리케이션에서, 정확도(accuracy)와 속도(speed) 간의 우수한 절충(trade-off)을 제공하며, 다양한 객체 인식(object recognition) 작업을 수행하기 위한 여러 크기의 모델을 제공한다. 우리는 RTMDet과 본 연구의 실험 결과가 미래의 연구 및 산업 발전에 기여할 수 있기를 기대한다.
Chengqi Lyu, Wenwei Zhang, Haian Huang, Yue Zhou, Yudong Wang, Yanyi Liu, Shilong Zhang, Kai Chen RTMDet: An Empirical Study of Designing Real-Time Object Detectors
댓글남기기