疑難排解#
重點在於實用的除錯策略與典型的失敗情境。
常見症狀與成因#
| 症狀 | 可能的原因 |
|---|---|
| 未偵測到相機 | 驅動程式遺失、纜線問題、未安裝 SDK |
倒數計時還剩 RetrieveResult() | 觸發器設定錯誤、無訊號、超時設定錯誤 |
| 掉幀 | 頻寬限制、處理速度緩慢 |
| 抓取錯誤 | 網路不穩定、封包遺失 |
| 應用程式當機 | 阻塞呼叫、死鎖、佇列溢出 |
相機偵測問題#
要解決相機偵測問題,您可以選擇以下兩種方式:
-
檢查硬體:
- 請檢查纜線連接狀況。
- 請確認攝影機的電源。
- 請嘗試使用另一個 USB 連接埠或乙太網路線。
-
檢查軟體:
- 請確認已安裝 pylon SDK。
- 請確認驅動程式是否已載入。
- 請使用pylon Viewer 進行測試。
超時問題#
常見原因#
- 觸發模式已啟用,但無觸發訊號
- 曝光時間過長
- 超時值過低
除錯策略#
為進行測試而停用觸發功能:
抓取錯誤#
指標#
常見原因#
- 網路擁塞(GigE)
- 頻寬不足
- 連線不穩定
影像損壞與畫面遺失#
常見原因#
- 封包遺失(GigE 攝影機)
- CPU 過載
- 緩衝區不足
減緩策略#
- 啟用巨型幀。
- 增加
MaxNumBuffer. - 降低 ROI 或幀率。
效能問題#
指標#
- 延遲增加
- 增加佇列大小
- 掉幀
除錯策略#
- 測量幀率。
- 監控 CPU 使用率。
- 檢查佇列大小。
執行緒相關問題#
指標#
- 因阻塞而導致的死鎖
queue.get() - 關機時執行緒未停止
修正項目#
-
使用超時機制:
-
使用停車信號:
OpenCV 圖形使用者介面問題#
指標#
常見原因#
- 在工作執行緒中執行的 GUI 函式
修正#
- 執行
cv2.imshow()僅限於主執行緒。
網路問題(GigE)#
指標#
- 封包遺失
- 畫面掉幀
減緩策略#
- 使用專用的網路介面卡 (NIC)
- 啟用巨型幀。
- 調整封包延遲。
除錯檢查清單#
第一步是找出是哪一層導致了這個問題。
請留意以下問題徵兆:
- 是否已偵測到相機?
- pylon Viewer 真的有效嗎?
- 您是否已設定
TriggerMode正確嗎? - 頻寬是否足夠?
- CPU 是否過載了?
- 隊列是否造成阻塞?
記錄建議#
請使用結構化記錄,而非 `print`:
重點摘要#
- 大多數問題都與設定或時序有關。
- 務必將硬體問題與軟體問題區分開來。
- 持續監控系統資源。
- 採用系統化的除錯方法。