JINWOOJUNG

Rich feature hierarchies for accurate object detection and semantic segmentation(R-CNN)...(2) 본문

딥러닝/논문

Rich feature hierarchies for accurate object detection and semantic segmentation(R-CNN)...(2)

Jinu_01 2025. 1. 11. 23:24
728x90
반응형

https://jinwoo-jung.tistory.com/137

 

Rich feature hierarchies for accurate object detection and semantic segmentation(R-CNN)...(1)

Research PaperRich feature hierarchies for accurate object detection and semantic segmentation(R-CNN)Selective Search for Object Recognition0. AbstractPASCAL VOC dataset에 대한 Object detection 성능은 지난 몇년간 정체되어 있었으며, 기

jinwoo-jung.com


3. Visualization, ablation, and modes of error

3.1 Visualizing learned features

 

첫번째 Layer의 Filter는 시각화하면 모델이 학습한 Oriented Edges, Opponent Colors를 확인할 수 있지만, 그 이후의 Filter는 시각화해도 이해하기 힘들다. 본 논문에서는 모델이 학습한 것을 직접적으로 보여주는 non-parametric method를 제안한다. 이는 하나의 특정한 Unit(Feature)를 독립적인 객체 검출기라고 생각하면, 우리는 Unit을 통해 Region Proposal의 Activation을 계산할 수 있다. 여기서 Unit은 Filter(Weight)와 Input의 Convolution 연산을 통해 계산되는 Feature Map을 구성하는 각 Activation Value를 의미하고, Unit을 통해 Region Proposal의 Activation을 계산 함으로써 해당 Unit과의 Response가 큰 Region Proposal을 찾아서 시각화 하는 것이 목적이다. 

 

따라서, Region Proposals에 대하여 Unit에 대한 Activation Value를 계산하고, 정렬한 뒤, NMS를 수행하고, 가장 점수가 높은 Region을 시각화하면 된다. 이를 통해 각 Unit이 어떤 Input(Region)에 대하여 반응하는지를 시각화 할 수 있다. 

 

본 논문에서는 $pool_5$에 대한 units를 시각화 하였으며, 이는 Conv Layer의 가장 마지막 output이다. $pool_5$ Feature Map은 6x6x256=9216개의 차원을 가지며, 각 unit은 227x227 Input Image에 대한 195x195 Receptive Field를 가진다. 따라서 가운데 Unit은 영상의 대부분을 포함하며, 모서리 쪽으로 갈수록 잘려진 일부를 포함하게 된다. 

 

Figure 4의 각 행은   $pool_5$ Unit의 상위 16개의 Activations를 가지는 Region Proposals를 시각화 한 것이며, 각각은 256개의 고유한 Units 중 6개이다. 하나의 Filter에 대해서 생성되는 6x6의 Units는 결국 기능적으로 동일하다. 시각화 한 결과, 개의 얼굴, 붉은색 얼룩, 사람의 얼굴, 반사 등 소수 클래스의 특화된 구체적이고 특화된 특징을 학습하는 것을 확인할 수 있다. 이를 통해 Conv Layer에서는 Oreinted Edge 등의 저수준 특징 부터 구체적이고 특화된 고수준의 특징까지 일반적인 특징들을 학습한다. 이러한 풍부한 특징을 바탕으로 다양한 조합을 생성하는 것이 FC Layer에서 일어나며, 이를 추후 실험적으로 증명한다. 

Top Unit Activation's Region Proposal Visualization

 

3.2 Ablation studies(소거실험)

  • Performance layer-by-layer, without fine-tuning

어떤 Layer가 Detection Performance에 큰 영향을 주는지 확인하기 위해, VOC 2007 Dataset을 이용해 학습한 Network의 마지막 3개 Layer의 성능을 비교한다. 이는 Finte-tuning을 하지 않고, Pre-training만 한 모델에 대해서 진행한다.

 

  • $pool_5$
    • Conv Layer의 마지막 Max Pooling을 거친 Output
  • $fc_6$
    • $pool_5$과 연결된 FC Layer의 Output
    • $pool_5$과 Weight Matrix의 Multiply 이후 Bias를 더한 뒤 ReLU를 거친 Output
  • $fc_7$
    • $fc_6$과 연결된 FC Layer의 Output
    • Network의 마지막 Layer
    • $ fc_6 $과 Weight Matrix의 Multiply 이후 Bias를 더한 뒤 ReLU를 거친 Output

 

마지막 $fc_7$의 mAP가 $fc_6$보다 떨어지는 것으로 보아 마지막 4096x4096 Weight는 mAP의 감소 없이 제거할 수 있음을 의미한다. 또한, FC Layer를 거치지 않은 $pool_5$의 mAP는 $fc_6$, $fc_7$의 mAP와 비교해봐도 높은 수치임을 확인할 수 있다. 이를 통해 CNN의 표현력은 Convolutional Layers에서 나옴을 확인할 수 있다.

 

  • Performance layer-by-layer, with fine-tuning

앞서 Pre-training 된 모델을 Finte tuning 하여 성능을 비교 한 결과, $pool_5$의 성능차이는 약 3% 향상으로 미미하였다. 하지만, $fc_6, fc_7$의 경우 각각 약 6%, 약 10%로 매우 큰 향상을 보임을 확인할 수 있다. 이를 통해, Convolutional Layer에서는 다양한 Domain에서 잘 일반화 되는 일반적인 특징을 저/고수준의 특징을 전반적으로 학습하며, 각 Class(Domain)에 맞는 고차원, 비선형적인 경계의 학습FC Layer에서 학습함을 확인할 수 있다. 

 

  • Comparison to recent feature learning methods

Feature based Model인 DPM 시리즈와의 성능 비교를 한 결과, 모든 R-CNN Models가 압도적인 성능을 보임을 확인할 수 있다. 

 

3.3 Network architectures

 

본 논문에서의 대부분의 결과는 AlexNet을 기반으로 한 5 Conv Layer, 2 FC Layer의 구조를 사용하고 있다. 하지만, 네트워크 구조의 선택이 R-CNN Detection Performance에 큰 영향을 미침을 확인하였다.

 

기존의 사용하던 AlexNet 기반의 구조를 "T-Net"이라 하고, 이를 VGG-16 Network로 바꾼 것을 "O-Net"이라 한다. "O-Net"의 경우 pre-trained network weights로 초기화 하여, T-Net과 동일하게 Fine-tuning을 진행하였다. 

 

O-Net 기반의 R-CNN이 T-Net 기반의 R-CNN보다 최고 성능 기준 약 6.5% 향상된 성능을 보이지만, 계산 시간이 7배가 더 걸림을 확인하였다. 

 

3.4 Detection error analysis

 

본 논문에서는 R-CNN의 에러 유형을 확인하고, Fine-tuning이 이를 어떻게 해결하는지 이해하고, DPM과 비교하여 R-CNN의 error가 어떠한지 비교하기 위해 Hoiem이 제안한 검출 분석 도구를 활용한다.

  • Loc 
    • poor localization
    • GT와의 IoU가 0.1~0.5 : 올바른 객체이지만 위치의 부정확성
  • Sim
    • Confusion with a similar category
  • Oth 
    • Confusion with a dissimilar category
  • BG
    • 배경이지만 잘못 검출한 FP

DPM의 성능과 비교 해 보면, Animals, Furniture Class에 대하여 Loc error가 더 많이 발생하지만, 나머지(다른 클래스와의 혼동 및 배경의 오검출)는 더 낮음을 확인할 수 있다. 

 

Loc error가 더 많이 발생하는 이유는 Selective Search의 bottom-up 방식으로 인해 정확한 위치를 보장하지 않은 Region Proposals로 학습하기 때문이며, CNN이 Pre-training 과정에서 Classification로 학습되기 때문에, 위치 불변성을 학습한다. 즉, 이미지(Region Proposals) 내에서 객체의 위치 및 자세와 상관없이 검출 가능한 위치 불변성을 학습하기 때문에, 약간 어긋난 Region Proposal에 대해서도 동일한 객체로 인식하기 때문이다. 

Error Analysis between R-CNN and DPM

 

Fine-tuning을 통해 전체적인 특성의 최대/최소 성능이 향상됨과 동시에 민감도(Sensitivity, 최소/최대 차이)는 줄지 않음을 확인할 수 있다. 즉, 특정 특징에 대해서만 극적인 성능 향상이 아닌 전체적으로 높은 성능을 유지하면서 전반적으로 개선시킴을 확인할 수 있다. 

 

3.5 Bounding-box regression

 

Selective Search 기반의 R-CNN은 Loc error가 높음을 통해 위치 추정의 불안정성이 있음을 확인하였다. 따라서 이를 해결하기 위한 BBox 좌표를 변환하여 객체의 위치를 세밀하게 조정하는 Bounding Box Regression을 사용한다. 

 

Bounding Box Regressor의 Input은 $ \left\{(P^i, G^i)_{i=1, \cdots, N} \right\}$로, $i$는 Index, $P^i = (P^i_x, P^i_y,  P^i_w,  P^i_h)$는 각각 Region Proposal의 Centor 좌표, Width, Height를 의미한다. $G = (G_x, G_y, G_w, G_h)$는 이에 해당되는 Ground Truth이다($i$는 생략). 따라서 $P$에서 $G$로의 변형을 학습하는 것이 목적이다.

 

  • Train

 

학습해야 할 변형을 $d_x(P), d_y(P), d_w(P), d_h(P)$으로 parametrize 할 수 있는데, 이때 $d_x(P), d_y(P)$는 scale-invariant translation, $d_w(P), d_h(P)$는 log-space translation으로 정의한다. 각각의 함수들을 학습한 뒤, 입력 $P$를 예측된 Ground Truth $\hat{G}$로 변환하기 위한 변환은 아래와 같다.

중심 좌표의 이동의 경우 객체가 크면 많이, 작으면 작게 이동범위가 설정된다. 따라서 각각을 $P_x, P_y$에 비례하도록 설정하여 크기와 무관하게 상대적인 이동 비율을 예측한다.

너비와 높이의 변화는 단순한 작은 차이가 아닌 기하급수적인 변화가 발생하므로, Log Scale로 정의하여 배수의 변화(x2, -0.5)를 로그로 변환하여 선형적으로 학습할 수 있도록 한다. 

$\hat{G}_h = P_hexp(d_h(P)) $는 $d_h(P) = log(\frac{\hat{G}}{P_h})$로 표현할 수 있다.

 

$$\hat{G}_x = P_wd_x(P) + P_x$$

$$\hat{G}_y = P_wd_y(P) + P_x$$

$$\hat{G}_w = P_wexp(d_w(P))$$

$$\hat{G}_h = P_hexp(d_h(P)) $$

https://lilianweng.github.io/lil-log/2017/12/31/object-recognition -for-dummies-part-3.html

 

이때, $d_{\star \in \left\{ x, y, w, h\right\}}(P)$는 $\phi_5(P)$의 선형 함수로 모델링 할 수 있다. 이때, $\phi_5(P)$는 Region Proposal $P$에 대해 CNN의 $pool_5$ 계층에서 추출된 4096 차원의 Feature Vector이다. 

Region Proposal이 예측된 Ground Truth로의 변한은 $d_{\star}(P)$로 표현되고, 이는 $\phi_5(P)$가 BBox 변형에 필요한 특징을 가지고 있기 때문에, 이에 대한 선형 변환으로 모델링 할 수 있다. 

 

따라서 Learnable Parameter $w_{\star}$를 사용하여 다시 정의하면 다음과 같다. 

$$d_{\star} = w^T_{\star} \phi_5(P)$$

이때, $w_{\star}$는 정규화된 최소 제곱 목적 함수(Regularized least suqares objective)를 최적화함으로써 학습할 수 있다.

 

$$ w_{\star} = \underset{\hat{w_{\star}}}{argmin} \sum_{i}^{N} (t^i_{\star} - \hat{w}^T_{star} \phi_5(P^i))^2 + \lambda ||\hat{w_{\star}}||^2$$

 

이때, $t^i_{\star}$는 Regression Target으로 다음과 같이 정의할 수 있다. 

$$t_x = (G_x - P_x)/P_w$$

$$t_y = (G_y - P_y)/P_h$$

$$t_x = log(G_w/P_w)$$

$$t_x = log(G_h/P_h) $$

 

여기서 중요한 점은, Regularization의 중요성으로 본 논문에서는 $\alpha$를 1,000으로 설정하였다. 두번째는 학습 Input인 $(P, G)$의 선택이다. 만약 $G$와 차이가 많은 $P$를 최적화 하려고 한다면, 불가능한 학습 문제를 해결하는 것과 동일하다. 따라서 $(P, G)$ 선택 시, $P$와 $G$의 IoU가 0.6 이상인 경우에 대하여 하나의 $P$가 여러개의 $G$와 매칭되는 경우 가장 큰 IoU를 가지는 조합으로 선정한다. 

 

Test 과정에서는 이미 학습된 BBox Regressor를 바탕으로 1번의 보정만 추가적으로 실행하게 된다.

 

4. The ILSVRC2013 detection dataset

PASCAL VOC Dataset이 아닌 ISVRC2013 Detection Dataset을 기반으로한 검증을 진행한다. 해당 Dataset은 ImageNet의 Subset으로 더 많은 Class 수와 동일한 특성의 데이터여도 강도가 다른 서로 다른 데이터로 구성되어 Data의 상호 유사성이 떨어진다. 따라서 어떻게 Datset을 활용할지 선택해야 하며, Dataset 구축에 대한 추가적인 설명을 논한다.

 

4.1 Dataset overview

 

ISVRC2013 detection dataset은 395,198개의 train, 20,121개의 valid, 40,152개의 test로 구성된다. 

  • Train Data
    • Classification Image Distribution을 가짐
    • Image의 중심에 단일 객체가 존재
      • Variable Complexity를 가짐(객체 수, 배경 등)
    • Not Exhaustively Annotated
      • Class, Bounding Box가 Labled 되지 않은 데이터가 존재
  • Valid, Test Dataset
    • 동일한 Detection Image Distribution을 가짐
    • 실제 현실처럼 객체의 수, 자세, 복잡성 측면에서 PASCAL VOC Datset과 유사
    • Exhaustively Annotated

서로 다른 분포와 구성을 가지는 Dataset으로 인하여 재구성의 필요성이 존재한다.

 

본 논문에서는 Validation Dataset에 의존하고 Train Dataset의 일부를 보조적인 양성 예제로 하여 Train Dataset을 재구성한다. 이때, Validation Dataste을 Train가 Valid를 위해서 구분해야 하기 때문에 동일한 크기로 $val_1, val_2$를 구분한다. 

 

Validation Dataset은 각 Class에 따른 불균형이 존재 하는데, 각 클래스에 대하여 최소 31개, 최대 110개의 Instance를 가진다. 따라서 대략적으로 클래스의 균형을 맞추기 위해, 다양한 후보 집합을 생성하여 가장 큰 상대적 불균형이 가장 작은 후보를 선택한다. 이 과정은 다음과 같은 순서로 진행된다.

  1. Class 개수를 특징으로 하는 Clustering
    • Validation Image의 각 클래스에 대한 Instance의 개수를 계산하여 Feature로 생각
    • Instance의 개수가 유사한 Image끼리 Clustering
  2. Randomized local search를 통한 클래스 균형 조절
    • Clustering 결과에 대해서 일부 이미지를 무작위로 이동시켜 가장 큰 상대적 불균형이 가장 작은 후보를 최종 선택

이 과정을 통해 최대 11%, 평균 4%의 불균형을 가지는 Validation의 분할을 생성할 수 있다.

 

4.2 Region proposals

 

PASCAL VOC Dataset에서와 동일하게 Selective Search의 "fast mode"로 $val_1, val_2, test$에 대하여 Region Proposal을 추출한다.


Selective search "fast mode"

 

Selective Search는 몇가지 Version이 있는데, 이는 Region Proposal을 추출하기 위한 방법의 차이로 정의된다. "fast mode"의 경우 HSV, Lab 색공간에서 동작하며, 색상(C)/텍스쳐(T)/크기(S)/채우기(F) 유사도 측정 방법 중 C+T+S+F, T+S+F의 기준으로 유사도를 측정하며, 초기 분할(k)의 경우 50, 100개의 Segment로 시작함을 확인할 수 있다. "fast mode"의 경우 기본 모드보다 속도를 향상시키면서 적절한 품질(성능)을 가진 mode이다.

http://www.huppelen.nl/publications/selectiveSearchDraft.pdf


이때, Selective Search의 경우 이미지의 해상도에 따라 생성되는 Region Proposals가 달라지기 때문에, ILSVRC image를 Width가 500 Pixel이 되도록 Reszie하였다. 

 

Region Proposal은 이미지당 평균 2403개가 생성되며, PASCAL VOC Dataset에 대한 결과보다 낮은 91%의 재현율을 가진다. 이는 추후 Region Proposal 생성에서의 성능 향상이 요구된다.

 

4.2 Training data

 

Training Dataste은 앞서 정의한 것 처럼 $val_1$과 labeled train data 중 각 Class 당 최대 $N$개의 Instance를 가지도록 Image를 추출한 $val_1+train_N$으로 정의된다. 

 

Training Dataset은 R-CNN의 3가지 단계에서 사용된다.

  1. CNN fine-tuning
    PASCAL에서 사용한 것과 동일한 설정에서,  $val_1+train_N$에 대해 50k의 SGD 반복동안 fine-tuning을 수행한다.

  2. SVM training
    $val_1+train_N$ Trian Dataset에 대한 Ground Truth boxes는 Positive Example로 사용된다. Hard negative mining을 위한 Negative Example은 $val_1$의 Random Selected 5000 Image에 대해서 수행된다. 즉, 초기 SVM에 대하여 5000개의 Image에서 생성된 Region Proposal의 FP(False Positive)를 Negative Example로 사용한다.

    전체 $val_1$이 아닌 랜덤 선택된 5,000개만 사용하는 이유는 0.5% mAP의 소폭 감소는 있으나 학습시간이 절반으로 줄기 때문이다.

  3.  

 

 

 

5. Conclusion

 

6. Conclusion

본 논문에서는 지난 몇 년간 정체된 객체 검출 성능을 간단하고 확장 가능한 객체 검출 알고리즘을 기반으로 한 R-CNN을 통해 이전 최고 결과 대비 30%의 상대적 개선을 달성하였다. 

 

본 논문에서 제안하는 R-CNN은 다음 2가지 주요한 Insights에 기반한다.

  1. CNN을 bottom-up Region Proposal에 적용
  2. 지도 학습 기반 사전 학습 및 도메인 트화 미세 조정

본 논문은 고전적인 컴퓨터 비전 도구(bottom-up Region Proposal)와 딥러닝 도구(CNN)를 자연스럽고 필연적으로 결합함으로써, 객체 검출 모델의 새로운 기준을 제시하였다.

 

7. 고찰

그럼에도 불구하고 R-CNN은 매우 느리다. 약 2,000개의 Region Proposal을 Forward 해야 하고, CNN, SVM, BBox Regression이 독립적으로 수행되어야 하여 연산 비용이 매우 크다. 즉, 실시간으로 동작하기 힘들다.

또한, 4096차원의 Feature Vector를 저장해야 하기 때문에, Memory 사용량이 크다.

앞서 언급 한 것처럼 End-to-End 학습이 불가하기 때문에 전체 시스템을 최적화 할 수 없다.

728x90
반응형