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.

[参考译文] TDA4VM:意外的预处理节点输出

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1476942/tda4vm-unexpected-pre-proc-node-output

器件型号:TDA4VM

工具/软件:

尊敬的先生:

我正在使用管道缩放器->pre-proc->TIDL->post-proc 来处理一个应用程序。 SDK 为08.02.00.05、目标为 TDA4VM/J721E。

我的 DL 模型是16位。 Pre-proc 输出应提供16位 RGB 张量。

我转储预处理输出并使用 VOOYA 应用程序进行检查。 预计预处理输出的边框填充为1 1 0 2 (右上角)。 我发现张量大小是3x225x227。 (型号大小224x224)

但填充(R G B)的值在65535 (2^16)范围内。

我转储演示 APP_tidl_16bit 分割应用的预 proc 输出、并检查是否相同。在这种情况下、填充(R G B)的值为0。

预处理转储如下所示。 Left My Application ,右 SDK 演示段(16bit)

注意:

-> Im 从应用程序获得无效的输出,我认为这可能是原因。我验证了自定义后处理节点,它工作正常。 因此、预处理或 TIDL 都必须导致问题。

->我得到了演示分割应用程序的有效和预期输出。

->我甚至验证了另一个型号的 szie 512x320(16位),我也遇到了同样的问题。

请就此指导我。

谢谢、

Raju。

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

    您好、先生、

    请您回复!

    谢谢、

    Raju。

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

    尊敬的 Raju:为了更好地了解您的应用程序和问题、您能否向我们展示您的预处理代码/流程? 包括转储预处理数据以及如何使用 VOOYA 来检查它。  

    如果可以、还请提供您的模型。

    谢谢。此致

    Wen Li

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

    尊敬的先生:

    您能向我们展示您的预处理代码/流程吗? [/报价]

    使用的预处理节点仅来自 SDK。 即 tivxImgPreProcNode (DSP-C66内核)

    包括转储预处理数据

    我正在使用 API writePreProcOutput ();app_pre_proc_module.c 中的可用性。代码中唯一的区别是调用"fwrite (data_ptr、sizeof (uint16_t)、tensor_staging[0]* tensor_sizes[0]* tensor_sizes[1]* tensorfp_output[2]中的"int16_t "、因为 uproc_doutput 应该是 pre-16  

    您如何使用 VOOYA 进行检查

    在 VOOYA 应用程序中,我们可以将文件格式保留为图像大小225x227,颜色空间:RGB,数据容器:平面4:4:4,通道顺序 RGB,位深9位。

    如果可以、也请提供您的模型

    很抱歉、我们不能出于保密目的分享这一模式。

    主要问题是当模型用于独立的目标推理时、模型的输出会馈送到自定义后处理节点、从而提供预期的输出。 但在应用程序中使用时模型会提供不同的输出、从而导致错误的输出。  

    我已 在该应用中转储 APP_TIDL_TRACE_DUMP、并在独立推理中启用 writetracelevel 为1。 对于同一输入图像、我们发现 TIDL 的输入在两种情况下是不同的。

    请指导我解决这个问题。

    谢谢、

    Raju。

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

    尊敬的先生:

    对此有何更新?

    谢谢、

    Raju。

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

    您好;由于您使用的是16位、因此 RGB 颜色分量的像素值在0至65535 (2^16 -1)范围内。 您是否发现这有任何问题(在预处理期间、在填充的像素值方面)?

    我尝试了解您的主要问题/疑问是什么。  

    谢谢。此致

    WEN  

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

    尊敬的先生:

    由于您使用的是16位、因此 RGB 颜色分量的像素值在0至65535 (2^16 -1)范围内。 您是否发现有任何错误(在预处理期间、以像素值表示填充)?

    尽管像素值应该在 0到65535 (2^16 -1)范围内、但这些值只在0到255之间。(我们知道、这种行为是由于算法在$rtos/tiadalg/tiadalg_image_preparation/alg/tig_image_preparation_c66.c 或 tig_image_adalcn_cn.c 处 运行)。

    主要问题可以简化为"在独立推理中将输入映像与 TIDL 的差异以及将同一输入映像应用到流水线中"。

    例如、我在下面分享了这两个文件。 这两个文件是预处理输出(TIDL 的输入)。 我们可以发现同一输入图像的值差异。 第一个文件是独立的(正确的大小写)、第二个文件来自应用程序(错误的大小写)

    e2e.ti.com/.../stdalone_5F00_tidl_5F00_input_5F00_firstimage.txt

    e2e.ti.com/.../app_5F00_tidl_5F00_input_5F00_firstimage.txt

    由于值/像素的差异、DL 网络中的后续层会在应用程序出现时提供错误的输出。

    请就此指导我。

    谢谢、

    Raju  

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

    尊敬的先生:

    是否有关于上述问题的任何更新?

    谢谢、

    Raju  

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

    您好;

    "事件像素值应在 0至65535 (2^16 -1)范围内、这些值仅在0至255范围内"是什么意思?

    您是否在预处理中进行了任何抽取(滤波)? 我只是猜测、因为我看不到您的代码。   

    我已经查看了您的两个*。txt 文件。 它们都是一堆8位格式的数字数据。 似乎您使用的是8位 RGB ..  

    由于您无法发送模型、这是可以的、但我们必须假设模型保持不变。 您能否将应用的独立预处理部分与预处理部分进行比较?

    谢谢。此致

    Wen Li

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

    尊敬的先生:

    您是否在预处理中进行了任何抽取(滤波)? 我只是猜测、因为我看不到您的代码

    使用的预处理节点仅来自 SDK。 即 tivxImgPreProcNode (DSP-C66内核)。 我没有进行任何抽取。

    但我们必须假设模型保持不变。

    是的、型号相同。

    您能比较应用程序的独立预处理部分和预处理部分吗?

    如前所述、preproc 是  tivxImgPreProcNode、我们知道独立预处理由 tidl_model_import.out 二进制文件完成。  

    我已在使用的导入配置文件下方上传。

    e2e.ti.com/.../import_5F00_file.txt

    请引导我!

    谢谢、

    Raju。

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

    尊敬的先生:

    是否有基于上述信息的更新?

    谢谢、

    Raju。

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

    您好;

    我们仍然无法完全理解您的问题。 因此、让我重新分组:

    1.你说填充数据是错误的吗? 它们是否超出范围? 通过阅读您的帖子、它处于16位范围内。 "你以为你赢了吗?

    2.您使用 VOOYA 检查图像/视频,但结果错误。 正确的定义是什么。 VOOYA 只是一个原始的视频播放器。  

    3.为什么你说你得到无效的输出。 您的无效输出是什么样子的?

    4.  "我甚至验证了另一个型号的 szie 512x320(16位),我也面临同样的问题"这 是什么问题? 请先定义一个问题

    您能清楚地描述您的问题吗? 因为我们还没有应用的源代码和架构。

    谢谢。此致

    Wen Li

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

    尊敬的先生:

    您是否认为填充数据错误? 它们超出范围?

    填充问题已解决。 边框填充值为0。 即左、上、右和下。 在演示应用中也观察到了同样的行为。 我请求您忽略我在线程的起始查询时提出的填充问题。

    [引述 userid="35182" url="~/support/processors-group/processors/f/processors-forum/1476942/tda4vm-unexpected-pre-proc-node-output/5771475 #5771475"]

    您能清楚地描述您的问题吗? 因为我们还没有应用的源代码和架构。

    [/报价]

    我的管道是 File_input-'>scaler->pre-proc->TIDL->post-proc->output

    当我给出输入图像时、应用程序的输出不正确。 它大声地给出了一个愿景失败的类。 它给了一个错误的阶级。

    作为调试的一部分、我使用相同的输入映像完成了独立的目标推理、并获得了 TIDL 推理输出。 我将此输出传递到应用程序中的后处理节点、然后它提供了准确的类/输出。 这样就发现了后处理节点、而不是瓶颈。

    缩放器节点仅用于降压调节、因此它也不能导致该问题。 由于首先提出了以下意见。

    [引述 userid="560861" url="~/support/processors-group/processors/f/processors-forum/1476942/tda4vm-unexpected-pre-proc-node-output/5712036 #5712036"]

    主要问题可以简化为"在独立推理中将输入映像与 TIDL 的差异以及将同一输入映像应用到流水线中"。

    例如、我在下面分享了这两个文件。 这两个文件是预处理输出(TIDL 的输入)。 我们可以发现同一输入图像的值差异。 第一个文件是独立的(正确的大小写)、第二个文件来自应用程序(错误的大小写)

    stdalone_tidl_input_firstimage.txt

    app_tidl_input_firstimage.txt

    由于值/像素的差异、DL 网络中的后续层会在应用程序出现时提供错误的输出。

    [/报价]

    我希望我能清楚地说明问题。 我希望你的支持,在研究这个问题,我们该如何解决它?

    非常感谢、

    Raju。