(57)【特許請求の範囲】
【請求項１】
２次元のスケッチの形状に関する情報を表す記述子を求める方法であって、
前記スケッチのいずれかのポイントと該スケッチの重心との最大距離とされる半径と、該スケッチの重心とによって定義される第１の円を作成するステップと、
前記第１の円を複数の扇形に分割するステップと、
前記第１の円と同心であり該第１の円より小さい複数の別の円を作成するステップと、
前記スケッチに均等に分布するポイントの集合を作成するステップと、
前記複数の各扇形に含まれる複数の各ポイントから前記複数の別の円の円弧であって該扇形に含まれる円弧までの最小距離を計算するステップと、
前記複数の各円の円弧までの計算された前記最小距離によって定義される該複数の各円の周期的関数を求めるステップと、
離散フーリエ変換を使用して前記周期的関数を表すステップと、
前記周期的関数それぞれに相応するフーリエ係数の２次元行列を作成するステップと、
効率的に検索して製品の設計およびデータ管理プロセスで使用するために、前記スケッチを一義的に識別する回転不変量の記述子として、前記２次元行列を記憶するステップと
を実施することを特徴とする方法。
【請求項２】
均質に分布されたポイントの集合の各ポイントから前記重心までの平均距離が１単位に等しくなるように、前記スケッチをスケーリングする、請求項１記載の方法。
【請求項３】
前記重心を、前記スケッチが表現される平面の起点と該スケッチの起点として定義する、請求項１または２記載の方法。
【請求項４】
記述子を求めるためのシステムにおいて、
複数の２次元スケッチ（１００）を有するスケッチデータベース（１０５）と、
請求項１から３までのいずれか１項記載の方法によって前記複数の各２次元スケッチから計算される回転不変量記述子と、
前記回転不変量記述子のインデックスを有する記述子データベース（１１０）と
を含むことを特徴とする、システム。
【請求項５】
機械読出し可能媒体に実装されるコンピュータプログラムにおいて、
当該コンピュータプログラムがデータ処理システム上で実行される場合、当該コンピュータプログラムによって該データ処理システムが請求項１から３までのいずれか１項記載の方法を実施するように構成されていることを特徴とする、コンピュータプログラム。
【請求項６】
少なくとも１つのプロセッサ（１００５）とアクセス可能なメモリ（１０４５）とを含み、請求項１から３までのいずれか１項記載の方法を実施するために構成されたことを特徴とするデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願との相互関係
本願は、２００７年１０月３日に提出した係属中の米国仮出願第６０／９７７２８４号の優先権を主張するものである。
【０００２】
技術分野
ここに説明する本願の有利な実施形態は、一般的にコンピュータグラフィックスソフトウェアアプリケーションに関連するものである。より詳細には本願の実施形態は、２次元スケッチから不変量の記述子を抽出するための方法およびシステムに関する。
【０００３】
背景技術
Aberdeen Group の調査によれば、製品開発では、製造業者の部品のうち３０％〜４０％が、すでに作製された部品と重複するか、またはすでに作製された部品に置換することができる。Aberdee はさらに、使用可能な重複する部品がある新たな部品を導入するための項目あたりの年間在庫維持費は、４，５００〜２３，０００ドルにもなると言っている。すなわち、製造業者が既存の部品を探すためのツールによって、部品を再利用することにより製品開発が格段に削減される。このようなツールは伝統的には、部品のジオメトリのテキストベースの記述であったが、製品に含まれる部品がより複雑になってきたため、このようなツールではすぐに限界に達した。また、多言語の環境で作業しており、種々の言語間での翻訳によってテキストベースの部品記述の精度が低下した場合にも、さらに制限がかかる。
【０００４】
製品開発のデータ管理の最近の傾向は、上述のテキストベースの記述子を探索することから、その代わりに、部品のジオメトリ自体の探索に移行してきている。このことは、高度な技術的手段を必要とする難しい問題である。その１つの問題に、ユーザは、部品が並進または回転または時にはスケーリングされる場合に部品のジオメトリを不変のものとして見なしたい場合があるという問題がある。
【０００５】
上記の問題を解決するための１つの一般的な手段に、並進または回転またはスケーリング時にそれ自体が不変である記述子をジオメトリから抽出して、該ジオメトリにインデックス付与するのに使用するという手段がある。不変性とは、スケッチの方向に関係なく同じ結果が返ってくることを意味する。スケール不変とは、係数によるスケーリングに対して不変であることを含意するだけである。並進不変量および回転不変量に関しても同様である。このような手段が成功するのは、１つの理由として、作業を以下の２段階に効率的に分けるからである：
（１）記述子をジオメトリから抽出する処理は比較的低速度であるが１回実施するだけでよいオフライン段階。
（２）記述子を比較する処理が非常に高速であるため同様のジオメトリを迅速に検索することができるオンライン段階。これらの一般的な解決手段は、２次元（「２Ｄ」）オブジェクトのシルエットを比較して外側の類似性を求める。
【０００６】
ここで、次のような回転不変量スケッチ記述子、すなわち、外側の類似性を含むだけでなく、しばしば重要である内部の類似性も含む回転不変量スケッチ記述子を求めるためのシステム、プロセスおよび方法が必要とされる。
【０００７】
発明の概要
上記の課題を解決するために、広い範囲で記載された本発明の有利な実施形態の目的と関連して、本願で提案する記述子の検出方法では、
扇形内の複数の各ポイントと起点との間の最大距離を計算するステップと、
前記最大距離を開始値として、該複数のポイントのうち１つとターゲット線との間の最小距離を計算するステップと、
前記最小距離から複数のフーリエ係数を計算するステップと、
前記フーリエ係数から不変量記述子を定義するステップと
を実施する。この方法では、前記ターゲット線は同心円である。
【０００８】
本発明の別の有利な実施形態は、
スケッチの起点が平面起点に位置するように該スケッチを並進させる並進ステップと、
前記スケッチのポイントから前記起点までの平均距離が１単位に等しくなるように該スケッチをスケーリングするスケーリングステップと、
前記スケッチから回転不変量の記述子を抽出してスケッチに該回転不変量の記述子によってインデックス付与する記述子抽出ステップと
を実施する、ジオメトリのインデックス付与方法である。前記方法では前記記述子抽出ステップにおいて、扇形内の複数の各ポイントから起点までの最大距離を計算する。また本方法では、前記記述子抽出ステップにおいて、前記最大距離を開始値として、前記複数のポイントのうち１つからターゲット線までの最小距離を計算する。本方法では前記記述子抽出ステップにおいて、前記最小距離から複数のフーリエ係数を計算する。本方法では前記記述子抽出ステップにおいて、前記フーリエ係数から不変量記述子を定義する。この方法では、前記ターゲット線は同心円である。
【０００９】
本発明の別の有利な実施形態は、記述子を求めるためのシステムであって、
複数の２次元スケッチを有するスケッチデータベースと、
前記複数の各２次元スケッチから計算される回転不変量記述子と、
前記回転不変量記述子のインデックスを有する記述子データベースと
を含むシステムである。
【００１０】
さらに本発明の別の有利な実施形態は、
複数の回転不変量記述子を有するデータベースにアクセスし、
相応の回転不変量記述子を有する少なくとも１つのスケッチを探索し、
前記少なくとも１つのスケッチを比較のために取り出す
方法である。
【００１１】
さらに本発明の別の有利な実施形態は、記述子を求めるための方法を実施するために機械読み取り可能媒体に実装されたコンピュータプログラム製品であり、該コンピュータプログラム製品は、
コンピュータが、
・扇形内の複数の各ポイントから起点までの最大距離を計算し、
・前記最大距離を開始値として、該複数のポイントのうち１つからターゲット線までの最小距離を計算し、
・前記最小距離から複数のフーリエ係数を計算し、
・前記フーリエ係数から不変量記述子を定義する
ために動作可能な命令を含む。このコンピュータプログラム製品では、前記ターゲット線は同心円である。
【００１２】
さらに、本発明の有利な実施形態は、ジオメトリにインデックス付与するための方法を実施するために機械読み取り可能媒体に実装されるコンピュータプログラム製品であり、該コンピュータプログラム製品は、
コンピュータが
・スケッチの重心が平面起点に位置するように該スケッチを並進し、
・前記スケッチ上のポイントから前記起点までの平均距離が１単位に等しくなるように該スケッチをスケーリングし、
・前記スケッチから回転不変量記述子を抽出する
ための命令を含む。前記コンピュータプログラム製品において、前記スケッチから前記回転不変量記述子を抽出するための命令はさらに、
コンピュータが
・扇形内の複数の各ポイントから起点までの最大距離を計算し、
・前記最大距離を開始値として、前記複数のポイントのうち１つからターゲット線までの最小距離を計算し、
・前記最小距離から複数のフーリエ係数を計算し、
・前記フーリエ係数から不変量記述子を定義する
ための命令を含む。このコンピュータプログラム製品では、前記ターゲット線は同心円である。
【００１３】
さらに本発明の別の有利な実施形態は、記述子を求めるための方法を実施するために少なくとも１つのプロセッサとアクセス可能なメモリとを含むデータ処理システムであり、該データ処理システムは、
・扇形内の複数の各ポイントから起点までの最大距離を計算するための最大距離計算手段と、
・前記最大距離を開始値として、該複数のポイントのうち１つからターゲット線までの最小距離を計算するための最小距離計算手段と、
・前記最小距離から複数のフーリエ係数を計算するためのフーリエ係数計算手段と、
・前記フーリエ係数から不変量記述子を定義するための不変量記述子定義手段と
を含む。
【００１４】
下記および図面に本発明の有利な実施例の別の利点の一部が記載されており、別の利点の一部は、本発明の有利な実施形態を実施する際に導き出すことができる。ここで本発明の有利な実施例を、図面を参照して説明する。図面も実施例の一部である。もちろん、他の実施例も利用することができ、本発明の範囲を逸脱することなしに変更を行うこともできる。
【００１５】
以下では添付の図面を参照しながら有利な実施形態を説明する。同様の符号は同様の要素を示す。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態を概説するフローチャートである。
【図２】２Ｄスケッチから記述子を抽出するための処理の概観を示すフローチャートである。
【図３】２Ｄ回転不変量記述子を強調抽出するための処理を概略的に示すフローチャートである。
【図４】ｒを設定するための本発明の実施形態の処理の概観を示すフローチャートである。
【図５】φを計算するための本発明の実施形態の処理の概観を示すフローチャートである。
【図６】回転不変量記述子を計算するための本発明の実施形態の処理の概観を示すフローチャートである。
【図７】２Ｄスケッチを示す。
【図８】回転不変量記述子を計算するために準備された２Ｄスケッチを示す。
【図９】２つの離散関数の値のグラフである。
【図１０】本発明の有利な実施形態を実施することができるコンピュータ環境のブロック回路図である。
【００１７】
有利な実施形態の詳細な説明
本発明の多数の革新的な技術思想を、本発明の有利な実施形態を詳細に参照しながら説明する。しかし、このようなレベルの実施例は、本発明の思想の数多くの有利な用途のうちのごく一部の例にしか過ぎないことを理解すべきである。本発明の有利な実施形態はとりわけ、記述子を求めるためのシステムおよび方法を提供する。以下では、本発明の有利な実施例では、汎用のパーソナルコンピュータ等のコンピュータ上でオペレーティングシステムが実行する。図１０と以下の説明は、本発明の有利な実施例を実施することができる適切なコンピュータ環境を簡単に一般的に説明するためのものである。これは必須ではないが、パーソナルコンピュータによって実行されるたとえばプログラムモジュール等のコンピュータ実行可能な命令を一般的に仮定して、本発明の実施形態を説明する。一般的なプログラムモジュールは、特定のタスクを実行するかまたは特定の種類の抽象データを具現化するルーティン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。本実施例は、種々の公知のコンピュータ環境のうち任意のコンピューティング環境で実施することができる。
【００１８】
図１０を参照すると、本発明の有利な実施形態を実現するための一例のシステムには、複数の関連の周辺装置（図示されていない）を備えた、コンピュータ１０００の形態の汎用の計算装置が含まれる。この計算装置は、たとえばデスクトップコンピュータまたはラップトップコンピュータである。コンピュータ１０００はマイクロプロセッサ１００５とバス１０１０を有する。このバスは、マイクロプロセッサ１００５とコンピュータ１０００の複数のコンポーネントとを公知の技術によって接続して通信を行えるようにするために使用される。バス１０１０は、メモリバスまたはメモリコントローラ、周辺バス、および種々のバスアーキテクチャのいずれかを使用するローカルバスを含むバス構造の複数の種類のうち、任意の種類のバス構造とすることができる。コンピュータ１０００は典型的にはユーザインタフェースアダプタ１０１５有し、これはマイクロプロセッサ１００５を、バス１０１０を介して１つまたは複数のインタフェースデバイス、例えばキーボード１０２０，マウス１０２５および/または別のインタフェースデバイス１０３０と接続する。この別のインタフェースデバイスは、タッチスクリーン、デジタルペン入力パッド等の任意のユーザインタフェースデバイスとすることができる。バス１０１０はさらに、ディスプレイデバイス１０３５、例えばＬＣＤスクリーンまたはモニタをマイクロプロセッサ１００５に、ディスプレイアダプタ１０４０を介して接続する。バス１０１０はまたマイクロプロセッサ１００５をメモリ１０４５に接続する。メモリはＲＯＭ、ＲＡＭ等を含むことができる。
【００１９】
コンピュータ１０００はさらに、少なくとも１つの記憶デバイス１０５５および／または少なくとも１つの光学的ドライブ１０６０をバスに結合するドライブインタフェース１０５０を備えている。記憶デバイス１０５５は、ディスクを読み出しおよび書き込みするために図示しないハードディスクドライブ、および/またはリムーバル磁気ディスクドライブを読み出しおよび書き込みするために図示しない磁気ディスクドライブを含むことができる。同様に光学的ドライブ１０６０も、たとえばＣＤ‐ＲＯＭまたは他の光学的媒体等であるリムーバブル光学的ディスクの読み出しまたは書き込みを行うための光学的ディスクドライブを備えることができる。この光学的ディスクドライブは図示されていない。上述のドライブおよび関連のコンピュータ読み出し可能な媒体によって、コンピュータ読み出し可能な命令、データ構造、プログラムモジュール、およびコンピュータ１０００のための他のデータを不揮発記憶することができる。
【００２０】
コンピュータ１０００は通信チャネル１０６５を介して他のコンピュータまたはコンピュータのネットワークと通信することができる。コンピュータ１０００は、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）内の他のコンピュータに関連づけることができる。またはコンピュータ１０００は、他のコンピュータとのクライアント/サーバ構成のクライアントとすることができる。さらに本発明の有利な実施形態は、通信ネットワークによって接続された遠隔の処理装置によってタスクが実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールがローカルメモリ記憶デバイスと遠隔のメモリ記憶デバイスの両方に配置される。これらの構成ならびに適切な通信ハードウェアおよび通信ソフトウェアはすべて、当業者に公知である。
【００２１】
本発明の有利な実施形態を実現するソフトウェアプログラミングコードは典型的にはコンピュータ１０００のメモリ１０４５に記憶される。クライアント/サーバ構成では、このようなソフトウェアプログラミングコードを、サーバに所属するメモリにより記憶することができる。ソフトウェアプログラミングコードは、ハードディスクドライブ、ディスケット、ＣＤ‐ＲＯＭ等の種々の不揮発性データ記憶デバイスのうち任意の記憶デバイスに実装することもできる。このコードはこのような媒体で配布することができ、また、１つのコンピュータシステムのメモリから何らかの種類のネットワークを介して別のコンピュータシステムへ配布して、この別のシステムのユーザが使用できるようにすることができる。ソフトウェアプログラミングコードを物理的媒体に実装する技術および手法、および／または、ネットワークを介してソフトウェアコードを配布する技術および手法は公知であり、これ以上詳細には説明しない。
【００２２】
システム
図１は、本発明の実施形態を概説するフローチャートである。Siemens Product Lifecycle Management Software Inc. 社の SolidEdge 等のアプリケーションまたはプログラムから、２次元（２Ｄ）スケッチ１００またはジオメトリまたはイメージが作成される。図１を参照すると、２Ｄスケッチ１００は典型的には、グラフィックスプログラムによってさらに変更または見るのに使用するために、または全体的に別のプログラムによって使用するために、スケッチデータベース１０５に記憶される。このスケッチデータベース１０５は、２Ｄスケッチ１００に関連するユーザ定義記述またはタイトルに基づいて該２Ｄスケッチ１００にインデックス付与することができるが、本願発明において有利には、２Ｄスケッチ１００の記述子に基づいて、特に回転不変量２Ｄ記述子に基づいて２Ｄスケッチ１００にインデックス付与する。２Ｄスケッチ１００をスケッチデータベース１０５から検索し（ステップ１５０）、該２Ｄスケッチ１００から回転不変量記述子Ｄを抽出する（ステップ１５５）。その後、回転不変量記述子Ｄを記述子データベース１００に記憶する（ステップ１６０）。
【００２３】
２Ｄスケッチ１００は任意の数の方向に方向付けすることができ、たとえば３６０°またはその分数のうち任意の角度に回転することができるので、ここで重要なのは、関連分野において周知である方向づけにしたがって、たとえば並進不変性、スケール不変性および回転不変性で２Ｄスケッチ１００を正規化することである。図２は、２Ｄスケッチ１００から記述子を抽出するための処理の概観を示すフローチャートである。図２を参照すると、スケッチ起点としても知られている重心が平面起点に位置するように２Ｄスケッチ１００を並進させることにより、並進不変性になるようにする。次に、２Ｄスケッチ１００のポイントからスケッチ起点までの平均距離が１単位に等しくなるように該２Ｄスケッチ１００をスケーリングすることにより、スケール不変性になるようにする。この１単位はスケッチに依存する（ステップ２０５）。次に、ここで記載した本発明の実施形態を使用して、回転不変量２Ｄ記述子を抽出する（ステップ２１０）。
【００２４】
図３は、２Ｄ回転不変量記述子を強調抽出するための処理を概略的に示すフローチャートであり、この処理を以下でより完全に詳述する。図３を参照すると、２Ｄスケッチ１００から開始して、ｒを該２Ｄスケッチ１００上のポイントと起点との間の最大距離に設定する（ステップ３００）。次にｒを使用して、特定のターゲット線の一部分を含む平面の特定の扇形内にある２Ｄスケッチ１００上のポイント間の最小距離の行列であるφを初期化する（ステップ３０５）。この特定のターゲット線すなわち同心円のこの一部分は、同一の扇形内にある。最後に、φから回転不変量２Ｄスケッチ記述子を計算する（ステップ３１０）。
【００２５】
図４は、ｒを設定するための本発明の実施形態の処理の概観を示すフローチャートである。典型的には２Ｄスケッチ１００は３角形の集合によって表され、Ｖはスケッチ内の３角形の頂点の集合Ｓである。ＶはＪ×２行列として表され、ｊ番目の頂点は座標（Ｖ［ｊ−１］［０］，Ｖ［ｊ−１］［１］）を有する。図４を参照すると、Ｒおよびｊを０に初期化する（ステップ４００）。次に、ｘをＶ［ｊ］［０］に等しく設定し、ｙをＶ［ｊ］［１］に等しく設定し、Ｄを（ｘ＊ｘ＋ｙ＊ｙ）に設定し、Ｒを（Ｄ，Ｒ）の最大値に設定する（ステップ４０５）。ｊ＝ｊ＋１にしたがい、ｊを１だけ増分する（ステップ４１０）。ｊが３未満である場合（ステップ４１５）、ステップ４０５に戻り、そうでない場合にはｒを、以下で図５において計算されるＲの平方根に等しく設定する（ステップ４２０）。Ｓ上のポイントと起点との間の最大距離であるｒを使用して、φを理論的な最大値に初期化し、ステップ３０５で詳細に説明したようにφを実際の値に漸増的に修正する。
【００２６】
図５は、φを計算するための本発明の実施形態の処理の概観を示すフローチャートである。図５を参照すると、Ｍは２のべき乗であり、ＮおよびＫは正の整数であり、φはＮ×Ｍの大きさの２次元行列であり、ＰはＫ×２の大きさの２次元行列である。もちろん、Ｋは２Ｄスケッチ１００の良好な近似を得るために十分な大きさでなければならず、５０，０００または１００，０００の値が十分であるが、用途または別の要件によってこの値を変えてもよい。初めに、２Ｄスケッチ１００上に均質に分布する複数のランダムなポイントであるＰ［０］〜Ｐ［Ｋ−１］を計算する（ステップ５００）。ここでは、ｋ番目のポイントは（Ｐ［ｋ−１］［０］，Ｐ［ｋ−１］［１］）の座標を有する。０＜ｎ＜Ｎおよび０＜ｍ＜Ｍに対し、φｎ（ｍ）をｒに設定する（ステップ５０５）。ｋを０に初期化する（ステップ５１０）。Ｐ［ｋ］が起点であるか否かを求め（ステップ５１５）、そうである場合にはｋを１増分する（ステップ５２０）。ｋがＫ以上である場合（ステップ５２５）、φｎ（ｍ）は構築されており（ステップ５３０）、次にこのφｎ（ｍ）を使用して、回転不変量スケッチ記述子を計算する（ステップ３１０）。しかし、ｋがＫ未満である場合、Ｐ［ｋ］が起点であるか否かの問い合わせに戻る。Ｐ［ｋ］が起点に等しくない場合（ステップ５１５）、ｘをＰ［ｋ］［０］に等しく設定し、ｙをＰ［ｋ］［１］に等しく設定し、ｔを（ｘ＊ｘ＋ｙ＊ｙ）０．５に等しく設定し、θを（ｙ／ｔ）の逆正弦に設定する（ステップ５３５）。ｙが０未満でない場合（ステップ５４０）、ｍをθＭ／２πの下限に設定する（ステップ５４５）。ｙが０未満である場合（ステップ５４０）、θを２π−θに設定し（ステップ５５０）、ｍをθＭ／２πの下限に設定する（ステップ５４５）。両ステップ５４５および５５０の後に続いて、ｎを０に設定する（ステップ５５５）。次にｄを、ｔ−（ｎ＋１）＊ｒ／Ｎの絶対値に等しく設定する（ステップ５６０）。その後にφｎ（ｍ）を、ｄおよびφｎ（ｍ）の最小値に設定する（ステップ５６５）。ｎを１増分する（ステップ５７０）。ｎがＮ未満である場合（ステップ５７５）、（ステップ５６０）に戻り、そうでない場合にはｋを１増分する（ステップ５２０）。上記のステップから、２Ｄスケッチ１００は等しい大きさのＭ個の扇形に分割され、半径が増大していくＮ個の同心円が得られる。ここで、円を正方形または多角形等の別のターゲット線に置換できることが知られている。またφｎ（ｍ）は、（ｍ＋１）番目の扇形内に含まれるポイントＰ（ｋ）の集合を含む、（ｍ＋１）番目の扇形と（ｎ＋１）番目の円との交わり部分の間の最小距離である。
【００２７】
図６は、回転不変量記述子を計算するための本発明の実施形態の処理の概観を示すフローチャートである。図６を参照すると、Ｍは１のべき乗であり、ＮおよびＫは正の整数であり、φはＮ×Ｍの大きさの２次元行列であり、ψはφと等しい大きさの行列である。各ｎ∈｛０・・・Ｎ−１｝ごとに、ψｎ（）はφｎ（）のフーリエ変換に等しいとする（ステップ６００）。ここでは、係数のノルムはもちろん、回転不変量である。回転不変量記述子を１次元の行列ＤまたはＮ＊Ｍの次元として、ｍ∈｛０・・・Ｍ−１｝およびｎ∈｛０・・・Ｎ−１｝に対してＤ［ｍ＊Ｍ＋ｎ］がψｎ（ｍ）の絶対値の２乗に設定されるように返す（ステップ６０５）。択一的に、２乗を省略することができる。別の手段として、ｍ∈｛０・・・Ｍ−１｝およびｎ∈｛０・・・Ｎ−１｝とした場合、離散フーリエ変換が新たな値ψｎ（ｍ）を以下の式にしたがって定義する：
【数１】
0004834177.tif 000002
したがって、回転不変量記述子は以下の系列から成る：
【数２】
0004834177.tif 000003
同式において"ｐ"は整数であり、０＜ｐ＜Ｍである。"ｐ"の値が高くなるほど、記述子の詳細の粒度レベルは薄くなる。もちろん、別のフーリエ変換を実施することもでき、有利には離散関数φｎのフーリエ係数を計算するために高速フーリエ変換を実施することもできる。さらに付加的に、計算されたフーリエ係数のノルム２乗（またはノルム自体）が、上記の回転不変量記述子を表す。
【００２８】
要約すると、本発明の有利な実施形態は、Ｍ個のポイントでサンプリングされた各同心円上に周期的な関数φを構築する。数学的には、フーリエ級数を使用すれば必ず、周期的な関数を正確に表すことができる。しかし、フーリエ級数は項の無限和であるから、本発明の有利な実施形態は、φのフーリエ級数表現から抽出されるデータの量を制限する。高速フーリエ変換を使用してこのフーリエ表現からデータを抽出することができる。さらに、φはＭ個の値によって表されるので、高速フーリエ変換を使用してＭ個より多くの値を抽出しても意味はない。Ｍの選択はアルゴリズムを実装する人に委ねられ、このＭの選択により、記述子に記憶できる情報量が制御される。同心円はＮ個であるから、関数はＮ個になる。
【００２９】
実施例
図７は、２Ｄスケッチを示す。図７を参照すると、２Ｄスケッチ１００は中空の十字形の２Ｄスケッチ７００であり、７０５で示した通常の方向に方向づけされている。７２０に示しているように、中空の十字形７００を並進して重心７１０を平面の起点７１５に位置付けすることにより、並進不変性にする。次に、７２５に示したように、ステップ２０５において中空の十字形７００をスケーリングし、スケール不変性にする。
【００３０】
図８に、回転不変量記述子を計算するために準備された２Ｄスケッチを示す。図８を参照すると、８００に示しているように、中空の十字形７００は、該十字形７００に均等に分布された多数のランダムなポイントを含む。Ｎ＝２個の円を使用して、半径２．７である第１の円φ０（ｍ），８０５と、半径１．３５である第２の円φ１（ｍ），８１０とを求める。中空の十字形７００を、８１５に示したようにｍ個の扇形に分割する。その後、各扇形ごとに、この形状にある３つのポイント（１．１，０．３および０．０８）と該扇形に含まれる円の円弧との間の最小距離を計算し、該最小距離は０．０８となる。この円（ｎ）およびスライス（ｍ）でのφｎ（ｍ）は０．０８である。図９は、ｍ∈｛０，１，２・・・１５｝である場合のφ０（ｍ）およびφ１（ｍ）に対するＮ＝２個の円の２つの離散関数φｎ（ｍ）の値のグラフである。
【００３１】
結論
本発明は、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組合わせで実現することができる。本発明の有利な実施形態の装置は、機械読み出し可能な記憶デバイスに実装されるコンピュータプログラム製品であってプログラミング可能なプロセッサによって実行されるコンピュータプログラム製品で具現化することができる。また、本発明の有利な実施形態の方法のステップは、入力データに応答して動作し出力を生成することにより本発明の有利な実施形態の機能を実行するための命令のプログラムを実行するプログラミング可能なプロセッサによって実施することができる。
【００３２】
有利には本発明の有利な実施形態は、少なくとも１つのプログラミング可能なプロセッサを含むプログラミング可能なシステムで実行可能な１つまたは複数のコンピュータプログラムで具現化することができる。その際にはこの少なくとも１つのプログラミング可能なプロセッサは、データ記憶システム、少なくとも１つの入力デバイスからデータおよび命令を受信し、データ記憶システム、少なくとも１つの出力デバイスへデータおよび命令を送信するように結合されている。アプリケーションプログラムを高級な手順プログラミング言語で具現化するか、またはオブジェクト指向プログラミング言語で具現化するか、または望ましい場合にはアセンブリ言語または機械言語で具現化することができる。いずれの言語も、コンパイルされた言語または翻訳された言語とすることができる。
【００３３】
一般的に、プロセッサは命令およびデータをＲＯＭおよび／またはＲＡＭから受け取る。コンピュータプログラム命令およびデータを実装するのに適した記憶デバイスには、すべての形態の不揮発性メモリが含まれる。これにはたとえば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリデバイスのような半導体メモリデバイス、内部ハードディスクのような磁気ディスク、リムーバブルディスク、磁気光学ディスク、ＣＤ−ＲＯＭディスクが含まれる。前記のものはすべて、専用設計されたＡＳＩＣ（アプリケーション専用集積回路）を補足するか、またはＡＳＩＣに組み込むことができる。
【００３４】
複数の実施形態を説明したが、本発明の有利な実施形態の技術的思想および範囲を逸脱することなく、種々の変更を行うことができ、たとえば、３角形を使用する代わりに線を使用してｍ個の扇形を作成できることが理解できる。さらに、本発明の有利な実施形態の範囲内に含まれるサンプルの変更手法は複数存在し、たとえばステップ５０５において、φｎ（ｍ）をｍａｘ（ｒｎ／Ｎ，ｒ−（ｒｎ／Ｎ））に設定する。別の修正例として、ステップ５７０と集合ｎによるステップ５７５とを入れ替え、ｎｒ／Ｎ＜ｎｏｒｍ（Ｐｋ）＜（ｎ＋１）ｒ／Ｎとなるようにすることによって、φｎが、ｎ番目の円と（ｎ＋１）番目の円との間のポイントにのみ依存するようにする。また、ｒを近似するために別の手法を使用することができ、たとえば、Ｐ［ｋ］のノルムの最大値を使用することができる。したがってこれ以外の実施形態も特許請求の範囲内に含まれるものである。
【図１】
0004834177.tif 000004
【図２】
0004834177.tif 000005
【図３】
0004834177.tif 000006
【図４】
0004834177.tif 000007
【図５】
0004834177.tif 000008
【図６】
0004834177.tif 000009
【図７】
0004834177.tif 000010
【図８】
0004834177.tif 000011
【図９】
0004834177.tif 000012
【図１０】
0004834177.tif 000013