반응형

 

 

논문 링크입니다.

https://arxiv.org/abs/2102.04306

 

TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation

Medical image segmentation is an essential prerequisite for developing healthcare systems, especially for disease diagnosis and treatment planning. On various medical image segmentation tasks, the u-shaped architecture, also known as U-Net, has become the

arxiv.org

2021년 발행

 

 

 

0. Title


TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation

-> 의료 이미지 세그먼테이션할 때 효과적인 모델인가보다.. 트랜스포머 구조를 사용하나 보다.. 

 

 

1. Abstract


Medical image segmentation는 헬스케어 시스템을 개발하는 데 중요한 전제 조건이다. 특히, 질병 진단과 치료를 위해.

다양한 Medical image segmentation에서 U-Net이 스탠다드가 되어왔고, 엄청난 성공을 이루었다.

하지만, 컨볼루션의 본질적인 지역성 때문에 긴 영역의 의존을 모델링할 때 U-Net은 일반적으로 한계가 나타났다.

seq-to-seq 예측을 위해 디자인된 트랜스포머가 타고난 글로벌 셀프 어텐션 매커니즘과 함께 대체안으로 나타났다.

하지만, 불충분한 로우레벨의 디테일 때문에 제한적 지역성 능력으로 이어졌다.

 

이 논문에서 우리는 TransUnet이라는 트랜스포머와 U-Net의 장점을 모두 가져온 모델을 제안한다.

medical image segmentation의 강력한 대체안으로서.

 

한편으로는, 트랜스포머가 CNN피쳐맵에서 토큰화된 이미지 패치를 글로벌 컨텍스트를 추출하는 용도로 인코딩한다.

다른 한편으로는, 디코더가 인코딩된 피쳐를 업샘플하여 더 정확한 지역화를 위해 high-resolution CNN 피쳐맵에 합쳐진다.

 

Fig. 1: Overview of the framework. (a) schematic of the Transformer layer; (b) architecture of the proposed TransUNet.

우리는 트랜스포머가 U-Net과 조합함으로써

지역적인 공간적 정보를 회복시킴으로써 디테일을 살려

medical image segmentation에 강력한 인코더가 될 수 있다고 주장한다.

multi-organ segmentation와 cardiac segmentation를 포함한 다양한 의학 응용에서 우수한 성과를 내었다.

 

 

 

2. Conclusion


트랜스포머는 타고난 스스로 집중하는 매커니즘을 가진 알고리즘이다.

이 논문은 의료 세그먼테이션에 트랜스포머를 적용한 첫번째 연구이다.

TransUNet은 이미지 피쳐들을 순서대로 다룸으로써 강력한 글로벌 컨텍스트를 가질 뿐만 아니라,

로우 레벨 CNN피쳐들을 u모양의 하이브리드 아키텍쳐를 통해 이용하여 트랜스포머의 힘을 강화시켰다.

 

FCN 베이스 모델의 대체안으로서 TransUnet은

CNN 베이스의 셀프 어텐션 모델과 같은 다양한 모델들보다도

우수한 성적을 내었다.

 

 

3. Introduction


CNN-based approaches들은 긴 영역의 관계에서의 한계가 있다. 컨볼루션 연산의 지역성 때문에.

따라서, 이러한 아키텍쳐들은 일반적으로 질감과 모양, 크기에서 큰 변화가 있는 타겟 구조에서는 약한 성능이 나온다.

반면에, 트랜스포머는 어텐션 매커니즘에 따라 컨볼루션 연산을 분배하는 방식으로 등장하였다.

이전의 CNN 베이스 모델과는 다르게 트랜스포머는

글로벌 컨텍스트를 모델링하는데 강력할 뿐만 아니라,

큰 스케일의 사전 학습을 기반으로 다운스트림 태스크에서 우수한 양도성을 보여준다.

 

하지만, 트랜스포머 하나로는 만족스러운 결과가 나오지 않았다. 

왜냐하면 트랜스포머가 인풋을 1D sequences로 다루고 모든 단계에서 오직 글로벌 컨텍스트에만 집중하기 때문이다.

따라서, 저해상도의 피쳐들은 지역적 정보를 갖지 못한다.

이를 해결하기 위해, CNN 아키텍쳐(U-Net)이 낮은 레벨의 시각적 신호를 추출하기 위한 수단을 제공한다.

 

종합하여, 우리는 TransUNet라는 seq-to-seq 예측 관점으로부터 셀프 어텐션 매커니즘을 확립하는 모델을 소개한다.

트랜스포머로부터 기반한 피쳐 레졸루션의 손해를 보상하기 위해

하이브리드 CNN-Transformer 아키텍쳐를 고용하였다.

 

 

 

반응형
반응형

 

 

논문 링크입니다.

https://arxiv.org/abs/1706.05587

 

Rethinking Atrous Convolution for Semantic Image Segmentation

In this work, we revisit atrous convolution, a powerful tool to explicitly adjust filter's field-of-view as well as control the resolution of feature responses computed by Deep Convolutional Neural Networks, in the application of semantic image segmentatio

arxiv.org

2017년 발행

 

 

0. Title


Rethinking Atrous Convolution for Semantic Image Segmentation

-> Semantic Image Segmentation을 위한 Atrous Convolution을 다시 뭔가 변형해서 적용하였다는 것 같다...

 

 

1. Abstract


이 논문에서 우리는 atrous convolution를 다시 방문하였다. 

1) atrous 컨볼루션터의 field-of-view를 조정하고 DCNN으로부터 계산된 피쳐 응답의 해상도를 조절하는 강력한 도구이다.

다중 스케일에서의 물체 분할 문제를 다루기 위해서 우리는 atrous 컨볼루션을 쇄적으로 혹은 병행하여 모듈에 적용하였다.

나아가, 우리는 이전에 소개된 Atrouse Spatial Pyramid Pooling 모듈을 증강시켜

2) 글로벌 컨텍스트를 주입한 이미지 레벨의 피쳐와 함께 다중 스케일에서 컨볼루션 피쳐들을 시험한다. 이는 성능을 상승시켰다.

DeepLabV3 시스템은 이전 DeepLab version을 DenseCRF없이 상당히 향상시켰고

PASCAL VOC 2012 semantic image segmentation benchmark에서 SOTA를 달성하였다.

 

 

 

2. Conclusion


우리의 “DeepLabv3” 모델은 dense feature map을 추출하고 더 긴 컨텍스트를 포착하기 위해 upsampled filters와 함께 atrous convolution을 적용하였다.

구체적으로, multi-scale information을 주입하기 위해서 우리의 연쇄적인 모듈이 점진적으로 atrous rate를 두배로 늘렸다.

이미지 레벨의 피쳐들과 함께 증강된 atrous spatial pyramid pooling 모듈다중 샘플링 비율과 효과적인 field-of-view에서의 필터와 함께 피쳐를 조사하는 와중에.

우리의 경험적 결과가 이전 DeepLab version보다 상당히 향상되었고 괄목할만한 성적을 내었다.

 

 

3. Introduction


semantic segmentation를 위해서 우리는 DCNN을 적용할 때 두 가지 문제점을 고려한다.

첫째, 연이은 pooling 연산과 컨볼루션 striding으로 인해 줄어든 피쳐 해상도이다. 이는 DCNN이 더욱 더 추상적인 피쳐 representation을 학습하도록 한다.

하지만, 이 지역 이미지 변환에 대한 불변은 디테일한 공간적 정보가 필요한 깊은 예측 과정을 방해한다.

이 문제를 극복하기 위해 semantic segmentation에 효과적인 atrous convolution의 사용을 지지한다.

 

dilated convolution이라고도 알려진 atrous convolution

ImageNet pretrained model을 더 깊은 피쳐맵을 추출하는데 사용한다. 마지막 몇 개의 레이어에서 다운샘플링 연산을 제거하고, 대응되는 필터 커널을 업샘플링함으로써. 이것은 필터 웨이트 사이에 구멍(trous)를 넣는 것과 같다.

Figure 1. Atrous convolution with kernel size 3 × 3 and different rates.

atrous 컨볼루션으로 추가적인 파라미터 없이 피쳐 응답들이 DCNN과 연산되어 해상도를 조절할 수 있다.

 

둘째, 다중 스케일의 물체의 존재로부터 오는 어려움이다. 

몇가지 방법이 제시되었고, 우리는 주로 네개의 카테고리를 고려하였다

Figure 2. Alternative architectures to capture multi-scale context

1) 각각의 스케일의 피쳐를 추출하기 위해 DCNN이 이미지 피라미드에 적용하였다. 다른 스케일의 물체가 다른 피쳐맵에서 두드러지는.

2) 인코더-디코더 구조로, 인코더 파트로부터 다중 스케일 피쳐를 이용하고 / 디코더 파트로부터 공간적 해상도를 회복시킨다.

3) 추가적인 모듈이 오리지널 네트워크의 위에 계단식으로 연결된다. 더 긴 범위의 정보를 포착하기 위해서.

특히, 픽셀 레벨의 유사성을 위해 DenseCFR가 사용되었다.

4) Spatial Pyramid Pooling이 필터나 풀링 연산과 함께 들어오는 피쳐맵을 조사한다. 다수의 비율의, 다수의 효과적인 field-of-view에 -> 따라서 다수의 스케일에서 물체를 잡아낼 수 있다.

 

 

이 논문을 통해 우리는 atrous 컨볼루션을 다시 연구하였고 다중 스케일 컨텍스트를 통합하기 위한 필터의 field of view 크기를 효과적으로 확대할 수 있었다. cascaded modules와 spatial pyramid pooling 두 곳 모두에서.

특히 우리의 모듈은 다양한 비율의 atrous 컨볼루션과 배치 normalization 레이어로 구성되어 있다.

우리는 ASPP(Atrous Spatial Pyramid Pooling)  방법을 이용하여 모듈을 연쇄적으로, 병행하여 실험하였다.

 

 

4. Methods


여기 섹션에서는 dense 피쳐들을 추출하기 위해 어떻게 atrous 컨볼루션이 적용되는지 설명한다.

그리고, atrous 컨볼루션과 함께 제안된 모듈들에 대해 소개할 것이다. (연쇄적으로 평행하여)

 

1) dense 피쳐 추출을 위한 Atrous 컨볼루션

풀 컨볼루션에서 사용된 DCNN은 semantic segmentation에서 높은 성능을 보여주었다.

하지만, 연이은 레이어에 반복된 맥스풀링과 스트라이드의 조합으로 인해

피쳐맵의 공간적 정보들이 상당히 줄어들었다.

 

Deconvolutional layers (or transposed convolution)가 공간적 정보를 회복시키는 데 많이 사용되어 왔지만,

우리는 atrous 컨볼루션을 이용하였다.

2차원 신호에서 각 i의 y가 결과물로서, w가 필터로 사용된다. atrous 컨볼루션은 인풋 피쳐맵인 x에 거쳐 적용된다.

각각의 레이어에서 atrous rate인 r이 다를 수 있다.

Figure 3. Cascaded modules without and with atrous convolution.

 

 

2) Atrous Spatial Pyramid Pooling

네 개의 다른 rate를 가진 parallel atrous convolutions을 피쳐맵의 위에 적용하였다.

ASPP는 다른 스케일을 가진 피쳐와 임의의 스케일의 영역을 분류하는 데 효과적인 spatial pyramid pooling의 성공에 감명을 받았다.

ASPP는 batch normalization을 추가한 것이 차이점이다.

ASPP는 다중 스케일 정보를 포착하는 데 효과적이다. 하지만, 샘플링 비율이 커질수록 유효한 필터 웨이트의 수가 더 줄어든다는 것을 발견하였다.

이 문제를 해결하고 글로벌 컨텍스트를 모델에 통합하기 위해

우리는 이미지 레벨의 피쳐를 채택하였다. 

구체적으로, 모델의 마지막 피쳐맵에 글로벌 average pooling을 적용하였고, 이미지 레벨의 피쳐에 정보를 주입할 수 있었다.

글로벌 애버리지 풀링 -> 256개의 필터로 이루어진 1x1 컨볼루션, 배치 노말-> 바이리니얼 업샘플링

 

마지막에 우리의 향상된 ASPP는

(a) 한개의 1x1 컨볼루션과 세개의 3x3 컨볼루션 (rates=6,12,18)과

(b) 이미지 레벨의 피쳐들 로 구성하였다.

모든 가지로부터 나온 피쳐들이 concat되고, 1x1 convolution을 통과한다.

 

 

# 더 알아볼 것


- DenseCRF

- global average pooling

 

 

반응형
반응형

 

 

논문 링크입니다.

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의 뜻?

 

 

 

 

반응형
반응형

 

이전 복습


 

 

 

오늘 배울 것


1) 셋업

: activation functions, preprocessing, weight initialization, regularization, gradient checking

2) training dynamics

: baby sitting learning process, parameter updates, hyperparameter optimization

3) evaluation

: model ensembles

 

 

Activation Functions


 

 

* sigmoid

- output을 [0. 1] 내로 귀결시킨다.

[ 문제점 ]

- x가 너무 작거나 너무 크면(saturated) gradient 사라지는 문제발생

- sigmoid output이 zero-centered가 아니다.

- exp() 계산 시간이 소요된다.

 

* tanh(x)

[ 해결된 것 ]

- zero-centered임 

[ 문제점 ]

- x가 너무 작거나 너무 크면(saturated) gradient 사라지는 문제발생

 

* ReLU

[ 해결된 것 ]

- does not saturate

- 계산 효율적

- converge 하기에 더 빠름

- 생물학적으로 더 그럴듯하다.

- > AlexNet에서 사용

 

[ 문제점 ]

- not zero-centered

- 음수에서는 zero-gradient

 

 

dead-ReLU :

because of bad initialization, too high learning rate, 

 

* Leaky ReLU

[ 해결된 것 ]

- does not saturate

- 계산 효율적

- converge 하기에 더 빠름

- 생물학적으로 더 그럴듯하다.

- 음수에서도 gradient가 죽지 않는다.

 

* ELU

- 모든 ReLU의 장점

- exp() 계산 시간이 소요된다.

 

* tip

 

 

Data preprocessing


1) preprocess the data

normalize -> zero-centering, PCA, whitening

 

In practice) subtract the mean image

 

 

 

Weight Initialization


모든뉴런에서 동일한 gradient 가짐

1) small random numbers

-> small network에서는 괜찮지만, deep network에서는 not work well

all activations become zero!

 

 

 

Batch Normalization


input의 각각의 dimension을 가우시안 분포로 만드는 작업

fully-connected layer나 convolution layer 뒤에 붙인다.

nonlinearity 앞에 붙인다.

 

 

 

Babysitting the Learning Processing


1) data preprocessing

2) choose the architecture

tuning learning rate

cross-validation strategy

lr 너무 커서, reg 많이 안들어가서?

 

hyperparameter 조정 : 네트워크, Learning rate, ..

loss curve 보기

 

weight가 너무 큰지 확인

 

 

 

반응형
반응형

 

bit of history


 

 

Hierarchical orgnization

Simple Cells, Complex Cells, Hyper Complex Cells

 

Neorecognition[1980]

sandwich algorithm

 

 

 

 

 

 

Fully Connected Layer


 

 

 

Convolution layer


key : conserve spatial structure

* activation map의 개수 = filter 개수

 

 

ConvNet : sequence of Convolution layer


 

 

 

filter 과정


stride 1
stride 2

if stride 3? doesn't fit! we don't do convolution

output size formula?

ex) (7-3) / 1 + 1 = 5

(7-3)/2 + 1 = 3

 

 

Q. 가장자리가 적게 반영되는 문제는 어떻게 해결? + input size 유지 효과

zero pad를 Border에 넣기 !

N = 9, F = 3, output size = (9-3)/1 + 1 = 7

+ 제로 패딩 안넣으면 깊은 모델일수록 이미지 사이즈가 줄어든다.

+ 제로 패딩 개수 = (F-1)/2 

F는 filter size

 

 

Example Time

(32 + 2*2 - 5) / 1 + 1 = 32

-> 32 * 32 * 10

 

5 * 5 * 3 + 1 = 76 (+1 for bias)

-> 76 * 10 = 760

 

 

filter 수만큼 h 결정

 

 

Pooling Layer


representations를 더 작게 만들어서 관리하기 쉽게 하기 위함

activation map과 별개로 진행

 

 

1) MAX pooling

여기에도 필터존재

풀링 레이어에서는 제로 패딩 잘 쓰지 않음

 

반응형

+ Recent posts