# 疑難解答和常見問題解答

1. 默認情況下，當 EVK 連接到外部顯示器時，會顯示花卉屏幕。

    如果未顯示花卉屏幕，請在新的 SSH shell 中運行以下命令：

export GBM_BACKEND=msm && export XDG_RUNTIME_DIR=/dev/socket/weston && mkdir -p $XDG_RUNTIME_DIR && weston --continue-without-input --idle-time=0
        Copy to clipboard
2. 如何使用調試日誌調試示例應用程序？

    要排除運行 AI 示例應用程序或 gst-launch-1.0 時的執行故障，請啟用調試日誌。

    要在 GStreamer 示例應用程序中啟用調試日誌，請使用 `GST_DEBUG` 環境變量設置調試級別。

    `GST_DEBUG` 環境變量控制調試輸出的詳細程度。您可以將其設置為不同的級別，例如：

    - 0: 無（無調試信息）
    - 1: 錯誤（記錄所有致命錯誤）
    - 2: 警告（記錄所有警告）
    - 3: FIXME（記錄不完整的代碼路徑）
    - 4: 信息（記錄信息性消息）
    - 5: 調試（記錄一般調試消息）
    - 6: 日誌（記錄所有日誌消息）
    - 7: 跟踪（記錄跟踪消息）
    - 9: MEMDUMP（記錄內存轉儲）

    例如，要將調試級別設置為錯誤，您可以在終端中使用以下命令：

export GST_DEBUG=2
        Copy to clipboard

    如果要過濾特定類別的調試日誌，可以在 `GST_DEBUG` 變量中指定它們。例如，要啟用 ML 推理外掛程式和 FPS 的調試日誌，您可以使用：

export GST_DEBUG=qtiml*:fps*:5
        Copy to clipboard
3. 有哪些常見問題會阻礙 AI 示例應用程序的快速開箱即用體驗？

    AI 示例應用程序的開箱即用體驗旨在非常快速。然而，以下問題是最常見的阻礙快速開箱即用體驗的問題。

    - 無法加載模型檔案

0:00:00.042355885 4275 0x5579b9f760 ERROR ml-tflite-engine ml-tflite-engine-c-api.cc:578:gst_ml_tflite_engine_new: Failed to load model file '/etc/models/googlenet_quantized.tflite'!
            Copy to clipboard

        當模型檔案丟失或格式不正確時會出現此問題。

        將模型檔案複製到正確路徑，並確保在目標設備上使用相同的 SDK 版本進行模型轉換/量化。
    - 無法反序列化標籤

0:00:00.543394063 4676 0x55aca865e0 ERROR mlmodule gstmlmodule.c:301:gst_ml_parse_labels: Failed to deserialize labels!
            Copy to clipboard

        當指定路徑上的標籤檔案不存在時會發生此問題。確保標籤檔案已複製到設備並且指定路徑正確。
    - 無法設置模塊選項

0:00:00.55129740 4958 0x5561019180 WARN  qtimlvclassification mlvclassification.c:986:gst_ml_video_classification_set_caps:<mlvideoclassification0> error: Failed to set module options!
            Copy to clipboard

        在為 LiteRT/Qualcomm AI Engine 直接使用案例設置常數時會發生此問題。請參閱 [在應用程序中集成AI Hub模型](https://docs.qualcomm.com/doc/80-70018-15BT/topic/integrate-ai-hub-models.html) 了解正確讀取和設置模型常數的步驟。
4. 如何測量 AI 示例應用程序性能分析？

    - 預處理時間

        在將輸入提供給 AI 推理外掛程式之前，必須對輸入進行預處理（包括歸一化、重新縮放和顏色反轉）。此任務由預處理外掛程式 `qtimlvconverter` 管理。您可以通過執行以下命令來測量預處理時間：

export GST_DEBUG=qtimlvconverter:6
            Copy to clipboard

        預處理時間顯示在日誌中。

LOG qtimlvconverter mlconverter.c:1830:gst\_ml\_video\_converter\_transform:&lt;qtimlvconverter&gt; 轉換花費 2.743 毫秒
    - 模型推理時間

        Qualcomm 智慧多媒體 SDK 支持三個利用 Qualcomm 神經處理 SDK、LiteRT 和 Qualcomm AI 引擎直接框架的 AI 推理外掛程式。

        - qtimlsnpe
        - qtimltflite
        - qtimlqnn

        這些外掛程式可以在各種硬體上運行推理，例如 CPU、GPU 和 HTP。要確定硬體上的 AI 推理時間，請使用以下命令。

export GST_DEBUG=qtiml*:6
            Copy to clipboard

LOG qtimlvtflite mltflite.c:561:gst\_ml\_tflite\_transform:&lt;qtimltflite&gt; 執行花費 3.445 毫秒 LOG qtimlvtflite mltflite.c:561:gst\_ml\_tflite\_transform:&lt;qtimltflite&gt; 執行花費 3.555 毫秒
    - 後處理時間

        AI 推理外掛程式的輸出由後處理外掛程式處理。這些外掛程式採用 AI 模型的結果並生成可以覆蓋在輸入流上的元素或用於進一步計算。例如，`qtimlvclassification` 的文本框，`qtimlvsegmentation` 的分割掩碼等。

        要測量這些外掛程式的處理時間，請使用以下命令。

export GST_DEBUG=qtimlv*:6
            Copy to clipboard

        後處理時間顯示在日誌中。以下使用 `qtimlvclassification` 外掛程式作為示例。

LOG qtimlvclassification mlvclassification.c:1068:gst\_ml\_video\_classification\_transform:&lt;qtimlvclassification&gt; 分類花費 1.962 毫秒
5. 如何測量用例的端到端 FPS？

    要測量 GStreamer 管道中的每秒幀數（FPS），請使用 `fpsdisplaysink` 元素。此元素可以將當前和平均幀率顯示為影片上的疊加或打印到控制台。

    示例應用程序使用 `fpsdisplaysink` 外掛程式將管道的 FPS 直接顯示在 HDMI 顯示器上。
6. 如何最簡單地在參考應用程序中用自定義模型替換現有模型？

    確保您使用的是正確的模型和標籤檔案來進行示例應用程序。

    提供 `--model_path` 和 `--label_path` 選項以及相應的檔案路徑。

    示例應用程序將使用指定位置的模型和標籤檔案。

    有關更多信息，請參閱 [在應用程序中集成AI Hub模型](https://docs.qualcomm.com/doc/80-70018-15BT/topic/integrate-ai-hub-models.html)。
7. 用戶在參考應用程序中替換了另一個受支持的模型（IMSDK 支持）。如何調試性能和準確性問題？

    要測量模型的性能和準確性問題，請使用 AI SDK 工具，您可以按照以下步驟操作：

    - 性能測量：

        使用 SDK 基準測試工具。例如，如果您使用的是 Qualcomm 神經處理引擎 SDK，請使用 [https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/tools.html#snpe-bench-py](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/tools.html#snpe-bench-py)
    - 準確性調試器：

        - AI Hub 模型：

            1. 確保您使用的是 AI Hub 的最新模型。
            2. 正確填寫所選模型的常數。 有關更多信息，請參閱 [在應用程序中集成AI Hub模型](https://docs.qualcomm.com/doc/80-70018-15BT/topic/integrate-ai-hub-models.html)。
            3. 有關 AI Hub 模型準確性問題的進一步支持，請在 [Qualcomm AI Hub slack](https://qualcomm-ai-hub.slack.com/join/shared_invite/zt-2ur7psfuu-CygEMlDFjoHTbPKIRCVYuQ%23/shared-invite/email) 上報告您的問題。
        - 自定義模型

            1. 模型量化是準確性下降的常見原因。 確保您使用正確的數據集進行模型量化。 用戶應使用數據集的一部分，該數據集是實際部署環境的近似值，用於訓練後量化 (PTQ)。 為了使 PTQ 獲得良好的結果，用戶需要提供足夠數量的數據來量化模型，例如大約 25-30 張 RAW 圖像。
            2. 嘗試不同的模型精度，例如 W8A16 和 W16A16，看看模型準確性是否有所提高。
            3. 使用 AIMET 進行訓練後量化 (PTQ) 和量化感知訓練 (QAT) 技術進行高級量化。 有關更多詳細信息，請參閱 [AIMET 文檔](https://quic.github.io/aimet-pages/releases/latest/user_guide/index.html)。
8. 使用 AI SDK 進行模型量化的最佳實踐是什麼？

    - 準備校準數據

        使用與模型在生產中遇到的數據非常匹配的代表性校準數據。 這有助於準確確定量化的縮放因子和零點
    - 選擇正確的量化方法

        - 訓練後量化 (PTQ)：此方法更簡單、更快。 適用於輕微精度損失可接受的模型。 它將預訓練的浮點模型轉換為量化模型，而無需重新訓練。
        - 量化感知訓練 (QAT)：此方法涉及考慮到量化來訓練模型，這有助於保持更高的準確性。 它更複雜，但對於精度至關重要的模型有益。

        有關詳細步驟，請參閱 [AIMET 文檔](https://quic.github.io/aimet-pages/releases/latest/user_guide/index.html)。
9. AI SDK 提供將 LiteRT 轉換為 DLC 的工具。 用戶是否必須將 LiteRT 模型轉換為 DLC 還是 LiteRT 模型可以直接在 NPU 上加速？

    您不一定要將 LiteRT 模型轉換為 DLC 才能在 NPU 上加速它們。 Qualcomm 的 AI SDK 支持使用 LiteRT 代理直接在 NPU 上運行 LiteRT 模型。 這意味著您可以利用 NPU 功能，而無需將 LiteRT 模型轉換為 DLC 格式。
10. AI SDK 提供將 PyTorch、Onnx 和 Tensorflow 模型轉換為 DLC 的工具。 哪個是部署最快捷徑？

    首先將您的模型轉換為 ONNX 然後再轉換為 DLC 通常是部署最快且最靈活的方法。
11. 用戶如何知道模型是否在 NPU 上運行？

    使用以下來自 Qualcomm 的工具：

    1. [Qualcomm 分析器](https://docs.qualcomm.com/bundle/publicresource/topics/80-54323-2/command-line-interface.html)
    2. Sysmon（鏈接待定）
12. 用戶如何利用 Snapdragon 平台的異構 AI 引擎？ 用戶如何在不同的硬體核心（GPU、NPU 等）上運行不同的 AI 模型？

    AI SDK 工具和 API 提供選項來選擇運行時（CPU、GPU 或 DSP）。 您可以選擇適當的運行時作為命令行參數或使用特定的 C/C++ API。 有關更多詳細信息，請參閱 [https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/tools.html#snpe-net-run](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/tools.html#snpe-net-run).

    AI 示例應用程序默認使用 DSP 運行時。 您可以使用示例應用程序配置更改運行時。

    例如，在 `gst-ai-object-detection` 示例應用程序中修改 `config_detection.json` 檔案中的 `runtime` 參數。

    運行時：

    - `"cpu"`
    - `"gpu"`
    - `"dsp"`
13. 如果模型轉換失敗，如何使用 AI SDK 繼續進行？

    聯繫 [Qualcomm 支援論壇](https://mysupport.qualcomm.com/supportforums/s/) 以獲得支援。
14. 自定義浮點模型在 CPU 上提供良好的準確性，但量化模型在 CPU 和 NPU 上的準確性都很差。如何調試？

    可能與模型量化有關的問題，請參閱 [user replaced model](https://docs.qualcomm.com/doc/80-70018-15BT/topic/troubleshooting.html#user-replaced-model) FAQ 以獲得模型量化的指導
15. 自定義量化模型在 CPU 上運行正常，但在 NPU 上運行不準確。如何調試？

    待定
16. 運行示例應用程序時，HDMI 屏幕上沒有輸出。如何調試？

    請按照 [顯示調試](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-18/debug.html) 進行 HDMI 顯示問題的調試。
17. 是否可以使用 HDMI 電視而不是 HDMI 顯示器來運行示例應用程序？

    大多數情況下可以，如果不能請使用 HDMI 顯示器。
18. 如何檢查 AI 示例應用程序的硬體運行時？

    許多 GStreamer 示例應用程序支持在各種運行時（CPU、GPU 和 DSP）上進行推理。要確定應用程序將使用哪個運行時進行推理，請觀察日誌。

    - CPU

運行應用程序，使用模型：/usr/models/inception\_v3\_quantized.tflite 和標籤：/usr/labels/classification.labels 使用 CPU 委託 添加所有元素到管道…
    - GPU

運行應用程序，使用模型：/usr/models/inception\_v3\_quantized.tflite 和標籤：/usr/labels/classification.labels 使用 GPU 委託 添加所有元素到管道…
    - DSP

運行應用程序，使用模型：/usr/models/inception\_v3\_quantized.tflite 和標籤：/usr/labels/classification.labels 使用 DSP 委託 添加所有元素到管道…
19. 什麼是 devtool 健全性檢查錯誤？如何調試？

    有時，您可能會看到 devtool 顯示健全性檢查錯誤。

    確保您擁有主機電腦的 sudo 訪問權限。如果錯誤仍然存在，請執行以下工作：

    1. 更新權限。

umask a+rx
            Copy to clipboard
    2. 在 `$ESDK_ROOT/layers/poky/meta/conf/sanity.conf` 檔案中禁用 BitBake 健全性檢查。

BB_MIN_VERSION = "1.53.1"
            SANITY_ABIFILE = "${TMPDIR}/abi_version"
            SANITY_VERSION ?= "1"
            LOCALCONF_VERSION ?= "2"
            LAYER_CONF_VERSION ?= "7"
            SITE_CONF_VERSION ?= "1"
            
            #INHERIT += "sanity"
            Copy to clipboard

## 進一步支持

在 [Qualcomm 支援論壇](https://mysupport.qualcomm.com/supportforums/s/) 上提出您的問題。

Last Published: Oct 15, 2025

[Previous Topic
使用超分辨率放大圖像](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BT/topics/super-resolution.md) [Next Topic
模型移植最佳實踐](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BT/topics/appx-export-yolov8.md)