Lcc123

Lcc123

0个粉丝

1

问答

0

专栏

0

资料

Lcc123  发布于  2026-05-12 19:08:52
采纳率 0%
1个问答
494

hi3516cv610 om模型部署

     
问题描述

hi3516cv610中用om模型部署的时候,使用ss_mpi_vpss_get_chn_frame函数返回“操作不允许”。这里使用的是vpss chnl0。

问题出现的环境背景及自己尝试过哪些方法

这里用到了vpss 中的chnl 0(原始视频帧) 和1(用于推理视频),这里在使用vpss chnl 获取图像数据前先将vpss与venc解绑了,然后设置chnl的深度为1 能够获取到图像,但是在使用chnl 0时按照同样的流程,获取不到图像信息,而且报错(操作不允许)。

相关代码

static td_void sample_svp_npu_acl_to_venc(td_void args)
{
td_s32 ret;
ot_video_frame_info base_frame, ext_frame;
const td_s32 milli_sec = SAMPLE_SVP_NPU_MILLIC_SEC;
const td_s32 vpss_grp = 0;
td_s32 vpss_chn[] = { OT_VPSS_CHN0, OT_VPSS_CHN1 };
td_u32 size, stride;
td_u8 *data = TD_NULL;
td_s32 frame_index = 0;

(td_void)prctl(PR_SET_NAME, "svp_npu_to_venc", 0, 0, 0);

ret = svp_acl_rt_set_device(g_svp_npu_dev_id);
sample_svp_check_exps_return(ret != TD_SUCCESS, TD_NULL, SAMPLE_SVP_ERR_LEVEL_ERROR, "open device failed!\n");

ret = sample_svp_npu_acl_vb_map(OT_VPSS_CHN1);
sample_svp_check_exps_goto(ret != TD_SUCCESS, fail_0, SAMPLE_SVP_ERR_LEVEL_ERROR, "map vb pool failed!\n");

ret = sample_common_svp_npu_get_input_data_buffer_info(&g_svp_npu_task[0], 0, &data, &size, &stride);
sample_svp_check_exps_goto(ret != TD_SUCCESS, fail_1, SAMPLE_SVP_ERR_LEVEL_ERROR,
    "Error(%#x),get_input_data_buffer_info failed!\n", ret);

while (g_svp_npu_thread_stop == TD_FALSE) {
    frame_index++;

    ret = ss_mpi_vpss_get_chn_frame(vpss_grp, vpss_chn[1], &ext_frame, milli_sec);
    sample_svp_check_exps_continue(ret != TD_SUCCESS, SAMPLE_SVP_ERR_LEVEL_ERROR,
        "Error(%#x),ss_mpi_vpss_get_chn_frame failed, vpss_grp(%d), vpss_chn(%d)!\n", ret, vpss_grp, vpss_chn[1]);

    ret = ss_mpi_vpss_get_chn_frame(vpss_grp, vpss_chn[0], &base_frame, milli_sec);
    sample_svp_check_exps_goto(ret != TD_SUCCESS, ext_release, SAMPLE_SVP_ERR_LEVEL_ERROR,
        "Error(%#x),ss_mpi_vpss_get_chn_frame failed, VPSS_GRP(%d), VPSS_CHN(%d)!\n", ret, vpss_grp, vpss_chn[0]);

    ret = sample_svp_npu_acl_frame_proc(&ext_frame, &base_frame, args);
    sample_svp_check_exps_goto(ret != TD_SUCCESS, base_release, SAMPLE_SVP_ERR_LEVEL_ERROR,
        "Error(%#x),sample_svp_npu_acl_frame_proc failed!\n", ret);

    ret = sample_common_svp_venc_send_stream(&g_svp_npu_media_cfg.svp_switch, 0, &base_frame);
    sample_svp_check_exps_goto(ret != TD_SUCCESS, base_release, SAMPLE_SVP_ERR_LEVEL_ERROR,
        "Error(%#x),sample_common_svp_venc_send_stream failed!\n", ret);

base_release:
ret = ss_mpi_vpss_release_chn_frame(vpss_grp, vpss_chn[0], &base_frame);
sample_svp_check_exps_trace(ret != TD_SUCCESS, SAMPLE_SVP_ERR_LEVEL_ERROR,
“Error(%#x),release_frame failed,grp(%d) chn(%d)!\n”, ret, vpss_grp, vpss_chn[0]);
ext_release:
ret = ss_mpi_vpss_release_chn_frame(vpss_grp, vpss_chn[1], &ext_frame);
sample_svp_check_exps_trace(ret != TD_SUCCESS, SAMPLE_SVP_ERR_LEVEL_ERROR,
“Error(%#x),release_frame failed,grp(%d) chn(%d)!\n”, ret, vpss_grp, vpss_chn[1]);
}
ret = sample_common_svp_npu_update_input_data_buffer_info(data, size, stride, 0, &g_svp_npu_task[0]);
sample_svp_check_exps_trace(ret != TD_SUCCESS, SAMPLE_SVP_ERR_LEVEL_ERROR, “update buffer failed!\n”);
fail_1:
(td_void)ss_mpi_sys_munmap(g_svp_npu_vb_virt_addr, g_svp_npu_vb_pool_info.pool_size);
fail_0:
(td_void)svp_acl_rt_reset_device(g_svp_npu_dev_id);
return TD_NULL;
}

你期待的结果是什么?实际看到的错误信息又是什么?

我想知道,为什么无法使用vps获取chnl0的fram,是我vpss chnl0设置的不对吗还是有什么流程?

我来回答
回答9个
时间排序
认可量排序

广东小6

75个粉丝

1

问答

10

专栏

1

资料

广东小6 2026-05-13 07:59:04
认可1

可能是转换模型的参数不对,atc转om的具体命令是什么,发出来看看

Lcc123
Lcc123   回复   广东小6  2026-05-13 09:26:50
0

这个是模型转换的命令。atc —dump_data=0 —input_shape=”images:1,3,640,640” —input_type=”images:UINT8” —log_level=0 —online_model_type=0 —batch_num=1 —input_format=NCHW —output=”./model/yolov8” —soc_version=Hi3516CV610 —insert_op_conf=./insert_op.cfg —framework=5 —compile_mode=0 —save_original_model=true —model=”./yolov8n.onnx” —image_list=”images:./data/image_ref_list.txt” —out_nodes=”/model.22/ArgMax:0” —output_type=”/model.22/ArgMax:0:U16”
conda deactivate

Lcc123
Lcc123   回复   广东小6  2026-05-13 09:48:11
0

vpss中的chnl1是用来模型推理,chnl0是原始视频。ss_mpi_vpss_release_chn_frame(vpss_grp, vpss_chn[1], &ext_frame);这行代码没有报错。

grit

0个粉丝

2

问答

0

专栏

0

资料

grit 2026-05-13 08:42:29
认可0

可以看一下是不是都是离线模式,不是在线模式吧

Lcc123

0个粉丝

1

问答

0

专栏

0

资料

Lcc123 2026-05-13 09:39:28
认可1

第一个两个都是在线模式。vi_online_vpss_online。这会有什么影响吗?

grit
grit   回复   Lcc123  2026-05-13 16:26:21
0

在线模式是取不到图片的,但是你这里是offline吧

grit
grit   回复   Lcc123  2026-05-13 16:27:12
0

cat /dev/logmpp,日志看了吗

grit
grit   回复   Lcc123  2026-05-13 16:29:47
0

你这个看起来是vpss分配资源有问题吧

Lcc123

0个粉丝

1

问答

0

专栏

0

资料

Lcc123 2026-05-13 09:40:28
认可0

但是我没有使用om模型部署功能的时候,是可以使用rtsp获取到视频的。

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区