トラブルシューティング#
実用的なデバッグ戦略と一般的な障害シナリオに焦点を当てています。
一般的な症状と原因#
| 症状 | 考えられる原因 |
|---|---|
| カメラが検出されない | ドライバーの欠落、ケーブルの問題、SDKがインストールされていない |
タイムアウト (発生場所): RetrieveResult() | トリガーの設定ミス、信号なし、タイムアウト値の誤り |
| フレームドロップ | 帯域幅の制限、処理の遅延 |
| 画像取得エラー | ネットワークの不安定性、パケットロス |
| アプリケーションのフリーズ | ブロック呼び出し、デッドロック、キューのオーバーフロー |
カメラ検出の問題#
カメラ検出の問題を解決するには、次の2つの方法があります。
-
ハードウェアを確認します:
- ケーブルの接続を確認します。
- カメラの電源を確認します。
- 別のUSBポートまたはイーサネットケーブルをお試しください。
-
ソフトウェアを確認してください。
- pylon SDKがインストールされていることを確認します。
- ドライバーが読み込まれていることを確認します。
- pylon Viewerでテストします。
タイムアウトの問題#
主な原因#
- Trigger Modeが有効になっていますが、トリガー信号がありません
- Exposure Timeが長すぎます
- タイムアウト値が低すぎます
デバッグ戦略#
テストのためにトリガーを無効にします:
グラブエラー#
インジケーター#
主な原因#
- ネットワークの混雑(GigE)
- 帯域幅の不足
- 不安定な接続
画像の破損とフレーム損失#
主な原因#
- パケットロス(GigEカメラ)
- CPUの過負荷
- バッファーの不足
軽減戦略#
- ジャンボフレームを有効にします。
- 増加
MaxNumBuffer. - ROIまたはフレームレートを下げます。
パフォーマンスの問題#
インジケーター#
- レイテンシの上昇
- キューサイズの増加
- フレームドロップ
デバッグ戦略#
- フレームレートを測定します。
- CPU使用率を監視します。
- キューサイズを検査します。
スレッディングの問題#
インジケーター#
- ブロッキングによるデッドロック
queue.get() - シャットダウン時にスレッドが停止しない
修正#
-
タイムアウトを使用する:
-
停止信号を使用する:
OpenCV GUIの問題#
インジケーター#
一般的な原因#
- ワーカースレッドで実行されるGUI関数
対策#
- [Run]をクリックします
cv2.imshow()メインスレッドでのみ実行されます。
ネットワークの問題 (GigE)#
インジケーター#
- パケットロス
- フレーム落ち
軽減戦略#
- 専用のネットワークインターフェイスカード(NIC)を使用する
- ジャンボフレームを有効にします。
- パケット遅延を調整する。
デバッグチェックリスト#
最初のステップは、どのレイヤーが問題を引き起こしているかを特定することです。
次の問題のインジケータを確認してください:
- カメラが検出されますか?
- pylon Viewerは動作しますか?
- 正しく
TriggerMode設定しましたか? - 帯域幅は十分ですか?
- CPUが過負荷になっていませんか?
- キューがブロックされていませんか?
ロギングの推奨事項#
printの代わりに構造化ロギングを使用する:
主なポイント#
- ほとんどの問題は設定またはタイミングに関連しています。
- ハードウェアの問題とソフトウェアの問題を常に切り分けてください。
- システムリソースを継続的に監視してください。
- 体系的なデバッグアプローチを使用してください。