alwaysAI Reference Applications

Starter Apps

App Description
Detector Tracker Use Object Detection and Object Tracking to follow unique objects as
they move across the frame.
Face Detector Use Object Detection to detect human faces in a real-time camera
stream.
Image Classifier Use Image Classification to classify a batch of images. The
classification labels can be changed by selecting different models.
Instance Segmentation Use Instance Segmentation to detect, segment and classify individual
objects in a real-time camera stream or a video file stream. The types
of objects detected can be changed by selecting different models.
Object Detector Use Object Detection to detect objects in a real-time camera stream.
The types of objects detected can be changed by selecting different
models.
Pose Estimator Use Pose Estimation to determine human poses in realtime. Human Pose
returns a list of key points indicating joints that can be used for
applications such as activity recognition and augmented reality.
Person ReIdentification Use Re-Identification to re-identify person from one stream into
another stream.
Semantic Segmentation VOC Perform Semantic Segmentation on a series of images using a model
trained on the Pascal VOC dataset.

Hailo Apps

App Description
Hailo Real-Time Object
Detector
This alwaysAI app performs object detection in real-time on Hailo
accelerator/Co-processor.

NVIDIA Apps

App Description
CUDA Applications This alwaysAI application set use a CUDA (Compute Unified Device
Architecture) interface which allows CNN models to execute on NVIDIA
GPUs found on Jetson devices. CUDA APIs give applications executing
on the CPU direct access to NVIDIA’s GPU’s virtual instruction set and
parallel computational elements.
NVIDIA Real-Time Object
Detector
This alwaysAI app performs object detection in real-time on NVIDIA
Jetson devices.
NVIDIA Semantic
Segmentation
This alwaysAI app performs semantic segmentation on a video clip of a
driving scene on NVIDIA Jetson devices.
Object Detector TensorRT
batch mode
Use Object Detection to detect objects in videos in batch mode. The
types of objects detected can be changed by selecting different
models.
TensorRT Applications This alwaysAI applications set uses TensorRT binaries to do the local
inferencing on a NVIDIA Jetson device, these binaries can be found in
the alwaysAI model catalog. The model will start with TRT and end
with the Jetson device name it should be run on, for example nano.
These binaries are the most efficient way to do inferencing on NVIDIA
Jetson device. Currently alwaysAI supports TensorRT binaries for
Jetson Nano, Xavier NX, and AGX Xavier.

Camera Apps

App Description
RealSense Object Detector Use Object Detection to detect objects and the RealSense camera to get
the distances in meters to those objects in real-time. The types of
objects detected can be changed by selecting different models.

Streaming Apps

App Description
Dash Interactive Streamer This application provides a base for an interactive streamer using
Plotly Dash (https://dash.plotly.com). This app includes a video
stream, which depicts object detection results, as well as a table
that updates every 5 seconds with object detection results. You can
create more complex applications by adding components.
Interactive Image Capture
App
This alwaysAI app builds off of the app found here to provide a
customized data collection server that allows the user to take snap
shots or record videos and store them for later use.
Multi-Stream Framework This application demonstrates using the multi-stream framework to
process multiple camera streams using multi-processing.
Multiple Camera Streams This alwaysAI application demonstrates how to incorporate video
streams from multiple cameras into a single app.
Simple Video Recorder This alwaysAI app records and saves video from a USB webcam or CSI
ribbon camera.
Video Streamer This alwaysAI app performs realtime object detection and streams video
and text data to a Flask-SocketIO server that can be located on
another device.
Video Streamer Using
Multiple Containers
This alwaysAI app performs realtime object detection and streams video
and text data to a Flask-SocketIO server running in another container
managed by Docker Compose.
ZMQ Video Streamer This repo has two parts: an alwaysAI computer vision app which
performs realtime object detection and streams video via ZeroMQ to a
Flask server, and the server to display the video stream in a browser.

Example Apps

App Description
Age and Gender Classifier Use two image classifiers to classify a batch of human face images by
age and gender.
Twilio Computer Vision
App
A simple computer vision app that can detect a chair, and which sends
a text message letting the user know when a chair has been detected.
April Tag Detector This repo contains a basic application that shows you how to detect
april tags using the AprilTagDetector in edgeIQ.
Barcode Detector Use Barcode Detection to detect and decode Barcode(s) in a real-time
camera stream.
Capacity Detector This application is meant to detect people from a live or recorded
video stream and determine if they are entering or exiting a location.
That info is then can be sent via a POST call to a URL endpoint for
processing.
Classifier based Image
Sorter
This app can use an image classifier to detect any number of target
labels, then sort those images into 1 of 2 folders.
Contraband Detector App This app uses object detection and employs a correlation tracker to
monitor a frame for items deemed 'contraband'. For working or learning
at home, these items may be headphones, cell phones, books, etc. We
use two object detection models in order to maximize the number of
objects we can detect given a set of freely available detection
models. You can add or remove models and alter labels to suit your
needs!
Crosswalk Object
Detection
This app performs object detection on a video of a crosswalk in
simulated real-time. The app will automatically perform inference on
the CUDA GPU on Jetson devices.
Darts Play darts with alwaysAI and the Intel RealSense depth camera!
Distance Detector This app will display the distance between two hands in inches. This
app uses a web camera as the video stream and uses reference object
metrics to approximate distance between two objects in an image.
Face Counter Use Object Detection and Correlation Tracking to count unique human
faces in the frame on a real-time camera stream.
Face Swapper Swaps the faces of people in a video stream when more than one person
is in the frame.
Facial Landmarks with
DLIB
Using DLIB to do facial detection and find landmarks.
Gesture Controlled Home
Interaction App
This app is designed to let you use your own custom gesture model to
activate voice-activated technology, such as Alexa, Google Home, or
Siri, using computer vision. After training your own gesture-detection
model, using hand signals of your choice, you can use these signals to
play audio files that give commands to smart tech.
Hacky Hour 08/06/2020 Source code for the August 6 2020 Hacky Hour! Demonstrates how a
computer vision application can be used in manufacturing to confirm
that a worker has chosen the correct component for assembly of a
product. The CV application finds the roi associated with an
illuminated LED on a tray shelve. It then checks to see if the
workers hand has picked up the correct component using a hand
detection model and overlapping rectangles algorithm between roi and
hand detection bounding box. The bounding box of hand detector turns
green when the correct component is chosen and remains red until that
occurs.
Jumping Jacks Counter This app counts jumping jacks for a single person on a real-time video
stream or a video file. The app defaults to the TensorRT engine on
NVIDIA Jetson devices, and the DNN engine elsewhere.
Kalman Tracking Hacky
Hour 05/12/2021
Source for the May 12th Hacky Hour! This app demonstrates how to use
the Kalman Tracker to track objects in motion.
License Plate Tracker App This app uses object detection and employs a centroid tracker to
monitor a frame for license plates and vehicles. Please note that the
model used in this app does not detect the content or read the
characters from a license plate. Pair this app with an OCR library to
do so.
License Plate OCR App This app uses object detection and employs a centroid tracker to
monitor a frame for license plates and vehicles and then uses an OCR
library to read the license plates. This app will work on development
machines, such as MacOS and Windows, but not on ARM 64 architectures
due to the dependency on PyTorch. Note that we have provided the model
file that EasyOCR provides at runtime to avoid model download issues.
We have only provided the necessary files for the English option. If
you would like to explore other uses of the EasyOCR library, please
see the source: https://github.com/JaidedAI/EasyOCR/tree/393c2d966aa37
160bcfdef5f55ba50daff994409. There is a link to the JaidedAI Model Hub
on the repository's README.
Classifier based Image
Sorter
This app can use any number of image classifiers to detect any number
of target labels, then sort those images into 1 of 2 folders if the
target label is detected.
Multiple Object Detectors
Sample App
This app utilizes two object detection models, with the option of
adding additional detection models. This may be helpful for including
models that comprise very different libraries. In this example, one
model detects numerous objects of small to medium size, and the other
has a more limited library but detects some larger objects, such as
airplanes, trains, and sofas. As there is some overlap between models,
for instance they both detect people, you can compare the prediction
confidences. Additionally, the output for each model appears in a
separate video frame.
Object Detection
Server/Client
Server app sets up an alwaysAI model to run on a device where images
can be sent and inferenced. The server then returns the marked-up
image to the client, which is stored in the inferenced folder.
Object Detection &
Classifier Sample App
This app enables two alwaysAI models to be used simultaneously: one to
detect facial objects, and a second to classify the detected faces in
terms of age ranges.
Package Detection System
App
This app is designed to let you use your own custom package detection
model to detect when packages arrive and when they are removed You'll
need an alwaysAI account and to have alwayAI installed:
Pedestrian Segmentation This app expands on the semantic_segmentation_cityscape starter app
to build an app that segments pedestrians and bicyclists in each frame
of a video, and performs actions based on the results. The full
tutorial can be found on the alwaysAI blog.
People Counter App This app expands on the alwaysAI face counter starter app to both
count the number of non-unique people (same person will be counted
multiple times if they exit and re-enter the frame) detected and to
display basic time metrics on those appearances.
Classify Poses with Pose
Estimation and Support
Vector Machines (SVM)
This repo contains an alwaysAI app and Jupyter Notebook to classify
poses using Pose Estimation from alwaysAI and machine learning tools
from Scikit-Learn. This tutorial will walk through training an SVM to
classify a few common yoga poses.
Posture Corrector with
Pose Estimation Example
App
This app uses pose estimation to help users correct their posture by
alerting them with a sound when they are slouching, leaning, or
tilting their head down, as well as a printed message with specific
suggestions for correcting posture. A scale variable is used to
adjust the keypoints measurements for different individuals,
accounting for greater or smaller natural distances between keypoints
used to detect poor posture.
QR Code Detector Use QR Code Detection to detect and decode QR Code(s) in a real-time
camera stream.
Object Detector and RTSP
Streamer
Use Object Detection and RTSP Server to stream Object Detection
Inference through RTSP stream. The types of objects detected can be
changed by selecting different models.
Semantic Segmentation
Cityscape
Use Semantic Segmentation to determine a class for each pixel of an
image. The classes of objects detected can be changed by selecting
different models. This particular starter application uses a model
trained on the Cityscapes Dataset. The Cityscapes Dataset focuses on
semantic understanding of urban street scenes, and is a favorite
dataset for building autonomous driving machine learning models.
Simple Object Counter Use Object Detection to count the number of each type of object in the
frame of a real-time video stream.
Virtual Green Screen with
Edge Smoothing Example
App
This app expands on an app that uses semantic segmentation to segment
out a person from background noise in a video stream and replace the
background with an image or blur it out. This app demonstrates how to
subsequently smooth segmentation boundaries. This app also
demonstrates how to separate your app configuration information into a
separate JSON file. For more details on this aspect of the app, please
see the original blog post.
Snapshot Security Camera
App
This app expands on the realtime_object_detector starter app to
build a simple security camera app that takes a picture of each new
person who enters the frame. The full tutorial can be found on the
alwaysAI blog.
Spatial AI Webinar Apps Spatial AI is the blending of machine learning inferencing with
geometric data from sensors, enabling robots, drones or autonomous
vehicles to better understand the world around them.
Temperature Tracker App This app demonstrates how to use a temperature tracking utility class
for the Raspberry Pi.
Thermal Imaging This repo contains applications that demonstrate how to use FLiR
Lepton thermal camera. The FLiR sensor uses microbolometer array that
changes resistance as its heated up. By measuring resistance the
sensor can determine the temperature of detected objects. The
sensor's firmware creates a colored image that encodes that resistance
data into heat map. The image can be processed using the same
techniques as visible light.
Vaccination Center
Assistant
A series of applications to help monitor a waiting room, log
vaccination events, and monitor a post-vaccination room, and write out
event logs to help inform vaccination center logistics.
Virtual Green Screen
Example App
This app uses semantic segmentation to segment out a person from
background noise in a video stream and replace the background with an
image or blur it out. This app builds off of a methodology for
segmenting out areas of interested, which can be found here. This app
also demonstrates how to separate your app configuration information
into a separate JSON file. For more details on this aspect of the app,
please see the original blog.
YMCA APP In this example we'll be using a simple set of cases to determine if
someone is doing a Y, M, C, or A in our image then displaying the
letter on the screen if they do creating a fun virtual experience.
YOLOX Object Detector Use Object Detection to detect objects in a real-time camera stream.
The types of objects detected can be changed by selecting different
models.