- 2018년 8월 17일 오후 4:40
- 조회수: 2411
INFORMATION
- 2018년 8월 24일
- 오후 1시 30분 ~
- 고려대학교 신공학관 218호

TOPIC
OVERVIEW
발표자 후기

오늘은 Deep Learning을 이용한 Segmentation 방법에 대해서 소개를 했다. Image Segmentation은 이미지에 있는 물체들을 영역으로 구분하는 방법론이다. 최종적으로는 입력 이미지와 같은 크기의 이미지를 출력하는데 각 픽셀에는 해당 픽셀의 클래스값이 담기게 된다. 기존의 Image Classification과 다른 점은 Image Classification의 경우 최종적으로 전체 이미지에서 하나의 Class를 찾고 예측을 하는 방법인 반면에 Segmentation은 Activation Map을 출력하고 여기서 각 픽셀의 Class를 할당하게 된다. 이 Segmentation 기법을 기존의 CNN 구조를 이용해서 구현하는 데 있어서 어려운 점은 기존의 CNN 구조가 위치에 Invariant한 특성을 가지고 있기 때문에 실제 Segmentation을 할 때 위치 정보가 중요한 데 이 정보를 전달받지 못하는 한계점을 갖는다. 이러한 문제점을 해결하고 Deep Learning을 이용해서 처음으로 Segmentation을 한 방법이 FCN이다. 이후 다양한 Deep Learning 기반의 방법론들이 제안되어 왔다. 최근에는 Deeplab V3+까지 제안되면서 굉장히 좋은 성능을 보이고 있다. 이미지를 인식하고 그 안에 있는 중요한 정보들을 찾아내는 것이 상당히 흥미롭게 생각되었고, 즐겁게 공부를 했던 거 같다. 현재 프로젝트를 진행하면서 좀 더 깊이 있는 이해와 기회가 된다면 기존 모델을 보완할 수 있는 새로운 방법도 연구해보고 싶은 생각이 들었다.
청취자 후기

금일 세미나는 image segmentation with deep learning 주제로 진행 되었다. 어떤 image 인지 단순히 분류하는 수준을 넘어서 image 안에 어떤 개체가 있고 그 개체가 어느 위치에 있는지에 대한 분류를 하는 방법론으로 pixel wise segmentation 을 제안한 Fully convolutional network 부터 좀 더 개선된 성능을 보이는 segnet 과 deeplab v3+ 에 대하여 설명하는 방식으로 진행 되었다. FCN 에서 pixel wise segmentation 을 위하여 제안된 transpose convolution 의 개념을 예를 들어 잘 설명해 주어 이해하기에 좋았고 이 부분을 학습 없이 반영할 수 있도록 poolind indices 를 반영하여 segmentation 해주는 segnet 에 대한 설명 또한 아주 쉽게 잘 설명해 주었다. Deeplap v3+ 는 금일 세미나에서 처음 본 내용이었는데 atrous convolution 에 대한 내용이 인상 깊었다. 각각의 방법론에 대한 핵심적인 포인트를 잘 설명해 주어 관련 논문을 다시 보면 내용응 이해하는데 더 수월할 것 같다. 또한 현재 진행하고 있는 프로젝트에서 각각의 모델로 평가한 결과를 예로 보여 주어 image segmentation 에 대한 전반적인 개념 및 활용 영역에 대한 가능성을 잘 확인 할 수 있었다.

오늘 영훈이 형이 ‘Image Segmentation with Deep Learning From Fully Convolutional Network to Deeplab v3+’이라는 주제를 가지고 세미나 발표를 하였다. Image Segmentation은 여러 분야에 다양하게 사용되고 있다. 요즘 Hot하게 떠오르고 있는 자율주행차에서도 Image Segmentation은 중요하다. 예를 들어, 자기 도로와 자기 도로가 아닌 것, 신호등, 자동차, 사람, 방지턱 등을 구분하여 멈춰야 할 때 멈추고 속도를 줄여야 할 때 속도를 줄여하기 때문이다. 또, 의료계에서도 MRI를 찍었을 때 의사는 수 만장을 보고 종양이 있는지 없는지 판단해야 하는데, 이때 Image Segmentation이 잘 작동하게 된다면 보다 효과적이고 정확하게 종양 판정을 할 수 있을 것이다. 이렇게 매우 중요한 부분에서 필요로 하기 때문에 현재도 활발하게 연구가 이루어지고 있다. 오늘은 특히, ‘SegNet’과 ‘Deeplab v3+’에 대해 자세한 설명을 들었다.
- SegNet
SegNet을 처음 접했을 때 기존에 알고있었던 Convolutional Auto-Encoder와 같은 구조라는 생각이 들었다. 단지 Convolutional Auto-Encoder는 Bottle Neck이 존재하여 그 Bottle Neck Layer를 가져와 사용한다면 SegNet은 Decoder 부분의 마지막을 softmax로 pixelwise prediction을 하는 것이 차이가 있다. SegNet은 Encoder 부분과 Decoder 부분이 Symmetric하다. 이유는 위치 정보를 최대한 반영하기 위해서다. Encoder 부분에서 Maxpooling을 하였으면 그 Pooling된 Location을 메모리에 기억하여 Decoder부분에서 Upsampling을 진행한다. 이렇게 SegNet은 Decoder 부분을 어떻게 잘 조정하여 Image Segmentation 성능을 향상시켰다.
- Deeplab
Deeplab에서는 Decoder부분 보다는 Encoder부분을 강화하는 방법이다. Deeplab은 3가지 중요한 개념을 가지고 알고리즘을 만들었다. 1. Atrous convolution 2. Atrous Spatial Pyramid Pooling(ASPP) 3. Fully connected Conditional Random Field(CRF) – Post Preocessing 이렇게 3가지이다. Atrous convolution은 매우 흥미로웠다. Image Segmentation에서는 국소적인 부분보다 조금 더 큰 부분을 봐야하는 경우가 대부분이다. 예를 들어, 3x3 convolution filter는 3x3의 국소적인 부분 밖에 볼 수가 없다. 그렇다고 해서 10x10 convolution filter를 늘리게 되면 계산 량이 어마어마하게 늘어나기 때문에 무작정 filter size를 늘리는 것은 옳지 않다. 따라서, convolution filter를 사용할 때 구멍을 뚫어 주는 것이다. 이렇게 함으로써 convolution filter size는 똑같지만 조금 더 큰 부분을 보게 되는 것이다. 이렇게 할 때 개인적인 생각으로는 stride를 사용하지 않는 것이 현명해 보인다. 왜냐하면 학습이 되지 않는 pixel이 존재 할 수 있기 때문이다. 두번째로 Atrous Spatial Pyramid Pooling이다. 이것도 Atrous convolution의 연장이다. Atrous convolution의 size도 정해야 할 문제며 특정 size가 좋다고 할 수 없다. 따라서, size를 여러 개로 하고 마지막에 merge를 해주는 부분이다. GoogleNet에서 사용하는 개념과 같은 개념이다. 따라서, 여러 개의 size로 filter를 진행해 볼 수 있는 것이다. 마지막으로 Fully Connected Conditional Random Field(CRF)는 우리가 흔히 알고있는 fused lasso와 비슷한 개념이다. Fused lasso 같은 경우 어떤 Feature가 중요하다고 뽑혔으면 주변의 Feature도 뽑힐 수 있도록 유도해주는 것인데, 이것 또한 그러한 개념이다. 주변의 Pixel이 같은 클래스를 갖고 자기 자신만 다른 클래스를 갖는다면 주변에 따라갈 수 있도록 하는 Post Processing이다. 이렇게 하는 이유는 어떤한 한개의 Pixel이 클래스를 독단적으로 갖기에는 무리가 있기 때문이다. 하지만 CRF는 조금 위험성이 존재해 보인다. 이렇게 중요한 3가지 개념을 가지고 조금 더 발전된 것이 Deeplab v3+이다 이것은 Decoder 부분에서 Encoder 부분의 Feature Map를 가져와 예측을 한다. 이 이유는 Pixel에 대한 지역적인 정보를 반영하여 조금 더 좋은 성능을 내기 위함이다. 또한, Depthwise Separable Convolution을 사용하여 성능 향상뿐만 아니라 계산량을 매우 단축시키는 역할을 하게 된다. 오늘 세미나는 영훈이 형이 준비를 많이 하셨다는 느낌을 받았다. 처음 듣는 사람도 잘 이해 할수 있도록 발표를 해준 영훈이형에게 감사의 말을 전하고 싶다.

금일 세미나는 Image Segmentation에 관련한 내용이었다. 과거에는 Image Segmentation 진행 시, 사진 전체를 한번에 보기 보다는 일부를 관찰 한 후 이를 합쳐서 전체 이미지를 생성하는 방식이었다. 하지만 딥러닝의 발전과 함께 2015년 Fully Convolutional Neural Network라는 논문이 나오면서 사진 전체를 한번에 인식하여 Image Segmentation을 하는 방법으로 바뀌었다. 이 방법은 기존의 CNN의 일부를 사용하여 Down-Sampling을 진행하여 특징을 추출하고, 이를 pixel에 대해 labeling을 해서 segmentation을 완성한다. Segmentation을 검증하는 지표로 Pixel Accuracy(PA), Mean Pixel Accuracy(MPA), Mean Intersection over Union(MIoU), Frequency Weightd Intersection over Union(FWIoU)가 있다. 이들 지표로 FCN을 본 결과, 과거의 방법들보다 높은 Accuracy를 보임을 알 수 있었다.그 이후 많은 방법론들이 등장했는데, SegNet, Deep Lab들이 예시이다. Segnet은 오토인코더와 유사한 방법으로 CNN의 일부를 사용하여 특징을 추출하고 다시 Decoder를 통해 Segmentaion이 진행 된 이미지를 생성하는 방법이었다. 이 방법은 Pixel마다 Loss값을 계산해서 진행하였다. Deeplab방법은 CNN을 진행할 때, 일종의 구멍을 만들어서 이미지를 인식하는 방법이었다. 해당 방법을 이용하면 Receptive region의 확대가 가능하였고, Fully Connected Conditional Random Field(CRF)를 이용하여 Segmentation부분의 경계를 보정하는 역할을 진행하였다. 하지만 Deep Lab의 개발자들은 여기서 멈추지 않고, 구멍의 크기를 다양하게 설정하여 이미지의 인식을 높였다. CNN의 마지막에 1X1레이어를 사용하여 구멍의 크기가 다른 결과물들을 하나로 합쳐 Image segmentation을 완성시켰다.필자는 오늘의 발표가 매우 흥미로웠다. 특정 기업과 연계하여 진행하는 프로젝트에서 Image에 Labeling을 하는것에 동참하였기 때문이다. 발표의 마지막에 Training data의 일부를 모델에 학습을 시켜 나온 결과들을 보여주었기 때문이다. CNN이 Image와 관련한 모델에서는 최고의 성능을 보이는 것에 대해서는 이론적으로 알고 있었지만, 이를 이용하여 현실의 문제를 푸는 것은 처음 경험해 보았기 때문이다. 또한 CRF에서 경계를 명확히 하는 부분에서 최적화의 개념이 필요했는데, 이를 수식으로 명확하게 설명해주어 빠른 이해가 가능하였다. 아직은 이미지와 관련한 어떤 문제들이 있는지 모르지만, 발표자가 소개해준 기법들과 발표자료에만 쓰여져 있던것을 연구한다면 필자도 언젠가는 이러한 문제들을 풀 수 있을거 같다. 발표를 해준 영훈이형에게 감사를 표한다.

오늘 전체세미나는 'Image Segmenmtation with Deep Learning'이라는 주제로 영훈이형이 진행하였다. 먼저 segmentation은 image데이터가 주어졌을 때 pixcel단위로 classification을 수행하는 개념이다. 따라서 image의 label은 pixcel단위로 부여돼있어야 하며 image 단위의 classification 문제에서는 그 image가 클래스에 속할 확률을 도출하는 반면 segmentation에서는 클래스 개수만큼 map을 도출한다. segmentation 기법은 여러가지가 있으며 오늘 세미나에서는 대표적으로 딥러닝을 기반으로 한 알고리즘을 소개해주었다. 첫번째로 Fully Convolutional Neural Network(FCN)은 Convolution구조를 활용하여 차원을 줄여 좋은 특성을 추출하고, 원래 이미지 크기만큼 map을 출하기 위해 확대하는 과정으로 Transpose Convolution을 사용한 것이 핵심이다. Transpose Convolution는 작은 사이즈의 feature map을 원래 이미지 크기 만큼 추출하는 convolution을 의미한다. pixel단위로 예측하는 것인 만큼 평가 척도 또한 pixel단위로 정확도를 계산한다. 두번째로 Convolutional Autoencoder구조를 활용한 SegNet을 소개해 주었다. SegNet은 원본 이미지를 적용하고 output이미지를 픽셀단위로 레이블링 된 이미지를 사용하여 학습하는 방법이다. 학습하는 사이에 Maxpooling과 unpooling에서 가져온 element의 위치를 공유하는 방식으로 원본 이미지의 pixel과 레이블링 된 pixel을 잘 예측하고자 고안한 것이 segNet이다. 세번째로 atrous convolution개념과 Fully Connected Conditional random field(CRF)을 적용한 Deeplab 기법을 소개해주었다. 먼저 atrous convolution은 Dilated Convolution이라고도 말한다. 즉 확장된 Convolution으로 dilated rate을 설정하여 동일한 계산비용으로 넓은 시야를 갖고자하는 것이 목적이다. 예를 들어 3x3의 filter에 dilated rate이 2면 5x5형태 filter size를 만들고 두번째 네번째 행과열을 제외하고 학습하는 것이다. Fully Connected CRF는 segmentation 이후 noise를 무시(?)하여 강건한 성능을 내기위해 후처리에 사용된다. 즉, pixel단위로 주변에 예측된 클래스를 고려하여 다른 클래스들이 많다면 그 클래스를 따라가는 것으로 깔끔하게 예측하고자 하는 것이다. 하지만 분석 목적이 디테일을 요구한다면 좋은 성능을 내는 기법이라고 말할 수는 없다. 이 세가지 알고리즘 설명과 함께 최근 자율주행 자동차에 적용하는 도로 이미지에서 맨홀, 자동차, 과속방지턱 등을 예측하는 사례를 보여주었고 흥미로웠다. 실제 사용되기 위해 픽셀단위로 레이블링 해야하는 상당한 작업량이 예상되며 수집해야하는 도로 이미지도 많은 점을 생각하면 높은 성능을 내기 위해서는 꾸준한 데이터 수집이 필요하다고 생각하였다. 하지만 어느정도 확보된 데이터로 성능을 평가했을 때, 가능성을 보이는 결과를 얻었고, 충분한 학습시간과 알고리즘 튜닝을 했을 때 어떤 결과를 보일지 기대된다.

금일 세미나는 image segmentation with deep learning이라는 주제로 진행되었으며, fully convolutional network, segnet, deeplab 모델에 대한 간략한 설명과 모델의 output에 대한 내용으로 진행되었다. Image segmentation은 다양한 분야에서 실용적으로 사용될 수 있으며, neural network가 지금처럼 성능이 좋아지기 전에도 많은 연구가 진행되던 분야였다. 최근 neural network의 발전과 함께 가장 활발하게 연구되는 분야 중 하나이다. 연구실에서는 그동안 크게 관심갖지 않는 주제였는데, 이번 기회를 통해 image segmentation에 대해 간략하게나마 정보를 얻을 수 있는 기회가 되었다. tied maxpooling, atrous convolution 등의 개념들이 도입된 것도 image segmentation을 잘 수행하기 위해서였다는 것이 흥미로웠다.

금일 세미나는 image segmentation에 대한 전반적인 이해를 도모했다. segementation task의 목표는 이미지를 단순 분류하는데 그치지 않고, 이미지 내에 어떠한 물체가 있는지 인지하기 위함이다. 대부분의 연구가 classification 문제로 다루어지는데, 사람이 정의한 물체의 특징을 잘 학습하여 테스트 이미지에서 pixel 기준으로 분류해준다. 이러한 기술은 그림, 사진과 같은 이미지 뿐 아니라 영상에도 두루 적용되고 있는데, 특히 자율주행차(self-driving car)에 적용하는 lenet5, enet 등에 활발히 적용되고 있다. 대표적인 알고리즘 연구로 'segnet' 이라는 architecture를 들 수 있다. segnet은 autoencoder 구조를 기본 골격으로 하되 symmetric layers를 갖고, pixelwise classification을 하기 위해 upsampling 시 pooling시의 filter를 활용한 것이 주요한 특징이다. 이 알고리즘의 장점은 물체가 이미지내 위치한 곳(location)을 명확하게 탐색하는게 핵심인데, 이후의 알고리즘 모두 location을 명확히 탐색하는데 초점을 두고 있다. 영훈이는 이후 deeplab v3+에 이르는 설명을 해주었는데 핵심을 전반적으로 잘 정리해주었다. 많은 친구들이 segmentation 분야에 입문할 수 있는 계기가 되었다고 본다. 또 이러한 기술을 접목해볼 수 있는 적용 가능한 다양한 applications을 고민하고 함께 논의했으면 좋겠다. 좋은 발표해준 영훈이에게 감사의 인사를 전하며, 앞으로도 좋은 연구성과를 낼 수 있기를 바란다.

오늘 세미나는 deep learning을 활용한 image segmentation을 주제로 진행되었다. 예전에 Capsule Network에 대한 세미나를 준비하면서 느꼈던 것과 동일하게 느낀 점은 시야각을 넓히는 용도로 사용되는 Pooling layer가 spatial 정보를 소실하게 하면서 만드는 여러가지 문제들이 있다는 것이다. 따라서 이를 해결하기 위해 computer vision쪽 연구들이 아이디어 발전이 많이 이루어지는 것 같다. 또한 성능을 유지하면서 계산 효율을 높이기위해 네트워크 구조를 변형시키는 것도 또한 큰 줄기 중 하나 인 것 같다. deep learning이 최근 뛰어난 성능을 보이면서 발전하고 있지만 여전히 해결되지 못하는 문제가 있다고 생각한다. labeling에 대한 문제이다. 현재 연구실에서 진행되고 있는 도로의 과속방지턱, 구덩이, 장애물 등을 segmentation하는 프로젝트도 옆에서 지켜보면 데이터 수집은 좋은 장비만 있다면 확보하는 것은 큰 문제가 없어보였다. 하지만 이를 labeling을 하는 것에 굉장한 노력과 시간이 소요된다고 느꼈다. 또한 이것이 정확할 뿐만 아니라 일관성이 있어야만 모델의 고성능에 귀결된다. 또한 학습데이터의 수도 크게 항상 나타나는 문제라고 느껴졌다. 이런 근본적인 문제를 해결할 수 있는 연구가 이루어져야 지금보다 한단계의 또다른 발전이 이루어지지 않을까 생각이 들었다.

금일 세미나는 image segmentation with deep learning이라는 주제로 진행되었다. Image Classification을 넘어서서 Image 안의 객체들까지 classification을 하는 방법론이다. 이는 픽셀 단위로 이미지를 기계에 category label 에 따라 학습 시키는 것이 메인이다. 이번에 발표자가 소개해 준 모델 구조는 전체 이미지가 인풋, 전체 이미지가 아웃풋으로 나오게 하며, 이 안에서 색깔 별로 각 물체를 인식할 수 있게끔 한다. Image Classification에서 주로 사용하는 CNN(Convolutional Neural Network)를 사용하되 픽셀 별로 예측하는 디코더 부분에서 feature map의 위치를 보존 시키며 학습을 진행하거나 convolutional filter에 구멍을 내서 전체 데이터의 패턴을 보다 더 잘 인지하게끔 학습을 진행하는 방법론이다. 결과적으로 생각보다 예측 결과가 잘 나왔다라는 것을 느꼈고, 앞으로 보다 더 많은 이미지 데이터와 학습 시간으로 정교한 segment 예측이 용이하지 않을까 싶다. 이미지 혹은 영상 처리가 최근 빅데이터 분야의 화두인 만큼 본 연구 내용이 갈수록 더 중요해질 것 같다는 생각이 든다.

오늘 세미나에서는 Deep learning 방법론을 사용한 Image segmentation 방법론과 적용 사례를 소개하였다. Deep learning 방법론을 사용하여 image 데이터를 분류하는 것에 더하여 image에 있는 물체를 구분하는 것을 image segmentation이라 한다. 하나의 image 내에 있는 물체들을 구분하기 위해서는 category label이 붙은 pixel 단위로 학습을 시켜야 한다. 해당 분야는 현재 computer vision 분야에서 활발하게 연구되고 있으며 자율주행 자동차, 의료 영상 분석, 인공위성, 홈 IoT 등 다양한 분야에 적용이 가능하여 그 활용도가 높다.
Deep learning 방법론을 적용하기 이전의 segmentation 방법론들은 window(patch) 단위로 슬라이딩하여 전체 이미지를 훑으면서 window의 중앙에 위치한 픽셀을 판별하는 방식이었기 때문에 computation cost가 높고 비효율적이었다. 이와 같은 한계점을 극복하기 위하여 deep learning 방법론을 적용한 새로운 방법론에서는 전체 이미지가 input으로 들어가고 또한 전체 이미지가 output으로 나올 수 있는 구조를 제안하였다. 세미나에서는 크게 Fully convolutional network(FCN), Segnet, Deeplab 세 가지 방법론에 대해 간략하게 소개하였다. FCN은 classification을 위한 neural network에서 위치 정보를 보존하기 위하여 중간 단계의 feature map 정보를 사용한다. Segnet은 autoencoder와 같이 encoding 부분과 decoding 부분을 가지고 있는 것이 특징이다. 특히 decoding 부분에서 unpooling을 할 때 max 값을 가지고 있었던 index를 기억해서 그 위치에 값을 복원해주기 때문에 computation cost는 낮으면서 위치 정보는 보존해준다는 장점이 있다. Deeplab은 convolutional filter에 구멍을 뚫어 sparse하게 만들어서 사용하는 특징이 있다. 이렇게 함으로써 computation cost는 낮으면서 global pattern을 더 잘 탐지할 수 있다. 개인적으로는 dropout과 비슷한 컨셉이라고 생각했다. Deeplab은 최초로 고안한 연구자에 의하여 계속 업데이트 버전을 발표하고 있다고 한다.마지막으로 도로에 있는 장애물을 탐지하는 문제에 segmentation을 적용한 결과를 보여주었다. Test 결과가 아주 뛰어나진 않았지만, 충분한 training data와 시간이 주어진다면 결과가 훨씬 향상될 것으로 기대한다. 이번 세미나를 통해 Image segmentation이 대두된 계기와 발전 방향에 대하여 자세하게 알 수 있어서 유익한 시간이었다.

오늘 세미나에서는 Deep Learning 기반의 Image Segmentation 논문들을 전반적으로 다루었다. 단순한 이미지의 단일 분류를 넘어서, 이미지 내에 존재하는 다수 물체(object)들을 탐지하고 분류하는 것을 목표로 한다. 이 분야가 급격한 발전을 이룰 수 있게 해준 도화선은 Fully Convolutional Encoder Decoder 구조인 것 같다. 병목 부분을 convolution layer로 유지함으로써, decoding 단계에서 feature들의 위치 정보를 보존할 수 있게 되었다. U-Net을 필두로 SegNet, DeepLab 등 다양한 방식으로 연구되고 있으며, 핵심이 되는 atrous convolution과 depthwise separable convolution 등의 연산은 다른 분야에도 크게 활용될 수 있는 것 같다. 현재 영훈이 형과 함께 프로젝트를 진행하고 있는데, 활발히 연구되고 있고, 활용도가 높기 때문에 이 쪽 연구를 예의주시하고 공부해볼 가치는 충분한 것 같다. 다음에 기회가 된다면 Object Detection 계열의 Mask-RCNN, Mask-X-RCNN을 소개해보도록 하겠다.

사람은 눈으로 보고 과거의 축적된 경험으로 부터 이미지를 추출하거나 분할하여 생각한다. 만일 컴퓨터로 사람의 "눈"과 일을 하는 모델을 만들 수 만 있다면 정교한 자율주행 자동차를 만들수도 있고 MRI/CT 또는 내시경 촬영으로 얻은 이미지 내에서 질환이 있는 부분을 자동적으로 탐지하는 것도 가능하게 될 것이다. image segmentation은 사람으로 치면 이러한 "눈"에 해당한다. 오늘 세미나에서는 이러한 image segmentaion에 관련한 과거의 방법부터 해서 최신의 방법까지 전체적인 흐름에 대해 확인할 수 있었다. 개인적으로는 image segmentation이 발전하면서 semi-supervised learning분야로 더 많이 발전하지 않았을까 하는 생각을 하였으나, 실제로는 좀더 정확하게 image segmentation에 촛점을 맞춰 연구가 진행된것으로 보인다. 물론 사물의 모습을 디테일하게 segmentation 하는 것도 매우 중요한 부분이라 생각한다. 쫌더 관련한 참고문헌을 찾아봐야겠지만 adaptive하게 모델 자체가 학습을 진행하는 부분이 추가된다면 좀더 유연한 모델이 되지 않을까? 라는 생각이 들었다.

금일 세미나는 image segmentation 에 관한 내용이었다.segmentation은 pixel에 대한 labeling을 하고, training data 를 통해 각 class에 대한 예측을 하는 방법이다.딥러닝의 발전으로 예측의 결과가 더욱 좋아지게 되었고 그 방법론에는 FCN, Segnet, Deeplab 등이 있다.FCN을 이용한 경우에는 output map 을 기존 이미지의 크기로 확대하여 (transpose convolution) 예측 결과를 더 좋게 만드는 방법이다.이를 위한 measures에는 다양한 measures가 존재하는데, 각각의 measure에 대한 자세한 설명을 통해 이해가 빠르게 되었고, 현재에는 MPA와 MIou의 measure을 많이 사용함을 알 수 있었다. MPA는 PA(전체 픽셀의 개수에서 정확히 예측된 픽셀의 개수)의 평균이고, MIoU는 실제값과 예측값의 intersection 의 평균으로 좀 더 정밀함을 알 수 있었다. 이러한 FCN을 사용한 경우는 기존의 결과보다 더 좋은 결과를 보임을 알 수 있었고, 이를 통하여 decoder 부분을 집중적으로 하는 segnet에 대한 부분도 알 수 있었다.segnet은 encoder부분과 decoder부분을 symetric하게 하여 input 과 output의 크기를 같게 하고 예측의 결과를 더 높여주는 방법이다.encoder부분에서 max pooling을 통해 output feature map이 나오고, decoder 부분에서 같은 크기의 input 을 resolution 하여 예측을 하는 것이다.segnet을 사용하여 예측을 한 결과 또한 기존의 방법보다 좋은 성능을 보임을 알 수 있었다.또 다른 방법으로는 Deeplab 에서의 atrous convolution, ASPP, CRF 의 후처리 작업을 배우게 되었고,인상 깊었던 부분은 atrous convolution의 방법이었다. 이 방법은 기존의 convolution에서 3 by 3으로 feature map을 upsampling 할 때에 필요한 많은 계산량을 줄일 수 있음을 알 수 있었다.atrous convolution은 filter를 확장시키고 일종의 구멍을 뚫어 더 큰 matrix로 적은 계산량을 통해 upsampling하는 방법이고 구멍이 생겨 예측의 결과가 좋지 않다고 생각할 수 있지만,stride를 1로 주게 되면 결국에는 모든 부분을 upsampling하여 좋은 예측결과를 얻을 수 있음을 알 수 있었다.좀 더 upgrade 된 방법은 xception net을 사용하는 deeplab v3+인데, 이 방법은 input image를 convolution 하는 도중에 사이에 있는 layer를 사용하여 예측을 하는 방법이다.이 또한 upsampling 할 때 계산의 양이 줄어들면서 높은 예측 결과를 보임을 알 수 있었다.마지막으로 depthwise separable convolution은 input 과 output이 기존 convolution을 했을 때와 같지만, 과정이 다르고 그에 따라 weight 의 개수가 줄어 든다.개수가 줄어듬에 따라 계산량이 줄어들며 예측의 결과도 좋음을 알 수 있었다.금일 세미나를 집중있게, 흥미를 가지고 들을 수 있었던 이유는, 현재 영훈이형과 다른 연구원분들이 참여하고 있는 프로젝트에서 image에 labeling하는 작업에 참여했기 때문이었다.ppt의 마지막 부분에서, training data의 일부를 가지고 모델을 학습시켜 예측한 결과를 보여주었을 때, 뿌듯함과 동시에 오늘 소개해준 방법과계속 update되는 방법을 통해 훗날 segmentation에 대한 연구를 해보고 싶다는 생각이 들었다.전체적으로 CNN이 image와 관련한 분야에서 좋은 성능을 보이는 것을 이론적으로만 접하게 되었는데, 금일 세미나를 통해 다양한 산업분야에서도 많은 도움이 되는 것을 알게 되어좋은 경험이 되는 것 같았

딥러닝, 특히 CNN의 발전으로 사람들에게 일찍이 많이 알려진 Image Classification보다 한 단계 더 나아간 작업이라고 할 수 있는 Image Segmentation에 관해 정리하는 세미나를 들었다. Image Segmentation은 이미지를 인식하는 하나의 방법으로 이미지에 대해 1개의 레이블을 부여하는 것이 아니라, 픽셀별로 레이블을 부여하는 작업이다. 픽셀별로 레이블을 예측함으로써 이미지에서 물체들이 위치해 있는 좌표까지 알 수 있다는 것이 가장 큰 차이점이다. 이미지 분류에서 주로 사용되는 Convolution 연산이 Segmentation에서도 메인으로 사용되지만, 모델의 뒷부분에서 픽셀별로 예측을 수행할 때, 이미지의 사이즈를 축소하게 되는 Convolution 연산은 어쩔 수 없이 방해가 된다. 이를 해결하기 위해 다양한 방법이 시도되었는데 기본적으로는 Convolution을 통해 축소된 feature map을 다시 원래대로 복원하는 테크닉에 관한 연구들이 주로 이루어졌다. 딥러닝과 컴퓨터 사양의 발전에 따라 매우 다양한 기법들이 시도되었으며 Segnet, Deeplab 등 뛰어난 성능을 보이는 방법론들이 개발되었다. 현재 연구실에서도 Image Segmentation과 관련된 과제가 진행되고 있는데, 참여하지 않는 연구원들도 과제 주제와 해결해야 하는 문제점, 접근방법을 짧은 시간 내에 이해하기 쉽도록 정리를 해주었다고 생각한다.