neuronal network
-
hy there,i would like to make a software, who can learn if a .jpg of a human is male or female. the software should use a neuronal network. the idea is, that first i view some hundret pictures of people, and always click male or female, then, the network tryes to learn, and should be able to decide if a picture is male or female. does anybody can give me tips, how i can do this? is there code available for the neuronal network things? i would be very happy for input! thanx a lot!
-
hy there,i would like to make a software, who can learn if a .jpg of a human is male or female. the software should use a neuronal network. the idea is, that first i view some hundret pictures of people, and always click male or female, then, the network tryes to learn, and should be able to decide if a picture is male or female. does anybody can give me tips, how i can do this? is there code available for the neuronal network things? i would be very happy for input! thanx a lot!
1. You are probably searching for the wrong words, that's why you didn't find a lot of articles here. The common English term is 'neural networks', not neuronal. Here on Codeproject there is a great series about AI algorithms, including neural networks, made on C#, but it should be clear enough for anyone who knows C++. 2. A neural network (NN) is usually not the full solution. In an OCR, as an example, you can't feed the NN with a bitmap and have all the chars on the other side. The NN only takes place when it is needed to 'find something similar'. There are lots of other things involved in an OCR, like identifying lines of text, separating chars, decomposing chars on vectors for font independance, and then, the last step is the NN. I did an OCR for damaged images in the past and I know that the NN is the easiest part. In your case, you won't be able to feed a NN with a image and train it to detect if it's a male jpg or a female jpg, unless the samples are really limited. The solution is much more complex, and involves separating the image in its components, like hair, eyes, nose, mouth, etc, vectorizing them in some form and only then feeding the NN with those vectors and classifying them as male or female. Again, it's not an easy task to do, and it would certainly not be the first NN I would do. You should start with simpler examples first. Trying to make bits uncopyable is like trying to make water not wet. -- Bruce Schneier By the way, dog_spawn isn't a nickname - it is my name with an underscore instead of a space. -- dog_spawn
-
1. You are probably searching for the wrong words, that's why you didn't find a lot of articles here. The common English term is 'neural networks', not neuronal. Here on Codeproject there is a great series about AI algorithms, including neural networks, made on C#, but it should be clear enough for anyone who knows C++. 2. A neural network (NN) is usually not the full solution. In an OCR, as an example, you can't feed the NN with a bitmap and have all the chars on the other side. The NN only takes place when it is needed to 'find something similar'. There are lots of other things involved in an OCR, like identifying lines of text, separating chars, decomposing chars on vectors for font independance, and then, the last step is the NN. I did an OCR for damaged images in the past and I know that the NN is the easiest part. In your case, you won't be able to feed a NN with a image and train it to detect if it's a male jpg or a female jpg, unless the samples are really limited. The solution is much more complex, and involves separating the image in its components, like hair, eyes, nose, mouth, etc, vectorizing them in some form and only then feeding the NN with those vectors and classifying them as male or female. Again, it's not an easy task to do, and it would certainly not be the first NN I would do. You should start with simpler examples first. Trying to make bits uncopyable is like trying to make water not wet. -- Bruce Schneier By the way, dog_spawn isn't a nickname - it is my name with an underscore instead of a space. -- dog_spawn
I am working on project of Map vectorization as my senior design project in university.As part of project. I want to extract labels out of map (OCR) one big benfefit i have is that i know color of text so i can seperate text from other image.. Can u please elaborate more how u did OCR??? in my case i dont need to seperate text from image, i will get it through color.. i have studied Artificial Neural Networks course in my univ... Which ANN did u used?? Back propagation?? counter propagation or radial basis? what features u fed as input vector to NN?? I am already doing image vectorization.. till now i am finding closed colour contours, intersection points etc and my final output is vertices and edges ( vectors).. So please tell me in this perspective can i get copy of ur project to see how it works ( IF possible???) ANY HELP IN THIS REGARD WILL BE HIIIIIIIIIIIIIIIIIIIIIIIGHHHHHLLLLLLLLYYYYYYY APPRECIATED... OFFCOURSE I WILL MENTION UR NAME IN MY PROJECT REPORT .. THANKS IN ADVANCE Muhammad Shoaib Khan http://geocities.com/lansolution
-
I am working on project of Map vectorization as my senior design project in university.As part of project. I want to extract labels out of map (OCR) one big benfefit i have is that i know color of text so i can seperate text from other image.. Can u please elaborate more how u did OCR??? in my case i dont need to seperate text from image, i will get it through color.. i have studied Artificial Neural Networks course in my univ... Which ANN did u used?? Back propagation?? counter propagation or radial basis? what features u fed as input vector to NN?? I am already doing image vectorization.. till now i am finding closed colour contours, intersection points etc and my final output is vertices and edges ( vectors).. So please tell me in this perspective can i get copy of ur project to see how it works ( IF possible???) ANY HELP IN THIS REGARD WILL BE HIIIIIIIIIIIIIIIIIIIIIIIGHHHHHLLLLLLLLYYYYYYY APPRECIATED... OFFCOURSE I WILL MENTION UR NAME IN MY PROJECT REPORT .. THANKS IN ADVANCE Muhammad Shoaib Khan http://geocities.com/lansolution
M.Shoaib Khan wrote: Can u please elaborate more how u did OCR??? Geez, this deserves an article series, but I'll try :) M.Shoaib Khan wrote: one big benfefit i have is that i know color of text so i can seperate text from other image.. This is great. Don't forget to allow some small variations on the color to get the full char. To separate chars, a simple scan for an empty vertical space is enough. If they are 'glued' together, the algorithm is a bit more complicated, and you'll need to add vertical lines to the char until the network can recognize something. M.Shoaib Khan wrote: Which ANN did u used?? Back propagation?? counter propagation or radial basis? This was the scariest part, I was afraid that I would need a very good NN, but in the end, it was just a simple perceptron, with some hidden layers and had a very good performance (it was both fast and accurate). I noticed that the first steps were much more determinant on the OCR's performance than the NN itself. For the feature extraction, I don't remember the algorithm name right now. It was not invented by me, and seems to be used by several omnifont OCRs. The algorithms I used both reduced the resolution and the size of the chars (all of them need to be the same, normally). So, I created a grid like this:
...|...|...|... ...|...|...|...
..1|..2|..3|... ...|.xxXxx.|...
...|...|...|... ...X...|.xx|...
---+---+---+--- --x+---+---X---
...|...|...|... ..x....|...X...
..4|..5|..6|... ...XxxxxxxxX...
...|...|...|... ...Xxxx|.xxX...
---+---+---+--- ---XX--+---X---
...|...|...|... ...X...|...X...
..7|..8|..9|... ...XX..|..XX...
...|...|...|... ...|...|...|...The numbers are IDs of the segments, and you can do this on the horizontal segments too (I just didn't to make the text more clear). Basically, you get the image and draw those imaginary segments. You then mark if (or how many times) those segments have been crossed, so you can detect horizontal, vertical and diagonal line features and each feature is an input node of the NN. Add some hidden layers (this will need tweaking, but I had success with sizes x, x/2, x/4) and the output layer is just a sequential ID for the char (0 for 'A', 1 for 'B'...) Unfortunately, this code is part of my product now, so I can't give you a copy. I didn't need to do image vectorization, so I don't have any experience with it