Skip to content

akbargumbira/DogCatClassifier

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Classifying Dog or Cat using Bag Of Words Concept

This is a proof of concept to apply Bag of Words model in Natural Language Processing into classifying images, in this case to classify between dog or cat.

Dataset

The dataset is obtained from Kaggle: Dog vs Cat containing 25000 images of a dogs and cats. Each image has the label as the part of the filename.

Building Codebook

A codebook (or dictionary) can be built from all the images in the dataset with some parameters below:

  • The full path to the root directory containing all the images
  • The output file full path
  • Descriptors algorithm to obtain descriptors of all images (either SIFT or KAZE)
  • The number of vocabularies

Format:

python codebook.py -i [images_dir] -o [output_file] -a [sift|kaze] -s [vocab_size] --verbose(optional)

Example:

python codebook.py -i /home/agumbira/dev/data/dog_cat_kaggle/train -o /home/agumbira/dev/python/BOWImageClassifier/model/dog_cat_kaggle/codebook_kaze_200.pkl -a kaze -s 200 --verbose

Finding the best network model

The best network model is found by running hyperparameter_optimization .py. The search scope is defined in the space variable. 1000 network models with various parameters are run and the one with the highest ROC AUC is selected. This model then used for training.

Training

To train the network model (found by hyperparameter optimization), run python training.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published