主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

딥러닝을위해영상전처리하기

신경망을훈련시키고새로운데이터에대해예측을수행하려면영상이신경망의입력크기와일치해야합니다。신경망에맞게영상의크기를조정하려면데이터를필요한크기로다시스케일링하거나자를수있습니다。

데이터에무작위방식의증대를적용하여훈련데이터의양을효과적으로늘릴수있습니다。또한증대를사용하면신경망이왜곡된영상데이터에대해일관된결과를도출하도록훈련시킬수있습니다。예를들어,신경망이회전된입력영상에대해서도일관된결과를도출하도록하기위해입력영상에무작위로회전을가할수있습니다。augmentedImageDatastore는분류문제용2차원영상에다양한방식의증대를편하게적용할수있는방법을제공합니다。

그밖의고급전처리연산이필요하거나회귀문제를위해영상을전처리해야하거나,3차원볼륨영상을전처리해야하는경우에는내장된데이터저장소를사용할수있습니다。变换함수와结合함수를사용하여사용자고유의파이프라인에따라영상을전처리할수도있습니다。

재스케일링또는자르기를사용하여영상크기조정하기

영상데이터를숫자형배열,ImageDatastore객체또는테이블로저장할수있습니다。ImageDatastore를사용하면너무커서메모리에담을수없는영상컬렉션에서데이터를배치단위로가져올수있습니다。증대영상데이터저장소나크기조정된4차원배열을훈련,예측및분류를위해사용할수있습니다。크기조정된3차원배열은예측및분류를위해서만사용할수있습니다。

신경망입력크기와일치하도록영상데이터의크기를조정하는방법에는두가지가있습니다。

  • 재스케일링은영상의높이와너비에스케일링인자를곱합니다。스케일링인자가세로방향과가로방향에서동일하지않은경우,재스케일링은픽셀의공간범위와종횡비를변경합니다。

  • 자르기는영상의하위영역을추출하고각픽셀의공간범위를보존합니다。영상을중앙에서자르거나임의의위치에서자를수있습니다。

크기조정옵션 데이터형식 크기조정함수 샘플코드
재스케일링
  • 하나의색또는다중분광영상을나타내는3차원배열

  • 회색조영상스택을나타내는3차원배열

  • 영상스택을나타내는4차원배열

imresize

我= imresize(我outputSize);

outputSize는다시스케일링할영상의차원을지정합니다。

  • 영상스택을나타내는4차원배열

  • ImageDatastore

  • 테이블

augmentedImageDatastore

auimds = augmentedImageDatastore (outputSize,我);

outputSize는다시스케일링할영상의차원을지정합니다。

자르기
  • 하나의색또는다중분광영상을나타내는3차원배열

imcrop(图像处理工具箱)

我= imcrop(我、矩形);

矩形는2차원자르기윈도우의크기와위치를지정합니다。

  • 회색조영상스택을나타내는3차원배열

  • 컬러영상스택또는다중분광영상스택을나타내는4차원배열

imcrop3(图像处理工具箱)

我= imcrop3(我、长方体);

长方体는3차원자르기윈도우의크기와위치를지정합니다。

  • 영상스택을나타내는4차원배열

  • ImageDatastore

  • 테이블

augmentedImageDatastore

auimds = augmentedImageDatastore (outputSize,我,“OutputSizeMode”, m);

입력영상의중앙에서자르려면“centercrop”으로지정합니다。

입력영상의임의의위치에서자르려면“randcrop”으로지정합니다。

무작위기하변환을사용하여훈련용영상증대하기

영상분류문제를위해augmentedImageDatastore,를사용하여크기조정회전,반사,전단,평행이동변환을무작위로결합하여영상을증대할수있습니다。

다음도식은trainNetwork가증대영상데이터저장소를사용하여각时代에대해훈련데이터를변환하는방법을보여줍니다。데이터증대를사용하면훈련의각时代마다각영상의무작위로증대된버전하나가사용됩니다。이워크플로의예제는증대영상을사용하여신경망훈련시키기항목을참조하십시오。

  1. 훈련영상을지정합니다。

  2. imageDataAugmenter를만들어서회전각도의범위나무작위로반사를적용할지점과같은영상변환옵션을구성합니다。

    샘플영상에적용된변환을미리보려면增加함수를사용하십시오。

  3. augmentedImageDatastore를만듭니다。훈련영상,출력영상의크기및imageDataAugmenter를지정합니다。출력영상의크기는신경망의imageInputLayer의크기와호환되어야합니다。

  4. trainNetwork의데이터소스로증대영상데이터저장소를지정하여신경망을훈련시킵니다。훈련의각반복마다,증대영상데이터저장소는훈련데이터의미니배치에있는영상에임의의변환조합을적용합니다。

    증대영상데이터저장소를훈련영상의소스로사용하면각时代에사용되는훈련데이터가무작위로섭동되어时代마다조금씩다른데이터세트가사용됩니다。각时代에사용되는실제훈련영상의개수는변경되지않습니다。변환된영상은메모리에저장되지않습니다。

내장된데이터저장소를사용하여추가적인영상처리연산수행하기

일부데이터저장소는데이터배치를읽어들일때제한된특정영상전처리연산을수행합니다。다음표에는이러한응용사례별데이터저장소가나열되어있습니다。이러한데이터저장소는深度学习工具箱™를사용하는딥러닝응용사례를위한훈련,검증및테스트데이터세트의소스로사용할수있습니다。이들데이터저장소는모두trainNetwork에서지원하는형식으로데이터를반환합니다。

데이터저장소 설명
augmentedImageDatastore 심층신경망을훈련시키기위해크기조,정회전,반사,전단,평행이동을비롯한무작위아핀기하변환을적용합니다。예제는使用预训练网络进行迁移学习항목을참조하십시오。
pixelLabelImageDatastore(计算机视觉工具箱) 의미론적분할신경망을훈련시키기위해영상과그대응되는실측레이블에동일한아핀기하변환을적용합니다(计算机视觉工具箱™필요)。예제는딥러닝을사용한의미론적분할항목을참조하십시오。
randomPatchExtractionDatastore(图像处理工具箱) 영상또는픽셀레이블영상으로부터임의부분의여러개의쌍을추출합니다(图像处理工具箱™필요)。선택적으로이런부분의쌍에동일한무작위아핀기하변환을적용할수있습니다。예제는딥러닝을사용한단일영상초고해상도복원기법항목을참조하십시오。
denoisingImageDatastore(图像处理工具箱) 잡음제거신경망을훈련시키기위해임의로생성된가우스잡음을적용합니다(图像处理工具箱필요)。

결합및변환을적용하여추가적으로영상처리하기

응용사례별데이터저장소에서제공하는것보다일반적이고복잡한영상전처라연산을수행하려면变换함수와结合함수를사용할수있습니다。자세한내용은用于深度学习的数据存储항목을참조하십시오。

영상데이터가있는데이터저장소변환하기

变换함수는데이터저장소(기본데이터저장소)에서읽어들인데이터를사용자가정의한변환함수에따라변환하여변형된형식의데이터저장소를만듭니다。

사용자지정변환함수는기본데이터저장소의함수가반환하는형식으로데이터를받아야합니다。ImageDatastore에있는영상데이터의경우,형식은ReadSize속성에좌우됩니다。

  • ReadSize1가이면변환함수는정수형배열을받아야합니다。배열의크기는ImageDatastore에있는영상의유형과일치합니다。예를들어,회색조영상은차원이m×n이고,트루컬러영상은차원이m×n×3이고,채널이c개인다중분광영상은차원이m×n×c입니다。

  • ReadSize1가보다크면변환함수는영상데이터로구성된셀형배열을받아야합니다。각요소는배치에있는각영상에대응됩니다。

变换함수는신경망의입력크기와일치하는데이터를반환해야합니다。变换함수는일대다관측값매핑을지원하지않습니다。

变换함수는기본ImageDatastore가JPG또는PNG영상파일의배치를읽어들일때프리페치를지원합니다。이러한영상유형의경우,ImageDatastorereadFcn인수를사용하여영상전처리를적용하지마십시오。이옵션은일반적으로상당히느립니다。사용자지정读함수를사용하는경우,ImageDatastore는프리페치를수행하지않습니다。

영상데이터가있는데이터저장소결합하기

结合함수는복수의데이터저장소에서읽어들인데이터를결합하고데이터저장소간의패리티를유지합니다。

  • image-to-image회귀신경망과같이입력값이1개인훈련신경망의경우데이터를2열테이블또는2열셀형배열로결합합니다。

  • 입력값이여러개인훈련신경망의경우데이터를numInputs+ 1열셀형배열로결합합니다。

참고항목

||||

관련예제

세부정보