-
[논문 읽기] (2015) Fully Convolutional Networks for Semantic Segmentation논문 읽기 2022. 3. 10. 12:04
요약
Convolutional networks(CN)는 강력한 visual model이다, 특징들의 층계를 만들어내는 / 우리는 보인다, end-to-end, pixels-to-pixels로 학습하는 CN이 semantic segmentation에서 최고의 성과를 낸 것을 / 우리의 핵심 insight는 fully convolutional networks를 만든 것에 있다, 임의의 사이즈를 지닌 입력값으로 사이즈가 일치하는 출력값을 생산하는, 효과적인 추론과 학습을 바탕으로 / 우리는 fully convolutional networks를 확정하고 구체화한다, spatially dense prediction(*) 과제에 이 네트워크를 적용하는 방법을 설명하고, 이전 모델들과의 연결을 그린다 / 우리는 최근 분류 네트워크(AlexNet,VGG,GoogLeNet)를 fully convolutional networks에 적용해보고, fine-tuning(*)을 통해 그들의 학습된 표현을 segmentation 과제에 사용해보았다 / 다음으로 우리는 skip architecture(*)를 정의한다, 결합하는, deep coarse(*) 레이어로부터 semantic 정보를, shallow fine(*) 레이어로부터 appearance 정보를, 정확하고 디테일한 segmentation을 하기 위해서 / 우리의 fully CN은 PASCAL VOC, NYUDv2, SIFT Flow에서 최고의 성과를 달성했다, 기존 이미지를 분할하는데 드는 시간에서 5분의 1보다도 적은 시간을 사용하면서 /
* spatially dense prediction
- Semantic Image Segmentation의 목적은 사진에 있는 모든 픽셀을 해당하는 (미리 지정된 개수의) class로 분류하는 것입니다. 이미지에 있는 모든 픽셀에 대한 예측을 하는 것이기 때문에 dense prediction 이라고도 불립니다.
* fine-tuning
- 기존의 신경망을 이용하는 재학습 과정을 의미
- 기존에 학습된 모델을 기반으로 새로운 목적에 맞게 변형하여, 학습된 모델의 가중치를 미세하게 조정하여 재학습 하는 방법을 말합니다. Fine Tuning에는 크게 3가지 방법이 있습니다. 세가지 방법에는 1) 모델 전체를 새로 학습 2) 일부만 재학습 3) 분류기만 재학습
- 출처 : https://blog.naver.com/jgyy4775/222658745048
(+) transfer learning
- 전이학습 : 한 분야에서 학습된 신경망의 일부 능력을 유사하거나 새로운 분야에서 사용되는 신경망의 학습에 이용하는 방법
- 데이터의 수가 적을 때 효과적입니다. 또한, 전이 학습 없이 밑바닥부터 새로 학습할 때 보다 훨씬 더 높은 정확도와 빠른 학습 속도를 얻을 수 있습니다.
- Transfer Learning에서 사용되는 학습된 신경망을 pretrained model 이라고 합니다. 대표적으로는 ImageNet, ResNet, GoogleNet, VGG 등이 있습니다.
- 대규모 데이터에서 잘 학습된 모델을 가지고 와서 사용자가 적용하려는 문제에 맞게 weight를 조금씩 변화하여 사용하면 됩니다. 따라서 첫 학습부터 어느 정도 합당한 weight를 이용할 수 있게 됩니다.
- 출처 : https://blog.naver.com/jgyy4775/222658745048
* skip architecture
- skip connection(=residual architecture)를 이용하면 layer가 깊어져도 안정적으로 gradient를 업데이트 할 수 있다
- VGG의 layer가 깊어감에 따라 깊이에 따라 성능 향상이 일어나지 않는 점에 대한 문제를 해결하기 위해 skip connection이 도입됐고 Resnet(Residual Neural Net)이 탄생했다.
- 출처 : https://blog.naver.com/vail131/222562311901
* deep coarse, shallow fine
- Fine-grained classification 은 Coarse-grained classification 보다 상대적으로 비슷한 특징을 가진 classs 들을 분류하는 것이라고 이해할 수 있습니다.
- Fine-grained classification 은 Coarse-grained classification 보다 더 세밀하게 classification 을 한다고 이해할 수 있습니다.
- 출처 : https://light-tree.tistory.com/215
1. 소개
CN은 인식에 있어서 상당한 성과를 보여주었다. CN은 이미지 분류에서의 성과 뿐만 아니라 structured output(*)에 있어 local task(*)에서도 상당한 진전을 보였다. 또한, CN은 bounding box object detection, part and key-point prediction(*), local correspondence(*)에서 성과를 보여주었다.
* key-point prediction
- Pose Estimation에서 Keypoints들을 예측하는 데에 자주 쓰이는 알고리즘
- Pose Estimation에서의 Keypoints들은 머리, 목, 어깨, 팔꿈치, 손목, 무릎, 등이 있습니다.
- 출처 : https://nuggy875.tistory.com/34
coarse to fine 추론에 있어 다음 과제는 모든 픽셀 단위에서의 prediction에 있다. 이전의 연구들은 semantic segmentation을 위해 convnet(CN)을 사용해왔다, 각 픽셀은 특정 객체나 지역의 클래스로 레이블된, 이 작업이...?
FCN은 픽셀단위의 semantic segmentation을 효율적으로 학습한다.
우리는 보인다 / semantic segmentation에 있어 end-to-end, pixels-to-pixels 학습된 FCN이 최고의 성과를 보인 것을 / 우리가 알기로는, 이게 첫 작업이다, FCN을 (1) 픽셀단위 예측과 (2) 지도학습에 있어 end-to-end로 학습한 / 지금 존재하는 네트워크의 FCN은 임의의 사이즈 입력값으로부터 dense 출력값을 예측한다. 학습과 예측 모두 전체 이미지에서 같은 시간동안 수행된다, dense 순전파 계산과 역전파에 의해 / In-network upsampling layers(*)는 픽셀단위 예측을 가능케 하고, subsampled pooling(*)과 함께 네트워크에서 학습한다.
* upsampling layers
- Convolution layer와 다양한 Pooling 등으로 Feature의 크기를 줄여왔는데, 반대로 키우는 방법
* subsampled pooling
- 풀링 레이어는 인접 픽셀들 중에서 중요한 정보만을 남기기 위해서 서브 샘플링(subsampling) 기법을 사용합니다.
- 이것은 이미지를 구성하는 픽셀들이 인접한 픽셀들끼리는 비슷한 정보를 가진다는 특성에 기반합니다.
- 이를 통해 과적합을 방지하고, 효율적인 계산을 하게 만들어줍니다.
- 해당 레이어는 가중치가 존재하지 않아서 학습되지 않는 레이어입니다.
- 출처 : https://davinci-ai.tistory.com/29
이 방법은 점근적으로 절대적으로 효과적이다, 다른 작업에서의 복잡한 요구를 못하게 한다. 패치단위의 학습은 흔하다, 하지만 FC 학습보다 효과가 떨어진다. 우리의 접근방식은 이전과 이후 프로세싱에 해당하는 복잡한 일들을 할 필요가 없고, random fields나 local 분류기에 의해 superpixels(*), proposals(*), or 사후개선을 포함한다. 우리의 모델은 분류에 있어 최근의 성공을 dense prediction으로 옮긴다, 그들의 학습된 표현으로부터 Fully convultional and fine-tuning한 분류 네트워크로 재해석하여 / 대조적으로, 이전 작업들은 지도 사전학습 없이 작은 CN을 사용했다.
* superpixels
- 슈퍼픽셀이란 지각적으로(perceptually) 의미있는 픽셀들을 모아서 그룹화해준 것이다. 무슨 말인가 하면, 인접해 있는 픽셀들 중에 비슷한 특성(색상 또는 밝기 등)을 갖고 있는 것끼리 묶어서 커다란 픽셀, 즉 슈퍼픽셀을 만들어준다는 것이다. 픽셀 단위가 아닌 슈퍼 픽셀 단위로 영상을 처리하겠다는 것이다. 우리는 어떤 이미지를 볼 때 모든 픽셀을 하나하나 살펴보기보다는 비슷한 부분은 한번에 모아서 보기 때문에, 슈퍼픽셀 단위로 이미지를 처리하는 것이 좀 더 자연스러운(좀 더 사람다운) 방식이라고 볼 수 있다.
- 출처 : https://bskyvision.com/540
* proposals
- 윈도우를 활용해 객체를 찾는 효율적인 방법
1) 첫 번째 알고리즘 카테고리는 먼저 영역 제안(Region Proposal)을 하는 것입니다. 객체를 포함할 가능성이 높은 영역을 선택적 탐색(Selective Search)같은 컴퓨터 비전 기술을 활용하거나 딥러닝 기반의 영역 제안 네트워크(RPN; Region Proposal Network)를 통해 선택하는 것인데요. 후보군의 윈도우 세트를 취합하면 회귀 모델과 분류 모델의 수를 공식화해 객체 탐지를 할 수 있습니다. 이 카테고리에는 Faster R-CNN[1], R_FCN[2] and FPN-FRCN[3] 같은 알고리즘이 포함됩니다. 이단계 방식(Two-Stage Methods)이라고 불리는 이 알고리즘들은 높은 정확도를 제공하지만 단일 단계 방식(Single-Stage Methods)보다는 처리 속도가 느립니다.
2) 두 번째 알고리즘 카테고리는 정해진 위치와 정해진 크기의 객체만 찾는데요. 이 위치와 크기들은 대부분의 시나리오에 적용할 수 있도록 전략적으로 선택됩니다. 이 카테고리의 알고리즘은 보통 원본 이미지를 고정된 사이즈 그리드 영역으로 나누는데요. 알고리즘은 각 영역에 대해 형태와 크기가 미리 결정된 객체의 고정 개수를 예측합니다. 이 카테고리에 속하는 알고리즘은 단일 단계 방식(Single-Stage Methods)이라고 불리며 YOLO[4], SSD[5], RetinaNet[6]와 같은 알고리즘이 포함됩니다. 앞서 설명한 이단계 방식 보다는 정확도가 떨어지지만 빠른 처리가 가능합니다. 이 알고리즘 유형은 보통 실시간 탐지를 요구하는 애플리케이션에 활용됩니다.
Semantic segmentation은 semantics와 location 사이에 내재하는 문제에 직면한다 : global 정보는 무엇을 해결하고, local 정보는 어디를 해결한다. 깊은 특징 계층은 location과 semantics을 비선형 local-to-global 피라미드에 넣어둔다. 우리는 skip architecture를 정의한다, 이 특징 스펙트럼으로부터 이득을 취하기 위해, coarse semantic 정보와 shallow fine appearance 정보를 결합하는.
다음 섹션에서는, deep classification net, FCN, 그리고 convnet을 사용하여 semantic segmentation을 수행한 최근 연구를 살펴본다. 그 다음 섹션에서는 FCN design과 dense prediction tradeoff를 알아보고, in-network upsampling과 여러 레이어의 조합으로 만들어진 우리의 FCN 구조를 설명하고, 우리의 실험 성과를 보여준다. 최종적으로, 우리는 PASCAL VOC 2011-2, NYUDv2, SIFT Flow에서 최고의 성과를 달성했음을 보여주겠다.
2. 관련 연구
우리 적근방식은 이미지 분류와 전이학습에서의 deep nets 최근 성과를 사용한다. 전이학습은 다양한 시각 인식 과제에 처음 사용되었고, 그 다음에는 감지, 그 다음에는 hybrid proposal 분류 모델에서 instance and semantic segmentation에서 사용되었다. 우리는 semantic segmentation의 직접적이고, 픽셀단위의 예측을 위해 분류 네트워크를 재건축하고 fine-tune하였다. 우리는 FCN 공간을 도표로 나타내고, 이전 모들들을 이 프레임워크 안에 위치시켰다.
(1) Fully convolutional networks
우리가 알기로는, 임의의 사이즈 입력값을 받을 수 있는 CN을 만든 개념이 Matan et al에 의해 처음 등장한 것으로 알고 있다, 연속된 digit를인식하는 기존의 LeNet으로부터 진보된. 왜냐하면 그들의 네트워크는 1차원 입력값에 머물러 있었기 때문이다. Matan et al은 출력값을 얻기위해 비터비 복호를 사용했다. Wolf and Platt은 CN 출력값을 2차원맵으로 확장하였다, postal address blockd의 네개 코너를 위한 감지 점수의. 이 두가지 과거 연구는 감지를 위해 fully convolutionally 예측과 학습을 한다. Ning et al은 fully convolutional 예측을 사용해 C. elegans 조직들의 coarse multiclass segmentation을 위한 CN을 정의했다.
Fully convolutional 계산은 많은 레이어의 네트워크에서 사용되었다. Sermanet et al의 Sliding window detection, Pinheiro and Collobert의 semantic segmentation, Eigen et al의 이미지 재건은 FC 예측을 수행한다. FC 학습은 희귀하지만 Tompson에 의해 효과적으로 사용되었다, end-to-end 부분 감지 알고리즘과 pose estimation을 위한 spatial 모델을 학습하기위해, 비록 그들은 이 방법을 해설하거나 분석하지 않았지만.
그 대신에, 그는 특징 추출기를 만들기위해 분류 네트워크의 non-convolutional 부분을 버린다. 그들은 분류를 위한 localized, fixed-length 특징을 추출하기 위해 proposal과 spatial pyramid pooling(*)을 결합한다. 빠르고 효과적이지만 이 하이브리드 모델은 end-to-end로 학습할 수 없다.
(2) Dense prediction with convnets
몇몇 최근 연구는 convnet을 dense prediction 문제에 사용했다. 이 연구들의 공통된 요소는 다음과 같다.
- capacity와 receptive field를 제한하는 작은 모델
- 패치단위의 학습
- superpixel projection에 의한 이후 프로세싱, random field 표준화, 필터링, local 분류
- dense output을 위한 입력값 이동과 출력값 엮김
- multi-scale 피라미드 프로세싱
- tanh 비선형 포화
- 앙상블
반면에 우리의 방식은 위와 같은 방법과 무관하게 작동한다. 그러나, 우리는 패치단위 학습과 shift-and-stitch ense ouput을 FCN 관점에서 연구해보았다. 우리는 또한 in-network upsampling에 대해 토론하였다.
이 기존의 연구들과는 달리, 우리는 deep 분류기를 사용했다, 전체 이미지 입력값과 전체 이미지 ground truth로부터 간단하고 효과적으로 학습하기 위해 FC fine-tune 지도 사전학습을 사용하여.
Hariharan et al과 Gupta et al 또한 semantic segmentation을 위해 deep 분류 네트워크를 사용했다, 그러나 하이브리드 proposal-분류 모델에도 사용했다. 이 연구들은 detection, semantic segmentation, instance segmentation을 위해 bounding box와 region proposal을 이용하여 R-CNN 시스템을 미세 조정한다. 어떤 방법들도 end-to-end로 학습하지는 않는다. 그들은 PASCAL VOC과 NYUDv2 각각 최고의 성과를 내었다. 그래서 우리는 섹션 5에서 직접적으로 우리의 FCN을 그들의 semantic sementation 결과와 비교한다.
우리는 end-to-end로 tune한 비선형 local-to-global 표현을 정의하기 위해 레이어에 분포된 특징을 융합한다. 동시대의 연구에서는 또한 semantic segmentation을 위한 그들의 하이브리드 모델에서 여러개의 레이어를 사용했다.
3. Fully convolutional networks(FCN)
CN 데이터의 각 레이어는 h x w x d 사이즈의 3차원 배열이다, h와 w는 공간 차원이고, d는 특징이나 채널 차원이다. 첫번째 레이어는 h x w 사이즈의 이미지이고, d는 색깔 채널이다. 높은 레이어의 위치는 길로 연결된 이미지에서의 위치와 일치한다, receptive fields(*)라고 부른다.
* receptive field
- receptive field 는 (출력 레이어의 뉴런 하나에 영향을 미치는) 입력 뉴런들의 공간 크기이다.
- 입력이 32x32x3 (RGB image) 인 경우 가중치(필터)의 크기가 5x5x3 이라면 receptive field 는 5x5x3 이 된다. 필터의 크기와 같다.
CN
'논문 읽기' 카테고리의 다른 글