MATLAB Answers

neural network image classification (good, so-so, bad)

2 views (last 30 days)
I would build a neural network to be feeded with images taken by my cell phone or camera. Starting from that image on some tools, ANN should identify 3 classes: OK, not so good, BAD.
Can someone address me on ho extract correct features from images and the feed my ANN? Any idea on how many layers and nodes per layers? I think I should have same neurons as input as pixel of my image, and 3 neurons as output.
TIA Francesco
  1 Comment
Greg Heath
Greg Heath on 11 Mar 2016
The number of hidden nodes, H, should be the smallest number that will yield acceptable results. I typically use Ntrials = 10 or 20 nets for each value of H in an interval Hmin:dH:Hmax.
For most of the MATLAB examples
help nndatasets
doc nndatasets
I have used numel(Hmin:dH:Hmax) = 10 which may have to be refined with another run with larger Hmin and smaller Hmax.
Hope this helps.
Greg
For examples search BOTH the NEWSGROUP and ANSWERS using
greg Hmin:dH:Hmax
greg Ntrials

Sign in to comment.

Accepted Answer

Explorer
Explorer on 9 Mar 2016
Neural Network images classification works fine. Accuracy of classification also depends on the features of the images. You haven't yet extracted features of images. Without features, you can not proceed.
First find an algorithm from research papers to extract features of images. And then you can ask for help in classification or feature matching using ANN.
By the way, Greg Heath has good knowledge of Neural Networks.
  3 Comments
Francesco Piantedosi
Francesco Piantedosi on 17 Mar 2016
I summarize my results: starting from an Image, with pictures of drill bit, I crop image in order to have less pixel to analyze. Let's assume that I have X * Y pixels. Then I convert image into gray scale, so I reduce dimension of my input to my ANN,because starting from a matrix X*Y*3 I will have a matrix X*Y.
Then I move every column under the first one so I will have a single column with X*Y elements that I convert into Double.
Then my question: due to high number of X*Y, can I have a so big number of neurons as first layer?
Or do I need to collect my input data in sub-vectors to feed a single neuron with a vector?
O r my I chose a deep learning strategy in order to train different layers with different portions of my original vectors?
Of course I'll repeat this cycle for every image of drill bit, I hope 2000 pictures, so I will be able to train my network with 2000 of columns.
75% for trainig, 15% for validation and 15% for testing.
Can you help me to identify correct topology for my network, transfer function and training strategy?
TIA Francesco

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by