I wonder if it would be possible to have some sort of a hybrid system, where automatic recognition is attempted, with a fall-back to manual input where this fails. (The manual input could be to select from several automatic "guesses") If the app stored all the data from all users, this could eventually lead to a really big database, and the automatic recognition might get better and better.
EDIT: Also, automatic vegetable/fruit recognition is actually in production in some supermarkets, for weighing/pricing. (I saw this in France.)