All Projects → penny4860 → Yolo Digit Detector

penny4860 / Yolo Digit Detector

Licence: mit
Implemented digit detector in natural scene using resnet50 and Yolo-v2. I used SVHN as the training set, and implemented it using tensorflow and keras.

Projects that are alternatives of or similar to Yolo Digit Detector

Coursera
These are my learning exercices from Coursera
Stars: ✭ 203 (-0.98%)
Mutual labels:  jupyter-notebook
Machine Learning For Finance
Machine Learning for finance and investment introduction
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
Python For Data Science
A collection of Jupyter Notebooks for learning Python for Data Science.
Stars: ✭ 205 (+0%)
Mutual labels:  jupyter-notebook
Ddad
Dense Depth for Autonomous Driving (DDAD) dataset.
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
Ten Rules Jupyter
Ten Simple Rules for Writing and Sharing Computational Analyses in Jupyter Notebooks
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
Mosquito
Trading Bot with focus on Evolutionary Algorithms and Machine Learning
Stars: ✭ 201 (-1.95%)
Mutual labels:  jupyter-notebook
Rotnet
Stars: ✭ 202 (-1.46%)
Mutual labels:  jupyter-notebook
Pytorch Vq Vae
PyTorch implementation of VQ-VAE by Aäron van den Oord et al.
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
X2face
Pytorch code for ECCV 2018 paper
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
Udemy Machine Learning
Notebooks for Course
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
Pytorch graph Rel
A PyTorch implementation of GraphRel
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
Tensorflow2 Deep Reinforcement Learning
Code accompanying the blog post "Deep Reinforcement Learning with TensorFlow 2.1"
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
Raspberrypi Facedetection Mtcnn Caffe With Motion
MTCNN with Motion Detection, on Raspberry Pi with Love
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
Clandmark
Open Source Landmarking Library
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook
Unsupervisedscalablerepresentationlearningtimeseries
Unsupervised Scalable Representation Learning for Multivariate Time Series: Experiments
Stars: ✭ 205 (+0%)
Mutual labels:  jupyter-notebook
Google Earth Engine Python Examples
Various examples for Google Earth Engine in Python using Jupyter Notebook
Stars: ✭ 203 (-0.98%)
Mutual labels:  jupyter-notebook
Aind Nlp
Coding exercises for the Natural Language Processing concentration, part of Udacity's AIND program.
Stars: ✭ 202 (-1.46%)
Mutual labels:  jupyter-notebook
Spacy Ru
Russian language models for spaCy
Stars: ✭ 205 (+0%)
Mutual labels:  jupyter-notebook
Multihopkg
Multi-hop knowledge graph reasoning learned via policy gradient with reward shaping and action dropout
Stars: ✭ 202 (-1.46%)
Mutual labels:  jupyter-notebook
Emoji2vec
emoji2vec: Learning Emoji Representations from their Description
Stars: ✭ 204 (-0.49%)
Mutual labels:  jupyter-notebook

Build Status codecov

SVHN yolo-v2 digit detector

I have implemented a digit detector that applies yolo-v2 to svhn dataset.

Usage for python code

0. Requirement

  • python 3.6
  • tensorflow 1.14.0
  • keras 2.1.1
  • opencv 3.3.0
  • Etc.

I recommend that you create and use an anaconda env that is independent of your project. You can create anaconda env for this project by following these simple steps. This process has been verified on Windows 10 and ubuntu 16.04.

$ conda create -n yolo python=3.6
$ activate yolo # in linux "source activate yolo"
(yolo) $ pip install -r requirements.txt
(yolo) $ pip install -e .

1. Digit Detection using pretrained weight file

In this project, the pretrained weight file is stored in weights.h5.

  • Example code for predicting a digit region in a natural image is described in detection_example.ipynb.
  • Training set evaluation (1000-images) is as follows:
    • fscore / precision / recall: 0.799, 0.791, 0.807

2. Training from scratch

This project provides a way to train digit detector from scratch. If you follow the command below, you can build a digit detector with just two images.

  • First, train all layers through the following command.
    • project/root> python train.py -c configs/from_scratch.json
  • Next, fine tune only the last layer through the following command.
    • project/root> python train.py -c configs/from_scratch2.json
  • Finally, evaluate trained digit detector.
    • project/root> python evaluate.py -c configs/from_scratch.json -w svhn/weights.h5
    • The evaluation results are output in the following manner.
      • {'fscore': 1.0, 'precision': 1.0, 'recall': 1.0}
    • The prediction result images are saved in the project/detected directory.

Now you can add more images to train a digit detector with good generalization performance.

3. SVHN dataset in Pascal Voc annotation format

In this project, I use pascal voc format as annotation information to train object detector. An annotation file of this format can be downloaded from svhn-voc-annotation-format.

Other Results

1. Raccoon dataset : https://github.com/experiencor/raccoon_dataset

  • pretrained weight file is stored at raccoon
  • training set evaluation (160-images)
    • fscore / precision / recall: 0.937, 0.963, 0.913
  • test set evaluation (40-images)
    • fscore / precision / recall: 0.631, 0.75, 0.545

Copyright

  • See LICENSE for details.
  • This project started at basic-yolo-keras. I refactored the source code structure of basic-yolo-keras and added the CI test. I also applied the SVHN dataset to implement the digit detector. Thanks to the Huynh Ngoc Anh for providing a good project as open source.

See Also

If you are interested in advanced digit detection algorithm, please refer to the following projects. The following projects can be more stable training than the algorithm of this project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].