Fully Convolutional Networks for Semantic Segmentation,2015
Jonathan Long∗ Evan Shelhamer∗ Trevor Darrell (UC Berkeley)
Abstract
1. Introduction
컨볼 루션 네트워크는 인식의 발전을 주도하고 있습니다. Convnets는 전체 이미지 분류 [19, 31, 32]를 개선 할뿐만 아니라 구조화 된 출력으로 로컬 작업을 진행하고 있습니다.
여기에는 바운딩박스 객체 감지 [29, 12, 17], 파트 및 키포인트 예측 [39, 24], 로컬 대응(local correspondence) [24, 9]의 발전이 포함됩니다.
대략적인 추론에서 정밀한 추론(from coarse to fine inference)으로 진행하는 자연스러운 다음 단계는 모든 픽셀에서 예측을 수행하는 것입니다.
이전의 접근 방식은 의미론적 분할을 위해 convnet을 사용했습니다 [27, 2, 8, 28, 16, 14, 11]. 여기서 각 픽셀은 둘러싸는 객체 또는 영역의 클래스로 레이블이 지정되지만 이 작업이 해결하는 단점이 있습니다.
의미론적 세분화에 대한 완전 컨볼루션 네트워크 (FCN), 훈련 된 엔드-투-엔드, 픽셀-투-픽셀이 추가 기계없이 최첨단을 능가 함을 보여줍니다.
우리가 아는 한, 이것은 픽셀 단위 예측을 위해 (1), (2) 감독되는 사전 훈련에서 FCN을 종단 간 훈련하는 첫 번째 작업입니다.
기존 네트워크의 완전 컨볼루션 버전은 임의 크기의 입력에서 조밀한 출력을 예측합니다.
학습과 추론 모두 조밀한 피드 포워드 계산과 역전파(dense feedforward computation and backpropagation. )를 통해 전체 이미지에 대한 시간에 수행됩니다.
네트워크 내 업샘플링 레이어를 사용하면 서브 샘플링 된 풀링을 통해 네트에서 픽셀 단위 예측 및 학습(pixelwise prediction and learnin)이 가능합니다.
이 방법은 점근적으로 그리고 절대적으로 효율적이며 다른 작업에서 복잡한 작업이 필요하지 않습니다.
패치 와이즈 훈련은 일반적이지만 [27, 2, 8, 28, 11] 완전한 컨볼루션 훈련의 효율성이 부족합니다.
우리의 접근 방식은 슈퍼 픽셀 [8, 16], 제안 [16, 14] 또는 무작위 필드 또는 로컬 분류기 [8, 16]에 의한 사후 개선을 포함하여 전처리 및 후처리 복잡성을 사용하지 않습니다.
우리의 모델은 분류망을 학습된 표현에서 완전 컨볼루션 및 미세 조정으로 재해석함으로써 최근 분류 성공 [19, 31, 32]을 조밀한 예측으로 전환합니다.
대조적으로, 이전 연구는 지도학습에 대한 pre-training없이 소규모 convnet을 적용했습니다 [8, 28, 27].
Semantic segmentation은 semantic과 위치 사이에 내재된 tension에 직면합니다 : 전역 정보는 무엇을 해결하고 로컬 정보는 어디에서 해결합니다.
Deep feature hierarchies는 로컬-글로벌 피라미드에서 위치와 의미를 공동으로 인코딩합니다.
우리는 섹션 4.2에서 깊고 거친 의미론적 정보와 얕고 미세한 외관 정보(deep, coarse, semantic information and shallow, fine, appearance information)를 결합하는 새로운 "건너뛰기"(skip)아키텍처를 정의합니다 (그림 3 참조).
다음 섹션에서는 심층 분류 네트워크, FCN 및 convnet을 사용한 의미론적 분할에 대한 최근 접근 방식에 대한 관련 작업을 검토합니다.
다음 섹션에서는 FCN 설계 및 조밀 한 예측 장단점을 설명하고, 네트워크 내 업 샘플링 및 다중 레이어 조합을 사용한 아키텍처를 소개하고, 실험 프레임 워크를 설명합니다.
마지막으로 PASCAL VOC 2011-2, NYUDv2 및 SIFT Flow에 대한 최신 결과를 보여줍니다.
2. Related work
우리의 접근 방식은 이미지 분류 [19, 31, 32] 및 전이 학습 [4, 38]을위한 딥넷의 최근 성공을 기반으로합니다.
Transfer는 다양한 시각적 인식 작업 [4, 38], 그 다음 감지, 그리고 하이브리드 제안 분류기 모델 [12, 16, 14]의 인스턴스 및 의미론적 세분화에서 처음 시연되었습니다.
이제 우리는 의미론적 세분화의 직접적이고 조밀한 예측을 위해 분류 네트워크를 재구성하고 미세 조정합니다
우리는 이 프레임 워크에서 FCN의 공간을 차트화하고 과거 모델과 최근 모델을 모두 배치합니다.
FCN은 우리가 아는 한, convnet을 임의 크기의 입력으로 확장한다는 아이디어는 Matan et al. [25], 고전적인 LeNet [21]을 확장하여 숫자 문자열을 인식합니다
FCN의 네트워크는 1 차원 입력 문자열로 제한 되었기 때문에 Matan et al. Viterbi 디코딩을 사용하여 출력을 얻었습니다.
Wolf and Platt [37]는 convnet 출력을 우편 주소 블록의 네 모서리(four corners of postal address blocks)에 대한 탐지 점수의 2 차원 맵으로 확장합니다.
이 두 가지 역사적 작업은 탐지를 위해 완전히 컨볼루션 방식(fully convolutionally for detection)으로 추론하고 학습합니다.
Ning et al. [27] 완전 컨볼루션 추론으로 C. elegans 조직의 거친 다중 클래스 분할을위한 convnet을 정의합니다.
FCN 계산은 다층 네트워크의 현재 시대에도 활용되었습니다.
Sermanet 등의 슬라이딩 윈도우 감지. [29], Pinheiro와 Collobert [28]에 의한 의미 분할, Eigen et al.에 의한 이미지 복원.
[5]는 완전 컨볼루션 추론을 수행합니다. 완전 컨볼루션 훈련은 드물지만 Tompson et al. 이 방법을 설명하거나 분석하지는 않지만 포즈 추정을위한 종단 간 부품 검출기 및 공간 모델을 학습합니다.
또는 He et al. [17] 특징 추출기를 만들기 위해 분류망의 비합성곱 부분을 버립니다.
이들은 제안과 공간 피라미드 풀링을 결합하여 분류를 위한 지역화된 고정 길이 기능을 생성합니다.
빠르고 효과적이지만, 이 하이브리드 모델은 종단 간 (end-to-end)학습 할 수 없습니다.
convnet을 사용한 조밀한 예측 Ning et al.의 의미론적 분할을 포함하여 조밀한 예측 문제(dense prediction problems)에 convnet을 적용한 최근의 여러 연구가 있습니다.
[27], Farabet 등 [8], Pinheiro와 Collobert [28]; Ciresan 등의 전자 현미경에 대한 경계 예측. [2] 그리고 Ganin과 Lempitsky [11]의 하이브리드 신경망 / 최근 접 이웃 모델에 의한 자연 이미지; Eigen et al.에 의한 이미지 복원 및 깊이 추정. [5, 6].
이러한 접근 방식의 공통 요소는 다음과 같습니다.
• small models restricting capacity and receptive fields; 용량 및 수용 필드를 제한하는 작은 모델;
• patchwise training [27, 2, 8, 28, 11]; 패치 별 훈련 [27, 2, 8, 28, 11];
• post-processing by superpixel projection, random field regularization, filtering, or local classification [8, 2, 11];
슈퍼 픽셀 프로젝션, 랜덤 필드 정규화, 필터링 또는 로컬 분류에 의한 후 처리 [8, 2, 11];
• input shifting and output interlacing for dense output [28, 11] as introduced by OverFeat [29];
OverFeat [29]에 의해 도입 된 고밀도 출력을위한 입력 시프 팅 및 출력 인터레이스 [28, 11];
• multi-scale pyramid processing [8, 28, 11]; 다중 규모 피라미드 처리 [8, 28, 11];
• saturating tanh nonlinearities [8, 5, 28]; and 포화 tanh 비선형 성 [8, 5, 28]; 과
• ensembles [2, 11], 앙상블
whereas our method does without this machinery. 우리의 방법은 이 기계없이 작동합니다.
However,we do study patchwise training 3.4 and “shift-and-stitch” dense output 3.2 from the perspective of FCNs.
그러나 FCN의 관점에서 패치 방식 훈련 3.4 및 "시프트 앤 스티치"고밀도 출력 3.2를 연구합니다.
우리는 또한 네트워크 내 업샘플링 3.3에 대해 논의합니다.이 중 Eigen et al. [6]은 특별한 경우입니다.
이러한 기존 방법과 달리 이미지 분류를 사전에 지도 학습으로 사용하여 심층 분류 아키텍처를 조정 및 확장하고(deep classification architectures,), 전체 이미지 입력 및 전체 이미지 기반 정보에서 간단하고 효율적으로 학습 할 수 있도록 완전히 컨볼루션 방식으로 미세 조정합니다.
Hariharan et al. [16] 및 Gupta et al. [14] 마찬가지로 Semantic Segmentation에 심층 분류 네트워크를 적용하지만 하이브리드 제안 분류기 모델(hybrid proposal-classifier models)에서는 그렇게 합니다.
이러한 접근 방식은 탐지, 의미론적 분할(Semantic segmentation) 및 인스턴스 분할(Instance Segmentation)을 위한 경계 상자 및 / 또는 영역 제안을 샘플링하여 R-CNN 시스템 [12]을 미세 조정합니다.
두 방법 모두 종단 간(end-to-end) 학습되지 않습니다.
이들은 각각 PASCAL VOC 세분화 및 NYUDv2 세분화에 대한 최신 결과를 얻으므로 독립형 종단 간 FCN을 섹션 5의 Semantic segmentation 결과와 직접 비교합니다.
3. Fully convolutional networks
convnet의 각 데이터 계층은 h × w × d 크기의 3 차원 배열입니다. 여기서 h와 w는 공간 차원이고 d는 특성 또는 채널 차원입니다.
첫 번째 레이어는 픽셀 크기가 h × w이고 색상 채널이 d 인 이미지입니다.
상위 레이어의 위치는 경로가 연결된 이미지의 위치에 해당하며 이를 수용 필드(receptive fields)라고합니다.
Convnet은 번역 불변성(translation invariance)을 기반으로 합니다. 기본 구성 요소 (컨볼루션, 풀링 및 활성화 함수)는 로컬 입력 영역에서 작동하며 상대 공간 좌표에만 의존합니다.
특정 레이어의 위치 (i, j)에있는 데이터 벡터에 대해 x_ij를 작성하고 후속 레이어에 대해 y_ij를 작성하면 이러한 함수는 출력 y_ij를 y_ij로 계산합니다.
여기서 k는 커널 크기라고하며 s는 스트라이드 또는 서브 샘플링 인자입니다. fks는 레이어 유형을 결정합니다 : 컨볼루션 또는 평균 풀링에 대한 행렬 곱셈, 최대 풀링에 대한 공간 최대 값 또는 활성화 함수에 대한 요소 별 비선형 성 등 다른 유형의 레이어에 대한 것입니다.
이 기능적 형식은 커널 크기와 보폭이 변환 규칙 fk를 준수하는 구성에서 유지됩니다.
일반 딥 네트워크는 일반 비선형 함수를 계산하는 반면, 이 형식의 레이어 만있는 네트는 딥 필터 또는 완전 컨벌루션 네트워크라고하는 비선형 필터를 계산합니다.
FCN은 자연스럽게 모든 크기의 입력에 대해 작동하며 해당 (리샘플링 된) 공간 차원의 출력을 생성합니다.
FCN으로 구성된 real-valued 손실 함수는 작업을 정의합니다.
손실 함수가 최종 레이어의 공간 차원에 대한 합인 경우
따라서 전체 이미지에서 계산된 L의 확률적 경사하강법은 L의 SGD와 동일하며 모든 최종 레이어 수용 필드를 미니 배치로 취합니다.
이러한 수용 필드가 크게 겹치는 경우, 피드 포워드 계산과 역전파 모두 패치별로 독립적으로 패치하는 대신 전체 이미지에 대해 레이어별로 계산할 때 훨씬 더 효율적입니다.
다음으로 분류 네트워크를 거친 출력 맵을 생성하는 완전 컨벌루션 네트로 변환하는 방법을 설명합니다.
픽셀 단위 예측을 위해서는 이러한 거친 출력(coarse outputs)을 픽셀에 다시 연결해야합니다. 3.2 절은 이러한 목적으로 OverFeat [29]가 도입 한 트릭을 설명합니다.
이 트릭을 동등한 네트워크 수정으로 재해석하여 이 트릭에 대한 통찰력을 얻습니다.
효율적이고 효과적인 대안으로 섹션 3.3에서 업샘플링(upsampling)을 위한 디콘볼루션(Deconvolution) 레이어를 소개합니다
3.4 절에서는 패치별 샘플링에 의한 훈련을 고려하고 4.3 절에서 전체 이미지 훈련이 더 빠르고 동등하게 효과적이라는 증거를 제시합니다.
3.1. Adapting classifiers for dense prediction 조밀한 예측을위한 분류기 조정
LeNet [21], AlexNet [19] 및 그보다 더 깊은 후계자(successors)[31, 32]를 포함한 일반적인 인식 네트워크는 표면적으로 고정된 크기의 입력을 받아 비공간 출력(nonspatial outputs)을 생성합니다.
이 그물의 완전히 연결된 레이어는 고정된 차원를 가지며 공간 좌표를 버립니다.
그러나 이러한 완전히 연결된 레이어는 전체 입력 영역을 포함하는 커널이 있는 컨볼루션으로 볼 수도 있습니다.
이렇게 하면 모든 크기의 입력과 출력 분류 맵의 입력을 받는 FCN로 변환됩니다.
이 변환은 그림 2에 설명되어 있습니다. (대비 적으로 Le et al. [20]의 것과 같은 nonconvolutional net에는이 기능이 없습니다.)
또한 결과 맵은 특정 입력 패치에 대한 원래 네트의 평가와 동일하지만 해당 패치의 겹치는 영역에 대해 계산이 크게 분할됩니다.
예를 들어, AlexNet은 227 × 227 이미지의 분류 점수를 생성하는 데 1.2ms (일반 GPU에서)가 걸리는 반면, FCN버전은 500 × 500 이미지에서 10 × 10 그리드 출력을 생성하는 데 22ms가 걸립니다. 원래의 접근 방식보다 5 배 이상 빠릅니다.
이러한 컨볼루션화 된 모델의 공간 출력 맵은 Semantic segmentation과 같은 조밀한 문제(dense problems)에 대한 자연스러운 선택을 제공합니다.
모든 출력 셀에서 Ground Truth를 사용할 수 있으므로 순방향 및 역방향 패스는 모두 간단하며 둘 다 컨볼루션의 고유한 계산 효율성 (및 적극적인 최적화)을 활용합니다.
AlexNet 예제에 해당하는 역방향 시간은 단일 이미지의 경우 2.4ms이고 완전 컨볼루션 10 × 10 출력 맵의 경우 37ms이며, 결과적으로 순방향 패스와 유사한 속도 향상이 발생합니다.
이 고밀도 역전파는 그림 1에 나와 있습니다.
분류 네트워크를 FCN으로 재해석하면 모든 크기의 입력에 대한 출력 맵이 생성되지만 출력 차원은 일반적으로 서브 샘플링(subsampling)에 의해 감소됩니다.
분류네트워크는 필터를 작게 유지하고 계산 요구 사항을 합리적으로 유지하기 위해 서브 샘플링을 네트워크에 넣습니다.
This coarsens the output of a fully convolutional version of these nets, reducing it from the size of the input by a factor equal to the pixel stride of the receptive fields of the output units.
이렇게 하면 이러한 네트워크의 FCN 버전의 출력이 거칠어지고, 출력 단위의 수용 필드(receptive field)의 픽셀 보폭(pixel stride)과 동일한 요소로 입력 크기가 줄어 듭니다.
3.2. Shift-and-stitch is filter rarefaction Shift-and-stitch는 필터 희박
입력 이동 및 출력 인터레이싱(interlacing)은 OverFeat [29]에 의해 도입된 보간(interpolation)없이 거친 출력(coarse output)에서 조밀한 예측(dense prediction)을 생성하는 트릭입니다.
출력이 f의 계수로 다운 샘플링되면 입력은 (x, y) ∈ {0,. . . , f − 1} × {0,. . . , f − 1}의 모든 값에 대해 한 번씩 오른쪽으로 x 픽셀, 아래쪽으로 y 픽셀 이동 (왼쪽 및 상단 패딩 기준)됩니다
이러한 f2 입력은 각각 convnet을 통해 실행되고 출력은 인터레이스되어 예측이 수용 필드의 중심에있는 픽셀에 해당합니다.
convnet의 필터와 레이어 보폭만 변경하면 이 시프트 앤 스티치(shift-and-stitch trick) 트릭과 동일한 결과를 얻을 수 있습니다.
입력 스트라이드 s가 있는 레이어(컨볼루션 또는 풀링)와 필터 가중치가 f_ij (여기서는 관련없는 특징 차원 제거)가있는 다음 컨볼루션 레이어를 고려하십시오.
하위 레이어의 입력 보폭을 1로 설정하면 시프트 앤 스티치(shift-and-stitch)처럼 출력을 s로 업 샘플링합니다.
그러나 원래 필터를 업샘플링된 출력과 컨볼루션하면 트릭과 동일한 결과가 생성되지 않습니다. (x; θ) = P ij0 (xij; θ), 그 기울기는 각 공간 구성 요소의 기울기에 대한 합이됩니다.
원래 필터는 현재 업 샘플링 된 입력의 감소된 부분만 보기 때문입니다.
트릭을 재현하려면 필터를 f_ij (i 및 j 0 기반)로 확대하여 희소화(rarefy)하십시오.
트릭의 FCN 출력을 재현하려면 모든 서브 샘플링이 제거 될 때까지 이 필터 확대(filter enlargement)를 레이어별로 반복해야합니다.
단순히 네트워크 내에서 서브 샘플링을 줄이는 것은 트레이드 오프입니다.
필터는 더 미세한 정보를 보지만 수용 필드(receptive field)가 더 작고 계산하는 데 더 오래 걸립니다.
우리는 시프트 앤 스티치 트릭이 또 다른 트레이드오프(tradeoff)라는 것을 보았습니다. 필터의 수용 필드 크기를 줄이지 않고 출력이 더 조밀해지지만, 필터는 원래 디자인보다 더 미세한 크기로 정보에 액세스 할 수 없습니다.
시프트 앤 스티치로 예비 실험을 수행했지만 모델에서는 사용하지 않습니다.
다음 섹션에서 설명하는 업샘플링을 통한 학습이 특히 나중에 설명할 스킵 레이어 융합(skip layer fusion)과 결합 될 때 더 효과적이고 효율적이라는 것을 알게되었습니다.
3.3. Upsampling is backwards strided convolution 업 샘플링은 역방향 스트라이드 컨볼루션
거친 출력(coarse output)을 고밀도 픽셀에 연결하는 또 다른 방법은 보간입니다
예를 들어, 단순 쌍 선형 보간은 입력 및 출력 셀의 상대적 위치에만 의존하는 선형 맵에 의해 가장 가까운 4 개의 입력에서 각 출력 y_ij를 계산합니다.
어떤 의미에서 계수 f를 사용한 업 샘플링은 분수 입력 보폭이 1 / f 인 컨벌루션입니다.
따라서 f가 적분(integral)인 한, 업샘플링하는 자연스러운 방법은 출력 스트라이드를 끈 상태에서 역방향 컨볼 루션 (디컨볼루션이라고도 함)입니다.
이러한 작업은 단순히 컨볼루션의 순방향 및 역방향 패스를 반전시키기 때문에 구현하기가 간단합니다.
따라서, 업샘플링은 픽셀 단위 손실함수로부터의 역전파에 의해 종단 간 학습을 위해 네트워크 내에서 수행됩니다.
이러한 레이어의 디콘볼루션 필터는 고정 될 필요는 없지만 (예 : 이중 선형 업 샘플링) 학습 할 수 있습니다.
디콘볼루션 레이어와 활성화 함수의 스택은 비선형 업샘플링을 학습 할 수도 있습니다.
실험에서 네트워크 내 업샘플링이 조밀한 예측을 학습하는 데 빠르고 효과적이라는 것을 발견했습니다.
최고의 세분화 아키텍처는 이러한 계층을 사용하여 섹션 4.2에서 개선 된 예측을 위해 업 샘플링하는 방법을 학습합니다.
3.4. Patchwise training is loss sampling : Patchwise 훈련은 손실 샘플링입니다.
확률적 최적화에서 기울기 계산은 훈련 분포에 의해 구동됩니다.
상대적인 계산 효율성은 중첩 및 미니 배치 크기에 따라 다르지만 패치 방식 훈련과 완전 컨볼루션 훈련 모두 모든 분포를 생성하도록 만들 수 있습니다.
전체 이미지 완전 컨볼루션 훈련은 각 배치가 이미지 (또는 이미지 모음)에 대한 손실 아래 단위의 모든 수용 필드로 구성되는 패치 방식 훈련과 동일합니다.
패치를 균일하게 샘플링하는 것보다 효율적이지만 가능한 일괄 처리 수를 줄입니다.
그러나 이미지 내에서 무작위로 선택한 패치는 간단히 복구 할 수 있습니다.
손실을 공간 용어의 무작위로 샘플링 된 하위 집합으로 제한 (또는 출력과 손실 사이에 DropConnect 마스크 [36]을 동등하게 적용)은 그래디언트 계산에서 패치를 제외합니다.
보관된 패치가 여전히 상당한 겹침을 가지고있는 경우 완전 컨볼루션 계산은 여전히 훈련 속도를 높입니다.
그래디언트가 여러 역방향 패스에 누적되는 경우 일괄 처리에 여러 이미지의 패치가 포함될 수 있습니다.
패치 방식 훈련의 샘플링은 클래스 불균형을 교정하고 [27, 8, 2] 고밀도 패치의 공간적 상관 관계(he spatial correlation of dense patches)를 완화 할 수 있습니다 [28, 16].
완전 컨볼루션 훈련에서는 손실에 가중치를 부여하여 클래스 균형을 달성 할 수 있으며 손실 샘플링을 사용하여 공간 상관 관계를 해결할 수 있습니다.
섹션 4.3에서 샘플링을 사용하여 훈련을 탐색했지만 조밀 한 예측을 위해 더 빠르거나 더 나은 수렴을 산출한다는 사실을 찾지 못했습니다.
전체 이미지 훈련은 효과적이고 효율적입니다.
4. Segmentation Architecture 분할 아키텍처
ILSVRC 분류기를 FCN으로 캐스트하고 네트워크 내 업샘플링 및 픽셀 단위 손실로 고밀도 예측을 위해 이를 보강(augment)합니다.
미세 조정(fine-tuning)을 통해 세분화를 훈련합니다.
Next, we build a novel skip architecture that combines coarse, semantic and local, appearance information to refine prediction.
다음으로, 예측을 구체화하기 위해 대략적, 의미론적 및 위치 정보, 모양 정보를 결합하는 새로운 스킵 아키텍처(skip architecture)를 구축합니다.
이 조사를 위해 PASCAL VOC 2011 세그멘테이션 챌린지 [7]에 대해 교육하고 검증합니다.
We train with a per-pixel multinomial logistic loss and validate with the standard metric of mean pixel intersection over union, with the mean taken over all classes, including background.
우리는 픽셀 당 다항 로지스틱 손실(a per-pixel multinomial logistic loss)로 훈련하고 배경을 포함하여 모든 클래스를 차지하는 평균을 사용하여 유니온을 통한 평균 픽셀 교차의 표준 메트릭으로 검증합니다.
The training ignores pixels that are masked out (as ambiguous or difficult) in the ground truth.
훈련은 실측에서 가려진 (모호하거나 어려운) 픽셀을 무시합니다.
4.1. From classifier to dense FCN 분류기에서 고밀도 FCN으로
섹션 3에서와 같이 입증 된 분류 아키텍처를 컨볼루션화하여 시작합니다.
ILSVRC12에서 우승 한 AlexNet3 아키텍처 [19]와 ILSVRC14에서 예외적으로 잘 수행 된 VGGnets [31] 및 GoogLeNet4 [32]를 고려합니다.
우리는 VGG 16-layer net5를 선택하는데, 이는 이 작업에서 19-layer net과 동일하다는 것을 알았습니다.
GoogLeNet의 경우, 최종 손실 레이어(final average pooling layer)만 사용하고 최종 평균 풀링 레이어를 삭제하여 성능을 향상시킵니다.
최종 분류기 레이어를 폐기하여 각 네트워크를 잘라 내고 완전히 연결된 모든 레이어를 컨볼루션으로 변환합니다.
각각의 거친 출력 위치(coarse output location)에서 각 PASCAL 클래스 (배경 포함)에 대한 점수를 예측하기 위해 채널 차원이 21 인 1 × 1 컨볼루션을 추가한 다음 3.3 절에서 설명된대로 거친 출력을 픽셀 밀도 출력으로 쌍 선형(bilinearly)으로 업샘플링하는 디컨볼루션레이어를 추가합니다.
표 1은 각 네트워크의 기본 특성과 함께 예비 검증 결과를 비교합니다.
고정 학습률 (최소 175 epoch)에서 수렴 후 달성 된 최상의 결과를 보고합니다.
분류에서 세분화까지 미세 조정하여 각 네트에 대해 합리적인 예측을 제공했습니다.
최악의 모델조차도 최첨단 성능의 약 75 %를 달성했습니다
세그멘테이션이 장착 된 VGG net (FCN-VGG16)은 이미 56.0 평균 IU on val에 대해 최첨단 인 것처럼 보입니다 [16].
추가 데이터에 대한 훈련은 val7의 하위 집합에서 성능을 59.4 평균 IU로 높입니다.
학습 세부 사항은 섹션 4.3에 나와 있습니다.
유사한 분류 정확도에도 불구하고 GoogLeNet의 구현은이 세분화 결과와 일치하지 않았습니다.
4.2. Combining what and where 무엇과 위치 결합
특징 계층 구조의 레이어를 결합하고 출력의 공간 정밀도를 개선하는 분할을위한 새로운 FCN (Full Convolutional Net)을 정의합니다. 그림 3을 참조하십시오.
완전히 컨볼루션 화 된 분류기는 4.1과 같이 세분화에 맞게 미세 조정할 수 있고 표준 메트릭에서 높은 점수를받을 수도 있지만 출력은 만족스럽지 않을 정도로 거칠다 (그림 4 참조).
최종 예측 레이어의 32 픽셀 보폭은 업샘플링 된 출력의 디테일 스케일을 제한합니다.
우리는 최종 예측 레이어와 더 미세한 보폭을 가진 하위 레이어를 결합하는 링크를 추가하여 이 문제를 해결합니다.
이렇게하면 라인 토폴로지가 DAG로 바뀌며 에지가 하위 레이어에서 상위 레이어로 건너 뜁니다 (그림 3).
픽셀 수가 적기 때문에 미세한 스케일 예측에는 더 적은 레이어가 필요하므로 더 얕은 순 출력에서 만드는 것이 좋습니다.
미세 레이어와 거친 레이어를 결합하면 모델이 전역 구조를 고려하는 로컬 예측을 할 수 있습니다
Florack et al.의 멀티 스케일 로컬 제트와 유사합니다.
[10], 우리는 비선형 국부적 특징 계층을 딥 제트라고 부릅니다.
먼저 16 픽셀 스트라이드 레이어에서 예측하여 출력 스트라이드를 반으로 나눕니다.
추가 클래스 예측을 생성하기 위해 pool4 위에 1 × 1 컨볼 루션 레이어를 추가합니다.
우리는 2x 업 샘플링 레이어를 추가하고 두 예측을 합산하여 stride 32에서 conv7 (convolutionalized fc7) 위에서 계산 된 예측과이 출력을 융합합니다. (그림 3 참조).
2x 업 샘플링을 쌍 선형 보간으로 초기화하지만 3.3 절에 설명 된대로 매개 변수를 학습 할 수 있습니다.
마지막으로, stride 16 예측은 이미지로 다시 업 샘플링됩니다. 우리는 이것을 FCN-16이라고 부릅니다.
FCN-16s는 종단 간 학습되며, 이제는 FCN-32라고하는 마지막의 거친 네트워크 매개 변수로 초기화됩니다.
풀 4에서 작동하는 새 매개 변수는 0으로 초기화되어 네트워크가 수정되지 않은 예측으로 시작됩니다.
학습률이 100 배 감소합니다.
이 스킵 네트워크를 학습하면 3.0 평균 IU에서 62.4로 설정된 유효성 검사 성능이 향상됩니다. 그림 4는 출력의 미세 구조(the fine structure of the output) 개선을 보여줍니다.
우리는 이 융합을 pool4 계층에서만 학습 (성능이 저하됨)하고 추가 링크를 추가하지 않고 학습률을 낮추는 것과 비교했습니다 (출력 품질을 개선하지 않고 성능이 크게 향상되지 않음).
우리는 pool3의 예측을 pool4와 conv7에서 융합된 예측의 2 배 업 샘플링과 융합하여 net FCN-8을 구축함으로써 이러한 방식을 계속합니다.
62.7의 평균 IU로 약간의 추가 개선을 얻었으며 출력의 부드러움과 세부 사항에서 약간의 개선을 발견했습니다.
이 시점에서 우리의 융합 개선은 대규모 정확성을 강조하는 IU 메트릭과 가시적 인 개선 측면에서 모두 감소하는 수익을 만났습니다. 그림 4에서는 더 낮은 레이어를 계속 융합하지 않습니다.
Refinement by other means 다른 수단에 의한 구체화
풀링 레이어의 보폭을 줄이는 것이 더 정밀한 예측을 얻는 가장 간단한 방법입니다.
그러나 그렇게하는 것은 VGG16 기반 네트워크에 문제가 있습니다.
풀 5 레이어를 스트라이드 1로 설정하려면 컨볼루션 화 된 fc6이 수용 필드 크기를 유지하기 위해 14 × 14의 커널 크기를 가져야합니다.
계산 비용 외에도 이러한 대형 필터를 배우는 데 어려움이있었습니다.
우리는 더 작은 필터로 pool5 위의 레이어를 재구성하려고 시도했지만 비슷한 성능을 달성하는 데 성공하지 못했습니다. 한 가지 가능한 설명은 상위 계층에서 ImageNet 훈련 가중치의 초기화가 중요하다는 것입니다.
더 정밀한 예측을 얻는 또 다른 방법은 섹션 3.2에 설명 된 시프트 앤 스티치 트릭(shift-and-stitch trick)을 사용하는 것입니다.
제한된 실험에서 이 방법의 비용 대 개선 비율이 레이어 융합보다 더 나쁘다는 것을 발견했습니다.
4.3. Experimental framework
Optimization
최적화 우리는 기세로 SGD로 훈련합니다.
우리는 라인 검색에서 선택한 FCN-AlexNet, FCN-VGG16 및 FCN-GoogLeNet에 대해 각각 20 개의 이미지의 미니 배치 크기와 10−3, 10−4 및 5−5의 고정 학습률을 사용합니다.
운동량 0.9, 5-4 또는 2-4의 가중치 감소를 사용하고 편향에 대한 학습률을 두 배로 높였지만 훈련이 이러한 매개 변수에 민감하지 않은 것으로 나타 났지만 (학습률에 민감 함).
클래스 스코어링 컨볼루션 레이어를 0으로 초기화하여 더 나은 성능이나 더 빠른 수렴을 제공하지 않는 임의 초기화를 찾습니다. 드롭 아웃은 원래 분류기 네트에서 사용 된 곳에 포함되었습니다.
Fine-tuning 미세 조정
전체 네트워크를 통한 역 전파에 의해 모든 레이어를 미세 조정합니다. 출력 분류기만 미세 조정하면 표 2와 비교하여 전체 미세 조정 성능의 70 % 만 산출됩니다.
기본 분류 네트를 학습하는 데 필요한 시간을 고려할 때 처음부터 훈련하는 것은 불가능합니다. (VGG net은 단계적으로 훈련되지만 전체 16 계층 버전에서 초기화됩니다.)
미세 조정은 거친 FCN-32s 버전의 경우 단일 GPU에서 3 일이 걸리며 FCN-16s 및 FCN-8s 버전으로 업그레이드하는 데 각각 약 하루가 걸립니다.
Patch Sampling
패치 샘플링 3.4 절에서 설명한 것처럼 전체 이미지 학습은 각 이미지를 크고 겹치는 패치의 규칙적인 그리드로 효과적으로 배치합니다.
대조적으로, 이전 작업은 전체 데이터 세트 [27, 2, 8, 28, 11]에서 패치를 무작위로 샘플링하여 잠재적으로 수렴을 가속화 할 수있는 더 높은 분산 배치를 생성합니다 [22].
우리는 앞서 설명한 방식으로 손실을 공간적으로 샘플링하여 이 트레이드 오프(tradeoff)를 연구하고, 어떤 확률 1-p로 각 최종 레이어 셀을 무시하도록 독립적인 선택을합니다.
효과적인 배치 크기 변경을 방지하기 위해 배치 당 이미지 수를 1 / p 씩 동시에 늘립니다.
컨볼루션의 효율성으로 인해 이러한 형태의 거부 샘플링은 p 값이 충분히 큰 경우 패치 방식 학습보다 여전히 빠릅니다 (예 : 3.1 절의 숫자에 따라 p> 0.2 이상).
그림 5는 이러한 형태의 샘플링이 수렴에 미치는 영향을 보여줍니다.
샘플링은 전체 이미지 훈련에 비해 수렴률에 큰 영향을 미치지 않지만 배치 당 고려해야하는 이미지 수가 더 많기 때문에 훨씬 더 많은 시간이 걸립니다.
따라서 다른 실험에서는 샘플링되지 않은 전체 이미지 학습을 선택합니다.
Class Balancing
FCN 훈련은 손실을 가중하거나 샘플링하여 클래스의 균형을 맞출 수 있습니다.
레이블이 약간 불균형 (약 3/4은 배경)이지만 클래스 균형이 필요하지 않습니다.
Dense Prediction
조밀한 예측 점수는 네트워크 내의 디컨볼루션 레이어에 의해 입력 차원으로 업샘플링됩니다.
최종 레이어 디컨볼루션 필터는 쌍 선형 보간으로 고정되고 중간 업 샘플링 레이어는 쌍 선형 업 샘플링으로 초기화 된 다음 학습됩니다.
Shift-andstitch (섹션 3.2) 또는 동등한 필터 희박성은 사용되지 않습니다.
Augmentation
우리는 이미지를 각 방향으로 최대 32 픽셀 (가장 거친 예측 스케일)로 변환하여 이미지를 무작위로 미러링하고 "지터링"하여 훈련 데이터를 증가 시켰습니다.
이로 인해 눈에 띄는 개선이 이루어지지 않았습니다.
More Training Data
추가 교육 데이터 표 1에 사용한 PASCAL VOC 2011 세분화 챌린지 교육 세트는 1112 개의 이미지에 레이블을 지정합니다.
Hariharan et al. [15] 훨씬 더 큰 8498 PASCAL 훈련 이미지 세트에 대한 레이블을 수집했으며, 이는 이전의 최첨단 시스템인 SDS [16]를 훈련하는 데 사용되었습니다.
이 훈련 데이터는 FCNVGG16 검증 점수 7를 3.4 점으로 평균 59.4 점으로 향상시킵니다.
Implementation
구현 모든 모델은 단일 NVIDIA Tesla K40c에서 Caffe [18]로 교육 및 테스트되었습니다.
모델과 코드는 공개시 오픈 소스로 공개됩니다.
5. Results
시맨틱 분할 및 장면 구문 분석에서 FCN을 테스트하고 PASCAL VOC, NYUDv2 및 SIFT 흐름을 탐색합니다
이러한 작업은 역사적으로(historically) 물체와 영역을 구분 해 왔지만 둘 다 픽셀 예측으로 동일하게 취급합니다.
이러한 각 데이터 세트에서 FCN 건너 뛰기 아키텍처 8를 평가 한 다음 NYUDv2에 대한 다중 모달 입력과 SIFT 흐름의 의미 및 기하학적 레이블에 대한 다중 작업 예측으로 확장합니다.
Metrics
우리는 픽셀 정확도와 유니온을 통한 영역 교차 (IU)에 대한 변형인 일반적인 semantic segmentation 및 장면 분석 평가에서 4개의 메트릭을 보고합니다.
n_ij를 클래스 j에 속할 것으로 예상되는 클래스 i의 픽셀 수로, ncl 다른 클래스가있는 경우, ti = Pj nij를 클래스 i의 총 픽셀 수라고합시다.
We compute: 우리는 다음을 계산합니다.
*pixel accuracy* 픽셀 정확도
*mean accuracy* 평균 정확도
*mean IU* 평균 IU
*frequency weighted IU* 주파수 가중치 IU
PASCAL VOC
표 3은 PASCAL VOC 2011 및 2012의 테스트 세트에 대한 FCN-8의 성능을 제공하며 이전의 최신 기술인 SDS [16] 및 잘 알려진 R-CNN과 비교합니다. [12].
평균 IU9에서 상대 마진 20 %로 최상의 결과를 얻었습니다. 추론 시간은 114 배 (convnet 만, 제안 및 개선 무시) 또는 286 배 (전체)가 감소합니다.
NYUDv2
NYUDv2 [30]은 Microsoft Kinect를 사용하여 수집 한 RGB-D 데이터 세트입니다.
1449 개의 RGB-D 이미지가 있으며 Gupta et al.에 의해 40 개의 클래스 의미 분할 작업으로 통합 된 픽셀 단위 레이블이 있습니다. [13].
795 개의 훈련 이미지와 654 개의 테스트 이미지의 표준 분할에 대한 결과를 보고합니다. (참고 : 모든 모델 선택은 PASCAL 2011 val에서 수행됩니다.)
표 4는 여러 변형에서 모델의 성능을 보여줍니다.
먼저 RGB 이미지에 대해 수정되지 않은 거친 모델 (FCN-32s)을 훈련합니다.
깊이 정보를 추가하기 위해 4 채널 RGB-D 입력 (초기 융합)을 사용하도록 업그레이드 된 모델을 학습합니다
이는 의미있는 기울기를 모델 전체에 전파하기 어렵 기 때문에 거의 이점을 제공하지 않습니다.
굽타 외의 성공에 이어. [14] 심도의 3 차원 HHA 인코딩,이 정보에 대한 트레이닝 네트, 그리고 두 네트의 예측이 최종 레이어에서 합산되는 RGB 및 HHA의 "후기 융합"을 시도합니다. 두 스트림 네트워크는 종단 간 학습됩니다.
마지막으로 이 최신 퓨전 네트를 16-stride 버전으로 업그레이드합니다.
SIFT Flow
SIFT Flow는 33 개의 의미론적 범주 (“다리”,“산”,“태양”) 및 세 가지 기하학적 범주 (“수평”,“수직”및“하늘”)에 대한 픽셀 레이블이있는 2,688 개의 이미지 데이터 세트입니다.
FCN은 두 가지 유형의 레이블을 동시에 예측하는 공동 표현을 자연스럽게 학습 할 수 있습니다.
의미론적 및 기하학적 예측 계층과 손실이있는 FCN-16의 양방향 버전을 배웁니다.
학습된 모델은 독립적으로 학습된 두 모델로 두 작업 모두에서 잘 수행되는 반면 학습 및 추론은 기본적으로 각 독립 모델 자체만큼 빠릅니다.
2,488 개의 학습 및 200 개의 테스트 이미지로 분할 된 표준에서 계산 된 표 5의 결과는 두 작업 모두에서 최첨단 성능을 보여줍니다.
6. Conclusion
완전 컨볼 루션 네트워크는 최신 분류 convnet이 특별한 경우 인 풍부한 모델 클래스입니다.
이를 인식하고 이러한 분류 망을 세분화로 확장하고 다중 해상도 레이어 조합으로 아키텍처를 개선하면 최신 기술이 크게 향상되는 동시에 학습 및 추론이 단순화되고 가속화됩니다.
A. Upper Bounds on IU IU의 상한선
이 논문에서는 대략적인 의미론적 예측에서도 평균 IU 세분화 메트릭에서 우수한 성능을 달성했습니다.
이 측정 항목과 이와 관련된 이 접근 방식의 한계를 더 잘 이해하기 위해 다양한 규모의 예측을 통해 성능에 대한 대략적인 상한을 계산합니다.
특정 다운 샘플링 인자로 얻을 수있는 최상의 결과를 시뮬레이션하기 위해 Ground Truth 이미지를 다운 샘플링 한 다음 다시 업샘플링하여 이를 수행합니다.
다음 표는 다양한 다운 샘플링 요인에 대한 PASCAL 2011 val의 하위 집합에 대한 평균 IU를 제공합니다.
최첨단의 평균 IU를 훨씬 능가하는 평균 IU를 달성하기 위해 픽셀 완벽한 예측은 분명히 필요하지 않으며 반대로 IU가 미세한 정확도의 좋은 척도가 아님을 의미합니다.
B. More Results 추가 결과
시맨틱 분할을 위해 FCN을 추가로 평가합니다.
PASCAL-Context [26]는 PASCAL VOC 2010의 전체 장면 주석을 제공합니다.
400 개가 넘는 클래스가 있지만 가장 빈번한 클래스를 선택하는 [26]에 정의 된 59 개의 클래스 작업을 따릅니다.
우리는 훈련과 val 세트를 각각 훈련하고 평가합니다.
표 6에서 우리는이 작업에 대한 이전의 최신 기술인 Convolutional Feature Masking [3]의 조인트 객체 + 재료 변형을 비교합니다.
FCN-8s 점수 35.1은 11 % 상대적 개선에 대한 IU를 의미합니다.
Changelog변경 로그
이 문서의 arXiv 버전은 수정 및 추가 관련 자료를 통해 최신 상태로 유지됩니다.
다음은 간단한 변경 내역을 제공합니다.
v2
PASCAL-Context 결과와 함께 평균 IU 및 부록 B에 대한 상한을 제공하는 부록 A를 추가합니다.
올바른 PASCAL 유효성 검사 번호 (이전에는 일부 val 이미지가 기차에 포함됨), SIFT 흐름 평균 IU (부적절하게 엄격한 메트릭 사용), 주파수 가중치 평균 IU 공식의 오류. 모델에 대한 링크를 추가하고 개선 된 구현을 반영하도록 타이밍 번호를 업데이트합니다 (공개적으로 제공됨).