어쩌다 딥러닝 연구원

DeepLab V3 이해를 위한 이정표 본문

개발

DeepLab V3 이해를 위한 이정표

한샹곰 2020. 2. 28. 12:08

입사 후에 보니 회사 내에서 현재 처리해야 하는 프로젝트가 semantic segmentation를 활용해야 한다. 따라서 모델을 왜 쓰고 훈련을 어떻게 하고 inference는 어떻게 해야 할지 등을 알아야 한다.

 

이 글에서는 semantic segmentation 모델의 일종인 DeepLab V3를 왜 쓰는지 알아보기 위한 모든 것을 개인적으로 기록할 것이다.  책임님께서 주신 링크를 토대로 구글링을 해보는 식으로 진행되었다.

 

 

이 글은 top down 방식으로 지식을 탐구할 것을 권장한다. 

직접 알려드리는 것이 아닌, 검색할 키워드를 던져준다고 생각하면 좋다.

실제로도 모르는 것을 찾아 들어가면 그 안에서 또 모르는 것이 나오므로 이러한 방식으로 공부가 진행되었다.

 

DeepLab V3가 뭐지?

(첫번째 갈래)

→Q1-1 Sementic segmentation이 뭐지?

→Q2-1 Downsampling&Upsampling 구조가 뭐지?

Q2-2 Upsampling은 어떻게 하지? 

(https://medium.com/hyunjulie/1%ED%8E%B8-semantic-segmentation-%EC%B2%AB%EA%B1%B8%EC%9D%8C-4180367ec9cb)

 

1편: Semantic Segmentation 첫걸음!

Semantic Segmentation이란? 기본적인 접근 방법은?

medium.com

 

→Q2-3 Transposed Convolution이 뭐지?(https://zzsza.github.io/data/2018/06/25/upsampling-with-transposed-convolution/)

 

Up-sampling with Transposed Convolution 번역

Naoki Shubuya님의 Up-sampling with Transposed Convolution을 허락받고 번역한 글입니다. 번역이 어색한 경우엔 영어 표현을 그대로 사용했으며, 의역이 존재할 수 있습니다. 피드백 언제나 환영합니다!

zzsza.github.io

→Q3-1 Fully Convolution Network가 뭐지?(https://blog.naver.com/laonple/220958109081)

 

[Part Ⅶ. Semantic Segmentation] 3. FCN [1] - 라온피플 머신러닝 아카데미 -

Part I. Machine Learning Part V. Best CNN Architecture Part VII. Semantic ...

blog.naver.com

→Q4-1 1x1conv? Overfeat? 이게 뭐지?(https://blog.naver.com/laonple/220752877630)

 

[Part Ⅴ. Best CNN Architecture] 7. OverFeat - 라온피플 아카데미 -

Part I. Machine Learning Part V. Best CNN Architecture Part VII. Semantic ...

blog.naver.com

Q3-2 Conditional Random Field가 뭐지?(https://blog.naver.com/laonple/221000648527)

 

[Part Ⅶ. Semantic Segmentation] 6. DeepLab [1] - 라온피플 머신러닝 아카데미 -

라온피플 머신러닝 아카데미 [Part Ⅶ. Semantic Segmentation]6. DeepLab [1] Semantic Segmentati...

blog.naver.com

→Q3-3 Dilated(Astrous) Convolution이 뭐지?( https://www.quantumdl.com/entry/%EB%94%A5%EB%9F%AC%EB%8B%9D%EC%9D%84-%EC%9C%84%ED%95%9C-Atrous-Convolution%EA%B3%BC-UNet-%EA%B5%AC%EC%A1%B0-%EA%B0%84%EB%9E%B5%ED%95%9C-%EC%97%AD%EC%82%AC )

 

딥러닝을 위한 Atrous Convolution과 U-Net 구조: 간략한 역사

원문: Atrous Convolutions and U-Net Architectures for Deep Learning: A Brief History https://blog.exxactcorp.com/atrous-convolutions-u-net-architectures-for-deep-learning-a-brief-history/ 딥러닝의..

www.quantumdl.com

 

(두 번째 갈래)

Q5-1 Atrous Spatial Pyramid Pooling이 뭐지?(http://machinelearningkorea.com/2020/02/11/aspp-atrous-spatial-pyramid-pooling/)(또는 3-2의 링크 참조)

 

ASPP (Atrous Spatial Pyramid Pooling) – Go Lab

DeepLab V2에서 소개된 풀링 방법으로, 빈 공간을 둔 필터를 여러개 병렬로 나열해서 연산량을 줄이고 스케일에 강하게 만드는 풀링 방법. Atrous라는 말은 hole이라는 뜻이다. Atrous 컨볼루션은 연산량을 줄이고 최대한 넓은 영역까지 커버하기 위해서 몇가지의 점들만 이용해서 풀링하는 방법이다. 그리고 Spatial Pyramid Pooling은 이를 합치는 과정을 말한다. 공간에 대해 민감하게 반응해야하는점에서 알수 있듯이, 해당 공간을 표

machinelearningkorea.com

→Q5-2 Spatial Pyramid Pooling이 뭐지? (https://blog.naver.com/laonple/220776743537)

 

[Part Ⅴ. Best CNN Architecture] 8. ResNet [4], Fast-RCNN - 라온피플 아카데미 -

Part I. Machine Learning Part V. Best CNN Architecture Part VII. Semantic ...

blog.naver.com

 

(세 번째 갈래)

→Q6-1 인코더에서 변형된 Xception을 사용하는데 Xception이 뭐지?

 

(https://nbviewer.jupyter.org/github/Hyunjulie/KR-Reading-Image-Segmentation-Papers/blob/master/Xception%EC%84%A4%EB%AA%85%EA%B3%BC%20Pytorch%EA%B5%AC%ED%98%84.ipynb)

 

Jupyter Notebook Viewer

이제는 기본 모델이 된 'Xception' 이해하기!¶ Pretrained 된 모델을 사용하거나 Transfer Learning 을 사용하는 모델들에 대해서 읽을 때 Backbone (척추같은 존재 ^0^)가 되는 CNN 모델들이 몇 개 있습니다. VGG family, ResNet family, Inception family, 그리고 Xception. 더 복잡한 작업(e.g. Semantic Segmentation 등)의 기초가 되는 이 네트워크, 특히

nbviewer.jupyter.org

→Q6-1-1 Depthwise Separable Convolution이 뭐지?

(https://zzsza.github.io/data/2018/02/23/introduction-convolution/)

 

딥러닝에서 사용되는 여러 유형의 Convolution 소개

An Introduction to different Types of Convolutions in Deep Learning을 번역한 글입니다. 개인 공부를 위해 번역해봤으며 이상한 부분은 언제든 알려주세요 :)

zzsza.github.io

 

→Q6-2 Inception이 뭐지? 왜 1x1 conv를 쓰지?

(https://blog.naver.com/laonple/220686328027)

 

[Part Ⅴ. Best CNN Architecture] 5. GoogLeNet [1] - 라온피플 머신러닝 아카데미 -

Part I. Machine Learning Part V. Best CNN Architecture Part VII. Semantic Segmen...

blog.naver.com

 

Comments