All Projects → alexattia → Simpsonrecognition

alexattia / Simpsonrecognition

Detect and recognize The Simpsons characters using Keras and Faster R-CNN

Projects that are alternatives of or similar to Simpsonrecognition

Food Recipe Cnn
food image to recipe with deep convolutional neural networks.
Stars: ✭ 448 (+241.98%)
Mutual labels:  jupyter-notebook, classification, convolutional-neural-networks, recognition
Triplet Attention
Official PyTorch Implementation for "Rotate to Attend: Convolutional Triplet Attention Module." [WACV 2021]
Stars: ✭ 222 (+69.47%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks, detection
Tensorflow Book
Accompanying source code for Machine Learning with TensorFlow. Refer to the book for step-by-step explanations.
Stars: ✭ 4,448 (+3295.42%)
Mutual labels:  jupyter-notebook, classification, convolutional-neural-networks
Practical Machine Learning With Python
Master the essential skills needed to recognize and solve complex real-world problems with Machine Learning and Deep Learning by leveraging the highly popular Python Machine Learning Eco-system.
Stars: ✭ 1,868 (+1325.95%)
Mutual labels:  jupyter-notebook, classification, convolutional-neural-networks
Sru Deeplearning Workshop
دوره 12 ساعته یادگیری عمیق با چارچوب Keras
Stars: ✭ 66 (-49.62%)
Mutual labels:  jupyter-notebook, classification, convolutional-neural-networks
Keras transfer cifar10
Object classification with CIFAR-10 using transfer learning
Stars: ✭ 120 (-8.4%)
Mutual labels:  jupyter-notebook, classification, convolutional-neural-networks
Skin Cancer Image Classification
Skin cancer classification using Inceptionv3
Stars: ✭ 16 (-87.79%)
Mutual labels:  jupyter-notebook, classification, convolutional-neural-networks
Phormatics
Using A.I. and computer vision to build a virtual personal fitness trainer. (Most Startup-Viable Hack - HackNYU2018)
Stars: ✭ 79 (-39.69%)
Mutual labels:  jupyter-notebook, classification, recognition
Cs231n Convolutional Neural Networks Solutions
Assignment solutions for the CS231n course taught by Stanford on visual recognition. Spring 2017 solutions are for both deep learning frameworks: TensorFlow and PyTorch.
Stars: ✭ 110 (-16.03%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks
Shiftresnet Cifar
ResNet with Shift, Depthwise, or Convolutional Operations for CIFAR-100, CIFAR-10 on PyTorch
Stars: ✭ 112 (-14.5%)
Mutual labels:  classification, convolutional-neural-networks
Deep learning notes
a collection of my notes on deep learning
Stars: ✭ 112 (-14.5%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks
Mtcnn
MTCNN face detection implementation for TensorFlow, as a PIP package.
Stars: ✭ 1,689 (+1189.31%)
Mutual labels:  jupyter-notebook, detection
Alexnet Experiments Keras
Code examples for training AlexNet using Keras and Theano
Stars: ✭ 109 (-16.79%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks
Sigver wiwd
Learned representation for Offline Handwritten Signature Verification. Models and code to extract features from signature images.
Stars: ✭ 112 (-14.5%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks
Shot Type Classifier
Detecting cinema shot types using a ResNet-50
Stars: ✭ 109 (-16.79%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks
Traffic Signs
Building a CNN based traffic signs classifier.
Stars: ✭ 115 (-12.21%)
Mutual labels:  jupyter-notebook, classification
Sfd.pytorch
S3FD: single shot face detector in pytorch
Stars: ✭ 116 (-11.45%)
Mutual labels:  jupyter-notebook, detection
Sod
An Embedded Computer Vision & Machine Learning Library (CPU Optimized & IoT Capable)
Stars: ✭ 1,460 (+1014.5%)
Mutual labels:  convolutional-neural-networks, detection
Cinc Challenge2017
ECG classification from short single lead segments (Computing in Cardiology Challenge 2017 entry)
Stars: ✭ 112 (-14.5%)
Mutual labels:  classification, convolutional-neural-networks
Dstl unet
Dstl Satellite Imagery Feature Detection
Stars: ✭ 117 (-10.69%)
Mutual labels:  jupyter-notebook, detection

SimpsonRecognition

Training a Convolutional Neural Network to recognize The Simpson TV Show characters using Keras (TensorFlow backend).
To have more detailed explanations, see the blog articles on Medium Part 1 and Part 2. If you like it, don't hesitate to recommend it (as for the dataset on Kaggle)

Part 0 : Collecting data

This part is about collecting and labeling Simpson pictures.
Most of the pictures are from Simpson video, analyzed frame by frame.

Run python3 label_data.py into a folder with Simpson episodes (.avi format) to analyze them and label frames.
You crop each frame (left part, right part, full-frame, nothing) and then label it.

You can find the dataset on Kaggle

Part 1 : Training with Keras

The first part is training the classification model, it's described in this post.
I aim to have 1000 pictures per class (for 20 classes), unfortunately some characters are not often on screen so I have fewer pictures for those characters. As you can see on the Jupyter notebook, I benchmark two models : 4 and 6 convolutional layers neural networks. Because of the small number of pictures (approx. 1k pictures per class), I use data augmentation.
Currently, I have 96% of accuracy (F1-Score) for 18 classes.

Part 2 : Faster R-CNN

The second part is described in this Medium post.
The second part is about upgrading the deep learning model to detect and recognize characters. I have to annotate data to get bounding boxes for characters for each picture in order to train a new model : Faster R-CNN (which is based on a Region Proposal Network). As usual, the annotation text file with the bounding boxes coordinates will be released soon.
The implementation on this network on Keras is from here by Yann Henon. I edited the code : remove parts which are useless for my purpose.

Files description

  1. label_data.py : tools functions for notebooks + script to name characters from frames from .avi videos
  2. label_pointer.py : point with mouse clicks to save bounding box coordinates on annotations text file (from already labeled pictures)
  3. train.py : training simple convnet
  4. train_frcnn.py -p annotation.txt : training Faster R-CNN with data from the annotation text file
  5. test_frcnn.py -p path/test_data/ : testing Faster R-CNN

Lisa picture

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].