トラブルシューティング
各項目は「症状 → 原因 → 解決策」という形式で記載されています。症状の見出しは、正確なエラーメッセージです。このページ内で(Ctrl-F)検索して、表示されているメッセージに対応する項目を探してください。すべての項目は、現在のソースコードに対して検証済み、またはDevKit上で再現されています。
どこから始めればよいかわからない場合は、行き詰まったときは:診断機能に移動してください。
インストールと環境設定
1. pyneat is not importable. Either Neat is not installed, or the venv is not activated.
pyneat 仮想環境がアクティブになっていないか、または wheel パッケージが実行中の環境にインストールされていません。
Pythonスクリプトを実 行する前に、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 がまだ実行されていません。
コード(またはSIMA_YOLO_TAR / SIMA_RESNET50_TAR / SIMA_MODEL_TAR)で参照されている.tar.gzというモデルアーカイブがディスク上に存在しません。
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の場合は640×640以上)のサイズの画像をソースとして入力するか、アップサンプリングカーネルを搭載したビルドにneat-ev74-firmwareを更新してください。
(このメッセージは、EV74のプリプロセスプラグイン/ファームウェアから送信されます。)
8. 低いscore_threshold → 後処理における遅延の急増
検出閾値を低く設定するほど、閾値処理を通過する候補ボックスの数が増え、NMSの計算コストは、通過するボックスの数のおおよその2乗に比例して増加します。
弱い検出結果を確実に捉えられるように、閾値を必要な範囲で下げ、最悪の場合に備えてtop_kで上限を設定します。検出ボックスを読み取るを参照してください。
推論を実行中
9. misconfig.media_caps … Internal data stream error … reason not-negotiated (-4)
生の画像を入力として使用する場合、前処理段階が有効になっていなかった、または入力の種類が宣言されていなかったため、appsrcと最初の段階の間でcaps(機能記述子)のネゴシエーションを行うことができません。
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 と比較してください。