この記事では、LabVIEWへのアドオンソフトウェアである画像開発モジュール(VDM)をインストールした際に付属するVision Assistantというソフトウェアとは何なのかについて紹介しています。
LabVIEWは使ったことがあるけれど画像解析なんてしたことない、難しそう、と思っている方も割と導入しやすいソフトだと思います。
Vision Assistantとは
そもそもVision Assistantとは何かについてですが、これは画像解析のための処理を対話的に構成するためのソフトウェアになります。
対話的にというのがポイントで、いわゆるプログラムを書くという感覚ではなく、「まずはこの処理をしたい、その時のパラメタはこのようにする。次にこの処理を・・・」と、選択肢から選んで組み上げていく方法で画像解析を行います。
処理の内容は、解析関数のリストから選ぶだけです。

そしてそれぞれに対して処理を実装する上でのパラメタの設定が必要になるので、これも全て対話式に行います。

なお、Vision AssistantはLabVIEWの関数パレットの中にVision Assistant Express VIとしても存在しています。Express VIという名前がついている通り、これも対話式で行う・・・というか、Vision Assistantのソフトウェアとやることは同じです。
Vision Assistantのソフトウェアと、LabVIEWの中のVision Assistant Express VIはほぼ同じですが一部やれることが異なります。
それは、Vision Assistantのソフトウェアの場合、Vision Acquisition Softwareもインストールされていることで、画像集録自体もできるようになる点です。つまり、Vision Assistantの中だけで、画像の撮影から解析まで対話式に行うことができます。

ただし、画像を連続で撮影しながら都度解析を行うといった操作はできません。あくまで画像が既にある状態で解析を行う、それがVision Assistantになります。
Vision Assistant (Express VIも含む)の便利な点として、LabVIEW VIに変換という機能があります。これを使用することで、対話的に構築した画像処理の動作をLabVIEWプログラムに変換してくれます。(Express VIの場合には、右クリックで「フロントパネルを開く」)
Vision AssistantからLabVIEW VIに変換した場合には画像解析の関数をそのまま使用するようになるため、それぞれの関数の実際の使い方を知るのにも役立ちます。

Vision Assistantの使い方
では実際にVision Assistantの操作感について紹介していきます。(以下ではVision Assistant Express VIではなくVision Assistantソフトウェアを使用した場合の画面になります)
Vision Assistantを開いたら、まずは解析対象となる画像を選択します。画像ファイルは一枚を選択してもいいですし、複数選択すると複数読み込めます。一回一回で解析対象とできる画像は一つですが、複数の解析処理を自動で実行させる際には選択した複数の画像を自動的に切り替えて処理してくれます。

画像さえ選んだらあとは好きな解析処理をリストから選び処理の内容に応じてパラメタを設定していきます。
このとき、左下に表示される各解析処理では、現在の画像に対して行える処理、行えない処理が混在します。例えば、RGBのカラー画像に対してグレースケールの処理関数は行うことができません。

一方で、画面上部のメニューバーから処理を選ぼうとすると、現在選択している処理が実行された後の画像に対して行えない処理はグレーアウトで表示されます。そのためどの処理が選択できるかが素早く判断できます。

Vision Assistantで処理を構築し終えたら、パフォーマンスメータを使用することで、処理全体がどの程度の時間がかかるかの目安を測ることができます。
画像解析は処理が重いものもありますが、基本的には次から次へと得られる画像に対し素早く処理を施せるにこしたことはありません。そこで処理全体の目安を測るこの機能が役立ちます。

あとは必要に応じてLabVIEW VIに変換します。VIに変換する際には既に上で説明したように
- どのバージョンのLabVIEW用に変換するのか
- 画像はどのように用意するのか
- 制御器、表示器はどうするのか
といった設定を行い、各処理をLabVIEWの関数に落とし込んで変換してくれます。
ただし、この変換機能は必ずしも「効率の良い」プログラムになっていないこともあります。そのため、変換後のブロックダイアグラムを見て、必要に応じて処理を簡潔にします。
Vision assistantで困ったら
LabVIEWでプログラムの構築に困った場合にはサンプルファインダでサンプルを確認することが有効です。
Vision Assistantにもサンプルが存在していて、それがソリューションウィザードです。いろいろな産業の場面で必要とされうるいくつかの画像解析のシナリオがまとまっていて、それぞれの中身を見てどのような処理を並べどのような結果が得られているかを見ることで自分がやりたいことのヒントになる場合があります。

また、Vision Assistantをインストールすると、
C:\Users\Public\Documents\National Instruments\Vision Assistant\Documentation
にチュートリアル資料がインストールされます。これは具体的ないくつかのシナリオを通してVision Assistantそのものの動かし方を学ぶのに適しています。
また、各画像解析処理についての内容やアルゴリズムの背景を知りたい場合には
C:\Program Files (x86)\National Instruments\Vision\Help
のパスにあるNIVisionConcetps_JPN.chmファイルを参照することで、それぞれの処理がどのような計算等で導き出されているかの情報を確認することができます。
あるいは、Vision Assistantからは離れますが、LabVIEWのサンプルファインダでも画像解析処理のサンプルを探すことができます。というかこちらの方がサンプルの数は多いのでこちらも参考にすることをオススメします。

LabVIEWが使えなくても、画像解析が行えうための対話式ツール、それがVision Assistantです。もちろんLabVIEWを使用できたに越したことはないですが、Vision Assistantとはそもそもなんなの?と思われていたかに少しでもこの記事が参考になればうれしいです。
ここまで読んでいただきありがとうございました。
コメント