TDA4VM: TDA4VM-RTOS的TIDL输入输出

Part Number: TDA4VM

背景:

TDA4VM开发板

RTOS-SDK

使用流水线构建视觉处理流

image.png

构建代码

if(status == VX_SUCCESS)
    {
        app_create_graph_pre_proc(obj->graph, &obj->preProcObj, obj->scalerObj.output[0].arr);
        APP_PRINTF("Pre proc graph done!\n");
    }

    if(status == VX_SUCCESS)
    {
        app_create_graph_tidl(obj->context, obj->graph, &obj->tidlObj, obj->preProcObj.output_tensor_arr);
        APP_PRINTF("TIDL graph done!\n");
    }

    if(status == VX_SUCCESS)
    {
        app_create_graph_post_proc(obj->graph, &obj->postProcObj, obj->scalerObj.output[1].arr, obj->tidlObj.out_args_arr, obj->tidlObj.output_tensor_arr[0]);
        APP_PRINTF("Draw detections graph done!\n");
    }

 

问题:

1、在app_create_graph_tidl输入的obj->preProcObj.output_tensor_arr,是在预处理创建的对象,实际的tensor填充是在流水线开始后将每一帧RAW数据进行转换为tensor填充到tidl中进行推理?

2、目前tidl-c7x处理流程只能接收openvx 的vx_image格式输入,不支持tivx_raw_image的直接灌入,是否是需要修改host参数校验和dsp-c6x实际运算,才能支持tivx_raw_image?如果是这样,是否可以提供对应的代码demo?

3、对于tidl-c7x处理流程的输出,也是obj->tidlObj.out_args_arr, obj->tidlObj.output_tensor_arr[0]张量,需要后处理生成对应的vx_image格式?如果需要生成tivx_raw_image,需要修改后处理流程?如果是,是否可以提供对应的带么demo呢?

 

 

 

  • 您好,
    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 真诚的感谢

  • 您好,

    如有更多疑问,请统一在(+) TDA4VM: TDA4VM-RTOS-C7X-pre-proc - 处理器论坛 - 处理器 - E2ETm 设计支持 查看回复

     1  是的,数据的实际填充发生在管线启动时。对于每一帧,RAW 数据会被 viss 节点转换为 yuv 格式,然后 pre_proc 节点会将 yuv 转换为 RGB 格式,并打包为张量格式,然后将其提供给 tild 节点进行推理。

    tidl-c7x 接受的输入形式是 vx_tensor,而不是 vx_image,pre_proc 节点会将 vx_image 转换为 vx_tensor。

    如果你想预处理 RAW 图像,那么应该将 dsp-c6x 的 pre_proc 内核更改为接受 tivx_raw_image。目前我们没有任何示例可以将 tivx_raw_image 输入到 pre_proc 节点。该方法在 SDK 中未经过验证。典型的流程是先将 RAW 图像转换为 YUV/RGB,然后再应用 pre_proc。

    tidl_node 会以张量格式输出结果,post_proc 节点接收 tidl 输出的张量以及用于 pre_proc 的输入图像(YUV 或 RGB 格式),并处理 tidl 的输出。 不同类型的模型有不同的 post_proc 节点。例如,对于检测模型,张量将包含边界框的坐标,而 post_proc 节点会在图像中绘制这些框并输出处理后的图像。类似地,对于分割模型,tidl 的输出会与输入图像混合,以显示不同对象之间的分割。post_proc 的实现取决于 tidl 模型的输出。

    这取决于谁在使用tidl的输出。在演示中,会使用display或mosaic节点来显示结果,因此写post_processing节点是为了输出图像。如果你想要tivx_raw_image作为输出,那么是的,你必须相应地修改post_proc。但我们的SDK中没有这个示例。