I am developing a study for child psychology and would need to analyse thousands of childrens drawings, I would like to automate where possible through edge tracing etc. to guess the content of the picture comparing it to a library of objects... sun, house, tree, dog, etc. is it possible?
views:
153answers:
6is it possible to recognise the subject of a simple childlike drawing from a scan or photograph?
Pattern recognition is one of the most difficult things to do with computers. If you are asking if there is a ready made solution for this, then the answer is likely no.
That's not to say it can't be done, but it would represent a significant research project and a comprehensive solution would likely advance the field of pattern recognition greatly.
Personally I think this would be best solved by crowdsourcing it. You scan the images at an appropriate resolution and invite the public to choose keywords or enter their best guess at the subject. The most often chosen subjects will probably be correct and you can then conduct frequency studies or whatever other studies you need. While not directly answering your question about computer-based recognition of the drawings, this would be one way you can get the job done.
Amazon Mechanical Turk would let you do this easily for a small price. Mechanical Turk lets you "farm out" tasks to people and pay them small fees for the work they do. The fee you pay is based on how much you want to spend and how difficult the work is.
Here is the Wikipedia page that describes more about how mechanical turk works: http://en.wikipedia.org/wiki/Amazon_Mechanical_Turk
Here is the Amazon Mechanical Turk web page: https://www.mturk.com/mturk/welcome
I like to crowd sourcing idea!
But, if you want to automate it it would be possible, but very challenging. Like you said post proccessing the images with an edge detection algo would emphasise the main features.
One approach could be to use feed-forward neural networks to classify symbols. For my AI course in uni we used JNNS to build neural networks and Matlab also has a neural network module. Using a progam to train a network would save you having to write your own neural network code, and the trained networks would just be data stuctures which you can import into another program without too much hassle. That said, finding the optimal number of nodes to add to your hidden layer will still take a reasonable amount of experimenting.
There would still be plenty of problems with this approach though. First you need to classify all your symbols: house, person, dog, etc. Create a network for each one, then train each network with various depictions of these symbols (ideally as monochrome bitmaps with the more the better). Once your networks are built you then have more problems when it comes to interpreting the picture. First you need to to separate out all the objects in the picture. What happens if you have a person drawn infront of a house? How do you identify how to separate the two? Even if you do manage to separate them the rect containing the person will have a bit of house drawn behind it, and the house will have a gap in it.