YOLO Module API Manual#
Overview#
This manual is intended to guide developers in using the YOLO module to deploy and run models trained and converted with YOLOv5, YOLOv8, and YOLO11. The models support three types of tasks: classification, detection, and segmentation. It helps users quickly interface with the YOLO source code and deploy the trained models on the K230. For YOLO usage examples, refer to the document: yolo_battle
API Introduction#
YOLOv5 Class#
Constructor#
Description
The encapsulated YOLOv5 module constructor, initializes the YOLOv5 type to obtain a YOLOv5 instance.
Syntax
from libs.YOLO import YOLOv5
yolo=YOLOv5(task_type="classify",mode="image",kmodel_path="yolov5_det.kmodel",labels=["apple","banana","orange"],rgb888p_size=[1280,720],model_input_size=[320,320],conf_thresh=0.5,nms_thresh=0.25,max_boxes_num=50,debug_mode=0)
Parameters
Parameter Name |
Description |
Notes |
Type |
|---|---|---|---|
task_type |
Task type |
Supports three task types, options are ‘classify’/’detect’/’segment’; |
str |
mode |
Inference mode |
Supports two inference modes, options are ‘image’/’video’, ‘image’ means inferring an image, ‘video’ means inferring a real-time video stream captured by the camera; |
str |
kmodel_path |
kmodel path |
Path of the kmodel copied to the development board; |
str |
labels |
Class label list |
Label names for different categories; |
list[str] |
rgb888p_size |
Inference frame resolution |
Resolution of the current inference frame, such as [1920,1080], [1280,720], [640,640]; |
list[int] |
model_input_size |
Model input resolution |
Input resolution used when training the YOLOv5 model, such as [224,224], [320,320], [640,640]; |
list[int] |
display_size |
Display resolution |
Set when the inference mode is ‘video’, supports hdmi([1920,1080]) and lcd([800,480]); |
list[int] |
conf_thresh |
Confidence threshold |
Class confidence threshold for classification tasks, object confidence threshold for detection and segmentation tasks, e.g., 0.5; |
float [0~1] |
nms_thresh |
nms threshold |
Non-maximum suppression threshold, required for detection and segmentation tasks; |
float [0~1] |
mask_thresh |
mask threshold |
Binarization threshold for segmenting objects in the detection box during segmentation tasks; |
float [0~1] |
max_boxes_num |
Maximum number of detection boxes |
Maximum number of detection boxes allowed to be returned in a single image frame; |
int |
debug_mode |
Debug mode |
Whether the timing function is enabled, options 0/1, 0 means no timing, 1 means timing; |
int [0/1] |
Return Value
Return Value |
Description |
|---|---|
YOLOv5 |
YOLOv5 instance |
config_preprocess#
Description
YOLOv5 preprocessing configuration function.
Syntax
yolo.config_preprocess()
Parameters
Parameter Name |
Description |
Input / Output |
Notes |
|---|---|---|---|
None |
Return Value
Return Value |
Description |
|---|---|
None |
run#
Description
Infer one frame of image, return the inference result for use by the draw_result method. The classification task returns the class index and score, the detection task returns a list of detection box positions, scores, and class indices, and the segmentation task returns the mask result and a list of detection box positions, scores, and class indices.
Syntax
res=yolo.run(img)
Parameters
Parameter Name |
Description |
Input / Output |
Notes |
|---|---|---|---|
img |
The image to be inferred in ulab.numpy.ndarray format, or a frame of image obtained from the video stream through |
Input |
Return Value
Return Value |
Description |
|---|---|
res |
Model post-processing result, the return value differs for different tasks. The classification task returns the class index and score, the detection task returns a list of detection box positions, scores, and class indices, and the segmentation task returns the mask result and a list of detection box positions, scores, and class indices. |
draw_result#
Description
Draws the YOLOv5 inference result on the screen or image.
Syntax
yolo.draw_result(res,img_ori)
Parameters
Parameter Name |
Description |
Input / Output |
Notes |
|---|---|---|---|
res |
Inference result of |
Input |
|
img_ori |
Image instance to be drawn |
Input |
From |
Return Value
Return Value |
Description |
|---|---|
None |
Example Program#
The following shows an example program for the YOLOv5 detection task:
from libs.YOLO import YOLOv5
from libs.Utils import *
import os,sys,gc
import ulab.numpy as np
import image
if __name__=="__main__":
# This is only an example. For custom scenarios, please modify it to your own test image, model path, label name, and model input size
img_path="/sdcard/examples/utils/test_fruit.jpg"
kmodel_path="/sdcard/examples/kmodel/fruit_det_yolov5n_320.kmodel"
labels = ["apple","banana","orange"]
model_input_size=[320,320]
confidence_threshold = 0.5
nms_threshold=0.45
img,img_ori=read_image(img_path)
rgb888p_size=[img.shape[2],img.shape[1]]
# Initialize YOLOv5 instance
yolo=YOLOv5(task_type="detect",mode="image",kmodel_path=kmodel_path,labels=labels,rgb888p_size=rgb888p_size,model_input_size=model_input_size,conf_thresh=confidence_threshold,nms_thresh=nms_threshold,max_boxes_num=50,debug_mode=0)
yolo.config_preprocess()
res=yolo.run(img)
yolo.draw_result(res,img_ori)
yolo.deinit()
gc.collect()
The above code shows the code for performing image inference using YOLOv5.
from libs.PipeLine import PipeLine
from libs.YOLO import YOLOv5
from libs.Utils import *
import os,sys,gc
import ulab.numpy as np
import image
if __name__=="__main__":
# This is only an example. For custom scenarios, please modify it to your own model path, label name, and model input size
kmodel_path="/sdcard/examples/kmodel/fruit_det_yolov5n_320.kmodel"
labels = ["apple","banana","orange"]
model_input_size=[320,320]
# Add display mode, default hdmi, options are hdmi/lcd/lt9611/st7701/hx8399, where hdmi defaults to lt9611 with resolution 1920*1080; lcd defaults to st7701 with resolution 800*480
display_mode="lcd"
rgb888p_size=[640,360]
confidence_threshold = 0.8
nms_threshold=0.45
pl=PipeLine(rgb888p_size=rgb888p_size,display_mode=display_mode)
pl.create()
display_size=pl.get_display_size()
# Initialize YOLOv5 instance
yolo=YOLOv5(task_type="detect",mode="video",kmodel_path=kmodel_path,labels=labels,rgb888p_size=rgb888p_size,model_input_size=model_input_size,display_size=display_size,conf_thresh=confidence_threshold,nms_thresh=nms_threshold,max_boxes_num=50,debug_mode=0)
yolo.config_preprocess()
while True:
with ScopedTiming("total",1):
img=pl.get_frame()
res=yolo.run(img)
yolo.draw_result(res,pl.osd_img)
pl.show_image()
gc.collect()
yolo.deinit()
pl.destroy()
The above code shows the code for performing video inference using YOLOv5.
YOLOv8 Class#
Constructor#
Description
The encapsulated YOLOv8 module constructor, initializes the YOLOv8 type to obtain a YOLOv8 instance.
Syntax
from libs.YOLO import YOLOv8
yolo=YOLOv8(task_type="classify",mode="image",kmodel_path="yolov8_det.kmodel",labels=["apple","banana","orange"],rgb888p_size=[1280,720],model_input_size=[320,320],conf_thresh=0.5,nms_thresh=0.25,max_boxes_num=50,debug_mode=0)
Parameters
Parameter Name |
Description |
Description |
Type |
|---|---|---|---|
task_type |
Task type |
Supports four types of tasks, optional values are ‘classify’/’detect’/’segment’/’obb’; |
str |
mode |
Inference mode |
Supports two inference modes, optional values are ‘image’/’video’, ‘image’ means inferring an image, ‘video’ means inferring a real-time video stream captured by the camera; |
str |
kmodel_path |
kmodel path |
The path of the kmodel copied to the development board; |
str |
labels |
Class label list |
Label names for different classes; |
list[str] |
rgb888p_size |
Inference frame resolution |
The resolution of the current inference frame, such as [1920,1080], [1280,720], [640,640]; |
list[int] |
model_input_size |
Model input resolution |
The input resolution when training the YOLOv8 model, such as [224,224], [320,320], [640,640]; |
list[int] |
display_size |
Display resolution |
Set when the inference mode is ‘video’, supports hdmi([1920,1080]) and lcd([800,480]); |
list[int] |
conf_thresh |
Confidence threshold |
Class confidence threshold for classification tasks, object confidence threshold for detection and segmentation tasks, such as 0.5; |
float [0~1] |
nms_thresh |
nms threshold |
Non-maximum suppression threshold, required for detection and segmentation tasks; |
float [0~1] |
mask_thresh |
mask threshold |
The binarization threshold for segmenting objects in the detection box in the segmentation task; |
float [0~1] |
max_boxes_num |
Maximum number of detection boxes |
The maximum number of detection boxes allowed to be returned in one frame of image; |
int |
kp_num |
Number of keypoints |
The number of keypoints in the keypoint detection task; |
int |
kp_dim |
Keypoint dimension |
The dimension of keypoints in the keypoint detection task, only 2 and 3 are supported, determined by the trained model; |
int【2/3】 |
debug_mode |
Debug mode |
Whether the timing function is enabled, optional values are 0/1, 0 means no timing, 1 means timing; |
int [0/1] |
Return Value
Return Value |
Description |
|---|---|
YOLOv8 |
YOLOv8 instance |
config_preprocess#
Description
YOLOv8 preprocessing configuration function.
Syntax
yolo.config_preprocess()
Parameters
Parameter Name |
Description |
Input / Output |
Description |
|---|---|---|---|
None |
Return Value
Return Value |
Description |
|---|---|
None |
run#
Description
Infer one frame of image, return the inference result for use by the draw_result method. The classification task returns the class index and score, the detection task returns a list of detection box positions, scores, and class indices, the segmentation task returns the mask result and a list of detection box positions, scores, and class indices, the rotated object detection returns a list of the four point coordinates of the rotated detection box, and the keypoint detection returns the detection box position, class index, score, and keypoint list.
Syntax
res=yolo.run(img)
Parameters
Parameter Name |
Description |
Input / Output |
Description |
|---|---|---|---|
img |
The image to be inferred in the format of ulab.numpy.ndarray, or a frame of image obtained from the video stream through |
Input |
Return Value
Return Value |
Description |
|---|---|
res |
Model post-processing result, the return value varies for different tasks. The classification task returns the class index and score, the detection task returns a list of detection box positions, scores, and class indices, the segmentation task returns the mask result and a list of detection box positions, scores, and class indices, the rotated object detection returns a list of the four point coordinates of the rotated detection box, and the keypoint detection returns the detection box position, class index, score, and keypoint list. |
draw_result#
Description
Draws the YOLOv8 inference result on the screen or image.
Syntax
yolo.draw_result(res,img_ori)
Parameters
Parameter Name |
Description |
Input / Output |
Description |
|---|---|---|---|
res |
The inference result of |
Input |
|
img_ori |
The Image instance to be drawn |
Input |
From |
Return Value
Return Value |
Description |
|---|---|
None |
Example Program#
The following is an example program for the YOLOv8 classification task:
from libs.YOLO import YOLOv8
from libs.Utils import *
import os,sys,gc
import ulab.numpy as np
import image
if __name__=="__main__":
# This is only an example, please modify it to your own test image, model path, label name, and model input size for custom scenarios
img_path="/sdcard/examples/utils/test_fruit.jpg"
kmodel_path="/sdcard/examples/kmodel/fruit_det_yolov8n_320.kmodel"
labels = ["apple","banana","orange"]
model_input_size=[320,320]
confidence_threshold = 0.5
nms_threshold=0.45
img,img_ori=read_image(img_path)
rgb888p_size=[img.shape[2],img.shape[1]]
# Initialize the YOLOv8 instance
yolo=YOLOv8(task_type="detect",mode="image",kmodel_path=kmodel_path,labels=labels,rgb888p_size=rgb888p_size,model_input_size=model_input_size,conf_thresh=confidence_threshold,nms_thresh=nms_threshold,max_boxes_num=50,debug_mode=0)
yolo.config_preprocess()
res=yolo.run(img)
yolo.draw_result(res,img_ori)
yolo.deinit()
gc.collect()
The above code gives an example of using YOLOv8 for image inference.
from libs.PipeLine import PipeLine
from libs.YOLO import YOLOv8
from libs.Utils import *
import os,sys,gc
import ulab.numpy as np
import image
if __name__=="__main__":
# This is only an example, please modify it to your own model path, label name, and model input size for custom scenarios
kmodel_path="/sdcard/examples/kmodel/fruit_det_yolov8n_320.kmodel"
labels = ["apple","banana","orange"]
model_input_size=[320,320]
# Add display mode, default is hdmi, optional hdmi/lcd/lt9611/st7701/hx8399, where hdmi defaults to lt9611, resolution 1920*1080; lcd defaults to st7701, resolution 800*480
display_mode="lcd"
rgb888p_size=[640,360]
confidence_threshold = 0.5
nms_threshold=0.45
# Initialize PipeLine
pl=PipeLine(rgb888p_size=rgb888p_size,display_mode=display_mode)
pl.create()
display_size=pl.get_display_size()
# Initialize the YOLOv8 instance
yolo=YOLOv8(task_type="detect",mode="video",kmodel_path=kmodel_path,labels=labels,rgb888p_size=rgb888p_size,model_input_size=model_input_size,display_size=display_size,conf_thresh=confidence_threshold,nms_thresh=nms_threshold,max_boxes_num=50,debug_mode=0)
yolo.config_preprocess()
while True:
with ScopedTiming("total",1):
# Inference frame by frame
img=pl.get_frame()
res=yolo.run(img)
yolo.draw_result(res,pl.osd_img)
pl.show_image()
gc.collect()
yolo.deinit()
pl.destroy()
The above code gives an example of using YOLOv8 for video inference.
YOLO11 Class#
Constructor#
Description
The encapsulated YOLO11 module constructor, initializes the YOLO11 type to obtain a YOLO11 instance.
Syntax
from libs.YOLO import YOLO11
yolo=YOLO11(task_type="segment",mode="image",kmodel_path="yolo11_det.kmodel",labels=["apple","banana","orange"],rgb888p_size=[1280,720],model_input_size=[320,320],conf_thresh=0.5,nms_thresh=0.25,mask_thresh=0.5,max_boxes_num=50,debug_mode=0)
Parameters
Parameter Name |
Description |
Description |
Type |
|---|---|---|---|
task_type |
Task Type |
Supports four types of tasks, optional values are ‘classify’/’detect’/’segment’/’obb’; |
str |
mode |
Inference Mode |
Supports two inference modes, optional values are ‘image’/’video’, ‘image’ means inference on images, ‘video’ means inference on real-time video streams captured by the camera; |
str |
kmodel_path |
kmodel Path |
Path of the kmodel copied to the development board; |
str |
labels |
Class Label List |
Label names for different categories; |
list[str] |
rgb888p_size |
Inference Frame Resolution |
Resolution of the current inference frame, such as [1920,1080], [1280,720], [640,640]; |
list[int] |
model_input_size |
Model Input Resolution |
Input resolution when training the YOLO11 model, such as [224,224], [320,320], [640,640]; |
list[int] |
display_size |
Display Resolution |
Set when the inference mode is ‘video’, supports hdmi([1920,1080]) and lcd([800,480]); |
list[int] |
conf_thresh |
Confidence Threshold |
Class confidence threshold for classification tasks, target confidence threshold for detection and segmentation tasks, such as 0.5; |
float [0~1] |
nms_thresh |
NMS Threshold |
Non-maximum suppression threshold, required for detection and segmentation tasks; |
float [0~1] |
mask_thresh |
Mask Threshold |
Binarization threshold for segmenting objects within detection boxes in segmentation tasks; |
float [0~1] |
max_boxes_num |
Maximum Detection Boxes |
Maximum number of detection boxes allowed to be returned in one frame of image; |
int |
kp_num |
Number of Keypoints |
Number of keypoints in the keypoint detection task; |
int |
kp_dim |
Keypoint Dimension |
Dimension of keypoints in the keypoint detection task, only supports 2 and 3, determined by the trained model; |
int【2/3】 |
debug_mode |
Debug Mode |
Whether the timing function is enabled, optional 0/1, 0 means no timing, 1 means timing; |
int [0/1] |
Return Value
Return Value |
Description |
|---|---|
YOLO11 |
YOLO11 instance |
config_preprocess#
Description
YOLO11 preprocessing configuration function.
Syntax
yolo.config_preprocess()
Parameters
Parameter Name |
Description |
Input / Output |
Description |
|---|---|---|---|
None |
Return Value
Return Value |
Description |
|---|---|
None |
run#
Description
Infer one frame of image, return the inference result for use by the draw_result method. Classification tasks return class indices and scores, detection tasks return lists of detection box positions, scores, and class indices, segmentation tasks return mask results and lists of detection box positions, scores, and class indices, oriented object detection returns lists of four-point coordinates of oriented detection boxes, keypoint detection returns lists of detection box positions, class indices, scores, and keypoints.
Syntax
res=yolo.run(img)
Parameters
Parameter Name |
Description |
Input / Output |
Description |
|---|---|---|---|
img |
The image to be inferred in the format of ulab.numpy.ndarray, or a frame of image obtained from the video stream via |
Input |
Return Value
Return Value |
Description |
|---|---|
res |
Model post-processing result, different tasks return different values, classification tasks return class indices and scores, detection tasks return lists of detection box positions, scores, and class indices, segmentation tasks return mask results and lists of detection box positions, scores, and class indices, oriented object detection returns lists of four-point coordinates of oriented detection boxes, keypoint detection returns lists of detection box positions, class indices, scores, and keypoints. |
draw_result#
Description
Draw the YOLO11 inference result on the screen or image.
Syntax
yolo.draw_result(res,img_ori)
Parameters
Parameter Name |
Description |
Input / Output |
Description |
|---|---|---|---|
res |
Inference result of |
Input |
|
img_ori |
Image instance to be drawn |
Input |
From |
Return Value
Return Value |
Description |
|---|---|
None |
Example Program#
The following gives an example program for the YOLO11 segmentation task:
from libs.YOLO import YOLO11
from libs.Utils import *
import os,sys,gc
import ulab.numpy as np
import image
if __name__=="__main__":
# This is only an example, please modify it to your own test image, model path, label name, and model input size for custom scenarios
img_path="/sdcard/examples/utils/test_fruit.jpg"
kmodel_path="/sdcard/examples/kmodel/fruit_det_yolo11n_320.kmodel"
labels = ["apple","banana","orange"]
model_input_size=[320,320]
confidence_threshold = 0.5
nms_threshold=0.45
img,img_ori=read_image(img_path)
rgb888p_size=[img.shape[2],img.shape[1]]
# Initialize YOLO11 instance
yolo=YOLO11(task_type="detect",mode="image",kmodel_path=kmodel_path,labels=labels,rgb888p_size=rgb888p_size,model_input_size=model_input_size,conf_thresh=confidence_threshold,nms_thresh=nms_threshold,max_boxes_num=50,debug_mode=0)
yolo.config_preprocess()
res=yolo.run(img)
yolo.draw_result(res,img_ori)
yolo.deinit()
gc.collect()
The above code provides the code for using YOLO11 for image inference.
from libs.PipeLine import PipeLine
from libs.YOLO import YOLO11
from libs.Utils import *
import os,sys,gc
import ulab.numpy as np
import image
if __name__=="__main__":
# This is only an example, please modify it to your own model path, label name, and model input size for custom scenarios
kmodel_path="/sdcard/examples/kmodel/fruit_det_yolo11n_320.kmodel"
labels = ["apple","banana","orange"]
model_input_size=[320,320]
# Add display mode, default is hdmi, optional hdmi/lcd/lt9611/st7701/hx8399, where hdmi is set to lt9611 by default with resolution 1920*1080; lcd is set to st7701 by default with resolution 800*480
display_mode="lcd"
rgb888p_size=[640,360]
confidence_threshold = 0.5
nms_threshold=0.45
# Initialize PipeLine
pl=PipeLine(rgb888p_size=rgb888p_size,display_mode=display_mode)
pl.create()
display_size=pl.get_display_size()
# Initialize YOLO11 instance
yolo=YOLO11(task_type="detect",mode="video",kmodel_path=kmodel_path,labels=labels,rgb888p_size=rgb888p_size,model_input_size=model_input_size,display_size=display_size,conf_thresh=confidence_threshold,nms_thresh=nms_threshold,max_boxes_num=50,debug_mode=0)
yolo.config_preprocess()
while True:
with ScopedTiming("total",1):
# Inference frame by frame
img=pl.get_frame()
res=yolo.run(img)
yolo.draw_result(res,pl.osd_img)
pl.show_image()
gc.collect()
yolo.deinit()
pl.destroy()
The above code provides the code for using YOLO11 for video inference.
YOLO26 Class#
Constructor#
Description
Encapsulated YOLO26 module constructor, initializes the YOLO26 type to obtain a YOLO26 instance.
Syntax
from libs.YOLO import YOLO26
yolo=YOLO26(task_type="pose",mode="image",kmodel_path="yolo26n_pose.kmodel",labels=["people"],rgb888p_size=[1280,720],model_input_size=[320,320],conf_thresh=0.5,mask_thresh=0.5,kp_num=17,kp_dim=3,max_boxes_num=50,debug_mode=0)
Parameters
Parameter Name |
Description |
Notes |
Type |
|---|---|---|---|
task_type |
Task type |
Supports four types of tasks, options are ‘classify’/’detect’/’segment’/’obb’; |
str |
mode |
Inference mode |
Supports two inference modes, options are ‘image’/’video’; ‘image’ means inference on an image, ‘video’ means inference on real-time video stream captured by camera; |
str |
kmodel_path |
kmodel path |
The kmodel path copied to the development board; |
str |
labels |
Class label list |
Label names for different classes; |
list[str] |
rgb888p_size |
Inference frame resolution |
Resolution of the current inference frame, e.g., [1920,1080], [1280,720], [640,640]; |
list[int] |
model_input_size |
Model input resolution |
Input resolution when training the YOLO11 model, e.g., [224,224], [320,320], [640,640]; |
list[int] |
display_size |
Display resolution |
Set when the inference mode is ‘video’, supports hdmi([1920,1080]) and lcd([800,480]); |
list[int] |
conf_thresh |
Confidence threshold |
Class confidence threshold for classification task, object confidence threshold for detection and segmentation tasks, e.g., 0.5; |
float [0~1] |
mask_thresh |
Mask threshold |
Binarization threshold for segmenting objects within detection boxes in segmentation tasks; |
float [0~1] |
max_boxes_num |
Maximum number of detection boxes |
Maximum number of detection boxes allowed to be returned in one frame of image; |
int |
kp_num |
Number of keypoints |
Number of keypoints in the keypoint detection task; |
int |
kp_dim |
Keypoint dimension |
Dimension of keypoints in the keypoint detection task, only 2 and 3 are supported, determined by the trained model; |
int[2/3] |
debug_mode |
Debug mode |
Whether the timing function takes effect, options 0/1, 0 for no timing, 1 for timing; |
int [0/1] |
Note: The YOLO26 module no longer includes the
nms_threshparameter, because the YOLO26 model directly outputs results with semantic information.
Return Value
Return Value |
Description |
|---|---|
YOLO26 |
YOLO26 instance |
config_preprocess#
Description
YOLO26 preprocessing configuration function.
Syntax
yolo.config_preprocess()
Parameters
Parameter Name |
Description |
Input / Output |
Notes |
|---|---|---|---|
None |
Return Value
Return Value |
Description |
|---|---|
None |
run#
Description
Performs inference on one frame of image, returns the inference result for use by the draw_result method. The classification task returns the class index and score, the detection task returns a list of detection box positions, scores, and class indices, the segmentation task returns the mask result and a list of detection box positions, scores, and class indices, the oriented object detection returns a list of four-point coordinates of the oriented detection boxes, and the keypoint detection returns the detection box positions, class indices, scores, and keypoints list.
Syntax
res=yolo.run(img)
Parameters
Parameter Name |
Description |
Input / Output |
Notes |
|---|---|---|---|
img |
The image to be inferred in the format of ulab.numpy.ndarray, or a frame of image obtained from the video stream via |
Input |
Return Value
Return Value |
Description |
|---|---|
res |
Model post-processing result, the return value varies for different tasks. The classification task returns the class index and score, the detection task returns a list of detection box positions, scores, and class indices, the segmentation task returns the mask result and a list of detection box positions, scores, and class indices, the oriented object detection returns a list of four-point coordinates of the oriented detection boxes, and the keypoint detection returns the detection box positions, class indices, scores, and keypoints list. |
draw_result#
Description
Draws the YOLO26 inference result on the screen or image.
Syntax
yolo.draw_result(res,img_ori)
Parameters
Parameter Name |
Description |
Input / Output |
Notes |
|---|---|---|---|
res |
Inference result of |
Input |
|
img_ori |
Image instance to be drawn |
Input |
From |
Return Value
Return Value |
Description |
|---|---|
None |
Example Program#
Below is an example program for the YOLO26 segmentation task:
from libs.YOLO import YOLO26
from libs.Utils import *
import os,sys,gc
import ulab.numpy as np
import image
if __name__=="__main__":
# This is only an example, please modify to your own test image, model path, label names, model input size, number of keypoints, and keypoint dimension for custom scenarios
img_path="/sdcard/examples/utils/test_pose.jpg"
kmodel_path="/sdcard/examples/kmodel/yolo26n-pose.kmodel"
labels = ['person']
model_input_size=[320,320]
kp_num=17
kp_dim=3
confidence_threshold = 0.5
nms_threshold=0.45
img,img_ori=read_image(img_path)
rgb888p_size=[img.shape[2],img.shape[1]]
# Initialize YOLO26 model
yolo=YOLO26(task_type="pose",mode="image",kmodel_path=kmodel_path,labels=labels,rgb888p_size=rgb888p_size,model_input_size=model_input_size,kp_num=kp_num,kp_dim=kp_dim,conf_thresh=confidence_threshold,max_boxes_num=100,debug_mode=0)
yolo.config_preprocess()
res=yolo.run(img)
print(res)
yolo.draw_result(res,img_ori)
yolo.deinit()
gc.collect()
The above code gives the code for performing image inference using YOLO26.
from libs.PipeLine import PipeLine
from libs.YOLO import YOLO26
from libs.Utils import *
import os,sys,gc
import ulab.numpy as np
import image
if __name__=="__main__":
# This is only an example, please modify to your own model path, label names, model input size, number of keypoints, and keypoint dimension for custom scenarios
kmodel_path="/sdcard/examples/kmodel/yolo26n-pose.kmodel"
labels = ["person"]
model_input_size=[320,320]
kp_num=17
kp_dim=3
# Add display mode, default is hdmi, options are hdmi/lcd/lt9611/st7701/hx8399, among which hdmi defaults to lt9611 with resolution 1920*1080; lcd defaults to st7701 with resolution 800*480
display_mode="lcd"
rgb888p_size=[320,320]
confidence_threshold = 0.5
pl=PipeLine(rgb888p_size=rgb888p_size,display_mode=display_mode)
pl.create()
display_size=pl.get_display_size()
# Initialize YOLO26 model
yolo=YOLO26(task_type="pose",mode="video",kmodel_path=kmodel_path,labels=labels,rgb888p_size=rgb888p_size,model_input_size=model_input_size,display_size=display_size,kp_num=kp_num,kp_dim=kp_dim,conf_thresh=confidence_threshold,max_boxes_num=50,debug_mode=0)
yolo.config_preprocess()
while True:
with ScopedTiming("total",1):
img=pl.get_frame()
res=yolo.run(img)
yolo.draw_result(res,pl.osd_img)
pl.show_image()
gc.collect()
yolo.deinit()
pl.destroy()
The above code gives the code for performing video inference using YOLO26.
