% Segment new image C = semanticseg(I, net); B = labeloverlay(I, C); imshow(B); Goal: Remove noise from images (medical MRI, low-light photography).
% Annotate I = insertObjectAnnotation(I, 'Rectangle', bboxes, labels); imshow(I); Goal: Assign a class to every pixel (medical imaging, autonomous driving). % Segment new image C = semanticseg(I, net);
% Train net = trainNetwork(imds, pxds, lgraph, options); % Using pre-trained ResNet-18 net = resnet18; lgraph
% Denoise denoisedImgs = predict(autoenc, noisyImgs); Goal: Increase image resolution while preserving details. lgraph = layerGraph(net)
% Using pre-trained ResNet-18 net = resnet18; lgraph = layerGraph(net); lgraph = removeLayers(lgraph, 'fc1000', 'prob', 'ClassificationLayer_predictions'); newLayers = [ fullyConnectedLayer(2, 'Name', 'fc_new') softmaxLayer('Name', 'softmax') classificationLayer('Name', 'classout')]; lgraph = addLayers(lgraph, newLayers); lgraph = connectLayers(lgraph, 'pool5', 'fc_new'); % Train on retinal dataset (1000 images/class) options = trainingOptions('sgdm', 'InitialLearnRate', 1e-4, 'MaxEpochs', 20); trainedNet = trainNetwork(augmentedTrainSet, lgraph, options);
% Load and preprocess images imds = imageDatastore('image_folder', 'IncludeSubfolders', true, 'LabelSource', 'foldernames'); [imdsTrain, imdsValidation] = splitEachLabel(imds, 0.7, 'randomized'); % Define CNN architecture layers = [ imageInputLayer([64 64 3]) convolution2dLayer(3, 8, 'Padding', 'same') batchNormalizationLayer() reluLayer() maxPooling2dLayer(2, 'Stride', 2) fullyConnectedLayer(2) softmaxLayer() classificationLayer()];