(57)【要約】【課題】  復元点の信頼度を考慮した処理を高速で行うことができる画像処理装置を提供する。【解決手段】  画像処理装置は、撮像画像を点の集合として三次元空間上に復元し、三次元空間の各ボクセルに含まれる復元点の信頼度の平均値を計算する演算処理ユニットを備えている。各復元点には、確からしさの指標である信頼度が浮動小数点表示で定義されている。演算処理ユニットは、まず復元点の信頼度を３チャネル（０〜２３−１）の整数に変換してバイナリ表示し、この各チャネルの値をＧＰＵのＲＧＢデータチャネルに順次格納すると共に、当該ＧＰＵのＡデータチャネルに１を順次インクリメントして格納する。そして、ＲＧＢＡデータチャネルに格納された信頼度の各データから得られる各復元点の信頼度の平均値を浮動小数点表示に変換する。【選択図】  図４
2008225788.tif 000002
【特許請求の範囲】
【請求項１】
画像情報に基づいて三次元空間上に複数の点を復元し、前記各点に定義された信頼度を用いて所定の処理を行う画像処理装置であって、
前記各点の信頼度を浮動小数点表示から３チャネルのバイナリ表示にそれぞれ変換する数値表現変換手段と、
前記３チャネルのバイナリ表示に変換された各信頼度のデータをＧＰＵのＲＧＢデータチャネルに順次格納するデータ格納手段と、
前記ＲＧＢデータチャネルに格納された各信頼度の統計値を浮動小数点表示に変換する数値表現再変換手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記データ格納手段は、前記各信頼度のデータを前記ＲＧＢデータチャネルに順次格納すると共に、前記点の合計数を前記ＧＰＵのＡチャネルに格納し、
前記数値表現再変換手段は、前記ＲＧＢデータチャネルに格納された前記各信頼度のデータの加算値と前記Ａチャネルに格納された前記点の合計数とに基づいて算出される前記各点の信頼度の平均値を浮動小数点表示に変換することを特徴とする請求項１記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像情報を用いて物体認識等の処理を行う画像処理装置に関するものである。
【背景技術】
【０００２】
従来の画像処理装置としては、例えば非特許文献１に記載されているように、物体の表面形状を点の集合として三次元空間上に復元し、その三次元空間の各ボクセルに点が存在するかどうかを検出するものが知られている。
【非特許文献１】FANG,S. AND CHEN,H.2000.Hardware AcceleratedVoxelization.Computers&Graphics 24,3(June),433-442.
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来技術においては、以下の問題点が存在する。即ち、ノイズ等の影響により誤って復元された点が１つでもボクセルに含まれていると、そのボクセルに対応する位置には、実際には物体が存在していないにも拘わらず、物体が存在していると誤検出されてしまう。そのような不具合を解消するためには、三次元空間上に点を復元するときに、その復元点の確からしさを示す信頼度をそれぞれ定義し、各復元点の信頼度を用いて、実際に物体が存在しているかどうかを判断することが考えられる。しかし、この場合には、全体的な計算量が多くなるため、処理が遅くなってしまう。
【０００４】
本発明の目的は、復元点の信頼度を考慮した処理を高速で行うことができる画像処理装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明は、画像情報に基づいて三次元空間上に複数の点を復元し、各点に定義された信頼度を用いて所定の処理を行う画像処理装置であって、各点の信頼度を浮動小数点表示から３チャネルのバイナリ表示にそれぞれ変換する数値表現変換手段と、３チャネルのバイナリ表示に変換された各信頼度のデータをＧＰＵのＲＧＢデータチャネルに順次格納するデータ格納手段と、ＲＧＢデータチャネルに格納された各信頼度の統計値を浮動小数点表示に変換する数値表現再変換手段とを備えることを特徴とするものである。
【０００６】
三次元空間上に復元された複数の点（復元点）の信頼度を考慮して、例えば物体認識等の処理を行う場合に、復元点の信頼度が浮動小数点表示されていると、従来では浮動小数点を高速で計算できる技術がないため、当該信頼度を用いた計算処理が遅くなってしまう。他方、ＧＰＵ（Graphic Processing Unit）のデータ構造を利用すると、計算処理を高速で行うことが可能となる。そこで、本発明の画像処理装置においては、各復元点の信頼度を浮動小数点表示から３チャネルのバイナリ表示にそれぞれ変換し、その各信頼度のデータをＧＰＵのＲＧＢデータチャネルに順次格納し、このＲＧＢデータチャネルに格納された各信頼度の統計値を浮動小数点表示に変換する。このように浮動小数点表示されている復元点の信頼度をＧＰＵのデータ構造として扱うようにしたので、復元点の信頼度を考慮した処理を高速で行うことができる。
【０００７】
好ましくは、データ格納手段は、各信頼度のデータをＲＧＢデータチャネルに順次格納すると共に、点の合計数をＧＰＵのＡチャネルに格納し、数値表現再変換手段は、ＲＧＢデータチャネルに格納された各信頼度のデータの加算値とＡチャネルに格納された点の合計数とに基づいて算出される各点の信頼度の平均値を浮動小数点表示に変換する。
【０００８】
三次元空間の所定領域内に複数の復元点が存在する場合に、これらの復元点がノイズ等の影響により誤って復元されたものでないかどうかを判断するには、当該所定領域内に含まれる各復元点の信頼度の平均値を求めるのが好適である。この場合、各信頼度の平均値の計算がＧＰＵのデータ構造を用いて行われるので、計算処理の高速化を図りつつ、所定領域内に存在する復元点が正しいかどうかの判定精度を向上させることができる。
【発明の効果】
【０００９】
本発明によれば、復元点の信頼度を考慮した所定の処理を行う場合に、復元点の信頼度が浮動小数点表示で定義されていても、処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明に係わる画像処理装置の好適な実施形態について、図面を参照して詳細に説明する。
【００１１】
図１は、本発明に係わる画像処理装置の一実施形態を示す概略構成図である。同図において、本実施形態の画像処理装置１は、例えば産業用ロボット（図示せず）等に搭載されるものである。
【００１２】
同図において、画像処理装置１は、ロボット前方を撮像するカメラ２，３と、これらのカメラ２，３と接続された演算処理ユニット４とを備えている。カメラ２，３は、例えばＣＣＤカメラであり、異なる２つの視点から対象物Ａを撮像するようにロボットの両眼部（図示せず）に設けられている。カメラ２，３により対象物Ａが撮像されると、その対象物Ａの画像がカメラ２，３の撮像面２ａ，３ａにそれぞれ投影される。
【００１３】
演算処理ユニット４は、カメラ２，３により取得した対象物Ａの撮像画像を入力し、所定の画像処理を行い、ロボット前方に障害物や把持物体等が実際に存在しているかどうかを判定する。演算処理ユニット４による演算処理手順の詳細を図２に示す。
【００１４】
同図において、まず三角測量の原理を利用したステレオ視を用いて、図３（ａ）に示すように、カメラ２，３により撮像された対象物Ａの表面形状（凹凸）を多数の点Ｇの集合として三次元空間上に復元する（手順Ｓ５１）。カメラ２，３の画像面２ａ，３ａにおいて同一の復元点Ｇの対応付けを行うことで、三角測量の原理により奥行きを知ることができる。
【００１５】
このとき、三次元空間上に復元された各点（復元点）Ｇには、上記のステレオ視によって信頼度ｐがそれぞれ定義されている。復元点Ｇの信頼度ｐは、復元点Ｇの確からしさを表す指標となるものである。例えば物体のエッジや文字等のように画像面２ａ，３ａ間で対応のとりやすい点については、復元点Ｇの信頼度ｐが高くなるように定義され、例えば類似の繰り返しパターン等のように画像面２ａ，３ａ間で対応のとりにくい点については、復元点Ｇの信頼度ｐが低くなるように定義される。
【００１６】
続いて、図３（ｂ）に示すように、手順Ｓ５１で得られた全ての復元点Ｇを含む三次元空間を小空間（ボクセル）Ｑに分割する（手順Ｓ５２）。これにより、全ての復元点Ｇは、何れかのボクセルＱに含まれることとなる。
【００１７】
続いて、１つのボクセルＱに含まれる復元点Ｇの信頼度ｐの平均値を計算する（手順Ｓ５３）。この計算処理手順については、後で詳述する。
【００１８】
続いて、手順Ｓ５３で得られた信頼度ｐの平均値データを、ボクセルＱの位置データと共にメモリ（図示せず）に記憶させる（手順Ｓ５４）。
【００１９】
続いて、全てのボクセルＱについて復元点Ｇの信頼度ｐの平均値を計算したかどうかを判断し（手順Ｓ５５）、全ボクセルＱについての信頼度ｐの平均値の計算が未だ終了していないときは、上記の手順Ｓ５３，Ｓ５４を繰り返し実行する。一方、全ボクセルＱについての信頼度ｐの平均値の計算が終了したときは、メモリに記憶された各ボクセルＱにおける復元点Ｇの信頼度ｐの平均値に基づいて、カメラ２，３による撮像範囲内に障害物や把持物体等があるかどうかを判断する。その判断は、具体的には以下のようにして行う。
【００２０】
実際に障害物等が存在する位置では、上記の手順Ｓ５１においてカメラ２，３間で対応のとりやすい復元点Ｇが多くなるため、その位置に対応するボクセルＱに含まれる復元点Ｇの信頼度ｐの平均値が比較的高くなる。しかし、カメラ２，３間で同一の点の対応がうまくとれないと、本来ならば障害物等が存在しない位置に対応するボクセルＱに復元点Ｇがノイズ等として出てくることがあるため、そのボクセルＱに含まれる復元点Ｇの信頼度ｐの平均値は低くなる。
【００２１】
そこで、ボクセルＱに含まれる復元点Ｇの信頼度ｐの平均値が予め設定された閾値よりも高いときは、そのボクセルＱに対応する位置に障害物等が存在するものと判断する。一方、ボクセルＱに含まれる復元点Ｇの信頼度ｐの平均値が予め設定された閾値よりも低いときは、そのボクセルＱに対応する位置には障害物等が存在しないものと判断する。
【００２２】
図４は、上記の手順Ｓ５３において、ボクセルＱに含まれる復元点Ｇの信頼度ｐの平均値を計算する処理手順の詳細を示すフローチャートである。ボクセルＱには、図５に示すように、上記の信頼度ｐが定義された復元点Ｇが含まれている。復元点Ｇの信頼度ｐは、０≦ｐ≦１の範囲内の浮動小数点として表示される。
【００２３】
図４において、まずボクセルＱ内の１つの復元点Ｇを選択し、この復元点Ｇの信頼度ｐを浮動小数点表示から３チャネル（０〜２３−１）の整数に変換する（手順Ｓ６１）。例えば浮動小数点表示された信頼度ｐを０．８６とした場合、その信頼度ｐを３チャネルの整数に変換すると、次のようになる。
ｐ＝０．８６＊（２３−１）≒６
【００２４】
そして、３チャネルの整数に変換された信頼度ｐをバイナリ表示する（手順Ｓ６２）。このとき、３チャネルの整数に変換された信頼度ｐが６である場合には、バイナリ表示すると「１１０」となる。
【００２５】
続いて、３ビットのバイナリ表示に変換された信頼度ｐの各チャネルの値を、ＧＰＵ（Graphic Processing Unit）のＲＧＢデータチャネルに格納すると共に、当該ＧＰＵのＡデータチャネルに１を格納する（手順Ｓ６３）。なお、Ａデータチャネルには、１つのボクセルＱに含まれる復元点Ｇの合計数が格納される。
【００２６】
このとき、バイナリ表示されたデータが上記の「１１０」である場合には、図６（ａ）に示すように、Ｒチャネル、Ｇチャネル、Ｂチャネルには「１」、「１」、「０」がそれぞれ格納され、Ａチャネルには「１」が格納される。
【００２７】
続いて、ボクセルＱに含まれる全ての復元点Ｇについて信頼度ｐのデータをＧＰＵのＲＧＢＡデータチャネルに格納したかどうかを判断し（手順Ｓ６４）、全復元点Ｇについての信頼度のデータの格納が未だ終了していないときは、上記の手順Ｓ６１〜Ｓ６３を復元点Ｇの数だけ繰り返し実行する。
【００２８】
一方、全復元点Ｇについての信頼度ｐのデータの格納が終了したときは、ＲＧＢデータチャネルに格納された信頼度ｐの各データをそれぞれカウントする（手順Ｓ６５）。そして、各復元点Ｇの信頼度ｐの平均値を浮動小数点表示に変換する（手順Ｓ６６）。
【００２９】
ボクセルＱに含まれる複数（ここでは１４５点）の復元点Ｇの信頼度ｐのデータがＲＧＢＡデータチャネルに順次格納されると、ＲＧＢＡデータチャネルの各データとしては、最終的には例えば図６（ｂ）に示すようなものとなる。この場合、各復元点Ｇの信頼度ｐの平均値ｐａを浮動小数点表示させると、次のようになる。
ｐａ＝（２５＊２２＋３７＊２１＋８９＊２０）／（１４５＊（２３−１））
＝０．２６
【００３０】
以上において、手順Ｓ６１，Ｓ６２は、各点の信頼度を浮動小数点表示から３チャネルのバイナリ表示にそれぞれ変換する数値表現変換手段を構成する。手順Ｓ６３〜Ｓ６５は、３チャネルのバイナリ表示に変換された各信頼度のデータをＧＰＵのＲＧＢデータチャネルに順次格納するデータ格納手段を構成する。手順Ｓ６６は、ＲＧＢデータチャネルに格納された各信頼度の統計値を浮動小数点表示に変換する数値表現再変換手段を構成する。
【００３１】
以上のように本実施形態にあっては、各復元点Ｇに浮動小数点表示で定義されている信頼度ｐを３チャネルのバイナリ表示に変換して、ＧＰＵのＲＧＢデータチャネルに順次格納すると共に、ＧＰＵのＡデータチャネルに１を順次インクリメントして格納する。そして、最終的にＲＧＢＡデータチャネルに格納されたデータに基づいて各復元点Ｇの信頼度ｐの平均値を求めると共に、当該平均値を浮動小数点表示に変換する。このように高速演算が可能なＧＰＵのＲＧＢＡデータ構造を用いて、各復元点Ｇの信頼度ｐを加算していくので、ボクセルＱに含まれる各復元点Ｇの信頼度ｐの平均値を求める処理を高速に行うことができる。
【００３２】
そして、そのようなボクセルＱに含まれる各復元点Ｇの信頼度ｐの平均値に基づいて、そのボクセルＱに対応する位置に障害物や把持物体が存在するかどうかを判断するので、ノイズ等の影響により誤って生成された復元点Ｇがあっても、障害物等の存在を精度良く認識することができる。
【００３３】
従って、例えばロボットが移動するときに、ロボットの進路に実際には障害物が無いにも拘わらず、誤って障害物があると認識して、その位置をよけるような移動経路をとるという不具合を防止することができる。また、ロボットが何らかの物体を把持するときに、実際には把持物体が無いにも拘わらず、誤って把持物体があると認識して、それを掴むように動作するという不具合を防止することも可能となる。
【００３４】
なお、本発明は、上記実施形態に限定されるものではない。例えば上記実施形態は、ロボット前方に障害物や把持物体等が存在するかどうかを判断するものであるが、本発明の画像処理装置は、ロボット動作に関する画像処理以外のもの（例えば車両の走行やＣＧ等）にも適用可能である。
【図面の簡単な説明】
【００３５】
【図１】本発明に係わる画像処理装置の一実施形態を示す概略構成図である。
【図２】図１に示した演算処理ユニットによる演算処理手順の詳細を示すフローチャートである。
【図３】図２に示した三次元復元処理及び空間分割処理を概念的に示す図である。
【図４】図２に示した手順Ｓ５３により復元点の信頼度の平均値を計算する処理手順の詳細を示すフローチャートである。
【図５】ボクセルに多数の復元点が含まれている状態を示す概念図である。
【図６】ＧＰＵのＲＧＢＡデータチャネルに順次格納されるデータの一例を示す表である。
【符号の説明】
【００３６】
１…画像処理装置、４…演算処理ユニット（数値表現変換手段、データ格納手段、数値表現再変換手段）、Ｇ…復元点、Ｑ…ボクセル。
【図１】
2008225788.tif 000003
【図２】
2008225788.tif 000004
【図３】
2008225788.tif 000005
【図４】
2008225788.tif 000006
【図５】
2008225788.tif 000007
【図６】
2008225788.tif 000008