Code Monkey home page Code Monkey logo

cat_hipsterizer's Introduction

Cat Hipsterizer

Inspired by "Hipsterize Your Dog With Deep Learning"

result.jpg
result2.jpg

Project contains:

  1. Cat face detection with pretrained Mobilenetv2
  2. Cat facial landmarks detection with pretrained Mobilenetv2

At first, I used cat frontal face detector of OpenCV, but it looks so bad performance for most of real cat photos. So I decided up to make new model with deep learning.
Regression method is used for both face detection and landmark detection, so that model is very naive to use on real application. But it works extremely well than I expected ;)

Used Cat dataset on Kaggle for training and validation.

Cascade Model Structure

  1. Input (Full image 224x224) - Face detection model - Output (face bounding box)
  2. Input (Face image 224x224) - Facial landmarks model - Output (9 landmarks points)

Requirement

  • Python
  • Keras
  • Numpy
  • Dlib
  • OpenCV
  • Pandas

Usage

Training

python preprocess.py
python train.py
python preprocess_lmks.py
python train_lmks.py

Testing

python test.py bbs_1.h5 lmks_1.h5

Limitations

  • Detect one cat per frame
  • Powerful for frontal faces (a bit low performance for side faces)
  • Cannot detect existence, this model thinks cat must be in the picture

TODOs (for you)

  • Multiple cats detection
  • Data augmentation (flip, translation, rotation, noise...)
  • YOLO like model (class probability map)
  • Use transpose convolution layers for landmarks reconstruction (to preserve spatial information)
  • Mobile implementation
  • Train Dlib shape predictor model

cat_hipsterizer's People

Contributors

kairess avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cat_hipsterizer's Issues

Relocating key points after image resize

After using resize_img( ) function I am still getting the key points shifted like in the image below.
Is there any modification to the formula that should be used to get them in their right place?
Where is the problem?

cat

Thank you for the useful repo!

Thank you so much for your repo!

Hello Taehee Lee!

I stumbled upon your repository and it sparked my interest in using Keras. I am an iOS developer and have little Machine Learning experience. After some effort and using Google Colab I was able to convert your landmarks h5 model to a CoreML model (with coremltools) and it predicted the correct landmarks inside an iOS App of a cat face ๐ŸŽ‰!

Thank you so much for your effort and putting everything into this repo.

I want to build a snapchat like app where the cat would also be wearing glasses. Let's see how far I will come ๐Ÿ˜….

Have a great day!!

Best regards,
Denise

image
image

Are path wrong or missing folders?

Hi!

I'm just starting in image processing and downloaded your code and sorry if it's a newbie question.

When I ran preprocess.py detected two problems: the absence of CAT_00 folder and the respective dataset CAT_00.npy. Are missing these files or should I do anything before that?

Thanks and congratulations for your app.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.