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:TIDL 后处理

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1644137/tda4ven-q1-tidl-post-processing

器件型号: TDA4VEN-Q1

你好
我有疑问。 我想为 TIDL 添加一个后处理节点、但无论将其添加到 A 内核还是 C7X 内核、该应用都会在运行 vxverigraphh 函数时冻结、而不会出现任何错误。 我添加的节点只有两个参数、类型为 vx_user_data_object 和 vx_tensor。 根据您的经验、请告诉我可能导致此问题的原因

image.png

 

image.png

 

image.png

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

    您好、张:

    您使用的是哪个 POST proc、是来自 SDK 还是自定义节点?

    在运行应用程序之前、您能否启用远程内核日志并在此处共享、请运行“source ./vision_apps_init.sh“脚本并共享整个日志。

    您的图形是否仅包含 tidl 节点和 post_proc 节点? 一些其他节点。

    此致、
    Gokul

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

    你(们)好
    如何启用远程内核日志记录?
    我自己开发了这个应用程序。 首先加载分辨率为 1920x1536 的离线 YUV 图像。 然后、使用定标器节点将其裁剪为 576x384 分辨率。 预处理后、NV12 格式的图像将转换为 RGB Tensor 格式、然后馈送到 TIDL 节点。 最后、将其发送到我创建的后处理节点。 冻结问题已经解决、但出现了一个新问题。 我创建的后处理节点在内核 A 上成功运行、但如果在 C7X 上运行、则会在两帧后冻结。 如何解决此问题?

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

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

    您好、张:

    如何启用远程内核日志记录?

    “源/opt/vision_apps/vision_apps_init.sh “

    我创建的后处理节点在内核 A 上成功运行、但如果它在 C7X 上运行、它将在两帧后冻结。 如何解决此问题?

    检查远程内核日志、查看 c7x 中是否有任何错误。

    还可以共享将由 tivxExportGraphToDot() API 生成的图形的点输出文件、在代码中添加此 API 并共享它生成的文件、
    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/tiovx/docs/user_guide/JPEG_TOOL.html

    此致、
    Gokul

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

    你好
    此目录 (/opt/vision_apps) 中没有名为“vision_apps_init.sh“的脚本。 如何生成此脚本? 或者、您能提供吗?
    以下是执行此函数生成的文件。 请检查它

    e2e.ti.com/.../final_5F00_graph.dot_5F00_1_5F00_img.txte2e.ti.com/.../final_5F00_graph.dot_5F00_2_5F00_pipe_5F00_img.txte2e.ti.com/.../final_5F00_graph.dot_5F00_4_5F00_pipe0_5F00_img.txte2e.ti.com/.../final_5F00_graph.dot_5F00_3_5F00_data_5F00_ref_5F00_q_5F00_img.txt

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

    您好、张:

    此目录 (/opt/vision_apps) 中没有名为“vision_apps_init.sh“的脚本。 如何生成此脚本? 或者您能否提供它?

    它应该位于 SDK 的 targetfs 文件中、您能否在 SDK 内部检查并将整个 vision_apps 文件夹复制到电路板上。 $(psdkra)/targetfs/opt/vision_apps

    这也将有一些二进制文件。 仅供参考、如果内存映射没有变化、这将起作用。如果您更改了内存、则可能必须重新编译这些二进制文件。

    从图形的点输出来看、似乎没有正确创建图形。

    data_ref_q_149 指向一个缓冲区、但信息显示它有 4 个缓冲区。 您能否查看 app_tidl_od 演示作为参考、 vision_apps/apps/dl_demos/app_tidl_od

    您能否检查 msc 节点的图形创建部分、并将其与 app_tidl_od 演示代码进行比较。

    此致、
    Gokul

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

    您好、张:

    2. 我根据您提供的演示进行了修改、但应用在两帧后仍然冻结。 请查看修改后运行应用程序的结果。

    不、我想您刚才减少了 num_of 缓冲区、因此结果是这样的、

    你的 data_ref_q_149 应该看起来类似于 data_ref_q_150(像 2 个独立的图像缓冲区)

    能否检查并纠正这个问题。

    Dec 31 16:00:50[54.533390] spartan_A vx_app_arm_remote_log.out[279]:[C7x_1 ] 61.892720 s:非法操作码异常

    您是否在不添加到 tiovx 流水线的情况下独立验证了 c7x 中的内核、您能否独立验证并修复错误。

    产生该误差的可能原因是、

    • 格式中的操作码无效
    • D1 单元上存储的位数大于 64 位、或 D2 单元上的负载大于 64 位
    • 在标量侧和矢量侧执行非法指令
    • 对于 PFS 指令、寻址模式不是 3'h0 或 3'h4
    • 对于 ASW、ASD、CASW、CASD 指令、寻址模式不是 3'h0 或 3'h4

    下次共享日志时、将其作为文本文件共享或使用代码窗口。

    此致、
    Gokul

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

    1.如何识别此图像中的错误? 我需要在代码中的何处进行修改?
    2.后处理节点可以在内核 A 上运行、但在 c7x 上运行时会冻结。 这是否可以证明代码没有问题、或者可能是由于 c7x 的存储器较小所致

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

    您好、张:

    1.如何识别此图片中的错误? 我需要在代码中的何处进行修改?
    [/报价]

    您能否查看 app_tidl_od 演示的图形输出并将其与进行比较、还能否检查有关如何创建和管理输入图形参数的代码。

    2.后处理节点可以在内核 A 上运行、但在 c7x 上运行时会冻结。 这是否可以证明代码没有问题、或者可能是由于 c7x
    的内存较小所致?

    但是、这些内核是 2 个具有不同架构的不同内核(我们不能说它在 A53 中运行时将在 c7x 上运行)、在转到 openvx 流水线之前、您能否独立验证 c7x 中的 post_proc 代码、以确保没有问题。  
    根据 c7x 转储的崩溃日志、错误是非法的操作码异常、这意味着某些指令不正确或链接库时可能出错。 您是否使用 CCS 调试 c7x 代码以找出确切发生崩溃的位置?
    我无法对存储器进行注释、因为我没有分配给 c7x 的存储器信息。您 可以检查存储器映射并确认是否可以尝试更多分配并测试。  

    此致、
    Gokul

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

    你好
    添加要在 c7x 上运行的节点时应用程序崩溃的问题已得到解决。 原因是节点的输入包含指针参数。 进行如下所示的修改后、应用程序执行顺利。 然而、出现了一个新问题。 该应用的函数是加载用于 TIDL 推理的离线映像。 检查日志后、我发现最终结果不一致、一个帧正确、另一个帧不正确、如图所示。 您能否解释一下为什么会出现这种现象

      

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

    您好、张:

    添加要在 c7x 上运行的节点时应用程序崩溃的问题已得到解决。 原因是节点的输入包含指针参数。 进行如下所示的修改后、应用程序执行顺利

    好的、感谢您更新有关该问题的信息。

    检查日志后、我发现最终结果不一致、一个帧正确、另一个帧不正确、如图所示。 您能否解释一下为什么会出现这种现象

    为此、您能否检查模型的输入是否正确?

    您是否设法解决了我前面提到的图形问题、您能否共享更新后的图形的点输出。

    此致、
    Gokul