This is a Dog Breed Identification App. Input an image, and it will tell you the type of dog in it. 15 most similar images are shown in the meantime.
The cropped image of the original input is shown in the up-left with the predicted type. The rest are the output images that are most similar to the input.
The input is a Golden Retriever(in the up-left). The predicted type(below the input) is CORRECT. Most similar images belong to the right type of dogs, but some of them don't, e.g., Labrador.
The input is a Siberian Husky. The predicted type is CORRECT. Most similar images again belong to the same kind, yet some Malamutes are included.
Experiments show that this App can always predict the right type and most of the output images belong to the same kind of dog as the input. It does make some mistakes when two types of dogs are similar to each other, e.g., Husky vs Malamute, which is hard even for human eyes :)
A YOLO algorithm to detect and crop dog in images.
Input: origin image
Output: cropped image
Note: download yolov3.weights to this directory first
$ wget https://pjreddie.com/media/files/yolov3.weights
A ResNet50 model for training.
Data: training data is in /train
and validation data is in /validation
Predict the class of a test image and compare it with reference images in /retrival
, return top 15 images for show.
A GUI for test image selection and results presenting.
Note: gui may look different due to computer resolution
- Run gui_final.py
- Select image for testing
- Compute and wait for result
- Results presenting
- Select a new image...