画像の前処理によるビジョンシステムの性能向上と最適化
オンボード画像・信号処理
このホワイトペーパーでは、FPGA搭載フレームグラバーを使用してカメラとホストコンピューターを接続し、リアルタイムな画像・信号処理を実現する方法について、以下のトピックを中心に解説します。
リアルタイムな画像・信号処理を実現する方法
ハードウェアプログラミングの難易度
FPGA処理に適した撮影用途
カメラによる撮影からホストコンピューターでの結果表示に至るまで、画像処理にはさまざまな工程がありますが、なかでもフレームグラバーによる前処理は非常に重要な役割を果たしています。用途に応じて画像データを最適化し、転送時のロスを効果的に防止すれば、後続の処理を含め、システム全体の運用をスムーズに行うことができます。
前処理を行う目的は、画像内の見えにくい部分や後続の処理(範囲設定、セグメンテーション、特徴抽出など)に必要な部分を強調して可視化することにより、最終的なホスト側の負荷を軽減することにあります。また、通常の前処理では、生画像に対して関心領域(ROI)の設定、JPEG圧縮などを行いますが、これらにはついては後ほど解説します。
前処理の具体的な内容は、カメラセンサーの撮像性能に大きく異なります。簡単操作のFPGA画像処理開発環境VisualAppletsを使用して画像の前処理・全般処理にかかわる機能を実装し、フレームグラバーのFPGA上またはカメラ、ビジョンセンサーをはじめとするビジョンハードウェア上で各種処理を行えば、リアルタイムな撮影が可能なエンベデッドシステムを構築できます。
カメラを利用した前処理
フレームグラバーを必要としないインターフェース(USB3 Vision、GigE Visionなど)やエンベデッド構造を採用しているシステムの場合、カメラ(センサー)の内部で直接前処理を行うことができます。あらかじめカメラ側でデータ容量を減らしておけば、転送や解析にかかる時間が少なくなり、システム全体の効率化にもつながるため、特に帯域幅が狭いGigE Vision対応システムや処理能力が低いエンベデッドシステムでは、前処理が必要不可欠になります。
Baslerカメラには、デベイヤリング、カラーアンチエイリアシング、シャープネス、ノイズ除去をはじめとする前処理機能が内蔵されており、細かい部分まで鮮明でノイズの少ない画像を撮影することが可能です。さらに、プログラマブルフレームグラバーを導入し、フィルター処理、色空間の変換といった高度な前処理を行えば、CPU負荷の軽減にもつながります。
フレームグラバーを利用した高度な前処理
CoaXPress、Camera Link、Camera Link HSをはじめとする多くのインターフェースでは、膨大な量のデータをリアルタイムに転送するためにフレームグラバーが使用されます。FPGA上で直接処理を行うフレームグラバーには、デベイヤリング、ルックアップテーブル(LUT)、ミラーリングなどの機能が搭載された標準的なモデル以外にも、以下のような幅広い前処理が可能なプログラマブルフレームグラバーがあり、個別の要件に応じて柔軟な活用が可能です。
ドット落ちの修復
ホワイトバランス補正
シェーディング補正
ブレ除去
各種フィルター(平均化フィルター、平滑化フィルターなど)の適用によるノイズ除去
ハイダイナミックレンジ(HDR)合成による明暗差の補正
幾何補正(アフィン変換など)による歪み補正
ルックアップテーブル(LUT)などによる画像取得時のコントラストの向上、ヒストグラムの拡張・平坦化
色空間の変換
フィルター処理
実際の処理能力にもよりますが、VisualAppletsに対応したビジョン機器であれば、上記のような前処理機能を実装できます。前処理により撮影速度を向上させれば、これまでにない新たな用途の開拓にもつながります。また、回路やタイミングに関する専門知識が求められないため、アプリケーションエンジニアやソフトウェアエンジニアによるFPGA開発が可能であることも、VisualAppletsの大きな特長であるといえます。
VisualAppletsのダウンロードはこちらブロブ解析
VisualAppletsでは、一般的な前処理だけでなく、ほかにも数多くの処理が可能です。例えば、セグメンテーション(領域分割・背景分離)と分類(領域の面積、輪郭線の長さ、バウンディングボックスの座標などにもとづくラベル付け)を行うブロブ解析。この機能を前処理に組み込んでおけば、画像をデータとして保存する前に大部分のセグメンテーションが完了します。
JPEG圧縮によるデータ容量の削減
センサーの高速化・大型化・カラー化に伴い、カメラからフレームグラバーに転送される画像データの容量は増加傾向にあり、最近では4チャネルで5GB/秒の速度を誇るCXP-12をはじめ、広帯域幅に対応した高速インターフェースも登場しています。データ容量を大幅に削減したいなら、JPEG圧縮が効果的です。例えば、自動車のレーザー溶接の場合、カメラからフレームグラバーへのデータ転送に必要な速度が100MB/秒から5MB/秒まで減少します。画像1枚当たりのデータ容量が少なくなれば、フレームレートの大幅な向上にもつながります。なお、帯域幅を有効に活用したい場合は、カメラ側でJPEG圧縮を行うとさらによいでしょう。
アクチュエーターとトリガーの制御
信号処理によるカメラトリガー、照明、アクチュエーターの制御だけでなく、デジタルI/Oインターフェースを介したセンサーの評価も行うフレームグラバーなら、高度なループ制御を行ったり、前処理に各種機能を組み込んだりすることも可能です。例えば、前処理の一環として露光時間を測定すれば、照明やカメラトリガーの制御精度を向上させることができます。
画像処理の安定化・高速化・効率化
高度なアルゴリズムの処理速度の向上、撮影工程の改善、高解像度・高速転送による画像解析の精度・安定性の確保、カメラの帯域幅の有効利用によるホスト側CPU・解析ソフトウェアの負荷軽減を含め、画像の前処理には多くのメリットがあります。
VisualAppletsがあれば、ハードウェアプログラミングの知識がなくても、エンドユーザー側でFPGAによる前処理を簡単に行うことができるため、将来的に撮影要件が変更になった場合、新たに設備投資をしなくても、既存のカメラ、フレームグラバー、その他ビジョン機器を流用し、その機能を拡充するだけで済みます。
主なメリット
インターフェースの簡易化
データ処理の効率化
安価なインターフェース(GigE)によるシステム構築コストの削減
高度なアルゴリズムの処理速度の向上
撮影工程の改善
リアルタイムな画像処理による新たな用途の開拓
処理能力の低い小型プロセッサーの活用
ニューラルネットワークの最適化
プロセス間通信量の削減
CPU負荷の低減
画像解析の精度・安定性の向上
社内開発にかかる労力の軽減
画像処理の最適化事例
色の再構成(デベイヤリング)、色空間・ビット幅の変換:カメラからの生画像をインターフェースの最高速度で転送することにより、帯域幅を最大限に活用することが可能。最終的にフレームグラバーで処理された画像がホストコンピューターに送られます。
HDR合成、JPEG圧縮、自動ROI解析、3Dレーザー三角測量:前処理の段階でデータ容量を大幅に削減することが可能。
明るさ・歪み補正:画質そのものだけでなく、後続の画像解析の精度も向上させることが可能。
オブジェクト検出、特徴抽出(ブロブ、重心、角度、離心率、モーメントなど):ラベル付けによる分類が可能。
サブピクセルレベルの幾何学歪み補正:偽色の軽減やエッジ検出・特徴抽出による自動位置特定が可能。見本と比較するために正確な位置の把握と取得画像の整列が求められるプリント基板検査で特に威力を発揮します。