Doggo Snap is a mobile app for Android and iOS which can be used for classifying a dog's breed from an image. It provides you with information on the breed and let's you save the dogs you've photographed so that you can have a look at them later and see where you've met them on a map. It was created using React Native. No user data is saved on a server (except in logs), all saved dogs are persisted in an on-device SQLite database.
For classifying a dog's breed with computer vision, the app calls an API (see this repo) which hosts a Deep Learning model, namely a slightly modified MobileNetV2 convolutional neural network build with PyTorch, converted to and run by ONNX.
You can download it on the Google Play Store. It's not on the Apple App Store (becaus of their audacious fee for a developer account) but feel free to contact me if you want to have the iOS build.
Check out this blog post for a more detailed description on the app, this one for a description of the machine learning model doing the image classification, and this one for how to convert the model to ONNX and e.g. transfer it from Python to JavaScript.
You start at the home screen from which you can take a picture to classify. You can also view your saved dogs in a list or on a map, and get information on all supported breeds:
When your dog's been classified, you'll see the result plus some details (temperament, weight, hight, lifespan, region of origin) about the breed on the classification/details screen:
From there, you can decide to save the dog which leads you to the save screen, where you can give the dog a name and either automatically detect your device's location or manually pick it on a map:
After saving the dog, you'll be navigated to your dog list screen where you can see all the dog's you've saved and tap them to see details about their breed and where you found them:
You can also look up all the dog's you've saved on the map screen and check out where in your neighborhood you met them. Tapping on their markers will show you their detail screens:
If you haven't collected that many dogs yourself yet but still want to get information on all the supported breeds, you can check them out at the explore-all-breeds screen and tap each breed entry to get details on the breed:
Here's a rough overview of the app's functionality in a diagram: