[Paper Review] Hyper-class Augmented and Regularized Deep Learning for Fine-grained Image Classification

 

논문 링크:

https://ieeexplore.ieee.org/document/7298880

 

Hyper-class augmented and regularized deep learning for fine-grained image classification

Deep convolutional neural networks (CNN) have seen tremendous success in large-scale generic object recognition. In comparison with generic object recognition, fine-grained image classification (FGIC) is much more challenging because (i) fine-grained label

ieeexplore.ieee.org


 

Abstract

이 논문은 심층 합성곱 (CNN)을 사용하여 세밀한 이미지 분류 (FGIC)를 개선하는 방법을 제안한다. 

FGIC는 높은 클래스 내 분산과 낮은 클래스 간 분산, 그리고 라벨이 있는 데이터의 부족으로 인해 어려움을 겪는다. 

(원래는 클래스 내 분산은 낮고 클래스 간 분산이 높아야함)

 

심층 CNN을 이용하는 최근 연구는 ImageNet과 같은 대규모 데이터 셋에서 심층 CNN을 pre-train하고

-> 작은 규모의 target dat를 fine-tune한다. (특정 분류 작업에 fit하도록)

 

이 논문에서 제안하는 2가지 관점

(i) 세분화된 데이터에 내재되어 있는 쉽게 주석이 달려있는 (annotated) 하이퍼 클래스를 식별하고, 쉽게 사용가능한 외부 source(ex. 이미지 검색 엔진)으로부터 하이퍼 클래스 레이블이 지정된 대량의 이미지를 획득하고, 문제를 multi-task learning으로 공식화한다. 

 

(ii) fine-grained 인식 모델과 하이퍼 클래스 인식 모델 간의 정규화를 이용하여 새로운 학습 모델을 제안한다.

 

사용한 데이터)

- 2가지 작은 규모의 fine-grained datasets : Stanford Dogs와 Standford Cars

- 큰 규모의 자동차 데이터셋 (수집한)

 

1. Introduction

FGIC의 목표는 의미적으로 시각적으로 유사한 객체를 인식하는 것이다.

 

일반 객체 인식과 비교했을 때, FGIC는 가지고 있는 문제는

1) 라벨링 된 data의 부족 

: 세밀한 이미지 분류를 위해 라벨링 된 데이터는 도메인 전문가의 지식이 필요해서 비용이 많이 든다.

 

2) 큰 클래스내 분산과 작은 클래스간 분산

: ex. 자동차의 다른 시전이나 포즈로 인해 같은 클래스 내에서도 분산이 크게 존재한다.

 

기존 CNN 기반 이미지 인식 방법들은 주로 대규모 외부 데이터셋 (ex. ImageNet)에서 미리 학습된 모델을 작은 target 데이터셋에 fine-tuning 하는 방식으로 이루어진다. 그러나 이러한 방식은 FGIC에 한계가 있음

 

이 논문에서는 2가지의 새로운 관점에서 문제를 해결하고자 한다.

 

(i)  데이터 부족 문제를 해결하기 위해 task-specific한 데이터 증강 접근 방식을 제안한다.

세분화된 데이터의 내재된 속성인 일부 하이퍼클래스로 annotated된 외부 데이터로 FGIC dataset을 증강한다. 

-> 데이터를 증강하기 위해 2가지 종류의 하이퍼 클래스 사용함 (super-type hyper-classes, factor-type hyper-classes)

 

(ii) classifier 수준에서 학습 프로세스에 대한 명시적인 지침을 제공하기 위해 세분화된 클래스와 하이퍼 클래스 간의 관계를 활용한 mulit-task 딥러닝에서 새로운 정규화 기술을 제안하는 것이다.

 

=> 이런 framework를 hyper-class augmented and regularized deep learning이라 부름.

 

2. Related Work

기존 연구들이 사용해온 방법들

 

  • 특징 추출 후 다중 클래스 분류기 학습 : 이미지에서 SIFT, HOG 등의 특징을 추출한 후, 다중 클래스 분류기를 학습함
  • 심층 CNN : 대규모 데이터셋에서 미리 학습된 CNN을 사용하여 특징을 추출하고, 이를 기반으로 세밀한 이미지 분류를 수행함. 

 

최근 연구들이 따르는 전략

  • pre-train된 모델의 fine-tuning : pre-train된 모델을 세밀한 데이터셋에 fine-tuning하여 성능을 향상시킴
  • part-based 방법 : 객체의 부분을 지역화하고 이들 간의 대응 관계를 통해 세밀한 이미지의 중간 수준 표현을 도출함

 

-> 이런 방법들은 주로 소규모 데이터셋에 제한되며, 대규모 데이터셋에 적용하기 어려움

-> 본 연구에서는 multi-task learning과 정규화를 통해 이러한 문제를 해결하고자 함.

 

3. Hyper-class Augmented and Regularized Deep Learning

3.1 Hyper-class Data Augmentation

일반적인 데이터 증강방법(cropping, reflections, 랜덤노이즈 추가)는 다른 fine-grained classes로부터의 patches가 서로 너무 비슷할 수 있기 때문에(클래스 간 분산이 작아서) 구분하기 어려울 수 있기 때문에 한계가 있다. 

 

-> 여기서는 Hyper-class라는 내재된 속성을 활용하여 fine-grained 데이터를 증강하는 방법을 제안함. 

Hyper-class는,

쉽게 주석을 달 수 있는 속성으로, 대량의 이미지를 빠르게 수집할 수 있음.

 

두 가지 Hyper-class 유형

1) super-type hyper-class

: 여러 세밀한 클래스를 포함하는 일반 카테고리 (ex. 개 vs.고양이)

그 안에서 더 다양한 종류로 나눠지는 것

2) factor-type hyper class

: 세밀한 클래스 내 변동을 설명하는 속성

(ex. 자동차의 다양한 시점, 인간 얼굴의 다양한 감정들(happy, angry, smile 등등))

 

=> 두 hyper-class의 주된 차이점은 super-type은 fine-grained된 클래스에 의해 암시적으로 암시되는 반면에,

factor-type은 주어진 fine-grained class에 대해서는 알 수 없다는 것.

 

3.2 Hyper-class Regularize Learning Model

이 모델에서는 hyper-class 데이터 활용하여 세밀한 이미지 분류 모델을 정규화 한다. 

3.2.1 Factor-type Hyper-class Regularized Learning

여기서 좌변은 hyper-class v의 확률이고,

Pr(y|v, x)은 hyper-class와 입력 이미지 x가 주어졌을 때 fine-grained class y의 확률이다. 

 

정규화 항은, 

이 정규화를 통해 hyper-class와 fine-grained class 간의 관계를 학습하고, 모델의 일반화를 개선함. 

 

3.2.2 Super-type hyper-class regularized learning

super-type의 다른점은, Pr(y|v, x) 이부분이다. 

정규화 항은,

 

3.3 A Unified Deep CNN

hyper-class로 증강된 데이터와 multi-task regularization learning 기술을 사용하기 위해서는 합쳐진 deep CNN framework 필요함. 

 

3.4 Training

이 제안된 딥러닝 모델은 mini-batch 확률적 경사하강법 이용해서 역전파로 학습된다.

주요한 차이점은 두가지 task에 해당하는 두가지 데이터 소스와 두가지 손실함수가 있다는 것이다.

 

4. Experiments

4.1 Model Architecture

5개의 convolutional layers와 2개의 fully connected layers 로 구성되어 있다.

 

4.2 Baselines

이 제안하는 접근 방식을 다음 3가지의 baseline과 비교한다.

(i) ImageNet-Feat-LR 

: ImageNet 데이터에서 pre-trained된 심층 CNN을 사용하여 추출된 activation features에 다항 로지스틱 회귀 (LR) 분류기를 학습하는 것이다

 

(ii) CNN

주어진 fine-grained 이미지에 직접 학습된 CNN

 

(iii) FT-CNN

pre-trained된 네트워크를 fine-grained 이미지에 fine-tuning 한다.

사전 학습된 Alex-net 모델로 네트워크를 초기화한 후, target data에서 fine-tuning을 수행한다. 

 

우리 접근 방식은 두 가지 결과가 있다.

1) HA-CNN (hyper-class augmented deep CNN)

하이퍼 클래스가 추가된 심층 CNN

 

2) HAR-CNN (hyper-class augmented and regularized deep CNN)

하이퍼 클래스가 추가되고 정규화된 심층 CNN

 

+ HAR-CNN-Random

multi-task learning에서 HA-CNN이 실제로 유용함을 보여주기 위해, hyper-class 데이터를 대신해 관련 없는 데이터를 보조 데이터로 사용한 것이다. 

 

+ FT-HA-CNN / FT-HAR-CNN

이 모델이 fine-tuning 전략과 호환됨을 보여주기 위해 사전 학습된 모델로 네트워크 계층을 초기화하는 대신 처음부터 학습한 결과

 

 

4.3 Stanford Dogs

이 데이터셋에선 120개의 fine-grained 클래스와 20,580개의 이미지가 있다.

super-type hyper class(개 vs. 고양이) 를 사용해서 데이터를 증강하였다.

CNN과 비교했을 때 HA-CNN에서는 6%, HAR-CNN에서는 7%의 상대적인 개선을 보이고 있다. 

 

4.4 Standford Cars

이 데이터셋에선 196개의 클래스와 16,185개의 이미지가 있다. 

factor-type hyper class(자동차의 다양한 시점)를 사용하여 데이터를 증강하였다. 

-> 앞, 뒤, 운전선/조수석 측면, 좌측 전면, 우측 전면, 좌측 후면, 우측 후면의 8가지 다른 관점을 식별했다. 

이렇게..

 

결과는 다음과 같다.

HA-CNN-Random에서는 HA-CNN 실험에서 증강된 데이터 양과 맞추기 위해 ImageNet에서 50개의 무작위 클래스에서 레이블이 있는 이미지를 사용하여 multi-task learning 학습을 수행했다.

-> 학습할 때 random한 보조 데이터를 추가하는 것이 성능을 거의 증가시키지는 않지만, task-specific hyper-class 데이터를 추가하는 것은 큰 성능향상을 보이고 있다. 

 

=> 적절하게 설계된 hyper-class 데이터를 수집하고 활용함으로써, 특히 작은 규모의 데이터에서 처음부터 네트워크를 학습할 때 딥러닝의 변별력을 잘 활용할 수 있다.

 

4.5 Hyper-class Trainig in Fine-tuning

ImageNet에서 사전학습된 모델을 사용하여 Standford Cars 데이터셋에 fine-tuning한 결과, 제안 방법이 성능을 더욱 향상시켰다.

4.6 Hyper-class Training at Large

대규모 자동차 데이터셋 (157,023개의 이미지)을 수집하여 실험한 결과, 제안 방법이 대규모 데이터셋에서도 효과적이다.

Stanford Cars 데이터셋과 달리, 이미지를 위한 bounding box 주석을 레이블링하거나 사용하지 않았다.

1) 현재의 ImageNet 데이터에서 사전학습된 CNN에서 추출된 특징이 세밀한 분류에는 적합하지 않을 수 있다. (42.8%)

2) 제안된 HAR-CNN은 소규모 데이터셋에서 세밀한 분류의 성능을 극적으로 향상시킨다.

3) 세밀한 클래스와 하이퍼 클래스 간의 정규화를 활용하면 일반화 성능을 더욱 향상시킬 수 있다.

 

5. Conclusions

본 연구는 hyper-class 증강 및 정규화된 딥러닝 프레임워크를 제안하여 FGIC의 어려움을 해결한다. 

FGIC에서 데이터 부족 문제를 해결하기 위해, fine-grained 데이터 내에 내재된 쉽게 주석을 달 수 있는 hyper-class를 식별하고, hyper-class로 레이블된 많은 유사한 이미지를 수집하여 새로운 데이터 증강 접근법을 제안한다.

hyper-class가 추가된 데이터는 multi-task learnig을 심층 CNN에 통합하여 feature learning을 일반화할 수 있다.

 

또한, 일반화 성능을 더욱 향상시키고 큰 클래스 내 분산 문제를 해결하기 위해, fine-grained class와 관련된 hyper-class 간의 관계를 활용한 새로운 정규화 기술을 제안한다. 

-> 소규모 fine-grained 데이터셋과 대규모 자체 수집 자동차 데이터셋 모두에서 좋은 성과를 보여줬다.

 

결론

: 데이터 증강과 정규화를 통해 모델의 성능을 향상시키며, 제안 방법이 다양한 데이터셋에서 성공적으로 적용되고 있다 !