Getting started with TI Jacinto 7 Edge AI - Demos - RidgeRun Demos
Getting started with TI Jacinto 7 Edge AI RidgeRun documentation is currently under development. |
RidgeRun is currently working on a few demos to show the TI Jacinto7 Edge AI capabilities. Stay tuned for more information.
Demos are under development in the following Git repository:
About the AI Demo
This demo shows how to create a multi-channel AI server with capabilities to detect user-specific objects and trigger actions based on inference results. This is a system that is typically found in “Smart City” applications.
Hardware components
- TI Jacinto 7
- Display Port cable to Monitor, up to 4K resolution with MST support
- Monitor with Display Port input
Demo Design
The different components involved were developed independently to have a modular, extensible design.
Every stage has a well defined responsibility so that it can be independently tested, modified and even replaced.
Server configuration
First thing to do is to configure the Demo with the YAML config file config.yaml. This configuration file is used to parse the necessary parameters to the different modules.
The following sections describe with detail the different sections of the YAML.
Model Params
The model parameters are used to load the neural network weigths and related artifacts. It must contain the following elements:
Parameter | Type | Description |
---|---|---|
disp_width | int | Used to scale the width of the post-processed image. As per now, it is recommended to keep it at 320. |
disp_height | int | Used to scale the height of the post-processed image. As per now, it is recommended to keep it at 240. |
model | object | Sub-object containing different configurations: - **detection** (str): The absolute path to the detection model in the file system. |
Streams
The streams section consists of a list of individual stream descriptions. Each stream represents a camera to be captured and appended to the grid display. A maximum of 8 streams is supported. Each stream description contains the following fields:
Parameter | Type | Description |
---|---|---|
id | str | A unique human-readable description. |
uri | str | A valid URI to play. Only H264 is supported at the time being. |
triggers | list | A list of valid triggers (as specified by the name in the **triggers** section. |
Filters
The filters section consists of a list of individual filter descriptions. The filter evaluates the prediction and, based on the configuration, decides if the actions should be executed or not.
Parameter | Type | Description |
---|---|---|
name | str | A unique human-readable name of the filter. |
labels | list | A list of strings representing valid classes that will trigger the filter. Depends on the used model. |
threshold | double | The minimum value that the predicted class must score in order to trigger the filter. |
Actions
The actions section consists of a list of individual action descriptions. The action is exectuted if the filter evaluates positevly to the prediction. Currently two actions are supported:
Record Event
Parameter | Type | Description |
---|---|---|
name | str | A unique human-readable name of the filter. |
type | str | For recording must be **record_event**. |
length | int | The length in seconds of the video recordings. |
location | str | The directory where video recordings should be stored. The path must exist. |
Log Event
Parameter | Type | Description |
---|---|---|
name | str | A unique human-readable name of the action. |
type | str | For recording must be **log_event**. |
location | str | The file to where the events will be logged to. |
Triggers
The triggers section consists of a list of individual trigger descriptions. A trigger combines an action and a list of filters. The rationale behind this design is to allow users to reuse filters and actions in different configurations.
The triggers are assigned to each stream individually. When a prediction is made, it is forwarded to the filters. If any of the filter is activated, the specified action will be executed.
Parameter | Type | Description |
---|---|---|
name | str | A unique human-readable name of the trigger. |
action | str | The name of a valid action as specified in the **actions** section. |
filters | str | A list of filter names as specified in the **filters** section. |