문제 해결
각 항목은 증상 → 원인 → 해결 방법 형식으로 구성되어 있습니다. 증상 제목은 정확한 오류 메시지이며, 이 페이지에서(Ctrl-F) 해당 메시지를 검색하여 확인할 수 있습니다. 모든 항목은 현재 소스를 기준으로 검증되었거나 DevKit에서 재현되었습니다.
어디서부터 시작해야 할지 모르는 경우, 다음으로 이동하십시오. 문제가 발생했을 때: 진단 기능.
설치 및 환경 설정
1. pyneat is not importable. Either Neat is not installed, or the venv is not activated.
pyneat 가상 환경이 활성화되지 않았거나, 실행 중인 환경에 휠이 설치되지 않았습니다.
파이썬 코드를 실행하기 전에 DevKit 환경을 활성화하세요.
source ~/pyneat/bin/activate
2. GST 플러그인을 로드하는 데 실패했습니다: undefined symbol: _ZN16simaaidispatcher14DispatcherBase14submitPrepared...
Neat 런타임 공유 라이브러리가 동적 로더 경로에 없기 때문에 GStreamer 플러그인이 로드 시점에 런타임 심볼을 확인할 수 없습니다.
실행하기 전에 런타임 디렉터리를 LD_LIBRARY_PATH에 추가하세요.
export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/neat/runtime:$LD_LIBRARY_PATH
3. 모델 아카이브 누락 — sima-cli modelzoo가 아직 실행되지 않았습니다.
코드에서 참조하는 .tar.gz 모델 아카이브(또는 SIMA_YOLO_TAR / SIMA_RESNET50_TAR / SIMA_MODEL_TAR)가 디스크에 존재하지 않습니다.
Model Zoo에서 다운로드하세요.
sima-cli modelzoo get yolo_v8s # or resnet_50, etc.
구축
4. find_package(SimaNeat CONFIG)에서 패키지를 찾을 수 없습니다.
CMake가 SimaNeatConfig.cmake을 찾을 수 없습니다(lib/cmake/SimaNeat/에 설치됨). 기본 DevKit 설치에서는 기본 시스템 접두사에 설치되지만, SDK 크로스 빌드에서는 sysroot가 CMAKE_PREFIX_PATH에 없습니다.
SYSROOT를 내보내고 CMakeLists 파일에서 이를 프리픽스 경로에 추가하도록 합니다(안녕하세요 Neat 템플릿 예제에서 이 작업을 수행합니다).
if(DEFINED ENV{SYSROOT} AND NOT "$ENV{SYSROOT}" STREQUAL "")
list(APPEND CMAKE_PREFIX_PATH "$ENV{SYSROOT}/usr/lib/aarch64-linux-gnu")
endif()
find_package(SimaNeat REQUIRED CONFIG)
모델을 로드하고 설정을 진행 중입니다.
5. failed to read image: <path>
OpenCV(cv2.imread / cv::imread)에서 null을 반환했습니다. 이는 파일이 존재하지 않거나, 읽을 수 없거나, 디코딩 가능한 이미지가 아니기 때문입니다.
입력 텐서를 생성하기 전에 경로를 확인하고 파일이 유효한 JPEG/PNG 파일인지 확인합니다.
6. reason=topk must be > 0 (boxdecode에서)
감지 모델의 ModelOptions.top_k 값이 0으로 설정되어 있습니다. 박스 디코딩 단계에서는 양수 값을 설정해야 합니다.
긍정적인 top_k 값을 설정합니다(튜토리얼에서는 100를 사용합니다).
opt.top_k = 100
(이 메시지는 EV74 박스 디코딩 플러그인에서 생성되었습니다.)
7. preproc_upsample_not_supported
원본 이미지는 모델의 입력 해상도보다 작으므로, 전처리 과정에서 업스케일링을 해야 합니다. 하지만 구형 EV74 전처리 펌웨어는 업스케일링을 지원하지 않으므로 다운스케일링만 가능합니다.
모델 입력 크기 이상(예: YOLOv8의 경우 ≥ 640x640)의 소스 이미지를 입력하거나, 업샘플링 커널이 포함된 빌드로 neat-ev74-firmware를 업데이트하십시오.
(이 메시지는 EV74 전처리 플러그인/펌웨어에서 생성됩니다.)
8. 낮은 score_threshold → 후처리 지연 시간 급증
감지 임계값이 낮을수록 임계값 처리를 통과하는 후보 박스의 수가 증가하며, NMS(Non-Maximum Suppression) 연산 비용은 생존하는 박스 수의 제곱에 비례하여 증가합니다.
미약한 감지를 포착하기 위해 필요한 만큼만 임계값을 낮추고, 최악의 경우를 top_k로 제한합니다. 감지 상자 읽기를 참조하십시오.
추론 실행 중
9. misconfig.media_caps … Internal data stream error … reason not-negotiated (-4)
원시 이미지 입력을 사용하는 경우, 전처리 단계가 활성화되지 않았거나 입력 유형이 선언되지 않았으므로, 앱 소스와 첫 번째 단계 간에 기능 협상이 이루어질 수 없습니다.
ModelOptions에서 이미지 입력과 전처리 프리셋을 선언합니다.
opt.preprocess.kind = pyneat.InputKind.Image
opt.preprocess.preset = pyneat.NormalizePreset.COCO_YOLO
10. No channel available (all candidate channel opens failed)
EV74 디스패처는 로드된 펌웨어에서 구현되지 않은 커널을 예약하려고 시도했습니다. 이는 일반적으로 neat-runtime과 neat-ev74-firmware가 동일한 빌드가 아니기 때문입니다(내부 해시 불일치). 예를 들어, 부분 업데이트가 발생한 경우입니다.
일치하는 neat-* 세트를 함께 설치합니다(동일한 해시 값). 런타임과 펌웨어가 동일한 해시 값을 보고하는지 확인합니다. 호환성 → 버전이 일치하는 세트를 참조하십시오.
(이 메시지는 EV74 디스패처에서 보냅니다.)
11. frame=N rtsp_timeout
RTSP 스트림 요청 시간이 초과되었습니다. URL이 잘못되었거나 스트림에서 프레임을 제대로 전송하지 못하고 있습니다.
RTSP URL에 접속하여 스트리밍이 제대로 이루어지는지 확인하고, 전송 방식(TCP 또는 UDP)을 확인합니다. RTSP 스트림을 사용합니다.을 참조하십시오.
12. CameraInput strict zero-copy requires external-buffer-mode
CameraInputOptions::allow_cpu_fallback의 기본값은 false이므로, Neat는 시작부터 끝까지 SiMaAI/장치 제로 복사 지원을 필요로 합니다. libcamerasrc가 일반적인 external-buffer-mode 속성을 광고하지 않거나, 설치된 메모리 라이브러리가 메모리 할당을 DMA-BUF로 내보낼 수 없는 경우입니다.
일관성 있는 카메라 및 메모리 패키지가 설치된 경우 엄격한 제로 복사 방식을 유지합니다. DMA-BUF 내보내기가 없는 카메라 스택에서 실행해야 하는 경우 호환성 브리지에 명시적으로 참여합니다.
simaai::neat::CameraInputOptions camera;
camera.allow_cpu_fallback = true;
적응형 모드에서는 다운스트림 CVU/MLA 단계에 SiMaAI 메모리가 계속 전달됩니다. 업스트림 카메라 버퍼가 EV74에서 아직 사용 가능하지 않은 경우에만 카메라 브리지에서 복사가 이루어집니다.
13. misconfig.media_caps … libcamerasrc … not-negotiated (-4)
요청하신 카메라 캡처 설정이 카메라 스택에서 지원하는 모드와 일치하지 않거나, 보드 오버레이 또는 드라이버가 카메라를 제대로 인식하지 못했습니다.
Neat 외부에서 동일한 형식, 해상도 및 프레임 속도를 확인하세요.
gst-launch-1.0 -e libcamerasrc ! \ 'video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1' ! \ identity eos-after=30 ! fakesink만약 문제가 해결되지 않으면, 먼저 오버레이, 케이블, 센서 드라이버 또는 카메라 모드를 수정하십시오. Modalix DevKit MIPI 카메라 인터페이스 가이드를 사용하여 .dtbo 및 libcamera 검증 경로를 확인하십시오. 검증을 통과하면, 캡스를 사용자의 CameraInputOptions와 비교하십시오.