# 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 名称 ,例如:./sample_svp 0 4.为下列功能列表对应功能,选择对应数字即为启动对应功能 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)