マシンビジョンの標準化 - 相互交換性か互換性か

1 マシンビジョンの標準化

マシンビジョン規格の登場により、業界内では今までにないやり方で協業が進められるようになりました。その成果としてこの 10 年間で、産業用カメラに使用する汎用インターフェースとして GenICam、GigE Vision、USB3 Vision が誕生しました。これらのインターフェースでは、機能名が標準化され、機能範囲が定義されています。これで、開発コストの削減を目標としているマシンビジョン用途におけるカメラのデザインインフェーズがシンプルになり、短期化されます。デバイスの相互交換性と完全なプラグインプレイ機能は、常に主な特長として重視されてきました。

しかし、これらの要素はアプリケーションの実装にとっても欠かせないものなのでしょうか。あらゆる用途に対して全面的に汎用なソリューションが、最適な手段なのでしょうか。それはまったくケースバイケースです。

成果の高いアプリケーションを作成するには、メーカーの相互交換性が強みとして重要であることは確かです。しかし、この強みを維持するには条件があり、その条件は満たす必要があるだけでなく、アプリケーションを準備するときにしか定義されないということは明らかです。

それに対して、「ビジョン規格」の仕様に準拠したマシンビジョンコンポーネントの開発は重要で、これまで以上に多くのアプリケーションに使用できるようになります。そこでメーカーにとって、望ましい目的は「互換性の拡大」となりますが、標準のビジョンプロトコルを使用することで自動的に達成されます。

AIA (Global Association for Vision Information) および EMVA (European Machine Vision Association) のような団体による標準化は、マシンビジョン環境でのインターフェースの混乱に終止符を打つための重要な進展です。それでも、規格にはメーカーが SFNC に従わない固有の追加機能を実装する十分な余地があるため、プロバイダーは自社を差別化できます (実装の品質)。このようなメーカー固有の機能セットを使用すると、ソフトウェアを調整せずにはメーカーを変更できなくなります。

プログラミングインターフェースに関しても、ビジョン規格に含まれていない便利な機能を取り込めるので、独自のメソッドは GenlCam よりもはるかに高い利便性と操作性を確実にもたらします。産業用カメラのメーカーはこの点を考慮し、標準化されたインターフェースに基づきながらも、独自のプログラミングインターフェースを提供しています。

このような「独自規格」を使用していてもアプリケーションはメーカー間の互換性を維持できるのでしょうか。それとも、標準インターフェースのみを使用すべきなのでしょうか。

2 標準化されたシステムの詳細

アプリケーションの要件と目的を効率的に実装するには、汎用システムソリューションの重要事項を把握し、適切な範囲で使用する必要があります。

システムアーキテクチャ

GigE Vision または USB3 Vision インターフェースを搭載した現在のマシンビジョン規格カメラが、メーカー固有のソフトウェアパッケージがなくても「動作」するとしても、基本的なシステムアーキテクチャの維持は必要で、システム上に存在していなければなりません。

ハードウェアレベルは、カメラデータ転送の確立された技術や接続方法、および通信プロトコル (USB、ギガビットイーサネットなど) に基づいています。デバイスソフトウェア (ドライバーおよびユーザー空間ライブラリ) は、カメラの転送チャネルとユーザーアプリケーションの通信に API を使用します。

図 1 – インターフェースの標準化により、マシンビジョン規格カメラを使用する用途の幅が広がります。

GenICam をベースとして、システムアーキテクチャには複数のインターフェースの標準化が行われてきました。これにより、マシンビジョン規格カメラを使用するきっかけとなる、明確に定義され、文書化された多数のインターフェースが生まれました。

複数を 1 つに集約、1 つで複数に対応

GenICam (Generic Interface for Camera: 汎用カメラインターフェース) をユーザーアプリケーションとデバイスソフトウェア間の通信リンクとすると、多数のメーカー固有のプログラミングインターフェースは 1 つの汎用に適用できるインターフェースに限定されます。GenICam は、メーカーおよび転送プロトコルに対するすべてのカメラ機能へのアクセスを抽象化しています。GenICam は記述言語です。用意されている関数は、関数自体を知らなくても使用できます。そこで、カメラモデルごとに変化する機能や、ファームウェア更新によって拡張される機能がある用途に最適な基盤となります。

GigE Vision や USB3 Vision のようなプロトコルを転送レベルで導入するには、カメラファームウェアの面で再検討が必要でした。このような AIA のメンバーによって定義された標準化された転送プロトコルを導入したカメラは、デバイスソフトウェアと標準言語を使用して通信します。これにより、カメラファームウェア、転送プロトコル、デバイスソフトウェアとの厳密な関連付けが解除され、カメラは 1 つのメーカーのソフトウェアから解放されます。

独立性が新たなチャンスを生む

Vision 対応カメラは、メーカーに依存しない「GenTL (Generic Transport Layer)」で動作できるようになりました。GenAPI (Generic Application Programming Interface) によって、カメラの標準準拠の XML ファイルを解析することで、利用できるカメラの機能を一覧して設定できます。このファイルには、GenICam 仕様の GenAPI モジュールで定義された構文を使用して、実装されているすべてのカメラ機能について、関数名、パラメーターリスト、拡張情報、関数の説明が記述されています。アプリケーションから表示される機能のツールチップは、XML ファイルで記述されています。すなわち、カメラ自体にプログラミングマニュアルが装備されていると言えます。

GenICam SFNC (Standard Feature Naming Convention) で定義された標準機能を扱う場合も、1 つのメーカーからしか利用できないが、標準に準拠して実装されている特別な「カスタム機能」を扱う場合でも違いはありません。

図 2 – GenAPI は、定義された機能名を使用して、デバイス固有のレジスターアドレスと通信します。

技術的には、メーカー非依存のハードウェアおよびソフトウェアの連携は、規格によって定義され、「望ましい」と見なされます。ただし、カメラだけが完全に独立しています。一部のメーカーの GenICam プロデューサーは、連携させたいカメラの種類をユーザーに推奨しているようです。このため、ユーザーにとって相互交換性が若干不透明になってしまいます。

独立性とはすなわち、カメラメーカーとユーザーの両方にとって多大な新しいチャンスをもたらすものです。たとえば、ハードウェアとソフトウェアリリースの分離などです。カメラを使用するためのホストソフトウェアの調整、文書化、発行が不要になるので、新しいカメラモデルまたは新しいカメラファームウェアを、より短期間で提供できます。

同様に、個々のカメラモデルをホストソフトウェアや他のモデルとは独立して更新することも、すばやく簡単に実行できます。EMVA 団体のメンバーはすでに、標準準拠の任意のソフトウェアを使用してメーカー固有の更新パッケージでビジョンカメラを更新する方法を定義する、更新仕様の策定に取り組んでいます。GenICam 規格の更新モジュール仕様は、2017 年夏季後半に予定されています。

非依存によって、プラットフォームの互換性が自然に拡張されます。GigE Vision や USB3 Vision のような標準転送プロトコルによって、どのようなプラットフォームやオペレーティングシステムでも、転送レイヤーを含めて標準準拠のメーカー非依存ソフトウェアがあれば、カメラは動作できます。同じ企業が提供していなくても、問題ありません。

このような非依存性が、「相互交換性」の基礎となります。

GenTL には違いがある

GenTL はすべてが同一ではありません。カメラ向けにもユーザーアプリケーション向けにも標準化されたインターフェースがあること (図 1 の白い部分を参照) と、実際には画像撮影を含めたデバイスの識別と処理のみを目的にしているという事実から、すべてのビジョンカメラと互換であると結論付けることはできません。

標準化された GenTL は、HALCON などのマシンビジョンライブラリへの非常に有益な追加要素で、すべてのメーカーのビジョンカメラに対してオープンです。この利点は、メーカー固有のサードパーティライブラリをインストールすることなく、すべてのカメラに対して完全なプラグアンドプレイ機能を提供することです。この理由で、MVTec 開発者は HALCON に専用のメーカー間互換 GenTL (図 3 を参照) を搭載しており、特別なメーカーソフトウェアを使用しなくても、あらゆるビジョン互換カメラを使用できます。

カメラメーカーにとって、標準仕様ではなく自社製 GenTL を使用することで、自社製カメラと「最適」に動作し、メーカーのサポート対象となるソフトウェアコンポーネントを顧客に提供できるようになります。これは、マシンビジョン用途においてカメラに問題が発生した場合には重要な点です。アプリケーション、MV ライブラリ、GenTL、そしてカメラがそれぞれ別のメーカーから提供されている場合、どのメーカーが責任を持つのでしょうか。この疑問は、すべてのコンポーネントが同じメーカーから提供されていれば生じることはありません。

3 カメラの均一性とは

標準に準拠するカメラは、同じプロトコルを使用してデータの通信と転送を行い、定義された標準機能を実行します。「1 つ理解できれば、残りもわかる」と思うかもしれませんが、そうではありません。

これまではカメラとホストとの間で通信を確立するにはさまざまなドライバーソフトウェアがこれまで必要でしたが、今では必要な「言語」は 1 つだけです。各メーカーは独自のやり方を模索していましたが、今では共通のインターフェースで連携し、カメラ機能を実装して定義された仕様に準拠しています。この動きは、どのユーザーにとっても有益です。メーカーが差別化を維持するにはどうすべきでしょうか。標準化されたカメラはそれでも、成功に不可欠な多数のコンポーネントで構成される、複雑な製品です。

たとえば、ハウジング (安定性、寸法、材質、重量、コネクター、光学機器、アクセサリ)、電子機器 (EMC 動作、干渉動作、発熱、メモリ、パフォーマンス、サービス寿命)、ソフトウェア (センサーの知識、機能の実装、モジュール性、メンテナンス、サポート) など、さまざまな要素があります。パッケージ全体は、アプリケーションでの使用に不可欠です。

ビジョンカメラをすばやく簡単に使い始めるための万全なソフトウェアサポートは、ビジョンの新規ユーザーやビジョンに乗り換えるユーザーにとって、選択の決め手となります。IDS Imaging Development Systems GmbH では、自社製品について総合的なパッケージを常に提供しているので安心できます。インストール後は、便利なカメラ評価用のグラフィカルインターフェースを備えた IDS Vision Cockpit に加えて、メーカー固有の GenTL も利用できます。これによって、市販されているすべての標準準拠のマシンビジョンライブラリとの完全互換が確保されます。

ビジョンコンポーネントは相互交換が可能な場合もありますが、このようなオールインワンパッケージはマシンビジョンプロジェクトにとって決定的な強みとなります。カメラハードウェアからカスタマーアプリケーションまで、完全なメーカーサポートが含まれているからです。

4 簡単に使い始められるか

最も簡単な方法は、HALCON、LabView、Cognex VisionPro などの標準準拠のマシンビジョンソフトウェアを使用して、ビジョン規格コンポーネントを使い始めることです。多数のよく知られたマシンビジョンソフトウェアパッケージには、固有の GenTL プロバイダーが付属するようになりました。これにより、メーカー固有のソフトウェアがなくても、ビジョンカメラを物理的に交換できます。メーカー固有の GenTL を使用してカメラを統合するため、これらのマシンビジョンソフトウェアパッケージの一部には対応する GenICam コネクターが搭載されています。

図 3 – HALCON の固有の GenTL プロデューサーにより、GigE Vision への直接インターフェースが備えられています。GenICam によって他のビジョン規格インターフェースへの接続も可能になります。

マシンビジョンソフトウェアメーカーは、標準化を最大限に活用しています。ユーザーは、マシンビジョンシステムとカメラをすぐに統合でき、プログラミング作業は不要です。ユーザーが標準インターフェースにアクセスする方法は、対応するマシンビジョンフレームワークの動的 GUI の使用に限られます。基本的に、使いやすい「独自」のグラフィカルインターフェースを表現するので、ユーザーにとって最大級の使いやすさを実現します。

しかし、どのマシンビジョンのサードパーティ企業も、対応する GenTL プロバイダーを提供しています。このため、プラグアンドプレイ機能が多少損なわれてしまいます。

2 番目の方法を選んでアプリケーションを最初から開発する場合、追加作業の発生が見込まれます。これによって、重点がプログラミングインターフェースに移ります。この場合、アプリケーションの実装にとって、その他の要因が重要になります。

GenICam を使用した汎用プログラミングは、非常に厳格で複雑な原則があるため、面倒な作業となります。あらゆる可能性を考慮して正しく対処するには、各機能と値の範囲を確認してから、カメラのパラメーターを変更する必要があります。GenICam の各コンポーネントへのフィルタリングされていないアクセスは非常に原始的で、これらの原則を詳しく理解している必要があります。特定のデバイスへの理解を迅速に進めて、複雑なオプションにそれほど興味がない場合は、シンプルで簡潔な概要を API として使用できます。このようなユーザーは完全な「独自」のアプローチを選択して、ビジョン規格で達成されたすべての利点を手放す必要があるのでしょうか。

5 独自の規格

定義されたインターフェースによって、ビジョン規格カメラを複数の方法で使用できます。補助機能や緩和機能とも呼ばれる便利な機能の利用は、開発者をサポートするための独自のプログラミングインターフェースでは一般的に使用される設計概念です。アトミック関数呼び出しが選択的にカプセル化されるので、コードがシンプルになり、明確になります。「定義された」目的は、少数の関数呼び出しですばやく簡単に達成できます。

カメラに対するこのタイプの「独自 API」は、規格に準拠して動作する場合、カスタマーアプリケーションに対する追加のアクセスオプションにもなります。

図 4 – 独自インターフェースでビジョン規格カメラを使用するチャンスを拡大します。

独自レベルのメーカーが自社デバイスのフィルタリングを統合しない限り、このアプローチでメーカー間のアプリケーションの使用を妨げる理由はありません。

HALCON など、マシンビジョンライブラリ向けの固有の GUI は、このアプローチに従っています。HALCON は独自のユーザーインターフェースでビジョン規格を使用しています。プログラミングインターフェースのシンプル化は可能で、顧客への利点を強化します。

6 アプリケーションが肝心

標準インターフェースの使用は、さまざまなカメラとさまざまな機能範囲を利用するアプリケーションにとってメリットになります。USB3 Vision や GigE Vision など、異なる転送テクノロジーを使用する標準カメラが混在する運用は、GenICam インターフェースを使用して標準化された通信によって、はるかに容易になります。アプリケーションでは、このようなデバイス固有の機能を一切認識する必要がないため、すべての標準準拠のデバイスについて互換性を維持します。

完全に動的な GUI により、ビジョンカメラの接続と機能範囲が実現し、プログラミング作業は発生しません。ユーザーまたはマシンビジョンオペレーターは、カメラを該当する用途に調整して、すぐに実作業に取り掛かれます。

固有の GenTL も用途に含まれる場合、メーカー固有のソフトウェアをインストールしなくても、新しいカメラを統合できます。

マシンビジョンカメラのメーカーにとって、ビジョン規格は、相互交換を実現できるだけでなく、あらゆる標準準拠のアプリケーションを開発する互換性も強化されます。

しかし、ビジョン規格の USP (Universal Selling Proposition) が 2 番目に重要となるカスタマーアプリケーションは、市場に一定の割合で残っています。このようなユーザーは、総合的なメーカーサポートが提供され、必要に応じて用途に合わせて柔軟に調整できる特殊カメラをシンプルなインターフェースですぐに使用できることを求めています。

最終的には、成功を収め、「ビジョン市場で最適なユーザーエクスペリエンス」を提供するためにどのメーカーのどのインターフェースとデバイスを使用するかの決定は、常にお客様とその用途に委ねられています。