해당 논문은 객체 검출 영역에서 다양한 불균형 문제들을 검토하고 식별하는 논문입니다. 34페이지 짜리의 굉장히 긴 논문이며, object detection 부터 classification을 공부하시고 연구하시는 분들에게 굉장히 도움이 될거 같아서 정리를 블로그에 공유하게 되었습니다.
해당 논문에서는 object detection의 기본적인 용어 및 개념부터 과거부터 최신논문의 연구동향을 파악하기 좋고 실제 학습하고 실험하시는 분들이 겪을 여러 문제들에 대해서 참고가 될 내용이 많아 최대한 자세히 작성하였으니 도움이 되길 바랍니다. 그럼 바로 논문 리뷰 시작합니다. 해당 논문은 part1~part3까지 포스팅될 예정입니다.
2020/11/03 - [지식 저장소] - Imbalance Problems in Object Detection : 객체 검출 분야의 불균형 문제 A Review(2)
2020/11/03 - [지식 저장소] - Imbalance Problems in Object Detection : 객체 검출 분야의 불균형 문제 A Review(3)
요약
논문에서는 객체 검출에 대한 포괄적인 검토를 할것임을 얘기한다. 문제를 분석하기 위해 문제를 기반으로 분류하여 설명하며, 이 분류에 따라 각 문제에 대해 심층적으로 살펴보며 다양한 솔루션에 대해 통합적이고 중요한 관점을 제시한다. 또한, 기존 불균형 문제와 이전에 논의되지 않은 불균형 문제에 대해 미해결된 것을 파악한다고 한다.
1 소개
객체 검출은 주어진 이미지에서 물체의 카테고리(클래스)와 위치(BBOX)를 동시에 진행하는 것이다. 이 것은 Computer vision 분야(자율주행, 의학적 견해,Robotics에서 일어나는 문제) 에서 관제하는 응용프래그램들에게서 기본적인 문제들이 발생한다.
Object detection(이하 'OD')이 머신러닝에서 사용된 이후로, OD의 1세대는 Hand-craft Feature 와 선형, max-margin분류기에 의존하는 형태 였다. 1세대의 가장 성공적이고 대표적인 방법은 Deformable Parts Model(DPM)이었다.
DeformablePart Model 참고 자료
inst.eecs.berkeley.edu/~cs280/sp15/lectures/11.pdf
DPM은 HOG feature pyramid를 이용하여 객체 전체의 기반이 되는 Root filter와 객체의 부분별 Part filter를 이용하여 SVM을 통해 훈련하며, Linear 매개변수(Filter score, spring cost) 를 이용하여 score를 산출한다. 부분별 filter를 통해 부분별 예측에 성공하면 각 부분들을 합쳐 하나의 object를 예측한 것처럼 만드는 방법이다.
그 이후, 가장 영향력있는 것은 Krizhevsky를 시작으로, Computer vision 분야에 딥러닝이 적용되기 시작했으며, OD 또한 마찬가지로 연구되어 왔다. 현재 세대의 OD 방법은 모두 딥러닝을 기반으로 제안되고 있다. 이 변화는 상당한 성능향상을 가져왔다. (PASCAL VOC 데이터 셋을 기반으로 DPM이 mAP 0.34 이었지만 현재 대부분 mAP 0.80을 웃돈다.)
최근 5년간, OD의 주 영향력을 딥러닝이 가져오고 있지만서도, 불균형 문제는 OD의 여러 수준에서 상당한 관심이 쏠리고 있다. Input 에 대한 불균형 문제는 해당 속성의 대한 분포가 성능에 영향을 미친다. 이 것이 해결되지 않은 경우, 최종 detection 성능에 안좋은 영향을 미친다. OD에서 가장 일반적인 불균형 문제는 전경과 배경의 불균형으로 positive의 수와 negative의 수가 극도로 불균형하다. 이미지 한장을 주었을때, positive 객체는 몇가지 없지만, negative에 속하는 객체가 무수히 많기 때문이다.
해당 논문에서는, 딥러닝 기반의 OD 논문을 검토하고 8가지의 불균형 문제를 식별한다. 크게 4가지의 불균형 문제로 분류한다. Class imbalance, Scale imbalance, Spatial imbalance, Object imbalance.
- Class imbalace (클래스 불균형)
- 서로 다른 클래스에 속하는 데이터의 양에 불균형이 있을 때 발생
- 전경과 배경의 불균형
- 클래스(positive)간의 불균형
- Scale imbalance (크기 불균형)
- Input의 크기 불균형이 존재할 때 발생
- 객체들의 크기 불균형
- Feature 들의 크기 불균형
- Spatial imbalance (공간 불균형)
- 중심 위치, IOU 같은 Box regression 과정에서 일어나는 문제
- Regression Loss 불균형
- IOU 분포 불균형 (한 객체에 대해 너무 넓게 Box들이 분포)
- 객체 위치 불균형
- Object imabalance (객체 불균형)
- 최소화 해야할 loss function이 너무 많을 때 발생
1.1 Scope and Aim
불균형 문제는 머신러닝, Computer vision, 패턴 인식에서 넓은 범위를 가지지만 논문에서는 OD에 대해서만 제한적으로 이야기한다. State-of-the-art(이하 'SOTA') 등록되어 있는 논문들을 가지고, 논의 한다.
물체 감지의 포괄적인 배경을 말하는 것이 논문의 목표는 아니지만 일련의 배경지식이 필요하다고 한다. 이는 SOTA 의 OD section 에 대한 것이다. 아래는 논문에서 말하는 목표이다.
- 불균형 문제를 식별 및 정의하고 해결책을 위한 분류체계 제안
- 기존 연구를 통합시키려는 동시에 비판적으로 논문을 검토
(주요 접근 방식, 특정 솔루션의 심층 분석, 비교 및 요약) - Open issue 및 문제에 대해 제시 및 논의
- 객체감지 이외의 영역은 다루지 않음
- Github 주소를 통해 문제기반 지속적인 업데이트
(https://github.com/kemaloksuz/ObjectDetectionImbalance)
1.2 Comparison with Previous Reviews
해당 논문에서는 인기 있는 데이터셋에서의 연구를 다룰 것이다. 불균형 문제의 분류에 초점을 맞추어 집중적으로 다룰것이며, OD 분야에서 딥러닝 이전의 방법을 제시하거나 딥러닝 이후의 방법을 제시하는 논문 일지라도, imbalance에 대해 중요한 부분이 있다면 해당 논문들도 다룬다고 한다. 또한, 머신러닝 분야에서의 불균형문제도 다루는데, 이러한 것은 전경 클래스 불균형 문제에 제한하여 다룬다고 한다.
이러한 방법들로 다양한 논문을 참조하지만, 초점을 OD와 imbalance에 두고 참조하겠다라는 것이다.
1.3 A Guide to Reading This Review
해당 논문을 읽는 방법(?)과 논문의 Section들에 대해 설명한다. 하지만 필자는 전부 읽어볼 생각이기 때문에 해당 부분은 패쓰
2 Background, Definitions And Notation
SOTA의 OD분야를 간략하게 제공하고 표기법 용어를 제시하고 넘어간다고 한다.
2.1 State of the Art in Object Detection
해당 부분에서는 Object detection 의 Keyword 내용을 확인하며 넘어가도록 하겠다.
Object detection의 두가지 주요 접근방식
- 상향식(top-down), 하향식(bottom-up)
- 하향식 모델이 비교적 인기있는 상황, 상향식은 최근에 제안됨.
- 하향식은 Object를 감지할때 탐지 파이프라인 초기에 평가를 하는 방식
(i.e. anchors, regions-of-interests/proposals) - 상향식은 나중에 처리 파이프라인에서 keypoint, parts 같은 하위 개체를 그룹화하여 Object를 탐지
하향식 모델
- one-stage모델과 two-stage모델
- Two-stage 모델
- R-CNN, Faster R-CNN 계열의 모델
- sliding window를 통해 proposal 메커니즘 사용하여 영역 검출(ROI)
- ROI의 카테고리를 분류한후 NMS를 통해 post-processing
- One-stage 모델
- SSD, YOLO, RetinaNet 계열의 모델
- 카테고리 분류와 Box 검출을 동시에 진행
상향식 모델
- 객체의 중요한 key-points (모서리, 중심점 등) 먼저 예측
- key-points 를 이용하여 전체 객체 인스턴스를 형성 및 그룹화
2.2 Frequently Used Terms and Notation
해당 부분에서는 SOTA 에서 사용되는 수식이 정리된 표와 Keyword들이 어떤것이 있는지 살펴보고 넘어가도록 한다.
Feature Extraction Network/Backbone : 객체 검출시 Input image를 받는 Network
Classification Network/Classifier : backbone에서 추출한 feature에서 분류 결과 까지 포함되며, confidence score를 표시
Regression Network/Regressor : backbone feature를 기반으로 box coordinate를 생성하는 부분이며, x,y축에 대한 값을 추출
Detection Network/Detector : classifier 와 regressor 두개를 포함하여 detection 결과로 변환
Region Proposal Network (RPN) : 2-stage 모델에서 사용되며 backbone을 통해 생성된 proposal을 가지고 confidence score와 box coordinates를 포함
Bounding Box : [x1,y1,x2,y2]가 일반 적이며 detection된 box의 정보를 나타냄
Anchor : 2-stage 모델에서는 RPN에 1-stage 모델에서는 감지 부분에 사전에 정의된 Box 셋
Region of Interest (ROI)/Proposal : RPN 에서 사용하는 proposal 메커니즘으로 생성된 박스 셋
Input Bounding Box : detection network나 RPN에서 훈련시 사용하는 Anchor나 ROI 샘플
Ground Truth : class, label, box등 사용자의 전처리된 데이터 셋
Detection : (box정보, 클래스별 confidence score) 형식의 Output 데이터
Intersection Over Union (IOU) : ground truth의 box와 detection output box와 겹침 정도 GIOU, CIOU, DIOU 등 여러 함수가 있다.
Under-represented Class : 훈련시 데이터셋 또는 미니배치에 샘플이 적은 클래스 (클래스 불균형)
Over-represented Class : 훈련시 데이터셋 또는 미니배치에 샘플이 많은 클래스 (클래스 불균형)
Backbone Features : 백본에 적용하는동안 포함되는 feature set
Regression Objective Input : 몇몇 방식에서는 log 도메인에서 Box를 직접 예측하게 변환하여 예측하는데, 이 때 명확성을 위해 모든 방법에 대한 regression loss 입력을 log에 표기함
3 A Taxonomy of the Imbalance Problems and their Solutions in Object Detection
OD 과정에서 일어나는 다양한 (Figure1 참고) imbalance문제들을 한번에 분류된 정보를 확인하고 세세한 내용은 다음장 부터 설명한다. (Figure2 확대해서 참고) 논문에는 위 그림에 대한 내용들을 Class imbalance 부터 설명하지만 그림을 보면 분류에 대한 내용이 상세히 다시 적혀 있기 때문에 그림을 확인하며 바로 다음 장으로 넘어가도록 하겠다.
Imbalance 카테고리의 논문은 매년 증가중이다. (Figure3 참고)
4 Imbalance 1 : Class Imbalance
클래스 불균형은 데이터셋안에서 너무 많은 데이터를 가진 클래스에서 관측된다. 이것은 두가지로 나눌 수 있는데 위에서 말했던 배경-전경 불균형과 전경-전경 불균형이다.
Figure4는 RetinaNet의 MS-COCO 데이터셋 기반의 Anchors 셋을 나타낸 그래프이다. IOU threshold는 IOU>0.5 는 전경(Foreground), IOU<0.4 는 배경(Background)으로 분류했을때, 두가지 타입의 Class불균형이 모두 나타났다. 이는 서로 다른 솔루션이 적용되어 해결되거나, 일부 솔루션은 두가지를 모두 해결한다.
4.1 Foreground-Background Class Imbalance
Definition 과량의 Background 클래스와 소량의 Foreground 클래스는 훈련중에 문제가 발생하며 이는 Background에 대한 labeling작업은 하지 않기에 클래스당 example수에 의존하지 않는다.
Solutions (i) hard sampling methods, (ii) soft sampling method, (iii) sampling-free method, and (iv) generative methods 네가지를 제시한다.
4.1.1 Hard Sampling Methods
Hard sampling method는 OD에서 불균형 해결을 위해 자주 쓰이는 방법이다. 이 것은 cross-entropy의 계수를 0,1로 이진화 시키는 것이다. 쉽게 말하면 positive와 negative선택을 쉽게 만들며, 선택되지 못한 example을 모두 무시한다.
random sampling은 직관적인 Hard sampling method이다. 단순함에도 R-CNN계열의 모델에서 사용되며, RPN학습을 위해 positive Box가 요구되는 값보다 적으면 미니 배치에 무작위로 샘플링된 negative 로 채워진다. 물론 좋지는 않음.
Hard-example mining methods 는 loss가 큰 예제에서 더 많이 훈련하면 성능이 향상된다라는 가설에 의존한다. 이 는 negative의 하위집합을 사용하여 초기 모델을 학습한 다음, 실패한 classifier를 훈련시켜 새로운 classifier를 얻는다. 이 과정을 반복하여 여러 classifier를 얻게 된다. SSD는 이를 채택하여 사용하며 가장 높은 loss를 갖는 negative를 선택하여 훈련한다. 하지만 훈련속도의 저하와 추가 메모리가 필요한 점이 있고, 이를 해결하기 위해 IOU를 기반으로 다시 샘플링 하는 방법을 채택하였다.
Limit the search space 는 2-stage 모델에서 anchor 중 가장 가능성이 있는 ROI를 찾은 다음 가장 높은 score를 가진 상위 N개의 ROI를 선택하는 것을 목표로 한다. 이러한 방법으로 positive sample은 모두 훈련에 사용되며, negative sample은 균형에 맞게 훈련에 사용될 수 있도록 유도한다. (즉, 너무 많은 negative sample을 거르는 방법)
4.1.2 Soft Sampling Methods
Soft Sampling Method는 Hard Sampling Method처럼 sample을 삭제하지 않고, 상대적 중요도에 따라 sample의 가중치를 조정하여 모든 sample이 훈련에 사용될 수 있도록 한다. 상대적으로 anchor수를 적게 가져가는 YOLO 모델은 배경클래스의 loss의 가중치를 0.5로 설정하여 사용한다.
Focal Loss 는 hard example에 가중치를 동적으로 할당하는 함수 중 선구적인 예이다. γ = 0이면 일반 cross entropy 로 동작하지만, γ = 2이면 hard와 easy사이 trade-off가 된다.
Gradient Harmonizing Mechanism(GHM) 은 easy example에 대해 gradient를 억제한다. 즉, small gradient와 large gradient는 매우 많은데에 비해 midium gradient는 제한되어 있으므로, 유사한 gradient샘플에 대하여 그 수가 많을 경우 패널티를 주는 계수 기반 접근 방식이다.
PrIme Sample Attention(PISA) 는 서로 다른 기준에 따라 positive와 negative 에 가중치를 할당한다. IOU가 높은 positive가 선택되는 동안, negative는 더 큰 foreground score로 승격한다 (?) 즉, IOU와 classification score를 기반으로 각 클래스의 순위를 매겨 정규화된 순위를 얻는다. 이를 통해 순위별 가중치를 할당하여 준다.
4.1.3 Sampling-Free Methods
Residual Objectness는 위에서 언급된 hand-crafted sampling heuristics를 피하기 위해 등장한 방법으로 파라미터의 수를 줄였으며, 점수를 예측하기 위해 branch를 추가시켰는데, 이는 전경-배경 불균형을 해결하는 동안, classification branch는 positive 클래스만 처리한다. classification score와 Residual Objectness score가 곱하여 출력한다. 이 것을 통해 cascaded pipeline이 성능을 향상 시킨다는 것을 알 수 있다.
4.1.4 Generative Methods
sampling-based, sampling-free와 다르게 generative method는 불균형을 직접적인 데이터 생성을 통해 해결한다. GAN을 사용하여 데이터를 생성하며, feature map을 생성하여 더 어려운 예제를 생성하며 네트워크와 End-to-End로 훈련 파이프라인에 통합된다.
4.2 Foreground-Foreground Class Imbalance
Definition 과량과 소량의 Foreground 클래스간의 불균형문제가 일어나는 경우이다. 이 문제는 두가지의 카테고리로 나누며 (i) dataset-level, (ii) batch-level 로 나누어 확인한다.
4.2.1 Foreground-Foreground Imbalance Owing to the Dataset
Definition 객체는 본디 자연에서 다른 빈도로 존재한다. 그러므로 데이터셋의 객체간의 불균형은 자연스러운 것이다. 그러나 데이터 셋에서 클래스 간의 차이는 충분히 있고, 이는 데이터가 많은 클래스로 overfitting되는 것이 불가피할 수 있다.
Solutions 훈련과정에서 얻을 수 없는 새로운 이미지 또는 box를 생성하여 foreground-foreground 문제를 해결할 수 있다. 또 다른 방법으로는 finetuning long-tail distribution for object detection 이 있다. 이 방법은 시각적 유사성을 기반으로 clustering을 한다. (i) the accuracy of the prediction, (ii) the number of examples 두가지 를 바탕으로 클래스간의 유사성을 측정하고, 불균형을 처리하기 위해 그룹화를 하여 학습합니다. 즉, Input BBox에 대해 최종 detection을 결정하는 것은 SVM이 됩니다.
4.2.2 Foreground-Foreground Imbalance Owing to the Batch
Definition 객체의 Class 분포가 고르지 않아 학습과정에서 bias가 생길 수 있다. 즉, 무작위로 sampling하여 batch에 삽입하는 경우, 해당 batch에 하나의 클래스가 너무 많은 경우, 모델이 해당 클래스에 편향되어 학습될 수 있다.
Solutions Online Foreground Balanced(OFB)를 통해 불균형을 완화한다. 말하자면, 배치 수준에서 positive가 적은 클래스를 같이 유입시키면서 불균형을 해소 한다. 방법 자체는 이론적으로 합당하지만 실제로 성능향상을 가져오진 않았다고 한다. 해당 논문에서도 Open Issue로 논의할 것을 제안한다.
4.3 Comparative Summary
예전에는 균형잡힌 훈련을 위해 Hard sampling을 사용하였지만 요즘은 모든 샘플을 사용할 수 있는 Soft sampling이나 Sampling-free를 사용한다. 이를 통해 균형 잡힌 훈련으로 나아가고 있고, 과거의 논문들을 통해 우리는 어려운 example을 투입하는 것 보다, 작은 loss값을 발생 시킬 수 있는 높은 IOU를 가진 positive가 AP향상에 더 도움이 된다는 것을 알 수 있다.
4.3 Open Issue
해당 글에서는 Open Issue에 대해 다루지 않으며, 논문에 제시된 Issue만 간단하게 언급하고 넘어간다.
4.4.1 Sampling More Useful Examples
유용한 예를 식별하기 위한 많은 기준이 필요하다.
4.4.2 Foreground-Foreground Class Imbalance Problem
Foreground-Background 문제에 비해 해결되지 않은 부분중 하나 이다.
4.4.3 Foreground-Foreground Imbalance Owing to the Batch
균형잡힌 데이터를 배치안에 넣는 법에 대해 필요하다.
4.4.4 Ranking-Based Loss Functions
클래스 별로 최적의 임계값이 다를 수 있다는 것을 인지하지 않고,전체의 AP loss를 사용한다. 클래스 별로 신뢰도 점수를 정렬하는 것이 더 나은 성능을 얻을 수도 있다.
'지식 저장소' 카테고리의 다른 글
Imbalance Problems in Object Detection : 객체 검출 분야의 불균형 문제 A Review(3) (0) | 2020.11.03 |
---|---|
Imbalance Problems in Object Detection : 객체 검출 분야의 불균형 문제 A Review(2) (0) | 2020.11.03 |
DETR : End-to-end방식의 Transformers를 통한 object detection (2) | 2020.07.07 |
YOLOv4 : Object detection의 최적의 속도와 정확도 (2) | 2020.06.24 |
CSPNet : CNN의 학습능력을 향상 시킬 수 있는 새로운 Backbone (4) | 2020.06.23 |