Skip to content
This repository has been archived by the owner on Jan 22, 2021. It is now read-only.
Steve Martinelli edited this page May 17, 2018 · 10 revisions

Short Name

Build an iOS game powered by Core ML and Watson Visual Recognition

Short Description

Use Watson Visual Recognition and Core ML to create a Kitura based iOS game that has a user search for a predetermined list of objects.

Offering Type

Artificial Intelligence

Introduction

Whether you are counting cars on a road or products on a conveyer belt, there are many use cases for computer vision with video. With video as input, auto-labeling can be used to create a better classifier with less manual effort. This Code Pattern shows you how to create and use a classifier to identify objects in motion and then track the objects and count them as they enter designated regions of interest.

Author

By David Okun, Sanjeev Ghimire, and Anton McConville

Code

Demo

  • Coming soon

Video

  • Will be done after publishing

Overview

In this Code Pattern, we will create a video car counter using PowerAI Vision Video Data Platform, OpenCV and a Jupyter Notebook. We'll use a little manual labeling and a lot of auto-labeling to train an object classifier to recognize cars on a highway. We'll load another car video into a Jupyter Notebook where we'll process the individual frames and annotate the video.

We'll use our deployed model for inference to detect cars on a sample of the frames at a regular interval. We'll use OpenCV to track the cars from frame to frame in between inference. In addition to counting the cars as they are detected, we'll also count them as they cross a "finish line" for each lane and show cars per second.

When the reader has completed this Code Pattern, they will understand how to:

  • Use auto-labeling to create an object detection classifier from a video
  • Process frames of a video using a Jupyter Notebook, OpenCV, and PowerAI Vision
  • Detect objects in video frames with PowerAI Vision
  • Track objects from frame to frame with OpenCV
  • Count objects in motion as they enter a region of interest
  • Annotate a video with bounding boxes, labels and statistics

Flow

architecture

  1. Upload a video using the PowerAI Vision web UI.
  2. Use auto-labeling and train a model.
  3. Deploy the model to create a PowerAI Vision inference API.
  4. Use a Jupyter Notebook to detect, track, and count cars in a video.

Included components

  • Core ML: Is a framework that will allow integration of machine learning models into apps.
  • Kitura: Kitura is a free and open-source web framework written in Swift, developed by IBM and licensed under Apache 2.0. It’s an HTTP server and web framework for writing Swift server applications.
  • Watson Visual Recognition: Visual Recognition understands the contents of images - visual concepts tag the image, find human faces, approximate age and gender, and find similar images in a collection.

Featured technologies

  • Artificial Intelligence: Artificial intelligence can be applied to disparate solution spaces to deliver disruptive technologies.
  • Mobile: Systems of engagement are increasingly using mobile technology as the platform for delivery.

Blog

  • TBD

Links

Clone this wiki locally