This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# sample使用指南
7206 npu sample使用指南
# 驱动依赖
在out/xm7206xxx/ko目录中
使用命令加载ko
例如:./load xm7206v11a -i
# 目录结构描述
.
├── common
│ ├── data_base
│ │ └── ...
│ ├── demo_common.c
│ ├── demo_common.h
│ ├── font
│ └── ...
├── sample_svp // 可执行文件
├── sample_svp_main.c
├── sample_svp_main.h
├── Makefile
├── model // 模型文件夹
│ ├── gnn_car_detect_640x360_rgb888hwc_v0101_20250523.bin // 模型文件,机动车检测
│ ├── gnn_person_detect_640x360_rgb888hwc_v0102_20240909.bin // 模型文件,人形检测
│ └── ...
├── res
│ ├── face_feature_data.txt // 人脸识别相关文件
│ ├── person_name_id // 人脸识别相关文件
│ └── convert_jpg_to_yuv.sh // jpg转换yuv脚本
└── ...
# 使用说明
1.SDK包整编、sample整编、npu sample位置:XMIPCLinuxV100R005C00SPCXXX/sample/npu/demo_ai
2.如修改sample仅需demo_ai目录下编译,在demo_ai文件夹中找到可执行文件
3.运行demo: ./sample_svp <index>名称 ,例如:./sample_svp 0
4.<index>为下列功能列表对应功能,选择对应数字即为启动对应功能
5.运行程序后输入字母q退出程序
# 功能介绍
| AI功能 | 描述 | 涉及模型 |
0) person detect | 人形检测 | (yolov5)gnn_person_detect_640x360_rgb888hwc_v0101_20241124.bin
1) person keypoint detect | 人体关键点 | (yolov8)gnn_person_detect_keypoint_640x360_rgb888hwc_v0101_20241205.bin
2) face detect | 人脸检测 | (yolov5)gnn_face_detect_640x360_rgb888hwc_v0101_20241205.bin
3) pet detect | 宠物检测 | (yolov5)gnn_face_detect_640x360_rgb888hwc_v0101_20241205.bin
4) car detect | 车辆检测 | (yolov5)gnn_car_detect_640x360_rgb888hwc_v0101_20250523.bin
5) non motorized vehicle detect | 非机动车检测 | (yolov5)gnn_nocar_detect_640x360_rgb888hwc_v0102_20240417.bin
6) head detect | 人头检测 | (yolov5)gnn_head_detect_640x360_rgb888hwc_v0102_20240318.bin
7) fireworks detect | 烟火检测 | (yolov5)gnn_fireworks_detect_640x360_rgb888hwc_v0101_20250523.bin
8) package detect | 包裹检测 | (yolov5)gnn_package_detect_640x360_rgb888hwc_v0101_20250523.bin
9) aov person | AOV人形检测 | (yolov5)gnn_aov_person_detect_640x360_rgb888hwc_v0101_20240909.bin
10) adas detect | adas检测 | 车牌检测 gnn_license_plate_detection_rgb888hwc_v0101_20241205.bin
非机动车识别 gnn_nocar_detect_640x360_rgb888hwc_v0102_20240417.bin
车辆检测 gnn_car_detect_640x360_rgb888hwc_v0101_20250523.bin
车道线检测 gnn_laneline_detect_640x360_rgb888hwc_v0101_20250616.bin
人形检测 gnn_person_detect_640x360_rgb888hwc_v0102_20240909.bin
11) fire detect | 烟火检测 | (yolov8)gnn_fire_detect_640x360_rgb888hwc_v0101_20250313.bin
12) gesture recognition | 手势识别 | 手势检测 gnn_gesture_detection_640x360_rgb888hwc_v0101_20241011.bin
手势分类 gnn_gesture_classification_96x96_rgb888hwc_v0101_20241203.bin
13) face emotion classification | 人脸表情分类 | 人脸检测 gnn_face_detect_640x360_rgb888hwc_v0102_20240131.bin
人脸关键点检测 gnn_face_keypoint_48x48_rgb888hwc_v0101_20250818.bin
人脸表情分类 gnn_face_emotion_112x112_rgb888hwc_v0101_20250904.bin
14) face recognition | 人脸识别 | 人脸检测 gnn_face_detect_640x360_rgb888hwc_v0102_20240131.bin
人脸关键点检测 gnn_face_keypoint_48x48_rgb888hwc_v0101_20250818.bin
人脸识别 gnn_face_recognition_112x112_rgb888hwc_v0101_20250818.bin
15) person rcnn detect | 人形检测+二阶段 | 人形检测 gnn_person_detect_640x360_rgb888hwc_v0102_20240909.bin
二阶段分类 gnn_second_stage_128x128_rgb888hwc_v0101_20250721.bin
16) car rcnn detect | 车辆检测+二阶段 | 车辆检测 gnn_person_detect_640x360_rgb888hwc_v0102_20240909.bin
二阶段分类 gnn_second_stage_128x128_rgb888hwc_v0101_20250721.bin
17) pet rcnn detect | 宠物检测+二阶段 | 宠物检测 gnn_person_detect_640x360_rgb888hwc_v0102_20240909.bin
二阶段分类 gnn_second_stage_128x128_rgb888hwc_v0101_20250721.bin
18) companion robot | 宠物陪伴机器人 | 宠物检测 gnn_pet_detect_640x360_rgb888hwc_v0103_20250520.bin
宠物分类 gnn_pet_classify_128x128_rgb888hwc_v0101_20250926.bin
19) person rcnn 720p detect | 远距离人形检测 | 远距离人形检测 gnn_person_nocar_detect_1280x720_rgb888hwc_v0101_202507025.bin
二阶段分类 gnn_second_stage_128x128_rgb888hwc_v0101_20250721.bin
20) car rcnn 720p detect | 远距离车型检测 | 远距离车辆检测 gnn_car_detect_1280x720_rgb888hwc_v0101_20251103.bin
二阶段分类 gnn_second_stage_128x128_rgb888hwc_v0101_20250721.bin
21) pet rcnn 720p detect | 远距离宠物检测 | 远距离宠物检测 gnn_pet_detect_1280x720_rgb888hwc_v0101_20251103.bin
二阶段分类 gnn_second_stage_128x128_rgb888hwc_v0101_20250721.bin
# attr属性介绍
detect_threshold = 0.65f; // 检测阈值,建议值0.65f
开启二阶段检测|远距离检测时,需要设置为0.3f
classifier_threshold = 0.01f; // 分类阈值,默认0.01f
开启二阶段检测|远距离检测时,需设置三个档位,低:0.3f,中:0.5f,高:0.7f,默认:0.5f
iou_threshold = 0.5f; // iou相交比阈值,建议值0.5f
max_target_num = 10; // 输出最大检测目标数,默认值10,最大支持50
bytetrack_enable // 追踪开关,开启目标追踪
单个目标(tracker_id)可持续存在30帧,丢失目标后重新追踪目标会重置ID,ID从0-1500循坏使用
目标出现累计帧数(tracker_age)出现后会累加,最大值为240,消失后会重新累加
motionless_filter_enable // 运动状态检测开关,开启后输出运动状态
0:未知(目标刚出现,等待判断具体状态),1:静止,2:运动
stillness_thres = 0.95f; // 当前帧与历史帧相交大于95%算当前帧静止,静止计数+1,阈值越低越容易被判断为静止
movement_fps_thres = 7; // 静止帧计数连续7帧大于stillness_thres,则目标被判断为静止,判断帧数越低越容易被判断为静止
# svp接口介绍
/*
* 函数功能:创建一路svp_task处理流程
* 函数参数:
* handle - 输出参数,创建成功返回SVP句柄
* cfg - 输入参数,svp_task配置信息
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_FAILURE - 函数执行失败
* 注意:
* 每个句柄对应一路svp_task处理流程
*/
xmedia_svp_task_create(xmedia_s32 *handle, const xmedia_svp_task_cfg cfg)
/*
* 函数功能:获取svp_task处理流程的属性
* 函数参数:
* handle - 输入参数,svp_task处理流程句柄
* task_attr - 输出参数,获取的svp_task属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_FAILURE - 函数执行失败
*/
xmedia_s32 xmedia_svp_task_get_attr(xmedia_s32 handle, xmedia_void *task_attr);
/*
* 函数功能:设置svp_task处理流程的属性
* 函数参数:
* handle - 输入参数,svp_task处理流程句柄
* task_attr - 输入参数,设置svp_task属性
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_FAILURE - 函数执行失败
* 注意:
* 创建后,销毁前的任意时间均可调用
*/
xmedia_svp_task_set_attr(xmedia_s32 handle, const xmedia_void *task_attr)
/*
* 函数功能:开始svp_task处理流程
* 函数参数:
* handle - 输入参数,SVP处理流程句柄
* input - 输入参数,输入图像帧信息
* output - 输出参数,处理结果信息
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_FAILURE - 函数执行失败
* 注意:
* 创建后,销毁前的任意时间均可调用
*/
xmedia_svp_task_process(xmedia_s32 handle, const xmedia_svp_task_input *input, xmedia_void *output)
/*
* 函数功能:销毁一路svp_task处理流程
* 函数参数:
* handle - 输入参数,SVP处理流程句柄
* 返回值:
* XMEDIA_SUCCESS - 函数执行成功
* XMEDIA_FAILURE - 函数执行失败
*/
xmedia_svp_task_destroy(xmedia_s32 handle)