walteryu / trashspotting

Trashspotting - Image Recognition Framework Evaluation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Trashspotting - Image Recognition Framework Evaluation

Collection of Tutorials to Evaluate Image Recognition Models

Purpose

The purpose of this project is to evaluate image recognition models for litter detection in California. Public litter has large environmental, sustainability and livability impacts in California. As a result, this project seeks to help address the issue with deep learning.

Implementation (In Progress)

Project implementation used the technologies listed below and includes the necessary files and datasets to deploy the model:

  1. Microsoft Custom Vision
  2. Google TensorFlow
  3. Google Colaboratory
  4. TensorFlow Object Detection API
  5. Docker - TensorFlow Image
  6. Jupyter Notebook

Each major tutorial is organized into its own notebook module and cited accordingly; also included are annotated Google Street View images with CA highway litter for model training/testing.

TensorFlow modules are intended to run in this Colaboratory Notebook, so clone the notebook to your Google Drive account and paste desired module to run it.

Best Practices

Microsoft Custom Vision was the easiest to use of all tools; in addition, runtime was fast and results were accurate with fewer training images. Custom Vision models should be created from the project dashboard; testing should be done with the Developer API.

TensorFlow requires a good amount of setup and configuration, so the tools listed below are recommended to make it more approachable and easier to build models:

  1. Colaboratory - Free Jupyter Notebook environment from Google specialized for TensorFlow; specifically, Google provides free GPU-enabled notebooks!
  2. Docker - TensorFlow loads up in Jupyter Notebook; saves time in local installation of all modules and dependencies.
  3. Keras - Example tutorial demonstrating image recognition with Keras and TensorFlow.
  4. Jupyter Notebook - Example tutorial demonstrating notebook setup with Keras and TensorFlow.
  5. Anaconda - Example tutorial shows how to install Jupyter Notebook with the Anaconda package manager.

Installation

Clone Github repository, then run as follows:

Custom Vision: Files are located in the custom_vision directory; open the example.py file and add your user keys. Next, follow instructions in the Microsoft tutorial link to run the example script locally.

TensorFlow: Run locally or with Google Colaboratory. Local installation will require TensorFlow and all dependencies; as a result, Colaboratory or Docker image are highly recommended.

Initial Results

Custom Vision provided promising results from ~50 training images from Google Street View with ~80% accuracy; as a result, it is the preferred choice due to ease of use and model accuracy.

TensorFlow results are shared in this Colaboratory Notebook and were developed using a Google TensorFlow template for object detection. It uses the R-CNN/Inception ResNet algorithm to analyze publicly available photos and Google Street View imagery with object detection.

Conclusion

Custom Vision is the preferred choice the following reasons:

  1. Free trial version with Microsoft accounts.
  2. Easy to use; platform provide easy way to annotate and test images.
  3. Easy to setup; both the website and developer SDK were easy to use.
  4. Trained models are easy to share as data endpoint when ready.
  5. Platform is stable which will minimize break changes in the future.

Citations - Tutorials and Code Repositories

Preferred Choice: Microsoft Custom Vision
Module 2: Custom Model in Colab - Medium Article
Module 2: Custom Model in Colab - Github
Module 3: Toy Detector - Medium Article
Module 3: Toy Detector - Medium Article
Module 4: KAB Litter Detection Algorithm - Github
Module 5: KAB Litter Detection Algorithm - Colab Notebook
Module 6: Chess Object Detector - O'Reilly Media
Module 6: Chess Object Detector - Github
Module 7: Chess Object Detector - Docker Script
Module 8: Raccoon Dataset - Medium Article
Module 8: Raccoon Dataset - Github
Module 9: Millennium Falcon Detector - Medium Article
Module 9: Millennium Falcon Detector - Github
Module 10: Image AI - Medium Article
Module 10: Image AI - Github
Module 11: RetinaNet with Keras - Github
Module 12: Mask R-CNN with Keras - Article
Module 12: Mask R-CNN with Keras - Github
Module 13: Innovation Station Idea Entry
Module 14: Hedgehog Dataset - Medium Article
Module 14: Hedgehog Dataset - Github
Module 15: Google Object Detection Tutorial

About

Trashspotting - Image Recognition Framework Evaluation


Languages

Language:Jupyter Notebook 99.8%Language:Shell 0.1%Language:Python 0.0%