Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
Sparse R-CNN은 Sparse 방식으로 객체 인식을 수행합니다. Sparse-In Sparse-Out의 방식으로 빠른 학습 속도를 보였고 유명한 One Stage 그리고 Two Stage Detector들과 대등한 성능을 보였습니다.
Apr 19, 2022
결론
Sparse R-CNN은 Sparse 방식으로 객체 인식을 수행합니다. Sparse-In Sparse-Out의 방식으로 빠른 학습 속도를 보였고 유명한 One Stage 그리고 Two Stage Detector들과 대등한 성능을 보였습니다.
NMS라는 후처리를 하지 않기에 CPU-GPU간 병목이 많이줄었을 것이라 생각되지만 현재 SOTA 모델들과
비교하면 성능이 많이 뒤쳐집니다. 하지만 간단한 구조이기에 커스텀 방식에 따라 성능이 더 향상될 수 있을 것
같습니다.
초록
기존 객체 인식은 피쳐맵에 대해 사전 정의된 K개의 앵커를 사용하는 방식으로,
Dense Object Candidates에 의존해왔습니다.
본 논문의 방식은
고정된 갯수(N)
의 학습된 Object Proposals
를 Object Recognition Head에 제공하여 Classification과 Location을 수행합니다.수작업으로 만들어진 HWK개의 Object Candidates를 N개의 학습가능한 Proposals로 줄임으로써 Sparse R-CNN은 Object Candidates Design과 Many-To-One 레이블 할당과 관련된 노력을 하지 않아도 됩니다. 따라서 최종 예측은
NMS 후처리없이
바로 출력됩니다.도입
객체 인식은 객체의 위치를 찾는 것과 카테고리를 인식하는 것을 목표로 합니다. Dense Prior는 Detectors에서 항상 중요한 부분이었습니다.
기존 컴퓨터비전에서 Classifier가
Dense Image Grid
에 적용되는 Sliding Window Paradigm은
수십 년 동안 검출 방법을 이끌고 있습니다.One Stage Detector
의 현대 메인스트림은 위 그림과 같이 Dense Feature Map Grid 위의 앵커 박스 혹은 참조 포인트(Reference Points)를 사전 정의합니다. 그리고 객체의 바운딩 박스에 대한 상대적 규모
와
오프셋
을 예측합니다. Two Stage 파이프라인
은 적은 수의 Proposal 박스에서도 작동하지만, 위 그림처럼 Proposal 생성 알고리즘은 여전히 Dense Candidates를 생성합니다.이러한 잘 정립된 방법은
학습 및 추론 속도
가 빠르며 개념적으로 직관적
이며 Robust
한 성능을 냅니다.그러나 Dense-Prior Detectors는 몇 가지 한계가 있습니다.
1) 해당 파이프라인은 보통
불필요하고 중복되는 결과
를 내어 NMS라는 후처리 기능이 필수입니다.2) 학습 시 Many-To-One 라벨 할당 문제가 모델이 경험적인(Heuristic) 할당 규칙에 민감해지게 합니다.
3) 최종 성능은 크기, 종횡비 그리고 앵커 박스 수 등에 크게 영향을 받습니다.
본 논문은 이러한 문제를 해결하기 위해 Sparse Detector를 디자인하는 것을 목표로 합니다.
DETR 모델
이 비슷한 방식을 취했습니다. 100개의 학습된 Object Queries을 입력으로 넣어 Sparse Set Prediction을 수행하고 최종 예측물은 수작업으로 만든 후처리를 거치지 않습니다. 다만 DETR은 각 Object Query가 Global Image Context와 상호작용해야하여 Dense Property를 가지게 됩니다.
본 논문이 생각하는 Sparse Property는 2가지입니다. Sparse Boxes와 Sparse Features입니다.
Sparse Boxes
는 적은 수의 Starting Boxes(약 100개)가 이미지 속 모든 객체를 충분히 예측할 수 있다는 뜻입니다.Sparse Features
는 각 박스의 Feature가 Full 이미지에 걸쳐 다른 모든 Features와 상호작용할 필요가 없다는 것을 뜻합니다.이러한 관점에서 DETR은 각 Object Query가 Full 이미지에 걸쳐 Dense Features와 반드시 상호작용해야하므로 온전한 Sparse 방식이 아닙니다.
본 논문은 모든 이미지 Grids에서 하나씩 세어지는(Enumerating) Object Positional Candidates와, Global Image Feature와 상호작용하는 Object Queries가
없는
Sparse R-CNN
이라는 온전한 Sparse 방식인 모델을 제안합니다.위 그림과 같이 Object Candidates는
고정된 적은 수
의 학습가능한 바운딩 박스로 주어집니다. 이 박스들은
4-d 좌표
로 표현됩니다. 100개의 박스라면 400개의 파라미터만 필요합니다. 이러한 Sparse Candidates
는 Proposal 박스들로 사용되어 RoIPool에 의해 RoI의 Feature를 추출합니다.학습가능한 Proposal 박스들은 잠재 객체 위치의 통계량입니다. 반면에 4-d 좌표들은 단지 객체의 대략적인(Rough) 표현이며 위치나 형태와 같은 유용한 디테일들이 부족합니다.
이에 저자는 High-Dimension Latent Vector인
Proposal Feature
라는 핵심 개념을 도입합니다.
대략적인(Rough) 바운딩 박스와 비교하여, Proposal Feature는 풍부한 인스턴스 특성(Characteristics)를 인코딩합니다.특히 Proposal Feature는 Exclusive Object Recognition Head를 위해 커스텀된 파라미터들을 생성합니다.
저자는 이 연산을 Dynamic Instance Interactive Head라 부르며, 고정된 파라미터 대신 고유한 Proposal Feature에 따라 조정된(Conditioned) Head의 공식화(Formulation)가 실제로 Sparse R-CNN 성공의 열쇠라는 것을 보여줍니다.
Sparse R-CNN의 가장 놀라운 특성은
Sparse-In Sparse-Out
패러다임입니다. 첫 번째 입력은 Proposal 박스 및 Proposal Feature의 Sparse Set와 일대일 Dynamic Instance 상호작용입니다. 파이프라인에는 Dense Candidates도 없고 Global Feature과의 상호 작용도 하지 않습니다.Sparse R-CNN
Sparse R-CNN의 핵심 아이디어는 Region Proposal Network에서 나온 수 천개의 후보들을 적은 수의 Proposal 박스로 대체하는 것입니다.
그 구조는 Backbone 네트워크, Dynamic Instance Interactive Head 그리고 2개의 Task-Specific Prediction Layers로 구성됩니다.
한 장의 이미지, Proposal 박스 세트와 Proposal Features 세트, 총 3개를 입력으로 받습니다. Proposal 박스와 Feature는 학습가능하며 네트워크의 다른 파라미터와 같이 최적화됩니다.
Backbone
Feature Pyramid Network 기반의 ResNet 구조를 Backbone으로 사용하여 입력 이미지로부터 멀티 스케일 피쳐맵을 생성합니다. 레벨 부터 까지의 피라미드를 구성하며 레벨은 입력 이미지보다 배 더 작은 해상도를 갖습니다. 모든 피라미드 레벨은 =256 채널을 갖습니다.
Sparse R-CNN의 Backbone을 간단하게 설정한 이유는 일반적으로 사용되는 Faster R-CNN과 세팅을 나란히 하여 비교하기 위함입니다. 따라서 Backbone을 더 복잡한 구조로 만들면 성능 향상을 이룰 수 있습니다.
Learnable Proposal Box
적은 수로 고정된 학습 가능한 Proposal 박스()는 RPN을 대체하여 Region Proposals로 사용됩니다.
Proposal 박스는 0과 1사이의 값으로 이루어진 4-d 파라미터로 표현되며, 이는
정규화된 중앙 좌표, 높이, 너비
를 나타냅니다.Proposal 박스의 파라미터는 학습 중 역전파에 의해 업데이트됩니다. 이러한 학습 Property 덕분에 초기화의 효과를 최소화되며 모델이 더 Flexible해집니다.
학습된 Proposal 박스들은
잠재 객체 위치의 통계량
이며, 입력과 관계없이 이미지 속 객체를 둘러쌀(Encompass)만한 영역에 대한 첫 추측으로 볼 수 있습니다.반면에 RPN으로부터 얻은 Proposals는 현재 이미지에 강하게 상관관계를 가지고 있으며 Coarse한 객체 위치를 제공합니다.
저자는 Later Stages에서 박스의 위치를 정제하기 때문에 First Stage에서 위치를 찾는 것은 과하다고 표현합니다. 대신 합리적인 통계량이 보증된 Candidates라고 합니다.
Learnable Proposal Feature
4-d Proposal 박스가 객체를 간략(Brief)하며 명시적으로 표현하지만, Proposal 박스는 객체의 Coarse한 위치를 제공하며 객체의 포즈나 모양과 같은 유용한 다테일은 부족합니다.
이에 따라 저자는 Proposal Feature()라는 High-Dimension Latent Vector를 도입하며, 이는 풍부한 Instance Characteristics를 인코딩합니다. Proposal Feature의 수는 박스와 동일합니다.
Dynamic Instance Interactive Head
N개의 Proposal 박스가 주어지면 Sparse R-CNN은 RoIAlign으로 각 박스로부터 Feature를 추출합니다.
그 후 Prediction Head를 사용해 각 박스 Feature로 최종 예측을 생성합니다. 이 때 사용하는 Head를 Dynamic Instance Interactive Head라 부릅니다. 각 RoI Feature는 객체 위치와 분류를 위해 이 Head로 들어가며 각 Head는 특정한 Proposal Feature에 의해 조정(Conditioned)됩니다.
Proposal Feature와 박스는 일대일 대응입니다. N개의 Proposal 박스에 대해 N개의 Proposal Features가 사용됩니다.
각 RoI Feature 는 대응되는 Proposal Feature 와 상호작용하여 Ineffective Bins를 걸러내고 최종 Object Feature를 출력합니다.
간단한 구조를 위해 ReLU를 가진 2개의 연속적인 Conv로 수행하여 상호작용 처리를 구현합니다.
2개의 Convolution의 파라미터는 대응되는 Proposal Feature에 의해 생성됩니다.
최종 Regression 예측은 3-Lyaer Perception으로 계산하며 Classification 예측은 Linear Projection Layer가 수행합니다.
Iteration 구조와 Self-Attention 모듈을 사용하여 성능을 더 올렸습니다. Iteration 구조에서는 새롭게 생성된 객체 박스와 객체 Feature가 Iterative Process의 다음 스테이지의 Proposal 박스와 Feature로 사용됩니다.
Dynamic Instance Interaction 전에 Self-Attention 모듈을 객체 Features에 적용하여 객체간 관계를 추론합니다.
Set Prediction Loss
Sparse R-CNN는 Set Prediction Loss를 고정된 크기의 Classification과 박스 좌표 예측 세트에 적용합니다.
Set 기반 Loss는 Predictions와 GT 객체 사이의 최적의 이분 매칭을 생성합니다.
매칭 비용은 다음과 같습니다.
는 Classification과 GT 카테고리 레이블의 Focal Loss이며, 과 는 예측된 정규화된 중심 좌표와 높이, 너비와 GT박스의 L1 Loss와 Generalized IoU Loss입니다.
성능 요약
성능 비교를 위해 2가지 버전의 Sparse R-CNN을 사용하며 이를 RetinaNet, Faster R-CNN, DETR, Deformable DETR과 비교합니다.
첫번째 버전은 100개의 학습가능한 Proposal 박스를 사용하고 데이터 어그멘테이션을 사용하지 않은 모델이며, 이 모델을 Faster R-CNN과 RetinaNet과 비교합니다.
두번째 버전은 300개의 학습가능한 Proposal 박스를 사용하고 Random Crop 어그멘테이션을 진행한 모델이며, DETR 군의 모델과 비교합니다.
위를 보면 Sparse R-CNN이 RetinaNet과 Faster R-CNN을 능가하는 모습을 보이며, ResNet-50 기반의 Sparse R-CNN이 ResNet-101 기반의 Faster R-CNN과 대등한 모습을 보입니다.
DETR과 비교를 한 경우에도 성능이 차이가 얼마 나지 않음을 알 수 있습니다. 하지만 학습 수렴 속도를 비교해보면 Sparse R-CNN이 DETR보다 3배정도 더 빠른 수렴 속도를 보입니다.
Share article