(57)【要約】【課題】  予め対象物体の形状データが無くても対象物体の姿勢を推定可能な画像処理方法及び画像処理装置を提供することを課題とする。【解決手段】  対象物体のステレオ画像から対象物体の姿勢を推定する画像処理方法であって、ステレオ画像に基づいて対象物体の形状を示す三次元座標点を求めるステップ（Ｓ２）と、三次元座標点に基づいて対象物体のベクトルを求めるステップ（Ｓ４）と、ベクトルの分散状態に基づいて対象物体の形状に対する主軸を求めるステップ（Ｓ５）と、主軸の位置するベクトルを除去した残りのベクトルを主軸を法線とした平面に投影し、当該投影されたベクトルの分散状態に基づいて対象物体の形状に対する他の主軸を求めるステップ（Ｓ５）とを含むことを特徴とする。【選択図】  図１
2005331285.tif 000002
【特許請求の範囲】
【請求項１】
対象物体のステレオ画像から対象物体の姿勢を推定する画像処理方法であって、
前記ステレオ画像に基づいて前記対象物体の形状を示す三次元座標点を求めるステップと、
前記三次元座標点に基づいて前記対象物体のベクトルを求めるステップと、
前記ベクトルの分散状態に基づいて前記対象物体の形状に対する主軸を求めるステップと、
前記主軸の位置するベクトルを除去した残りのベクトルを前記主軸を法線とした平面に投影し、当該投影されたベクトルの分散状態に基づいて前記対象物体の形状に対する他の主軸を求めるステップと
を含むことを特徴とする画像処理方法。
【請求項２】
対象物体のステレオ画像から対象物体の姿勢を推定する画像処理装置であって、
前記ステレオ画像に基づいて前記対象物体の形状を示す三次元座標点を求める三次元座標処理手段と、
前記三次元座標点に基づいて前記対象物体のベクトルを求めるベクトル処理手段と、
前記ベクトルの分散状態に基づいて前記対象物体の形状に対する主軸を求め、当該主軸の位置するベクトルを除去した残りのベクトルを前記主軸を法線とした平面に投影し、当該投影されたベクトルの分散状態に基づいて前記対象物体の形状に対する他の主軸を求める姿勢推定手段と
を備えることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステレオ画像による画像処理方法及び画像処理装置に関する。
【背景技術】
【０００２】
ステレオカメラで対象物体を撮影し、そのステレオ画像に対して各種画像処理を行い、対象物体の情報を検出する画像処理方法がある。この画像処理方法には、処理装置内に様々な種類の物体の形状を示すデータを予め記憶させておき、そのデータとステレオ画像とに基づいて撮影した対象物体の姿勢を推定する方法がある（特許文献１参照）。
【特許文献１】特開平４−１３０５８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記画像処理方法では、姿勢を推定するために、物体のデータを予め記憶させておかなければならない。そのため、上記画像処理方法では、データの入力やデータを記憶しておくデータベース等が必要となる。また、上記画像処理方法では、データが記憶されていない物体に対しては、その姿勢を推定することができない。
【０００４】
そこで、本発明は、予め対象物体の形状データが無くても対象物体の姿勢を推定可能な画像処理方法及び画像処理装置を提供することを課題とする。
【課題を解決するための手段】
【０００５】
本発明に係る画像処理方法は、対象物体のステレオ画像から対象物体の姿勢を推定する画像処理方法であって、ステレオ画像に基づいて対象物体の形状を示す三次元座標点を求めるステップと、三次元座標点に基づいて対象物体のベクトルを求めるステップと、ベクトルの分散状態に基づいて対象物体の形状に対する主軸を求めるステップと、主軸の位置するベクトルを除去した残りのベクトルを主軸を法線とした平面に投影し、当該投影されたベクトルの分散状態に基づいて対象物体の形状に対する他の主軸を求めるステップとを含むことを特徴とする。
【０００６】
この画像処理方法では、まず、対象物体のステレオ画像から対象物体の形状を示す三次元座標点を求め、この三次元座標点から対象物体の各部での姿勢を示すベクトルを求める。そして、この画像処理方法では、そのベクトルを三次元空間上に配置させ、その三次元空間上のベクトルの分散状態から対象物体の形状に対する主軸を求める。さらに、この画像処理方法では、三次元空間上に配置されているベクトルの中から主軸の位置する方向に存在するベクトルを除去した残りベクトルを、主軸を法線とした平面上に投影する。そして、この画像処理装置では、その平面上のベクトルの分散状態から対象物体の形状に対する他の主軸を求める。この求めた２本の主軸は対象物体の姿勢を表すので、この画像処理方法では、予め対象物体の形状データが無くても、ステレオ画像から対象物体の姿勢を推定することができる。なお、求めた２本の主軸により３本目の主軸も簡単に求めることもできるので、対象物体の姿勢を３本の主軸により表すこともできる。
【０００７】
本発明に係る画像処理装置は、対象物体のステレオ画像から対象物体の姿勢を推定する画像処理装置であって、ステレオ画像に基づいて対象物体の形状を示す三次元座標点を求める三次元座標処理手段と、三次元座標点に基づいて対象物体のベクトルを求めるベクトル処理手段と、ベクトルの分散状態に基づいて対象物体の形状に対する主軸を求め、当該主軸の位置するベクトルを除去した残りのベクトルを主軸を法線とした平面に投影し、当該投影されたベクトルの分散状態に基づいて対象物体の形状に対する他の主軸を求める姿勢推定手段とを備えることを特徴とする。なお、この画像処理装置は、上記画像処理方法と同様の作用効果を有する。
【発明の効果】
【０００８】
本発明によれば、予め対象物体の形状データが無くても対象物体の姿勢を推定することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、本発明に係る画像処理方法及び画像処理装置の実施の形態を説明する。
【００１０】
本実施の形態では、本発明を、２台のカメラで三次元物体を撮影し、そのステレオ画像に基づいて物体の形状及び姿勢を推定する画像処理装置に適用する。本実施の形態に係る画像処理装置では、ステレオ画像から対象の三次元物体の姿勢を表す３本の主軸を求め、その３本の主軸を利用して三次元物体の形状として直方体、円柱、球のいずれかの立体に決定する。なお、本実施の形態に係る画像処理装置では、処理結果をモニタに表示出力する態様としているが、その処理結果を工場ラインでの製造ロボットや二足ロボットによる物体の把持等の他の用途に利用してもよい。
【００１１】
図１〜図１３を参照して、画像処理装置１の構成について説明する。図１は、本実施の形態に係る画像処理装置の構成図である。図２は、図１の三次元座標処理部で三次元物体の三次元座標点を求める処理の説明図である。図３は、図１のノイズ除去部のノイズ除去の説明図である。図４は、図１のベクトル処理部でのベクトル生成の説明図である。図５は、図１のベクトル処理部での直線ベクトルに対する重み付けの説明図である。図６は、図１のベクトル処理部での法線ベクトルに対する重み付けの説明図である。図７は、図１の姿勢推定部での第１主軸を求める処理の説明図である。図８は、図１の姿勢推定部で選択した最小の分散領域におけるベクトルの分布を示す図である。図９は、図１の姿勢推定部での第２主軸を求める処理の説明図である。図１０は、図１の姿勢推定部で求めた３本の主軸が示された円柱である。図１１は、図１の出力部での立体形状決定処理の説明図である。図１２は、図１の出力部における立体形状決定処理で用いる（短軸／長軸）と方形度との関係を示す図である。図１３は、画像処理対象の三次元物体とその三次元物体における３本の主軸の例である。
【００１２】
画像処理装置１は、２台のカメラ２，３及びモニタ４が接続されている。画像処理装置１は、２台のカメラ２，３からのステレオ画像に基づいて三次元物体の形状及び姿勢を推定し、その処理結果をモニタ４に表示出力する。そのために、画像処理装置１は、前処理部１０、三次元座標処理手段としての三次元座標処理部１１、ノイズ除去部１２、ベクトル処理手段としてのベクトル処理部１３、姿勢推定手段としての姿勢推定部１４及び出力部１５を備えている。
【００１３】
カメラ２，３は、対象の三次元物体の左右に配置され、同一の三次元物体を撮影するステレオカメラである。カメラ２，３は、アナログカメラでもあるいはデジタルカメラでもよく、アナログカメラの場合には画像処理装置１にアナログ画像を出力し、デジタルカメラの場合には画像処理装置１にデジタル画像を出力する。モニタ４は、液晶モニタでもあるいはＣＲＴ[Cathode Ray Tube]モニタでもよく、画像処理装置１の処理結果を表示出力する。
【００１４】
ちなみに、画像処理装置１は、車自体や車外の物体等の形状や姿勢を推定するために利用される場合がある。例えば、画像処理装置１が車両に搭載される場合には、画像処理装置１が車室内の適宜の位置に設置され、ＣＣＤ［Charge coupled device］カメラからなるカメラ２，３が車両の側面、前面あるいは後面の左右に設置され、液晶モニタからなるモニタ４が車室内のドライバに視認可能な位置（例えば、インストルメントパネル）に取り付けられる。
【００１５】
前処理部１０では、２台のカメラ２，３から、三次元物体を左右から撮影した各ステレオ画像が入力される。前処理部１０では、ステレオ画像がアナログ画像の場合、アナログデータをデジタルデータに変換してデジタル画像とする。そして、前処理部１０では、デジタルデータからなるステレオ画像に対してカメラキャリブレーションを行い、さらに、左右のステレオ画像の平行化を行う。
【００１６】
三次元座標処理部１１では、左右のステレオ画像から撮影した三次元物体の形状を示す三次元座標点群を求める。この際、三次元座標処理部１１では、エッジ復元とテクスチャ復元によって三次元座標点データ（座標点群）を取得する。エッジ復元では、三次元物体の輪郭を示すエッジの三次元座標点データが得られる。テクスチャ復元では、三次元物体の表面（模様）を面の連続で仮定したテクスチャの三次元座標点データが得られる。例えば、対象の三次元物体が図２（ａ）に示すような円柱Ｃ（コップ）の場合、円柱Ｃの形状を示す線分としては、２つの円の曲線分ＣＳ，ＣＳ，ＣＳ，ＣＳと２つの円を結ぶ直線分ＳＳ，ＳＳである。円柱Ｃの形状を示す三次元座標点としては、曲線分ＣＳを示す三次元座標点ＴＣ，・・・（図２（ｂ）参照）や直線分ＳＳを示す三次元座標点ＴＣ，・・・（図２（ｃ）参照）である。
【００１７】
ノイズ除去部１２では、エッジ復元による三次元座標点データとテクスチャ復元による三次元座標点データとを比較し、エッジ復元による三次元座標点データ及びテクスチャ復元による三次元座標点データからそれぞれノイズを除去する。具体的な処理としては、ノイズ除去部１２では、エッジ復元による三次元座標点データとテクスチャ復元による三次元座標点データとにおける対応する座標点間の最短距離をそれぞれ計算する。そして、ノイズ除去部１２では、その最短距離が閾値以上か否かを判定する。最短距離が閾値以上の場合、ノイズ除去部１２では、その最短距離を計算した元となるエッジ復元によるデータ及びテクスチャ復元によるデータを除去する。さらに、ノイズ除去部１２では、テクスチャ復元の三次元座標点データに対しては、ノイズとして除去されて穴があいた部分にカメラ２，３の光軸方向（すなわち、カメラ２，３の位置と三次元物体の重心とを結ぶ方向）から、除去されたテクスチャ（三次元座標点データ）に面を当てはめ、除去されたテクスチャ部分を補完する。このノイズが除去され、補完された三次元座標点データ（座標点群）を用いて、以下の処理を行う。
【００１８】
例えば、対象の三次元物体が図３（ａ）に示すような円柱（コップ）の場合、ノイズ復元によって図３（ｂ）に示すようなエッジの三次元座標点データが得られ、テクスチャ復元によって図３（ｃ）に示すようなテクスチャの三次元座標点データが得られる。この例では、図３（ａ）に示すように、撮影する際にコップの横に画像処理対象以外の直方体状の物体が存在していたとする。エッジ復元の場合、エッジ検出する際の誤検出によるノイズＮ１や画像処理対象以外の物体のノイズＮ２が表れるが、ノイズ除去部１２による処理によりこれらのノイズＮ１，Ｎ２が除去される（図３（ｄ）参照）。テクスチャ復元の場合、コップのような穴のあいた物体をテクスチャ復元するとその穴の部分の形状がノイズＮ３と表れるが、ノイズ除去部１２による処理によりノイズＮ３が除去される（図３（ｅ）参照）。このように、ノイズ除去部１２では、ノイズ復元による三次元座標点データとテクスチャ復元による三次元座標点データにおいて異なる部分をノイズとして除去する。
【００１９】
ベクトル処理部１３では、まず、三次元物体の形状を示す三次元座標点ＴＣ，・・・の各座標点を中心として球体を設定する。例えば、図２に示す円柱Ｃの場合、曲線分ＣＳを示す任意の三次元座標点ＴＣ１に対して球体Ｓ１を設定し（図４（ａ）参照）、直線分ＳＳを示す任意の三次元座標点ＴＣ２に対して球体Ｓ２を設定する（図４（ｂ）参照）。この球体は、中心となる三次元座標点との間で２つのベクトルを形成するための２つの三次元座標点を選択するための球体である。したがって、球体表面近傍の２点を選択することによって中心から略等距離に位置する三次元座標点を選択することができる。この球体の半径としては、対象の三次元物体の形状や三次元座標点間隔等を考慮して設定され、中心点の三次元座標点と線分を形成する他の三次元座標点を１０個前後含む半径である。といのうは、三次元座標点データの中にはステレオ画像に混入したノイズ等の影響を受けた三次元座標点が入っている場合があり、中心となる三次元座標点に隣接する三次元座標点や極近傍の三次元座標点がそのノイズ等の影響を受けていると、生成したベクトルが三次元物体の形状を反映していないベクトルとなる場合があるからである。つまり、ある程度離れた三次元座標点間でベクトルを生成することによって、ノイズ等の影響を抑制でき、三次元物体の形状を反映したベクトルを生成できる。
【００２０】
次に、ベクトル処理部１３では、設定した球体の内側でかつ最も球体の表面に近い三次元座標点を選択する。通常、中心となる三次元座標点から三次元座標点列が２方向に分かれており、その２方向の列から三次元座標点を各々選択する。しかし、立方体の頂点等、中心となる三次元座標点から三次元座標点列が３方向以上分かれている場合、２方向単位にグループ分けをし、各グループの２方向の列から三次元座標点を各々選択する。例えば、図４（ａ）の例では球体Ｓ１の表面内側の２つの三次元座標点ＴＣ１１，ＴＣ１２を選択し、図４（ｂ）の例では球体Ｓ２の表面内側の２つの三次元座標点ＴＣ２１，ＴＣ２２を選択する。
【００２１】
次に、ベクトル処理部１３では、中心となる三次元座標点を始点とし、選択した２つの三次元座標点を終点として２つのベクトルを生成する。例えば、図４（ａ）の例では三次元座標点ＴＣ１と三次元座標点ＴＣ１１との間でベクトルＶ１１を生成するとともに三次元座標点ＴＣ１と三次元座標点ＴＣ１２との間でベクトルＶ１２を生成し、図４（ｂ）の例では三次元座標点ＴＣ２と三次元座標点ＴＣ２１との間でベクトルＶ２１を生成するとともに三次元座標点ＴＣ２と三次元座標点ＴＣ２２との間でベクトルＶ２２を生成する。
【００２２】
そして、ベクトル処理部１３では、生成した２つのベクトルが平行か否か（すなわち、２つのベクトルが直線状か否か）を判定する。この平行判定では、中心となる三次元座標点を頂点として２つのベクトルのなす角度が厳密に１８０°の場合のみを平行とするのでなく、１８０°±１〜５°程度の場合も平行と判定する。というのは、カメラ２，３の精度やデジタルデータのステレオ画像の解像度あるいはステレオ画像に混入したノイズの影響等を考慮すると、直線の場合でも２つのベクトルで一直線とならない場合があるからである。例えば、図４（ａ）の例では２つのベクトルＶ１１，Ｖ１２は平行ではないと判定され、図４（ｂ）の例では２つのベクトルＶ２１，Ｖ２２は平行と判定される。ちなみに、２つのベクトルが平行にならないのは、三次元座標点が曲線分を示している場合や方向が異なる２つの直線分の接続点（頂点）あるいは直線分と曲線分との接続点等である。
【００２３】
球体Ｓにおける２つのベクトルが平行と判定した場合、ベクトル処理部１３では、中心の三次元座標点を始点として、その２つのベクトルと重なる直線ベクトルを生成する。例えば、図４（ｂ）の例では２つのベクトルＶ２１、Ｖ２２と重なる直線ベクトルＳＶが生成される。
【００２４】
さらに、ベクトル処理部１３では、処理中の球体に隣接する球体において直線ベクトルを生成しているか否かを判定し、隣接する球体内で直線ベクトルを生成している場合にはこの判定を次に隣接する球体に対しても順次行っていく。この判定は、隣接する球体で法線ベクトルを生成していると判定するまであるいは隣接する球体が存在しなくなるまで、処理中の三次元座標点から判定範囲内に存在する球体に対して順次判定を行う。そして、ベクトル処理部１３では、判定範囲内に存在する球体うち直線ベクトルを生成している球体まで長さに応じて、直線ベクトルに重み付けを行う。重み付け値は、０〜１の間の値とする。すなわち、三次元座標点列が直線を形成しているか否かを検出し、直線を形成している三次元座標点列の長さ分の重み付けを行って直線であることの確度を示す。図５に示すように、隣接する球体Ｓ，・・・で直線ベクトルＳＶ，・・・を生成している場合には、重み付けした直線ベクトルＷＳＶを生成する。このように、隣接する球体Ｓ，・・・と関連付けして重み付けを行うことによって、三次元物体の直線分を示す三次元座標点が一部欠けている場合でもその直線区間を補間することができ、最終的な三次元物体の姿勢の推定精度も向上する。なお、最初に隣接する球体が存在しない場合や最初に隣接する球体で法線ベクトルを生成している場合、処理中の三次元座標点が直線の開始点である。
【００２５】
なお、重み付け処理を行う場合、三次元座標点列において一点毎の球体に対して処理を行ってもよいし、計算量を軽減するために、三次元座標点列において数点置きの球体に対して処理を行ってもよい。また、上記の判定を行う判定範囲は、その長さだけ直線が続けば直線である確度が非常に高く、直線としての重み付け値として１を設定してもよい一定の判定である。また、隣接する球体としては、処理中の三次元座標点の球体に厳密に隣接している球体だけでなく、処理中の三次元座標点から判定範囲内に存在し、処理中の三次元座標点と同一の線分上の球体も含む。
【００２６】
球体Ｓにおける２つのベクトルが平行でないと判定した場合、ベクトル処理部１３では、中心の三次元座標点を始点として、その２つのベクトルで形成される面に対して垂直な法線ベクトルを生成する。例えば、図４（ａ）の例では２つのベクトルＶ１１、Ｖ１２によって面Ｆが形成され、その面Ｆに対して垂直な法線ベクトルＮＶが生成される。
【００２７】
さらに、ベクトル処理部１３では、球体Ｓにおける２つのベクトルのなす角度に基づいて法線ベクトルに重み付けをする。図６（ａ）のマップＭＰに示すように、２つのベクトルのなす角度が９０°の時に重み付け値が最大の１であり、角度が９０°を中心にして重み付け値が減少し、角度が０°及び１８０°で重み付け値が０となる（なお、上記したように、直線と判定する際に１８０°±１〜５°程度を考慮した場合には直線と判定した角度で重み付け値が０となる）。図６（ｂ）に示すように、２つのベクトルで面を形成できる場合、その２つのベクトルのなす角度θに対して、マップＭＰに基づいて法線ベクトルＮＶに重み付け値を設定する。図６（ｃ）に示すように、２つのベクトルで直線を形成できる場合、その２つのベクトルがなす角度が１８０°となり、マップＭＰにおける重み付け値としては０である。
【００２８】
そして、ベクトル処理部１３では、重み付けした直線ベクトル又は法線ベクトルを三次元の単位ベクトル空間に記録する。この際、重み付け値（０〜１）と直線ベクトル又は法線ベクトルのベクトル方向に応じた点が、単位ベクトル空間に配置される。
【００２９】
ベクトル処理部１３では、ノイズ除去部１２でノイズを除去した後の全ての三次元座標点に対して上記の処理を実行し、その実行結果である直線ベクトル及び法線ベクトルからなるベクトル群の情報を単位ベクトル空間に記録する。図７（ａ）には、全ての三次元座標点を処理した後のベクトル群の情報を示す全点が記録された単位ベクトル空間ＶＳを示している。
【００３０】
姿勢推定部１４では、対象の三次元物体の姿勢として３本の主軸を求める。姿勢推定部１４では、単位ベクトル空間ＶＳに記録された全てのベクトルを用いて第１主軸を求め、第１主軸の方向に存在する以外のベクトルを用いて第２主軸を求め、第１主軸及び第２主軸から第３主軸を求める。
【００３１】
第１主軸を求める場合、姿勢推定部１４では、まず、クラスタリングを行うために、６軸クラスを設定する（図７（ｂ）参照）。ちなみに、図７（ｂ）に示す６軸クラスＣ６は、６軸クラスの初期位置であり、６つのクラス軸が（１，０，０）、（−１，０，０）、（０，１，０）、（０，−１，０）、（０，０，１）、（０，０，−１）である。そして，姿勢推定部１４では、単位ベクトル空間に記録されている全点を６軸クラス上に記録する（図７（ｂ）参照）。さらに、姿勢推定部１４では、６軸クラスを３軸クラスに変換し、３軸クラスの各クラス軸に対して単位ベクトル空間の各点（各ベクトル）を配置させる（図７（ｃ）参照）。
【００３２】
次に、姿勢推定部１４では、各クラス軸に対して配置された点群（ベクトル群）の平均と分散を計算する。そして、姿勢推定部１４では、３つのクラス軸に対する分散のうち最も小さい分散を示すクラス軸を選択し、そのクラス軸を主軸と仮定する。図７（ｃ）に示す例では、３軸クラスＣ３の第１クラス軸Ａ１には分散領域ＤＡ１が広がり、第２クラス軸Ａ２には分散領域ＤＡ２が広がり、第３クラス軸Ａ３には分散領域ＤＡ３が広がっている。その３つの分散領域ＤＡ１，ＤＡ２，ＤＡ３では、分散領域ＤＡ２が最も小さく、その分散領域ＤＡ２の第２クラス軸Ａ２が主軸と仮定される。なお、分散領域は、各クラス軸に配置された単位ベクトル空間の点群（直線ベクトル及び法線ベクトルからなるベクトル群）の広がりを示す領域である。
【００３３】
さらに、姿勢推定部１４では、多変量解析によって、主軸と仮定したクラス軸に配置された点群のうち信頼度の高い点のデータを抽出し、そのデータを使って新たに平均を計算する。そして、姿勢推定部１４では、仮定した主軸（クラス軸）に対する回転角度を求め、そのクラス軸から回転角度分回転させた軸を第１主軸として記録する。この第１主軸は、ノイズデータ等の主軸を決定する上で好ましくないデータを除外して求められているので、データとしての信頼度が高く、分散領域の中央付近を通る。なお、データを抽出する際の信頼度としては、ステレオ画像におけるノイズ等を考慮して適宜の値が設定され、例えば、９０％に設定される。図７（ｄ）に示す例では、図７（ｃ）の例で主軸として仮定した第２クラス軸Ａ２に対して回転角度αが求められ、分散領域ＤＡ２の中央付近を通る主軸ＰＡ１が記録される。また、図８には、主軸と仮定されたクラス軸に配置された点群（直線ベクトル及び法線ベクトルからなるベクトル群の情報）の分布ＤＤを示している。分布ＤＤは、両側に広がる斜線部分ＤＤ１，ＤＤ２に信頼度の低いデータが含まれ、その内側の部分ＤＤ３に信頼度の高いデータが含まれる。信頼度の高い部分ＤＤ３のデータで平均を計算した場合にはＤＣ１の値となり、その平均値ＤＣ１は分布ＤＤのデータの集中領域である頂点付近に位置となる。信頼度の低い部分も含む分布ＤＤ全体のデータで平均を計算した場合にはＤＣ２の値となり、その平均値ＤＣ２は分布ＤＤのデータの集中領域である頂点付近から少しずれた位置となる。
【００３４】
そして、姿勢推定部１４では、求めた回転角度が収束角度内か否かを判定する。収束角度内の場合、姿勢推定部１４では、記録されている第１主軸を対象物体の姿勢を示す第１主軸ＰＡ１と決定する（図７（ｄ）参照）。収束角度内でない場合、姿勢推定部１４では、現在の３軸クラスを一定角度回転し、上記した処理により、回転角度及び主軸を再度求める。つまり、回転角度が３軸クラスのうちの分散領域が最も小さいクラス軸に対して収束するまで、３軸クラスを変えて上記処理繰り返し行う。なお、収束角度は、回転角度を収束させるための角度であり、クラス軸に対して分散領域が十分に小さくなったことを示す角度である。また、回転角度を収束させるのは、クラス軸に対する分散領域を極力小さくし、三次元物体の姿勢の推定精度を向上させるためのである。
【００３５】
ちなみに、最小の分散のクラス軸に配置された点群のデータのみで平均を計算するのでなく、３軸クラスに配置された全ての点群（ベクトル群の情報）のデータによって平均を計算した場合、その平均値はクラス軸に広がる分散領域内に位置せず、分散領域外に位置する。その場合、第１主軸を一意に決定することができない。
【００３６】
第１主軸ＰＡ１を求めると、姿勢推定部１４では、単位ベクトル空間ＶＳに記録されているベクトル群の中から第１主軸ＰＡ１の方向に存在するベクトルを除去する。つまり、第１主軸のクラスに属するベクトルを除去する（分散領域ＤＡ２に含まれるベクトルを除去する）（図７（ｃ）参照）。そして、姿勢推定部１４では、第１主軸ＰＡ１を法線としかつ第１主軸ＰＡ１が原点を通る単位ベクトル平面ＶＰに形成し、分散領域ＤＡ２に含まれるベクトル除去後の単位ベクトル空間ＶＳに記録されている残りのベクトルを単位ベクトル平面ＶＰに投影する。図９（ａ）には、除去後の残りのベクトル群の情報を示す全点が記録された単位ベクトル平面ＶＰを示している。
【００３７】
そして、姿勢推定部１４では、残りのベクトル群に対してクラスタリングを行うために、４軸クラスを設定する（図９（ｂ）参照）。ちなみに、図９（ｂ）に示す４軸クラスＣ４は、４軸クラスの初期位置であり、４つのクラス軸が（１，０，０）、（−１，０，０）、（０，０，１）、（０，０，−１）である。そして，姿勢推定部１４では、単位ベクトル平面ＶＰに記録されている全点を４軸クラス上に記録する（図９（ｂ）参照）。さらに、姿勢推定部１４では、４軸クラスを２軸クラスに変換し、２軸クラスの各クラス軸に対して単位ベクトル平面ＶＰの各点（各ベクトル）を配置させる。
【００３８】
次に、姿勢推定部１４では、各クラス軸に対して配置された点群（ベクトル群）の平均と分散を計算する。そして、姿勢推定部１４では、２つのクラス軸に対する分散のうち小さい分散を示すクラス軸を選択し、そのクラス軸を主軸と仮定する。図９（ｃ）に示す例では、２軸クラスＣ２の第１クラス軸Ａ４には分散領域ＤＡ４が広がり、第２クラス軸Ａ５には分散領域ＤＡ５が広がっている。その２つの分散領域ＤＡ４，ＤＡ５では、分散領域ＤＡ５が小さく、その分散領域ＤＡ５の第２クラス軸Ａ５が主軸と仮定される。なお、分散領域は、各クラス軸に配置された単位ベクトル平面ＶＰの点群（直線ベクトル及び法線ベクトルからなるベクトル群）の広がりを示す領域である。
【００３９】
さらに、姿勢推定部１４では、第１主軸を求めた場合と同様に、多変量解析によって、主軸と仮定したクラス軸に配置された点群のうち信頼度の高い点のデータを抽出し、そのデータを使って新たに平均を計算する。そして、姿勢推定部１４では、仮定した主軸（クラス軸）に対する回転角度を求め、そのクラス軸から回転角度分回転させた軸を第２主軸として記録する。この第２主軸も、ノイズデータ等の主軸を決定する上で好ましくないデータを除外して求められているので、データとしての信頼度が高く、分散領域の中央付近を通る。図９（ｄ）に示す例では、図９（ｃ）の例で主軸として仮定した第２クラス軸Ａ５に対して回転角βが求められ、分散領域ＤＡ５の中央付近を通る第２主軸ＰＡ２が記録される。
【００４０】
そして、姿勢推定部１４では、第１主軸を求めた場合と同様に、求めた回転角度が収束角度内か否かを判定する。収束角度内の場合、姿勢推定部１４では、記録されている第２主軸を対象物体の姿勢を示す第２主軸ＰＡ２と決定する（図９（ｄ）参照）。収束角度内でない場合、姿勢推定部１４では、現在の２軸クラスを一定角度回転し、上記した処理により、回転角度及び主軸を再度求める。つまり、回転角度が２軸クラスのうちの分散領域が小さいクラス軸に対して収束するまで、２軸クラスを変えて上記処理繰り返し行う。求められた第１主軸ＰＡ１と第２主軸ＰＡ２とは、互いに直交し、対象の三次元物体の重心で交差する。
【００４１】
第１主軸ＰＡ１及び第２主軸ＰＡ２を求めると、姿勢推定部１４では、第１主軸ＰＡ１と第２主軸ＰＡ２とにそれぞれ直交する軸を求め、この軸を第３主軸ＰＡ３と決定する（図１０参照）。したがって、第１主軸ＰＡ１、第２主軸ＰＡ２と第３主軸ＰＡ３とは、互いに直交するとともに対象の三次元物体の重心で交差し、対象の三次元物体の３方向の姿勢を表す。図１０には、求められた３本の主軸ＰＡ１、ＰＡ２，ＰＡ３によって空間内の姿勢が表された円柱ＣＳがＸＹＺ空間ＸＳ内に配置されており、円柱ＣＳの外形に接する直方体ＲＰも示されている。
【００４２】
なお、クラスタリングとしては、ＮＮ[Nearest Neighbor]法やＫ−ｍｅａｎ法等の適宜の手法を利用する。また、多変量解析としても、適宜の手法を利用する。
【００４３】
出力部１５では、まず、決定した３本の主軸に基づいて、ノイズ除去部１２でノイズを除去した後の三次元座標点を全て回転座標変換する。そして、出力部１５では、その全ての変換座標点をＸＹ平面、ＹＺ平面、ＺＸ平面にそれぞれ投影し、決定した３本の主軸に基づいてＸＹ平面、ＹＺ平面、ＺＸ平面での回転を行う。つまり、３本の主軸をそれぞれ法線とする各平面に三次元座標点をそれぞれ投影する。これにより、対象の三次元物体の正面、側面、上面の各形状がＸＹ平面、ＹＺ平面、ＺＸ平面にそれぞれ投影されることになる。例えば、対象の三次元物体が図１１（ａ）に示す円柱の場合、第１主軸を法線とする平面には円が投影され（図１１（ｂ）参照）、第２主軸を法線とする平面には長方形が投影され（図１１（ｃ）参照）、第３主軸を法線とする平面には長方形が投影される（図１１（ｄ）参照）。
【００４４】
出力部１５では、式（１）により、各平面に投影されている形状の円形度をそれぞれ計算する。円形度は、二次元の形状が円にどの程度近いかを表す指標である。さらに、出力部１５では、式（２）により、各平面に投影されている形状の方形度を計算する。方形度は、二次元の形状が方形かあるいは円形かを判断するための指標である。図１２に示すように、方形度が１を境界にして、方形度が１より大きい形状は楕円（円形）であり、方形度が１より小さい形状は長方形（方形）である。ここでは、方形度が１の場合には長方形とする。特に、楕円の形状の中でも、その形状の（短軸／長軸）が１の楕円は円である。また、長方形の中でも、その形状の（短軸／長軸）が１の長方形は正方形である。なお、ノイズ等を考慮して、（短軸／長軸）が１か否かを判定するのではなく、（短軸／長軸）が０．９〜１等のある程度幅をもたせて円や正方形を判定するほうがよい。
【００４５】
【数１】
2005331285.tif 000003
出力部１５では、３つの平面に投影されている各形状の方形度が１より大きいか否かを判定することにより、その各形状が円形かあるいは方形かをそれぞれ判定する。そして、出力部１５では、円形の個数により対象の三次元物体が直方体、円柱、球のうちのいずれの立体かを判定する。円形の個数が０個の場合、正面、側面、上面から見て全て方形なので、直方体と判定する。円形の個数が１個の場合、正面、側面、上面のうち一面だけが円形なので、円柱と判定する。円形の個数が２個以上の場合、正面、側面、上面のうち少なくとも２面が円形なので、球と判定する。以上の処理により対象の三次元物体の形状を決定することができるが、出力部１５では、ノイズ等の影響を考慮し、更に高精度に形状を決定するために以下の処理を行う。
【００４６】
出力部１５では、円形でないと（直方体又は円柱と）判定した場合、方形と判定した形状についてその形状の（短軸／長軸）が閾値以内かを判定する。球の場合には３つの平面における形状の（短軸／長軸）が全て１となるので（図１２参照）、方向と判定した形状について（短軸／長軸）が１よりある程度小さい閾値で比較することにより球であるか否かを判定する。（短軸／長軸）が閾値以内の場合、出力部１５では、以前に判定した通りに、長方体又は円柱と確定する。（短軸／長軸）が閾値より大きい場合、出力部１５では、直方体又は円柱と判定されている三次元物体の体積を計算するとともに、平面に投影されている形状が円形の長軸（平面に投影されている形状に円形が無い場合には方形の長軸）を直径とした球の体積を計算する。そして、出力部１５では、球の体積が直方体又は円柱の体積より相当大きいか否かを判定する。直方体又は円柱と判定された三次元物体が球であった場合には長軸を直径とした球の体積とその直方体又は円柱と判定された三次元物体の体積とはほぼ等しくなるが、直方体又は円柱と判定された三次元物体が直方体又は円柱であった場合には長軸を直径とした球の体積よりその三次元物体の体積はかなり小さくなる。球の体積が直方体又は円柱の体積より相当大きい場合、出力部１５では、以前に判定した通りに、長方体又は円柱と確定する。球の体積が直方体又は円柱の体積よりあまり大きい場合、出力部１５では、長方体又は円柱と判定していた三次元物体を球と確定する。対象の三次元物体の形状が確定すると、出力部１５では、確定した形状の立体の外形に接する直方体をあてはめ、モニタ４にＸＹＺ空間内に配置させた立体を表示させる（図１０参照）。
【００４７】
図１３には、対象の三次元物体の例を示している。図１３（ａ）に示すように、ノートの場合、３本の主軸を法線とする３平面には全て方形が投影されるので、直方体と判定される。図１３（ｂ）に示すように、紙コップの場合、３本の主軸を法線とする３平面には２つの方形と１つの円形が投影されるので、円柱と判定される。図１３（ｃ）に示すように、コルクボールの場合、３本の主軸を法線とする３平面には全て円形が投影されるので、球と判定される。
【００４８】
図１を参照して、画像処理装置１における動作（画像処理方法）を図１４のフローチャートに沿って説明する。図１４は、本実施の形態に係る画像処理方法を示すフローチャートである。
【００４９】
カメラ２，３では、左右から対象の三次元物体を撮影し、そのステレオ画像を画像処理装置１に出力する。
【００５０】
画像処理装置１では、入力されたステレオ画像がアナログデータの場合にデジタルデータに変換し、デジタルデータからなるステレオ画像に対してカメラキャリブレーションを行い、左右のステレオ画像の平行化を行う（Ｓ１）。
【００５１】
続いて、画像処理装置１では、エッジ復元及びテクスチャ復元により、ステレオ画像から三次元物体の形状を示す三次元座標点データを求める（Ｓ２）（図２（ｂ）、（ｃ）参照）。さらに、画像処理装置１では、エッジ復元による三次元座標点データとテクスチャ復元による三次元座標点データによりノイズを除去する（Ｓ３）（図３参照）。なお、このノイズ除去処理については、後で詳細に説明する。
【００５２】
そして、画像処理装置１では、三次元座標点データの各座標点について直線を形成する座標点に対して直線ベクトルを生成し、曲線等の直線を形成しない座標点に対して法線ベクトルを生成する（Ｓ４）（図４参照）。なお、このベクトル処理については、後で詳細に説明する。
【００５３】
さらに、画像処理装置１では、クラスタリングによって、生成した直線ベクトル及び法線ベクトルの情報から対象の三次元物体の第１主軸及び第２主軸を求め、第１主軸及び第２主軸から第３主軸を求め、三次元物体の姿勢を推定する（Ｓ５）（図７、図９参照）。なお、この姿勢推定処理については、後で詳細に説明する。
【００５４】
三次元物体の姿勢を推定すると、画像処理装置１では、全ての三次元座標点を第１主軸〜第３主軸に基づいて回転座標変換する（Ｓ６）。そして、画像処理装置１では、回転変換された三次元座標点をＸＹ平面、ＹＺ平面、ＺＸ平面に投影し（Ｓ７）、第１主軸〜第３主軸に基づいて各平面での回転を行う（Ｓ８）。つまり、３本の主軸を法線とする各平面に、対象の三次元物体の形状を示す三次元座標点を投影する。
【００５５】
さらに、画像処理装置１では、各平面に投影された形状から対象の三次元物体が直方体、円柱、球のうちのいずれの立体であるかを判定する（Ｓ９）。そして、画像処理装置１では、形状が確定した三次元物体にその外形に接する直方体をあてはめ、モニタ４にＸＹＺ空間内に配置させた三次元物体を表示させる（図１０参照）。なお、この立体形状決定処理については、後で詳細に説明する。
【００５６】
図１を参照して、図１４のフローチャートのノイズ除去処理（Ｓ３）を図１５のフローチャートに沿って詳細に説明する。図１５は、図１４のフローチャートにおけるノイズ除去処理を示すフローチャートである。
【００５７】
画像処理装置１では、エッジ復元により三次元物体のエッジの三次元座標点データ（座標点群）を取得するとともに（Ｓ１０）、テクスチャ復元により三次元物体の表面の三次元座標点データ（座標点群）を取得する（Ｓ１１）。
【００５８】
画像処理装置１では、エッジ復元による三次元座標点群とテクスチャ復元による三次元座標点群とにおける各座標点間の最短距離をそれぞれ計算する（Ｓ１２）。そして、画像処理装置１では、各最短距離が閾値以上か否かを判定し、閾値以上の最短距離となるエッジ復元による三次元座標点データとテクスチャ復元による三次元座標点データを除去する（Ｓ１３）。さらに、画像処理装置１では、テクスチャ復元の三次元座標点データが除去された部分を、カメラ２，３の光軸方向から平面を張り、補完する（Ｓ１４）。
【００５９】
このように、画像処理装置１では、エッジ復元データとテクスチャ復元データとを利用することにより、両者の復元の特性に応じてそれぞれ混入するノイズをそれぞれ除去する。そして、画像処理装置１では、ノイズの影響を極力排除した対象の三次元物体の形状を示す三次元座標点データを用いて姿勢を推定する。
【００６０】
図１を参照して、図１４のフローチャートのベクトル処理（Ｓ４）を図１６のフローチャートに沿って詳細に説明する。図１６は、図１４のフローチャートにおけるベクトル処理を示すフローチャートである。
【００６１】
三次元物体の形状を示す三次元座標点データからノイズのデータを除去すると、画像処理装置１では、まず、全ての三次元座標点データに対してベクトル処理を行ったか否かを判定する（Ｓ２０）。Ｓ２０にて全てのデータに対して処理を行ったと判定した場合、画像処理装置１では、ベクトル処理を終了する。
【００６２】
Ｓ２０にて全てのデータに対して処理を行っていないと判定した場合、画像処理装置１では、データのうちの任意の三次元座標点を選び、その三次元座標点を中心として球体を設定し、三次元座標点を球体で囲む（Ｓ２１）（図４参照）。この球体内には、選んだ三次元座標点を中心として、１０点程度の座標点からなる三次元座標点列が２方向以上存在する。そして、画像処理装置１では、球体内に存在する三次元座標点から球体表面近傍の三次元座標点を２点抽出する（Ｓ２２）（図４参照）。続いて、画像処理装置１では、球体の中心となる三次元座標点と抽出した２点の三次元座標点との間で２つのベクトルを生成する（Ｓ２３）（図４参照）。
【００６３】
画像処理装置１では、球体内に生成した２つのベクトルが平行か否かを判定する（Ｓ２４）（図４参照）。つまり、球体の中心の三次元座標点が直線を形成するための座標点かあるいは直線を形成しない（曲線等を形成するための）座標点かを判定する。Ｓ２４にて２つのベクトルが平行と判定した場合、画像処理装置１では、球体の中心の座標点を直線と判定する。そして、画像処理装置１では、既にベクトル処理が行われている三次元座標点のうちで判定範囲内に存在しかつ処理中の三次元座標点に隣接する三次元座標点を選び、その三次元座標点が直線と判定されているか否かを判定する（Ｓ２５）。Ｓ２５にて直線ではないと判定した場合、画像処理装置１では、処理中の三次元座標点を直線の開始点として記録し（Ｓ２６）、Ｓ２０の処理に戻る。Ｓ２５にて直線と判定した場合、画像処理装置１では、処理中の三次元座標点が直線の終了点か否かを判定する（Ｓ２７）。Ｓ２７にて直線の終了点ではないと判定した場合、画像処理装置１では、処理中の三次元座標点を直線の一部であると記録し（Ｓ２８）、Ｓ２０の処理に戻る。
【００６４】
Ｓ２７にて直線の終了点と判定した場合、画像処理装置１では、直線の開始点と記録されている三次元座標点と処理中の三次元座標点とを結び、直線ベクトルを生成する（Ｓ２９）（図５参照）。この直線ベクトルは、その長さに応じて重み付けされており、長いほど重み付け値が大きい。
【００６５】
Ｓ２４にて２つのベクトルが平行でないと判定した場合、画像処理装置１では、２つのベクトルから法線ベクトルを生成する（Ｓ３０）（図４（ａ）参照）。さらに、画像処理装置１では、２つのベクトルがなす角度に応じて法線ベクトルに重み付けを行う（Ｓ３１）（図６参照）。２つのベクトルのなす角度が９０°に近いほど、直線でない確度が高いので、法線ベクトルの重み付け値が大きい。
【００６６】
直線ベクトル又は法線ベクトルを生成すると、画像処理装置１では、そのベクトルを、ベクトルの方向と重み付け値に応じて単位ベクトル空間に記録し（Ｓ３２）（図７（ａ）参照）、Ｓ２０の処理に戻る。
【００６７】
このように、画像処理装置１では、三次元座標点データの全ての座標点に対してベクトル処理を実行し、直線ベクトルと法線ベクトルを生成する。そして、画像処理装置１では、生成した直線ベクトルと法線ベクトルの情報を全て単位ベクトル空間に記録し、三次元座標点の姿勢を推定するための情報とする。
【００６８】
図１を参照して、図１４のフローチャートの姿勢推定処理（Ｓ５）を図１７のフローチャートに沿って詳細に説明する。図１７は、図１４のフローチャートにおける姿勢推定処理を示すフローチャートである。
【００６９】
全ての三次元座標点データに対してベクトル処理が終了すると、画像処理装置１では、現在の６軸クラスを記録し（Ｓ４０）、単位ベクトル空間に記録されている点群（ベクトル群の情報）を６軸クラスに別ける（Ｓ４１）（図７（ａ）、（ｂ）参照）。そして、画像処理装置１では、６軸クラスを３軸クラスに変換する（Ｓ４２）（図７（ｃ）参照）。そのため、単位ベクトル空間に記録されている点群が、３軸クラスに別けられる。
【００７０】
続いて、画像処理装置１では、３軸クラスの各クラス軸に別けられた各ベクトル群の情報の平均及び分散を計算する（Ｓ４３）。そして、画像処理装置１では、３つのクラスの分散から最も小さい分散のクラスを判定し、その判定したクラス軸を仮の主軸として記録する（Ｓ４３）（図７（ｃ）参照）。さらに、画像処理装置１では、多変量解析を用いて記録したクラス軸に配置されたベクトル群のデータのうち信頼度が９０％のデータを抽出し、その抽出したデータによって新たに平均を計算する（Ｓ４４）（図８参照）。
【００７１】
そして、画像処理装置１では、記録したクラス軸と再計算した平均値によってそのクラス軸（仮の第１主軸）からの回転角度を計算し、クラス軸から回転角度分回転させた軸を第１主軸として記録する（Ｓ４５）（図７（ｄ）参照）。この記録された第１主軸は、クラス軸に配置されたベクトル群のデータの分散領域の略中央を通る軸となる。第１主軸を記録すると、画像処理装置１では、計算した回転角度が収束角度内か否かを判定する（Ｓ４６）。この判定によって、クラス軸に対する分散を極力小さくし、クラス軸に回転角度を収束させる。Ｓ４６にて収束角度内と判定した場合には、画像処理装置１では、記録している第１主軸を三次元物体の姿勢を示す第１主軸と正式に決定する。Ｓ４６にて収束角度内でないと判定した場合、画像処理装置１では、記録している第１主軸及び回転角度を削除し、記録されている３軸クラスを一定角度回転してＳ４０の処理に戻る（Ｓ４７）。
【００７２】
Ｓ４６にて収束角度内と判定した場合、画像処理装置１では、単位ベクトル空間に記録されているベクトル群から、第１主軸のクラスに属するベクトル群を除去する（Ｓ４８）。さらに、画像処理装置１では、単位ベクトル空間に記録されている残りベクトル群を、第１主軸を法線としかつ第１主軸が原点を通る単位ベクトル平面に投影する（Ｓ４９）。
【００７３】
続いて、画像処理装置１では、現在の４軸クラスを記録し（Ｓ５０）、単位ベクトル平面に記録されている点群（ベクトル群の情報）を４軸クラスに別ける（Ｓ５１）（図９（ａ）、（ｂ）参照）。そして、画像処理装置１では、４軸クラスを２軸クラスに変換する（Ｓ５２）。そのため、単位ベクトル平面に記録されている点群が、２軸クラスに別けられる。
【００７４】
続いて、画像処理装置１では、２軸クラスの各クラス軸に別けられた各ベクトル群の情報の平均及び分散を計算する（Ｓ５３）。そして、画像処理装置１では、２つのクラスの分散から小さい分散のクラスを判定し、その判定したクラス軸を仮の主軸として記録する（Ｓ５３）（図９（ｃ）参照）。さらに、画像処理装置１では、多変量解析を用いて記録したクラス軸に配置されたベクトル群のデータのうち信頼度が９０％のデータを抽出し、その抽出したデータによって新たに平均を計算する（Ｓ５４）（図８参照）。
【００７５】
そして、画像処理装置１では、記録したクラス軸と再計算した平均値によってそのクラス軸（仮の第２主軸）からの回転角度を計算し、クラス軸から回転角度分回転させた軸を第２主軸として記録する（Ｓ５５）（図９（ｄ）参照）。第２主軸を記録すると、画像処理装置１では、計算した回転角度が収束角度内か否かを判定する（Ｓ５６）。Ｓ５６にて収束角度内と判定した場合には、画像処理装置１では、記録している第２主軸を三次元物体の姿勢を示す第２主軸と正式に決定する。Ｓ５６にて収束角度内でないと判定した場合、画像処理装置１では、記録している第２主軸及び回転角度を削除し、記録されている２軸クラスを一定角度回転してＳ５０の処理に戻る（Ｓ５７）。
【００７６】
このように、画像処理装置１では、直線ベクトル及び法線ベクトルからなる全てのベクトル群の情報から第１主軸を決定し、第１主軸のクラスの属するベクトルを除いたベクトル群の情報から第２主軸を決定する。さらに、画像処理装置１では、この２本の主軸から第３主軸を決定する。
【００７７】
図１を参照して、図１４のフローチャートの立体形状決定処理（Ｓ９）を図１８のフローチャートに沿って詳細に説明する。図１８は、図１４のフローチャートにおける立体形状決定処理を示すフローチャートである。
【００７８】
画像処理装置１では、ＸＹ平面に投影されている形状の円形度及び方形度を計算し、その方形度により投影されている形状が円形か否かを判定する（Ｓ６０）。また、画像処理装置１では、ＹＺ平面に投影されている形状の円形度及び方形度を計算し、その方形度により投影されている形状が円形か否かを判定する（Ｓ６１）。また、画像処理装置１では、ＺＸ平面に投影されている形状の円形度及び方形度を計算し、その方形度により投影されている形状が円形か否かを判定する（Ｓ６２）。そして、画像処理装置１では、３つの判定において円形と判定した個数（ｉ）をカウントし、その個数によって立体の形状を判定する（Ｓ６３）。画像処理装置１では、円形の個数（ｉ）が０個の場合には直方体と判定し（Ｓ６４）、個数（ｉ）が１個の場合には円柱と判定し（Ｓ６５）、個数（ｉ）が２個以上の場合には球と判定する（Ｓ６６）。
【００７９】
直方体又は円柱と判定した場合、画像処理装置１では、円形でないと判定した形状（方形）の（短軸／長軸）が閾値以内かを判定する（Ｓ６７）。Ｓ６７にて（短軸／長軸）が閾値以内と判定した場合、画像処理装置１では、Ｓ６４にて直方体と判定した三次元物体については直方体と確定し（Ｓ６９）、Ｓ６５にて円柱と判定した三次元物体については円柱と確定する（Ｓ７０）。Ｓ６７にて（短軸／長軸）が閾値より大きいと判定した場合、画像処理装置１では、平面に投影された形状の長軸を直径とした球の体積が直方体又は円柱と判定された三次元物体の体積より相当大きいか否かを判定する（Ｓ６８）。Ｓ６８にて球の体積が三次元物体の体積より相当大きいと判定した場合、画像処理装置１では、Ｓ６４にて直方体と判定した三次元物体については直方体と確定し（Ｓ６９）、Ｓ６５にて円柱と判定した三次元物体については円柱と確定する（Ｓ７０）。Ｓ６８にて球の体積が三次元物体の体積よりあまり大きくないと判定した場合、画像処理装置１では、Ｓ６４にて直方体と判定した三次元物体又はＳ６５にて円柱と判定した三次元物体を球と確定する（Ｓ６６）。
【００８０】
このように、画像処理装置１では、３つの平面に投影された形状が円形かあるいは方形かを判定し、その円形と方形の組み合せによって三次元物体の形状を判定する。さらに、画像処理装置１では、（短軸／長軸）及び体積により判定も加味することにより、更に高精度に三次元物体の形状を判定する。
【００８１】
この画像処理装置１によれば、対象となる三次元物体の形状データを予め保持していなくても、三次元物体の形状を示す三次元座標点群から求めた直線ベクトル又は法線ベクトルにより三次元物体の３方向の主軸を求めることができ、三次元物体の姿勢を推定することができる。そのため、画像処理装置１は、三次元物体のデータを入力する手段や様々な三次元物体のデータを保持するための記憶手段を必要としない。
【００８２】
さらに、画像処理装置１によれば、エッジ復元データとテクスチャ復元データと比較することにより、ノイズを除去でき、三次元物体の姿勢や形状を高精度に推定できる。また、画像処理装置１によれば、全てのベクトルを用いて第１主軸を求めた後に、第１主軸の位置するベクトルを除いた残りのベクトルを用いることにより、第２主軸も求めることができる。その結果、第１主軸及び第２主軸により第３主軸も求めることができ、３本の主軸により三次元物体の姿勢を明確に表すことができる。特に、３本の主軸を求めることにより、正方形に近い三次元物体の場合にはその主軸を正確に求めることができる。また、画像処理装置１によれば、３本の主軸を法線とした３つの平面にそれぞれ投影された各形状が円形かあるいは方形かの組み合せにより、三次元物体の形状を簡単に推定することができる。
【００８３】
以上、本発明に係る実施の形態について説明したが、本発明は上記実施の形態に限定されることなく様々な形態で実施される。
【００８４】
例えば、本実施の形態では画像処理装置での処理結果をモニタに表示出力するように構成したが、工場の製造ロボットや二足ロボット等の他の用途で利用してもよい。
【００８５】
また、本実施の形態では三次元座標点に対して立体を設定し、その立体を利用して直線ベクトル又は法線ベクトルを求める構成としたが、三次元座標点群を用いて別の手法によりベクトルを求めてもよい。
【００８６】
また、本実施の形態では第１主軸及び第２主軸により第３主軸を求める構成としたが、第２主軸の位置する方向のベクトル群を除去した残りのベクトル群により第３主軸を求める構成としてもよい。
【００８７】
また、本実施の形態では３つの平面に投影された形状が円形である個数により長方体、円柱、球と判定した後に、（短軸／長軸）や体積による判定により長方体、円柱、球と確定する構成としたが、３つの平面に投影された形状が円形である個数により長方体、円柱、球と確定するだけでもよい。
【００８８】
また、本実施の形態では三次元座標点群から直線ベクトルあるいは法線ベクトルを直接求める構成としたが、三次元座標点間の関係から三次元物体の形状を構成する線分を求め、この求めた線分から直線ベクトルあるいは法線ベクトルを求める構成としてもよい。
【図面の簡単な説明】
【００８９】
【図１】本実施の形態に係る画像処理装置の構成図である。
【図２】図１の三次元座標処理部で三次元物体の三次元座標点を求める処理の説明図であり、（ａ）が画像処理対象の三次元物体の一例の円柱（コップ）の斜視図であり、（ｂ）が三次元座標処理部で求めた円柱の形状を示す曲線部分の三次元座標点であり、（ｃ）が三次元座標処理部で求めた円柱の形状を示す直線部分の三次元座標点である。
【図３】図１のノイズ除去部のノイズ除去の説明図であり、（ａ）が画像処理対象の三次元物体の一例の円柱（コップ）であり、（ｂ）が（ａ）の円柱に対するエッジ復元を示す図であり、（ｃ）が（ａ）の円柱に対するテクスチャ復元を示す図であり、（ｄ）が（ｂ）のエッジ復元から除去されるノイズ部分を示す図であり、（ｅ）が（ｃ）のテクスチャ復元から除去されるノイズ部分を示す図である。
【図４】図１のベクトル処理部でのベクトル生成の説明図であり、（ａ）が円柱の曲線部分の任意の三次元座標点に対して法線ベクトルを生成する場合であり、（ｂ）が円柱の直線部分の任意の三次元座標点に対して直線ベクトルを生成する場合である。
【図５】図１のベクトル処理部での直線ベクトルに対する重み付けの説明図である。
【図６】図１のベクトル処理部での法線ベクトルに対する重み付けの説明図であり、（ａ）がベクトル間の角度に対する重み付け値を示すマップであり、（ｂ）が２つのベクトルで面を形成する場合であり、（ｃ）が２つのベクトルで直線を形成する場合である。
【図７】図１の姿勢推定部での第１主軸を求める処理の説明図であり、（ａ）が直線ベクトル及び法線ベクトルの情報が記録された単位ベクトル空間であり、（ｂ）が６軸クラスであり、（ｃ）が３軸クラスにおける分散領域であり、（ｄ）が３軸クラスにおける第１主軸である。
【図８】図１の姿勢推定部で選択した最小の分散領域におけるベクトルの分布を示す図である。
【図９】図１の姿勢推定部での第２主軸を求める処理の説明図であり、（ａ）が第１主軸のクラスに属するベクトルを除去した残りのベクトルを投影した単位ベクトル平面であり、（ｂ）が４軸クラスであり、（ｃ）が２軸クラスにおける分散領域であり、（ｄ）が２軸クラスにおける第２主軸である。
【図１０】図１の姿勢推定部で求めた３本の主軸が示された円柱である。
【図１１】図１の出力部での立体形状決定処理の説明図であり、（ａ）が画像処理対象の三次元物体の一例の円柱（コップ）であり、（ｂ）が第１主軸を法線とする平面に対象物体を投影した投影図であり、（ｃ）が第２主軸を法線とする平面に対象物体を投影した投影図であり、（ｄ）が第３主軸を法線とする平面に対象物体を投影した投影図である。
【図１２】図１の出力部おける立体形状決定処理で用いる（短軸／長軸）と方形度との関係を示す図である。
【図１３】画像処理対象の三次元物体とその三次元物体における３本の主軸の例であり、（ａ）がノートの場合であり、（ｂ）が紙コップの場合であり、（ｃ）がコルクボールの場合である。
【図１４】図１の画像処理装置の処理の流れを示すフローチャートである。
【図１５】図１４のフローチャートにおけるノイズ除去処理を示すフローチャートである。
【図１６】図１４のフローチャートにおけるベクトル処理を示すフローチャートである。
【図１７】図１４のフローチャートにおける姿勢推定処理を示すフローチャートである。
【図１８】図１４のフローチャートにおける立体形状決定処理を示すフローチャートである。
【符号の説明】
【００９０】
１…画像処理装置、２，３…カメラ、４…モニタ、１０…前処理部、１１…三次元座標処理部、１２…ノイズ除去部、１３…ベクトル処理部、１４…姿勢推定部、１５…出力部
【図１】
2005331285.tif 000004
【図２】
2005331285.tif 000005
【図３】
2005331285.tif 000006
【図４】
2005331285.tif 000007
【図５】
2005331285.tif 000008
【図６】
2005331285.tif 000009
【図７】
2005331285.tif 000010
【図８】
2005331285.tif 000011
【図９】
2005331285.tif 000012
【図１０】
2005331285.tif 000013
【図１１】
2005331285.tif 000014
【図１２】
2005331285.tif 000015
【図１３】
2005331285.tif 000016
【図１４】
2005331285.tif 000017
【図１５】
2005331285.tif 000018
【図１６】
2005331285.tif 000019
【図１７】
2005331285.tif 000020
【図１８】
2005331285.tif 000021