Skip to content

INFINITSY/Dog-Breed-Identification

Repository files navigation

Dog_test

Introduction

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.

Demo

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. test1 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. test2 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 :)

detect.py

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

ResNet50_train_model.py

A ResNet50 model for training.

Data: training data is in /train and validation data is in /validation

ResNet50_test_model.py

Predict the class of a test image and compare it with reference images in /retrival, return top 15 images for show.

gui_final.py

A GUI for test image selection and results presenting.

Note: gui may look different due to computer resolution

Usage

  • Run gui_final.py
  • Select image for testing
  • Compute and wait for result
  • Results presenting
  • Select a new image...

About

A CNN-based dog detect and classification project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages