# Khắc phục sự cố và Câu hỏi thường gặp

1. Theo mặc định, khi EVK được kết nối với màn hình ngoài, màn hình hoa sẽ hiển thị.

    Nếu màn hình hoa không hiển thị, hãy chạy lệnh sau trong shell SSH mới:

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. Làm cách nào để gỡ lỗi ứng dụng mẫu bằng debug logs?

    Để khắc phục lỗi thực thi khi chạy ứng dụng mẫu AI hoặc gst-launch-1.0, hãy bật debug logs.

    Để bật debug logs trong ứng dụng mẫu GStreamer, hãy dùng biến môi trường `GST_DEBUG` để đặt debug level.

    Biến môi trường `GST_DEBUG` kiểm soát độ chi tiết của debug output. Bạn có thể đặt các mức khác nhau cho biến này, chẳng hạn như:

    - 0: None (không có thông tin gỡ lỗi)
    - 1: ERROR (ghi lại tất cả các lỗi nghiêm trọng)
    - 2: WARNING (ghi lại tất cả các cảnh báo)
    - 3: FIXME (ghi lại các đường dẫn mã không đầy đủ)
    - 4: INFO (ghi lại các thông báo cung cấp thông tin)
    - 5: DEBUG (ghi lại các thông báo gỡ lỗi chung)
    - 6: LOG (ghi lại mọi bản tin log)
    - 7: TRACE (ghi lại các bản tin trace)
    - 9: MEMDUMP (ghi lại memory dumps)

    Ví dụ: để đặt mức gỡ lỗi thành ERROR, bạn có thể dùng lệnh sau trong cửa sổ dòng lệnh:

export GST_DEBUG=2
        Copy to clipboard

    Nếu muốn lọc debug logs cho các danh mục cụ thể, bạn có thể chỉ định chúng trong biến `GST_DEBUG`. Ví dụ: để bật debug logs cho plugin suy luận ML và FPS, bạn có thể dùng:

export GST_DEBUG=qtiml*:fps*:5
        Copy to clipboard
3. Những vấn đề phổ biến nào ngăn cản trải nghiệm sử dụng ngay lập tức cho các ứng dụng mẫu AI?

    Các ứng dụng mẫu AI được thiết kế để đem lại trải nghiệm ngay lập tức rất nhanh chóng. Tuy nhiên, sau đây là những vấn đề thường gặp nhất ngăn cản trải nghiệm này.

    - Không tải được tệp mô hình

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

        Vấn đề này phát sinh khi tệp mô hình bị thiếu hoặc không ở đúng định dạng.

        Hãy sao chép tệp mô hình vào đúng đường dẫn và đảm bảo bạn đang dùng chính phiên bản SDK được dùng để chuyển đổi định dạng/lượng tử hóa mô hình và trên thiết bị đích.
    - Không giải tuần tự được các nhãn

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

        Vấn đề này xảy ra khi tệp nhãn được chỉ định tại đường dẫn không tồn tại. Hãy đảm bảo rằng tệp nhãn được sao chép vào thiết bị và đường dẫn được chỉ định là chính xác.
    - Không thiết lập được tùy chọn mô-đun

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

        Vấn đề này xảy ra khi thiết lập hằng số cho các trường hợp sử dụng trực tiếp trên LiteRT/Qualcomm AI Engine. Hãy xem [Tích hợp mô hình AI Hub trong ứng dụng](https://docs.qualcomm.com/doc/80-70018-15BV/topic/integrate-ai-hub-models.html) để biết các bước đọc và thiết lập chính xác hằng số mô hình.
4. Làm cách nào để đo lường hiệu suất ứng dụng mẫu AI?

    - Thời gian tiền xử lý

        Trước khi đưa dữ liệu đầu vào vào plugin suy luận AI, đầu vào phải được tiền xử lý (bao gồm chuẩn hóa, thay đổi kích thước và đảo màu). Tác vụ này được xử lý bởi plugin tiền xử lý, `qtimlvconverter`. Bạn có thể đo lường thời gian tiền xử lý bằng cách thực hiện lệnh sau:

export GST_DEBUG=qtimlvconverter:6
            Copy to clipboard

        Thời gian tiền xử lý hiển thị trong log.

LOG   qtimlvconverter mlconverter.c:1830:gst\_ml\_video\_converter\_transform:&lt;qtimlvconverter&gt; Conversion took 2.743 ms
    - Thời gian suy luận mô hình

        Qualcomm Intelligent Multimedia SDK hỗ trợ 3 plugin suy luận AI dùng các framework Qualcomm Neural Processing SDK, LiteRT và Qualcomm AI Engine Direct.

        - qtimlsnpe
        - qtimltflite
        - qtimlqnn

        Các plugin này có thể chạy suy luận trên nhiều phần cứng, chẳng hạn như CPU, GPU và HTP. Để xác định thời gian suy luận AI trên phần cứng, hãy dùng lệnh sau.

export GST_DEBUG=qtiml*:6
            Copy to clipboard

LOG qtimlvtflite mltflite.c:561:gst\_ml\_tflite\_transform:&lt;qtimltflite&gt; Execute took 3.445 ms
LOG qtimlvtflite mltflite.c:561:gst\_ml\_tflite\_transform:&lt;qtimltflite&gt; Execute took 3.555 ms
    - Thời gian hậu xử lý

        Đầu ra từ các plugin suy luận AI được xử lý bởi plugin hậu xử lý. Các plugin này lấy kết quả của mô hình AI và tạo ra các phần tử có thể được chồng lên luồng đầu vào hoặc được dùng để tính toán thêm. Ví dụ: text boxes cho `qtimlvclassification`, segmentation masks cho `qtimlvsegmentation`, v.v.

        Để đo lường thời gian xử lý cho các plugin này, hãy dùng lệnh sau. .. code-block:

export GST_DEBUG=qtimlv*:6
            Copy to clipboard

        Thời gian hậu xử lý hiển thị trong log. Lệnh sau dùng các plugin `qtimlvclassification` làm ví dụ.

LOG    qtimlvclassification mlvclassification.c:1068:gst\_ml\_video\_classification\_transform:&lt;qtimlvclassification&gt; Categorization tookExecute took 1.962 ms
5. Làm thế nào để đo lường FPS của toàn bộ quy trình trong một trường hợp sử dụng?

    Để đo lường số khung hình trên giây (FPS) trong pipeline GStreamer, hãy dùng phần tử `fpsdisplaysink`. Phần tử này có thể hiển thị tốc độ khung hình hiện tại và trung bình dưới dạng overlay trên video hoặc bằng cách in tốc độ ra màn hình dòng lệnh (console).

    Ứng dụng mẫu dùng plugin `fpsdisplaysink` để hiển thị FPS của pipeline ngay trên màn hình HDMI.
6. Cách dễ nhất để thay thế mô hình hiện có bằng mô hình tùy chỉnh trong ứng dụng tham chiếu là gì?

    Đảm bảo bạn đang dùng đúng mô hình và tệp nhãn cho ứng dụng mẫu.

    Cung cấp các tùy chọn `--model_path` và `--label_path` với các đường dẫn tệp tương ứng.

    Ứng dụng mẫu sẽ dùng các tệp mô hình và nhãn từ các vị trí đã chỉ định.

    Hãy xem [Tích hợp mô hình AI Hub trong ứng dụng](https://docs.qualcomm.com/doc/80-70018-15BV/topic/integrate-ai-hub-models.html) để biết thêm thông tin.
7. Người dùng đã thay thế một mô hình được hỗ trợ khác (được IMSDK hỗ trợ) trong ứng dụng tham chiếu. Làm cách nào để gỡ lỗi các vấn đề về hiệu suất và độ chính xác?

    Để đo lường các vấn đề về hiệu suất và độ chính xác của mô hình, vui lòng dùng các công cụ AI SDK, bạn có thể làm theo các bước sau:

    - Đo lường hiệu suất:

        Dùng công cụ benchmarking của SDK. Ví dụ: Nếu bạn đang sử dụng Qualcomm Neural Processing Engine SDK, hãy dùng [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)
    - Trình gỡ lỗi độ chính xác:

        - Mô hình AI Hub:

            1. Đảm bảo bạn đang dùng mô hình mới nhất từ AI Hub.
            2. Điền chính xác các hằng số cho mô hình bạn đã chọn. Hãy xem [Tích hợp mô hình AI Hub trong ứng dụng](https://docs.qualcomm.com/doc/80-70018-15BV/topic/integrate-ai-hub-models.html) để biết thêm thông tin.
            3. Để được hỗ trợ thêm về các vấn đề liên quan đến độ chính xác của mô hình AI Hub, hãy báo cáo vấn đề trên [Qualcomm AI Hub slack](https://qualcomm-ai-hub.slack.com/join/shared_invite/zt-2ur7psfuu-CygEMlDFjoHTbPKIRCVYuQ%23/shared-invite/email).
        - Mô hình tùy chỉnh

            1. Lượng tử hóa mô hình là nguyên nhân phổ biến khiến giảm độ chính xác. Đảm bảo bạn đang dùng đúng tập dữ liệu để lượng tử hóa mô hình. Người dùng nên dùng một phần tập dữ liệu là giá trị gần đúng của môi trường triển khai thực tế để Lượng tử hóa sau huấn luyện (PTQ). Để PTQ mang lại kết quả tốt, người dùng cần cung cấp một lượng dữ liệu phù hợp để lượng tử hóa mô hình, ví dụ: khoảng 25-30 ảnh RAW.
            2. Thử nghiệm với các độ chính xác mô hình khác nhau, chẳng hạn như W8A16 và W16A16, để xem liệu độ chính xác của mô hình có cải thiện hay không.
            3. Dùng AIMET cho các kỹ thuật Lượng tử hóa sau huấn luyện (PTQ) và Huấn luyện có nhận thức về lượng tử hóa (QAT) để lượng tử hóa nâng cao. Hãy xem [tài liệu về AIMET](https://quic.github.io/aimet-pages/releases/latest/user_guide/index.html) để biết thêm chi tiết.
8. Đâu là các phương pháp hay nhất để lượng tử hóa mô hình bằng AI SDK?

    - Chuẩn bị dữ liệu hiệu chuẩn

        Dùng dữ liệu hiệu chuẩn có tính đại diện, tương đồng với dữ liệu mà mô hình sẽ xử lý trong môi trường thật. Điều này giúp xác định chính xác các hệ số tỷ lệ và điểm gốc cho quá trình lượng tử hóa.
    - Chọn phương pháp lượng tử hóa phù hợp

        - Lượng tử hóa sau huấn luyện (PTQ): Phương pháp này đơn giản hơn và nhanh hơn. Phù hợp với các mô hình chấp nhận sai lệch độ chính xác một chút. Phương pháp này chuyển đổi mô hình dấu phẩy động được huấn luyện sẵn thành mô hình lượng tử hóa mà không cần huấn luyện lại.
        - Huấn luyện có nhận thức về lượng tử hóa (QAT): Phương pháp này liên quan đến việc huấn luyện mô hình có tính đến lượng tử hóa, nhờ đó duy trì độ chính xác cao hơn. Phương pháp này phức tạp hơn nhưng hữu ích với các mô hình yêu cầu cao về độ chính xác.

        Hãy xem [tài liệu về AIMET](https://quic.github.io/aimet-pages/releases/latest/user_guide/index.html) để biết các bước chi tiết.
9. AI SDK cung cấp các công cụ để chuyển đổi LiteRT sang DLC. Người dùng có phải chuyển đổi các mô hình LiteRT sang DLC hay các mô hình LiteRT có thể tăng tốc trực tiếp trên NPU?

    Bạn không nhất thiết phải chuyển đổi các mô hình LiteRT sang DLC để tăng tốc mô hình trên NPU. AI SDK của Qualcomm hỗ trợ chạy các mô hình LiteRT trực tiếp trên NPU bằng cách dùng delegate LiteRT. Điều này có nghĩa là bạn có thể tận dụng các khả năng của NPU mà không cần chuyển đổi các mô hình LiteRT sang định dạng DLC.
10. AI SDK cung cấp công cụ để chuyển đổi các mô hình PyTorch, Onnx và Tensorflow sang DLC. Trong số những cách sau, đâu là cách triển khai nhanh nhất?

    Thông thường, cách triển khai nhanh nhất và linh hoạt nhất là chuyển đổi các mô hình sang ONNX trước rồi mới chuyển sang DLC.
11. Làm cách nào để người dùng biết liệu mô hình có đang chạy trên NPU hay không?

    Hãy dùng các công cụ sau đây từ Qualcomm:

    1. [Công cụ lập hồ sơ của Qualcomm](https://docs.qualcomm.com/bundle/publicresource/topics/80-54323-2/command-line-interface.html)
    2. Sysmon (Liên kết sẽ thông báo sau)
12. Người dùng được hưởng lợi như thế nào từ các công cụ AI không đồng nhất của nền tảng Snapdragon? Người dùng làm cách nào để chạy các mô hình AI khác nhau trên các lõi Phần cứng khác nhau? (GPU, NPU, v.v.)

    Các công cụ và API của SDK AI cung cấp các tùy chọn để chọn runtime (CPU, GPU hoặc DSP). Bạn có thể chọn runtime phù hợp qua tham số dòng lệnh hoặc dùng API C/C++ cụ thể. Hãy xem [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) để biết thêm chi tiết.

    Theo mặc định, các ứng dụng mẫu AI dùng runtime DSP. Bạn có thể thay đổi runtime thông qua cấu hình ứng dụng mẫu.

    Ví dụ: trong ứng dụng mẫu `gst-ai-object-detection`, hãy sửa đổi tham số `runtime` trong tệp `config_detection.json`.

    Runtime:

    - `"cpu"`
    - `"gpu"`
    - `"dsp"`
13. Làm cách nào để tiếp tục nếu không chuyển đổi được mô hình bằng AI SDK?

    Hãy liên hệ [Diễn đàn hỗ trợ của Qualcomm](https://mysupport.qualcomm.com/supportforums/s/) để được trợ giúp.
14. Mô hình dấu phẩy động tùy chỉnh có độ chính xác tốt trên CPU, nhưng độ chính xác của mô hình lượng tử hóa lại kém trên cả CPU và NPU. Làm cách nào để gỡ lỗi này?

    Có thể có vấn đề liên quan đến lượng tử hóa mô hình, hãy xem Câu hỏi thường gặp về [mô hình do người dùng thay thế](https://docs.qualcomm.com/doc/80-70018-15BV/topic/troubleshooting.html#user-replaced-model) để biết hướng dẫn về lượng tử hóa mô hình
15. Mô hình lượng tử hóa tùy chỉnh đang chạy như mong đợi trên CPU, nhưng mô hình tương tự không chạy chính xác trên NPU. Làm cách nào để gỡ lỗi này?

    Chưa xác định
16. Khi chạy một ứng dụng mẫu, không có đầu ra nào trên màn hình HDMI. Làm cách nào để gỡ lỗi này?

    Hãy làm theo [gỡ lỗi hiển thị](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-18/debug.html) để gỡ các lỗi hiển thị HDMI.
17. Tôi có thể dùng TV HDMI thay vì màn hình HDMI để chạy các ứng dụng mẫu không?

    Trong hầu hết trường hợp là được, nếu không được, vui lòng dùng màn hình HDMI.
18. Làm cách nào để kiểm tra runtime phần cứng cho các ứng dụng mẫu AI?

    Nhiều ứng dụng mẫu GStreamer hỗ trợ suy luận trên nhiều runtime (CPU, GPU và DSP). Để xác định runtime mà ứng dụng sẽ dùng để suy luận, hãy quan sát log.

    - CPU

Chạy ứng dụng với mô hình: /usr/models/inception\_v3\_quantized.tflite and labels: /usr/labels/classification.labels dùng CPU Delegate Thêm tất cả các thành phần vào pipeline...
    - GPU

Chạy ứng dụng với mô hình: /usr/models/inception\_v3\_quantized.tflite and labels: /usr/labels/classification.labels Dùng GPU Delegate Thêm tất cả các thành phần vào pipeline...
    - DSP

Chạy ứng dụng với mô hình: /usr/models/inception\_v3\_quantized.tflite and labels: /usr/labels/classification.labels dùng DSP Delegate Thêm tất cả các thành phần vào pipeline...
19. Lỗi kiểm tra tính hợp lý của devtool là gì? Làm thế nào để gỡ các lỗi này?

    Thỉnh thoảng, bạn có thể thấy devtool hiển thị lỗi kiểm tra tính hợp lý.

    Hãy đảm bảo bạn có quyền truy cập sudo cho máy chủ. Nếu lỗi vẫn tiếp diễn, hãy thực hiện giải pháp thay thế sau:

    1. Cập nhật quyền.

umask a+rx
            Copy to clipboard
    2. Vô hiệu hóa kiểm tra tính hợp lý của BitBake trong tệp `$ESDK_ROOT/layers/poky/meta/conf/sanity.conf`.

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

## Hỗ trợ thêm

Đặt câu hỏi trên [Diễn đàn hỗ trợ của Qualcomm](https://mysupport.qualcomm.com/supportforums/s/).

Last Published: Oct 22, 2025

[Previous Topic
Tăng độ phân giải hình ảnh bằng super resolution](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BV/topics/super-resolution.md) [Next Topic
Phương pháp thực hành chuyển đổi mô hình tốt nhất](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BV/topics/appx-export-yolov8.md)