Hacker News new | comments | show | ask | jobs | submit login
New iPhone app identifies trees from photos of their leaves (leafsnap.com)
180 points by gmac on May 6, 2011 | hide | past | web | favorite | 51 comments

This is my project =)

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.

Dennis Prager, a nationally syndicated talk show host, has requested such an app. He said he'd give an on-air interview to the person who makes it.


Congratulations and well done. I'm just downloading it now. My first thoughts were if it was able to identify the 320+ species of native trees we have here in NZ. My second thought was to wonder if it can be trained by the users to learn new species? (I'm still waiting for the app to finish downloading so have not tried it yet). It would be great to expand your knowledge base by having user contributions, perhaps in a curated or weighted submission process.

Thanks! We currently have coverage of about 200 species from the northeast US. We're focusing on expanding the coverage to the rest of the US (~500 more species)...and then the world!

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 not something that can be readily outsourced to "the crowd" in general but it is something that can achieved using a hierarchy of interested/invested self checking power users.

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

I think this is awesome, I've been waiting for this technology for a long time. It's one of the first CV+Mobile apps I imagined having some day, and when you release the android version I'll finally get my wish! Thank you!

Question: Any thoughts to partnering with IQEngines to bring their adaptive image recognition engine and database together with yours?

We're computer vision people ourselves, so it's not an immediate priority =) Also, there was a lot of computer vision work we had to do specifically for this project to get the recognition to work. See elsewhere for my description of that.

I think it is an outstanding idea, CONGRATS for having done that!!.

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.

Mega Congrats! Any chance of developing a similar app (paid would be fine) for identifying wildflowers? I have thousands of pictures of wilderness areas across the Western US, and I get tired of saying "and here's an example of... a yellow flower I saw a lot of that day" :-)

We've thought about flowers, but since they are present on trees for a much shorter time than leaves, it would be less useful overall. Since we're somewhat constrained in our resources (most of the work has been done on a volunteer basis), we're focusing on expanding coverage first rather than integrating additional cues for recognition (which will be a very tricky computer vision problem that will likely require a lot of effort).

I have a family member that taught dendrology for 30 years.

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.

Any way I can get notified when the Android version comes?

You can follow @leafsnap on twitter. That's definitely the #1 request we've been getting, including from myself (I have a Nexus S) =)

Nice. You need to add achievements to this. :-)

Great work! This is an app I have been waiting for. I'm looking forward to you covering other plants, flowers and mushrooms.

Another app I am waiting for along the same lines is Shazam for bird song!

Terrific news! I read the 2009 article and have been wondering about it.

Is it open source?

It seems your site is having some trouble with the load.

Yes, had a manic hour, but things seem to be under control now. (I should have listened to patio11 the first 100 times he said to turn off KeepAlive.)

Also needed to cache a bit more aggressively.

Can you just tell us what the recognition tech behind it is?

Sure! There are 3 main pieces:

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.

A whole other approach, but I wonder if segmentation might be easier using a video of a leaf moving against a stationary background. The leaf is the part that is changing.

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.

Why are not using any color information in the feature vector? Does it result in poor performance improvement?

Color is very tricky to use, because you have to worry about white-balancing, illumination conditions, and of course leaves have a large variation in color over the course of their life.

This is really cool! I like it because I think it will actually encourage kids especially, and generally everyone, to take an interest in nature and the plants around them. Also, I'm sure it could be useful in identifying dangerous and safe plants. Keep up the good work!

Having surpassed Star Trek's communicator, we seem to be well on our way towards the tricorder.

Nah, I think we'll have that as soon as someone wires up a camera to Mechanical Turk.

"Looks like cancer." "Definitely Athlete's Foot." "It's not a tumor!" "Please state the nature of the medical emergency."

Repeat 1000x, pull out the winners, and diagnose!

Repeat 1000x, pull out the winners, and diagnose!

1. If consistent winners can be identified, I'd expect them to demand much higher then average pay.

2. Everyone of your turks might have to be licensed to practice medicine, or the government might put at least some of you in jail.

I know of at least a few melanoma identification, using software, efforts which died due to regulation and the shocking resistance of doctors.

But I wonder how free apps, good at diagnosing all kind of things, would do? With cellphone CPUs and cameras getting better you could catch quite a few things...

similar to already working scheme in the pathology - the hi-def microscope scans are send to India, analyzed by real professionals there, and the results are signed off by professional here

>I know of at least a few melanoma identification, using software, efforts which died due to regulation and the shocking resistance of doctors.

Just make sure that "For entertainment only" is clearly visible on the product label :)

>But I wonder how free apps, good at diagnosing all kind of things, would do? With cellphone CPUs and cameras getting better you could catch quite a few things...

and with portable ECG, EEG, ultrasound devices, DNA chips, etc easy available and connectable ...

I don't think we quite have Star Trek communicators right. At least not the ones from Next Generation. Those seemed to be plot activated. You didn't always need to hit a button for them to make a call. Though they did drop calls like our modern smart phones.

That's funny I wanted something similar to determine it based on the trunk of each tree. In Canada there are no leafs on trees half of the year and you can make some interesting edible syrups with certain trees.

Being into woodworking (lutherie specifically), I would kill for something that could identify species by samples of wood. I think this is a very different task and extremely difficult to achieve though. Sometimes even 2 experts disagree on the pedigree of a given piece of wood - visual inspection is simply not enough and nothing short of a detailed lab analysis can confirm some identifications. Variation of the wood from tree to tree of exactly the same species is large, at least you are dealing with relative consistency in the leaves.

Awesome app. I can't wait to use it on our next hike.

I really wish there were more apps like this (and Shazam). Just off of the top of my head, i'd pay a reasonable amount of money to identify: bugs, fish, seashells, animal footprints, mushrooms, and I'm sure a whole lot more.

Being part of a hiking family with two small kids, the questions are endless and even if it were crowdsourced in some way (e.g. please identify this bug for karma), it could be handy learning tool for kids, getting them more excited about science at an early age.

A NYT article during development in 2009:


Maybe a stupid question:

  Why isn't it open source?

Love the About page. Nice personal connection.


Ah memories of my 10th grade biology class (bug or leaf collection). The trusty Audubon Guide to North American Trees. It is really shocking that the HGTTG is coming true...

Very nice to see a good computer vision app make it to the market. This has certainly brought the future closer to us :)

Superb -- fun app while hiking with my kid. I grew up in another country, so a lot of trees where I live are unknown to me.


I really adore your about page with all of the photos of your team with leaves. Very fun and personal. :)

Does this use any type of location lookup? I wonder how beneficial that would be, either look at the persons location if they use the cam or grab it out of the exif data, so that you can better determine the tree by where it of could be grown.

Not right now, but we store the GPS with all images. Once we expand our coverage to more of the world, we will probably start using the GPS to help narrow down the list of possibilities.

However, the app does let you filter the list of species shown to "New York" or "Washington DC" or "The Northeast".

This is a fairly technical crowd, can you tell us more about how the algorithm works?

Wow, I was just thinking about how to accomplish this idea yesterday.

I can't seem to get to the site. Requests are timing out. HN effect?

I wish -- but it was actually a Guardian article and an intomobile article that knocked us out. We're back now!



It would be great if you could take a pic of a tree leaf, and i will capture the geoloc of the pic as well and plot where that tree is on the map - and start tracking where all types of trees live.

This is exactly what we are doing. We're working with botanists at the Smithsonian Institution in DC who are very interested in this kind of data.

Great app. Next week I'm releasing a project for the Isle of Man which crowdsources the recording of location and health of Elm trees (via iPhone and Android app). The Island is one of the very few locations in the UK which still have a healthy population but has recently suffered funding cuts meaning Gov. surveys are no longer being done, and hence the need for a public solution.

If the app could recognise more species of elm (English and American seem to be there, but no Wych or Dutch for example), would be a valuable tool for users trying to contribute to the project.

The source for the Django app and PhoneGap-based mobile app will be up on GitHub next week, and the data is publicly available via our CouchOne instance (http://redrobot.couchone.com/_utils/database.html?openelm) – the project isn't live yet so there's only a small amount of data.

Even greater to use hi-res satnav for that! We can assess water health that way, it'd be fascinating to do similarly for forests.

Get kids/students to participate in snapping a pic of a leaf any opportunity they get to feed the data into the system. Reward them somehow.

Ask one simple question with each pic take "How many trees of this type would you estimate are in your vacinity, that you can see"

Map those trees all over and compare with climate/weather.

The estimates just increase the size of the circle on the map that shows where those trees live.

Eventually you'll get a very clear idea of what trees thrive/live where.

I'm just happy you didn't make one for insects. Just imagine an app that doesn't recognize a running bug and the owner of the iPhone kills it after 3rd try to get a better result ..

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact