チュートリアル

USB3 Visionシステムの速度・精度を向上させるpylon活用術

Windows/Linux向けにシステムを最適化

このチュートリアルでは、pylonを活用し、単一のカメラから構成されるUSB3 Visionシステムの性能を最大限に引き出す方法について、カメラ、ホストコントローラー、ケーブルの設定を考慮しながら解説します。

安定した撮像を実現する5つのステップ

  1. pylonビューワーによるカメラの起動:カメラが接続されているか、ドライバーとファームウェアが正常に動作しているかを確認

  2. ドライバーとシステムの設定:ホストコントローラーのドライバーが最新であるか、OSの設定(リアルタイム設定など)が正しいかを確認

  3. 帯域幅の制御:USB帯域幅の適切な制限・割り当て → データロスを防止

  4. パラメーターの調整:最大転送サイズ、最大URBキュー数、バッファサイズの増加 → CPU負荷を抑えながら、データ転送を効率化

  5. モニタリング&エラー解析:連続撮影を実施した後、フレームロスや再同期、メモリー不足がないかを確認 → システムの問題を早期に検出

Tip

システム性能を最大化するための条件

  • USB 3.0ケーブル:産業グレードの高品質なケーブルにより、データ転送の不具合を低減しながら、システム安定性を向上

  • ホストコントローラー(USBコントローラー):最新のドライバーを備えた高品質なホストコントローラーにより、帯域幅不足や再同期、フレームロスを防止

  • PCメモリー(RAM):十分なメモリーを確保し、大容量のデータ転送に対応

以下では、システム性能を最大限に引き出すためのpylonのパラメーター設定方法について、カメラパラメーター(Windows/Linux共通)とシステムパラメーター(Linuxのみ)に分けてご紹介します。

USB 3.0カメラの設定の最適化

カメラ設定は、データ転送の速度と安定性を大きく左右します。

帯域幅を最適化し、エラーを防止するには、pylonビューワー上で以下のパラメーターを調整するとよいでしょう。

  • Device Link Throughput Limit Mode:帯域幅制限のオン/オフを選択
    推奨設定:
    オン(ホストコントローラーの帯域幅が限られている場合)

  • Device Link Throughput Limit:データ転送時の最大帯域幅を設定
    値を小さくすることで、データ転送の不具合が低減

pylonビューワー上で[Features All]パネルを開き、[Common Task]の中から[Controlling the frame rate]を選択すると、[Device Control]に各種パラメーターが表示されます。

USB 3.0カメラのパラメーター調整(Windowsの場合)

USB 3.0カメラのパラメーターは、[Stream Parameters]に表示されます。パラメーターを正しく調整すれば、CPU負荷を抑えながら、システムの性能と安定性を向上することができます。

  • 最大転送サイズ(MaxTransferSize)
    画像転送時のパケットストリームのサイズ(GigEカメラのジャンボフレームに相当)を示すパラメーターです。
    このパラメーターの値が大きいほど、CPU負荷は低下します。ホストコントローラーの種類によって異なりますが、一般的な最大値は4MBです。

  • 最大URBキュー数(NumMaxQueuedUrbs)
    カメラとホストコントローラーの間の通信状況を示すパラメーターです。URB(USB要求ブロック)とは、USB転送要求の単位を指します。このパラメーターの値が大きいほど、ジッターが減少し、データ転送の安定性も向上しますが、PC RAMの制約を受けます。デフォルト値は64です。

  • 最大バッファ数(MaxNumBuffer)
    画像のバッファ数を示すパラメーターです。画像処理に長い時間がかかる場合は、この値を大きくしてください。デフォルト値は10です。

  • バッファキュー数(NumQueuedBuffers)
    画像取得用に待機しているバッファ数を示すパラメーターです。データロスが発生すると、このパラメーターの値が小さくなります。

  • 転送ループスレッド優先度(TransferLoopThreadPriority)
    USB転送を処理するスレッドの優先度を示すパラメーターです。 システムの性能を最大限に引き出すには、
    管理者権限でpylonビューワーを起動したうえで、このパラメーターの値を15~25(最大値=31)に設定してください。

pylonビューワー上で[Features All]パネルを開き、[Common Task]の中から[Checking whether the camera is losing image data]を選択すると、[Stream Parameters ]に各種パラメーターが表示されます。

USB 3.0カメラのパラメーター調整(Linuxの場合)

Linuxの場合、Windowsと同様のカメラパラメーターの調整以外に、システムパラメーターの調整も必要です。

  • 受信スレッド優先度
    このパラメーターの値を大きくすると、データ転送時のリアルタイム性が向上します。

  • USB-FSカーネル空間の増加

    • データ転送時のカーネルメモリー不足を防止

    • 大容量データの転送に重要

  • ファイル処理制限/ファイルディスクリプターの増加

    • パケットサイズが大きい場合に重要

    • システム性能や処理負荷に応じて調整

Linuxシステムのパラメーター調整

デモ:USB3 Visionシステムのパラメーター調整

このビデオでは、USB3 Visionシステムの最適化と安定した運用を目的として、pylonビューワー上でパラメーターを調整する方法についてご覧いただけます。なお、パラメーターを調整する際には、pylonビューワーを管理者権限で起動する必要があります。

システム構成は、Windows PC、USB 3.0カメラ、pylonです。

トラブルシューティング&モニタリング

pylon Statisticsを使用すると、エラーの原因を早期に特定できます。

  • Failed Buffer Count:帯域幅の問題などにより、画像に破損・破棄が発生したため、エラーで返ってきたバッファの数

  • Missed Frame Count:過剰なフレームレート、ホストコントローラーの帯域幅不足などにより、内部バッファが一杯になったため、カメラ側で画像転送をスキップしたフレームの数

  • Resynchronization Count:ホストコントローラーが接続をリセットし、カメラの撮影画像が失われてしまう深刻なエラーの数
    原因:ホストコントローラーの過負荷、ケーブルの接続ミス、電源不足

詳細なパラメーターを確認するには、pylonビューワー上で[Features All]パネルを開き、[Stream Parameters]に移動してください

pylonビューワー上で[Features All]パネルを開き、[Common Task]の中から[Checking whether the camera is losing image data]を選択すると、[Stream Parameters]に各種パラメーターが表示されます。

pylonビューワーの画面右側の[Features]に表示されているパラメーターを右クリックすると、Basler製品ドキュメントの詳細な説明とソースコードが表示されます。なお、この機能は、インターネットに接続されていなくても利用できます。

Basler製品ドキュメントへ

USB3 Visionシステムの最適化

USB3 Visionシステムの性能と信頼性を確保するには、以下の点に注意するとよいでしょう。

  • 高品質なハードウェアの選定:産業用USB 3.0ケーブル最新のホストコントローラーを使用

  • カメラ設定の最適化:帯域幅、パケットサイズ、遅延時間を調整

  • pylonのパラメーター調整:転送サイズ、URBキュー数、バッファ、スレッド優先度を調整

  • pylon Statisticsによるシステム監視:Failed Buffer Count、Missed Frame Count、Resynchronization Countの項目を確認

  • Linuxシステム向けの最適化:スレッド優先度、カーネル空間、ファイル処理制限を調整

上記に配慮すれば、単一のカメラから構成されるUSB3 Visionシステムの安定性を向上させながら、データロスのないリアルタイムな画像転送を実現できます。

関連製品

‍‍ご紹介したソリューションの導入には、以下‍の製品が最適です。

製品・サービスに関するご不明点やご相談等がございましたら、お気軽にお問い合わせください。