Skip to content

Web Workflow

In this workflow, you will explore recording a video or capturing images using a mobile device and then upload the captured data into EdgeFirst Studio for annotation and then model training, validation, and deployment using the PC. This workflow requires the user to have signed up and logged in to EdgeFirst Studio and followed the initial steps described in the Getting Started with EdgeFirst Studio.

Capture with a Phone

The examples below will show video recording and image captures of coffee cups using a phone for training a Vision model that detects coffee cups. However, you can choose any type of objects in your dataset.

Data Usage

It is recommended to use a phone connected to a Wi-Fi network. A device connected to mobile data might be subject to intense usage when uploading files; video files or image files can be large in size. In the examples below, the video file used was ~15MB and the image files were ~2MB each.

Limited Datasets

The example below uses a small video recording and only a handful of images. While this is sufficient for demonstrating the workflow, training a model on a limited dataset will typically result in poor performance when deployed in real-world conditions that differ from the training samples.

To improve model robustness and generalization, it is recommended to collect training data across a variety of conditions, backgrounds, lighting environments, and object variations. As a general guideline, a minimum dataset size of approximately 1,000 images or video frames is recommended, although the optimal size depends on the complexity of the task.

Device UI May Vary

The video and image capture screenshots shown in this guide were taken on a Samsung smartphone. Camera app layouts, button locations, labels, and available options may differ on other devices and operating system versions. For device-specific steps, refer to your phone manufacturer documentation or device manual.

Record Video

Using a smartphone, try to record a 30 second or more video with the camera application showing various orientations of coffee cups. Typically, the video recording can be started by pressing the red circular button. The video can be stopped by pressing the same button again.

Mobile Video Capture
Mobile Video Capture

Capture Images

Furthermore, you can also capture individual images as shown below. You can take image snapshots from the camera by pressing the white circular button.

Mobile Image Capture
Mobile Image Capture

Leveraging Videos

It is recommended to use videos rather than individual images. This is because the Automatic Ground Truth Generation (AGTG) feature leverages SAM-2 with tracking information which only needs a single annotation to annotate all frames. However, individual images requires more effort by annotating each image separately.

Create Dataset

If you have a video recording or sample images for your dataset, you can create a dataset container in EdgeFirst Studio to contain your video frames or images and annotations.

Navigate to a web browser and login to EdgeFirst Studio. Once logged in to EdgeFirst Studio, navigate to your project. In this case the project name is "My First Project". Click on the "Datasets" button that is indicated in red below.

Object Detection Project
Object Detection Project

This will bring you to the Datasets Dashboard of the selected project. Create a new dataset container by clicking the "Actions" dropdown on the top right and then click the "New" button that is indicated in red.

New Dataset
New Dataset

Enter a name for the dataset and annotation container, specify the labels, and provide a dataset description in the fields shown below. The values are entirely up to you and do not need to match the example. Once all required fields have been completed, click "Create" to create the dataset.

Dataset Fields
Dataset Fields

Your created dataset will look as follows.

Created Dataset
Created Dataset

Upload Video

Video files can be uploaded into any dataset container in EdgeFirst Studio. Choose the dataset container to upload the video file. In this case, the dataset is called "Coffee Cup". Click on the dataset context menu (three dots) and click "Import".

Dataset Import Option
Dataset Import Option

This will bring you to the "Import Dataset" page.

Dataset Import
Dataset Import

Click on the drop-down that says "Import Type" and then specify "Videos" and then click "Done" as shown below.

Dataset Video Import
Dataset Video Import

Now that the import type is specified to a "Videos", click on "select files" as indicated.

Select Video File
Select Video File

On an android device, this will bring up the option to specify the location of the files.

Android Select File Options
Android Select File Options

In my current setup, I have selected "My Files" from the options above and then "Videos" which will allow me to pinpoint the location of the video I have recorded.

Android File Manager
Android File Manager

After selecting the video file, the FPS (frames per second) value is automatically set to 1 by default. You may adjust this value to match your desired frame extraction rate. When ready, click Start Import to begin importing the video.

Import Fields
Import Fields

This will start the import process. For a 30-second video, the import typically takes about 2 minutes to complete.

Once the import finishes, the number of images in the dataset should increase to reflect the newly imported frames. If the dataset does not appear to update, refresh the browser to view the latest changes.

Imported Video
Imported Video

Upload Images

HEIC is not fully supported

Apple devices capture HEIC image formats by default. This format has not been fully supported yet in EdgeFirst Studio. Please make sure to use JPEGs, JPGs, or PNGs for uploading images to EdgeFirst Studio.

Image files can be uploaded into any dataset container in EdgeFirst Studio. Choose the dataset container to upload image files. In this case, the dataset is called "Coffee Cup". Click on the dataset context menu (three dots) and select import.

Dataset Import Option
Dataset Import Option

This will bring you to the "Import Dataset" page.

Dataset Import
Dataset Import

Click on "select files". This will bring up the option to specify the location of the files.

Android Mobile Media Picker
Android Mobile Media Picker

In my current setup, I have selected "Photos & Videos" from the options above and then I have multi-selected the images I want to import by press and hold on a single image to enable multi-select. To import, I pressed "Select".

Android Multi-select Images
Android Multi-select Images

Once the image files have been selected, click on "Start Import" to start the import process.

Android Start Import Images
Android Start Import Images

The progress for the image import will be shown.

Image Import Progress
Image Import Progress

Once it completes, you should see the number of images in the dataset increase by the amount of selected images. If you do not see any changes, refresh your browser.

Imported Images
Imported Images

Next view the gallery of the dataset to confirm all the captured data has been uploaded. You should see the imported video file and images in the gallery. Note that videos appear as sequences with a play button overlay on the preview thumbnail.

Coffee Cup Gallery
Coffee Cup Gallery

Now that you have imported captured images or videos into EdgeFirst Studio you can now start annotating your data as shown in the next section below.

Annotate Dataset

Now that you have a dataset in your project, you can start annotating the dataset. This will briefly show the steps for annotating the dataset, but for an in depth tutorial on the annotation process, please see Dataset Annotations.

To annotate a dataset, first create an annotation set on the dataset card.

Annotation Set
Annotation Set

Provide the name of the new annotation set and its description

Annotation Set Specifiers
Annotation Set Specifiers

A new annotation set is now created called "new-annotations".

New Annotation Set
New Annotation Set

Next, open the dataset gallery, by clicking on the image preview of the dataset card.

Coffee Cup Gallery
Coffee Cup Gallery

The dataset will contain sequences (video) and images. Click on any sequence card to start annotating sequences.

On the top navbar, switch to the annotation set you created.

Switch Annotation Set
Switch Annotation Set

Start the AGTG server by clicking on the "AI Segment Tool" and follow the prompts as indicated.

Auto Segment Mode
Auto Segment Mode

Go ahead and launch the AGTG server. Please allow ~5mins for the server to initialize.

AGTG Server Did Not Start

If the AGTG server has not started after 5 minutes, refresh your browser and click the AI Segment Tool button again.

AGTG Server
AGTG Server

Once the AGTG server has started, go ahead and annotate the starting frame. Once the starting frame has been annotated, go ahead and propagate the annotations throughout the rest of the frames.

AGTG Preview
AGTG Initial Prompts
AGTG Initial Prompts

Once the propagation completes, click "Save Annotations" to save the propagated annotations.

Propagation Completed
Propagation Completed

Audit Annotations

Run the video playback to browse through the generated annotations and verify that the generated annotations are correct.

If an annotation was missed, you can quickly add the annotation using the same process and click "Save AIGT Annotations" as shown.

Add Missed Annotations

For objects that were improperly annotated, you can remove annotations. For annotations that require minor adjustments, EdgeFirst Studio has the features for adjusting annotations. Please click on the links as provided for further instructions on each of these features.

Repeat the steps for all the sequences in the dataset. You can go back to the dataset sequences by pressing the back button on the top left corner.

AGTG Server
AGTG Server

For the case of individual images, the same steps apply except there is no propagation step. You can still use the AGTG feature to quickly annotate images as shown in Add 2D annotations.

Split Dataset

Partitioning the dataset is crucial in reserving dataset portions used for training and portions used for validation to assess the performance of the model. In EdgeFirst Studio, the partitions are 80% towards training and 20% towards validation. This operation randomly shuffles the data prior to assigning them to the specified groups.

Warning

The dataset needs to be re-split whenever new sample images or frames are added to the dataset. Newly added samples are not automatically added to any group that already exists.

Consider the following dataset without any groups reserved.

No Groups
No Groups

To create the dataset groups, click on the "+" button in the "Groups" field.

Add Groups
Add Groups

This will open a new dialog to specify the percentages of the partition belonging to the "Training" group or "Validation" group. By default 80% of the samples will be dedicated to training and 20% remaining will be dedicated towards the validation samples.

Groups Field
Groups Field

Once the groups are specified, click "Split" to create the groups. This will automatically divide the samples in the dataset based on the percentages of each group specified.

Dataset Groups
Dataset Groups

Before a dataset can be used for training, it must be tagged. To preserve its current state, assign a version tag to the dataset.

Click on the dataset options at the top right of the dataset card (three vertical dots). Then click the "History" button.

Tag Dataset Options
Tag Dataset Options

Add a new tagged version of the dataset by clicking the + green button on the right of the page as shown.

Tag Dataset Button
Tag Dataset Button

Specify the tag version and tag description. Click "Create Tag" to tag the dataset.

Tag Dataset Options
Tag Dataset Options

The new dataset tag will appear under "Version History" of this page. You can go back to the dataset card by clicking the "Back to Datasets" button.

Back to Datasets Button
Back to Datasets Button

Train Vision Model

Now that your dataset is fully annotated, versioned, and split into training and validation partitions, you are ready to begin training your model. This will briefly show the steps for training a model, but for an in depth tutorial, please see Training Vision Models.

Navigate back to the "Projects" page. You can go back to the "Projects" page by clicking the Apps Menu waffle button on the top right of the Navigation bar. Click the first selection to take you to the "Projects page".

Go to Projects Page
Go to Projects Page

From the "Projects" page, click on "Model Experiments" of your project.

Model Experiments Page
Model Experiments Page

Create a new experiment by clicking "New Experiment" on the top right corner. Enter the name and the description of this experiment. Click "Create New Experiment".

Model Experiments Page
Model Experiments Page

Navigate to the "Training Sessions".

Training Sessions
Training Sessions

Create a new training session by clicking the "Actions" dropdown menu on the top right of the page and then click the "+ New" button.

New Session Button
New Session Button

Follow the settings indicated and keep the rest of the settings default. Click "Start Session" to start the training session.

Start Training Session
Start Training Session

InsufficientInstanceCapacity

InsufficientInstanceCapacity Error

If you see this error after starting your training session, retry creating the session. This can happen when AWS reports that no EC2 instances are currently available to launch; the current workaround is to retry.

The session progress will be shown like the following below.

Training Session Progress
Training Session Progress

Once the session is complete, the session card will appear like the following.

Completed Session
Completed Session

Click the training session card for more information.

Training Details
Training Details

The trained models will be listed under the "Artifacts" tab. The download button next to these artifacts will download the artifacts to your machine.

Model Artifacts
Model Artifacts

Validate Vision Model

Now that you have trained a model, you can validate its performance. The purpose of validation is to determine whether the selected model meets the performance requirements before deployment. EdgeFirst Studio offers two validation paths depending on your goal:

Path Where it runs Supported formats
Cloud Validation (this guide) EdgeFirst Studio EC2 ONNX, Keras, TFLite
On-Target Profiling Your edge platform All converted formats (.tflite, .hef, .dvm, .engine)

Validating on target hardware?

Cloud validation only supports ONNX, Keras, and TFLite artifacts. If you want to measure real inference latency and accuracy on your target device — including NPU-compiled formats like Neutron, Hailo, Ara2, or TensorRT — use the EdgeFirst Profiler.

Cloud Validation

If you haven't already, click on the training session card for more information.

Training Details
Training Details

On the top right corner of the page, click on the "validate" button as indicated.

Validate Button
Validate Button

Enter a name for the validation session, then select the model and dataset to use for validation.

Under Model Selection, choose an ONNX, Keras, or TFLite artifact — these are the formats supported by cloud validation.

For this example, all remaining settings were left at their default values. When you are ready, click Start Session at the bottom of the page to begin the validation process.

Start Validation Session
Start Validation Session

InsufficientInstanceCapacity

InsufficientInstanceCapacity Error

If you see this error after starting your validation session, retry creating the session. This can happen when AWS reports that no EC2 instances are currently available to launch; the current workaround is to retry.

Go to the created validation session by first going back to the "Model Experiments" page.

Go to Model Experiments
Go to Model Experiments

Next, click the validation sessions of the model experiments.

Validation Sessions
Validation Sessions

The validation session progress will appear in the "Validation" page as shown below.

Validation Progress
Validation Progress

Once the session is complete, the session card will appear like the following. To view the validation metrics, click the validation charts button as indicated.

Completed Session
Completed Session

The validation metrics should appear like the following. For more information, please see the Validation Metrics section.

EdgeFirst Studio — validation metrics dashboard on a completed session: mAP, AP/AR breakdowns, confusion matrices, PR curves
EdgeFirst Studio — validation metrics dashboard on a completed session: mAP, AP/AR breakdowns, confusion matrices, PR curves

You can navigate back to the training session by clicking on the "Training Session" link under the "Session" tab.

Go Back to the Training Session
Go Back to the Training Session

Deploy the Model

Once you have validated your trained model, you can deploy the model in the browser using EdgeFirst Studio. You can follow these steps either on a PC or a mobile device connected to EdgeFirst Studio in a browser. Please note that the browser will use the camera on your device to run model inference.

ONNX models only

Live browser-based model running only supports ONNX format. To validate or profile models in other formats (TFLite, Neutron, Hailo, TensorRT, etc.) on real hardware, use the EdgeFirst Profiler.

From the training session card, you can run the model for inference by clicking the "Run Model" button on the top right of the page.

Training Session Details (Run Model button)
Training Session Details (Run Model button)

You will be given the option for either live inference or inference from a file upload. Go ahead and demo the live inference feed by clicking the "Live" option.

Live Inference Option
Live Inference Option

You should now see the live inference feed on your browser running the trained model.

Live Inference
Live Inference

You can also find more examples of deploying the model across different platforms. Here is a checklist of supported devices. We support validation on specific targets and live video inference with links provided below.

Platform On Target Validation Live Video In Development
EdgeFirst Studio
PC / Linux
Mac/MacOS
Maivin
Raivin Fusion ✅ (on target validation)
i.MX 8M Plus EVK ✅ (native runner)
i.MX 95 EVK ✅ (native runner)
NVIDIA Jetson Orin ✅ (native runner)
Raspberry Pi ✅ (native runner)

Additional Platforms

Certain platforms are still under development and support for platforms beyond these listed will be available soon. Let us know which platform you'd like to see supported next!

Next Steps

Have a target device? Check out the Hardware Persona Workflows to run through the MLOps process on your device.