ZHCACO4 may   2023 AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM67A , AM68A , AM69A

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 目标读者
    2. 1.2 主机信息
  5. 2创建数据集
    1. 2.1 收集图像
    2. 2.2 标记图像
    3. 2.3 增强数据集(可选)
  6. 3选择模型
  7. 4训练模型
    1. 4.1 输入优化(可选)
  8. 5编译模型
  9. 6使用模型
  10. 7构建最终应用
    1. 7.1 使用 TI 的 Gstreamer 插件优化应用
    2. 7.2 使用原始 MIPI-CSI2 摄像头
  11. 8总结
  12. 9参考文献

使用 TI 的 Gstreamer 插件优化应用

流应用可从流水线中获得很大好处,因为应用的每个组件都在单独的进程中运行。当硬件加速器和多个 CPU 内核可用以允许并发时,这会很有效。TI 的 gstreamer 插件经过优化,可以利用 AM6xA 处理器的异构架构,并通过零缓冲区副本实现,以减少内存开销。

OpTIFlow 插件( tiovxdlpreproc、tidlinferer 和 tidlpostproc)有助于有效地形成 AI 应用流水线,因为它们允许并行进行预处理、推理和后处理。使用 OpTIFlow 插件,唯一需要在专用应用程序代码中运行的功能就是使用深度学习输出。在零售扫描仪应用中,这意味着创建一个列出顾客订单的小图像。图 7-1 阐明了这一流水线。有关确切的 gstreamer 流水线和详细说明,请参阅 HOW_ITS_MADE.md 自述文件。

在 AM62A(Processor SDK 8.6,入门套件 EVM 的 E2 修订版)上使用此流水线时,帧速率为 15fps 至 18fps。主要瓶颈是 Python 应用程序代码,因为这包括额外的内存副本和使用 OpenCV 进行的多个文本绘制函数调用。深度学习加速器的负载为 25% - 30%,四通道 A53 CPU 的负载为 30% - 40%(所有内核的平均值),32 位 3200 MT/s LPDDR4 的负载为 20%。

优化流水线以更好地减轻应用程序不同任务的负担,就 FPS 和延迟降低的量级而言,性能提升了 200% 以上。可以采取更多措施来进行优化,例如在 C/C++ 中开发、创建更高效的函数以便一次性将所有文本写入帧(或完全删除应用程序的那一部分),甚至将应用程序代码转换为 GST 插件。

GUID-20230424-SS0I-GWPC-ZLZM-ZWQDPBNRM9BF-low.svg图 7-1 零售扫描仪应用的 gstreamer 流水线方框图