pauldnguyen / findingwally

Finding Wally Web Application

Home Page:http://findingwally.pythonanywhere.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

findingwally

Finding Wally Web Application

URL: http://findingwally.pythonanywhere.com

A facial-recognition (image detection) web-application using a convolutional neural network to solve puzzles from the children’s picture-book series Where’s Wally.

An adaption of the work done by Tadej Magajna as a web application on the PythonAnywhere webhosting service.

Languages

Python 3.5+, JavaScript, HTML, CSS

Requirements

The images, annotations, model checkpoint, and trained model from Tadej Magajna; or alternatively, you can create separate similar images and annotations to retrain the model derived from his checkpoint, or to train a model from scratch. For simply implementing a Web application to predict Wally's location (and not training a new model), only a frozen inference graph (the trained model) is needed, and found on his repository. His images and annotations come from Valentino Constantinou.

TensorFlow Object Detection API and its dependencies for both training and prediction; TensorFlow 1.3+. Read Tadej's post about his work to get started here. A similar explination on the use of TensorFlow's Object Detection API by Dat Tran can be found here.

N.B. It does seem however, that the API has been malfunctioning for some time now. It appears to be training (in this case, a transfer learning from a pretrained model, with progressively decreasing losses as expected), but in reality, training through the Object Detection API incurs a deleterious effect on the parameters of the model (cf. the issue as described here tensorflow/models#2952). In which case, the frozen_inference_graph.py file from Tadej Magajna can be an initial substitute to get you started assembling a similar Web app.

UPDATE: It seems that as of August 1, 2018, a solution to the above issue has appeared whereby the phrase "load_all_detection_checkpoint_vars: true" is inserted into the training configuration file to copy all of the saved variables. (cf. the issue as described here tensorflow/models#4944).

To generate detection plots:

matplotlib

NumPy

PIL

Backend framework:

Django

A web hosting service; I used PythonAnywhere.com, and followed its provided procedures to set up the website.

Frontend:

Bootstrap, provided in this repository as a min file

jQuery, provided in this repository as a min file

About

Finding Wally Web Application

http://findingwally.pythonanywhere.com

License:MIT License


Languages

Language:HTML 58.0%Language:Python 36.8%Language:CSS 5.2%