This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VEN-Q1:自定义内核实现:img_proc

Guru**** 2465890 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1456852/tda4ven-q1-custom-kernel-implementation-img_proc

器件型号:TDA4VEN-Q1

工具与软件:

尊敬的先生:

我使用的是 SDK 10的 J722S 板。 我的应用程序流水线是 scaler->Preproc->TIDL->Post-proc。
与 J721E 不同、已知我们不能使用预处理内核和后处理内核、这些内核是 vision_apps 中 C66内核的 img_proc 内核的一部分。
因此我们针对两者都创建了自定义内核。 我们已经为 Nv12到 RGB 平面转换开发了定制内核、它提供了 预期的输出。但当它作为 TIDL 节点的输入提供时、却没有获得预期的输出。

请注意、我们已经采用经验公式进行转换。
INT R =(298 * C + 409 * E + 128)>> 8;
INT G =(298 * C - 100 * D - 208 * E + 128)>> 8;
INT B =(298 * C + 516 * D + 128)>> 8;



这个想法是否正确?img_proc 中的预处理输出和从 NV12->RGBPLanar 的简单转换是否存在任何差异?

请求您帮助我解决此问题!

谢谢!

Seetharama Raju。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能否写入预处理节点的输出并检查是否获得预期的输出。 请注意、TIDL 节点的输入应与您的模型预期匹配、例如输入大小、传感器数据类型等

    此致、

    Nikhil

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    是的、我已经处理了输入大小、张量数据类型等参数。  

    该模型需要 int_16张量数据类型、224 x 224 RGB 平面。 我已在自定义预处理逻辑中考虑了这些参数。

    谢谢!

    Raju。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Raju:

    在这种情况下、如果考虑了诸如(填充、平均值、缩放等)的参数、输出应该不会有错误。

    您是否可以转储 pre-proc 的输出并确认数据值是否符合预期?

    您是否具有 TIDL 节点的输入参考值、这个参考值可以从该节点提供正确的输出?

    此致、

    Nikhil

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     您好、先生、

    作为调试的一部分、我在8.2 SDK 的演示 app_tidl_od 应用中集成了自定义预处理器内核。 由于型号尺寸为1024x512、我调整了自定义逻辑以提供1024x512 BGR 平面输出。 I 在两种情况下都转储了预处理输出、一个使用 SDK 的 preproc、另一个使用自定义逻辑。

    当我使用 SDK 的 pre-proc 转储时、我发现 tenosr 宽度和高度分别为1025和515。 我假设它是由于填充。 我转储了一帧的预处理输出并检查了图形。 我无法理解填充的方式。  

    请指导我如何更改与此相关的自定义逻辑?

    谢谢!

    Raju

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Raju:

    填充信息是从导入的模型(即从 ioBufDesc 中获取的)获得的、您可以在中看到函数 APP_UPDATE_PRE_PROC () in vision_apps/apps/dl_demos/app_tidl_od/app_pre_proc_module.c

    此致、

    Nikhil

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    我们 在 SDK 10.1中找到了一个源文件 vx_dl_pre_proc_target_no_dma.c (位于$vision_apps/kernels/img_proc/C66)、并移植到一个新的自定义内核以在 C7x 内核上进行预处理。 当此节点集成到在 J721E 上运行的演示应用程序 app_tidl_od (SDK 8.2)中时、应用程序将在显示屏上提供适当的边界框。当同一节点集成到基于自定义文件的应用程序的 SDK 10.1中时、预处理节点不会提供预期的输出。

    注意:

    1)自定义 pre-proc 内核构建在 SDK 8.2和10.1的 C7x 内核上

    2)在8.2 SDK 中,即使在显示屏上的检测正确,我已经使用 VOOYA 应用程序验证了预处理转储,它不是预期的。

    3)在使用 J721E 进行的实验中、参考应用是"app_tidl_od"、其中输入分辨率为1024x512、而 J722S 实验具有我们的自定义应用、其中 tidl 预期为224x224、这就是您在下面附加的文件中观察到大小变化的原因、但输出来自相同的输入 YUV 图像。

    请分别在 SDK 8.2 (J721E)和10.1 (J722S)中找到 pre-proc 转储。

    请提供 SDK 10、1中提供的用于预处理(NV12->RGB)的任何可靠源代码、这些源代码可以移植到 J722s 上、因为具有预处理模块的 J722S 上没有工作演示。

    谢谢。此致、

    Raju

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    关于回应的温柔提醒!!


    由于我们在 J722s 上没有验证预处理节点、因此我们想知道预处理节点的预期输出。 它是否与 J721E、张量(NCHW RGB/BGR 平面)相同、还是不同?


    请同时确认这一点。

    谢谢!

    Raju。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    您能回答一下吗、因为这对我们的项目非常重要。

    谢谢!

    Raju。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    有关以下要求的任何更新、

    "请提供 SDK 10.1中提供的用于预处理(NV12->RGB)的任何可靠源代码、这些源代码可以移植到 J722s 上、因为具有预处理模块的 J722S 上没有工作演示。"

    谢谢!

    Raju。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Raju:

    我们正在努力在 J722S 上启用视觉应用 TIDL 演示
    通过使用 NEON 优化将 preproc 和 postproc 内核移至 A53

    这将是4月底11.0版本的一部分

    同时、我们还有另一个名为 edgeai-tiovx-apps 的项目
    用于实现类似的演示。 它是 SDK 和的一部分
    封装在/opt/edgeai-tiovx-apps 下

    请查看此处的文档
    TexasInstruments/edgeai-tiovx-apps:参考基于 OpenVx 的应用
    边缘 AI TIOVX 应用参考指南·TexasInstruments/edgeai-tiovx-apps Wiki

    此致
    Rahul T R