Cheeers! is a wine lovers community. The app lets users take photos of the wines they like, then categorize and store those entries. The app will automatically recognize labels of wine bottles already entered into its database to enable quick and easy data entry. User can also see, rate and comment the wines of their friends and request comments for wines in their own cellar.
I did the full implementation of the iPhone application and the server backend. A large challenge besides the app itself was the automatic label image recognition on the server. Once a user uploads a new label photo the server should match it against the entries in its database. I used OpenCV and custom image processing for this task.
During development we quickly came to the conclusion that interfacing OpenCV directly from Ruby (the server was done in Ruby on Rails) would prove too slow. It also consumed a very high amount of memory. I decided to implement a custom server application in C++ which asynchronously handles the whole process of processing, recognizing and categorizing label images into wine entries. This way I could offload the compute-heavy parts onto dedicated servers while keeping the regular backend- and webservers responsive.