以下の実施例では、実施例2に係る情報提供装置の構成および処理の流れを順に説明し、最後に実施例2による効果を説明する。
[情報提供装置の構成]
まず最初に、図2を用いて、情報提供装置10の構成を説明する。図2は、実施例2に係る情報提供装置10の構成を示すブロック図である。図2に示すように、この情報提供装置10は、入力部11、出力部12、制御部13、記憶部14を有する。以下にこれらの各部の処理を説明する。
入力部11は、3Dモデルを設計するための操作指示や利用者が設計中に必要な情報を選択して表示させる指示などを入力するものであり、キーボードやマウス、マイクなどである。また、出力部12は、設計中の部品の3Dモデル、部品に関する知識情報である文書情報、利用者が設計中に必要な情報などを表示するものであり、モニタ(若しくはディスプレイ、タッチパネル)やスピーカである。
記憶部14は、制御部13による各種処理に必要なデータおよびプログラムを格納するが、特に、3Dモデル情報記憶領域14a、文書情報記憶領域14b、テーブル記憶領域14c、部分文書情報記憶領域14dを有する。
3Dモデル情報記憶領域14aは、部品の3Dモデルを記憶する。具体的には、図3に示すように、3Dモデル情報記憶領域14aは、3Dモデルとともに、部品番号、設計者、設計日付を記憶している。図3は、3Dモデルの一例を示す図である。
文書情報記憶領域14bは、部品の画像が付加された部品に関する文書を記憶する。例えば、図4に示すように、文書情報記憶領域14bは、設計された部品に関する情報として、部品の一部分に障害が発生しやすい旨を部品の画像とともに記憶する。図4は、文書情報の一例を示す図である。
テーブル記憶領域14cは、制御部13による各種処理に必要な各種テーブルを記憶する。具体的には、テーブル記憶領域14cは、部品テーブル、部品・文書関連付けテーブル、点情報テーブル、面情報テーブル、セグメント情報テーブル、テキスト情報テーブル、画像情報テーブル、図形情報テーブル、画素情報テーブル、画像特徴量テーブルを有する。
また、テーブル記憶領域14cは、視点位置情報テーブル、類似度計算テーブル、文書参照情報テーブル、クエリ点情報テーブル、クエリ・面情報テーブル、クエリ・セグメント情報テーブルを有する。
また、テーブル記憶領域14cは、クエリ・セグメント類似度計算テーブル、クエリ・セグメント評価値計算テーブルを有する。なお、以下に各テーブルについて説明するが、各テーブルがどのような処理に利用されるかについては、後述する制御部13の説明で述べる。また、各テーブルにについて、テーブルの形式を取らなくてもよく、テーブルの構成以外のデータベースを用いてもよい。
部品テーブルは、3Dモデルで表現された部品の部品種別を記憶する。具体的には、部品テーブルは、図5に示すように、部品を一意に識別する部品番号と、部品の種別を示す部品種別とを対応付けて記憶する。図5は、部品テーブルの一例を示す図である。
部品・文書関連付けテーブルは、3Dモデルの部品と文書情報との関連付けを記憶する。部品・文書関連付けテーブルは、図6に示すように、文書情報を一意に識別する文書番号と、文書情報のタイトルを示す文書タイトルと、文書情報のURLを示す文書URLと、部品番号とを対応付けて記憶する。図6は、部品・文書関連付けテーブルの一例を示す図である。
点情報テーブルは、3Dモデルのポリゴンデータの点の座標位置を示す座標情報を記憶する。具体的には、点情報テーブルは、図7に示すように、部品番号と、ポリゴンデータの点を一意に識別する点番号と、点のX座標を示すX座標と、点のY座標を示すY座標と、点のZ座標を示すZ座標とを対応付けて記憶する。図7は、点情報テーブルの一例を示す図である。
面情報テーブルは、3Dモデルのポリゴンデータの面に関する情報を記憶する。具体的には、面情報テーブルは、図8に示すように、部品番号と、ポリゴンデータの面を一意に識別する面番号と、面が有する点の点番号を示す点番号1〜3とを対応付けて記憶する。図8は、面情報テーブルの一例を示す図である。
セグメント情報テーブルは、セグメント(部分)に関する情報を記憶する。具体的には、セグメント情報テーブルは、図9に示すように、セグメンテーションが行われた部品番号と、セグメンテーションが行われた部品を一意に識別するセグメント番号と、セグメンテーション後の面番号と、セグメンテーション前の面番号と、セグメント(部分)の特徴量とを対応付けて記憶する。図9は、セグメント情報テーブルの一例を示す図である。
テキスト情報テーブルは、文書情報におけるテキスト情報に関する情報を記憶する。具体的には、テキスト情報テーブルは、図10に示すように、文書番号と、文書情報における文字列のX座標およびY座標と、文字列の幅および高さと、文字列の内容とを対応付けて記憶する。図10は、テキスト情報テーブルの一例を示す図である。
画像情報テーブルは、文書情報における画像に関する情報を記憶する。具体的には、画像情報テーブルは、図11に示すように、文書番号と、文書情報における画像の位置であるX座標およびY座標と、画像の幅および高さと、画像ファイル名とを対応付けて記憶する。図11は、画像情報テーブルの一例を示す図である。
図形情報テーブルは、画像の一部分を特定する図形に関する情報を記憶する。具体的には、図形情報テーブルは、図12に示すように、文書番号と、画像の一部分を特定する図名のX座標およびY座標と、画像の一部分を特定する図形の幅および高さと、図形の形状とを対応付けて記憶する。図12は、図形情報テーブルの一例を示す図である。
画素情報テーブルは、文書情報における画像の画素に関する情報を記憶する。具体的には、画素情報テーブルは、図13に示すように、画像番号と画素情報とを対応付けて記憶する。図13は、画素情報テーブルの一例を示す図である。画像特徴量テーブルは、文書情報における画像の特徴量を記憶する。具体的には、画像特徴量テーブルは、図14に示すように、画像番号と特徴量とを対応付けて記憶する。図14は、画像特徴量テーブルの一例を示す図である。
視点位置情報テーブルは、3Dモデルをレンダリングするための視点位置を設定するための情報を記憶する。具体的には、視点位置情報テーブルは、図15に示すように、部品番号と、セグメント番号と、3Dモデルの回転角度である回転角θおよび回転角γと、画像情報と、面番号情報と、特徴量情報とを対応付けて記憶する。図15は、視点位置情報テーブルの一例を示す図である。
類似度計算テーブルは、各視点位置での3Dモデルと文書情報の画像との類似度を記憶する。具体的には、類似度計算テーブルは、図16に示すように、画像番号と、部品番号と、セグメント番号と、回転角θおよび回転角γと、3Dモデルと文書情報の画像との類似度を示す類似度とを対応付けて記憶する。図16は、類似度計算テーブルの一例を示す図である。
文書参照情報テーブルは、各文書情報が参照された回数を記憶する。具体的には、文書参照情報テーブルは、図17に示すように、文書番号と、文書情報が参照された回数を示す参照回数とを対応付けて記憶する。図17は、文書参照情報テーブルの一例を示す図である。
クエリ点情報テーブルは、検索のキーとなる部品の3Dモデルの点情報を記憶する。具体的には、クエリ点情報テーブルは、図18に示すように、3Dモデルの点を一意に識別する点番号と、点のX座標と、点のY座標と、点のZ座標とを対応付けて記憶する。図18は、クエリ点情報テーブルの一例を示す図である。
クエリ・面情報テーブルは、検索のキーとなる部品の3Dモデルの面情報を記憶する。具体的には、クエリ・面情報テーブルは、図19に示すように、3Dモデルの面を一意に識別する面番号と、面が有する点の点番号を示す点番号1〜3とを対応付けて記憶する。図19は、クエリ・面情報テーブルの一例を示す図である。
クエリ・セグメント情報テーブルは、検索のキーとなる部品の3Dモデルのセグメントに関する情報を記憶する。具体的には、クエリ・セグメント情報テーブルは、図20に示すように、検索のキーとなる各部分のクエリ・セグメント番号と、セグメンテーション後の面番号と、セグメンテーション前の面番号と、セグメント(部分)の特徴量とを対応付けて記憶する。図20は、クエリ・セグメント情報テーブルの一例を示す図である。
クエリ・セグメント類似度計算テーブルは、検索のキーとなる部品の3Dモデルの各部分と、検索の対象となる各部分との類似度を記憶する。具体的には、クエリ・セグメント類似度計算テーブルは、図21に示すように、クエリ・セグメント番号と、検索の対象となる各部品の部品番号と、検索の対象となる各セグメントのセグメント番号と、類似度を対応付けて記憶する。図21は、クエリ・セグメント類似度計算テーブルの一例を示す図である。
クエリ・セグメント評価値計算テーブルは、検索のキーとなる部品の3Dモデルの各部分と検索の対象となる各部分との類似度などを重み付けとして、ランキングを行うための評価値を記憶する。具体的には、クエリ・セグメント評価値計算テーブルは、図22に示すように、クエリ・セグメント番号と、検索の対象となる各部品の部品番号と、検索の対象となる各セグメントのセグメント番号と、評価値とを対応付けて記憶する。図22は、クエリ・セグメント評価値計算テーブルの一例を示す図である。
部分文書情報記憶領域14dは、3Dモデルの部品の部分と文書情報とが関連付けられた部分・文書関連付けテーブルを記憶する。具体的には、部分文書情報記憶領域14dは、図23に示すように、文書番号と、部品番号と、セグメント番号とが対応付けられた部分・文書関連付けテーブルを記憶する。図23は、部分・文書関連付けテーブルの一例を示す図である。
図2に戻って、制御部13は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部13は、3Dモデル分割部13a、3Dモデル特徴抽出部13b、文書画像抽出部13c、指示マーク抽出部13dを有する。また、制御部13は、エッジ抽出部13e、レンダリング部13f、形状特徴抽出部13g、画像対応抽出部13h、指示マーク部分対応抽出部13i、部分文書格納部13j、クエリ取得部13k、検索部13lを有する。
3Dモデル分割部13aは、部品の3Dモデルを部分に分割する。具体的には、3Dモデル分割部13aは、部品の3Dモデルを表現するポリゴンデータを既存のセグメンテーション方式で部分ごとに分割する。ポリゴンデータとは、点情報および面情報の組で表現されるものである。ポリゴンデータの点情報および面情報については、点情報テーブルおよび面情報テーブルに記憶されている(図7、図8参照)。
ここで、セグメンテーション方式について図24を用いて具体的に説明する。図24は、セグメンテーション手法の一例を説明する図である。図24に示すように、3Dモデル分割部13aは、3Dモデルの平面部分を検出し、3Dモデルの輪郭を抽出する。そして、3Dモデル分割部13aは、3Dモデルを分割可能な平面があれば、その平面で3Dモデルを分割し、各部分ごとにポリゴン化する。
その後、3Dモデル分割部13aは、分割された部分ごとにセグメント番号を割り当て、セグメンテーション後の面番号とセグメンテーション前の面番号をセグメント情報テーブルに記憶させる。
3Dモデル特徴抽出部13bは、各部品のポリゴンデータから3次元の形状に関する特徴量を抽出する。例えば、3Dモデル特徴抽出部13bは、3次元の形状に関する特徴量として、3次元の形状の特徴量であるベクトル情報を抽出する。その後、3Dモデル特徴抽出部13bは、抽出された特徴量をセグメント情報テーブルに記憶させる。
文書画像抽出部13cは、文書に関連付けられた部品の画像を抽出する。具体的には、文書画像抽出部13cは、文書情報を解析して、部品に関連付けられた文書情報から画像を抽出する。例えば、図25の例を用いて説明すると、指示マーク抽出部13dは、文書情報から画像情報を示す「image」を抽出する。図25は、HTMLファイル形式の文書の例を示す図である。
そして、文書画像抽出部13cは、画像情報を示す「image」を抽出すると、画像情報が位置するX座標「0」およびY座標「40」、画像サイズ(画像の幅および画像の高さ)、画像ファイル名を取得して、画像情報テーブルに記憶させる。なお、画像サイズは、画像ファイルのヘッダから取得できる。また、上述した例では、HTMLファイル形式の例で説明したが、他の形式の文書(PDF、PowerPoint、Word等)でも同様の処理を行う。
指示マーク抽出部13dは、抽出された画像の中から画像の一部分を特定する指示マークを抽出する。具体的には、指示マーク抽出部13dは、文書情報を解析して、部品に関連付けられた文書情報から指示マークを抽出する。例えば、図25の例を用いて説明すると、指示マーク抽出部13dは、図形を示す「oval」および「line」を抽出する。
そして、指示マーク抽出部13dは、図形を示す「oval」および「line」を抽出すると、図形が位置するX座標およびY座標、図形のサイズ(図形の幅および図形の高さ)、図形形状を取得して、図形情報テーブルに記憶させる。
続いて、指示マーク抽出部13dは、図形情報テーブルを参照して、ドキュメント自体に図形情報が含まれていれば、そのうち、楕円や矢印の図形情報をすべて指示マーク候補とする。なお、ドキュメント自体に図形情報が含まれていない形式の場合でも、図形中に図形の一部として記述されていれば、ハフ(Hough)変換などの手法で抽出することができる。
ここで、指示マーク抽出部13dは、指示マークの形状と位置に基づいて、指示マーク候補が正しい指示マークかどうか判定する。具体的には、指示マーク抽出部13dは、指示マーク候補の図形形状が楕円の場合には、図26に示すように、画像の位置に重なる位置に指示マークの図形の位置があるか判定する。図26は、指示マークの一例を示す図である。
この判定では、図形情報テーブルと画像情報テーブルの座標位置から容易に行うことができる。以下の説明では、指示マーク候補の位置と幅、高さが「shape_x,shape_y,shape_width,shape_height」、画像の位置と幅、高さが「image_x,image_y,image_width,image_height」で表される場合に、以下の(1)〜(4)式が真の場合を指示マークと判定する。
ここでは、図形が画像位置を多少はみ出ることを想定したoffset値(offset_x、offset_y)を指定している。この値は固定でもよいし、画像サイズに対する相対値でもよい。また、指示マーク候補の図形形状が矢印の場合は、図26に示すように、矢印の先端が画像に重なっていることを判定する。以下の(5)〜(8)式が真の場合を指示マークとする。ここでは、矢印の先端(終端)を「shape_x,shape_y」とする。(図形情報テーブルから求める場合は、「shape_x」=[x座標]+[幅],「shape_y」=[y座標]+[高さ]となる。ここでは、楕円の場合と同じoffset値(offset_x、offset_y)を指定している。
その後、指示マーク抽出部13dは、図27に示すように、抽出された指示マークの情報を記憶する。図27は、指示マーク情報の一例を示す図である。そして、指示マーク抽出部13dは、図28に示すように、指示マークと画像を関連付けて保存する。図28は、指示マークつきの画像情報の一例を示す図である。指示マークには、重複しない番号である指示マーク番号が割り振られる。また、指示マークつきの画像情報に関しても、重複しない番号である画像番号が割り振られる。
図2の説明に戻って、エッジ抽出部13e、レンダリング部13f、形状特徴抽出部13g、画像対応抽出部13hは、文書情報における画像と3Dモデルとの位置合わせを行うために各種処理を行う。ここでいう画像とは、指示マーク付きの画像情報に保存されているものであり、画像と部品の3Dモデルの対応は、部品テーブルおよび部品・文書関連付けテーブルから取得することができる。
画像形式は、Width×Heightの二次元配列になる。配列の各要素は、図29に示すように、通常R,G,Bの3つの要素を持つが、エッジ等の場合には、モノクロを対象とすることが多いため、図30に示すように、輝度値(I)の値ひとつを持つ場合でもかまわない。これらの画素情報は、画素情報テーブルにおいて画像番号と関連付けられて記憶されている。図29は、カラー画像の画素の配列形式を示す図である。図30は、モノクロ画像の画素の配列形式を示す図である。
また、エッジ抽出部13eは、レンダリング画像と画像の大きさをそろえて精度を向上させるため、あらかじめ画像から既存手法である背景除去などの手法を用いて物体部分を抽出する。そして、レンダリング部13fは、物体部分の大きさを求め、それに合わせてトリミングを行い、3Dモデルをそれに合わせてレンダリングする方法を行ってもよい。
画像の背景除去は、画像が淡色の背景などの場合に、画像の端に接する画素からその周りの画素の色を調べ、同一色部分である(または多少の誤差を許容して類似した色部分)場合のみ、そこを背景として判定し、背景として判定された範囲からさらにその周りの同一色部分を判定する動作を繰り返すことで行うことができる。
これにより、画像に映っている物体の周りの同一色部分が抽出できるため、それ以外の範囲を囲む最小の四角形を抽出することで、画像に映っている物体の外接の四角形を抽出でき、その範囲だけの画像情報を生成する。後述する3Dモデルのレンダリング画像に関しても、レンダリング後に同様に物体の外接の四角形を抽出する。この二つの画像間で特徴量を抽出し、類似度計算を行うことで、精度が向上できる。
上記したように、エッジ抽出部13e、レンダリング部13f、形状特徴抽出部13g、画像対応抽出部13hは、文書情報における画像と3Dモデルとの位置合わせを行うために各種処理を行う。ここで、エッジ抽出部13e、レンダリング部13f、形状特徴抽出部13g、画像対応抽出部13hについて、文書情報における画像と3Dモデルとの位置合わせ処理の全体の流れを図31を用いて説明する。図31は、文書情報における画像と3Dモデルとの位置合わせを行う処理を説明する図である。
図31に示すように、エッジ抽出部13eは、文書中の画像からエッジを抽出し、文書中の画像の形状特徴量を抽出する。また、レンダリング部13fは、3Dモデルの視点位置の設定を行い、設定した各視点位置から見たエッジレンダリング画像を生成する。そして、形状特徴抽出部13gは、各エッジレンダリング画像の形状特徴量をそれぞれ抽出する。
そして、画像対応抽出部13hは、文書中の画像の形状特徴量と各エッジレンダリング画像の形状特徴量の類似度をそれぞれ算出し、一番類似度が高い視点位置を選択する。以下では、エッジ抽出部13e、レンダリング部13f、形状特徴抽出部13g、画像対応抽出部13hの各処理について詳しく説明する。
エッジ抽出部13eは、文書中の画像からエッジを抽出し、文書中の画像の形状特徴量を抽出する。具体的には、エッジ抽出部13eは、エッジ特徴抽出方法として、エッジ抽出オペレータを利用して、エッジ用の形状特徴量抽出手法用いる方法、または、ウェーブレット変換などのように、直接形状特徴量を抽出する方法などを利用する。ウェーブレット変換を利用する方法では、画像をウェーブレット変換することで、画像の各位置での周波数的な変化量を抽出し、それを特徴量とする。
エッジ抽出オペレータを利用する方法では、エッジの抽出方法としてラプラシアン行列を用いられる。この手法では、ラプラシアン行列と呼ばれる3x3の行列を各画素に畳み込み演算することで、各画素におけるエッジ量を抽出する。エッジ量は画像サイズと同じ縦横サイズの整数または実数の2次元配列として表現することができる。
画素列が並んでいる様子を2次元行列としてみた場合に、その値p(x,y)があり、畳み込み行列がq(x,y )とした場合に、変換後の行列p‘(x, y)が以下の(9)式で表される。また、ラプラシアン行列としては、以下の(10)式の行列が用いられる。エッジ抽出結果は、図32に示すように画像と同じサイズの二次元配列となる。図32は、エッジ抽出結果を説明するための図である。
エッジ抽出部13eは、エッジ抽出結果に対する特徴抽出手法として、Grid Fourierなどの手法を利用して、エッジ特徴量を抽出する。この手法では、画像を格子状に区切ったグリッドごとにエッジ量のヒストグラムを抽出し、この2次元フーリエ変換を行った結果を特徴量とする方法である。これにより二次元的な回転に不変な特徴量とすることができる。抽出された特徴量の結果は、一次元の固定長のベクトル値となる。
エッジ抽出部13eは、特徴量の結果として、一次元の固定長のベクトル値を抽出する。そして、エッジ抽出部13eは、抽出された特徴量の結果について、指示マーク付きの画像情報に保存されている画像毎に抽出し、画像特徴量テーブルに保存する。
レンダリング部13fは、3Dモデルをレンダリングするための視点位置の設定を行う。例えば、エッジ抽出部13eは、視点位置として、3Dモデルをまわりから見るためのカメラの位置と向きを設定する。
ここで、上記のカメラ位置と向きの決定は以下の方法で行うことができる。ここで、3Dモデルの中心位置を(0,0,0)とし、カメラがその周りを回る場合には、カメラの位置c、向きf、上方ベクトルuは、回転角をθとγとし、距離をdとした場合に、以下の(11)式および(12)式で表される。
ここで、レンダリング部13fは、回転角θとγを適当な間隔で設定し、等間隔の2重ループで指定して視点位置情報テーブルに設定する。図15の例では、30度間隔で指定している。この各角度において、画像情報や特徴量情報を視点位置情報テーブルに記憶させる。
そして、レンダリング部13fは、設定した視点位置から見たレンダリング画像を生成する。ここで、レンダリング画像の生成処理手法の例について説明する。3Dモデル上の各点が画面上に投影されるとき、カメラの位置をcとし、カメラの向きをfとし、カメラの上方ベクトルをuとした場合に、3Dモデル上の点pは、以下の(13)式、(14)式で表される画面上の点p2に投影される。
レンダリング部13fは、ポリゴン上の各面をポリゴンの点を線形補間した位置に描画する。これにより、各ポリゴンを2次元の平面にマッピングした画像を生成することができる。また、レンダリング部13fは、p2の位置が重なる場合は、zの値が小さいもの(手前にあるもの)を優先して描画する。また、レンダリング部13fは、エッジのみをレンダリングするには、鋭角、または輪郭のエッジのみをレンダリングするようにすればよい。
ここで、二つの面のなす角度は、法線ベクトルの内積を求めることで得ることができる。(a・b=│a││b│cosθ)輪郭であるというのは、片方の面がカメラ方向を向き、片方の面がカメラ方向を向いていないことから求められる。カメラ方向を向いている面の法線ベクトルをa、向いていない法線ベクトルをbとした場合に、「f・a<0」、「f・a>0」の条件が満たされる線が輪郭に相当する。
レンダリング部13fは、各ピクセルが、3Dモデルのどの位置に相当するかという情報を保持する。例えば、レンダリング部13fは、画像の画素数分だけある二次元配列を用意し、上記計算で行った画素に対応するポリゴンの面番号(セグメンテーション前の面番号)を面番号情報として、視点位置情報テーブルに保存しておく。
図33の例では、面番号0に対応するピクセルと、面番号1に対応するピクセル、どの面にも対応しないピクセル(−1のピクセル)に設定されている。図33は、面番号情報の一例を示す図である。この配列は、各要素を最初にどの面にも対応しないピクセル(−1)として初期化し、描画時の計算で、面を次元座標に変換したときの座標位置を対応する面番号に置き換えることで作成する。ここでは面番号を設定したが、セグメント情報テーブルを用いてセグメント番号を設定してもよい。
形状特徴抽出部13gは、各エッジレンダリング画像の形状特徴量をそれぞれ抽出する。具体的には、形状特徴抽出部13gは、上述した処理と同様に、エッジ抽出結果に対する特徴抽出手法として、Grid Fourierなどの手法を利用して、エッジ特徴量を抽出することができる。通常のレンダリング画像として生成した場合は、ウェーブレット変換特徴量などが使用できる。エッジのみをレンダリングした場合は、Grid Fourierなどのエッジ特徴量などが使用できる。抽出結果はベクトルになるので、その結果を視点位置情報テーブルに保存する。
画像対応抽出部13hは、文書中の画像の形状特徴量と各エッジレンダリング画像の形状特徴量の類似度をそれぞれ算出し、一番類似度が高い視点位置を選択する。具体的には、画像対応抽出部13hは、文書中の画像の形状特徴量のベクトルと各エッジレンダリング画像の形状特徴量のベクトルとの間のユークリッド距離を計算する。つまり、形状特徴量は、ベクトルとして表現でき、同じ次元数のベクトル間の距離の距離はユークリッド距離で計算することができる。特徴量ベクトルf(i)とg(i)として、その次元数をmとしたとき、そのユークリッド距離は、以下の(15)式で計算できる。
つまり、画像対応抽出部13hは、特徴間の距離が小さいほど、類似度が大きいと判定する。視点位置情報テーブルの情報をもとに、形状特徴抽出部13gによって抽出されたた各回転角に相当する画像特徴量と、エッジ抽出部13eで抽出された画像特徴量の類似度を(15)式で計算し、値が一番小さいものの視点位置情報テーブルのフィールドを一つ抽出する。これにより、画像対応抽出部13hは、対応する画像情報と面番号情報を取得できる。例えば、画像対応抽出部13hは、図16に例示する類似度計算テーブルの例では、最も類似度の値が小さい回転角θ=0、回転角γ=60のフィールドを選択する。
指示マーク部分対応抽出部13iは、記号が特定する画像の部分に対応する3Dモデルの部分を選択する。具体的には、指示マーク部分対応抽出部13iは、図34に示すように、セグメンテーション済みの3Dモデルについて、各部分における指示マーク範囲内の面積を抽出し、部品面積中の範囲内の面積の割合を算出する。そして、指示マーク部分対応抽出部13iは、一番割合の高い部分を選択する。図34は、指示マークの位置に対応する3Dモデルの部分を選択する処理を説明する図である。
例えば、指示マーク部分対応抽出部13iは、図34の例では、各部分を示す場所1〜5のうち、指示マーク範囲内に全面積「9」が含まれており、部品面積中の範囲内の面積の割合が「100%」で最も高い場所「1」の部分を選択する。
ここで、記号が特定する画像の部分に対応する3Dモデルの部分を選択する処理について詳しく説明する。指示マーク部分対応抽出部13iは、指示マーク抽出部13dによって記憶された指示マーク情報から指示マークの種別と位置座標を取得し、画像対応抽出部13hによって選択された視点(回転角)の画像に対し、指示マークの範囲内かどうかの判定を行う。
ここで、指示マークの種別が楕円の場合には、指示マークに対応する画像範囲が楕円の範囲内であると判定することができる。例えば、楕円の中心が(cx,cy)、x軸方向の半径、y軸方向の半径がa,bである場合には、(x,y)座標が範囲かどうかの判定は以下の(16)式で行うことができる。
また、指示マークの種別が矢印の場合には、矢印の先の空間を指示マークに対応する画像範囲とすることができる。空間としては円形として、その半径が固定でもよいし、矢印の長さによって変えてもよい。例えば、矢印の先端を(x1,y1)根元を(x2,y2)とした場合には、円の中心座標(cx,cy)、円の半径(r)は以下の(17)〜(19)式で行うことができる。そして、この場合の(x,y)座標が範囲かどうかの判定は以下の(20)式で行うことができる。
上述した判定の結果、指示マーク部分対応抽出部13iは、図35に示すように、指示マークの範囲内の画素に関する情報である指示マーク範囲画素情報を記憶する。図35に示すように、指示マーク部分対応抽出部13iは、指示マーク範囲画素情報として、指示マーク番号、指示マークに含まれる画素のX座標およびY座標、面番号、部品番号、セグメント番号をそれぞれ記憶する。図35は、指示マーク範囲画素情報の一例を示す図である。
ここで、指示マーク部分対応抽出部13iは、レンダリング部13fによって各画素に対応する面番号の配列(図33に例示する面番号情報)が取得されているので、面番号情報を参照して、画素に対応する面番号を取得できる。面番号情報では、対応する面番号が無い場合に−1をセットしているので、値をチェックし、面番号が−1以外の場合には、セグメント情報テーブル(図9参照)で面番号に対応するセグメント番号を取得する。なお、レンダリング部13fが各画素に対応するセグメント番号を設定する場合には、指示マーク部分対応抽出部13iは、直接セグメント番号を取得することができる。
続いて、指示マーク部分対応抽出部13iは、画素に対応する部分の面積を加算する。ここでいう面積とは、各セグメント番号の部分における指示マークに対応する画像範囲に対応する画素数である。また、指示マーク部分対応抽出部13iは、各画素に対応するセグメント番号がわかるため、各セグメント番号に対応する指示マークに対応する画素の個数を取得することができる。また、指示マーク部分対応抽出部13iは、全画素数に関しては、画素情報(図29、図30参照)を参照して、各セグメントに関する画素数を換算することで求める。
そして、指示マーク部分対応抽出部13iは、図36に示すように、指示マークに含まれる部分(セグメント)ごとに、指示マークに含まれる画素数、部分の全画素数、全画素数に対する指示マークに含まれる画素数の割合を記憶する。図36は、画素ヒストグラム情報の一例を示す図である。具体的には、指示マーク部分対応抽出部13iは、指示マーク番号、部品番号、指示マークに含まれる部分のセグメント番号、指示マークに含まれる画素数、部分の全画素数、全画素数に対する指示マークに含まれる画素数の割合をそれぞれ対応付けて記憶する。
そして、指示マーク部分対応抽出部13iは、全画素数に対する指示マークに含まれる画素数の割合が最も高いセグメント番号の部分を選択する。なお、画素数が最も高いセグメント番号の部分を選択してもよい。
部分文書格納部13jは、選択された3Dモデルの部分と部品の画像に関連付けられた文書とを対応付けて部分文書情報記憶領域14dに格納する。具体的には、部分文書格納部13jは、指示マーク番号に対応する文書番号と、文書番号に対応する部分番号と、指示マーク部分対応抽出部13iによって選択された3Dモデルの部分とを対応付けて部分・文書関連付けテーブル(図23参照)に記憶する。
このように、情報提供装置10は、図37に示すように、障害情報などの文書情報中の画像に赤丸などで一部分が指定されている場合には、指定されている部分と3Dモデルのマッチングを行い、向きや位置を推定する。そして、情報提供装置10は、対応する部分だけを文書情報に紐付けてテーブルに記憶する。このため、利用者が明示的にデータベースに登録することなく、部品の部分と関連する文書情報を自動的に検索することができる。図37は、文書中の画像と3Dモデルの部分とをマッチングする処理を説明する図である。
図2の説明に戻って、クエリ取得部13kは、設計中の部品から部分を抽出して部分の特徴量を算出する。具体的には、クエリ取得部13kは、CADを用いて部品の設計中に、検索のキーとなる部品の3Dモデルを取得する。なお、クエリ取得部13kは、CADで部品を一つだけ編集している場合には、その部品の3Dモデルを取得し、複数の部品を編集している場合には、現在選択している部品の3Dモデルを取得する。
クエリ取得部13kは、この部品について、クエリ点情報テーブル(図18参照)およびクエリ・面情報テーブル(図19参照)から点情報および面情報を取得する。そして、クエリ取得部13kは、設計中の部品から部分を抽出し、その部分特徴量を抽出する。ここで、設計中の部品から部分を抽出するには、前述したセグメンテーション手法が利用できる。また、同様に、部分特徴量の抽出では、前述した特徴抽出手法が利用できる。ここでは、各部分に対して重複しない番号であるクエリ・セグメント番号を付加し、クエリのすべてのセグメントに対して特徴量を抽出してクエリ・セグメント情報テーブル(図20参照)に記憶させる。
検索部13lは、3Dモデルの部品の部分の特徴量を取得して設計中の3Dモデルとの類似度を算出し、ランキングの評価値を算出し、設計中の3Dモデルの部分に関連する文書情報を検索して表示する。
具体的には、検索部13lは、検索対象となるセグメントと、設計中の3Dモデルの全セグメントとの間で類似度計算を行ってクエリ・セグメント類似度計算テーブルに類似度を記憶させる。検索部13lは、対象となるセグメントが前述のようにすべてのセグメントでもよく、ユーザが意図している部分のみに限定することも可能である。類似度の計算は、上述したベクトル間の距離を計算する手法を利用できる。計算された類似度(距離)の値が小さい方がより類似しているものとする。
そして、検索部13lは、類似度計算した結果について、あらかじめ与えられた閾値以上の類似度(閾値以下の距離)の特徴量を持つ部分を検索する。例えば、検索部13lは、類似度が0.2以下の特徴量を持つ部分を検索する。例えば、検索部13lは、図38に示すように、設計中の3Dモデルの各部分に類似する3Dモデルおよび関連文書を検索し、検索された3Dモデルおよび関連文書のリンク数および参照数を取得する。図38は、検索処理を説明する図である。
なお、検索部13lは、すべてのセグメントに対して処理を行うことも可能だが、ユーザが意図している部分のみに限定してもよい。例えば、現在視点位置から見えている部分のみを対象として検索を行う、または、マウスカーソルの下にある部分のみを対象として検索を行うなどが考えられる。
そして、検索部13lは、検索した結果の部分について、ランキングを行うための評価値を算出する。(21)式に示すように、重み付きの評価値を用いて、評価値を計算し、クエリ・セグメント評価値計算テーブル(図22参照)に記憶させる。ここで、最大距離は、上で言う距離の閾値を利用してもよい。文書数は、同一文書に紐付けられた文書数であり、上の検索でヒットした文書数となる。参照回数は、文書タイトルをクリックして文書が表示された回数であり、文書情報テーブルから取得することができる。なお、ランキング用の評価値としては、距離をそのまま利用してもよい。
その後、検索部13lは、クエリ・セグメント評価値計算テーブルについて、評価値で降順にソートすることで、ランキングを行うことができる。検索部13lは、図39に示すように、ランキングで上位にランクされた文書から順番に、文書タイトルをタスクバー等に表示する。図39は、検索結果の画面表示例を示す図である。
その後、ユーザがその内容に興味を持ち、もっと詳しく知りたいと思った場合は、文書のタイトル部分をクリックすることができる。情報提供装置10、図40に示すように、ユーザの操作を監視し、ユーザがクリックした場合に、元の文書を表示し、同時に文書参照情報テーブルの参照回数を1つ増加させる。ユーザがクリックしなかった場合は、上のランキングの次のデータを表示するようにする。図40は、参照情報が増加する処理を説明する図である。
[情報提供装置による処理]
次に、図41〜図45を用いて、実施例2に係る情報提供装置10による処理を説明する。図41〜図45は、実施例2に係る情報提供装置10の処理動作を示すフローチャートである。
同図に示すように、情報提供装置10は、部品を部分に分割し(ステップS101)、部分から3次元の形状に関する特徴量を抽出する(ステップS102)。そして、情報提供装置10は、画像と指示マークの対応付け処理(後に図42を用いて詳述)を行い(ステップS103)、画像と3Dモデルの位置合わせ処理(後に図43を用いて詳述)を行う(ステップS104)。
そして、情報提供装置10は、指示マークに対応する部分を検出する処理(後に図44を用いて詳述)を行い(ステップS105)、文書と部分を関連付けて保存する(ステップS106)。
ここで、図42を用いて画像と指示マークの対応付け処理について説明する。図42に示すように、情報提供装置10は、部品に関連付けられた文書から画像を抽出し(ステップS201)、指示マーク候補の図形を検出し(ステップS202)、画像と指示マーク候補の位置の判定を行う(ステップS203)。そして、情報提供装置10は、画像に対応する指示マークがある場合には(ステップS204肯定)、指示マークを画像に関連付けて保存する(ステップS205)。
また、情報提供装置10は、画像に対応する指示マークがない場合には(ステップS204否定)、指示マークを画像に関連付けて保存せずに、ステップS206に進む。そして、情報提供装置10は、全ての指示マーク候補を処理したか判定し(ステップS206)、全ての指示マーク候補を処理した場合には(ステップS206肯定)、全ての画像を処理したか判定する(ステップS207)。この結果、情報提供装置10は、全ての画像を処理した場合には(ステップS207肯定)、処理を終了する。
また、情報提供装置10は、全ての指示マーク候補を処理していない場合には(ステップS206否定)、全ての画像を処理していない場合には(ステップS207否定)、S201に戻って処理を繰り返す。
ここで、図43を用いて画像と3Dモデルの位置合わせ処理について説明する。図43に示すように、図43に示すように、情報処理装置10は、画像からエッジを抽出し(ステップS301)、エッジ特徴量を抽出する(ステップS302)。そして、情報処理装置10は、3Dモデルの視点位置を設定し(ステップS303)、3Dモデルをエッジレンダリングし(ステップS304)、3Dモデルの面、セグメンテーションと画素を関連付けて保存する(ステップS305)。
情報処理装置10は、エッジ特徴量を抽出し(ステップS306)、二つのエッジ抽出結果の類似度を計算して保存し(ステップS307)、全ての視点でレンダリングしたか判定する(ステップS308)。この結果、情報処理装置10は、全ての視点でレンダリングした場合には(ステップS308肯定)、一番類似度が高い視点を抽出して(ステップS309)。処理を終了する。また、情報処理装置10は、全ての視点でレンダリングしていない場合には(ステップS308否定)、ステップS303に戻ってステップS303〜S308の処理を繰り返す。
ここで、図44を用いて指示マークに対応する部分を検出する処理について説明する。図44に示すように、情報処理装置10は、指示マークに対応する画像範囲を抽出し(ステップS401)、指示マークに対応する画素の対応するセグメンテーション番号を取得する(ステップS402)。
そして、情報処理装置10は、対応する面があるか判定し(ステップS403)、対応する面がある場合には(ステップS403肯定)、画素に対応する部分の面積を加算する(ステップS404)。続いて、情報処理装置10は、すべての画素をチェックしたか判定し(ステップS405)、すべての画素をチェックした場合に(ステップS405肯定)、一番割合が大きい部分を選択して(ステップS406)、処理を終了する。また、情報処理装置10は、すべての画素をチェックしていない場合に(ステップS405否定)、ステップS402に戻って、処理を繰り返す。
次に、図45を用いて、情報提供装置の検索処理について説明する。図45に示すように、情報提供装置10は、設計中の部品を抽出し(ステップS501)、設計中の部品から部分を抽出し、その部分特徴量を抽出する(ステップS502)。そして、情報提供装置10は、全ての部分を抽出したか判定し(ステップS503)、全ての部分を抽出していない場合には(ステップS503否定)、ステップS501に戻る。
また、情報提供装置10は、全ての部分を抽出した場合には(ステップS503肯定)、データベースから部品の部分特徴量を取得し、類似度を計算する(ステップS504)。そして、情報提供装置10は、類似度が閾値以上であるか判定し(ステップS505)、類似度が閾値以上である場合には(ステップS505肯定)、ランキングの評価値を算出する(ステップS506)。
そして、情報提供装置10は、全ての部品をチェックしたかを判定し(ステップS507)、全ての部品をチェックしていない場合には(ステップS507否定)、ステップS504に戻る。また、情報提供装置10は、全ての部品をチェックした場合には(ステップS507肯定)、ランキングを行い、ランクが高い部分を抽出する(ステップS508)。
そして、情報提供装置10は、文書のタイトルを提示し(ステップS509)、ユーザの入力チェックを行い(ステップS510)、ユーザが文書のタイトルをクリックしたか判定する(ステップS511)。この結果、情報提供装置10は、ユーザが文書のタイトルをクリックしたと判定した場合には(ステップS511肯定)、クリックされたタイトルに対応する文書を提示し(ステップS512)、参照回数を1つ増加する(ステップS513)。
[実施例2の効果]
上述してきたように、情報提供装置10は、3Dモデル情報記憶領域14aに記憶された部品の3Dモデルを部分に分割し、文書情報記憶領域14bに記憶された文書から文書に付加された部品の画像を抽出し、抽出された画像の中から画像の一部分を特定する記号を抽出する。そして、情報提供装置10は、記号が抽出された場合には、記号が特定する画像の部分に対応する3Dモデルの部分を選択し、選択された3Dモデルの部分と部品の画像に関連付けられた文書とを対応付けて部分文書情報記憶領域14dに格納する。このため、情報提供装置10は、3Dモデルの部分と文書とを関連付けて記憶し、利用者が参照したい部品の部分に関する文書を検索できるようして、知識情報の有効活用を効果的に実現することが可能である。
また、実施例2によれば、抽出された指示マークが抽出された場合には、指示マークが特定する画像の部分とモデルの部分との類似度を算出し、類似度に応じて、指示マークが特定する画像の部分に対応する3Dモデルの部分を選択する。このため、指示マークが特定する画像の部分に対応する3Dモデルの部分を適切に選択することが可能である。
また、実施例2によれば、所定の部分に類似する部分を3Dモデル記憶部14aから取得し、取得された部分に関連付けられた文書を部分文書情報記憶部14dから検索するので、部品の部分と関連する文書を適切に検索することが可能である。
また、実施例2によれば、部分文書情報記憶部14dから検索された文書が複数ある場合には、各文書の表示する順番を決めるための評価値を算出し、評価値が高い順に文書を表示する。このため、部品の部分と関連する文書を重要なものから順に表示することが可能である。