USB3 Visionシステムの速度・精度を向上させるpylon活用術
Windows/Linux向けにシステムを最適化
このチュートリアルでは、pylonを活用し、単一のカメラから構成されるUSB3 Visionシステムの性能を最大限に引き出す方法について、カメラ、ホストコントローラー、ケーブルの設定を考慮しながら解説します。
安定した撮像を実現する5つのステップ
pylonビューワーによるカメラの起動:カメラが接続されているか、ドライバーとファームウェアが正常に動作しているかを確認
ドライバーとシステムの設定:ホストコントローラーのドライバーが最新であるか、OSの設定(リアルタイム設定など)が正しいかを確認
帯域幅の制御:USB帯域幅の適切な制限・割り当て → データロスを防止
パラメーターの調整:最大転送サイズ、最大URBキュー数、バッファサイズの増加 → CPU負荷を抑えながら、データ転送を効率化
モニタリング&エラー解析:連続撮影を実施した後、フレームロスや再同期、メモリー不足がないかを確認 → システムの問題を早期に検出
システム性能を最大化するための条件
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製品ドキュメントへGigE Visionシステムの速度・精度を向上させるpylon活用術については、以下をクリックしてください。
GigE VisionシステムのチュートリアルへUSB3 Visionシステムの最適化
USB3 Visionシステムの性能と信頼性を確保するには、以下の点に注意するとよいでしょう。
高品質なハードウェアの選定:産業用USB 3.0ケーブルと最新のホストコントローラーを使用
カメラ設定の最適化:帯域幅、パケットサイズ、遅延時間を調整
pylonのパラメーター調整:転送サイズ、URBキュー数、バッファ、スレッド優先度を調整
pylon Statisticsによるシステム監視:Failed Buffer Count、Missed Frame Count、Resynchronization Countの項目を確認
Linuxシステム向けの最適化:スレッド優先度、カーネル空間、ファイル処理制限を調整
上記に配慮すれば、単一のカメラから構成されるUSB3 Visionシステムの安定性を向上させながら、データロスのないリアルタイムな画像転送を実現できます。
関連製品
ご紹介したソリューションの導入には、以下の製品が最適です。



