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:用于 GStreamer 镜头失真校正的传感器名称和传感器 ID

Guru**** 2405385 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1488529/tda4vm-sensor-name-and-sensor-id-for-gstreamer-lens-distortion-correction

器件型号:TDA4VM

工具与软件:

您好、TI 专家!

我正在使用 LDC via tiovxldc gstreamer 插件。 下面是一个示例流水线:

    gst-launch-1.0 \
    filesrc location=frames/ti_forum_1280x944_uyvy.png ! decodebin ! videoconvert ! video/x-raw, format=NV12, width=1280, height=944 ! imagefreeze num-buffers=1 ! \
    tiovxldc name=ldc dcc-file=dcc_bin/cid390_SENSOR_SONY_IMX390_UB953_D3_mesh_ldc_dcc_flip.bin sensor-name=SENSOR_SONY_IMX390_UB953_D3 ! video/x-raw, format=NV12 ! videoconvert name=tiovxldc_videoconv ! pngenc snapshot=TRUE ! filesink location=tiovxldc_out/chessboard_1920x1080_tiovxldc_IMX390_390_IMX390_flip.png

使用 DCC 调优工具生成 bin 文件后、我能够正确运行此类 gstreamer 流水线。

但是、我需要:

  •    在 GStreamer 流水线中将以下代码之一用作 sensor-name=:
    • SENSOR_SONY_IMX390_UB953_D3
    • SENSOR_ONSEMI_AR0820_UB953_LI
    • SENSOR_ONSEMI_AR0233_UB953_MARS
    • SENSOR_SONY_IMX219_RPI
    • SENSOR_OV2312_UB953_LI
  • 在 DCC 项目的原始属性中设置与此摄像机相对应的传感器名称和传感器 ID (dccId)

我的问题是:

  1. 为什么我需要 指定 所使用的传感器?
    我的直觉建议,这个插件应该只执行图像的转换,其参数都包含在通过  DCC-file=传递的 bin 文件中
    输入帧大小等参数也会在 Mesh LDC 插件的"Advanced"选项卡中指定。 因此我无法理解为什么需要指定名称。
  2. 为什么只有这组有限的传感器可用并在 GST 模块中进行了硬编码
  3. 当传感器名称/id 组合不匹配但未显示错误时、为什么输出与输入相同?

谢谢!
Loris

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

    您好、Loris:

    Unknown 说:
    为什么需要 指定 要使用的传感器?

    您是否想问为什么在 GStreamer 流水线中指定传感器名称? 如果没有在流水线中定义传感器名称、 将出现 vx_zone_error 消息。 一些 DDC 二进制文件与其他受支持的传感器共享相同或相似的文件名、但位于各自的目录中。 要求 sensor-name 可确保 DCC 文件与所使用的传感器兼容、因为在目标上使用时、您无法检查二进制文件的内容。

    [quote userid="634242" url="~/support/processors-group/processors/f/processors-forum/1488529/tda4vm-sensor-name-and-sensor-id-for-gstreamer-lens-distortion-correction 为什么只有这套有限的传感器可用并在 GST 模块中进行了硬编码

    这些是当前支持的开箱即用型传感器。 如果您想使用其他传感器、则必须启用它并自行添加。

    [quote userid="634242" url="~/support/processors-group/processors/f/processors-forum/1488529/tda4vm-sensor-name-and-sensor-id-for-gstreamer-lens-distortion-correction 为什么当传感器名称/id 组合不匹配但未显示任何错误时输出与输入相同?

    您能详细说明一下吗? 我刚刚 使用 imx219 DCC 二进制文件运行了测试流水线、在 GStreamer 流水线中使用 sensor-name="sensor_Sony_IMX390_UB953_"D3"、并按预期收到错误。

    谢谢!

    Fabiana

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

    如果我理解正确、这更像是"安全"检查?

    但是、如果我运行以下代码、其中 IMX390的 bin 为 sensor-name=sensor_Sony_IMX219_RPI、这就是我在命令行中获得的内容

    root@tda4vm-sk:~/dvc/lens_distortion#     gst-launch-1.0 \
    >     filesrc location=frames/chessboard.png ! decodebin ! videobox autocrop=true ! videoconvert ! video/x-raw, format=NV12, width=1920, height=1080 ! imagefreeze num-buffers=1 ! \
    >     tiovxldc name=ldc dcc-file=/opt/imaging/imx390/linear/dcc_ldc.bin sensor-name=SENSOR_SONY_IMX219_RPI ! video/x-raw, format=NV12 ! videoconvert name=tiovxldc_videoconv ! pngenc snapshot=TRUE ! filesink location=tiovxldc_out/b.png
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=5) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    1032751.278311 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
    1032751.278460 s:  VX_ZONE_INIT:Enabled
    1032751.278502 s:  VX_ZONE_ERROR:Enabled
    1032751.278538 s:  VX_ZONE_WARNING:Enabled
    1032751.279054 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0
    1032751.279216 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1
    1032751.279348 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2
    1032751.279459 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3
    1032751.279509 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
    1032751.279952 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    Redistribute latency...
    New clock: GstSystemClock
    Got EOS from element "pipeline0".
    Execution ended after 0:00:00.000906328
    Setting pipeline to NULL ...
    Freeing pipeline ...
    1032751.622544 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
    1032751.626996 s:  VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 8 alloc's of 18797512 bytes
    DDR_SHARED_MEM: Free's : 8 free's  of 18797512 bytes
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!

    然后将创建一个输出图像(b.png):棋盘图形与输入 chessboard.png 完全相同

    当我指定正确的传感器(SENSOR_SONY_IMX390_UB953_D3)时、会发生这种情况作为参考。

    root@tda4vm-sk:~/dvc/lens_distortion#     gst-launch-1.0 \
    >     filesrc location=frames/chessboard.png ! decodebin ! videobox autocrop=true ! videoconvert ! video/x-raw, format=NV12, width=1920, height=1080 ! imagefreeze num-buffers=1 ! \
    >     tiovxldc name=ldc dcc-file=/opt/imaging/imx390/linear/dcc_ldc.bin sensor-name=SENSOR_SONY_IMX390_UB953_D3 ! video/x-raw, format=NV12 ! videoconvert name=tiovxldc_videoconv ! pngenc snapshot=TRUE ! filesink location=tiovxldc_out/a.png
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=5) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    1032745.241988 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
    1032745.242174 s:  VX_ZONE_INIT:Enabled
    1032745.242222 s:  VX_ZONE_ERROR:Enabled
    1032745.242263 s:  VX_ZONE_WARNING:Enabled
    1032745.242807 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 
    1032745.243041 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 
    1032745.243205 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 
    1032745.243333 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 
    1032745.243390 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
    1032745.243906 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    Redistribute latency...
    New clock: GstSystemClock
    Got EOS from element "pipeline0".
    Execution ended after 0:00:00.001188129
    Setting pipeline to NULL ...
    Freeing pipeline ...
    1032745.642276 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
    1032745.646657 s:  VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 8 alloc's of 18797512 bytes
    DDR_SHARED_MEM: Free's : 8 free's  of 18797512 bytes
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!

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

    您好、Loris:

    我运行了您共享的流水线、我观察到同样的行为。 该安全检查似乎是在使用 DCC_Vis 和 DCC_2a 二进制文件时实现的、但在使用 DCC_LDC 时不实现。 我已经将这些信息分享给了 我们的 成像团队、 我将 进一步对此进行探讨。 感谢您指出这一点。

    此致、

    Fabiana