フレームグラバーでの前処理でビジョンパフォーマンスを向上

Product / 08.2019


最先端のマシンビジョンおよびビデオモニタリングアプリケーションは、これまで見られなかったような困難な要件に対応するようになっています。たとえば、患者の血液中にあるごく少数の癌細胞を識別することや、買物客が店頭から持ち出した商品を追跡することが可能になり、レジで清算しなくても買物客のアカウントに購入金額をチャージできるようになりました。このような用途に対しカメラメーカーは、画質や1秒あたりのフレーム数を大幅に向上させたセンサーを提供しています。ビジョンインターフェース規格もそれに合わせて接続ビットレートが高くなっており、最大12.5ギガビット/秒(Gbps)のデータレートを実現するCoaXPress 2.0規格などなどの新しい規格が導入されています。
しかしこのような進歩により中央処理装置(CPU)に大きな負荷がかかるようになり、現在では非常に大容量の画像データを処理する能力が必要とされています。その対応策としてハイエンドCPUを使用したり、複数のパーソナルコンピューターに処理を分割する方法がとられることがありますが、どちらのアプローチも高額のコストがかかり、後者はかなりのサイズと重量が必要になります。その結果、多くの場合パフォーマンスをさらに向上させる能力を制限しながら、CPU負荷が100%に達しないぎりぎりの状態で動作させることになります。

Coaxlink-octo-and-CXP-12.png一方Euresysでは、カメラメーカーとビジョンインテグレーターがCoaxlink OctoおよびCoaxlink Quad CXP-12フレームグラバーのFPGAにコードをアップロードできるようにし、ホストで実行するはずであった画像処理タスクをフレームグラバーで処理するアプローチを提案しています。Euresys CustomLogic FPGAデザインキットは、画像の全ピクセルで繰り返し実行されるような画像前処理であれば実質的にすべてのタスクに対応しています。典型的な例としては、RGBからYUVスケールへの色変換などのルックアップテーブルを用いた画像変換、ノイズ低減アルゴリズムの実行、黒のピクセルなどのセンサーの欠陥補正があります。その他にも、視野全体の光明度の差を補正するフラットフィールド補正にも対応しています。
フレームグラバーで画像処理を実行することで、ホストコンピューターの処理能力がネックとなっている最先端ビジョンシステムの画質と処理速度を著しく向上できます。FPGAでは画像転送と画像処理が並行して行われるため、フレームグラバー側の遅延が生じることはなく、ホストコンピューターでの処理時間が短縮されます。すなわち、ホストコンピューターにコストをかけることなく、ビジョンシステムの解像度と画像速度を上げ、レイテンシーを低減できるのです。
これまでフレームグラバーのサプライヤーは、フレームグラバーの中心となるFPGAにユーザーのコードを組み込むことを提案してきました。このアプローチでは、ユーザーは自社の知的財産を共有してフレームグラバーに組み込まれるようにしなければなりません。
 
一方、CustomLogicの新しいアプローチでは、ユーザーがFPGAコードを作成してオブジェクトファイルにコンパイルし、フレームグラバーメーカーが提供するツールを使用してFPGAにアップロードすることができます。この場合、ビジョンインテグレーターが所有するコードが社外に出ることはなく、FPGAのリバースエンジニアリングも非常に困難で高額なコストがかかります。
大手機械メーカーの多くは、画像処理タスクや分析タスクも実行できるFPGAを搭載したフレームグラバーを開発しています。このようなフレームグラバーにはほぼ例外なく、従来のCamera Linkプロトコルが使われています。このような機械メーカーは現在、CXP-12などの新世代の高速インターフェースに対応するためにフレームグラバーを再設計しなければならず、困難な課題に直面しています。このような場合には、CXPインターフェイスが組み込まれ、ユーザー固有の画像処理ルーチンをアップロードできるEuresysの新型フレームグラバーを利用することでタスクを大幅に簡素化できます。
CustomLogic FPGAは、Coaxlink OctoおよびCoaxlink Quad CXP-12フレームグラバーで使用されるXilinx Kintex Ultrascale XCKU035 FPGAのリソースの最大70%までを画像の前処理のために確保する設計となっています。

FPGA-scale-(2).png

デザインキットでは、CoaXPressカメラピクセルストリーム、オンボードDDR4メモリ、PCIe Gen3接続が提供されています。デザインフェーズでは、Xilinx Vivado開発ツールを使用します。
Coaxlink CustomLogicデザインキットには、ユーザーが利用できる全インターフェイスを含むXilinx Vivadoプロジェクトから成るリファレンスデザインが付属しています。

ReferenceDesignCustomLogic-(1).png
 













データストリーム(ピクセル)インターフェイスは、AMBA AXI4-Streamプロトコルに基づいています。ソース側では、このインターフェイスによってカメラから取得した画像が供給されます。また、ユーザーロジックによる後処理は、インターフェイスによってPCI Express DMAバックエンドチャネルに転送されます。コントロール/ステータスインターフェイスによって、ユーザーは、Coaxlink Driver APIを介して、ユーザーロジック内のレジスタの読み取りと書き込みを行うことができます。
 
 
CustomLogic-(1).png

イベントインターフェイスを使用すると、ユーザーロジックは、1μs. の精度で、タイムスタンプ付きのイベントをMementoロギングツールに送信することができます。開発者は、タイムスタンプされたイベントの正確なタイムラインを、コンテキスト情報とロジックアナライザビューとともにMementoから取得できます。アプリケーション開発とデバッグの支援機能のほか、マシン操作中にも価値の高い支援ツールを提供します。
すべてのVivado HLxエディションに無償アップグレードとして提供されているVivado® High-Level Synthesis(HLS)を使用すると、C、C++、System C仕様をXilinxプログラマブルデバイスに直接書き込めるため、レジスタ転送レベル(RTL)コードを手動で作成する必要がなく、IPの作成がスピードアップします。FPGA設計には、C++プログラミングスキルの他に、FPGAの制約および制限を知っておく必要があります。たとえば、FPGAのランダムアクセスメモリ(RAM)の制限によりメモリの割り当てが不可能になることなどです。

VivadoProjectCustomLogic_Interface1.png

VivadoProjectCustomLogic_VHD.png

CustomLogicは多数の画像処理タスクを並列化することができ、バッファリングやレイテンシーなくピクセル処理をオンザフライで実行します。反復的な超並列タスクをFPGAにオフロードすることでCPUはハイレベルのタスクに集中することができ、最先端のイメージングアプリケーションに必要とされる要件を満たします。CoaXPressインターフェースやMementoログシステムなどのCustomLogicに知的財産を含めることで、製品の市場投入の迅速化に役立ちます。