반응형

 

 

논문 링크입니다.

https://arxiv.org/abs/1608.06993

 

Densely Connected Convolutional Networks

Recent work has shown that convolutional networks can be substantially deeper, more accurate, and efficient to train if they contain shorter connections between layers close to the input and those close to the output. In this paper, we embrace this observa

arxiv.org

2016년 발행

 

 

0. Title


Densely Connected Convolutional Networks

-> 컨볼루션 네트워크를 밀집하게 연결한 모델인가 봅니다...

 

 

1. Abstract


최근의 연구에서 컨볼루션 네트워크가 input과 가까운 레이어와 output과 가까운 레이어 사이의 short connection을 가진다면,

학습시키기에 상당히 깊고 더 정확하고 효율적일 수 있다는 것을 밝혀냈습니다.

이 논문에서는 이러한 관점을 받아들이고, 각각의 레이어를 나머지 모든 레이어와 연결하는

Dense Convolutional Network (DenseNet)라는 것을 소개하려고 합니다.

Figure 1: A 5-layer dense block with a growth rate of k = 4. Each layer takes all preceding feature-maps as input.

 

전통적인 컨볼루션 네트워크는 L개의 레이어에서 L개의 커넥션이 있었다면, 

우리의 네트워크는 L(L+1)/2개의 다이렉트한 레이어가 있다.

 

각각의 레이어에서 모든 진행하는 레이어들의 피쳐맵은 인풋으로 사용되고,

각각의 레이어의 피쳐맵은 모든 부분 레이어들에 인풋으로 사용된다.

 

DenseNet은 여러가지 설득력있는 장점이 있다.

그것은 vanishing-gradient 문제를 해결하였고, 피쳐 전파를 강화시켰고, 피쳐를 재활용하였고, 파라미터를 상당히 많이 줄였다.

우리는 우리의 아키텍쳐를 굉장히 경쟁적인 객체 인식 벤치마크 태스크에 평가하였다.(CIFAR-10, CIFAR-100, ImageNet, SVHN)

그 결과, DenseNet은 대부분에서 SOTA보다 상당한 향상을 보여주었고, 동시에 적은 연산량을 요구하였다.

 

 

2. Conclusion


우리는 DenseNet이라고 불리는 새로운 컨볼루션 뉴럴 네트워크를 만들었다.

이는 동일한 피쳐 사이즈를 가진 두 레이어를 다이렉트로 연결하였다.

우리는 DenseNet이 최적화 어려움 없이 몇 백개의 레이어로 스케일을 가진 것을 보여주었다.

DenseNet은 성능 저하나 오버피팅 없이 파라미터의 개수 증가와 함께 끊임없는 정확도 향상을 생산하는 경향이 있다.

다양한 세팅에서 덴스넷은 여러 매우 경쟁적인 데이터셋에서 sota의 성능을 보여 주었다.

게다가, 덴스넷은 sota의 성능을 내기 위해 상당히 적은 파라미터와 적은 연산량을 요구하였다.

왜냐하면 우리는 resnet의 하이퍼 파라미터 세팅을 활용하였기 때문이다.

우리는 더 디테일한 하이퍼 파라미터 튜닝으로 더 높은 성능을 달성할 수 있다고 믿는다.

simple connectivity 방식을 따라가면서, identity mapping, deep supervision, diversified depth의 특성들을 통합하였다.

이것들은 네트워크 전체에 걸쳐 피쳐 재사용을 허용하고, 결과적으로 학습을 더 간단하게 할 수 있었고, 더 정확한 모델이 될 수 있었다.

컴팩트한 내부 표현과 줄어든 피쳐 중복성으로 인해, 

덴스넷은 컨볼루션 피쳐 위에 만들어진 컴퓨터 비젼 태스크에서 좋은 피쳐 추출기가 되었다.

 

 

3. Introduction


CNN은 시각 인식에서 지배적인 머신러닝 기법이 되었다.

비록 이것은 20년전에 소개되었지만, 하드웨어와 네트워크 구조의 발달로 최근에 들어서야 깊은 CNN을 학습시킬 수 있게 되었다.

오리지널인 LeNet5은 5개의 레이어로 구성되어 있다. VGG는 19개, 작년에 High way network와 ResNet이 100 레이어 경계를 넘었다.

 

CNN이 더욱 더 깊어짐에 따라 새로운 연구의 문제가 나타났다.

인풋이나 gradient의 정보가 여러 레이어를 거치면서 빠져 나간다는 것이다. 네트워크의 끝에 다다르면서는 거의 사라지거나 씻겨 나간다.

많은 최근 논문들이 이 문제를 다루고 있다. ResNet과 Highway Network는 identity connection을 통해 신호를 한 레이어에서 다른 레이어로 보낸다. 등등,, 이들은 동일한 핵심 특징을 가지고 있다. : 앞의 레이어와 뒤의 레이어의 짧은 경로를 만들어 잇는 것이다.

 

1) 우리의 논문은 이러한 관점을 simple connectivity pattern으로 만드는 아키텍처를 소개하려 한다.

: 레이어들 사이에 최대 정보를 보장하기 위해, 모든 레이어를 각각 직접 연결한 것

feed-forward nature를 유지하기 위해, 각각의 레이어는 모든 레이어들로부터 추가적인 인풋을 얻고, 그들의 피쳐맵을 모든 하위 레이어들에 전달하였다. (Figure 1 참조)

결정적으로, ResNet과 비교하여, 우리는 피쳐들이 레이어로 전달되기 이전에 피쳐들을 sum으로 결합하지 않았다. 대신에, 피쳐들을 concat함으로써 결합하였다. 

즉, l번째 레이어는 l개의 인풋을 가지고, 이전의 모든 컨볼루션 블록으로부터의 피쳐맵으로 구성된다. (이후의 피쳐맵은 X)

L-layer 네트워크는 L개가 아닌 L(L+1)/2개의 connection을 가지게 된다. 

 

dense connectivity pattern으로 인한 가능한 반직관적 효과는 중복된 피쳐맵을 학습할 필요없이 전통적인 컨볼루션 네트워크보다 더 적은 파라미터를 요구한다는 것이다. 

전통적인 feed-forward 구조는 레이어에서 레이어로 패스되었다. 각각의 레이어는 바로 이전의 레이어로부터만 상태를 읽었고, 바로 이후의 레이어에만 상태를 작성하였다. 이것은 상태를 변화시킬 뿐만 아니라 보존되어야 할 정보도 전달하였다.

ResNet은 identity transformation을 통해 이 정보 보존을 명백하게 하였다. 최근의 ResNet 변형은 많은 레이어들이 적게 기여하고, 학습중에 랜덤하게 탈락되는 구조이다. 이것이 ResNet의 상태를 RNN과 비슷하게 하였지만, 각각의 레이어가 자신의 웨이트를 가지고 있기 때문에 파라미터의 수가 상당히 많다. 

 

우리가 제안한 DenseNet 아키텍쳐는 네트워크에 더해지고 보존되는 정보들 사이에서 차별화한다.

2) DenseNet은 굉장히 좁다. 레이어당 12개의 필터만 가지고 있기 때문이다. 네트워크의 "collective knowledge"에 작은 규모의 피쳐맵만이 추가된다. 그리고, 남아있는 피쳐맵은 변하지 않게 유지한다. 그렇게 되면, 마지막 분류기는 네트워크의 모든 피쳐맵을 기반으로 의사결정을 할 수 있게 된다.

3) 파라미터 효율성과 더불어, 학습을 더 쉽게 만들어주는 정보와 gradient 흐름의 개선 또한 DenseNet의 큰 장점이다. 각각의 레이어는 loss function과 원본 인풋 시그널로부터 gradient로의 직접 접근을 할 수 있으므로, 명백한 deep supervision으로 이끈다.

4) dense connections에는 작은 학습 데이터에서 오버피팅을 줄여주는 정규화 효과가 있다는 것을 발견하였다. 

 

 

 

3. DenseNets


하나의 이미지 x0이 컨볼루션 네트워크를 지나간다고 생각해보자.

네트워크는 L개의 레이어로 이루어져 있고, 각각의 레이어는 비선형 변형인 Hl(*)을 구현한다.

Hl(*)은 Batch Normalization, ReLU, pooling, Conv과 같은 연산의 합성물일 것이다.

우리는 l번째 레이어의 아웃풋을 xl이라고 하겠다.

 

# ResNets

ResNet은 전통적인 feed-forward 네트워크로, l번째 레이어의 아웃풋을 (l+1)번째 인풋으로 연결하며, Xl = Hl(Xl-1) 의 레이어 변환을 수행한다.

ResNet은 identity function과 함께 다음과 같은 비선형 변환을 수행하는 skip-connection을 추가한다.

: Xl = Hl(Xl-1) + Xl-1

ResNet의 장점은 gradient가 identity function을 통해 뒤쪽의 레이어에서 앞의 레이어로 직접적으로 흐를 수 있다는 것이다.

하지만, identity function과 Hl의 아웃풋이 summation으로 병합되기 때문에 이는 네트워크에서 정보의 흐름을 방해할 수 있다.

 

# Dense connectivity

레이어들 간의 정보 흐름을 향상시키기 위해서 우리는 다른 연결 패턴을 제안한다.

: 레이어에서 그 레이어들의 후속 레이어로 직접적인 연결을 하는 것이다.

결과적으로 l번째 레이어는 모든 선행 레이어의 피쳐맵을 인풋으로 받는다.

Eq (2)

[x0, x1, . . . , xl−1]는 0부터 l-1 레이어들로부터 생산된 피쳐맵을 concatenate한 것을 말한다. 즉, 붙인 것임.

구현의 편의를 위해, 우리는 Hl(*)의 다수의 인풋을 하나의 텐서로 붙였다(concatenate)

 

# Composite function

우리는 Hl(*)를 BN -> ReLU -> Conv의 연이은 세 개의 연산의 합성물로 정의하였다.

 

# Pooling layers

 피쳐맵의 사이즈가 변할 때 Eq (2) 에서의 concatenate 연산은 실행 불가능하다.

하지만, 컨볼루션 네트워크의 필수적인 부분은 피쳐맵의 크기를 바꾸는 다운샘플링 레이어이다.

우리의 아키텍쳐에서 다운샘플링을 이용하기 위해서 우리의 네트워크를 여러 개의 dense 블록으로 나누었다.

Figure 2: A deep DenseNet with three dense blocks

우리는 블록 사이에 있는 컨볼루션과 풀링을 하는 레이어들을 transition layers라고 부르기로 하였다.

transition layers는 batch normalization과 1x1 컨볼루션 레이어와 2x2 average pooling 레이어로 이루어져 있다.

 

# Growth rate

만약 각각의 Hl(*)이 k개의 피쳐맵을 생산한다면, l번째 레이어는 (k0 + k(l-1))개의 인풋 피쳐맵을 가진다. 

k0는 인풋 레이어의 채널 수이다.

DenseNet과 다른 네트워크의 가장 중요한 차이점은 DenseNet은 굉장히 좁은 레이어를 가진다는 것이다. ex) k = 12

우리는 하이퍼 파라미터인 k를 growth rate라고 언급한다.

우리는 상대적으로 작은 growth rate도 sota의 성능을 내기에 충분하다는 것을 보여주었다.

한 가지 이유는 각각의 레이어가 동일한 블록안에 있는 이전의 모든 레이어의 피쳐맵에 접근할 수 있고  collective knowledge를 가지기 때문이다.

피쳐맵을 네트워크의 전체적인 상태를 나타내고 있다고 볼 수 있다.

growth rate는 각각의 레이어가 네트워크의 전체 상태에 얼만큼 기여할지를 통제한다.

전체 상태는 한번 쓰여지면 네트워크의 모든 곳에서 접근할 수 있다. 따라서 전통적인 아키텍쳐와 다르게 레이어에서 레이어로 복제할 필요가 없다.

 

 

# Bottleneck layers

비록 각각의 레이어가 k개의 아웃풋 피쳐맵을 생산하지만, 일반적으로 더 많은 인풋을 가진다.

인풋 피쳐맵의 크기를 줄이기 위해 각각의 3×3 컨볼루션 전에 

1x1 컨볼루션을 bottleneck layer으로 사용하여 계산 효율성을 높인다.

우리는 이 디자인이 DenseNet에 특히 효과적인 것을 발견하였다.

DenseNet-B라고 부르기로 하였다( BN-ReLU-Conv(1× 1)-BN-ReLU-Conv(3×3) )

 

# Compression

모델 compactness를 더 향상시키기 위해 transition layer에서 피쳐맵의 수를 줄일 수 있었다.

만약 dense block이 m개의 피쳐맵을 가진다면, 다음의 transition layer가 θm개의 아웃풋 피쳐맵을 생산하게 하였다. (0<= θ <= 1)

transition layer를 가로지르는 피쳐맵의 수는 변하지 않는다.

θ <1인 DenseNet을 DenseNet-C라고 부르고,

bottleneck과 transition layer에서 모두 θ <1인 모델을 DenseNet-BC라고 부르기로 하였다.

 

Table 1: DenseNet architectures for ImageNet.

 

 

 

# Implementation Details

ImageNet을 제외한 모든 데이터셋에서 DenseNet은 3개의 Dense Block으로 구성되고 각각은 동일한 개수의 레이어로 구성된다.

첫번째 dense block에 들어가기 전에, 16개의 아웃풋 채널을 가진 컨볼루션이 인풋 이미지에 실행된다.

커널 사이즈 3×3를 가진 컨볼루션 레이어에서 인풋은 zero-padded이다.

우리는 두 인접한 dense block 사이에서 1x1 컨볼루션 - 2x2 average 풀링의 구조를 가진 transition layer를 사용한다.

마지막 덴스 블록의 끝에는 global average pooling이 실행되고 softmax classifier가 붙는다.

세 개의 dense block에서의 피쳐맵 사이즈는 각각 32x32, 16x16, 8x8이다.

{L = 40, k = 12}, {L = 100, k = 12} and {L = 100, k = 24} 으로 테스트하였다.

DenseNetBC에서는 {L = 100, k = 12}, {L= 250, k= 24} and {L= 190, k= 40}로 평가되었다.

 

 

 

# 더 알아볼 것


- ResNet 논문읽기 : identity function이 뭔지?

 

반응형
반응형

 

 

논문 링크입니다.

https://paperswithcode.com/paper/object-contextual-representations-for

 

Papers with Code - Segmentation Transformer: Object-Contextual Representations for Semantic Segmentation

#2 best model for Semantic Segmentation on Cityscapes test (Mean IoU (class) metric)

paperswithcode.com

 

 

0. Title


Segmentation Transformer: Object-Contextual Representations for Semantic Segmentation

-> Semantic Segmentation에서 사용하는 Object-Contextual Representations 모델인가 봅니다.

Transformer 개념이 들어가는 것 같기도 하구요. 

Object-Contextual Representation 이 핵심인 듯 한데, 객체-문맥 표현? 어떤거지?

 

 

1. Abstract


이 논문에서는 semantic segmentation에서 문맥 병합 문제를 다룰 것이다.

픽셀의 레이블이 픽셀이 속하는 물체의 카테고리라는 것에 착안하여, 

우리는 간단하지만 효과적인 object-contextual representations라는 개념을 개발하였다.

이는, 해당 객체 클래스의 표현을 활용하여 픽셀을 characterizing 하는 것이다.

 

첫째로, 우리는 ground-truth segmentation을 바탕으로, 객체의 영역을 학습한다.

둘째로, 객체의 영역에 있는 픽셀들의 표현을 합침으로써 object region representation을 계산하였다.

마지막으로, 각각의 픽셀과 각각의 객체 영역 사이의 관계를 계산하고, 

각각의 픽셀값을 모든 object-contextual representation을 가중치합한 object-contextual representation와 함께 증강시킨다.

우리는 경험적으로 Cityscapes, ADE20K, LIP, PASCAL-Context and COCO-Stuf에서 좋은 성능을 낸 것을 알 수 있었다.

 

우리는 Transformer의 encoder-decoder 프레임워크를 사용하였다.

첫번째 두개의 과정인 object region learning과 object region representation computation

decoder의 cross-attention 모듈로서 통합되었다.

마지막 과정은 encoder에 넣는 cross-attention module이다. 키와 value가 decoder의 output이고,

쿼리들은 각각의 위치에서의 표현이다.

 

 

 

1. Conclusions


우리는 semantic segmentation에서의 object-contextual representation approach를 제안한다.

성공의 가장 큰 이유는 픽셀의 레이블이 해당 픽셀이 속한 객체의 레이블이기 때문이다.

그리고 각각의 픽셀을 객체 영역 표현과 함께 characterizing함으로써  픽셀 표현이 강화되었기 때문이다.

즉, 픽셀을 그 픽셀이 포함된 객체 정보와 연결시킴으로써 예측 정확도가 높아졌다는 것이다.

우리는 경험적으로 Cityscapes, ADE20K, LIP, PASCAL-Context and COCO-Stuf에서 좋은 성능을 낸 것을 알 수 있었다.

 

 

 

2. Introduction


Semantic segmentation은 이미지에서 각각의 픽셀에 클래스 레이블을 할당하는 문제이다.

이것은 computer vision에서 근본적인 문제이며 자율주행과 같은 다양한 실용적인 태스크에 핵심적이다.

DCNN은 FCN부터 시작해서 지배적인 해결방법이었다.

HRNet, contextual aggregation을 포함하여 다양한 연구가 수행되어왔고 이것이 곧 이 논문의 관심 주제이다.

 

한 위치의 문맥은 일반적으로 주위의 픽셀들을 포함한 여러 세트의 위치를 나타낸다.

이전의 연구들은 주로 문맥의 공간적 스케일에 관하여 수행되었다.(spatial scope과 같은)

ASPP와 PPM과 같은 representation work는 multi-scale 문맥을 활용하였다.

DANet, CFNet, OCNet과 같은 최근의 연구는

위치와 그 위치의 문맥적 위치의 관계를 고려하고, 동일한 표현의 상위 weight와 문맥적 위치의 표현을 통합하였다.

 

Fig 1. Illustrating the effectiveness of our OCR scheme.

GT-OCR은 ground-truth를 이용함으로써 이상적인 OCR을 예측하였다.

 

우리는 position과 그것의 context 사이의 관계를 탐색하는 라인을 따라서 

contextual representation을 조사하기로 하였다.

픽셀에 할당된 클래스 레이블은 해당 픽셀이 포함된 객체의 카테고리라는 것이 핵심 아이디어였다.

대응되는 클래스의 객체 영역의 표현을 이용함으로써 한 픽셀의 표현을 증강시키는 것을 목표로 한다.

Fig 1.을 통해 알 수 있듯, ground-truth object region이 주어질 때,

그러한 representation augmentation scheme이 segmentation quality를 높여준다.

 

 

우리의 접근법은 세 가지 단계로 이루어져 있다.

첫째, 우리는 contextual pixel 을 soft object region으로 분할할 수 있다. (ResNet, HRNet과 같은 딥 네트워크로부터 계산된 거칠고 소프트한 세그먼테이션)

- 이러한 분할은 GT segmenation의 감독 아래 학습된다. (즉, GT를 이용한다.)

둘째, 대응되는 object region에서 픽셀의 표현을 병합함으로써 각각의 object region의 표현을 추정한다.

Illustrating the pipeline of OCR.

셋째, 각각의 픽셀 표현을 OCR과 함께 증강시킨다.

- OCR은 모든 object region representation의 가중치 합이다.

- weight는 픽셀과 object region 사이의 관계를 따라 계산된다.

 

 

OCR은 기존의 multi-scale context scheme과는 차이가 있다.

우리의 OCR은 다른 객체 클래스의 contextual pixel과 동일 객체 클래스의 contextual pixel을 구별합니다.

반면, ASPP나 PPM과 같은 multi-scale context scheme에서는 공간적  위치의 차이만 구별한다.

Fig. 2: Illustrating the multi-scale context with the ASPP as an example and the OCR context for the pixel marked with ■

 

게다가, 우리는 contextual 픽셀을 object region으로 구조화하고, 픽셀과 object 사이의 관계를 이용한다.

반면, 이전의 relational context schemes들은 contextual 픽셀을 분리하여 고려하였고,

픽셀과 contextual 픽셀 간의 관계만을 이용하거나 region에 대한 고려 없이 픽셀로부터의 관계를 예측하였다.

 

우리의 모델은 다양한 semantic segmentation 챌린지에서

multi-scale context schemes(PSPNet, DeepLabv3)와 relational context schemes(DANet)의 성능을 능가하였고

메모리 상에서도 더 효율적이었다.

또한, 우리의 접근법을 Panoptic-FPN으로 확장시켰고 COCO panoptic segmentation task에서 그 성능을 입증하였다.

 

 

 

3. Approach


1) Background

 

 

 

더 알아볼 것


- ASPP

- Transformer

- representation의 뜻?

 

 

 

 

반응형
반응형

 

 

논문 링크입니다.

https://arxiv.org/abs/1908.07919

 

Deep High-Resolution Representation Learning for Visual Recognition

High-resolution representations are essential for position-sensitive vision problems, such as human pose estimation, semantic segmentation, and object detection. Existing state-of-the-art frameworks first encode the input image as a low-resolution represen

arxiv.org

 

2020년 발행

 

 

0. Title


Deep High-Resolution Representation Learning for Visual Recognition

-> 고해상도의 표현을 학습하는 모델인가보다..

 

1. Abstract


위치가 중요한 휴먼 pose estimation이나 semantic segmentation, object detection과 같은 시각적 문제에는 고해상도 표현이 필수적이다. 

현존하는 sota 구조들은 인풋 이미지를 저해상도로 인코딩하고, 다시 고해상도로 회복시킨다.

우리의 모델(HRNet)은 모든 과정에서 고해상도를 유지한다. 여기에는 두가지 특징이 있다.

1) high-to-low resolution convolution이 평행으로 연결된다는 것이다.

2) 반복적으로 정보를 교환한다.

 

이로 인한 장점은, 결과적인 표현이 시맨틱하게 더 풍부하고 정확하다는 것이다. 

우리의 모델은 human pose estimation, semantic segmentation, and object detection과 같은 다양한 application에서 

우월성을 보여주었다.

 

 

2. Conclusion


이 논문을 통해, 우리는 시각 인식 문제를 위한 고해상도 네트워크를 발표하였다.

여기에는 기존 모델들과 다른 세 가지 근본적인 차이가 있다.

1) 고해상도와 저해상도의 컨볼루션을 평행하게 연결하였다는 것. (일렬로가 아니라)

2) 전체과정에서 고해상도를 유지하였다는 것

3) position sensitivity를 가지고 multi-resolution representation을 반복적으로 녹였다는 것

 

가장 우수한 결과는 HRNet이 컴퓨터 비전 문제의 백본으로서 강력하다는 것이다.

우리의 연구는 특정 비전 문제에 대한 네트워크 아키텍처를 구축하기 위한 연구도 장려하였다.

 

Discussion

여기에는 잘못된 이해가 있다: 해상도가 높을수록 HRNet의 메모리 비용이 많이 들 것이다. 라는

사실, HRNet을 세가지 application(pose estim, object detect, semantic seg)에 적용한 메모리 비용은 이전 SOTA와 유사하다.

게다가, 우리는  파이토치 1.0에서 runtime cost 비교를 요약했다

1) segmentation HRNet에서의 inference time은 훨씬 적다.

2) pose estimation HRNet에서의 training time은 조금 많이 든다.

우리는 semantic segmentation the inference cost 가 PSPNet and DeepLabv3 보다 상당히 적다는 것이다. 

 

 

Future and Followup works

semantic segmentation and instance segmentation를 위한 HRNet의 combination을 연구할 것이다.

현재로써는, mIOU의 결과가 있지만, OCR과 결합함으로써 더 해상도를 증가시켜볼 것이다.

 

 

 

Introduction


DCNN(Deep Convolution Neural Network)은 많은 컴퓨터비전 태스크에서 state-of-the-art한 결과를 내었다.

DCNN의 강점은 더 풍부한 표현을 할 수 있다는 것이다. (더 고해상도)

가장 최근에 개발된 classification network(AlexNet, VGGNet, etc)은 LeNet-5의 디자인 규칙을 따른다.

Fig. 1. The structure of recovering high resolution from low resolution. (a) A low-resolution representation learning subnetwork (such as VGGNet [126], ResNet [54]), which is formed by connecting high-to-low convolutions in series. (b) A high-resolution representation recovering subnetwork, which is formed by connecting low-to-high convolutions in series. Representative examples include SegNet [3], DeconvNet [107], U-Net [119] and Hourglass [105], encoder-decoder [112], and SimpleBaseline [152].

(a)는 점진적으로 feature map의 공간적 크기를 줄이고, 고해상도에서 저해상도로 일렬로 연결한다. 그리고 저해상도로 귀결한다.(b)는 

 

High-resolution representations는 위치가 중요한 태스크들에 필요하다.

그래서 이전의 SOTA 모델들은 resolution을 올리기 위해

(b) classification에 의해 나온 low-resolution 결과에 high-resolution recovery process를 거쳤다. 

게다가, 확장된 컨볼루션은 downsample된 layer를 줄이는 데 사용되고

이에 따라 medium-resolution representation을 얻게 된다.

 

우리는 새로운 아키텍처를 제안한다. 이름하여 HRNet High-Resolution Representations.

이는 전체 과정에서 고해상도를 유지할 수 있다.

우리는 고해상도 컨폴루션 stream으로 시작해서, 점진적으로 high-to-low resolution convolution stream을 one by one으로 추가하고, multi-resolution streams을 평행으로 연결한다.

Fig. 2. An example of a high-resolution network. Only the main body is illustrated, and the stem (two stride-2 3 &times; 3 convolutions) is not included. There are four stages. The 1st stage consists of high-resolution convolutions. The 2nd (3rd, 4th) stage repeats two-resolution (three-resolution, four-resolution) blocks. The detail is given in Section 3

 

HRNet은 semantically 강한 것 뿐만 아니라, 공간적으로도 정밀하다.

1) 우리의 모델 개념은  high-to-low resolution convolution stream을 직선이 아닌, 평행으로 연결하기 때문이다.

따라서, 고해상도를 유지할 수 있다. 저해상도에서 고해상도로 회복시킨 것이 아니기 때문에 공간적으로도 정밀할 수 있다.

2) multi-resolution fusion을 반복함으로써 고해상도 representation을 상승시켰다.

반대로, 다른 fusion scheme들은 대부분 low-level high-resolution과 high-level이지만, low-resolution에서 upsampling한 것을 합치는 방식이다.

따라서, 모든 high-to-low resolution representations은 시맨틱하게 강하다.

 

 

우리는 두 버전의 HRNet 모델을 출시하였다.

첫번째는,  high-resolution convolution stream으로부터 계산된 high-resolution representation 만을 결과로 내뱉는다. 

-> pose estimation에 적용

두번째는, 모든 high-to-low resolution parallel streams으로부터의 representation을 결합한다.

-> semantic segmentation에 적용

 

우리의 모델은 

detection 성능과 작은 물체를 잡는 데에서 좋은 성능을 보여주었다.

 

 

 

 

 

 

반응형
반응형

 

 

논문 링크입니다.

https://arxiv.org/abs/1511.03339

 

Attention to Scale: Scale-aware Semantic Image Segmentation

Incorporating multi-scale features in fully convolutional neural networks (FCNs) has been a key element to achieving state-of-the-art performance on semantic image segmentation. One common way to extract multi-scale features is to feed multiple resized inp

arxiv.org

 

 

 

0. Title


Attention to Scale: Scale-aware Semantic Image Segmentation

-> 어텐션에서 스케일로.. 스케일을 아는 시맨틱 이미지 세그먼테이션

이 논문의 핵심은 어텐션 매커니즘과 스케일로 예측된다.

 

 

1. Abstract


FCN(Fully Convolutional Network)에 multi-scale feature을 적용한 것은 

시맨틱 세그먼테이션에서 SOTA 성능을 달성하는데 핵심이 되었다.

 

multi-scale feature를 뽑는 데 일반적으로 사용되는 방법은

공유되는 deep network에 다수의 resize된 이미지를 먹이는 것이다.

그리고 나온 결과를 픽셀 단위로 합치는 것이다.

 

우리는 어텐션 매커니즘을 제안한다.

이는 각 픽셀 위치에서 다중 스케일 기능에 부드럽게 가중치를 부여하는 방법을 학습하는 메커니즘이다.

우리는 state-of-the-art segmentation model을 채택하였고, 여기에 우리의 어텐션 모델과 multi-scale input image를 학습하였다.

 

어텐션 모델은 average pooling 과 max pooling 의 성능을 능가할 뿐만 아니라,

다양한 위치와 스케일에서의 feature의 중요성을 진단적으로 시각화할 수 있게 하였다.

 

게다가, multi-scale features를 병합할 때 좋은 성과를 내려면

각 스케일의 output에 대한 추가적인 감독이 필요함을 보여준다.

 

우리의 모델의 효과성을 PASCAL-Person-Part, PASCAL VOC 2012 and a subset of MS-COCO 2014에서

입증하였다.

 

 

2. Conclusion


이 논문에서는 multi-scale input을 활용하기 위해 DeepLab-LargeFOV 모델을 사용하였다. 

세가지 데이터셋에 실험해봄으로써 우리가 알아낸 것이다.

1) multi-scale inputs가 single-scale inputs 보다 더 좋은 성능을 냄

2) 어텐션 모델에 multi-scale features를 적용한 것은 average pooling과 max pooling보다 뛰어날 뿐만 아니라,

다른 위치와 스케일에 따른 features의 중요성을 진단적으로 시각화할 수 있다.

3) 각각의 스케일에 마지막 결과에 추가적인 감독이 있다면 훌륭한 결과가 있을 것이다.

 

 

Figure 8. Qualitative segmentation results on PASCAL-Person-Part validation set.

 

 

3. Introduction


Semantic image segmentation는 각각의 모든 픽셀에 semantic label을 할당하는 태스크이다.

최근에는 FCN 을 기반으로 한 다양한 방식들이  놀라운 성과를 내었다.

성공적인 Semantic image segmentation의 요소 중 한가지는 "multi-scale features"의 사용이다.

 

FCN에는 multi-scale features를 활용하는 두 가지 타입의 네트워크 구조가 있다.

. Different network structures for extracting multi-scale features:

첫 번째는 skip-net이다.

아주 큰 receptive field sizes 때문에 skip-net의 feature는 본질적으로 multi-scale이다.

학습 시간동안 skip-net은 두 가지 프로세스를 거치는데,

딥러닝 백본을 학습하고,  multi-scale feature extraction 과정에서 fine tuning하는 것이다.

이 전략의 문제점은 학습과 feature extraction 과정이 분리되어 있기 때문에 학습 과정이 이상적이지 못 하다는 것이다.

 

두 번째는 share-net이다.

인풋 이미지를 여러 사이즈로 리사이즈하고, 공유된 딥 뉴럴 네트워크로 통과하는 것이다.

그런 다음 다중 스케일 피쳐들을 기반으로 최종 예측값을 계산한다.

 

 

최근, attention model은 컴퓨터 비전과 자연어 처리에서 엄청난 성공을 하였다.

전체 이미지와 시퀀스들을  압축하는 것이 아니라, 어텐션은 가장 유용하고 관련있는 피쳐에 집중한다.

이전의 2D 대상으로한 어텐션 모델들과 다르게, 우리는 scale dimension에서의 효과를 입증해보고자 한다.

 

우리는 sota 모델에 share-net를 적용하였고,

average pooling과 max pooling을 generalize하기 위해 soft attention model을 적용하였다.

attention model illustration

어텐션 모델은 이미지에 나타나 있는 물체의 크기에 따라 

multi-scale feature들에 가중치를 부여하는 방법을 학습힌다.

(예를 들어, 모델은 거칠고 큰 물체에는 큰 가중치를 부여한다.)

각각의 스케일에서, 어텐션 모델은 weight map을 뱉어내는데, 이것은 픽셀 바이 픽셀로 가중치를 구한 것이다.

그리고 FCN에서 생성한 score map의 가중치 합을 뱉어낸다.

 

각각의 스케일마다 추가적인 감독을 소개한다. 성능 개선에 필수적인

우리는 어텐션 모델과 멀티스케일 네트워크를 공동으로 학습시킨다.

 

어텐션 컴포넌트는 average pooling과 max pooling에 비해 상당한 개선을 제공한다.

게다가 diagnostic visualization이 가능하다. 모든 이미지 포지션에서 각각의 스케일의 각각의 피쳐들의 중요성을 시각화함으로써 블랙박스를 벗겨내었다. 

 

 

 

4. Model


1) Review of DeepLab

FCN이 semantic segmentation에서 성공적인 효과를 거두었으므로

FCN의 변형인 DeepLab 모델을 리뷰해보고자 한다.

 

DeepLab은 VGG를 참고하여 16개의 레이어 구조를 채택하였다.

해당 네트워크에 dense feature map을 가져다주는 fully convolution으로 주입하였다.

자세하게는, 마지막 VGG의 fully connected layer가 fully convolutional layer로 변경되었다. (마지막 레이어는 커널 사이즈 1x1)

원래의 VGG-16의 spatial decimation은 32이다. 5개의 stride 2를 가진 max pooling을 사용하였기 때문이다.

 

DeepLab은 atrous 알고리즘을 사용하여 이를 8로 줄였다.

또한 linear interpolation을 사용하여 최종 레이어의 스코어 맵을 원본 이미지 해상도에 매핑한다.

우리는 DeepLab의 여러가지 변형 중, DeepLab-LargeFOV에 초점을 맞춘다.

 

 

2) Attention model for scales

(a) Merging score maps (i.e., last layer output before SoftMax) for two scales. (b) Our proposed attention model makes use of features from FCNs and produces weight maps, reflecting how to do a weighted merge of the FCN-produced score maps at different scales and at different positions.

 

어텐션 모델은 각각의 다른 스케일과 position으로 부터 FCN이 생성한 스코어맵의

가중 합을 어떻게 할지를 반영하는 weight map을 만든다.

즉, multi-scale features를 가중치를 어떻게 할지 학습한다.

 

share-net을 기반으로, 인풋 이미지는 여러 스케일로 리사이즈 된다.

각각의 스케일은 DeepLab을 통과하며 score map을 만든다. (fully convolutional layer)

score map은 bilinear interpolation을 통해 동일한 해상도를 갖도록 리사이즈된다.

 

f : score map

w : importance of feature at position i and scale s

g : weighted sum of score map

 

w를 시각화하면 스케일별로 어텐션을 시각화할 수 있다.

 

 

 

5. Result


Table 1. Results on PASCAL-Person-Part validation set. E-Supv: extra supervision
Table 2. Per-part results on PASCAL-Person-Part validation set with our attention model.

 

Table 3. Results on PASCAL VOC 2012 validation set, pretrained with ImageNet. E-Supv: extra supervision
Table 4. Labeling IOU on the PASCAL VOC 2012 test set.

 

Table 5. Results on PASCAL VOC 2012 validation set, pretrained with MS-COCO. E-Supv: extra supervision.

반응형
반응형

 

논문 링크입니다.

https://paperswithcode.com/paper/hierarchical-multi-scale-attention-for

 

Papers with Code - Hierarchical Multi-Scale Attention for Semantic Segmentation

7 code implementations in PyTorch and TensorFlow. Multi-scale inference is commonly used to improve the results of semantic segmentation. Multiple images scales are passed through a network and then the results are combined with averaging or max pooling. I

paperswithcode.com

 

 

0. Title


HIERARCHICAL MULTI-SCALE ATTENTION FOR SEMANTIC SEGMENTATION

-> semantic segmentation을 위한 계층적 multi-scale 어텐션

즉 이 논문의 핵심은, 계층적이고 + multi-scale이고 + attention을 활용한 것이지 않을까 싶다.

 

 

1. ABSTRACT


multi scale 추론은 semantic segmentation의 성능을 올리기 위해 자주 사용되는 기법이다.

다중 이미지 scale들이 네트워크를 통과하고, 그 결과물은 average pooling이나 max pooling으로 결합된다.

이 논문에서는 multi-scale 예측결과에 attention-based 접근법을 적용하였다.

우리의 attention mechanism은 계층적이다. 다른 최근의 접근법들보다 약 4배의 메모리 효율을 향상시킬 수 있다.

 

게다가 더 큰 crop-size를 이용해서 학습시킬 수 있게 한다. 이는 곧 더 높은 모델 정확도를 가질 수 있다는 의미이다.

우리는 두 가지의 데이터셋에 적용해 보았다.

1) Cityscapes -> generalization을 위해 leverage auto-labeling 기법 사용

2) Mapillary Vistas

-> 두 가지의 데이터셋에서 모두 state-of-the-art한 결과를 낼 수 있었다.

 

 

 

2. Conclusion


우리는 semantic segmentation에 계층적 multi-scale attention 기법을 적용하였다.

우리는 segmentation accuracy을 향상시켰다. 메모리와 계산을 효율적으로 처리함과 동시에,

 

 

 

 

3. Result (Data 훑기)


1) implementation protocol

우리의 implementation protocol을 자세하게 설명할 것이다.

 

- Training Detail

Pytorch와 Nvidia DGX 서버(8 GPU) with *mixed precision

*mixed precision은 모델 학습시 FP16, FP32 부동 소수점 유형을 상황에 따라 유연하게 사용하여 학습을 더 빠르게 실행하고 메모리를 적게 사용하는 방법이다

: Semantic and attention predictions at every scale level for two different scenes

왼쪽 사진은 디테일한 문제 -> 2x scale에서 가장 잘 예측, attention도 2x에서 가장 잘 attend함

오른쪽 사진은 큰 영역 세그먼테이션 문제 -> 0.5 scale에서 가장 잘 예측, attention도 가장 성공적으로 집중한 것이 0.5였을 때임

 

white color for attention이 높은 값을 가졌음(거의 1.0)

모든 scale의 attention 합은 1.0임

 

Auto-generated coarse labels은 GT(Original coarse label)보다 더 디테일하게 레이블링되었음

더 정교한 레이블링은 레이블들의 분포를 향상시켰다. 작고 큰 아이템들이 모두 표시되었기 때문이다. 기존에 큰 오브젝트만 있던 것과는 다르게

 

 

Table 2 : Ablation study on Cityscapes validation set.

베이스라인은 HRNet-OCR을 뼈대로 썼다. 

MS attention이 우리가 제안한 multi-scale attention method이다.

Auto-labeling은 학습시에, 자동적으로 생성된 coarse label을 사용하였는지, 아니면 ground truth coarse label을 사용하였는지를 나타낸다.

두가지의 조합이 가장 좋은 성능을 나타내었다.

 

 

- 학습 세팅

optimizer로는 SGD, GPU당 1 batch size, momentum = 0.9, *weight decay = 5e(-4)

*Weight decay는 모델의 weight의 제곱합을 패널티 텀으로 주어 (=제약을 걸어) loss를 최소화 하는 것을 말한다. overfittin을 줄이기 위해 사용

“polynomial” learning rate policy 사용

첫번째 loss function으로 RMI 사용

auxiliary loss function으로 cross-entropy 사용

 

Cityscapes 데이터셋에 2.0 poly exponent

초기 learning rate = 0.02

200 에포크 for 4 DGX nodes

class uniform sampling in data loader -> 클래스별로 비슷하게 뽑기 위해서 -> 클래스별 데이터 분포가 불균형할 때 좋음

 

- Data augmentation

gaussian blur, color augmentation, random horizontal flip and random scaling (0.5x - 2.0x) on the input images

crop size of 2048x1024 for Cityscapes and 1856x1024 for Mapillary

 

 

2) Results on Cityscape

뼈대로써 HRNet-OCR을 사용하였고, multi-scale attention method를 주로 사용하였다.

RMI을 main segmentation head로 사용.

auxiliary segmentation head에는 cross entropy 사용. 왜냐하면 RMI가 학습이 깊어질수록 학습 정확도를 떨어트리는 것을 확인했기 때문이다.

 

더 큰 Mapillary dataset을 먼저 학습시키고, pre-trained model을 Cityscapes에 다시 학습시켰다.

Mapillary dataset에는 attention을 학습시키지 않았다.

우리의 Cityscapes의 SOTA 레시피는 train + val images / auto-labelled coarse images로 달성하였다.

50%는 train + val images 에서 샘플을 뽑았고, 나머지는 auto-labelled coarse images에서 뽑았다.

inference time에서 {0.5, 1.0, 2.0} 의 scale과 image flipping을 사용하였다.

TABLE2 : Ablation study on Cityscapes validation set.

MS Attention은 0.5% IoU +

Auto-labeling은 1.1% IoU +

Both 1.4% IoU +

 

Table 3: Comparison vs other methods on the Cityscapes test set

Cityscapes test set score에서 best score로 85.1을 달성하였다. 3가지 클래스를 빼고 모든 클래스에서 가장 우수하였음.

 

3) Results on Mapillary Vistas

Mapillary Vistas은 굉장히 큰 데이터셋으로, 25,000개의 높은 해상도 이미지와 66개의 object categories로 구성됨.

HRNet-OCR을 줄기로 썼고, multi-scale attention method를 사용하였다.

Mapillary images에는 다양한 해상도가 있기 떄문에 long edge를 2177로 하여 resize 했다.

 

ImageNet classification에서 미리 학습한 HRNet weight를 사용하였다.

Mapillary에는 더 큰 메모리가 필요했기 때문에, crop size를 1856 x 1024로 줄였다.

Table 4: Comparison of results on Mapillary validation set.

두번째로 높은 IOU를 가진 Panoptic Deeplab보다 2.4 더 높은 성능 달성.

 

 

 

 

Introduction


semantic segmentation은 모든 픽셀을 N개의 클래스 중 하나로 label하는 태스크이다.

이 태스크에는 trade-off 관계가 있는데,

특정 유형의 예측은 lower inference resolution에서 가장 잘 처리되지만,

어떤 예측은 higher inference resolution에서 잘 처리된다는 것이다.

 

디테일한 부분은 확대된 이미지 사이즈에서 더 잘 예측됩니다.

global context가 필요한 큰 구조는 축소된 이미지 사이즈에서 더 좋다.

왜냐하면, network의 receptive field가 더 필요한 부분을 볼 수 있게 하기 때문이다.

이를 "class confusion"이라고 부른다.

Illustration of common failures modes for semantic segmentation as they relate to inference scale.

첫번째 행에서 2.0x scale (high resolution)일 때 디테일한 사람의 형상을 더 잘 잡아내는 것을 볼 수 있다.

두번째 행에서는 커다란 도로와 나눠진 영역을 0.5x scale (low resolution)일 때 더 잘 segment되는 것을 볼 수 있다.

 

 

multi-scale inference를 사용하는 것은 이 trade-off를 다루기 위해 자주 사용되는 방식이다.

예측은 다양한 규모로 이루어지고, 결과는 averaging or max pooling으로 합쳐진다.

averaging을 사용하는 것은 일반적으로 성능을 향상시키지만, 가장 좋은 결과를 가장 나쁜 결과와 결합한다는 단점이 있다.

반대로, max pooling은 픽셀당 가장 좋은 하나의 scale 결과를 선택할 수 있다. (weighted combination으로)

 

이러한 문제를 해결하기 위해 attention method를 채택하였다. 픽셀 레벨에서 multi-scale predictions을 어떻게 조합할지 예측하기 위해.

네트워크가 인접 척도간의 상대적 가중치를 예측하는 계층적 attention method를 제안한다. 

계층적이라는 성질 때문에, training pipeline에서만 하나의 추가 scale로 augment할 수 있었다.

예를 들어, 타겟 inference scale이 {0.5, 1.0, 2.0}이면, 다른 어텐션 방식들은 모든 스케일로 학습시키길 요구한다. 4.25x (0.5^2 + 2.0^2 )의 학습 비용을 발생시키면서

우리의 방식은 학습시 , 오직 추가 0.5x 스케일만 추가하였다. 0.25x (0.5^2 ) 의 학습 비용 발생시키면서

게다가, 우리의 계층적 매커니즘은 inference time에서 유연성을 부여할 수 있다.이전의 방식보다(only use training scales during inference)

 

Cityscapes에서 SOTA를 달성하기 위해 auto-labelling을 시행하였다. 데이터셋의 다양성을 부여하기 위해 

이로인해 일반화 효과가 있었다.

 

 

요약


- hierarchical multi-scale attention mechanism으로 class confusion와 fine detail 문제를 개선하였다. 다수의 scale을 사용함으로써

- hard-threshold based auto-labelling strategyunlabelled image를 활용하고, IOU를 높였다.

- Cityscapes (85.1 IOU)와 Mapillary Vistas (61.1 IOU)에서 SOTA를 달성하였다.

 

 

 

Related Work


1) Multi-scale context methods

우리의 SOTA는 low output stride를 사용하였다. (input image size와 output size의 비율로, 높을수록 축소)

이것은 fine detail 문제를 더 잘 해결할 수 있게 하였고, receptive field가 줄어드는 효과가 있었다.

 

다만, 이렇게 줄어든 receptive field는 이미지에서 커다란 물체를 인식하기에 어려움이 있다.

Pyramid pooling은 multi-scale context를 합침으로써 줄어든 receptive field 문제를 보완할 수 있다.

PSPNet은 spatial pyramid pooling을 사용함으로써 multiple scale로부터 feature들을 병합하였다. (pooling의 순서와 convolution operation을 이용해)

DeepLab은 다양한 레벨의 dilation을 적용한 astrous convolutions를 사용하는 Astrous Spatial Pyramid Pooling을 이용하였다. 이로인해, PSPNet보다 더 밀집한 feature를 생성해 낼 수 있었다.

 

2) Relational context methods

일반적으로, pyramid pooling은 고정적이고 사각형의 영역을 가지고 수행한다. pooling과 dilation이 일반적으로 대칭적인 패션을 이루고 있기 때문이다.  

게다가 그러한 기법은 정적이고 학습되지 않는 경향이 있다.

그러나, relational context method는 픽셀간의 관계로 문맥을 파악하고, 사각형 영역에 국한되지 않는다.

relational context method는 이미지 구성을 기반으로 형성된다.

따라서 non-square한 semantic regions에 적절하다. OCRNet, DANET, CFNet, OCNet도 Relational context methods를 사용한다.

 

3) Multi-scale inference

relation과 multi-scale 모두 multi-scale evaluation을 쓴다.

multi-scale에서 prediction을 조합하는 데에 두가지 접근법이 있다. 

average pooling과 max pooliing이다. (average pooling이 더 일반적이다)

 

하지만, average pooling은 모든 결과를 동일한 가중치로 합치기 때문에 최적이 아닐 수 있다.

 

 

우리의 hierarchical based attention mechanism는 추론 시간이 scale 개수에 구애받지 않는다.

게다가, 우리의 모델은 average-pooling보다 더 좋은 성능을 냄과 동시에, 클래스별/장면별 다양한 스케일의 중요성을 시각화하였다.

또한, 하나의 스케일을 사용하는 다른 모델들보다 뛰어나고, 고해상도 예측을 생성하는데에 multi-level feature를 사용하여 더 좋은 attention을 실현시킴

 

4) Auto-labelling

 

 

Hierarchical multi-scale attention


우리의 attention 매커니즘은 [1] Liang-Chieh Chen, Yi Yang, Jiang Wang, Wei Xu, and Alan L. Yuille. Attention to scale: Scale-aware semantic image segmentation, 2015.과 매우 닮아있다. dense mask가 각각의 스케일마다 학습되어지는것과 multi-scalse prediction들이 pixel-wise summation으로 mask들 사이에서 결합된다는 것이다. Chen의 모델을 Explicit method, 우리 모델을 Hierarchical mothod라고 하자.

우리는 모든 attention mask를 학습시키는 것 대신에, 인접한 스케일 사이의 상대적인 attention mask를 학습하였다.

장점 1) 유연하게 스케일을 선택할 수 있다. 추론에서 0.25x나 2.0x scale을 0.5x와 1.0x로 학습된 모델에 계층적으로 추가하는 것이 가능하다. 이전의 모델들은 학습시와 동일한 스케일만 사용할 수 있었다.

장점 2) training efficiency를 향상시킬 수 있다. explicit model에서는 0.5, 1.0, 2.0 스케일을 사용하면, the training cost is 0.5^2 + 1.0^2 + 2.0^2 = 5.25 였다. 하지만 계층적 모델은 0.5^2 + 1.0^2 = 1.25 이면 된다.

 

 

 

Architecture


Backbone : HRNet-OCR

Semantic Head : (3x3 conv) → (BN) → (ReLU) → (3x3 conv) → (BN) → (ReLU) → (1x1 conv)

Attention Head : semantic head와 구조적으로 동일, 마지막 convolutional output만 single channel

semantic and attention heads는 OCR block에서 가져온 feature들을 먹였다. 

auxiliary semantic head : OCR하기 전에 HRNet trunk로부터 직접 feature를 가져오는 부분, (1x1 conv) → (BN) → (ReLU) → (1x1 conv)

 

attention이 semantic logits에 모두 적용되고 나서, 예측 결과는 target image size로 upsampling 된다.(bilinear upsampling)

 

Analysis


Table 1: Comparison of our hierarchical multi-scale attention method vs. other approaches on Mapillary validation set

 

 baseline averaging approach (49.4) or the explicit approach (51.4)보다 더 좋은 성능(51.6) 을 내었다.

Unlike the explicit method 0.25x scale 을 추가하였다. 0.25x scale을 추가하니 re-training을 할 필요가 없어졌다.

flexibility at inference time가 우리의 최대 장점이다. 학습은 한번 할 수 있지만, inference는 다양한 스케일을 선택하여 유연하게 할 수 있다.

 

한 가지 더, average pooling 방식에 0.25x 스케일을 추가하면 해로운 영향(-0.7 IOU)이 있는 것으로 나왔다.

반면, 우리의 계층적 모델은 0.6 IOU가 향상되었다.

baseline averaging method에서는 0.25x 스케일 데이터가 다른 스케일들과 합쳐질 때 너무 거친 나머지 여러 클래스들에서 1.5 IOU의 감소가 이루어 졌다. 

예측의 거친 정도는 엣지와 fine detail에 해롭다.

하지만, 우리의 모델에서는 0.25x 스케일을 가장 적절한 방식으로 적용하였기 때문에 0.25x scale 결과는 가장자리에는 적용하지 않았음

 

 

 

 

Question


- RMI

 

반응형
반응형

# FCN

논문 링크 입니다.

https://arxiv.org/abs/1411.4038

 

Fully Convolutional Networks for Semantic Segmentation

Convolutional networks are powerful visual models that yield hierarchies of features. We show that convolutional networks by themselves, trained end-to-end, pixels-to-pixels, exceed the state-of-the-art in semantic segmentation. Our key insight is to build

arxiv.org

 

 

# Semantic Image Segmentation이란?


Semantic Image Segmentation의 목적은 사진에 있는 모든 픽셀을 해당하는 (미리 지정된 개수의) class로 분류하는 것입니다. 이미지에 있는 모든 픽셀에 대한 예측을 하는 것이기 때문에 dense prediction 이라고도 불립니다.

여기서 주의해야하는 점은 semantic image segmentation 은 같은 class의 instance 를 구별하지 않는다는 것입니다. 쉽게말해서, 밑에 가족사진처럼 같은 class 에 속하는 object (사람이 4명)가 있을 때

사람을 따로 분류하지 않고, 그 픽셀 자체가 어떤 class 에 속하는지에만 관심이 있습니다 (오른쪽 사진). 왼쪽 사진처럼 instance 를 구별하는 모델은 따로 instance segmentation 이라고 불립니다.

단순히 사진을 보고 분류하는것에 그치지 않고 그 장면을 완벽하게 이해해야하는 높은 수준의 문제입니다.

 

 

# 들어가기 전에


**CNN Architecture: 전체 구조**

**CNN Architecture: 대표적 레이어 유형**

 

CNN에는 여러 종류의 계층이 있습니다.

그 중에 대표적인 레이어 유형은 다음과 같습니다.

1) **Convolutional layer**━"필터"는 이미지를 통과하여 한 번에 몇 Pixel(NxN)을 스캔하고 각 형상이 속하는 클래스를 예측하는 형상 맵을 만듭니다.

2) **Pooling layer (downsampling)**━가장 중요한 정보를 유지하는 동시에, 각 피쳐의 정보량을 줄입니다(대개 여러 개의 회전이 있습니다).

**[출처]** [[딥러닝 레이어] FC(Fully Connected Layers)이란?](https://blog.naver.com/intelliz/221709190464)|**작성자** [인텔리즈](https://blog.naver.com/intelliz)

 

# Abstract


CNN은 image recognition에 큰 발전을 가지고 왔습니다.semantic segmentation에도 CNN Deep learning model을 사용하기 위한 방법으로 FCN의 방법을 제시했습니다.

FCN은 AlexNet, VGG, GoogleNet과 같은 분류 모델을 적용하고, fine-tuning 함으로써 목적에 맞게 변형한 것입니다.

 

# 핵심 아이디어


 

정리해보자면,

- CNN으로 사진의 feature들을 추출하고, classifier 부분을 FC(fully connected layer)에서 CNN 부분으로 변경하여, 공간적 정보를 보존하고 image size에 상관 없이 입력 받을 수 있습니다.

- 사이즈가 작아진 activation map을 Upscaling을 이용해 원래의 input 이미지 크기를 가지도록 만들어주고, skip connection을 사용하여 깊은 network의 coarse한(거친) semantic 정보와 shallow, fine한 겉 모습의 정보를 합쳐주어 예측한 segmentation 결과를 출력할 수 있습니다.

 

# Introduction


FCN은 픽셀 단위의 예측(pixelwise prediction)을 수행합니다.

→ 네트워크 내의 upsampling layer는 *subsampled pooling을 통해 픽셀 단위의 예측을 가능하게 합니다.

일반적인 CNN 같아 보이지만, 자세히 보시면 컨볼루션을 거친 뒤, 이를 쫙 펴서 FC에 넣어주는 것이 아니라, 1x1 컨볼루션을 계속 진행하는 것을 볼 수 있습니다. 그리고 이를 Upsampling 과정을 거쳐서 원래 이미지와 똑같은 크기의 피쳐맵을 만들어줍니다. 이 피쳐맵의 픽셀 하나하나를 classification 결과 값으로 하여 세그멘테이션을 진행하는 것입니다.

즉, 컨볼루션 레이어들만으로! Semantic Segmentation을 수행할 수 있게됩니다.

 

 

# Fully Convolutional networks


image recognition에서 일반적으로 사용하는 FC(Fully Connected layer) classfier를 CNN으로 바꿔주어 공간 정보를 보전하고 다양한 image size를 입력으로 받는 것

 

### 1. Adapting classifiers for dense prediction


LeNet, AlexNet과 같은 recognition 신경망은 fixed-sized 입력값을 받아서 공간정보가 없는 출력값을 생성합니다. 이러한 신경망의 Flatten → FC(Fully Connected layer) 부분에서 spatial 정보가 소실 되게 됩니다. 그래서 NIN(Network In Network, 1x1 Conv)로 FC(Fully Connected layer) 를 대체하여 spatial한 정보를 보존시켰다.

모든 layer에 Conv를 사용함으로서 ground truth를 각 layer의 출력을 얻을 수 있어 forward, backward passes가 간단해 효율적인 연산을 할 수 있다고 합니다.

- Ground Truth는 추론에 의해 제공되는 정보와 달리 직접 관찰 및 측정(즉, 경험적 증거)에 의해 제공되는 실제 또는 사실로 알려진 정보 를 참조하기 위해 다양한 분야에서 사용되는 용어

    

    

 

### 2. Shift-and-stitch is filter rarefaction


입력값이 conv + pooling을 통과하면 크기가 감소합니다. 이를 복원하는 방법으로 shift-and-stich 방법을 검토하는데,  이보다 skip connection을 사용한 upsampling이 더 효과적으로 판단하여 shift-and-stich 방법은 사용하지 않습니다

- shift-and-stich 방법 : max pooling을 하고 위치 정보를 저장하여 원래의 이미지 크기로 upscaling하는 방식, but 계산 비용이 큼

- Max pooling (맥스 풀링)

: 맥스 풀링은 Activation map을 MxN의 크기로 잘라낸 후, 그 안에서 가장 큰 값을 뽑아내는 방법이다.

 

 

### 3. Upsampling is backwards strided convolution


Convolutionalization을 통해 출력 Feature map은 원본 이미지의 위치 정보를 내포할 수 있게 되었습니다.

그러나 Semantic segmentation의 최종 목적인 픽셀 단위 예측과 비교했을 때, FCN의 출력 Feature map은 너무 **coarse(거친, 알맹이가 큰)** 합니다.

따라서 Coarse map을 원본 이미지 크기에 가까운 Dense map으로 변환해줄 필요가 있습니다.

1) backward strided convolution(=Deconvolution)과

2) bilinear interpolation을 사용합니다.

 

 

### 1) backward strided convolution(Deconvolution)


위와 같이 사이를 띄워주고 padding 해준 Input을 convolution하면 원하는 사이즈의 Output을 얻을 수 있다. 

그래서 원래 이미지 사이즈로 Upsampling하면, pixelwise loss를 구할 수 있어서 backprop 하기가 용이하다.

 

 

### 2) bilinear interpolation


Bilinear interpolation을 이해하기 위해서는 Linear interpolation을 우선적으로 이해할 필요가 있다.

다음의 두 값을 예측해 보자.

위의 값은 5, 아래 값은 7 임을 어렵지 않게 예측할 수 있다. 이 처럼 두 지점 사이의 값을 추정할 때 직관적으로 사용하는 방법이 Linear interpolation이다.

 

위의 추정 방식은 다음과 같이 식으로 표현할 수 있다.

 

식을 앞의 예제에 대입하면 다음과 같이 추정값을 쉽게 구할 수 있다.

 

** bilinear interpolation은 이러한 1차원의 Linear interpolation을 2차원으로 확장한 것이다.

네 지점 A, B, C, D 사이의 임의의 점 X를 추정할 수 있다.

이제 우리는 다음과 같은 Feature map의 빈 영역을 추정할 수 있다.

 

### 4. Patchwise training is loss sampling


patchwise training과 fully convolutional training을 비교해서 설명합니다.

- Patchwise training란 하나의 이미지에서 객체가 존재하는 위치 또는 주변 위치를 crop하여 하나의 patch로 만든 뒤 모델에 입력하는 training 방식입니다.

  Patchwise training을 사용하는 이유는 이미지에 필요 없는 정보들이 존재할 수 있고, 하나의 이미지에서 서로 다른 객체가 존재하는 경우 중복성이 발생한다(고양이에 관련된 feature를 추출해야하는데, 필요 없는 배경까지 모두 봐야 하는 문제)

→ 이미지에서 patch 이미지를 뽑아내서 필요한 부분을 위주로 training 시킬 수 있다. class imbalance 문제를 완화할 수 있지만 공간적 상관 관계가 부족해진다는 단점이 있다

→ patchwise training을 통해 하나의 이미지를 100개의 patch로 분할해 각 patch마다의 loss 값을 구하게 된다. 이 때, 모든 loss를 사용하는 것이 아니라 중요한 patch들의 loss만 사용하거나 가중치를 주어 loss 값을 샘플링해 사용할 수 있다고 한다.

 

- 반면에 fully convolutional training은 전체 이미지를 입력으로 받아 학습하는 것입니다.

→ 결과적으로는 patchwise training을 사용하지 않았습니다. whole image training이 dense prediction을 위한 training 속도 측면에서 더 효과적이고 효율적이었다고 합니다.

 

 

# Segmentation Architecture


FCN, Upsampling 그리고 pixelwise loss를 사용한 모델을 이용해 dense prediction을 구했습니다.

여기서 skip connection을 이용해 coarse, semantic 정보와 local, appearance 정보를 합친 개선 된prediction을 구했습니다.

 

 

### 1. From classifier to dense FCN


backbone은 VGG-16을 사용합니다. 그리고, 마지막 classifier layer를 버리고, 이것을 fully convolution으로 변경합니다. 원래 이미지 크기로 맞춰주기 위해 coarse output에 upsampling을 수행하는 deconvolution layer 이후의 coarse output locater에 21 차원을 가진 1x1 convolution을 추가합니다. 21차원은 배경을 포함한 *PASCAL classes를 예측합니다. channel을 PASCAL의 class 개수와 맞추기 위해 1x1 conv를 사용했다.

 

*Pascal VOC is a collection of datasets for object detection

 

VGG16을 예로 살펴보자. 다음과 같이 출력층 부분의 마지막 3 fc-layers를 모두 Conv-layers로 변경한다.

 

 

 

### 2. Combining what and where


segmentation을 위한 새로운 fully convolutional network를 정의합니다. layer를 결합하고 출력값의 공간적인 정보를 개선합니다.

*skip architecture

1x1인 pool5의 activation map을 32배 한 upsampled prediction을 FCN-32s라고 한다.

2x2인 pool4의 activation map과 pool5를 2x upsampled prediction을 더해, 16x upsampled prediction(FCN-16s)를 구했다.

이와 같이 4x4 pool3과 앞서 더해주었던 prediction을 합해 8x upsampled predicton(FCN-8s)를 구했다.

 

결과를 보면 low 레이어의 prediction을 더한 FCN-8s가 가장 디테일한 부분까지 가지고 있는 것을 확인할 수 있다.

또한 결과표를 봐도 FCN-8s의 결과가 가장 좋은 것을 확인할 수 있다.

 

 

 

반응형

+ Recent posts