LinX Express Vol.217

※LinX Express は、日頃お付き合い頂いているお客様、展示会やセミナー等でお名刺を戴いた方、また、雑誌やホームページから引合を戴いた事のあるお客様へ配信させて戴いております。

 
 
ドラッグ&ドロップによる、FPGA画像処理開発環境。VisualApplets


2014年11月1日、株式会社リンクスは、Silicon Software GmbHの国内総代理店として契約を締結し、2015年2月1日より各種製品の販売および技術サポートを開始いたします。本号では、Silicon Software社のFPGA画像処理開発環境VisualAppletsについて紹介します。

 
 
Time-to-Marketが重要とされる時代に、新しい選択肢を。

近年における産業用カメラの技術発展により、高速高解像度なカメラがより身近となり高精細な検査が実現可能となりました。その一方で、高精細な検査ではこれらの膨大な画像データを取り扱うためのCPU負荷や処理時間、メモリ容量などが課題として挙げられます。これらの課題に対する1つのソリューションとしてFPGAを用いた画像処理技術が従来より着目されて来ましたが、要求される高い技術レベルから一部のスペシャリストの方々のみ実現が可能でした。またスペシャリストの方々であっても、近年の多様化する検査ニーズをより効率よく開発し、Time-to-Marketを短縮する事を望まれる声も増えています。
Silicon Software社のFPGA画像処理開発環境VisualAppletsは、この様なTime-to-Marketが重要とされる高速大容量な画像処理検査ニーズに対する新しい選択肢として関心を集めています。以下ではこのTime-to-Market短縮に貢献するVisualAppletsの機能特長を3点紹介します。


  特長1: FPGA開発の知識を必要としない、GUIによるFPGA開発

VisualAppletsの1つ目の特長は、従来のFPGAアプリケーション開発に必要とされてきた専門知識を必要とせず、GUI上のドラッグ&ドロップにて開発が行える点です。これによりソフトウエアエンジニアをはじめとする多くの方のFPGA画像処理開発を可能とします。アプリケーションのシンプルな例として画像にY方向のSobelフィルタ処理を行うプログラムを紹介します。Y方向のSobelフィルタ処理は、下記の通り7つのオペレータ(画像処理機能)をドラッグ&ドロップでつなぐことで実現できます。


上記処理フローを構成するオペレータはそれぞれ以下のような役割を持っています。
[1. CameraGrayAreaBase]: CameraLinkのBase接続にてデータを取り込みます。CameraLink FULLでの接続やGigEカメラの接続への変更はこのオペレータを入れ替える事で行えます。
[2. ImageBuffer]: 以降の処理に待ちが発生する場合などに自動的にデータをボード上のメモリへバッファリングします。
[3. FIRkernelNxM]: フィルタ処理に必要な待ちを調整します。この例では3x3のフィルタ処理に必要なデータが揃うまで以降の処理をストップします。
[4. FIRoperatorNxM]: 自由なフィルタ処理を実装します。フィルタサイズも4x9など自由に設定が可能です。
[5. IS_GreaterThan]: フィルタ画像に対して、指定した閾値より大きければ1、小さければ0とする2値化処理を行います。
[6. SCALE]: 視覚化の為、上記の2値画像を0と255の白黒画像とします。
[7. DmaToPC]: ボードを接続したパソコンへデータを転送します。画像処理を行った画像をビューアーソフトやHALCONなどから直接確認できます。

この様に処理の流れが直感的に理解できる事で開発の効率化を実現できるだけでなく、プログラムの再利用や社内における技術共有なども効率よく行って頂く事が可能です。


  特長2: 開発環境におけるFPGA処理結果シミュレーション機能搭載

VisualAppletsの2つ目の特長として、開発環境上でFPGAの処理結果を容易に確認できるシミュレーション機能があります。例えば、先ほどのY方向のSobelフィルタをかけた例では、以下のように風景画像を撮影した場合、フィルタ処理やしきい値処理によってどのように画像が変化していくかを確認できます。

さらに、FPGAのリソースチェック機能では、現在のプログラムが消費する各FPGAリソースの状況をモニタリングでき、現在の回路規模内に収まるかあるいはどの処理がボトルネックとなっているかを確認する事が可能です。また帯域チェック機能では、処理フローにおけるデータ転送が可能な帯域を超過していないかを確認する事が可能になっています。この様にFPGA処理の実現性をオフラインにて行える事が、効率的な開発を行っていだたく上で大きなメリットとしてご活用頂けます。


  特長3: 200種類に及ぶオペレータライブラリ

Silicon Software社はこのVisualAppletsで利用できるオペレータを200提供しており、これらの組み合わせにより様々なアプリケーションの実現が可能になっています。

それぞれのオペレーターは直感的に理解しやすいアイコンとなっており、また単純なフィルタ処理だけではなく、信号処理やDIOのリアルタイム制御、ブロブ処理やJPEG圧縮など幅広く網羅しています。これにより海外では以下のようなアプリケーションへこのVisualAppletsを活用頂いています。

 
 
VisualAppletsによる3ステップのFPGA画像処理開発

VisualAppletsによるFPGA開発の流れは大きく3ステップとなります。

まず初めに、VisualAppletsにてオペレータをドラッグ&ドロップで並べプログラムを生成します。上記のような効率的なシミュレーション機能の活用により、まずVisualApplets上にて可能性がご確認頂けます。
一連の処理が出来上がった後、VisualApplets上のコンパイルボタンを押し実行形式へと変換します。自動的にXilinx社のコンパイラを使用したコンパイル作業が行われ、Silicon Software社の画像入力ボードmicroEnableへの動作形式へと変換されます。VisualAppletsの動作にはVシリーズのボードが必要となり、詳細についてはLinX Express vol 215をご覧ください。
最後に、実際に処理を行った画像を無償のAPIやHALCONから取得し、アプリケーションや任意の後処理の実装等を行います。

VisualAppletsのデモ機のご評価のご依頼や技術的なお問い合わせなどは弊社営業窓口(sales_siso@linx.jp)までお気軽にお問い合わせください。

※LinX Express 配信の中止・アドレスの変更をご希望の方は、お手数ですが右の「ご登録内容変更」よりお問い合わせください。