Post by Devonator on Dec 5, 2012 4:19:21 GMT -5
Task
Have the program identify if a spoon is present in a picture or not
Outline or box the spoon
Differentiate between a fork and spoon (accept spoons but not forks)
Why
Become familiar with OpenCV or other libraries
Understand basic image processing
Understand basic object recognition
Introduction to machine learning
Limitations
Static images
Simple top-down view - rotation variant, perspective invariant
Similar resolutions?
Evaluation
80% success rate (Success = Spoon identified when present and not a false positive)
SIFT/SURF seems like a very promising approach to this. Combined with a clustering of object classes using a "Bag of Words" approach we can train the bot to recognize scale invariant objects as this approach ignores the order the image is laid out in and simply looks for clusters with most correlating features.
OpenCV has a very robust library for all things needed in this implementation as demonstrated:
http://www.morethantechnical.com/2011/08/25/a-simple-object-classifier-with-bag-of-words-using-opencv-2-3-w-code/
http://app-solut.com/blog/2011/07/using-the-normal-bayes-classifier-for-image-categorization-in-opencv/ (there is another really good article on this blog as mentioned in this post)
Quote from "Visual Categorization with Bags of Keypoints":
with regards to the difference between object classification and object recognition...
"Recognition: This concerns the identification of particular object instances. For in-
stance, recognition would distinguish between images of two structurally distinct
cups, while categorization would place them in the same class."
Have the program identify if a spoon is present in a picture or not
Outline or box the spoon
Differentiate between a fork and spoon (accept spoons but not forks)
Why
Become familiar with OpenCV or other libraries
Understand basic image processing
Understand basic object recognition
Introduction to machine learning
Limitations
Static images
Simple top-down view - rotation variant, perspective invariant
Similar resolutions?
Evaluation
80% success rate (Success = Spoon identified when present and not a false positive)
SIFT/SURF seems like a very promising approach to this. Combined with a clustering of object classes using a "Bag of Words" approach we can train the bot to recognize scale invariant objects as this approach ignores the order the image is laid out in and simply looks for clusters with most correlating features.
OpenCV has a very robust library for all things needed in this implementation as demonstrated:
http://www.morethantechnical.com/2011/08/25/a-simple-object-classifier-with-bag-of-words-using-opencv-2-3-w-code/
http://app-solut.com/blog/2011/07/using-the-normal-bayes-classifier-for-image-categorization-in-opencv/ (there is another really good article on this blog as mentioned in this post)
Quote from "Visual Categorization with Bags of Keypoints":
with regards to the difference between object classification and object recognition...
"Recognition: This concerns the identification of particular object instances. For in-
stance, recognition would distinguish between images of two structurally distinct
cups, while categorization would place them in the same class."