Cyclone V SoC 開発キットを使用したマシーンビジョンアプリケーション

アイウェーブはCyclone V SoC開発プラットフォームを使用して野菜/果物の傷/損傷を見分けるマシーンビジョンアプリケーションを開発しました。このシステムでは、ナスの傷/損傷を見つけることが出来ます。
アプリケーションの概要:
Cyclone V SoC プラットフォームは、Dual Core ARM(HPS) を備えFPGAをサポートしています。 FPGAはNTSCカメラでナス(茄子)の画像をキャプチャします。撮影された画像はFPGAのプレ・プロセッシングロジックに送られプレ・プロセッシングされた画像はFPGAフレーム入力バッファの中で更新されます。
HPSの中ではQT GUI アプリが走っており、QT GUIアプリがフレームバッファにアクセスしてプレ・プロセッシングされた画像を取り込みます。 OpenCVアルゴリズムを使ってプレ・プロセッシングされた画像を画像処理し傷/損傷部位を明らかにします。処理された画像はFPGAの出力バッファの中で更新されます。 傷/損傷の有無を処理した画像はQT GUI アプリに更新・反映されます。
最後に処理後の画像とQT GUIアプリの結果がFPGA ビデオ ミキサーロジックでアルファブレンドされて、ミックスされた画像が800×480 LCD ディスプレイ上に表示されます。
細部説明:
FPGAでは、NTSCカメラで画像がキャプチャされると以下のプレ・プロセッシングロジックが適用されます。
- カラープレーンシーケンサー
- クリッパー
- デインターレース
- クロマ リサンプラ―
- バックグラウンド除去法
- YCbCrからYをスプリット
- Y コンポーネントの反転
- 7×7メジアンフィルター
- コントラスト拡張処理
プレ・プロセッシングロジックが適用されるとプレ・プロセッシングされた画像はFPGA入力フレームバッファの中で更新されます。
HPSサイドではアプリがFPGA入力フレームバッファにアクセスしてプレ・プロセッシングされた画像を入手し、以下の画像処理機能がプレ・プロセッシングされた画像に適用され処理画像を出力します
- ナスの輪郭モデルを作成
- バックグランドからセグメントオブジェクト
- 輪郭モデルを塗りつぶし
- セグメントオブジェクトから塗りつぶしモデルを除去して傷/損傷部位を抽出
- 傷/損傷部位のコントラスト拡張
- 損傷部位の最小値を求める
- 傷/損傷部位のエリアを特定
損傷エリアを許容パーセンテージと比較して、もしそれが許容値よりも大きければそのナスは傷/損傷の分類に区分されQT GUI アプリが更新される。
処理された出力画像は傷/損傷部位(ある場合)と一緒に輪郭モデルと合成されてFPGA出力フレームバッファが更新される。 FPGAは処理出力画像にアクセスし、アルファチャンネルを追加して LCD (800×480)上に表示する。
ベネフィット:
- マシーンビジョンはコストを削減
- 野菜/果物の品質チェックが向上
- 野菜/果物の傷/損傷の発見に関わる作業員の負担を軽減
- 安定、効率的
- しきい値の設定で広範な野菜/果物に適用可能
- しきい値を設定することでユーザは野菜/果物の許容レベルを設定可能
- 最先端GUIとしてQTを使用
- 画像処理にOpenCV 2.4ライブラリを使用