How I made an orchid recognition app in 7 days
I'm building Lookuq platform for object recognition. It allows users to create a visual recognition app without coding. I became my own user by creating an orchid recognition app, which identified orchid species from a picture. The inspiration came from my dad, who had been collecting and growing orchids for about 10 years. In this post, I'll write about how it started, the problems and my insights found during the process. I am the non-tech member in my team, so I do this project and write this blog post from a non-technical perspective.
My dad has been talking about many orchid species and mentioning all the names for a long time, but I never managed to remember them. They all just looked the same. (Sorry, dad!) Therefore, I could not share the joy of talking about these beautiful plants with him. If there was one thing that I am so bad at telling names, it was orchid. I thought there must be up to a hundred species. Each managed to have its own sophisticated name. If the technology I'm working on is helpful for me in any way, it must be identifying orchids.
My dad socialized with folks growing orchids, so I knew that many people have this hobby. And if I created an orchid recognition app, it might be helpful for some. I could not be the only one having trouble to tell orchid names. Many of my friends even had trouble telling vegetables' names.
To begin with, I thought to myself that I needed to at least do some research on orchids and the need for an app like that. I had little or no information about orchids. All I knew was that there are many orchid species. I asked my dad whether my lack of knowledge is common within orchid collectors and whether this app was something they needed. He immediately liked this idea and promised to share with me his expertise.
He convinced me that beginners would find an orchid recognition app useful as they have little knowledge about orchids and would love the app as their reference guide. I would need to add content to the app, not just identification. He confirmed that many of his friends who have been collecting orchids for years, yet still struggled to classify the orchids.
Next, I took an extra step to browsing about orchids on social media to have a sense of the community of orchid lovers. There are a lot of engaged Facebook groups and Youtube channels around this hobby. A positive sign.
The problem is that I stopped my research here and dived in the work. I'll explain why it's a problem later.
Brainstorming (2 days)
I got the visual recognition framework from my company, so the only thing left to do was adding data and content to it. I had to brainstorm how to categorize orchid species and structure information around the species. This is actually the hardest part. As I didn't know anything about orchids, I asked for my dad’s help on this. I kinda trusted him because he was quite an orchid expert with years of experience.
Building the orchid category and content structure was the initial data preparation step. Then the rest of the data followed that logic. We would list all orchid species, my dad said no problem. I asked my dad to list all the orchids that he knew. We then decided that content would include description of orchid roots, leaves and flowers, as well as caring tips for each species.
Content building (1 day)
Based on the structure above, it took us 1 day to list down 60-70 orchid species and write their description and caring guide.
Later on, after launching our app to the community, I realized that there were many more species we did not include. Over 28,000 species in total. Some of the orchids that my dad listed actually not even existed. Some orchids which had different names.
We actually ended up restructuring the whole category and content system. Luckily, our software was designed for flexible change in content structure, so it was not a disaster for us. After all, I bet I would beat my father in orchid knowledge (not orchid care), and this app would be helpful for himself too.
Image collection (3 days)
We needed images of orchids to train classification model. There were two options: I could use our app to take pictures of each orchid species and have them organized. Or I could collect readily available images. I went for the latter, as my dad had tons of images, even for the ones that weren’t bloomed at that time. But it took us quite a while to organize them. I actually trained myself to identify orchids before training our model. Hahaha. But I did learn a lot to optimize image labelling process after this.
Training model (2 hours)
As soon as I finished the image collection, our tech guy started model training. Our machine learning algorithm had been developed and tuned before, so it did not take us long to train this model. And yes, after two hours, the algorithm recognized orchid species at higher accuracy than me.
Beta testing and launch (1 day)
I had my friends and family tested the app and shared it on Facebook groups to get more users. It has been a while, now we have about 1000 active users on Android and iOS. Not bad for the start of a pet-project. Check it out for yourself!