yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
Jetson AGX Thor📖
1.Get started
  • 01.Learning Route
  • 02.Getting Started Quickly
2.Jetson basic course
  • 01.Jetson board introduction
  • 02.Flashing a Pure Jetson System via SDK
  • 03.Flashing a Pure Jetson System via USB Drive
  • 04.Flashing the Jetson Bootloader using L4T
  • 05.Replacing the SSD
  • 06.Install Jetpack environment
  • 07.Backup SSD system
  • 08.Restore factory image system
  • 09.SSD expansion
  • 10.SSD Speed Test
3.Basic setting course
  • 01.Basic knowledge
  • 02.Network configuration
  • 03.SSH remote login
  • 04.VNC remote control
  • 05.Remote file transfer
  • 06.Jtop tool
  • 07.Exchange space expansion
  • 08.Use VSCode
  • 09.Use VMware
  • 10.Change screen resolution
  • 11.Virtual Desktop
  • 12.Set root user password
  • 13.Configure sudo passwordless operation
  • 14.Managing custom services
  • 15.View system version information
4.OpenCV basic course
  • 01.Image reading
  • 02.Image saving
  • 03.Image modification
  • 04.Image scaling
  • 05.Image cropping
  • 06.Image translation
  • 07.Image mirroring
  • 08.Image grayscale conversion
  • 09.Image binarization
  • 10.Image edge detection
  • 11.Add line segments
  • 12.Add rectangles
  • 13.Add circular shape
  • 14.Add ellipses
  • 15.Add polygons
  • 16.Add Text
5.Vision basic course
  • 01.USB camera preview
  • 02.Use Jupyter Lab
  • 03.Use JetCam
6.Vision advanced course
01.Environment construction
  • 01.TensorFlow
  • 02.PyTorch
  • 03.Torchvision
  • 04.Torchaudio
02.DeepStream development
  • 01.DeepStream environment
  • 02.Four types of detection(traffic)
03.YOLO26 development
  • 01.YOLO Environment Setup
  • 02.CLI Usage
  • 03.Object Detection
  • 04.Instance Segmentation
  • 05.Pose Estimation
  • 06.Image Classification
  • 07.Oriented Bounding Boxes Object Detection
  • 08.Model Conversion
  • 09.Dataset Annotation
  • 10.Model Training_Conversion
  • 11.Model Prediction
04.Mediapipe development
  • 01.Mediapipe environment
  • 02.Hand detection
  • 03.Face detection
  • 04.Face effects
  • 05.3D object recognition
  • 06.Virtual brush
  • 07.Gesture recognition
  • 08.Finger control
  • 09.Posture estimation
  • 10.Face mask
  • 11.Overall detection
  • 12.Green scene removal(Human)
05.QR code recognition
  • 01.Barcode Recognition
  • 02.QR Code Recognition
  • 03.Machine Code Recognition
  • 04.Handwritten Digit Recognition
7.Docker basic course
  • 01.Docker introduction
  • 02.Docker installation
  • 03.Docker command
  • 04.Docker usage
  • 05.Docker interaction
8.ROS2-jazzy
1.ROS2 basic course
  • 1.Introduction to ROS2
  • 2.ROS2 install Jazzy
  • 3.ROS2 development environment
  • 4.ROS2 workspace
  • 5.ROS2 function package
  • 6.ROS2 node
  • 7.ROS2 topic communication
  • 8.ROS2 service communication
  • 9.ROS2 action communication
  • 10.ROS2 custom interface message
  • 11.ROS2 parameter service case
  • 12.ROS2 meta-function package
  • 13.ROS2 distributed communication
  • 14.ROS2 DDS
  • 15.ROS2 time related API
  • 16.ROS2 common command tools
  • 17.ROS2 rviz2 use
  • 18.ROS2 rqt toolbox
  • 19.ROS2 Launch startup file configuration
  • 20.ROS2 recording and playback tool
  • 21.ROS2 URDF model
  • 22.ROS2 Gazebo simulation platform
  • 23.ROS2 TF2 coordinate transformation
2.ROS2 vision course
  • 01.Camera preview (USB)
  • 02.Camera calibration (USB)
  • 03.AR vision (USB)
9.Offline AI model course
Offline large model (Text Interaction)
  • 1.Al large model environment deployment
  • 2.Install large model dialogue platform
  • 3.Meta Al Llama3.2 model
  • 4.Alibaba Cloud Qwen3 model
  • 5.Microsoft Phi-4-mini model
  • 6.DeepSeek DeepSeek-R1 model
  • 7.Alibaba Cloud Qwen2.5v visual multimodal large model
  • 8.Google Gemma3 visual multimodal large model
  • 9.Lava visual multimodal large model
  • 10.MiniCPM-V visual multimodal large model
  • 11.Multimodal visual understand application
  • 12.Multimodal text image application
  • 13.Multimodal video analysis application
  • 14.Multi module visual position application
  • 15.Multimodal table scanning application
  • 16.Multimodal autonomous agent application
Offline large model (Voice Interaction)
  • 0.Voice interaction hardware connection (ReadMe)
  • 1.Offline speech to text (ASR)
  • 2.Offline text to speech (TTS)
  • 3.AI large model voice interaction
  • 4.Multimodal visual understand speech interaction
  • 5.Multimodal text and graphics application
  • 6.Multimodal video analysis application
  • 7.Multi module visual position application
  • 8.Multimodal table scanning application
  • 9.Multimodal autonomous proxy application
  • 10.AI large model offline voice assistant
10.Online AI model course
Online large model (Text Interaction)
  • 1.OpenRouter large model API aggregation platform
  • 2.Multimodal Video Analysis Applications
  • 3.Multimodal visual localization application
  • 4.Multimodal table scanning application
  • 5.Multimodal autonomous proxy application
Online large model (Voice Interaction)
  • 0.Voice interaction hardware connection (ReadMe)
  • 1.Online speech to text (ASR)
  • 2.Online text to speech (TTS)
  • 3.AI large model voice interaction
  • 4.Multimodal visual understand speech interaction
  • 5.Multi module visual position application
  • 6.Multimodal table scanning application
  • 7.Multimodal autonomous proxy application
  • 8.AI large model offline voice assistant
11.Generative AI Applications
12.OpenClaw Advanced Development
  • 00.OpenClaw Quick Start on Jetson Platform
  • 01.OpenClaw Installation
  • 02.OpenClaw Online Platform Deployment
  • 03.OpenClaw Local Model Deployment
  • 04.OpenClaw TUI Interaction
  • 05.OpenClaw WebChat Interaction
  • 06.OpenClaw Tools Introduction
  • 07.OpenClawGate Gateway User Manual
  • 08.OpenClaw Features Overview
  • 09.OpenClawClawHub Introduction (Skill Installation)
  • 10. OpenClaw Switching Models
  • 11.OpenClaw Application - File Management
  • 12.OpenClaw Application - Camera
  • 13.OpenClaw Application - Browser Control
  • 14.OpenClaw Application - Script Execution
  • 15.OpenClaw Application - AI Programming
  • 16.OpenClaw Application - Dedicated AI Assistant
  • 17.OpenClaw WhatsApp Plugin Application
  • 18.OpenClaw Voice Assistant
Download
  • Code
  • SystemFile
  • VM_File
  • Tools
  • Jetson boot files
Download ZIP

Welcome to Jetson AGX Thor repository

09.Dataset Annotation

Dataset Annotation

Dataset Annotation1、Dataset Collection1.1、Extract Images1.2、Dataset Paths2、Label Studio Usage2.1、Label Studio Installation2.2、Label Studio Startup2.2.1、Shared Folder Permissions2.2.2、Start Label Studio2.2.3、Access Label StudioHost MachineLocal Area NetworkFirst Use3、Dataset Annotation3.1、Create Project3.2、Project Name3.3、Import Training Set3.4、Label Settings3.5、Dataset Annotation3.6、Export Dataset3.7、Dataset Directory Structure3.8、Dataset Configuration FileReferences

For recognizing specific objects or improving object recognition accuracy, users need to train their own models, and dataset collection and annotation are indispensable parts.

1、Dataset Collection

Description: For recognition in specific scenarios, users can use a camera to record videos of objects from various angles, then extract images from the videos as training sets

1.1、Extract Images

Provide a simple example: Extract one frame image from the video every 15 frames as a dataset

​x
import cv2
import os
​
# Path to the input video file
video_file = '/home/jetson/ultralytics/ultralytics/data/yahboom_data/orange_video/orange.mkv'
​
# Path to the output folder to save the frames
output_folder = '/home/jetson/ultralytics/ultralytics/data/yahboom_data/orange_pic'
​
# Check if the output folder exists, if not, create it
if not os.path.exists(output_folder):
    os.makedirs(output_folder)
​
# Open the video file using OpenCV
cap = cv2.VideoCapture(video_file)
​
# Get the total number of frames in the video
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
​
# Get the frames per second (fps) of the video
fps = cap.get(cv2.CAP_PROP_FPS)
​
# Frame counter to keep track of the current frame number
frame_number = 0
​
# Define the interval for extracting frames (every 15th frame)
frame_interval = 15
​
# Initialize a new counter for saved frames (starting from 1)
saved_frame_number = 1
​
while True:
    ret, frame = cap.read()
    
    # If the frame is not successfully read, exit the loop
    if not ret:
        break
​
    # Save every 15th frame
    if frame_number % frame_interval == 0:
        # Format the frame number starting from 1 (e.g., 1.png, 2.png)
        image_name = f'{saved_frame_number}.png'
        image_path = os.path.join(output_folder, image_name)
​
        # Save the current frame as a PNG image
        cv2.imwrite(image_path, frame)
        print(f'Saving frame {frame_number}/{total_frames} as {image_name}')
​
        # Increment the saved frame counter
        saved_frame_number += 1
​
    # Increment the frame counter for the video
    frame_number += 1
​
# Release the video capture object
cap.release()
​
# Print message when processing is complete
print("Video processing complete! Every 15th frame saved as an image!")

1.2、Dataset Paths

Example video: /home/jetson/ultralytics/ultralytics/data/yahboom_data/orange_video

Example images: /home/jetson/ultralytics/ultralytics/data/yahboom_data/orange_pic

2、Label Studio Usage

Label Studio is an open-source data annotation platform for data annotation and annotation task management, supporting various types of data input and annotation formats.

2.1、Label Studio Installation

xxxxxxxxxx
docker pull heartexlabs/label-studio:latest

image-20241231160415366

2.2、Label Studio Startup

2.2.1、Shared Folder Permissions

Share the prepared dataset to the corresponding folder of Label Studio:

xxxxxxxxxx
sudo chmod 777 /home/jetson/ultralytics/ultralytics/data/

2.2.2、Start Label Studio

xxxxxxxxxx
sudo docker run -it -p 8080:8080 -v /home/jetson/ultralytics/ultralytics/data:/label-studio/data heartexlabs/label-studio:latest label-studio --log-level DEBUG

image-20260408105430191

Note:

If port 8080 is occupied, please modify the port mapping function, change the first 8080 in the -p parameter to 8081 or other suitable ports.

After modifying the port, access the new port address in the browser to access Label Studio, such as http://localhost:8081/

 

2.2.3、Access Label Studio

Host Machine

Jetson series development board access method, first entry requires entering username and password yourself

xxxxxxxxxx
http://localhost:8081/

image-20260408105613489

Local Area Network

Devices under the same local area network can access according to the board IP:8081

xxxxxxxxxx
http://Board IP:8081/ 
# Example: http://192.168.2.114:8081/

image-20260408110017769

First Use

First-time use requires registering and logging into an account yourself, factory-set account information (account information is fake):

xxxxxxxxxx
Account: yahboom@163.com
Password: yahboom@163.com

image-20241231173648480

image-20241231173626233

After registration is complete, the website will automatically log in:

image-20241231173724692

3、Dataset Annotation

The demonstration dataset is on the board, so access Label Studio on the board.

3.1、Create Project

image-20250102101422924

3.2、Project Name

Project name can be named arbitrarily, name it according to your training set:

image-20250102101957666

3.3、Import Training Set

Manually import the prepared dataset: Cannot import too many images at once, it is recommended to select 50-100 images each time, then import multiple times

image-20250102102239968

3.4、Label Settings

We are demonstrating orange recognition, so select "Object Detection".

image-20250102102330629

Delete built-in labels:

image-20250102110751207

Add new label:

image-20250102110916438

3.5、Dataset Annotation

Click Annotate All Tasks:

image-20250102111059058

Annotation steps: First click the label "Orange" then use the mouse to select the corresponding orange in the image, and click submit after completion to enter the next annotation

image-20250102111243857

If the selected object is not a complete orange, you can click the selected box to readjust the position of each edge:

image-20250102112923490

3.6、Export Dataset

Select YOLO format for export, the browser will automatically download a compressed package

image-20250102121400695

image-20250102121600423

3.7、Dataset Directory Structure

Directory structure corresponding to the compressed package exported by Label Studio:

xxxxxxxxxx
.
├── images
├── labels
├── classes.txt
└── notes.json

We need to separate the images and labels exported by Label Studio into train (training set) and val (validation set), with a ratio of approximately 8:2: The images and labels in both train and val need to correspond in name.

xxxxxxxxxx
.
├── classes.txt
├── notes.json
├── train
│   ├── images
│   └── labels
└── val
    ├── images
    └── labels

3.8、Dataset Configuration File

Contains paths to training and validation sets, as well as the number and names of classes.

xxxxxxxxxx
path: /home/jetson/ultralytics/ultralytics/data/yahboom_data/orange_data
train: train/images
val: val/images
​
nc: 1
​
# Classes
names:
  0: Orange

image-20250102151603883

References

https://github.com/HumanSignal/label-studio

Model Conversion
Model Training_Conversion

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文