Traitement d'image Cheminée Industrielle

9 visualizaciones (últimos 30 días)
Emile
Emile el 24 de Abr. de 2024
Editada: Rahul el 13 de Nov. de 2024 a las 8:38
Hello,
if anyone can help me on this subject
I'm at engineering school and I'm working on a project where we have to determine the condition of an industrial chimney (presence of rust/cracks). To do this, we capture the chimney and then process the image to determine whether the section photographed has any defects. I tried a first code with different tools:
-Contour detection with Canny Edge
-Segmentation using Thresholding
-Morphological analysis
I didn't have much success, as some of the photos show welds, but it only detects welds and not cracks.
I've started looking into CNNs but I don't know if it's necessary.
I enclose a photo of the chimney
Thanks in advance

Respuestas (1)

Rahul
Rahul el 13 de Nov. de 2024 a las 8:21
Editada: Rahul el 13 de Nov. de 2024 a las 8:38
Hi @Emile,
As mentioned, if unable to obtain sufficient results using Contour Detection or Image Thresholding as they are detecting welds instead of cracks, consider using Deep Learning Networks like CNNs.
In this scenario, it is necessary to provide sufficient training and validation labeled data to the network to understand the difference between 'cracks' and 'welds'. Consider using the MATLAB Image Labeler App to label the data appropriately using bounding boxes in regions of interest (ROI).
Further,
  • Define the CNN layers using functions like 'convolution2dLayer'
  • Set options using 'trainingOptions' function
  • Train the network using 'trainNetwork' function
  • Use 'classify' function to use the trained network on new Images.
Here is an example:
layers = [
imageInputLayer([size(blurredImg, 1), size(blurredImg, 2), 1])
convolution2dLayer(3, 8, 'Padding', 'same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer(2, 'Stride', 2)
fullyConnectedLayer(2)
softmaxLayer
classificationLayer];
options = trainingOptions('sgdm', ...
'MaxEpochs', 10, ...
'ValidationData', validationData, ...
'ValidationFrequency', 30, ...
'Verbose', false, ...
'Plots', 'training-progress');
net = trainnet(trainingData, layers, options);
YPred = classify(net, newImg);
Refer to the following MathWorks documentations to know more:
Thanks!

Categorías

Más información sobre Recognition, Object Detection, and Semantic Segmentation en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by