Gaegul's devlog

[논문 리뷰] Side-Aware Boundary Localization for More Precise Object Detection (ECCV 2020) 본문

Artificial Intelligence/Research Paper 리뷰 📖

[논문 리뷰] Side-Aware Boundary Localization for More Precise Object Detection (ECCV 2020)

부지런깨꾹이 2023. 6. 7. 19:09
728x90
반응형

오랜만에 논문 리뷰를 해보려한다! 석사 졸업하고 취준 하느라 한동안 논문을 깊게 읽지 못했는데 최근 high-level Vision인 object detection, semantic segmentation에 관심이 생겨서 관련 논문을 읽어보려 한다. 

object detection, semantic segmentation 관련 논문이라면 워낙 많은 도메인에서 사용하기 때문에 상당히 많지만 그 중에서도 object detection을 하는데 bounding box를 조금 더 정밀하게 예측하는 논문이 눈에 들어와서 한번 읽어보려고 한다. 논문 제목은 "Side-Aware Boundary Localization forMore Precise Object Detection"이다. Let's Go👉🏻

 

 

 

 

Abstract

현재 object detection 프레임워크는 주로 객체를 localization 하기 위해 boundary box regression에 의존한다. 최근 몇 년 동안 괄목할 만한 발전에도 불구하고 boundary box regression의 정밀도는 여전히 만족스럽지 못하여 object detection 성능을 제한한다.

본 논문에서는 정확한 localization를 위해서는 경계 상자의 각 측면을 신중하게 배치해야 한다는 것을 강조한다. 그러나 중심과 크기를 예측하는 데 중점을 두는 기존의 접근 방식(x, y, h, w, confidence를 regression 하는 방식)은 특히 앵커와 대상 사이에 편차가 큰 변위가 있는 경우 이 작업을 수행하는 가장 효과적인 방법이 아니다.

 

Side-Aware Boundary Localization(SABL) for More Precise Object Detection 제안

1) 분산이 큰 variance가 있는 경우 정확한 localization의 어려움을 해결하기 위해 먼저 버킷 예측을 통해 이동 범위를 예측함.

2) 예측된 버킷 내에서 정확한 위치를 고정하는 2단계 localization scheme 을 추가로 제안함.

3) 2-stage 및 1-stage detection 프레임워크에서 제안된 방법을 테스트한다. standard bounding box regression branch를 제안된 설계로 대체하면 Faster R-CNN, RetinaNet 및 Cascade R-CNN이 각각 3.0%, 1.7%, 0.9% 향상된다.

 

여기서 잠깐!  🤚🏻

보통 object detection은 크게 두가지 방법으로 나뉜다.

1) 2-Stage Method
영역 제안(region proposal)을 한 후 분류(classification)하는 방법이다. 객체를 포함할 가능성이 높은 영역을 선택적으로 탐색(selective search) 알고리즘을 사용하거나 딥러닝 기반의 영역 제안 네트워크 (RPN : Region Proposal Network) 을 통해 선택한다. 그리고 후보군의 윈도우셋을 취합하면 회귀 모델과 분류 모델의 수를 공식화하여 객체 탐지를 할 수 있다. 보통 2-stage 방법이라고 하며 그렇기에 속도가 매우 느리다는 단점이 있다. Faster R-CNN, R-FCN, FPN-FRCN과 같은 모델이 대표적이다.

2) 1-Stage Method
Convolution으로 정해진 위치와 정해진 크기의 객체를 찾고 분류하는 테스크를 한번에 하는 방법이다. 보통 원본 이미지를 고정된 사이즈 그리드 영역으로 나누는데 알고리즘은 각 영역에 대해 형태와 크기가 미리 결정된 객체의 고정 객체의 갯수를 예측한다. 이와 같은 YOLO, SSD, RetinaNet 과 같은 모델이 대표적이다.

 

Proposed Method

 

기존의 방법의 limitation

일반적으로 boundary box regression는 nearby proposal을 대상 개체에 align하도록 훈련된다. boundary box regression은 RoI(영역)의 특성을 기반으로 Relative Scale Factor인 (θw, θh)과 함께 Center의 간격 띄우기(θx, θy)를 예측한다. 

Limitation 1.

하지만, 앵커와 target 사이에 큰 차이로 variance가 있을 때 물체의 위치를 정확하게 예측하는 것은 여전히 매우 어렵다. 이러한 어려움은 또한 전체 탐지 성능을 제한한다. 

Limitation 2.

최근, 몇 년 동안 localization 프로세스를 계단식으로 진행하고, 그리고 localization를 그리드 포인트를 분할하는 절차로 취급하는 것과 같은 localization 정밀도를 향상시키기 위한 노력을 하였다.
But! localization의 정확도를 높이는 데 효과적인 것으로 나타났지만, 이러한 방법을 채택하면 탐지 파이프라인이 복잡해져 상당한 계산 오버헤드가 발생한다. 


 

본 연구에서는 보다 낮은 오버헤드로 정확한 localization를 효과적으로 해결할 수 있는 객체 localization에 대한 새로운 접근 방식을 모색하는 것을 목표로 한다. 경험적으로, 객체에 대한 경계 상자에 수동으로 주석(여기서 buckets을 의미한다)을 달 때 크기를 조정하는 동안 상자를 전체적으로 이동하는 것보다 상자의 각 측면을 객체 경계에 맞추는 것이 종종 훨씬 더 쉽다는 것을 관찰하였다. 

이 관찰에서 영감을 받아 경계 상자의 각 측면이 주변 컨텍스트를 기반으로 각각 위치하는 SABL(Side Aware Boundary Localization)이라는 새로운 설계를 제안한다.

먼저 경계가 있는 버킷, 즉 올바른 버킷을 검색한다. 선택한 버킷의 중심선을 대략적인 추정치로 활용하여 오프셋을 예측하여 미세 회귀 분석을 수행한다. 이 방식을 사용하면 분산이 큰 variance가 있는 경우에도 매우 정밀한 localization이 가능하다. 또한, 정확하게 localization된 경계 상자를 보존하기 위해 버킷 신뢰도를 기반으로 분류 점수를 조정하여 추가적인 성능 향상으로 이어질 것을 제안한다.

 

 

Side-Aware Boundary Localization(a.k.a.SABL)

정확한 개체 위치 파악은 개체 탐지에 매우 중요하다. 대부분의 현재 방법은 proposals과 GT box 사이의 정규화된 위치를 직접 회귀한다. 그러나 이 패러다임은 한 번의 패스로 만족스러운 localization 결과를 제공하지 못할 수 있다. 일부 방법은 상당한 계산 비용을 들이면서 계단식 파이프라인을 사용하여 현지화 성능을 개선하려고 시도한다. 따라서 경량이면서 효과적인 접근이 필요하다.

그림 2에 나타난 바와 같이,

step 1) X축과 Y축을 따라 각각 RoI feature F를 aggregate하여 보다 정밀한 물체 감지를 위한 수평 및 수직 feature Fx 및 side-aware boundary localization을 추출한다.

step 2 ) Fx 및 Fy를 side-aware feature들인 Fleft, Fright, Ftop 및 Fdown으로 분할한다.

step 3 ) 그런 다음 경계 상자의 각 측면에 대해 SABL은 먼저 대상 공간을 여러 버킷으로 나누고 측면 인식 기능을 활용하여 경계가 있는 버킷을 검색한다.

step 4 ) 버킷의 중심선에서 간격띄우기를 추가로 예측하여 경계 위치 xleft, xright, ytop 및 ydown을 세분화한다.

이러한 2단계 버킷 방식 (1) Side-Aware Feature Extraction (2) Boundary Localization With Bucketing을 사용하면 회귀 분산을 줄이고 예측의 어려움을 완화할 수 있다. 또한 추정된 버킷의 신뢰도는 분류 점수를 조정하고 성능을 더욱 향상시키는 데 도움이 될 수 있다. 약간의 수정을 거치면 SABL은 1-stage 검출기에도 적용할 수 있다.

 

(1) Side-Aware Feature Extraction


그림 2와 같이 k×k RoI 기능 F(k = 7)를 기반으로 side-aware feature들인 Fleft, First, Ftop 및 Fdown을 추출한다. 

일반적인 관례에 따라 각 proposal의 RoI 기능을 얻기 위해 RoI Align을 채택한다. 그런 다음 두 개의 3×3 컨볼루션 레이어를 사용하여 F로 변환한다. RoI 영역의 방향별 정보를 더 잘 포착하기 위해 self-attention 메커니즘을 사용하여 RoI 기능을 향상시킨다. 구체적으로, 우리는 1×1 컨볼루션을 사용하여 F로부터 두 개의 다른 self-attention map을 예측하며, 이는 각각 Y축과 X축을 따라 정규화된다. attention map인 Mx와 My를 사용하여 F를 집계하여 Fx와 Fy를 다음과 같이 구한다. Fx와 Fy는 각각 1 × k와 k × 1 모양의 1-D 피처 맵이다.


이들은 1×3 또는 3×1 컨볼루션 레이어에 의해 더욱 정제되고 deconvolution 레이어를 통해 2배로 업샘플링되어 수평 방향과 수직 방향에서 각각 1×2k 및 2k×1 특징을 생성한다. 마지막으로, 업샘플링된 피처들은 두 개의 반으로 분할되어 측면 인식 기능인 Fleft, Fright, Ftop 및 Fdown으로 이어진다.

 

(2) Boundary Localization With Bucketing

 

 

localization 과정을 2가지 스텝(:버킷 추정, 미세 회귀)의 bucketing scheme으로 분해한다. 각 객체 경계의 후보 영역은 수평 및 수직적으로 버킷으로 나눠진다. 먼저 경계가 있는 버킷을 추정한 다음 이 버킷으로부터 더 정확한 boundary localization을 회귀시킨다. 

2단계 버킷 방식

Step 1) Two-Step Bucketing Scheme

proposal box(Bleft, Bright, Btop, Bdown)이 주어지면, 전체 객체를 커버하기 위해 경계의 후보 영역을 스케일 팩터 σ로 인해 boundary의 후보 영역으로 나뉜다. X축과 Y축위에 있는 각 bucket의 너비는 2k (k개의 bucket)으로 나눈다. 그러면 X축과 Y축위에 있는 각 bucket의 너비는 각각 lx = ( σ Bright - σ Bleft ) / 2k 와 ly = ( σ Bdown - σ Bright ) / 2k 이 된다. bucket 추정 단계에서 경계가 각 측면의 bucket에 위치하는지 또는 버킷에 가장 가까운지를 예측하기 위해 binary classification을 채택한다. Fine Regression 단계에서, 우리는 Regresser를 적용하여 선택한 버킷의 중심선에서 지면 ground-truth 경계까지의 오프셋을 예측한다.

Step 2) Localization Targets

bucketing scheme에 학습해야 할 bucketing estimation과 fine regression 이 있다. bucket 추정은 binary classification를 통해 실측 경계 상자에 가장 가까운 버킷을 결정한다. 그림 3에서 보듯이 각 측면에서 중심선이 ground-truth 경계선에 가장 가까우면 label이 1(Positive)이 되고, 다른것들은 0(Negative)이 된다. 

 

 

Experiment Result

실험을 위한 데이터셋은 MS COCO 2017로 실험 했으며 detection 모델은 Faster R-CNN, Cascade R-CNN 그리고 RetinaNet으로 학습(batchsize 16 / epoch 12)하였다. 본 논문에서는 세 모델에서 모두 성능향상이 있었다고 말한다. 구체적으로, SABL은 추가 시간 없이 RetinaNet의 AP를 1.7%, Faster R-CNN은 약 10%의 추가 추론 시간만으로 3.0% 향상시켰다. 또한 강력한 Cascade R-CNN에 SABL을 적용합니다. SABL은 이 강력한 기준에서 성능을 0.9% 향상시켰다.

실험 결과

 

 

Conclusion

본 논문에서 Side-Aware Boundary Localization(SABL)를 제안한다. 기존 경계 상자 회귀 분석을 대체한다. 현지화를 위한 경계의 내용에 초점을 맞춘 측면 인식 기능을 추출한다. 측면 인식 기능을 기반으로 객체를 정확하게 찾기 위해 가벼운 2단계 버킷 방식이 제안된다. 또한 고품질 경계 상자를 유지하기 위해 bucketing confidence를 활용하는 rescoring mechanism을 도입한다. 제안된 SABL은 다양한 object detection 파이프라인에서 일관되고 상당한 성능 향상을 보여준다.

 

My OPINIONS

object detection을 수행할 때 boundary regression의 정확도가 객체 인식 성능에 큰 영향을 받을 것이라 생각은 해봤다. 객체를 탐지하기 위해 region proposal을 한 후 전체 이미지에서 y축, x축 단위로 피처를 뽑아서 bucket 이라는  guide를 줘서 region proposal의 경계를 조금 더 객체와 가깝게 피팅하기 위해 한번 더 regression 한다는 아이디어가 흥미로웠다.

하지만 여기서 몇가지 의문점이 든다.

우선, "왜 yolo에서는 실험을 해보지 않았을까?" 하는 의문!
이 부분은 yolo의 장단점에 관한 논문을 추가로 읽어봐야겠다. (분명 yolo 구조에는 적용을 하지 못하는 이유가 있을 것 같다.)

그리고 "객체가 2개 이상일 경우에는?" 전체 이미지에 대해 중요 피처를 뽑고 이를 기반으로 bucket으로 사용하는 것으로 이해했다. 그렇기 때문에 1개의 객체만 존재할 때만 활용할 수 있는 방법이 아닌가? 하는 생각이 들었다.   다시 이해하니 Region Proposal을 한 박스를 기준으로 side-aware localization을 하는 것이니 상관 없다! 어쩌피 Region Proposal을 하게 되면 다수의 객체가 있을 경우 여러개의 박스가 잡힐 것이고 한 박스를 기반으로 bucket을 생성하는 것이다.

그러면 inference time이 조금 걸릴 수도 있겠다라는 생각을 할 수 있겠다. 각 proposal 마다 bucket을 생성하고 bucket regression 작업이 들어가는 것이기에.. 본 논문에서 시간에 대해 언급한 부분이 있는데 "SABL은 추가 시간 없이 RetinaNet의 AP를 1.7%, Faster R-CNN은 약 10%의 추가 추론 시간만으로 3.0% 향상시켰다." 라고 한다.

728x90
반응형
Comments