I’m a huge dog lover, like the biggest dog person you’ve ever met. And as a big dog person, the biggest problem for me is that I have no dogs at home. That’s why I decided to go to the Humane Society this summer and see how hard it would be to possibly adopt one.
Now one major thing that working on startups has kind of engrained in me is a lot of lean startup methodology, specifically when it comes to customer discovery. And its led me to always want to understand more about everything around me and how it works, not specifically looking for problems but more like stumbling across them. In the process of understanding how adoptions work, I had the opportunity to talk to 6 different staff and volunteers just casually asking them about their jobs and experiences. As I spent more time just talking to them, each of them individually spoke about different problems and pain points in the adoption process. At the end of the day, I not only walked away with a huge amount of respect for all the volunteers and staff, but also a fundamental problem shelters were facing: no one knew what types of dogs they were giving to families.
I learned that a lot of the dogs that come through my local shelter are from rural communities which many times don’t have a lot of background history associated with them. When the shelter takes dogs in from literally anywhere, they have a staff member basically “eyeball” what type of dog they are dealing with. As a result there is no way to actually know which type of dog people are adopting. Now one common solution to this could be genetic testing each dog that comes through, but at 100 dollars a genetic test for a dog its a non starter for a lot of non profits who don’t have the budget for it. Not to mention the month it would take to get the results back, during which these dogs would not be able to have a home and stuck in the shelter.
After going home I decided to do some additional research and find if this was an isolated problem. And it turns out, my local shelter is not alone at all. In fact at many shelters dogs are misclassified into wrong breeds, and the result is they take longer to get adopted or face a higher rate of returns back to the shelter.
Now one of the really amazing things about being a Cognitive Applications Technical Intern is I get to work with some of the most advanced and cutting edge technologies that run on IBM’s cloud. And when you work 40 hours a week on something that you think is really amazing and cool, your problem solving mindset does just magically switch off after your normal 9-5 job. So I came up with an interesting idea: What if instead of a human “eyeballing” what breed a dog was we had IBM Watson do it instead.
Through a combination of open source data sets I was able to build a custom machine learning model that was able to determine what guess what breed a dog was. Now one thing that really goes understated a lot of time is the amount of time you need to find getting, cleaning and optimizing the right data. I some really great learning experiences trying to do a lot of the data wrangling there and even learning how to write some scripts to automate the process.
After I built the model, I made a simple iOS app for volunteers and staff at the shelter to use it. The UI is pretty simple since this is all a MVP. But essentially you open the app, take a photo of a dog, and you get the results of what breed the model thinks it is. Right now the model I built is trained on about 20,000 dog photos and around 120 or so different breeds.
With a MVP in hand and research and customer discovery interviews done I was able to go back to my local dog shelter and propose this project I built. I made a short presentation to their leadership of the shelter which is attached below.
The leadership of the shelter loved the idea, and currently I’m in the process of making some improvements on the app and model in order to conduct a pilot program to see the actual impact this has on finding these cute amazing doggies a home.