시맨틱 분할
semantic segmentation 에서 각 픽셀은 픽셀이 속한 객체의 클래스로 분류된다.
클래스가 같은 물체는 구별되지 않는다.
가장 어려운 점은 이미지가 일반적인 CNN 을 통과할 때 점진적으로 위치 정보를 잃는 것(1 이상의 스트라이드를 사용하는 층 때문에)
따라서 보통의 CNN 은 대략적인 위치는 알 수 있지만 정확히는 알지 못한다.
먼저 사전 훈련된 CNN 을 FCN 으로 변환한다.
이 CNN 이 입력 이미지에 적용하는 전체 스트라이드는 32이다. 이는 마지막 층이 입력 이미지보다 32배나 작은 특성 맵을 출력한다는 뜻, 여기에 해상도를 32배로 늘리는 업샘플링 층을 추가한다.
여러 가지 업샘플링 방법이 존재
이중 선형 보간 bilnear interpolation 은 4~8 배를 늘리는데 적합
전치 합성곱 층
먼저 이미지에 0으로 채워진 빈 행과 열을 삽입하여 늘린 다음 일반적인 합성곱을 수행, 전치 합성곱 층은 선형 보간에 가까운 작업을 수행하도록 초기화할 수 있지만 훈련되는 층이기 때문에 훈련 과정에서 더 잘 학습될 수 있다.
여전히 정확도가 떨어지기에 아래쪽 층에서부터 스킵 연결을 추가,
예를 들어 2배로 출력 이미지를 업샘플링하고 아래쪽 층의 출력을 더하여 해상도를 두 배로 키누다. 이 결과를 16배로 늘려 업샘플링, 최종적으로 32배의 업샘플링 달성, 이 방식은 풀링 층에서 잃은 일부 공간 정보를 복원한다.
요약하면 원본 CNN 의 출력이 2배 업샘플링, 동일한 크기의 아래쪽 층의 출력을 더함, 2배 업샘플링, 더 아래쪽 층의 출력을 더함, 8배 업샘플링
원본 이미지 크기보다 더 크게 업샘플링을 하는 것도 가능하다.
이를 초해상도라고 부른다.