We definitely want to take advantage of user contributions in some way, but we're still trying to figure out the best thing to do. Also, the app contains several very high-quality images of each species taken in a particular way by a talented group called FindingSpecies, and to keep the visual integrity of the app, we would want very similar photos for all species that we add. This might be difficult to outsource to the crowd.
It's a similar problem to that faced by, say, open source projects that aim to maintain a certain level of code quality and style matching in contributed source code.
Addendum: the image collections of the Australian National Botanic Gardens and the Australian National Herbarium might be of interest to you down the track: http://www.anbg.gov.au/anbg/photo-collection/index.html
Question: Any thoughts to partnering with IQEngines to bring their adaptive image recognition engine and database together with yours?
It solves a real problem, maybe you can extend it to mushrooms with HUGE warnings(you don't want people eating something poisonous a computer recognized).
I have this little tree in my yard, I do not know for sure what it is, it seems it is a cherry tree but I'm dubious.
He amazes me by being able to look at a leaf, bark or chunk of wood and tell what it is near instantly. If accurate, this is the sort of thing that will change the teaching process. I will tell him about it.
Another app I am waiting for along the same lines is Shazam for bird song!
Is it open source?
Also needed to cache a bit more aggressively.
1. Segment the leaf from the background. Even though we require users to place the leaf on a white background, this is still a very tough problem because of lighting, shadows, viewpoint, blur, focus, etc. We've tried all published segmentation algorithms and nothing works. We wrote our own, using EM on the HSV colorspace as the basis for it (plus lots of heuristics for leaves). It works okay, but it definitely needs the most work.
2. Extract some features from the contour of the leaf. We use histograms of curvature over scale. The idea is that some leaves have the same rough shape, but differ at a fine scale (e.g., serrated vs. smooth leaves). Others are similar at a fine-scale but look quite different overall. To distinguish all of these cases, we estimate "curvature at a scale" at each point on the contour and build a histogram of curvature values. We then repeat this at coarser and coarser scales and concatenate all histograms together to get a large feature vector.
3. Recognition/matching: We use a simple nearest-neighbors classifier to match the feature vectors to our ground-truth database of labeled leaves. We return the top 20 ranked species or so.
I've often wondered about identifying local trees; I've looked up site of trees, but often leaves seem very similar to several different trees.
Great to have it for other countries, and an edible plant guide.
Leafsnap is a project I've been working on for about 2 years and we finally launched this week! It's a free app for the iPhone (with an iPad version coming next week and an Android version later in the summer) that contains very high-quality images and descriptions of the tree species of the Northeast US. It also has an automatic-recognition feature that uses computer vision to help users identify trees by taking a photo of a leaf.
This project is a joint collaboration between the computer science departments at Columbia University and the University of Maryland, and botanists at the Smithsonian Institution.
Please let me know what you think! Also, I'd be happy to answer any questions about the app or the recognition technology behind it.