待望のHALCON最新バージョン9.0が2009年2月にリリースされました。革新的なマッチング技術の進歩や大容量画像処理アプリケーションへの各種次世代機能など、先駆的な研究成果を的確に組み込み、前回バージョンからさらに進化を遂げています。
ここではHALCON 9.0でサポートされた新機能をダイジェストにて紹介します。
ラインセンサーや64bitOSの普及により画像処理の高精度・高解像度化が進む中、大容量画像の取扱いに関する機能拡張が求められています。このような市場からの強い要求に対して、従来までの制限であった画像サイズ32k x 32kという壁を取り除いた新たな拡張ライブラリ「HALCON XL」が誕生しました。HALCON XLでは最大1G x 1Gまでの画像サイズを扱うことができるため、大容量画像を扱うアプリケーションの可能性を大きく広げることができます。例えばラインセンサーカメラで32kを超えるラインの取り込みや、複数台カメラで取り込んだ画像を合成し巨大画像を扱うなど、様々なアプリケーションが可能となります。
画像処理アルゴリズム開発を強力にサポートするHALCONの統合開発環境HDevelopが、さらに使いやすさを増してパワーアップしました。多くの新機能を追加し、より効率的かつ扱いやすく改良されています。
完全テキストエディターをサポート
プログラムの入力方式として、従来のオペレーターウインドウからの入力に加え、完全テキストエディターをサポートしました。これによりコードの直接入力ができるだけでなく、テキストファイルやドキュメントからのコピー入力が可能となり、開発効率がさらに向上しています。
カメラキャリブレーションアシスタント機能
従来のアシスタント機能にカメラキャリブレーションアシスタントが追加されました。画像入力アシスタントを内部で使用でき、オンラインで取り込みながらキャリブレーションプレート画像の確認が可能です。さらに精度向上のためのアドバイスがリアルタイムに表示され、撮影画像の適切性を確認しながら画像取得を行うことができます。これらの処理はプログラミングすることなくマウス操作で容易に行うことができ、コード生成機能により自動でコード化が可能です。
プロシージャ機能拡張
HALCONのいくつかの関数を一つに登録できるプロシージャ機能は、開発チーム内部において共通の関数を定義できるなどといった有用性から幅広くご利用いただいている機能です。HALCON 9.0からさらにプロシージャのドキュメント機能が拡張され、各プロシージャのリファレンスをユーザ独自で容易に作成・登録できるようになりました。カテゴリー分けや入出力の定義など細かく設定可能であり、より管理しやすい形に自由に設定していただくことが可能です。
エラーハンドリング関数(try...catch)のサポート
エラーハンドリングをより扱いやすく行っていただくための専用関数(try...catch)が新たに追加されました。これによりエラー発生時の例外処理を容易かつ分かりやすくプログラミングすることができ、エラーハンドリングまで含めた柔軟かつ高度なアルゴリズムの開発をHDevelop上で実現することが可能です。
各種便利ツールのコードレットを提供
これまで、非常に多くのユーザ様から「HDevelopのツールをアプリケーションでも使いたい」というご要望を数多くいただいてまいりました。このような多くのご要望にお応えし、HALCON 9.0では、HDevelopの各種便利ツールを実現できるコードレットを提供しています。これらを活用することで、プログラミング言語にエクスポートした後のアプリケーション開発においても各種機能を容易に組み込んで使用することが可能です。
画像処理の分野において、特に大容量画像アプリケーションの需要が高まりを見せる中、処理速度の向上は高精度性や機能性と同様に非常に重要な課題です。HALCON 9.0では各関数のさらなる最適化が行われ、2値化を始めとする主要関数も含め飛躍的な速度向上を実現しました。特に前処理でよく用いられるフィルタ系や2値化処理は約2倍以上の速度向上を実現しているほか、グレイモフォロジーや数値演算処理は3倍以上(最大83倍!)など、飛躍的な高速化が実現されています。
さらに、自動並列演算機能も大幅に強化されました。2D/3Dパターンマッチングやエッジ抽出、アフィン変換や特徴点抽出などの複雑な処理においても、内部的に並列化可能な箇所を切り分けデータを分割・処理・結合することで、自動並列演算に対応し高速化させることに成功しました。マルチコアCPUの普及が進む中で、その性能を最大限に生かした高速なマシンビジョンシステムの構築が可能です。
従来のマッチング技術とは全く異なる新手法『特徴点サーチ透視歪マッチング』が誕生しました。対象の輝度変化やエッジ形状をモデルとして用いる従来の手法に対して、特徴点サーチ透視歪マッチング手法ではドットやコーナーといった画像中の特徴点を自動的に抽出し、周囲の輝度パターンとともにモデルとして登録します。さらに検索ではRANZACアルゴリズムを採用し、特徴点間の類似性だけではなく相対的な位置関係の一貫性も検証することで、矛盾する検索結果を排除し精確なマッチングを実現することができます。
相対位置を考慮することで透視方向への傾きにも対応することができ、キャリブレーション機能と組み合わせることで3次元位置・姿勢を取得する3次元機能へと拡張させることが可能です。
HALCONが提供する高速かつロバストな形状ベースパターンマッチング技術が、透視歪を考慮した『可変形状サーチ』へと進化しました。
従来の回転、縦横別スケールに加え、透視方向への平面の傾きまで考慮することで、特徴点サーチと同様に3次元的なマッチングが可能です。エッジが明確に見える対象や金属製品において特に高い性能を発揮します。
さらに、可変形状サーチにおいてもキャリブレーション機能との組み合わせが利用でき、単眼カメラによる3次元マッチングが可能です。
画像処理技術の革新に伴い、幅広い分野において3次元機能への要求が高まってきています。HALCONの開発元であるMVTec社は今後3次元機能の技術革新に注力していくことを明言しており、今回のバージョンアップでも非常に有用な新機能が数多く追加されています。
マルチグリッドステレオビジョン
従来の相関ベースのステレオ手法では、対象の高さが急激に変化するエッジ付近において高精度に3次元形状を復元することが困難でした。この問題に対して、全く新しいアプローチによって左右画像のより精確なマッチングを実現するマルチグリッドステレオビジョン法をサポートしました。従来の手法に比べ格段に精密な3次元形状復元を実現し、さらに未定義領域に対して補間機能を適用することで、視野全体に対してより高精度な3次元情報の取得が可能です。
左:従来の相関法による手法 右:マルチグリッドステレオ
光切断法のための専用関数を提供
3次元形状を取得する有効な手法として知られる光切断法をより容易に実現できる専用関数をサポートしました。柔軟な設定により状況に合わせたレーザー抽出ができ、それらの情報を関数一つで視差画像に変換可能です。さらにキャリブレーション機能と合わせて使用することで、世界座標系における3次元情報を取得することができます。
レーザー光のプロファイル(左)から高さ画像(右)を自動算出
ハンドアイキャリブレーション機能の強化
HALCONが従来からサポートしているハンドアイキャリブレーションは、ロボットビジョンシステムを構築する上で重要な機能の一つです。HALCON 9.0ではこの機能がさらに使いやすく改良されました。既知であるロボットの位置情報とカメラパラメータを関数に入力するだけで、画像座標系とロボットハンドの相対位置関係をHALCONが自動的に算出してくれます。これにより画像処理結果とロボット動作を結びつけ、スムーズなピッキングを実現可能です。
ロボットビジョンに必須なハンドアイキャリブレーション
3次元表示機能の強化
3次元機能の要求に伴い、表示機能も強化されました。取得された3次元情報をより分かりやすく、より扱いやすく3次元的に表示する機能が追加され、用途に合わせた表示方法を選択可能です。さらに簡単なマウス操作で自由に視点を変更でき、3次元情報のスムーズな確認が可能です。
様々な設定で3次元描画が可能
2次元パターンマッチングにも有用な新機能が追加されており、従来のマッチング手法と合わせてさらに柔軟なアプリケーション開発をサポートします。
マッチングタイムアウト機能
従来の相関ベース・形状ベースパターンマッチングにタイムアウト機能が追加されました。事前に時間を設定することで時間内に処理が終了しなかった場合にエラーを発生させ、例外処理を行うことが可能です。厳密なタクトが要求されるアプリケーションにおいてより柔軟なアルゴリズムの開発が可能です。
CADデータによるモデルの直接生成
2次元CADデータから対象のエッジ形状を読み込み、そのエッジを直接モデル登録することができるようになりました。画像中から適切なモデルエッジを抽出することが困難な場合や設計段階でCADデータをすでに持っている場合に非常に有用な機能です。さらに、CADデータに限らずエッジ形状(XLD)を直接モデルとして登録できるため、モデル生成ステップを柔軟かつ容易に行うことが可能です。
マッチングロバスト性の向上
従来の形状ベースパターンマッチング機能は、一定の条件(ピントのぼけ、形状の変化など)において設定が困難という問題がありました。HALCON 9.0では上位ピラミッド画像を用いたサーチにより、悪条件下におけるロバスト性を向上させています。ピントぼけや微妙な形状の変化に対しても容易にロバストなマッチングを実現可能です。
高次元カメラキャリブレーション
HALCONは10年以上前にリリースされた当初から高精度計測に必須である3次元カメラキャリブレーション機能をサポートしており、これは10年以上経過した今においてもHALCON独自の特長機能となっています。HALCON 9.0ではこの機能がさらに進化し、より詳細にレンズ歪をモデル化することにより飛躍的に精度が向上しています。特に画像の境界近辺や歪が特殊なレンズにおいて、一般的な手法とは比較にならないほど高精度な補正を実現することが可能です。
自動キャリブレーション
キャリブレーションプレートを使用しないレンズ歪補正の手法として、画像中の直線成分を用いた自動キャリブレーション機能をサポートしました。実世界において直線であるはずの画像中のエッジ情報を用いて、それらを直線に補正するような変換によりキャリブレーションを行います。任意のエッジ情報を利用できるため容易に歪補正が実現可能です。
印字品質検査
HALCONは前バージョン8.0にて、すでにISO/IEC 15415規格における2Dコードの品質検査機能をサポートしておりました。HALCON 9.0ではさらに、ISO/IEC 15416規格(1Dバーコード、RSSコード)、AIM DPM-1-2006規格(2Dデータコード)における品質検査が可能です。サンプルプログラムも充実しており、手順にしたがって品質検査前のキャリブレーションから品質評価まで容易に開発していただくことが可能です。
読取機能強化
従来までの機能にてすでに最低品質を大きく下回る印字画像でも読み取ることができていましたが、HALCON 9.0ではさらに読み取り機能が強化されました。ECC200コードではファインダーパターンがない状態でも読み取ることが可能となり、さらにデータコードのモジュールが1,2ピクセル程度しかない場合にもロバストに読み取ることができるなど、読み取り性能が大きく向上しています。
従来のHALCONでは一部の幾何学変換を除いて1次元配列のみ扱うことができましたが、HALCON 9.0では新たに2次元配列による行列演算をサポートしました。これにより、固有値演算や特異値演算など様々な行列演算をHALCON上で行うことが可能となり、数学的な問題の解決やデータ解析など様々な用途に適用していただくことができます。
多次元配列による行列演算をサポート
HALCON 9.0では完全TIFF形式をサポートします。これにより、異なるサイズやタイプ(byte、uint2など)の画像データをすべて一つにまとめて保存、読み込むことができるようになりました。例えば検査画像とキャリブレーションセットをまとめて保存したり、検査画像と結果画像をまとめておいたりなど、様々な用途に活用していただくことが可能です。
様々な形式の画像をまとめて保存可能
動画像解析に有効なランクフィルターが追加されました。連続画像における各ピクセルの輝度値をランク付けし、任意ランクの輝度値を取得することができます。例えば移動体の連続画像において中央ランクを選択することで、背景画像を高精度かつ容易に取得することが可能です。バリエーションモデルの平均画像取得など、幅広い用途にご活用いただけます。
平均画像(左)に比べ高品質な背景画像(右)を取得可能
複雑な演算が必要なカラー変換をルックアップテーブル(LUT)を用いて高速化できるようになりました。特にカラー処理でよく利用されるHSI空間への変換は、ルックアップテーブルの適用により2倍以上の高速化を実現しています。
HALCON 7.1、HALCON 8.0の新機能は下記よりご確認ください。
















