# 문제 해결 및 FAQ

1. 기본적으로 EVK가 외부 디스플레이에 연결되면 플라워 스크린이 표시됩니다.

    플라워 스크린이 표시되지 않으면 새로운 SSH 셸에서 다음 명령어를 실행하세요.

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: ERROR(심각한 오류 모두 로깅)
    - 2: WARNING(경고 모두 로깅)
    - 3: FIXME(불완전한 코드 경로 로깅)
    - 4: INFO(정보 메시지 로깅)
    - 5: DEBUG(일반 디버그 메시지 로깅)
    - 6: LOG(로그 메시지 모두 로깅)
    - 7: TRACE(추적 메시지 로깅)
    - 9: MEMDUMP(메모리 덤프 로깅)

    예를 들어 디버그 수준을 ERROR로 설정하려면 터미널에서 다음 명령어를 사용하면 됩니다.

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 엔진 다이렉트 사용 시에 상수를 설정할 때 발생합니다. [애플리케이션에서 AI Hub 모델 통합](https://docs.qualcomm.com/doc/80-70018-15BK/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; Conversion took 2.743 ms
    - 모델 추론 시간

        Qualcomm 지능형 멀티미디어 SDK는 각각 Qualcomm 신경망 처리 SDK, LiteRT 및 Qualcomm AI 엔진 다이렉트 프레임워크를 활용하는 3가지 추론 플러그인을 지원합니다.

        - 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; Execute took 3.445 ms
LOG qtimlvtflite mltflite.c:561:gst\_ml\_tflite\_transform:&lt;qtimltflite&gt; Execute took 3.555 ms
    - 후처리 시간

        AI 추론 플러그인의 출력은 후처리 플러그인에서 처리됩니다. 이 플러그인은 AI 모델의 결과를 사용하여 입력 스트림에 오버레이하거나 향후 계산에 사용할 수 있는 요소를 생성합니다. 그러한 요소의 예시로 `qtimlvclassification` 의 텍스트 상자, `qtimlvsegmentation` 의 segmentation mask 등이 있습니다.

        이러한 플러그인의 처리 시간을 측정하려면 다음 명령어를 사용하세요. .. code-block:

export GST_DEBUG=qtimlv*:6
            Copy to clipboard

        후처리 시간은 로그에 표시됩니다. 다음에서는 `qtimlvclassification` 플러그인을 예시로 사용합니다.

LOG    qtimlvclassification mlvclassification.c:1068:gst\_ml\_video\_classification\_transform:&lt;qtimlvclassification&gt; Categorization tookExecute took 1.962 ms
5. 사용 사례의 end-to-end FPS를 측정하는 방법은 무엇인가요?

    GStreamer 파이프라인에서 FPS(초당 프레임)을 측정하려면 `fpsdisplaysink` 요소를 사용하세요. 이 요소는 현재 및 평균 프레임 속도를 비디오의 오버레이로 또는 콘솔에 출력하여 표시할 수 있습니다.

    샘플 앱에서는 `fpsdisplaysink` 플러그인을 사용하여 파이프라인의 FPS를 HDMI 모니터에 직접 표시합니다.
6. 참조 애플리케이션에서 기존 모델을 커스텀 모델로 대체하는 가장 쉬운 방법은 무엇인가요?

    샘플 애플리케이션에 올바른 모델과 레이블 파일을 사용하고 있는지 확인하세요.

    각 파일 경로에 `--model_path` 및 `--label_path` 옵션을 지정하세요.

    샘플 앱은 지정된 위치의 모델과 레이블 파일을 사용합니다.

    자세한 내용은 [애플리케이션에서 AI Hub 모델 통합](https://docs.qualcomm.com/doc/80-70018-15BK/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-15BK/topic/integrate-ai-hub-models.html) 을 참조하세요.
            3. AI Hub 모델 정확도 문제에 대한 추가 지원이 필요한 경우 [Qualcomm AI Hub 슬랙](https://qualcomm-ai-hub.slack.com/join/shared_invite/zt-2ur7psfuu-CygEMlDFjoHTbPKIRCVYuQ%23/shared-invite/email) 에 문제를 보고하세요.
        - 커스텀 모델

            1. 모델 양자화는 정확도를 떨어뜨리는 흔한 원인입니다. 올바른 데이터 세트를 모델 양자화에 사용하고 있는지 확인하세요. 사용자는 PTQ(Post Training Quantization)를 위한 실제 배포 환경과 유사한 데이터 세트의 일부를 사용해야 합니다. PTQ로 좋은 결과를 얻으려면 사용자는 모델을 양자화하기 위해 많은 양의 데이터를 제공해야 하며, 예를 들어 약 25~30개의 RAW 이미지를 제공해야 합니다.
            2. W8A16, W16A16과 같은 다양한 모델 정밀도로 실험하여 모델 정확도가 향상되는지 확인하세요.
            3. 고급 양자화를 위한 PTQ(Post-Training Quantization) 및 QAT(Quantization-Aware Training) 기술에 AIMET를 사용하세요. 자세한 내용은 [AIMET 문서](https://quic.github.io/aimet-pages/releases/latest/user_guide/index.html) 를 참조하세요.
8. AI SDK를 사용한 모델 양자화를 위한 모범 사례는 무엇인가요?

    - 캘리브레이션 데이터 준비

        모델이 프로덕션 과정에서 접하게 되는 데이터와 가장 일치하는 대표 캘리브레이션 데이터를 사용하세요. 그러면 양자화를 위한 스케일링 팩터와 제로 포인트를 정확하게 확인할 수 있습니다.
    - 적합한 양자화 방법 선택

        - PTQ(Post-Training Quantization): 이 방법은 더 간단하고 빠릅니다. 약간의 정확도 손실이 허용되는 모델에 적합합니다. 사전 학습된 부동 소수점 모델을 변환하여 다시 학습하지 않고 모델을 양자화합니다.
        - QAT(Quantization-Aware Training): 이 방법에서는 양자화를 염두에 두고 모델을 학습하여 더 높은 정확도를 유지할 수 있습니다. 더 복잡한 방법이지만 정확도가 중요한 모델에 유용합니다.

        자세한 단계는 [AIMET 문서](https://quic.github.io/aimet-pages/releases/latest/user_guide/index.html) 를 참조하세요.
9. AI SDK는 LiteRT를 DLC로 변환하는 도구를 제공합니다. 사용자가 LiteRT 모델을 DLC로 변환해야 하나요? 아니면 LiteRT 모델을 NPU에서 직접 가속화할 수 있나요?

    NPU에서 가속화하기 위해 LiteRT 모델을 DLC로 변환할 필요는 없습니다. Qualcomm의 AI SDK는 LiteRT delegate를 사용하여 NPU에서 직접 LiteRT 모델을 실행하는 것을 지원합니다. 즉, LiteRT 모델을 DLC로 변환하지 않고도 NPU 기능을 활용할 수 있습니다.
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 엔진을 활용하려면 어떻게 해야 하나요? 어떻게 하면 다양한 AI 모델을 다양한 하드웨어 코어에서 실행할 수 있나요? (GPU, NPU 등)

    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 양측에서 모두 양호하지 않습니다. 이 문제를 디버그하려면 어떻게 해야 하나요?

    모델 양자화와 관련된 문제가 있을 수 있습니다. [사용자 대체 모델](https://docs.qualcomm.com/doc/80-70018-15BK/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 TV를 사용하여 샘플 애플리케이션을 실행할 수 있나요?

    대부분 작동하지만, 작동하지 않을 경우 HDMI 모니터를 사용하세요.
18. AI 샘플 앱용 하드웨어 런타임을 확인하려면 어떻게 해야 하나요?

    대부분의 GStreamer 샘플 애플리케이션이 다양한 런타임(CPU, GPU, DSP)에서 추론을 지원합니다. 앱이 추론에 사용하는 런타임을 확인하려면 로그를 관찰하세요.

    - CPU

Running app with model: /usr/models/inception\_v3\_quantized.tflite and labels: /usr/labels/classification.labels
Using CPU Delegate
Adding all elements to the pipeline…
    - GPU

Running app with model: /usr/models/inception\_v3\_quantized.tflite and labels: /usr/labels/classification.labels
Using GPU Delegate
Adding all elements to the pipeline…
    - DSP

Running app with model: /usr/models/inception\_v3\_quantized.tflite and labels: /usr/labels/classification.labels
Using DSP Delegate
Adding all elements to the pipeline…
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-15BK/topics/super-resolution.md) [Next Topic
모델 포팅 모범 사례](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BK/topics/appx-export-yolov8.md)