주요 콘텐츠

deeplabv3plusLayers

(제거될 예정임) 의미론적 영상 분할을 위한 DeepLab v3+ 컨벌루션 신경망 생성

deeplabv3plusLayers 객체는 향후 릴리스에서 제거될 예정입니다. 대신 deeplabv3plus 함수를 사용하십시오. 자세한 내용은 버전 내역 항목을 참조하십시오.

설명

layerGraph = deeplabv3plusLayers(imageSize,numClasses,network)는 지정된 기본 신경망, 클래스 개수, 영상 크기를 갖는 DeepLab v3+ 계층을 반환합니다.

예제

layerGraph = deeplabv3plusLayers(___,"DownsamplingFactor",value)는 다운샘플링 인자(출력 스트라이드)[1]8 또는 16으로 추가로 설정합니다. 다운샘플링 인자는 DeepLab v3+의 인코더 섹션에서 입력 영상이 다운샘플링되는 정도를 설정합니다.

예제

모두 축소

ResNet-18을 기반으로 하는 DeepLab v3+ 신경망을 만듭니다.

imageSize = [480 640 3];
numClasses = 5;
network = "resnet18";
lgraph = deeplabv3plusLayers(imageSize,numClasses,network, ...
             "DownsamplingFactor",16);

신경망을 표시합니다.

analyzeNetwork(lgraph)

입력 인수

모두 축소

신경망 입력 영상 크기로, 다음으로 지정됩니다.

  • [height, width] 형식의 요소를 2개 가진 벡터

  • [height, width, 3] 형식의 요소를 3개 가진 벡터 세 번째 요소 3은 RGB에 해당합니다.

분류할 신경망의 클래스 개수로, 1보다 큰 정수로 지정됩니다.

기본 신경망으로, resnet18 (Deep Learning Toolbox), resnet50 (Deep Learning Toolbox), mobilenetv2 (Deep Learning Toolbox), xception (Deep Learning Toolbox) 또는 inceptionresnetv2 (Deep Learning Toolbox)로 지정됩니다. 해당 신경망 애드온을 설치해야 합니다.

출력 인수

모두 축소

DeepLab v3+ 신경망으로, 의미론적 영상 분할을 위한 layerGraph (Deep Learning Toolbox) 객체로 반환됩니다. 영상 분할을 위해 신경망에는 인코더-디코더 아키텍처, 팽창된 컨벌루션 및 건너뛰기 연결이 사용됩니다. 의미론적 분할에 신경망을 사용하려면 먼저 trainNetwork (Deep Learning Toolbox) 함수(Deep Learning Toolbox™가 필요함)를 사용하여 신경망을 훈련시켜야 합니다.

알고리즘

  • xception (Deep Learning Toolbox) 또는 mobilenetv2 (Deep Learning Toolbox) 기본 신경망을 사용하여 DeepLab v3+ 신경망을 만드는 경우, 아트루스(atrous, 즉 팽창된) 공간 피라미드 풀링(ASPP) 하위 신경망과 디코더 하위 신경망 내에서 심도별로 분리 가능한 컨벌루션이 사용됩니다. 그 외 모든 기본 신경망에는 컨벌루션 계층이 사용됩니다.

  • 이 DeepLab v3+ 구현의 ASPP에는 전역 평균값 풀링 계층이 포함되지 않습니다.

참고 문헌

[1] Chen, L., Y. Zhu, G. Papandreou, F. Schroff, and H. Adam. "Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation." Computer Vision — ECCV 2018, 833-851. Munic, Germany: ECCV, 2018.

확장 기능

모두 확장

버전 내역

R2019b에 개발됨

모두 확장