looking for imaging processing expert

조회 수: 2 (최근 30일)
Abdussalam Elhanashi
Abdussalam Elhanashi 2020년 10월 22일
댓글: Walter Roberson 2020년 10월 23일
Hi
I have a problem with using autoencoder for recreating fingerprinting images
I am using MATLAB and Sparse autoencoder
I am using extractHOGFeatures for extracting the features to be trained for autoencoder
I got good results on the performance of training and mseError which reaching 0.0039 However when i use autoencoder with testing images i got black color on the whole Reconstructed images
I followed this example in MATLAB for autoencoder but I am still facing the problem for Reconstructed images that are with black color for whole images
Herein the code
% Data processing
clear all;
close all;
clc;
%% Initalize the data
dataDir= fullfile('Data/');
exts = {'.jpg','.png','.tif','BMP'};
imds = imageDatastore(fullfile(dataDir),...
'IncludeSubfolders',true,'FileExtensions','.jpg','LabelSource','foldernames');
countEachLabel(imds);
[TrainData, TestData] = splitEachLabel(imds, 0.5);
size(TrainData);
countEachLabel(TrainData);
%% reference
figure();
imshow(TrainData.Files{1});
img = readimage(TrainData, 1);
[hog_8x8, vis8x8] = extractHOGFeatures(img, 'CellSize', [8 8]);
CellSize = [8 8];
hogFeatureSize = length (hog_8x8);
numImages = numel(TrainData.Files);
trainingFeatures = zeros(numImages, hogFeatureSize, 'single');
for i = 1:numImages
img = readimage(TrainData, i);
img = imbinarize(img);
trainingFeatures(i, :) = extractHOGFeatures(img, 'CellSize', CellSize);
end
%% Training Data
trainingLabels = TrainData.Labels;
X = trainingFeatures;
%% train a spare autoencoder
hiddenSize = 25;
autoenc = trainAutoencoder(X,hiddenSize,'MaxEpochs',1000,...
'DecoderTransferFunction','purelin','EncoderTransferFunction','satlin','L2WeightRegularization',0.004,'SparsityRegularization',4,'SparsityProportion',0.15);
Xreconstructed = predict(autoenc, X);
mseError = mse(X - Xreconstructed);
figure();
for i = 1:10
subplot(4,5,i);
imshow(Xreconstructed(i));
end
%% Test data
img = readimage(TestData, 1);
[hog_8x8, vis8x8] = extractHOGFeatures(img, 'CellSize', [8 8]);
CellSize = [8 8];
hogFeatureSize = length (hog_8x8);
numImages = numel(TestData.Files);
testingFeatures = zeros(numImages, hogFeatureSize, 'single');
for i = 1:numImages
img = readimage(TestData, i);
img = imbinarize(img);
testingFeatures(i, :) = extractHOGFeatures(img, 'CellSize', CellSize);
end
testingLabels = TestData.Labels;
testFeature = reshape(testingFeatures, [102 20736]);
testFeature'; %#ok<VUNUS>
xReconstructed = predict(autoenc,testFeature);
%% Test Images
figure();
for i = 1:10
subplot(4,5,i);
imshow(TestData.Files{i});
end
%% Reconstructed images from TestData
figure();
for i = 1:10
subplot(4,5,i);
imshow(xReconstructed(i));
end

답변 (1개)

Walter Roberson
Walter Roberson 2020년 10월 23일
imshow(Xreconstructed(i));
What datatype is Xreconstructed(i) ? It looks to me from the code that it will be scalar double, in the range of 1 to the number of classes or perhaps 0 to 255. It looks to me as if you are asking imshow() to display one pixel at a time, and without scaling it either.
You should probably be using something more like
imshow(Xreconstructed, [0 255])
  댓글 수: 4
Abdussalam Elhanashi
Abdussalam Elhanashi 2020년 10월 23일
Hi Walter
Thank you for your reply
I used imshow(xreconstructed, []) but i get following result one line with dots
supposed to be as these or similar to fingerprints
Walter Roberson
Walter Roberson 2020년 10월 23일
No it should not be anything like that when you display that array. You are extracting HOG features from the image, building an autoencoder, and putting the extracted features through the autoencoder prediction. The result is the same size as the extracted features, not the same size as the image, so you should not expect that the visualization of it would resemble a fingerprint in any respect.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Image Data Workflows에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by