딥러닝을위해상전처리하기
신경망을훈련시키고새로운데이터에대해예측을수행하려면영상이신경망의입력크기와일치해야합니다。신경망에맞게영상의크기를조정하려면데이터를필요한크기로다시스케일링하거나자를수있습니다。
데이터에무작위방식의증대를적용하여훈련데이터의양을효과적으로늘릴수있습니다。또한증대를사용하면신경망이왜곡된영상데이터에대해일관된결과를도출하도록훈련시킬수있습니다。예를들어,신경망이회전된입력영상에대해서도일관된결과를도출하도록하기위해입력영상에무작위로회전을가할수있습니다。augmentedImageDatastore
는분류문제용2차원영상에다양한방식의증대를편하게적용할수있는방법을제공합니다。
그밖의고급전처리연산이필요하거나회귀문제를위해영상을전처리해야하거나,3차원볼륨영상을전처리해야하는경우에는내장된데이터저장소를사용할수있습니다。变换
함수와结合
함수를사용하여사용자고유의파이프라에따라상을전처리할수도있습니다。
재스케일링또는자르기를사용하여상크기조정하기
상데이터를숫자형배열,ImageDatastore
객체또는테이블로저장할수있습니다。ImageDatastore
를사용하면너무커서메모리에담을수없는영상컬렉션에서데이터를배치단위로가져올수있습니다。증대영상데이터저장소나크기조정된4차원배열을훈련,예측및분류를위해사용할수있습니다。크기조정된3차원배열은예측및분류를위해서만사용할수있습니다。
신경망입력크기와일치하도록영상데이터의크기를조정하는방법에는두가지가있습니다。
재스케일링은상의높이와너비에스케일링자를곱합니다。스케일링인자가세로방향과가로방향에서동일하지않은경우,재스케일링은픽셀의공간범위와종횡비를변경합니다。
자르기는、상의하위、자르기는、역을추출하고각픽셀의공간범위를보존합니다。상을중앙에서자르거나임의의위치에서자를수있습니다。
크기조정옵션 | 데이터형식 | 크기조정함수 | 샘플 코드 |
---|---|---|---|
재스케일링 |
|
imresize |
im = imresize(I,outputSize);
|
|
augmentedImageDatastore |
auimds = augmentedImageDatastore(outputSize,I);
|
|
자르기 |
|
imcrop (图像处理工具箱) |
im = imcrop(I,矩形);
|
|
imcrop3 (图像处理工具箱) |
im = imcrop3(I,长方体);
|
|
|
augmentedImageDatastore |
auimds = augmentedImageDatastore(输出大小,I,“OutputSizeMode”, m);
입력상의중앙에서자르려면 입력상의임의의위치에서자르려면 |
무작위기하변환을사용하여훈련용상대하기
상분류문제를위해augmentedImageDatastore
,를사용하여크기조정회전,반사,전단,평행이동변환을무작위로결합하여영상을증대할수있습니다。
다음도식은trainNetwork
가증대영상데이터저장소를사용하여각时代에대해훈련데이터를변환하는방법을보여줍니다。데이터증대를사용하면훈련의각时代마다각영상의무작위로증대된버전하나가사용됩니다。이워크플로의예제는대상을사용하여신경망훈련시키기항목을참조하십시오。
훈련상을지정합니다。
imageDataAugmenter
를만들어서회전각도의범위나무작위로반사를적용할지점과같은영상변환옵션을구성합니다。팁
샘플상에적용된변환을미리보려면
增加
함수를사용하십시오。augmentedImageDatastore
를만듭니다。훈련、상、출력、상의크기및imageDataAugmenter
를지정합니다。출력상의크기는신경망의imageInputLayer
의크기와호환되어야합니다。trainNetwork
의데이터소스로대상데이터저장소를지정하여신경망을훈련시킵니다。훈련의각반복마다,증대영상데이터저장소는훈련데이터의미니배치에있는영상에임의의변환조합을적용합니다。증대영상데이터저장소를훈련영상의소스로사용하면각时代에사용되는훈련데이터가무작위로섭동되어时代마다조금씩다른데이터세트가사용됩니다。각纪元에사용되는실제훈련에사용되는실제훈련상의개수는변경되지않습니다。변환된상은메모리에저장되지않습니다。
내장된데이터저장소를사용하여추가적外公外公상처리연산수행하기
일부데이터저장소는데이터배치를읽어들일때제한된특정영상전처리연산을수행합니다。다음@ @에는이러한응용사례별데이터저장소가나열되어있습니다。이러한데이터저장소는深度学习工具箱™를사용하는딥러닝응용사례를위한훈련,검증및테스트데이터세트의소스로사용할수있습니다。이들데이터저장소는모두trainNetwork
에서지원하는형식으로데이터를반환합니다。
데이터저장소 | 설명 |
---|---|
augmentedImageDatastore |
심층신경망을훈련시키기위해크기조,정회전,반사,전단,평행이동을비롯한무작위아핀기하변환을적용합니다。예제는사전훈련된신경망을사용한전이학습항목을참조하십시오。 |
pixelLabelImageDatastore (计算机视觉工具箱) |
의미론적분할신경망을훈련시키기위해영상과그대응되는실측레이블에동일한아핀기하변환을적용합니다(计算机视觉工具箱™필요)。예제는딥러닝을사용한의미론적분할항목을참조하십시오。 |
randomPatchExtractionDatastore (图像处理工具箱) |
영상또는픽셀레이블영상으로부터임의부분의여러개의쌍을추출합니다(图像处理工具箱™필요)。선택적으로이런부분의쌍에동일한무작위아핀기하변환을적용할수있습니다。예제는딥러닝을사용하여상해상도높이기항목을참조하십시오。 |
denoisingImageDatastore (图像处理工具箱) |
잡음제거신경망을훈련시키기위해임의로생성된가우스잡음을적용합니다(图像处理工具箱필요)。 |
결합및변환을적용하여추가적으로상처리하기
응용사례별데이터저장소에서제공하는것보다일반적이고복잡한영상전처라연산을수행하려면变换
함수와结合
함수를사용할수있습니다。자세한내용은用于深度学习的数据存储항목을참조하십시오。
상데이터가있는데이터저장소변환하기
变换
함수는데이터저장소(기본데이터저장소)에서읽어들인데이터를사용자가정의한변환함수에따라변환하여변형된형식의데이터저장소를만듭니다。
사용자지정변환함수는기본데이터저장소의读
함수가반환하는형식으로데이터를받아야합니다。ImageDatastore
에있는상데이터의경우,형식은ReadSize
속성에좌우됩니다。
ReadSize
가1이면변환함수는정수형배열을받아야합니다。배열의크기는ImageDatastore
에있는상의유형과일치합니다。예를들어,회색조영상은차원이m×n이고,트루컬러영상은차원이m×n×3이고,채널이c개인다중분광영상은차원이m×n×c입니다。ReadSize
가1보다크면변환함수는상데이터로구성된셀형배열을받아야합니다。각소는배치에있는각상에대응됩니다。
变换
함수는신경망의입력크기와일치하는데이터를반환해야합니다。变换
함수는일대다관측값매핑을지원하지않습니다。
팁
变换
함수는기본ImageDatastore
가JPG또는PNG http://http://mail.huawei.com이러한ymr상유형의경우,ImageDatastore
의readFcn
수를사용하여상전처리를적용하지마십시오。이옵션은일반적으로상당히느립니다。사용자지정读함수를사용하는경우,ImageDatastore
는프리페치를수행하지않습니다。
상데이터가있는데이터저장소결합하기
结合
함수는복수의데이터저장소에서읽어들인데이터를결합하고데이터저장소간의패리티를유지합니다。
image-to-image회귀신경망과같이입력값이1개인훈련신경망의경우데이터를2열테이블또는2열셀형배열로결합합니다。
입력값이여러개훈련신경망의경우데이터를
numInputs
+1열셀형배열로결합합니다。
참고 항목
trainNetwork
|imresize
|变换
|结合
|ImageDatastore