Mailbox Restore를 사용하여 Exchange 데이터 복원이 섹션에서는 Mailbox Restore를 사용하여 Rapid Recovery 복구 지점에 백업한 Exchange 데이터 저장소에서 이메일 항목을 복구하는 방법에 대해 설명합니다. Show Mailbox Restore를 사용하여 데이터 복구 수행Rapid Recovery 복구 지점에서 Exchange 데이터 또는 데이터 저장소를 복구할 경우 Local Mount Utility 및 Mailbox Restore를 사용합니다. 복구 지점에서 데이터베이스를 열고 Mailbox Restore 응용 프로그램을 열 때는 LMU를 사용하는 것이 좋습니다. 데이터베이스를 연 다음에는 모든 복원 절차가 Mailbox Restore 사용자 인터페이스 내에서 발생합니다. 복원을 완료한 다음에는 복잡해지지 않도록 데이터베이스를 닫고 LMU에서 사용한 복구 지점을 분리합니다. 백업된 Exchange 데이터베이스에서 데이터를 복구하려면 다음 절차를 사용하십시오.
Exchange 항목 검색특정 프로젝트나 퇴사한 직원의 이름과 같은 개인의 이름과 관련된 단어와 같은 키워드를 사용하여 항목을 검색할 수도 있습니다. 상황에 따라 검색 조건이 각각 다를 수 있습니다. Mailbox Restore에는 Exchange 데이터 저장소에서 항목을 검색하기 위해 상황에 맞게 사용할 수 있는 두 가지 방법이 있습니다.
Exchange 항목에 대한 기본 검색 수행Mailbox Restore를 사용하여 Exchange 데이터를 복구할 경우 특정 프로젝트나 퇴사한 직원의 이름과 같은 개인의 이름과 관련된 단어 등의 키워드를 사용하여 항목을 검색하려는 경우가 있습니다. 메뉴 모음의 텍스트 상자에서 이 작업을 수행할 수 있습니다. 다음 절차에 따라 열려 있는 Exchange 데이터 저장소를 검색하십시오.
The document was helpful. Select Rating I easily found the information I needed. Select Rating 딥러닝을 사용하여 영상 해상도 높이기이 예제에서는 VDSR(Very-Deep Super-Resolution) 신경망을 사용하여 하나의 저해상도 영상에서 고해상도 영상을 만드는 방법을 보여줍니다. 초고해상도 기법은 저해상도 영상에서 고해상도 영상을 만드는 방법입니다. 이 예제에서는 단일 영상 초고해상도(SISR) 복원 기법을 다룹니다. 여기서 목표는 하나의 저해상도 영상에서 하나의 고해상도 영상을 복구하는 것입니다. 일반적으로 저해상도 영상에서는 고주파 영상 콘텐츠를 복구할 수 없기 때문에 SISR은 까다롭습니다. 고주파 정보가 없으면 고해상도 영상의 품질이 제한됩니다. 또한, 하나의 저해상도 영상이 여러 개의 가능한 고해상도 영상을 산출할 수 있기 때문에 SISR은 불량 조건 문제입니다. SISR을 수행하기 위해 딥러닝 알고리즘을 비롯한 몇 가지 기법이 제안되었습니다. 이 예제에서는 SISR을 위한 딥러닝 알고리즘의 하나인 VDSR(Very-Deep Super-Resolution) [1]을 살펴봅니다. VDSR 신경망VDSR은 단일 영상 초고해상도 복원을 수행하도록 설계된 컨벌루션 신경망 아키텍처입니다 [1]. VDSR 신경망은 저해상도 영상과 고해상도 영상 사이의 매핑을 학습합니다. 이 매핑은 저해상도 영상과 고해상도 영상이 비슷한 영상 콘텐츠를 가지고 있고 주로 고주파 세부 정보만 다르기 때문에 가능합니다. VDSR은 잔차 학습 전략을 사용합니다. 즉, 이 신경망은 잔차 영상을 추정하도록 학습합니다. 초고해상도 기법에서 잔차 영상이란 참조 영상의 크기와 일치하도록 쌍삼차 보간을 사용하여 업스케일링된 저해상도 영상과 고해상도 참조 영상과 사이의 차이입니다. 잔차 영상은 영상의 고주파 세부 정보에 대한 정보를 포함합니다. VDSR
신경망은 컬러 영상의 휘도로부터 잔차 영상을 검출합니다. 영상의 휘도 채널 Yhighres가 고해상도 영상의 휘도이고 Ylowres가 쌍삼차 보간을 사용하여 업스케일링된 저해상도 영상의 휘도라면 VDSR 신경망에 대한 입력값은 Ylowres가 되고 신경망은 훈련 데이터로부터 Yresidual=Yhighres-Y lowres를 예측하도록 학습합니다. VDSR 신경망이 잔차 영상을 추정하도록 학습한 후에는 업샘플링된 저해상도 영상에 추정된 잔차 영상을 더한 다음 영상을 다시 RGB 컬러스페이스로 변환하여 고해상도 영상을 복원할 수 있습니다. 스케일링 인자가 참조 영상의 크기를 저해상도 영상의 크기와 연결시킵니다. 스케일링 인자가 커질수록 저해상도 영상에서 고주파 영상 콘텐츠의 정보가 더 많이 손실되므로 SISR은 더욱 불량한 조건이 됩니다. VDSR은 큰 수용 영역을 사용함으로써 이 문제를 해결합니다. 이 예제에서는 스케일 증대를 사용하여 여러 개의 스케일링 인자로 VDSR 신경망을 훈련시킵니다. 스케일 증대를 사용하면 신경망이 작은 스케일링 인자를 사용해서 얻은 영상 컨텍스트를 활용할 수 있기 때문에 더 큰 스케일링 인자를 사용했을 때 결과가 개선됩니다. 또한, VDSR 신경망은 정수가 아닌 스케일링 인자를 갖는 영상을 수용하도록 일반화될 수 있습니다. 훈련 데이터와 테스트 데이터 다운로드하기20,000개의 스틸 자연 영상으로 이루어진 IAPR TC-12 Benchmark를 다운로드합니다 [2]. 이 데이터 세트에는 사람, 동물, 도시 등의 사진이 포함되어 있습니다. 데이터 파일의 크기는 최대 1.8GB입니다. 훈련 데이터 세트를 다운로드하기를 원치 않는 경우에는 명령줄에
헬퍼 함수 dataDir = 이 예제에서는 IAPR TC-12 Benchmark 데이터의 작은 서브셋을 사용하여 신경망을 훈련시킵니다. imageCLEF 훈련 데이터를 불러옵니다. 모든 영상은 32비트 JPEG 컬러 영상입니다. trainImagesDir = fullfile(dataDir,"iaprtc12","images","02"); exts = [".jpg",".bmp",".png"]; pristineImages = imageDatastore(trainImagesDir,FileExtensions=exts); 훈련 영상의 개수를 나열합니다. numel(pristineImages.Files) 훈련 데이터 준비하기훈련 데이터 세트를 만들려면 업샘플링된 영상과 그에 대응하는 잔차 영상으로 구성된 영상 쌍을 생성하십시오. 업샘플링된 영상은 MAT 파일로 디스크의 upsampledDirName = trainImagesDir+filesep+"upsampledImages"; residualDirName = trainImagesDir+filesep+"residualImages"; 헬퍼 함수 헬퍼 함수는
scaleFactors = [2 3 4]; createVDSRTrainingSet(pristineImages,scaleFactors,upsampledDirName,residualDirName); 훈련 세트를 위한 전처리 파이프라인 정의하기이 예제에서 신경망 입력값은 쌍삼차 보간을 사용하여 업샘플링된 저해상도 영상입니다. 원하는 신경망 응답은 잔차 영상입니다. 입력 영상 파일
모음에서 upsampledImages = imageDatastore(upsampledDirName,FileExtensions=".mat",ReadFcn=@matRead); residualImages = imageDatastore(residualDirName,FileExtensions=".mat",ReadFcn=@matRead); 데이터 증대의 파라미터를 지정하는 augmenter = imageDataAugmenter( ... RandRotatio=@()randi([0,1],1)*90, ... RandXReflection=true); 업샘플링된 영상의 데이터저장소와 잔차 영상의 데이터저장소로부터 무작위 패치 추출을 수행하는 patchSize = [41 41];
patchesPerImage = 64;
dsTrain = randomPatchExtractionDatastore(upsampledImages,residualImages,patchSize, ...
DataAugmentation=augmenter,PatchesPerImage=patchesPerImage); 결과로 생성되는 데이터저장소 inputBatch = preview(dsTrain); disp(inputBatch) InputImage ResponseImage ______________ ______________ {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} {41×41 double} VDSR 계층 설정하기이 예제에서는 Deep Learning Toolbox™에서 제공하는 41개의 개별 계층을 사용하여 VSDR 신경망을 정의합니다. 여기에는 다음이 포함됩니다.
첫 번째 계층 VDSR에는 20개의 컨벌루션 계층이 있으므로 수용 영역 및 영상 패치 크기는 41×41이 됩니다. VDSR은 휘도 채널만 사용하여 훈련되므로 영상 입력 계층은 채널이 1개인 영상을 받습니다. networkDepth = 20; firstLayer = imageInputLayer([41 41 1],Name="InputLayer",Normalization="none"); 영상 입력 계층 뒤에는 크기가 3×3인 필터를 64개 포함하는 2차원 컨벌루션 계층이 옵니다. 미니 배치 크기가 필터의 개수를 결정합니다. 각 컨벌루션 후에도 특징 맵의 크기가 입력값의 크기와 같은 상태로 유지되도록 각 컨벌루션 계층에 대한 입력값을 0으로 채웁니다. He의 방법 [3]은 뉴런 학습에 비대칭성이 존재하도록 가중치를 난수 값으로 초기화합니다. 각 컨벌루션 계층 뒤에는 신경망에 비선형성을 발생시키는 ReLU 계층이 옵니다. convLayer = convolution2dLayer(3,64,Padding=1, ... WeightsInitializer="he",BiasInitializer="zeros",Name="Conv1"); ReLU 계층을 지정합니다. relLayer = reluLayer(Name="ReLU1");
중간 계층에는 컨벌루션 계층과 ReLU 계층 18개가 번갈아 가며 포함되어 있습니다. 각 컨벌루션 계층은 크기가 3×3×64인 필터 64개를 포함하는데, 여기서 하나의 필터는 64개의 채널에서 3×3 공간 영역에 대해 연산을 수행합니다. 앞에서와 마찬가지로, 각 컨벌루션 계층 뒤에는 ReLU 계층이 옵니다. middleLayers = [convLayer relLayer]; for layerNumber = 2:networkDepth-1 convLayer = convolution2dLayer(3,64,Padding=[1 1], ... WeightsInitializer="he",BiasInitializer="zeros", ... Name="Conv"+num2str(layerNumber)); relLayer = reluLayer(Name="ReLU"+num2str(layerNumber)); middleLayers = [middleLayers convLayer relLayer]; end 끝에서 두 번째 계층은 크기가 3×3×64인 필터를 한 개 가지는 컨벌루션 계층이며 영상을 복원합니다. convLayer = convolution2dLayer(3,1,Padding=[1 1], ... WeightsInitializer="he",BiasInitializer="zeros", ... NumChannels=64,Name="Conv"+num2str(networkDepth)); 마지막 계층에 ReLU 계층 대신 회귀 계층이 옵니다. 회귀 계층은 잔차 영상과 신경망 예측 사이의 평균 제곱 오차를 계산합니다. finalLayers = [convLayer regressionLayer(Name="FinalRegressionLayer")]; 모든 계층을 결합하여 VDSR 신경망을 형성합니다. layers = [firstLayer middleLayers finalLayers]; 훈련 옵션 지정하기SGDM(Stochastic Gradient Descent with Momentum: 모멘텀을 사용한 확률적 경사하강법)을 사용하여 신경망을 훈련시킵니다. 심층 신경망을 훈련시키는 데는 상당한 시간이 소요됩니다. 학습률을 높게 지정하여 훈련 시간을 줄일 수 있습니다. 그러나 이렇게 하면 신경망의 기울기가 통제할 수
없을 만큼 증가하여 신경망이 성공적으로 훈련되지 않을 수 있습니다. 기울기를 유의미한 범위 내로 유지하기 위해 " maxEpochs = 100; epochIntervals = 1; initLearningRate = 0.1; learningRateFactor = 0.1; l2reg = 0.0001; miniBatchSize = 64; options = trainingOptions("sgdm", ... Momentum=0.9, ... InitialLearnRate=initLearningRate, ... LearnRateSchedule="piecewise", ... LearnRateDropPeriod=10, ... LearnRateDropFactor=learningRateFactor, ... L2Regularization=l2reg, ... MaxEpochs=maxEpochs, ... MiniBatchSize=miniBatchSize, ... GradientThresholdMethod="l2norm", ... GradientThreshold=0.01, ... Plots="training-progress", ... Verbose=false); 신경망 훈련시키기기본적으로 이 예제에서는 스케일링 인자 2, 3, 4에 대해 영상에 초해상도 기법을 적용하도록 훈련된 VDSR 신경망의 사전 훈련된 버전을 불러옵니다. 사전 훈련된 신경망을 사용하면 훈련이 완료될 때까지 기다리지 않고 테스트 영상의 초고해상도 복원을 수행할 수 있습니다. VDSR 신경망을 훈련시키려면 다음 코드에서 사용 가능한 GPU가 있으면 GPU에서 훈련시킵니다. GPU를 사용하려면 Parallel Computing Toolbox™와 CUDA® 지원 NVIDIA® GPU가 필요합니다. 자세한 내용은 릴리스별 GPU 지원 (Parallel Computing Toolbox) 항목을 참조하십시오. 훈련은 NVIDIA Titan X에서 6시간 정도 걸립니다. doTraining = VDSR 신경망을 사용하여 단일 영상 초고해상도 복원 수행하기VDSR 신경망을 사용하여 단일 영상 초고해상도(SISR) 복원을 수행하려면 이 예제의 나머지 단계를 따르십시오.
샘플 저해상도 영상 만들기테스트 데이터 세트 fileNames = ["sherlock.jpg","peacock.jpg","fabric.png","greens.jpg", ... "hands1.jpg","kobi.png","lighthouse.png","office_4.jpg", ... "onion.png","pears.png","yellowlily.jpg","indiancorn.jpg", ... "flamingos.jpg","sevilla.jpg","llama.jpg","parkavenue.jpg", ... "strawberries.jpg","trailer.jpg","wagon.jpg","football.jpg"]; filePath = fullfile(matlabroot,"toolbox","images","imdata")+filesep; filePathNames = strcat(filePath,fileNames); testImages = imageDatastore(filePathNames); 테스트 영상을 몽타주 형태로 표시합니다. 초고해상도 신경망을 테스트하는 데 사용할 테스트 영상을 하나 선택합니다. testImage =
scaleFactor = 0.25; Ilowres = imresize(Ireference,scaleFactor,"bicubic"); imshow(Ilowres) title("Low-Resolution Image") 쌍삼차 보간을 사용하여 영상 해상도 개선하기딥러닝 없이 영상 해상도를 높이는 표준 방법은 쌍삼차 보간을 사용하는 것입니다. 결과로 생성되는 고해상도 영상이 참조 영상과 크기가 같아지도록 쌍삼차 보간을 사용하여 저해상도 영상을 업스케일링합니다. [nrows,ncols,np] = size(Ireference); Ibicubic = imresize(Ilowres,[nrows ncols],"bicubic"); imshow(Ibicubic) title("High-Resolution Image Obtained Using Bicubic Interpolation") 사전 훈련된 VDSR 신경망을 사용하여 영상 해상도 개선하기인간의 지각은 색의 변화보다 밝기의 변화에 더 민감하기 때문에 VDSR은 영상의 휘도 채널만 사용하여 훈련된다는 사실을 기억하십시오.
Iycbcr = rgb2ycbcr(Ilowres); Iy = Iycbcr(:,:,1); Icb = Iycbcr(:,:,2); Icr = Iycbcr(:,:,3); 쌍삼차 보간을 사용하여 휘도 채널과 두 색차 채널을 업스케일링합니다. 업샘플링된 색차 채널 Iy_bicubic = imresize(Iy,[nrows ncols],"bicubic"); Icb_bicubic = imresize(Icb,[nrows ncols],"bicubic"); Icr_bicubic = imresize(Icr,[nrows ncols],"bicubic"); 업스케일링된 휘도 성분 Iresidual = activations(net,Iy_bicubic,41);
Iresidual = double(Iresidual);
imshow(Iresidual,[])
title("Residual Image from VDSR") 업스케일링된 휘도 성분에 잔차 영상을 더하여 고해상도 VDSR 휘도 성분을 얻습니다. Isr = Iy_bicubic + Iresidual; 고해상도 VDSR 휘도 성분에 업스케일링된 색 성분을 결합합니다. Ivdsr = ycbcr2rgb(cat(3,Isr,Icb_bicubic,Icr_bicubic));
imshow(Ivdsr)
title("High-Resolution Image Obtained Using VDSR") 시각적 및 정량적 비교고해상도 영상을 시각적으로 더 잘 이해하려면 각 영상 내부의 작은 영역을 살펴보십시오. 벡터 고해상도 영상을 이 ROI로 자른 다음 결과를 몽타주 형태로 표시합니다. VDSR 영상이 쌍삼차 보간을 사용하여 만든 고해상도 영상보다 세부 묘사가 더 뚜렷하고 경계가 더 분명한 것을 볼 수 있습니다. montage({imcrop(Ibicubic,roi),imcrop(Ivdsr,roi)})
title("High-Resolution Results Using Bicubic Interpolation (Left) vs. VDSR (Right)"); 영상 품질 메트릭을 사용하여 쌍삼차 보간을 사용한 고해상도 영상과 VDSR 영상을 정량적으로 비교합니다. 참조 영상은 샘플 저해상도 영상을 준비하기 전의 원본 고해상도 영상 참조 영상 대비 각 영상의 피크 신호 대 잡음비(PSNR)를 측정합니다. 일반적으로 PSNR 값이 클수록 더 나은 영상 품질을 나타냅니다. 이 메트릭에 대한 자세한 내용은
bicubicPSNR = psnr(Ibicubic,Ireference) vdsrPSNR = psnr(Ivdsr,Ireference) 각 영상의 구조적 유사도 지수(SSIM)를 측정합니다. SSIM은 참조 영상을 기준으로 영상의 3가지 특성인 휘도, 대비, 구조의 시각적 영향을 평가합니다. SSIM의 값이 1에 가까울수록 테스트 영상이 참조 영상에 더 잘 합치합니다. 이 메트릭에 대한 자세한 내용은 bicubicSSIM = ssim(Ibicubic,Ireference) vdsrSSIM = ssim(Ivdsr,Ireference) NIQE(Naturalness Image Quality Evaluator)를 사용하여 지각 영상 품질을 측정합니다. NIQE 점수가 낮을수록 더 나은 지각 품질을 나타냅니다. 이 메트릭에 대한 자세한 내용은
bicubicNIQE = niqe(Ibicubic) 스케일링 인자 2, 3, 4인 경우에 대해 테스트 영상 전체 세트의 평균 PSNR 및 SSIM을 계산합니다. 문제를 단순화하기 위해 헬퍼 함수 scaleFactors = [2 3 4]; vdsrMetrics(net,testImages,scaleFactors); Results for Scale factor 2 Average PSNR for Bicubic = 31.467070 Average PSNR for VDSR = 31.481973 Average SSIM for Bicubic = 0.935820 Average SSIM for VDSR = 0.947057 Results for Scale factor 3 Average PSNR for Bicubic = 28.107057 Average PSNR for VDSR = 28.430546 Average SSIM for Bicubic = 0.883927 Average SSIM for VDSR = 0.894634 Results for Scale factor 4 Average PSNR for Bicubic = 27.066129 Average PSNR for VDSR = 27.846590 Average SSIM for Bicubic = 0.863270 Average SSIM for VDSR = 0.878101 각 스케일링 인자에 대해 VDSR이 쌍삼차 보간보다 메트릭 점수가 높습니다. 참고 문헌[1] Kim, J., J. K. Lee, and K. M. Lee. "Accurate Image Super-Resolution Using Very Deep Convolutional Networks." Proceedings of the IEEE® Conference on Computer Vision and Pattern Recognition. 2016, pp. 1646-1654. [2] Grubinger, M., P. Clough, H. Müller, and T. Deselaers. "The IAPR TC-12 Benchmark: A New Evaluation Resource for Visual Information Systems." Proceedings of the OntoImage 2006 Language Resources For Content-Based Image Retrieval. Genoa, Italy. Vol. 5, May 2006, p. 10. [3] He, K., X. Zhang, S. Ren, and J. Sun. "Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification." Proceedings of the IEEE International Conference on Computer Vision, 2015, pp. 1026-1034. 참고 항목
관련 항목
|