Main Content

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

成像

영상 데이터 증대 구성

설명

영상데이터조정,회전,반사반사영상를전처리세트를구성합니다합니다。

成像增生模构达塔斯塔尔가증대구성배치를생성위해합니다합니다합니다。자세한내용은무작위기하을사용훈련용영상증대하기항목을하십시오。

생성

설명

aug = imageDataAugmenter는항등이나인디폴트값을사용하여成像객체를만듭니다。

예제

aug = imagedataaugmenter(名称,价值는-값-값쌍을사용하여속성을 설정하여 영상 증대 옵션 세트를 구성합니다. 여러 개의 이름-값 쌍을 지정할 수 있습니다. 각 속성 이름을 따옴표로 묶습니다.

속성

모두확장

리샘플링을 수행할 때 경계를 벗어난 점을 정의하는 데 사용하는 채우기 값으로, 숫자형 스칼라 또는 숫자형 벡터로 지정됩니다.

  • 증대 영상이 단일 채널인 경우,FillValue는스칼라여야 합니다.

  • 증대영상다중채널인,FillValue는스칼라이거나 길이가 입력 영상의 채널 개수와 같은 벡터일 수 있습니다. 예를 들어, 입력 영상이 RGB 영상인 경우,FillValue는길이가 3인 벡터일 수 있습니다.

회색조영상컬러영상디폴트채우기값은0입니다。범주영상경우디폴트채우기은은''레이블입니다. 훈련 중에火车网는채워진 픽셀을 무시합니다.

예:128

좌우 방향의 무작위 반사로, 논리형 스칼라로 지정됩니다.兰德克斯true((1)인 경우, 각 영상은 50%의 확률로 가로로 반사됩니다.兰德克斯错误的((0)인 경우, 영상이 반사되지 않습니다.

상하 방향의 무작위 반사로, 논리형 스칼라로 지정됩니다.RandyReflectiontrue((1)인 경우, 각 영상은 50%의 확률로 세로로 반사됩니다.RandyReflection错误的((0)인 경우, 영상이 반사되지 않습니다.

입력영상되는범위(:단위)로,다음중하나됩니다됩니다됩니다됩니다。

  • 요소를를개가진벡터벡터。두번째첫요소보다같아야합니다합니다。회전각도된내의균등분포무작​​위로됩니다됩니다됩니다。

  • 함수핸들。함수는도받지않아야하고,회전를숫자형반환합니다합니다합니다。함수핸들하여구간에서또는확률분포사용회전각도를선택합니다합니다。함수핸들대한자세한내용은함수핸들생성하기항목을하십시오。

기본적증대은되지않습니다않습니다。

예:[-45 45]

입력 영상에 적용되는 균일(등방성) 스케일링 범위로, 다음 중 하나로 지정됩니다.

  • 요소를를개가진벡터벡터。두번째첫요소보다같아야합니다합니다。스케일링인자된내의균등분포무작​​위로됩니다됩니다됩니다。

  • 함수핸들。함수는도받지않아야하고,스케일링를숫자형반환합니다합니다합니다。함수핸들하여구간에서또는확률분포사용스케일링인자를선택합니다합니다。함수핸들대한자세한내용은함수핸들생성하기항목을하십시오。

기본적증대은되지않습니다않습니다。

예:[0.5 4]

입력 영상에 적용되는 가로 스케일링 범위로, 다음 중 하나로 지정됩니다.

  • 요소를를개가진벡터벡터。두번째첫요소보다같아야합니다합니다。가로스케일링지정구간내의균등에서무작위선택됩니다됩니다됩니다。

  • 함수핸들。함수는인수받지않아야하고,가로스케일링를스칼라로반환합니다합니다합니다합니다합니다。함수핸들서로소인구간에서비균일분포를사용가로스케일링인자를선택합니다합니다。함수핸들대한자세한내용은함수핸들생성하기항목을하십시오。

기본적으로 증대 영상은 가로 방향으로 스케일링되지 않습니다.

참고

兰德斯卡尔을지정하면成像는영상을할때RandXScale의 값을 무시합니다.

예:[0.5 4]

입력영상되는스케일링범위로,다음하나로지정됩니다됩니다。

  • 요소를를개가진벡터벡터。두번째첫요소보다같아야합니다합니다。세로 스케일링 인자는 지정된 구간 내의 연속 균등분포에서 무작위로 선택됩니다.

  • 함수핸들。함수는인수받지않아야하고,세로스케일링를스칼라로반환합니다합니다합니다합니다합니다。함수핸들서로소인구간에서비균일분포를사용세로스케일링인자를선택합니다합니다。함수핸들대한자세한내용은함수핸들생성하기항목을하십시오。

기본적영상세로으로으로않습니다않습니다않습니다。

참고

兰德斯卡尔을지정하면成像는영상을할때Randyscale의 값을 무시합니다.

예:[0.5 4]

입력영상되는전단범위로,다음하나로지정됩니다됩니다。전단(단위:도)로되며,범위(–90,90)사이에있습니다。

  • 요소를를개가진벡터벡터。두번째첫요소보다같아야합니다합니다。가로 전단 각도는 지정된 구간 내의 연속 균등분포에서 무작위로 선택됩니다.

  • 함수핸들。함수는 어떤 입력 인수도 받지 않아야 하고, 가로 전단 각도를 숫자형 스칼라로 반환해야 합니다. 함수 핸들을 사용하여 서로소인 구간에서 또는 비균일 확률 분포를 사용하여 가로 전단 각도를 선택합니다. 함수 핸들에 대한 자세한 내용은함수핸들생성하기항목을하십시오。

기본적으로 증대 영상은 가로 방향으로 전단되지 않습니다.

예:[0 45]

입력 영상에 적용되는 세로 전단 범위로, 다음 중 하나로 지정됩니다. 전단은 각도(단위: 도)로 측정되며, 범위 (–90, 90) 사이에 있습니다.

  • 요소를를개가진벡터벡터。두번째첫요소보다같아야합니다합니다。세로전단지정구간내의균등에서무작위선택됩니다됩니다됩니다。

  • 함수핸들。함수는인수받지않아야하고,세로전단를스칼라로반환합니다합니다합니다합니다합니다。함수핸들서로소인구간에서비균일분포를사용세로전단각도를선택합니다합니다。함수핸들대한자세한내용은함수핸들생성하기항목을하십시오。

기본적영상세로으로으로않습니다않습니다않습니다。

예:[0 45]

입력영상되는평행이동범위로,다음하나로됩니다됩니다됩니다。평행이동픽셀로됩니다됩니다。

  • 요소를를개가진벡터벡터。두번째첫요소보다같아야합니다합니다。가로 평행 이동 거리는 지정된 구간 내의 연속 균등분포에서 무작위로 선택됩니다.

  • 함수핸들。함수는 어떤 입력 인수도 받지 않아야 하고, 가로 평행 이동 거리를 숫자형 스칼라로 반환해야 합니다. 함수 핸들을 사용하여 서로소인 구간에서 또는 비균일 확률 분포를 사용하여 가로 평행 이동 거리를 선택합니다. 함수 핸들에 대한 자세한 내용은함수핸들생성하기항목을하십시오。

기본적영상가로방향으로이동않습니다않습니다않습니다。

예:[-5 5]

입력 영상에 적용되는 세로 평행 이동 범위로, 다음 중 하나로 지정됩니다. 평행 이동 거리는 픽셀 단위로 측정됩니다.

  • 요소를를개가진벡터벡터。두번째첫요소보다같아야합니다합니다。세로평행지정구간내의균등에서무작위선택됩니다됩니다됩니다。

  • 함수핸들。함수는 어떤 입력 인수도 받지 않아야 하고, 세로 평행 이동 거리를 숫자형 스칼라로 반환해야 합니다. 함수 핸들을 사용하여 서로소인 구간에서 또는 비균일 확률 분포를 사용하여 세로 평행 이동 거리를 선택합니다. 함수 핸들에 대한 자세한 내용은함수핸들생성하기항목을하십시오。

기본적영상세로방향으로이동않습니다않습니다않습니다。

예:[-5 5]

객체함수

增加 Apply identical random transformations to multiple images

예제

모두 축소

훈련전에를수행하는데이터를만듭니다만듭니다만듭니다。[0,360]에서에서의만큼회전하고[0.5,1]에서에서의스케일링만큼만큼영상영상영상의크기를합니다합니다

增强器= iMagedataaugmenter(...'RandRotation',[0 360],...'randscale',[0.5 1])
增加er = imageDataAugmenter with properties: FillValue: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: [0 360] RandScale: [0.5000 1] RandXScale: [1 1] RandYScale: [1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [0 0] RandYTranslation: [0 0]

영상 데이터 증대 함수를 사용하여 증대 영상 데이터저장소를 만듭니다. 증대 영상 데이터저장소에는 샘플 데이터, 레이블, 출력 영상 크기도 필요합니다.

[Xtrain,Ytrain] = DigitTrain4DarrayData;图像= [56 56 1];auimds = augmentedimagedatastore(图像大小,Xtrain,ytrain,“数据调整”,增强器)
auimds = augmentedImageDatastore with properties: NumObservations: 5000 MiniBatchSize: 128 DataAugmentation: [1x1 imageDataAugmenter] ColorPreprocessing: 'none' OutputSize: [56 56] OutputSizeMode: 'resize' DispatchInBackground: 0

영상 데이터저장소의 처음 8개의 영상에 적용된 무작위 변환을 미리 봅니다.

minibatch = preview(auimds); imshow(imtile(minibatch.input));

图包含一个轴对象。轴对象包含类型图像的对象。

동일한 영상 세트에 적용된 다른 무작위 변환을 미리 봅니다.

minibatch = preview(auimds); imshow(imtile(minibatch.input));

图包含一个轴对象。轴对象包含类型图像的对象。

증대 영상 데이터를 사용하여 컨벌루션 신경망을 훈련시킵니다. 데이터 증대는 신경망이 과적합되는 것을 방지하고 훈련 영상의 정확한 세부 정보가 기억되지 않도록 하는 데 도움이 됩니다.

손으로쓴숫자를나타내는합성영상으로구성된샘플데이터를불러옵니다.

[Xtrain,Ytrain] = DigitTrain4DarrayData;

digitTrain4DArrayData는숫자훈련를를차원배열데이터로불러옵니다옵니다。Xtrain은28×28×1×5,000배열입니다。여기서은을나타냅니다。

  • 28은 영상의 높이와 너비입니다.

  • 1은 채널의 개수입니다.

  • 5,000은 손으로 쓴 숫자를 나타내는 합성 영상의 개수입니다.

YTrain은 각 관측값에 대한 레이블을 포함하는 categorical형 벡터입니다.

신경망 검증을 위해 영상 1,000개를 남겨 둡니다.

idx = randperm(size(xtrain,4),1000);xvalidation = xtrain(:,::,:,idx);Xtrain(:,:,:,:,IDX)= [];yvalidation = ytrain(idx);ytrain(idx)= [];

크기,회전,평행,반사반사같은전처리옵션을하는하는成像객체를만듭니다。영상을 최대 3개 픽셀만큼 가로와 세로 방향으로 임의로 평행 이동하고 최대 20도의 각도로 영상을 회전합니다.

ImageAugmenter = Imagedataaugmenter(...'RandRotation',[-20,20],...'RandXTranslation',,,,[-3 3],...'RandYTranslation',,,,[-3 3])
imageAugmenter = imageDataAugmenter with properties: FillValue: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: [-20 20] RandScale: [1 1] RandXScale: [1 1] RandYScale: [1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [-3 3] RandYTranslation: [-3 3]

신경망 훈련에 사용할增生模构达塔斯塔尔객체를영상크기지정합니다합니다。데이터저장소중영상을하고영상크기를합니다합니다합니다。데이터저장소에을저장하지영상을합니다합니다합니다。火车网는신경망업데이트다음증대을버립니다버립니다。

图像= [28 28 1];augimds = augmentedimagedatastore(图像大小,Xtrain,ytrain,“数据调整”,成像器);

컨벌루션신경망를합니다합니다。

layers = [ imageInputLayer(imageSize) convolution2dLayer(3,8,'Padding',,,,'same')batchNormalizationLayer reluLayer maxPooling2dLayer(2,“大步”,,,,2) convolution2dLayer(3,16,'Padding',,,,'same')batchNormalizationLayer reluLayer maxPooling2dLayer(2,“大步”,2)卷积2Dlayer(3,32,,'Padding',,,,'same')batchNormalizationLayer reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];

모멘텀을확률경사하강법의옵션을합니다합니다합니다。

opts =训练('sgdm',,,,...“ maxepochs”,15,...“洗牌”,,,,'every-epoch',,,,...“绘图”,,,,“训练过程”,,,,...'Verbose',,,,错误的,,,,...'ValidationData',{xvalidation,yvalidation});

신경망을훈련시킵니다。검증영상되지훈련정확도보다정확도높습니다높습니다높습니다。

net = trainnetwork(augimds,layers,opts);

Figure Training Progress (18-Jul-2021 12:41:22) contains 2 axes objects and another object of type uigridlayout. Axes object 1 contains 8 objects of type patch, text, line. Axes object 2 contains 8 objects of type patch, text, line.

  • 샘플영상적용된변환보려면보려면增加함수를하십시오。

  • 훈련 중에 영상 증대를 수행하려면增生模构达塔斯塔尔를만들고“数据调整”이름-값값에成像를사용전처리지정하십시오。증대영상는데이터에자동무작위을적용합니다합니다。

버전내역

R2017b에 개발됨