次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
本発明の実施の形態に係る物体認識システム1は、図1に示すように、物体の画像データ、及びその物体が操作されることにより影響を受ける被作用物の物体の操作前後における画像データをそれぞれ取得する画像データ取得装置20と、物体の画像データから物体の形状特徴量を抽出する形状特徴量抽出ユニット11と、操作前後の画像データから被作用物の変化を物体の機能特徴量として抽出する機能特徴量抽出ユニット13と、機能、形状及び物体概念を要素とし、その要素間の依存関係を条件付確率で表す物体概念モデルに、形状特徴量を用いて認識される物体の形状と機能特徴量を用いて認識される物体の機能とを適用して統計的に処理し、物体の物体概念を推定して物体を学習する物体概念学習ユニット15と、認識対象物体の形状、或いは機能の少なくとも一つが観測された情報を学習された物体の物体概念モデルに適用して統計的に処理し、認識対象物体の未観測情報を推定して認識対象物体の物体概念、形状及び機能の少なくともいずれかを認識する物体認識ユニット16とを備える。画像データ取得装置20として、例えばカメラ等の撮像装置が採用可能である。ここで、「影響を受ける被作用物」とは、物体がその機能を発揮するように操作される際に、操作された物体が作用を及ぼす物体である。「形状特徴量」は、物体の形状に関する特徴量である。「機能特徴量」は、被作用物を観測することにより抽出される物体の機能に関する特徴量である。形状特徴量及び機能特徴量の詳細は後述する。
物体認識システム1は、物体の画像データから抽出される形状特徴量をベクトル量子化して物体の形状を学習する形状学習ユニット12、及び物体の操作による影響が及ぶ前後の被作用物の画像データから被作用物の変化として抽出される機能特徴量を統計処理して、物体の機能を学習する機能学習ユニット14を更に備える。形状特徴量抽出ユニット11、形状学習ユニット12、機能特徴量抽出ユニット13、機能学習ユニット14、物体概念学習ユニット15、及び物体認識ユニット16は、処理装置10に含まれる。
また、物体認識システム1は、記憶装置30、形状モデルデータベース40、機能モデルデータベース50及び物体概念モデルデータベース60を更に備える。記憶装置30は、入力データ記憶領域301、形状特徴量記憶領域302、形状モデル記憶領域303、機能特徴量記憶領域304、機能モデル記憶領域305、物体概念モデル記憶領域306、及び認識結果記憶領域307を有する。
入力データ記憶領域301は、画像データ取得装置20から転送される画像データ等を格納する。形状特徴量記憶領域302は、形状特徴量抽出ユニット11によって抽出される形状特徴量を格納する。形状モデル記憶領域303は、物体認識システム1によって生成される形状モデルを格納する。機能特徴量記憶領域304は、機能特徴量抽出ユニット13によって抽出される機能特徴量を格納する。機能モデル記憶領域305は、物体認識システム1によって生成される機能モデルを格納する。物体概念モデル記憶領域306は、物体認識システム1によって生成される物体概念モデルを格納する。認識結果記憶領域307は、物体認識システム1による物体認識結果を格納する。
形状モデルデータベース40は、複数の物体の形状データをコードベクトルとして格納する。形状モデルデータベース40に格納されたコードベクトルは、物体の形状に関する形状特徴量をベクトル量子化する際にコードブックとして使用される。
機能モデルデータベース50は、複数の物体の機能モデルを格納する。機能モデルの詳細は後述するが、機能モデルデータベース50に格納された機能モデルは、物体の観測結果を用いて学習対象の物体の機能を分類する際に使用される。
物体概念モデルデータベース60は、複数の物体の物体概念モデルを格納する。物体概念モデルデータベース60に格納される物体概念モデルは、後述するように、物体の概念を形状、機能、及び物体を要素とし、要素間の依存関係を条件付確率で表したモデルである。
物体認識システム1は、入力装置70及び出力装置80を更に備える。入力装置70はキーボード、マウス、ライトペン又はフレキシブルディスク装置等で構成される。入力装置70より物体学習及び物体認識実行者(ユーザ)は、学習対象の物体や認識対象の物体に関する入力データや、出力するデータを指定したり、物体学習操作及び物体認識操作の実行や中止等の指示を入力したりすることが可能である。
又、出力装置80としては、物体学習及び物体認識の結果を表示するディスプレイやプリンタ、或いはコンピュータ読み取り可能な記録媒体に保存する記録装置等が使用可能である。ここで、「コンピュータ読み取り可能な記録媒体」とは、例えばコンピュータの外部メモリ装置、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープ等の電子データを記録することができるような媒体等を意味する。具体的には、フレキシブルディスク、CD−ROM、MOディスク等が「コンピュータ読み取り可能な記録媒体」に含まれる。ユーザは、図1に示した物体認識システム1による物体の学習結果、或いは認識結果を、出力装置80を介して確認することができる。
先ず、図1に示した物体認識システム1で学習する物体の概念について説明する。物体、特に道具に関してその概念を構成する要素の中で重要度の高い項目として、物体の機能が考えられる。通常、物体には使用目的や用途があり、それらを満たすための機能を有していることがその物体の存在意義として必要だからである。また、一般的に物体の形状は機能に依存する。つまり、物体には使用目的を遂げる機能があり、その機能を実行するために形状が定まる。そのため、物体認識システム1では、物体の概念を形状と機能の組み合わせとして捉える。
ところで、物体の機能の情報は、物体を操作することによって物体の作用が及ぶ被作用物の物理的な変化として観測することができる。例えば、物体が「はさみ」である場合、はさみで切られることにより被作用物の個数の増加が引き起こされる。また、物体が「ペン」である場合、ペンによって文字や図形が書き込まれる被作用物の表面の輝度が変化する。
そのため、被作用物に作用が及ぶようにユーザ等によって物体が操作された際に、物体が操作されたことに起因して被作用物に生じる形状等の変化を観測し、観測可能な被作用物の変化を観測結果から抽出することによって物体の機能を推定することができる。例えば、観測された変化を特徴ベクトルとすることで、特徴ベクトルを物体の機能特徴量とすることができる。そして、機能に関する特徴ベクトルを用いて、被作用物の変化のパターンとして物体の機能を推定できる。つまり、物体本来の機能に基づいて被作用物に生じる特定の物理的な変化のパターンを、物体の観測により取得可能な「機能」の情報とする。
物体の概念を形状と機能の組み合わせであると捉えて物体の概念を学習する場合、物体の概念は例えば図2のように表される。図2(a)は、物体認識システムが、物体は被作用物を切断する機能を有する「はさみ」であることを、物体の観測によって認識することを表す模式図である。図2(a)に示す模式図に対応する物体概念モデルは、図2(b)に示すように、物体概念O、形状S及び機能Fを要素(ノード)とするグラフィカルモデルを用いて表現できる。「グラフィカルモデル」とは、確率変数をノードで表し、ノード間の因果関係等の依存関係の有無を有向グラフで表したグラフ構造を有する確率モデルである。ここで物体概念Oは、概念として捉えられた物体を示す名称、例えば「はさみ」、「ペン」等である。また、形状Sは、観測可能な物体の形状である。機能Fは、被作用物の物理的な変化として観測可能な物体の機能である。
図2(b)に示した物体概念モデルでは、物体概念Oの事前確率を確率P(O)、物体概念Oと形状Sの依存関係の強さを条件付確率P(S|O)、物体概念Oと機能Fの依存関係の強さを条件付確率P(F|O)でそれぞれ示している。条件付確率P(S|O)は、物体概念Oが与えられた場合における形状Sの確率を示し、条件付確率P(F|O)は、物体概念Oが与えられた場合における機能Fの確率を示す。
図2(b)に示した物体概念モデルは、リンクの向きが依存関係をもつ方向のみであり、リンクをたどったパスが元のノードに戻らない非循環有向グラフ構造を有するベイジアンネットワークである。ベイジアンネットワークは、観測不可能な要素が存在する事象を取り扱うことに適している。ベイジアンネットワークにおいては、ノードに事前確率を与え、観測された確定値からの伝搬確率によって各変数の確率を更新して事後確立を算出することにより、観測不可能な要素が推定される。
図2(b)に示した物体の物体概念モデルにおいて、形状S及び機能Fは観測することにより情報を取得できる変数である。しかし、物体概念Oは、観測によっては情報を取得できない変数である。ベイジアンネットワークを用いることによって、物体概念Oを形状S及び機能Fを観測して確率推論し、直接観測できない物体概念Oを推定できる。
そのため、図1に示した物体認識システム1においては、物体概念Oを推定するために形状Sと機能Fの依存関係を学習することが「物体の学習」である。つまり、観測によって情報が取得可能な形状Sと機能F、及び観測不能な物体概念Oを要素として構成されるベイジアンネットワークにおける条件付確率を推定することで、物体の学習が行われる。
以下に、物体認識システム1が、物体概念の学習対象の物体(以下において、「学習対象物体」という。)を学習する方法を説明する。
先ず、形状特徴量抽出ユニット11が、観測結果から学習対象物体の形状に関する形状特徴量を抽出する方法の例を説明する。形状特徴量としては、例えば物体の輪郭が採用可能である。形状特徴量として物体の輪郭を採用した場合には、形状特徴量抽出ユニット11は、学習対象物体の画像データから、物体の輪郭を形状特徴量として抽出する。
具体的には、形状特徴量抽出ユニット11の有する学習物体領域抽出モジュール111が、背景差分法を用いて、学習対象物体の画像データから学習対象物体の領域の形状を輪郭のデータとして抽出する。ここで「背景差分法」とは、予め取得済みの背景の画像データとその背景に物体を配置した画像データとの差分を用いて、物体の領域形状を取得する方法である。学習対象物体の画像データは、操作前又は操作後のいずれの画像データでもよい。
輪郭のデータは、例えばピクセルの位置座標の集合として抽出されるため、一般にデータ量が多い。そのため、形状特徴量抽出ユニット11の有する形状特徴量算出モジュール112が、データ量を削減された輪郭のデータを形状特徴量として算出する。具体的には、形状特徴量算出モジュール112は、輪郭のデータを重心からの極座標に変換した後、フーリエ記述子を用いて周波数変換する。そして、形状特徴量算出モジュール112は、周波数変換された輪郭のデータの高周波成分をローパスフィルタ機能によってカットする。例えば低いほうから10個程度の周波数成分を残すことにより、輪郭のデータに高周波成分として含まれるノイズが取り除かれると同時に、データ量が削減された輪郭のデータとして形状特徴量を算出される。算出された形状特徴量は、形状特徴量記憶領域302に格納される。
次に、形状学習ユニット12が、学習対象物体の形状を学習する方法を説明する。形状学習ユニット12は、形状特徴量を用いて学習対象物体のコードベクトルを生成する。本明細書では、生成されるコードベクトルを形状モデルとし、形状モデルを生成することを「形状の学習」と定義する。
具体的には、形状学習ユニット12は、形状モデルデータベース40に格納された多様な物体のコードベクトルの集合をコードブックとして用いて学習対象物体の形状特徴量をベクトル量子化して、学習対象物体の形状モデルを生成する。つまり、コードブックに含まれる最も類似性の高い最近傍のコードベクトルによって学習対象物体の形状特徴量を代表させることにより、形状特徴量をベクトル量子化してコードベクトルが生成される。コードブックは、例えば物体の形状データをk平均法等でクラスタリングすることにより生成される。
生成された形状モデルは、形状モデル記憶領域303に格納される。更に、生成された形状モデルが形状モデルデータベース40に格納される。その結果、形状モデルデータベース40が格納する形状モデルの種類を増やすことができる。
次に、物体認識システム1が、被作用物の観測結果から学習対象物体の機能を学習する方法例を説明する。既に述べたように、操作された学習対象物体が被作用物に影響を及ぼすことによって被作用物に生じる物理的な変化のパターンが学習対象物体の機能として観測される。しかし、観測された被作用物の変化がどのような機能を意味しているかは不明である。そのため、物体認識システム1は、被作用物を観測することにより抽出される学習対象物体の機能特徴量を解析して、被作用物の変化のパターンを学習対象物体の機能として推定し、学習対象物体の機能モデルを生成する。本明細書では、機能モデルを生成することを「機能の学習」と定義する。機能モデルの詳細については後述する。
学習対象物体の機能を被作用物の変化のパターンとして観測するためには、被作用物のどのような変化に着目して観測するかが非常に重要であり、着目する変化によって観測可能な機能が決定される。以下では、一般的な物体の機能を考慮して、被作用物の変化を示すパラメータとして被作用物の色変化、輪郭変化、位置変化及び個数変化の4つの変化を採用する例を説明する。
ここで、「色変化」は、学習対象物体が操作されることによって変化が生じる被作用物の、その変化の前後における輝度ヒストグラムの相関である。「相関」は、変化の前後における特徴ベクトルの変化の度合いである。「輪郭変化」は、学習対象物体の操作前後における被作用物の輪郭の周波数成分の相関である。輪郭の周波数成分は、既述したように輪郭の画像をフーリエ記述子を用いた周波数変換して得られる。「位置変化」は、被作用物の位置の移動距離である。「個数変化」は、被作用物の個数の変化である。
以下に、機能特徴量抽出ユニット13が、観測結果から学習対象物体の機能特徴量を抽出する方法の例を説明する。機能特徴量抽出ユニット13は、上記の色変化、輪郭変化、位置変化及び個数変化の4つのパラメータを成分とする機能の特徴ベクトルを機能特徴量として抽出する。
具体的には、機能特徴量抽出ユニット13が有する被作用物領域抽出モジュール131が、学習対象物体の操作によって変化が生じる被作用物について、その変化の前後の画像データを比較して、背景差分法等を用いて被作用物の色変化、輪郭変化、位置変化及び個数変化の4つのパラメータを抽出する。そして、機能特徴量抽出ユニット13が有する機能特徴量算出モジュール132が、抽出された4つのパラメータを成分とする機能の特徴ベクトルを機能特徴量として算出する。算出された機能特徴量は、機能特徴量記憶領域304に格納される。
次に、機能学習ユニット14が、機能特徴量を用いて学習対象物体の機能を学習する方法を説明する。機能学習ユニット14は、機能特徴量を解析して、学習対象物体の操作によって変化が生じる被作用物について、その変化の前後における被作用物の特定の変化のパターンをモデル化した機能モデルを生成する。
具体的には、機能特徴量について例えば混合ガウス分布を仮定し、変分ベイズ法等の統計学習手法を用いて機能特徴量の分布毎に平均値と分散が算出される。ここで、機能特徴量の分布毎に算出される平均値と分散を「機能モデル」とする。つまり、機能学習ユニット14によって生成される「機能モデル」は、機能特徴量を分布によってクラス分けしながら、機能特徴量の分布毎に平均値と分散を算出したものであり、機能特徴量の分布状態を表す。機能学習ユニット14は、機能特徴量の各分布が、それぞれ1つの機能であると推定する。
例えば、2つの成分x、yを被作用物の変化を示すパラメータとして有する特徴ベクトルが、図3に白丸(○)で表示した特徴ベクトルが含まれるクラスC1と黒丸(●)で表示した特徴ベクトルが含まれるクラスC2とに分かれて分布した場合、観測により抽出された機能特徴量は2種類の機能の特徴を含んでいることになる。そして、クラスC1とクラスC2それぞれについて平均値と分散を機能学習ユニット14が算出することによって、クラスC1に含まれる機能特徴量とクラスC2に含まれる機能特徴量によってそれぞれ表される2つの機能が学習され、2つの機能モデルが生成される。
生成された機能モデルは、機能モデル記憶領域305に格納される。更に、生成された機能モデルが機能モデルデータベース50に格納される。その結果、機能モデルデータベース50が格納する機能モデルの種類を増やすことができる。機能モデルデータベース50は、クラス分けされた機能特徴量の分布毎に、平均値と分散からなる機能モデルを複数格納する。
被作用物について複数の機能を示す変化が観測された場合は、図3に示したように機能特徴量は複数の分布を示し、それぞれの分布について機能モデルが生成される。つまり、機能学習ユニット14は、複数の物体の観測結果から、機能特徴量を分布に応じてクラス分けしながら、それぞれの分布について機能特徴量の平均値と分散を算出する。説明を分かりやすくするために図3では特徴ベクトルの成分が2つである場合を例示的に説明したが、特徴ベクトルの成分が3つ以上の場合も、同様にベクトル空間における特徴ベクトルの分布をクラス分けしながら、機能モデルが生成される。
上記で変分ベイズ法を使用する理由は、モデル数、即ち機能の数の推定が行えることや、パラメータを点推定ではなく確率分布として推定するため、パラメータ毎に変化の重みを考慮することができること等である。ここで「パラメータを確率分布として推定する」とは、平均や分散にも信頼度を持たせて機能を推定することである。例えば、学習対象物体がペンである場合、色変化のばらつきは大きいが、位置変化のばらつきは小さいことが予測される。変分ベイズ法によれば、パラメータ毎の変化の重要度も含めて学習対象物体の機能を学習することができる。
図1に示した物体認識システム1によって物体の機能を学習する例を、図4(a)及び図4(b)に示した物体群を使用して行った実験を例に用いて説明する。図4(a)及び図4(b)に示した物体群は5種類の物体を含み、図4(a)に示したAセットは、はさみa11〜a17、ペンa21〜28、ペンチa31〜a32、ピンセットa41〜a43、及びカッターa51〜a53からなる合計23個の物体を含む。図4(b)に示したBセットは、はさみb11〜b13、ペンb21〜b23、ペンチb31〜b32、ピンセットb41〜b42、及びカッターb51〜b52からなる合計12個の物体を含む。はさみの機能は被作用物の切断であり、被作用物の個数変化として観測される。ペンの機能は被作用物への記入であり、被作用物の色変化として観測される。ペンチの機能は被作用物の変形であり、被作用物の輪郭変化として観測される。ピンセットの機能は被作用物の移動であり、被作用物の位置変化として観測される。カッターの機能は被作用物の切断であり、被作用物の個数変化として観測される。
以下に、物体認識システム1が、図4(a)及び図4(b)に示した物体群の機能を学習する方法を、図5に示したフローチャートを用いて説明する。
(イ)ステップS10において、図1に示した画像データ取得装置20が、ユーザ等によって操作された学習対象物体が被作用物に影響を及ぼす様子を観測し、学習対象物体の操作前後の被作用物の画像データをそれぞれ取得する。ここで、図4(a)に示したAセットと図4(b)に示したBセットを合わせた合計35個の学習対象物体が、それぞれ10回ずつ操作される。取得された画像データは、入力データ記憶領域301に格納される。
(ロ)ステップS20において、機能特徴量抽出ユニット13が、入力データ記憶領域301から学習対象物体の操作による影響が及ぶ前後の被作用物の画像データをそれぞれ読み出し、既に説明した方法を用いて、被作用物の画像データから学習対象物体の機能特徴量を抽出する。つまり、被作用物の画像データから、学習対象物体の操作の前後における被作用物の変化のパターンを示すパラメータを成分とする特徴ベクトルを機能特徴量として抽出する。抽出された機能特徴量は、機能特徴量記憶領域304に格納される。
(ハ)ステップS30において、機能学習ユニット14が、機能特徴量記憶領域304から機能特徴量を読み出し、機能特徴量を統計処理して学習対象物体の機能を学習する。具体的には、既に説明したように、変分ベイズ法等により学習対象物体の機能特徴量の分布毎に平均値と分散を算出して、分布毎の機能モデルを生成する。生成された機能モデルは、機能モデル記憶領域305に格納される。
図6に、物体認識システム1が図4(a)及び図4(b)に示した物体群を用いて物体の機能を学習した学習実験例の結果を、物体認識システム1のユーザが評価した表を示す。図6は、機能の学習結果がどのように分類されたかを示している。図6に示した表において、「機能0」〜「機能3」は、画像データから取得された学習対象物体の機能特徴量を用いて推定された機能の種類である。
図6から、物体認識システム1が、図4(a)及び図4(b)に示した物体群の観測から、学習対象物体群の機能を4つの機能として識別したことがわかる。図6に示した「機能0」が「個数変化」、「機能1」が「輪郭変化」、「機能2」が「色変化」、「機能3」が「位置変化」にそれぞれ対応すると推定される。図6に示したように、「個数変化」として観測されるべき被作用物の変化が「機能0」ではなく「機能2」と分類されたケースが6例、「輪郭変化」として観測されるべき被作用物の変化が「機能1」ではなく「機能2」と分類されたケースが1例、「色変化」として観測されるべき被作用物の変化が「機能2」ではなく「機能1」と分類されたケースが3例あるが、その他の大部分のケースでは、被作用物の変化が正しい機能に分類されている。図6に示した学習実験結果では、正しく学習されたケースが340例、誤って学習されたケースが10例であり、正答率は97.1%である。誤って分類される原因としては、画像データに発生したノイズ等が考えられる。
図7に、図4(a)及び図4(b)に示した物体群の観測により、変分ベイズ法によって機能モデルを生成する際に推定された機能モデル数の例を示す。図7の横軸は機能数、縦軸は自由エネルギーである。ここで、「自由エネルギー」は、モデルに対して機能の数が妥当か否かを示す数値である。図7に示すように、機能数が4の場合に自由エネルギーが最大であるため、学習対象物体の機能数が4つであると推定される。
図1に示した物体概念学習ユニット15が、算出された形状特徴量及び機能特徴量を用いて学習対象物体を学習する方法を、以下に説明する。
物体概念学習ユニット15の有する形状認識モジュール151は、形状特徴量を用いて学習対象物体の形状認識を行う。ここで、「形状認識」は、学習済みの物体の形状のコードベクトル群からなるコードブックを用いて、形状特徴量をベクトル量子化することである。つまり、物体の形状モデルを学習済みの形状モデルに当てはめることで、物体の形状が認識される。具体的には、形状認識モジュール151が、形状モデルデータベース40に格納されたコードベクトル群をコードブックとして学習対象物体の形状特徴量をベクトル量子化することで学習対象物体の形状を認識し、図2(b)に示した形状Sに関する情報を取得する。
物体概念学習ユニット15の有する機能認識モジュール152は、機能特徴量を用いて学習対象物体の機能認識を行う。「機能認識」は、物体の機能特徴量の分布と学習済みのクラス分けされた機能特徴量の分布とを比較して、物体の属するクラスを推定することである。具体的には、機能認識モジュール152が、学習対象物体の機能特徴量を分布に応じてクラス分けしながらそれぞれの分布について機能特徴量の平均値と分散を算出することで機能モデルを生成する。そして、機能認識モジュール152は、機能モデルデータベース50に格納された複数の機能モデルの中から、生成した機能モデルを最尤推定手法等により決定し、学習対象物体の機能を認識する。つまり、物体の機能モデルを学習済みの機能モデルに当てはめることで、物体の機能がどのクラスに属するかが判定され、学習対象物体の機能が認識される。その結果、図2(b)に示した機能Fに関する情報が取得される。
物体概念学習ユニット15の物体概念モデル生成モジュール153は、形状S及び機能Fに関する情報を用いて、図2(b)に示したベイジアンネットワークの条件付確率を推定して、学習対象物体の物体概念モデルを生成する。生成された物体概念モデルは、物体概念モデル記憶領域306に格納される。更に、生成された物体概念モデルが物体概念モデルデータベース60に格納される。その結果、物体概念モデルデータベース60が格納する物体概念モデルの種類を増やすことができる。
ベイジアンネットワークの条件付確率の推定には、例えばエクスペクテイション・マキシミゼイション(EM)アルゴリズム等の統計学習手法が採用可能である。EMアルゴリズムは、不完全データから最尤推定値を数値的に求めるアルゴリズムであり、未観測情報を含む場合においてベイジアンネットワークの条件付確率の推定に有効な手法である。物体概念Oを隠れ変数としてEMアルゴリズムを適用することにより、条件付確率が推定される。また、条件付確率の推定に変分ベイズ法を採用してもよい。
以下に、図1に示した物体認識システム1が、図4(a)及び図4(b)に示した物体群の物体概念を学習する方法を、図8に示したフローチャートを用いて説明する。
(イ)ステップS100において、図1に示した画像データ取得装置20が、ユーザ等が学習対象物体を操作することによって被作用物に影響が及ぶ様子を観測し、学習対象物体の操作前及び操作後それぞれの学習対象物体及び被作用物の画像データを取得する。ここで、図4(a)に示したAセットと図4(b)に示したBセットを合わせた合計35個の学習対象物体が、それぞれ10回ずつ物体認識システム1のユーザ等によって操作される。取得された画像データは、入力データ記憶領域301に格納される。
(ロ)ステップS110において、形状特徴量抽出ユニット11が、入力データ記憶領域301から操作前或いは操作後の学習対象物体の画像データを読み出す。形状特徴量抽出ユニット11は、既に説明したように学習対象物体の画像データをフーリエ記述子を用いて周波数変換する等して、形状特徴量を抽出する。抽出された形状特徴量は、形状特徴量記憶領域302に格納される。
(ハ)ステップS120において、機能特徴量抽出ユニット13が、入力データ記憶領域301から学習対象物体の操作前後の被作用物の画像データを読み出す。機能特徴量抽出ユニット13は、既に説明した方法を用いて、被作用物の画像データから学習対象物体の機能特徴量を抽出する。抽出された機能特徴量は、機能特徴量記憶領域304に格納される。
(ニ)ステップS130において、物体概念学習ユニット15が、形状特徴量及び機能特徴量を、形状特徴量記憶領域302及び機能特徴量記憶領域304からそれぞれ読み出す。物体概念学習ユニット15は、既に説明したように、形状特徴量及び機能特徴量を用いて学習対象物体の物体概念モデルを作成することによって物体概念を学習する。具体的には、物体概念学習ユニット15は、形状特徴量をベクトル量子化することで学習対象物体の形状を認識し、図2(b)に示した形状Sに関する情報を取得する。更に、物体概念学習ユニット15は、学習対象物体の機能特徴量を分布に応じてクラス分けしながらそれぞれの分布について機能特徴量の平均値と分散を算出することで機能モデルを生成して、学習対象物体の機能を認識し、図2(b)に示した機能Fに関する情報を取得する。そして、物体概念学習ユニット15は、EMアルゴリズム等の統計学習手法を用いて学習対象物体の物体概念を学習して、物体概念モデルを生成する。生成された物体概念モデルは、物体概念モデル記憶領域306に格納される。
図9に、物体認識システム1が図4(a)及び図4(b)に示した物体群を用いて物体概念を学習した学習実験例の結果を、ユーザが評価した表を示す。図9は、物体認識システム1による学習結果がどのように分類されたかを示している。図9に示した表において、「インデックス1」〜「インデックス5」は、物体認識システム1によって分類された物体のカテゴリーである。図9から、物体認識システム1が、図4(a)及び図4(b)に示した5種類の物体を5つのカテゴリーとして識別していることがわかる。
条件付確率が推定された後等に、観測された形状及び機能に基づき、物体概念モデルに物体概念Oとして名称を与えて物体の概念が構築される。例えば、分類された物体のカテゴリーに「はさみ」、「ペン」等の名称をつけることにより、図2(b)に示した物体の概念が学習される。図9に示した表では、「インデックス1」を「はさみ」、「インデックス2」を「ピンセット」、「インデックス3」を「ペン」、「インデックス4」を「ペンチ」、「インデックス5」を「カッター」としている。図9に示したように、「はさみ」として学習されるべき学習対象物体が「インデックス1」ではなく「インデックス5」と分類されたケースが5つある等、誤って学習されたケースがあるが、大部分の学習対象物体は正しく学習されている。図9に示した学習実験結果では、正しく学習されたケースが340例、誤って学習されたケースが10例であり、正答率は97.1%である。
次に、図1に示した物体認識システム1が、物体を認識する方法を説明する。物体認識システム1は、図2(b)に示した物体概念モデルと観測等により取得された情報を用いて、未観測の情報を含む未完全なデータから完全データを推定し、物体を認識する。具体的には、ベイズの定理に基づき、取得された情報から未観測の条件付確率を推定することにより、認識する対象の物体(以下において「認識対象物体」という。)を認識する。ベイズの定理を式(1)に示す:
P(a|b)={P(b|a)P(a)}/P(b) ・・・(1)
式(1)において、P(a)、P(b)は図2(b)に示したベイジアンネットワークのノードの条件付確率である(a、b=O、S、F)。また、P(a|b)、P(b|a)は、ノード間の条件付確率であり、例えば条件付確率P(a|b)は、ノードbが観測された場合におけるノードaの確率を示す。
図1に示した物体認識ユニット16の有する形状認識モジュール161は、形状特徴量を用いて認識対象物体の形状認識を行う。具体的には、形状認識モジュール161が、学習済みの形状モデルのコードベクトルをコードブックとして認識対象物体の形状特徴量をベクトル量子化することで、認識対象物体の形状モデルを学習済みの形状モデルに当てはめて、認識対象物体の形状を認識し、形状に関する情報を取得する。
物体認識ユニット16の有する機能認識モジュール162は、機能特徴量を用いて認識対象物体の機能認識を行う。具体的には、機能認識モジュール162が、認識対象物体の機能特徴量について平均値と分散を算出して機能モデルを推定する。そして、推定された認識対象物体の機能モデルと学習済みのクラス分けされた機能モデル群とを比較して、最尤推定手法等により認識対象物体の機能モデルが学習済みの機能モデル群のどのクラスに属するかを判定する。その結果、認識対象物体の機能が認識され、機能に関する情報が取得される。
物体認識ユニット16の有する推定モジュール163は、観測等によって取得された認識対象物体の情報を用いて学習済みの物体概念モデルから認識対象物体の未観測ノードの条件付確率を推定することにより、認識対象物体の未観測ノードを認識する。
例えば、推定モジュール163は、形状認識モジュール161及び機能認識モジュール162によって取得された認識対象物体の形状及び機能に関する情報を用いて、認識対象物体の物体概念モデルから物体を認識する。また、推定モジュール163は、形状認識モジュール161によって取得された認識対象物体の形状に関する情報を用いて、認識対象物体の機能を推定する。更に、推定モジュール163は、入力された認識対象物体の機能に関する情報を用いて、認識対象物体の形状を推定する。
以下に、図1に示した物体認識システム1が、形状及び機能を観察して認識対象物体を認識する方法を、図10に示したフローチャートを用いて説明する。
(イ)ステップS200において、画像データ取得装置20が、ユーザ等が認識対象物体を操作することによって被作用物に影響が及ぶ様子を観測し、認識対象物体の操作前及び操作後それぞれの認識対象物体及び被作用物の画像データを取得する。取得された画像データは、入力データ記憶領域301に格納される。
(ロ)ステップS210において、形状特徴量抽出ユニット11が、入力データ記憶領域301から操作前或いは操作後の認識対象物体の画像データを読み出す。形状特徴量抽出ユニット11は、既に説明したように、認識対象物体の画像データをフーリエ記述子を用いて周波数変換する等して、形状特徴量を抽出する。抽出された認識対象物体の形状特徴量は、形状特徴量記憶領域302に格納される。
(ハ)ステップS220において、機能特徴量抽出ユニット13が、認識対象物体の操作前及び操作後の被作用物の画像データを入力データ記憶領域301から読み出す。機能特徴量抽出ユニット13は、既に説明した方法を用いて、被作用物の画像データから認識対象物体の機能特徴量を抽出する。抽出された機能特徴量は、機能特徴量記憶領域304に格納される。
(ニ)ステップS230において、物体認識ユニット16が、認識対象物体の形状特徴量及び機能特徴量を、形状特徴量記憶領域302及び機能特徴量記憶領域304からそれぞれ読み出す。そして、物体認識ユニット16は、認識対象物体の形状特徴量及び機能特徴量から認識対象物体を認識する。具体的には、ステップS231において、物体認識ユニット16の形状認識モジュール161が、形状モデルデータベース40に格納されたコードベクトル群をコードブックとして認識対象物体の形状特徴量をベクトル量子化して、認識対象物体の形状を認識する。また、ステップS232において、機能認識モジュール162が、機能モデルデータベース50に格納された機能モデル群と比較することによって、認識対象物体の機能特徴量から機能モデルを推定し、認識対象物体の機能を認識する。そして、ステップS233において、推定モジュール163が、認識された形状及び機能を用いて、式(1)に示したベイズの定理等の統計的手法によって認識対象物体の未観測の条件付確率を推定することにより、物体概念モデルデータベース60に格納された学習済みの物体概念モデルを用いて、認識対象物体が認識される。認識対象物体の認識結果、即ち認識対象物体の推定された物体概念モデル等は、認識結果記憶領域307に格納される。物体認識システム1のユーザは、出力装置80を介して認識結果記憶領域307に格納された認識結果を確認できる。
以上に説明したように、物体認識システム1は、認識対象物体を観測して取得された画像データから、機能特徴量及び形状特徴量を抽出する。そして、抽出された機能特徴量及び形状特徴量と物体概念モデルを用いて未観測の条件付確率を推定することにより、認識対象物体を認識する。
上記では、形状と機能の観測結果を用いて物体概念モデルの条件付確率を推定することにより、認識対象物体を認識する例を説明した。以下に、物体認識システム1が、形状を観察して認識対象物体の機能を認識する方法を、図4(a)及び図4(b)に示した物体群を使用して行った実験を例に用いて説明する。以下では、図4(a)に示したAセットに含まれる物体群を学習した結果を用いて、図4(b)Bセットに含まれる物体群を認識する例を、図11に示したフローチャートを用いて説明する。つまり、Aセットに含まれる合計23個の物体が学習対象物体として学習され、Bセットに含まれる合計12個の物体が認識対象物体として認識される。
(イ)ステップS300において、図8に示したフローチャートを参照して説明した方法を用いて学習対象物体の概念モデルが生成され、学習対象物体が学習される。具体的には、図1に示した画像データ取得装置20が、学習対象物体が操作されて被作用物に影響が及ぶ様子を観測し、学習対象物体の操作前及び操作後それぞれの学習対象物体及び被作用物の画像データを取得する。ここで、図4(a)に示したAセットに含まれる合計23個の学習対象物体が、それぞれ10回ずつユーザ等によって操作される。取得された学習対象物体の画像データから、形状特徴量抽出ユニット11が学習対象物体の形状特徴量を抽出し、機能特徴量抽出ユニット13が学習対象物体の形状特徴量を抽出する。形状学習ユニット12が抽出された学習対象物体の形状特徴量から形状モデルを生成し、生成された形状モデルは形状モデル記憶領域303に格納される。機能学習ユニット14が抽出された学習対象物体の機能特徴量から機能モデルを生成し、生成された形状モデルは機能モデル記憶領域305に格納される。そして、物体概念学習ユニット15が、抽出された形状特徴量及び機能特徴量を用いて学習対象物体の物体概念を学習して、物体概念モデルを生成する。生成された物体概念モデルは、物体概念モデル記憶領域306に格納される。
(ロ)ステップS310において、画像データ取得装置20が、認識対象物体である図4(b)に示したBセットに含まれる物体群を観測して、画像データを取得する。取得された認識対象物体の画像データは、入力データ記憶領域301に格納される。
(ハ)ステップS320において、形状特徴量抽出ユニット11が、入力データ記憶領域301から認識対象物体の画像データを読み出す。形状特徴量抽出ユニット11は、既に説明したように、認識対象物体の画像データをフーリエ記述子を用いて周波数変換する等して、形状特徴量を抽出する。抽出された認識対象物体の形状特徴量は、形状特徴量記憶領域302に格納される。
(ニ)ステップS330において、物体認識ユニット16が、認識対象物体の形状特徴量を形状特徴量記憶領域302から読み出す。物体認識ユニット16は、認識対象物体の形状特徴量を用いて、認識対象物体の機能を認識する。具体的には、ステップS331において、物体認識ユニット16の形状認識モジュール161が、形状モデル記憶領域303に格納されたAセットに含まれる物体群のコードベクトル群をコードブックとして認識対象物体の形状特徴量をベクトル量子化して、認識対象物体の形状を認識する。そして、ステップS332において、物体認識ユニット16の推定モジュール163が、学習対象物体の機能モデル及び物体概念モデルを、機能モデル記憶領域305及び物体概念モデル記憶領域306からそれぞれ読み出す。推定モジュール163は、ベイズの定理等の統計的手法を物体概念モデルに適用して、認識対象物体の形状の情報を用いて学習対象物体の機能モデルから機能の条件付確率を推定し、認識対象物体の機能を認識する。認識された認識対象物体の機能は、認識結果記憶領域307に格納される。
図12に、上記に説明した図4(a)及び図4(b)に示した物体群を用いた物体の機能を認識する認識実験例の結果の表を示す。図12は、Aセットに含まれる物体群を学習した結果を用いて、Bセットに含まれる物体群の形状の観測結果から、Bセットに含まれる物体群がどのような機能に分類されたかを示している。図12に示した表は、Aセットに含まれる物体群を10回ずつ操作する様子を観測して学習した後、Bセットに含まれる物体群の形状を観測することによって機能を認識する実験を3回行った例である。
図12から、物体認識システム1が、Aセットに含まれる物体群の機能を4つの機能として学習し、Bセットに含まれる物体群を学習された4つの機能に分類したことがわかる。図12において、「機能0」〜「機能3」は、Bセットに含まれる物体群機能の観測結果を用いて推定された機能の種類であり、図6に示した「機能0」〜「機能3」に対応する。つまり、「機能0」が「個数変化」、「機能1」が「輪郭変化」、「機能2」が「色変化」、「機能3」が「位置変化」にそれぞれ対応する。
図12に示したように、「機能0」として認識されるべきカッターb52の機能が「機能2」であると誤って認識されたケースがあるが、大部分の認識対象物体は正しく認識されている。図12に示した認識実験結果では、正しく認識されたケースが33例、誤って認識されたケースが3例であり、正答率は91.7%である。
上記では、Aセットに含まれる物体群の学習結果を用いて、Bセットに含まれる物体群を認識する例を示した。Aセットに含まれる物体群の学習結果だけではなく、以前に学習され、物体概念モデルデータベース60に格納された物体概念モデルを用いてBセットに含まれる物体群を認識してもよいのは勿論である。
以上に説明したように、物体認識システム1は、形状の情報から、物体概念モデルを利用して未観測の条件付確率を推定することにより、未学習物体の機能を推定できる。
次に、物体認識システム1が、認識対象物体の機能を用いて、認識対象物体の形状を認識する例を、図13に示したフローチャートを用いて説明する。
(イ)ステップS400において、入力装置70を介して、ユーザが指定する機能の情報が入力される。入力された機能の情報は、認識対象物体の機能の情報として入力データ記憶領域301に格納される。ここで、機能の情報としては、例えば図6に示した「機能0」〜「機能3」等の、物体認識システム1が学習済みの機能であるとする。
(ロ)ステップS410において、物体認識ユニット16が、認識対象物体の機能の情報を入力データ記憶領域301から読み出す。物体認識ユニット16は、認識対象物体の機能の情報を用いて、認識対象物体の形状を推定する。具体的には、物体認識ユニット16の推定モジュール163が、学習対象物体の形状モデル及び物体概念モデルを、形状モデルデータベース40及び物体概念モデルデータベース60からそれぞれ読み出す。推定モジュール163は、ベイズの定理等の統計的手法を物体概念モデルに適用して、認識対象物体の機能の情報を用いて学習済みの形状モデルから形状の条件付確率を推定し、認識対象物体の形状を認識する。認識された認識対象物体の形状は、認識結果記憶領域307に格納される。
上記では、入力される機能の情報が、図6に示した「機能0」〜「機能3」等の既に学習済みの機能である例を説明したが、より一般的な物体の機能を入力して、物体認識ユニット16が、機能モデルデータベース50に格納された学習済みの機能モデルを参照して、入力された機能を学習済みの機能モデルに変換してもよい。例えば、入力された「切る」という情報から、ユーザが指定する機能に必要な機能を、機能特徴量を抽出される際に「個数変化」を被作用物の変化のパラメータとして学習された機能に変換する。
以上に説明したように、物体認識システム1は、入力された機能の情報から、物体概念モデルを利用して未観測の条件付確率を推定することにより、未学習物体の形状を推定する。つまり、どのような形状の物体が、指定された機能を実行可能か推定できる。
図5、図8に示した一連の物体学習操作、及び図10、図11、図13に示した一連の物体認識操作は、これらの図と等価なアルゴリズムのプログラムにより、図1に示した物体認識システム1を制御して実行できる。このプログラムは、図1に示した物体認識システム1を構成する記憶装置30に記憶させればよい。又、このプログラムは、コンピュータ読み取り可能な記録媒体に保存し、この記録媒体を図1に示した記憶装置30に読み込ませることにより、本発明の一連の物体学習操作及び物体認識操作を実行することができる。
本発明の実施の形態に係る物体認識システム1によれば、観測により取得される学習対象物体の形状及び被作用物の形状の情報を用いて、学習対象物体の物体の概念が学習される。つまり、図1に示した物体認識システム1では、学習対象物体の形状以外に、被作用物の形状の変化を用いて抽出される学習対象物体の機能の情報をベイジアンネットワークのノードに適用可能な特徴量として抽出する。そして、ベイジアンネットワークとして物体概念モデルを生成し、物体を学習する。そのため、学習対象物体の形状の画像データのみを用いる物体の学習方法と異なり、画像データのノイズの影響等による物体の誤認識が低減され、且つ学習対象物体の機能が考慮された精度の高い物体の学習が可能である。又、図1に示した物体認識システム1では、ベイジアンネットワークの物体概念モデルを使用するため、ベイズの定理等の統計的手法によって、観測により取得される認識対象物体の情報から、未学習の認識対象物体の情報を高い精度で推定できる。
<変形例>
図1に示した物体認識システム1を、家庭用、工業用、或いはエンタテイメント用のロボット等に実装することが可能である。物体認識システム1を実装したロボットには、ユーザからの指令を受信するマイク、センサ等の受信部が入力装置70として実装される。また、画像データ取得装置20として、ロボットの周囲にある物体の画像データを取得するために、画像データを撮影する範囲を変更できる可動式のカメラ等を実装可能である。更に、学習対象物体、或いは認識対象物体に接近するための車輪や、認識した物体を掴み、ユーザに渡すアーム等を有してもよい。
物体認識システム1を実装したロボットは、ユーザから明示的に指示されていなくても、ロボットの周囲の観測可能な領域で物体が操作された場合に操作された物体を自動的に学習するように設定できる。そのため、予め物体学習用にプログラムしておく必要がなく、ロボットは家庭内や工場内で自律的に物体を学習できる。
また、ロボットに物体認識システム1を実装することにより、ロボットとコミュニケーションを取りながら物体を認識することができる。例えば、物体認識システム1の有する、物体の機能の情報から形状を認識する機能を用いてユーザの指定する機能を有する物体をロボットが推定し、ユーザに通知すること等が可能である。その場合、ユーザが必要とする機能の情報をロボットに入力すると、図13に示したフローチャートを参照して説明した方法を用いて、ロボットはユーザが必要とする機能を実行する形状を推定する。そして、ロボットは周囲を観測して、ロボットの周囲の物体の中に推定された形状の物体を認識すると、入力された機能を実行する物体の位置をユーザに通知する。または、認識した物体のある場所までユーザを案内したり、物体のある場所まで移動してアーム等を用いて認識した物体を取得し、ユーザに手渡ししたりするようにしてもよい。或いは、ロボットが周囲の物体の形状からそれぞれの機能を認識し、ユーザが指定する機能を実行すると認識された物体の所在をユーザに通知してもよい。
また、形状と機能の関係性を表すベイジアンネットワークを学習することによって物体のアフォーダンスをロボットが認識することにより、例えばユーザが被作用物を切断するためにはさみを指定した場合に、カッターによってユーザの指定する機能に準ずる機能を実現できることをロボットが推定できる。或いは、被作用物を掴むためにユーザが箸を指定した場合に、ペンを2本使うことでユーザの指定する機能に準ずる機能を実現できる等の、形状に依存する機能の推定や使用方法をロボットが推定できる。
(その他の実施の形態)
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
既に述べた実施の形態の説明においては、機能モデルデータベース50や形状モデルデータベース40に格納された、過去に学習された形状モデルや機能モデルを用いて学習対象物体を学習する例を示した。しかし、過去に学習した形状モデルや機能モデルがない場合等に、学習対象物体を観測して得られた情報から生成される形状モデルや機能モデルを用いて学習対象物体を学習し、物体概念モデルを生成してもよい。例えば、形状特徴量抽出ユニット11が複数の学習対象物体の形状特徴量を抽出した場合、形状特徴量をk平均法等でクラスタリングすることにより、観測結果からベクトル量子化の際に使用されるコードブックが生成される。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。