[第1実施形態]
第1実施形態について説明する。図1は、実施形態に係る検出装置を適用した検出システムを示す図である。この検出システム50は、検出装置1および照明装置ILを備える。照明装置ILは、対象物OBに照明光L1を照射し、検出装置1は、視点Vp(一視点)から対象物OBを検出する。本実施形態における対象物OBには、照明装置ILによって制御される照明光L1の他に、例えば、室内灯からの光、自然光などの環境光L2が照射される。検出装置1は、例えば撮像装置であり、検出領域(例、視野)内の対象物OBを検出する。検出装置1は、例えば、定点カメラでもよいし、手動または自動で視野を変更可能なカメラでもよく、携帯可能な情報端末(例、スマートフォン、タブレット、カメラ付き携帯電話)でもよい。検出装置1は、対象物OBを検出した結果を使って、対象物OBに関する情報の演算処理を行う。検出装置1は、自端末の演算処理によって、対象物OBの少なくとも一部をモデル化し、モデル情報(モデルデータ、CGデータ)を算出する。上記の演算処理は、例えば、対象物OBの少なくとも一部に関するコンピュータグラフィック処理(CG処理)を含んでもよい。
モデル情報は、例えば、対象物OBの三次元形状を示す形状情報を含む。モデル情報は、対象物OBのテクスチャ情報を含んでもよい。また、例えば、モデル情報は、3次元の点座標、その点座標の関連情報、該点座標及びその関連情報で規定された面のテクスチャ情報、画像全体の照明条件や光源情報などの画像の空間情報、及び形状情報としてのポリゴンデータの少なくとも一つを含む。テクスチャ情報は、例えば、対象物OBの表面の文字や図形、パターン、凹凸を規定する情報、特定の画像、及び色彩(例、有彩色、無彩色)の少なくとも1つの情報を含む。検出装置1は、例えば、視点Vp(例、所定の視点、一視点、単一の視点、1方向)から見た対象物OBを示すモデル情報を算出する。また、例えば、検出装置1は、対象物OBに対して所定の角度における一視点から見た対象物OBを示すモデル情報を算出する。
検出装置1は、例えば、撮像部2Aと、検出部2Bと、情報算出部3と、光源算出部4と、特性算出部5と、確度算出部6と、記憶部7と、通信部8と、制御部9と、本体部10とを備える。本体部10は、例えば、カメラボディ、ケース、筐体などである。検出部2B、情報算出部3、光源算出部4、確度算出部6、及び特性算出部5は、例えば、本体部10に設けられる。
撮像部2Aは、対象物OBを含む空間の全天画像を撮像する。例えば、撮像部2Aは、全天球カメラであり、全天画像として360°のパノラマ画像を撮像する。全天画像は、撮像部2Aの視点から、この視点を極とする極座標における2つの偏角方向(緯度方向および経度方向)のそれぞれについて360°の範囲を見渡した画像である。撮像部2Aは、例えば、対象物OBおよび照明装置IL(後に図3に示す光源19)を含む空間の全天画像を撮像する。撮像部2Aは、例えば、撮像した全天画像のデータ(全天画像データ)を記憶部7に記憶させる。撮像部2Aは、本体部10に設けられてもよいし、本体部10と別に設けられてもよい。また、検出装置1は撮像部2Aを備えなくてもよく、例えば、検出システム50において検出装置1と別の撮像装置であってもよい。また、以下の説明では、全天画像の撮像範囲は撮像部2Aの視点を中心とする360°の範囲であるものとするが、全天画像の撮像範囲は、例えば、対象物OBを含む範囲であり、撮像部2Aの視点を中心とする球の半分に相当する半球上の範囲(例、180°)以上で360°より小さい範囲であっても良い。
図2は、全天画像を示す概念図である。全天画像Imaは、例えば、水平方向における対象物の周囲を360°の範囲にわたって撮像した画像である。例えば、全天画像Imaは、撮像部2Aの視点とする球(天球)を全方位(経度方向、緯度方向のそれぞれにおいて360°の範囲)にわたって撮像した画像である。図中の符号Im1〜Im5は、それぞれ、対象物の周囲の0°、90°、180°、270°、360°の角度位置である。全天画像Imbは、全天画像Imaにおける0°の角度位置Im1と360°の角度位置Im5とを一致させるように、全天画像Imaを円柱面(円筒面)に投影した画像である。また、全天画像Imcは、全天画像Imbの角度位置Im1〜Im4の鉛直方向の上端が一致し、かつ、全天画像Imbの角度位置Im1〜Im4の鉛直方向の下端が一致するように、全天画像Imbを球面に投影した画像である。
図1の説明に戻り、検出部2Bは、例えば、視点Vpから対象物OBを光学的に検出する。検出部2Bは、例えば、一視点(視点Vp)から対象物OBを見た画像と、一視点(視点Vp)から対象物OB上の各点までの距離との少なくとも一方を取得する。検出部2Bは、例えば、所定の視角で対象物OBを検出してもよい。検出部2Bは、例えば、所定の視線(例、単一の視線)で対象物OBを検出してもよい。
図3(A)は、検出部2Bの一例を示す図である。検出部2Bは、例えば、撮像部11および測距部12を含む。撮像部11は、視点Vpから対象物OBを撮像して、検出結果として対象物OBの画像データなどを出力する。検出部2Bの検出結果は、例えば、検出した対象物OBの画像データを含む。測距部12は、視点Vp(図1(A)参照)から対象物OB上の各点までの距離を検出する。なお、検出部2Bは、撮像部11または測距部12を含まなくてもよい。例えば、検出システム50は、撮像部11の代わりに撮像部2Aを用いるものでもよい。
撮像部11は、結像光学系13および撮像素子14を備える。結像光学系13は、対象物OBの像を形成する。結像光学系13は、例えば鏡筒内に保持され、鏡筒とともに本体部10(図1参照)に取り付けられる。結像光学系13および鏡筒は、例えば交換レンズであり、本体部10から取り外し可能である。結像光学系13および鏡筒は、内蔵レンズでもよく、例えば鏡筒は、本体部10の一部でもよいし、本体部10から取り外し不能でもよい。
撮像素子14は、例えば、複数の画素が二次元的に配列されたCMOSイメージセンサ、あるいはCCDイメージセンサである。撮像素子14は、例えば本体部10に収容される。撮像素子14は、結像光学系13が形成した像を撮像する。撮像素子14の撮像結果(検出結果)は、例えば、各画素の色ごとの階調値の情報(例、RGBデータ)を含む。撮像素子14は、例えば、撮像結果をフルカラー画像のデータ形式で出力する。なお、撮像部11は、例えば、ライトフィールドカメラのように対象物OBからの光線の方向および強度を検出するものでもよい。
測距部12は、対象物OBの表面上の各点からの距離を検出する。測距部12は、例えば、TOF(time of flight)法により距離を検出する。測距部12は、その他の手法で距離を検出するものでもよい。例えば、測距部12は、レーザスキャナを含み、レーザスキャンにより距離を検出するものでもよい。例えば、測距部12は、対象物OBに所定のパターンを投影し、このパターンの検出結果をもとに距離を測定するものでもよい。また、測距部12は、位相差センサを含み、位相差法により距離を検出するものでもよい。また、測距部12は、DFD(depth from defocus)法により距離を検出するものでもよい。DFD法などのように撮像を用いる場合、測距部12は、撮像部11の結像光学系13と撮像素子14との少なくとも一方を用いるものでもよい。
測距部12は、例えば、照射部15、結像光学系16、撮像素子17、及びコントローラ18を備える。照射部15は、対象物OBに赤外光を照射可能である。照射部15は、コントローラ18に制御される。コントローラ18は、照射部15から照射される赤外光の強度を時間変化させる(例、振幅変調する)。結像光学系16は、対象物OBの像を形成する。結像光学系16は、結像光学系13と同様に、交換レンズの少なくとも一部でもよいし、内蔵レンズの少なくとも一部でもよい。撮像素子17は、例えば、CMOSイメージセンサ、あるいはCCDイメージセンサである。撮像素子17は、少なくとも照射部15が照射する光の波長帯に感度を有する。撮像素子17は、例えば、コントローラ18に制御され、対象物OBで反射散乱した赤外光を検出する。例えば、撮像素子17は、結像光学系16が形成した像を撮像する。
コントローラ18は、撮像素子17による検出結果を使って、対象物OBの表面の各点から撮像素子17までの距離(デプス)を検出する。例えば、対象物OBの表面上の点から撮像素子17に入射する光の飛行時間は、この点のデプスに応じて変化する。撮像素子17の出力は飛行時間に応じて変化し、コントローラ18は、例えば、撮像素子17の出力をもとにデプスを算出する。コントローラ18は、例えば、撮像素子17が撮像した画像の一部の領域(例、1画素、複数の画素)ごとにデプスを算出し、この領域の位置とデプスとを関連付けて、デプス情報を算出(生成)する。デプス情報は、例えば、対象物OBの表面上の点の位置と、この点から検出装置1までの距離(デプス、深度)とを関連付けた情報を含む。デプス情報は、例えば、対象物OBにおけるデプスの分布(例、デプスマップ)を示す情報(例、デプス画像)を含む。
次に、図3(B)および図3(C)は、照明装置ILを示す図である。照明装置ILは、対象物OBを含む空間に照明光L1を照射する。照明装置ILは、対象物OBに対する照明光L1の照射方向が可変である。例えば、照明装置ILは、LEDマトリクスのように複数の光源19を備え、複数の光源19のうち点灯する光源を切り替えることによって、照射方向を変化させる。例えば、図3(B)において、照明装置ILは、複数の光源19のうち光源19aが点灯しており、他の光源が消灯している。また、図3(C)において、照明装置ILは、複数の光源19のうち光源19bが点灯しており、他の光源が消灯している。また、例えば、照明装置ILは、照射する照明光L1の点灯及び消灯、照射方向および照度などを制御可能である。
照明装置ILは、例えば、検出装置1の制御部9(図1参照)と有線または無線によって通信可能に接続される。制御部9は、例えば、照明装置ILに対して制御信号を供給し、照明装置ILは、例えば、制御部9からの制御信号に基づいて複数の光源19のそれぞれの点灯、消灯を切り替える。また、制御部9は、例えば、照明光L1の照射と同期して撮像部2Aおよび検出部2Bの撮像部11のそれぞれに撮像を実行させる。制御部9は、例えば、撮像部2Aおよび撮像部11のそれぞれからの撮像画像データと、照明装置ILの照射条件とを関連付けて記憶部7に記憶させる。照明装置ILの照射条件は、例えば、照明光L1の照射方向(例、点灯させた光源の識別情報)を含む。例えば、制御部9は、照明装置ILから照明光L1を照射させない状態で、撮像部2Aおよび撮像部11のそれぞれに対象物OBの撮像を実行させ、撮像画像データを記憶部7に記憶させる。また、制御部9は、照明装置ILから照明光L1を照射された状態で、撮像部2Aおよび撮像部11のそれぞれに対象物OBの撮像を実行させ、撮像画像データと照明光L1を照射した光源の識別情報とを関連付けて記憶部7に記憶させる。なお、照明装置ILは、その位置と姿勢との少なくとも一方を変化させることで、照明光L1の照射方向を変化させるものでもよい。
対象物OBに照射された照明光L1は、例えば、その少なくとも一部が反射して対象物OBから放射される。この反射光L3の光量と照明光L1との比率は、例えば、物体表面の光学特性(反射率、散乱率、吸収率、透過率など)によって変化する。反射光L3は、例えば、正反射成分L3aと散乱成分L3bとを含む。散乱成分L3bは、例えば、物体(例、対象物OB)における照明光L1の入射位置での物体表面の法線方向を中心として、光強度分布がガウス分布などで表される。正反射成分L3aは、例えば、物体における入射位置に対して照明光L1の照射方向と正反射の関係になる方向における光強度が極大となり、散乱成分L3bよりも角度分散が小さい(例、半値幅が小さい)分布である。
物体上の入射位置の周囲の各方向(角度方向)へ向かう反射光L3の強度は、例えば、散乱成分L3bと正反射成分L3aとの比率によって変化する。反射光L3に占める散乱成分L3bの比率は、例えば、物体表面の光学特性(例、散乱率、散乱係数)に応じて変化する。例えば、反射光L3に占める散乱成分L3bの比率は、物体表面が粗い(粗度が高い)場合に高くなり、物体表面が平滑面(例、鏡面)に近い場合に低くなる。撮像部11が撮像した撮像画像における物体表面の明るさは、例えば、照明光L1の照射方向によって変化する。例えば、図3(B)において、正反射成分L3aは撮像部11に入射せず、散乱成分L3bの一部が撮像部11に入射する。また、図3(C)において、正反射成分L3a、及び散乱成分L3bの一部が入射する。例えば、撮像部11が撮像した撮像画像において、物体における照明光L1入射位置に相当する部分の明るさは、図3(C)の場合に図3(B)よりも明るい。
図1の説明に戻り、情報算出部3は、例えば、デジタルシグナルプロセッサ(digital signal processor; DSP)を含む。情報算出部3は、検出部2Bの検出結果(例、デプス情報)を使って、対象物OBの形状情報およびテクスチャ情報の少なくとも一方を算出する。なお、図3(A)の説明では測距部12がデプス情報を生成するものとしたが、情報算出部3は、測距部12が検出したデプスをもとにデプス情報を生成してもよい。
情報算出部3は、例えば、形状情報として、検出部2Bの検出結果をもとに対象物OB上の複数の点の座標を含む点群データを算出する。情報算出部3は、測距部12の検出結果(例、デプス情報)を使って、点群データを算出する(点群データ処理)。例えば、情報算出部3は、デプス情報が示す距離画像(デプス画像)から平面画像への透視変換などにより、点群データを算出する。情報算出部3は、例えば、算出した点群データを記憶部7に記憶させる。なお、情報算出部3は、撮像部11と測距部12とで視野が異なる場合、例えば、測距部12の検出結果を透視変換(射影変換)などによって、撮像部11の視野から対象物OBを検出した結果に変換してもよい。情報算出部3は、例えば、撮像部11の視野と測距部12の視野との位置関係(例、視点の位置、視線の向き)に依存するパラメータを使って、透視変換を実行してもよい。
また、情報算出部3は、形状情報として、検出部2Bの検出結果をもとに対象物OB上の複数の点の座標と複数の点間の連結情報とを含むサーフェス情報を生成する。サーフェス情報は、例えばポリゴンデータ、ベクタデータ、ドローデータなどである。連結情報は、例えば、対象物OBの稜線(例、エッジ)に相当する線の両端の点を互いに関連付ける情報、及び対象物OBの面の輪郭に相当する複数の線を互いに関連付ける情報を含む。情報算出部3は、例えば、点群データに含まれる複数の点から選択される点とその近傍の点との間の面を推定し、点群データを点間の平面情報を持つポリゴンデータに変換する(サーフェス処理)。情報算出部3は、例えば、最小二乗法を用いたアルゴリズムにより、点群データをポリゴンデータへ変換する。このアルゴリズムは、例えば、点群処理ライブラリに公開されているアルゴリズムを適用したものでもよい。情報算出部3は、例えば、算出したサーフェス情報を記憶部7に記憶させる。
光源算出部4は、対象物OBに対する照明光L1の照射方向を変化させて対象物OBを含む空間を撮像した複数の全天画像を用いて、照明光L1の光源情報を算出して推定する。光源情報は、例えば、照明光L1を照射する光源の位置、該光源から対象物へ光が照射される方向(照射方向)、該光源から照射される光の波長、該光源の種類のうち少なくとも1項目の情報を含む。光源算出部4は、例えば、全天画像に写っている照明装置ILの光源19を検出する。例えば、光源算出部4は、撮像部2Aの視点を中心とする球面上に投影した全天画像を用いて、撮像部2Aの視点に対する光源19の方位を検出する。光源算出部4は、例えば、撮像部2Aの視点に対する光源19の方位、及び撮像部2Aの視点の位置情報を用いて、光源19の位置情報を算出する。撮像部2Aの視点の位置情報は、例えば、撮像部2Aの配置によって定まり、予め分かっている情報である。
なお、光源算出部4はランバート反射を仮定したモデル、アルベド(Albedo)推定を含むモデルなどを利用して、光源情報を算出してもよい。例えば、光源算出部4は、撮像部11が撮像した画像の各画素の画素値を用いて、対象物OBからの散乱成分L3b(図3参照)と、対象物OBからの正反射成分L3a(図3参照)とを推定してもよい。また、光源算出部4は、例えば、対象物OBで正反射成分の推定結果、及び形状情報を使って、光源から対象物OBへ光が入射してくる方向を算出してもよい。
光源算出部4は、例えば、照明光L1を環境光L2と分離して照明光L1の光源情報を算出する。例えば、光源算出部4は、照明光L1が照射された状態の全天画像と、照明光L1が照射されていない状態の全天画像とを比較して演算することによって、光源情報を算出する。例えば、光源算出部4は、照明光L1の照射を停止した状態の全天画像と、照明光L1を照射した状態の全天画像とで差分をとることによって、対象物OBに対する照明光L1の影響を抽出(環境光L2の影響を排除)する。この場合、検出装置1は、例えば、対象物OBを暗室などで検出しなくてもよく、簡易に光源情報を取得することができる。光源算出部4は、例えば、算出した光源情報を記憶部7に記憶させる。
光源算出部4は、複数の全天画像から照明光L1の影響を低減した画像を生成してもよい。光源算出部4は、例えば、全天画像から照明光L1の影響を低減した画像のデータを記憶部7に記憶させる。通信部8は、照明光L1が照射されていない状態の全天画像と、全天画像から照明光L1の影響を低減した画像との少なくとも一方を外部へ送信してもよい。このような画像は、例えば、対象物OBの周囲の情報を含んだグローバルイルミネーション情報(シーン情報)であり、モデル化された対象物OBをレンダリングする際の背景などに利用可能である。
特性算出部5は、対象物OBの表面特性情報を算出する。表面特性情報は、例えば、対象物OBの部分ごとの光学特性を含み、光学特性は、反射率、透過率、散乱率、及び吸収率の少なくとも1つを含む。表面特性情報は、例えば、テクスチャ情報の一部であり、テクスチャ情報は、例えば、対象物OBの表面の模様を示すパターン情報、対象物OBを照らす照明光L1の光源情報、及び対象物OBの表面の光学特性を示す表面特性情報の少なくとも1項目の情報を含む。
特性算出部5は、例えば、表面特性情報として、BRDF(Bi-directional Reflectance Distribution Function)とSVBRDF(Spatially Varying Bidirectional Reflectance Distribution Function)との少なくとも一方を算出する。特性算出部5は、光源情報、形状情報、及び照明光L1の照射方向を変化させて対象物OBを撮像した撮像画像を用いて、表面特性情報を算出する。特性算出部5は、対象物OBの部分ごとに、形状情報が示す形状(例、対象物OBの各部の表面における法線方向)、光源情報が示す照明光L1の照射方向、及び照明光L1の照射方向に応じた撮像画像を用いて表面特性情報を算出する。特性算出部5は、例えば、照明光L1の光源情報として光源算出部4の算出結果(例、照明光L1の照射方向)を用いる。特性算出部5は、例えば、形状情報として情報算出部3の算出結果を用いる。特性算出部5は、例えば、照明光L1の照射方向を変化させて対象物OBを撮像した撮像画像として、撮像部11の撮像結果を用いる。撮像部11がライトフィールドカメラのように光線の方向と強度とを検出する場合、照明光L1の照射方向を複数の方向に変化させて各照射方向について撮像を行う場合と比較して、同等の情報を1回の撮像で取得することができる。この場合、例えば、複数の撮像を行う場合と比較して、撮像を行う間に照明装置ILと対象物OBと視点Vpとの相対的な位置ずれの影響を減らすことができる。特性算出部5は、照明光L1の照射方向を変化させて対象物OBを撮像した撮像画像として、撮像部2Aの撮像結果(全天画像)を用いてもよい。特性算出部5は、例えば、照明光L1の照射方向に応じた撮像画像を用いて表面特性情報を算出する。
特性算出部5は、例えば、インバースレンダリングの手法によって表面特性情報を算出する。特性算出部5は、例えば、対象物OBの部分ごとの光学特性を未知数として、光学特性と形状情報と光源情報との関係式を解くことによって、表面特性情報を算出する。例えば、特性算出部5は、インバースレンダリングの基本式からSVBRDFを未知数として立式された関係式を解くことによって、表面特性情報を算出する。ここで、既知材料のBDRFベクトルを下記の式(1)に示すチルダー付きのρjで表す。jは、材料の種類を表す添え字であり、mは材料の種類の数である。例えば、物体を極とする極座標の緯度方向における視点Vpの偏角、緯度方向における光源の偏角、及び経度方向における視点Vpと光源との間の偏角をそれぞれ90段階(例、1°刻み)とし、RGBの各色に対する光学特性を定義する場合、上記のBRDFベクトルは、90×90×90×3次元のベクトルになる。
上記のm個のBRDFベクトルの基底ベクトルKiは、例えば、主成分分析(PCA)によって、下記の式(2)を最小化するベクトルとして求められる。
対象物OBにおいて表面特性情報を算出する対象の部分(以下、算出対象部という)の情報を取得する手法としては、例えば、光源(例、照明光L1)の照射方向を変化させて照射方向ごとに撮像した複数の撮像画像を用いて、算出対象部に相当する同一の画素から画素データ(観測画素データ)を取得する手法である。また、他の手法としては、例えば、1つの照射方向で撮像した撮像画像を用いて、対象物OB上で光学特性(表面特性)が算出対象部と同一とみなせる部分と算出対象部とのそれぞれに相当する画素から複数の画素データ(観測画素データ)を取得する手法である。また、上記の2つの手法を組み合わせる手法も用いられる。撮像画像の領域(例、1画素、複数の画素)に対応する対象物OBの各部分に関して、例えば、光源との位置関係(例、照射方向)は、光源情報によって既知であり、対象物OBの各部分における法線方向は、形状情報によって既知であり、対象物OBの各部分と視点Vpとの位置関係は、形状情報によって既知である。下記の式(3)は、同一の反射特性の観測画素データである。式(3)は、例えば、視点Vpから見た対象物OBの各部分について、対象物OBの各部分と視点Vpとの距離の法線方向に対するコサイン成分、及び対象物OBの各部分と光源との距離法線方向に対するコサイン成分を補正することによって、得られる。
下記の式(4)は、表面特性情報の算出に用いられる式である。式(4)の左辺は、式(3)の観測画素データに相当する。式(4)の右辺の行列は、式(2)に示した基底ベクトルKiを列ベクトルとして、行方向に配列したものである。式(4)は、観測画素の数(左辺のベクトルの要素数)が基底ベクトルの数(右辺の行列の列数)以上であれば、係数Wnのベクトルが求まる。係数Wnのベクトルは、例えば、最小二乗法などの最適化を用いた手法で算出されてもよい。係数Wnのベクトルが求まると、基底ベクトルKiを用いて任意の角度に対するBDRFが算出可能である。
このように、特性算出部5は、例えば、対象物OBの部分ごとの光学特性を未知数として、光学特性と形状情報と光源情報との関係式(例、式(4))を解くことによって、表面特性情報を算出する。特性算出部5は、例えば、算出した表面特性情報を記憶部7に記憶させる。特性算出部5は、例えば、対象物OBのうち第1部分に関して、関係式を解くことによって表面特性情報を算出する。第1部分は、例えば、関係式を解くのに必要な情報(例、観測画素)が充足している部分である。また、特性算出部5は、例えば、対象物OBのうち第1部分と異なる第2部分に関して、関係式による表面特性情報の算出を行わない。第2部分は、例えば、関係式を解くのに必要な情報(例、観測画素の数)が不足している部分である。特性算出部5は、第2部分に関して、第1部分の光学特性を用いた補間によって光学特性を算出してもよい。また、特性算出部5は、関係式を解くのに必要な情報例、観測画素)が得られる照明光L1の照射方向を算出してもよい。
また、確度算出部6は、表面特性情報の確度情報を算出する。確度情報は、例えば、対象物OBを含む領域(例、検出部2の検出領域、視野)の各位置に対する、情報(例、表面特性情報)の信頼度を含む。例えば、確度は、各位置のデータの正確さ(正確度、精度、信頼度)、または不確かさ(曖昧さ、不明瞭さ)を数値化したものであり、確度情報は、複数の位置における光学特性(例、表面特性情報)に関する確度の分布を含む。例えば、確度が高いことは、正確さが高いこと、あるいは不確かさが低いことに相当する。例えば、確度が低いことは、正確さが低いこと、あるいは不確かさが高いことに相当する。
確度算出部6は、例えば、確度情報として、光学特性が関係式(例、式(4))から算出されたか否かを示す情報を算出する。例えば、上記の第1部分に関する表面特性情報は、関係式(例、式(4))から算出されたものであり、上記の第2部分に関する表面特性情報は、関係式(例、式(4))から算出されていない。確度算出部6は、例えば、第1部分の光学特性の確度に対して、第2部分の光学特性の確度を相対的に低くする。この確度情報は、例えば、対象物OBの部分ごとに、表面特性情報の算出に成功したか否かを示す情報でもよい。例えば、確度算出部6は、表面特性情報の算出に成功した部分に関して「1」のフラグを付加し、表面特性情報の算出に失敗した部分に関して「0」のフラグを付加してもよい。また、確度算出部6は、関係式(例、式(4))を解く際の評価関数の値(例、誤差、残差)に応じた確度を算出してもよい。また、特性算出部5は、第2部分に関して、第1部分の光学特性を用いた補間によって光学特性を算出し、確度算出部6は、上記の関係式から算出される光学特性の確度(例、第1部分に関する確度)に対して、補間によって算出される光学特性の確度(例、第2部分に関する確度)を相対的に低くしてもよい。例えば、確度算出部6は、光学特性の補間に用いられた光学特性の確度の相加平均、相乗平均、加重平均などによって、補間で算出された光学特性の確度を算出してもよい。また、確度算出部6は、算出対象の部分の形状情報を用いて、この部分に関する表面特性情報の確度を算出してもよい。例えば、算出対象の部分の接線方向が、算出対象の部分と視点Vpとを結ぶベクトル(視線)と平行に近い場合、この部分の光学特性の確度を低くしてもよい。なお、検出装置1は、表面特性情報の確度情報を算出しなくてもよく、確度算出部6を備えなくてもよい。
記憶部7は、例えばUSBメモリ、メモリカードなどの不揮発性メモリであり、各種情報を記憶する。記憶部7は、検出装置1に内蔵される記憶デバイスを含んでいてもよいし、検出装置1からリリース可能な記憶デバイスを接続可能なポートを含んでいてもよい。
通信部8は、例えば、USBポートあるいはLANポートなどのI/Oポート、電波または赤外線の無線通信を行う通信器のうち少なくとも一つを含む。通信部8は、制御部9に制御され、記憶部7に記憶されている情報を読み出し、読み出した情報を外部装置に送信する。例えば、通信部8は、情報算出部3の算出結果(例、形状情報)と、光源算出部4の算出結果(例、光源情報)と、特性算出部5の算出結果(例、表面特性情報)と、確度算出部6の算出結果(例、確度情報)との少なくとも一部を、外部装置(例、後に図10に示す情報処理装置51)に送信する。また、通信部8は、例えば、外部装置からの指令を含む情報を受信する。通信部8は、受信した情報を記憶部7に記憶させること、受信した情報を制御部9に供給することができる。
制御部9は、例えば、ユーザまたは外部装置からの指令(制御信号)により、検出装置1の各部を制御する。制御部9は、照明装置ILを制御し、照明光L1の照射と同期して、撮像部11による撮像処理、及び検出部2Bによる検出処理を実行させる。この検出処理は、例えば、撮像部11による撮像処理、及び測距部12による距離検出処理を含む。制御部9は、例えば、撮像部11の検出結果の少なくとも一部を記憶部7に記憶させる。制御部9は、例えば、検出部2Bの検出結果の少なくとも一部を記憶部7に記憶させる。制御部9は、例えば、情報算出部3にモデル情報(例、形状情報)を算出させ、情報算出部3が算出したモデル情報の少なくとも一部を記憶部7に記憶させる。制御部9は、例えば、光源算出部4に光源情報を算出させ、光源算出部4が算出した光源情報の少なくとも一部を記憶部7に記憶させる。制御部9は、例えば、特性算出部5に表面特性情報を算出させ、特性算出部5が算出した表面特性情報の少なくとも一部を記憶部7に記憶させる。制御部9は、例えば、確度算出部6に確度情報を算出させ、確度算出部6が算出した確度情報の少なくとも一部を記憶部7に記憶させる。制御部9は、例えば、通信部8を制御し、記憶部7に記憶されている情報の少なくとも一部を外部装置へ送信させる。
また、例えば、検出装置1は、モデル情報の少なくとも一部を、バーコードや2次元コードのようなデジタル情報を入出力できるデジタル装置に出力可能である。このようなデジタル装置は、モデル情報の少なくとも一部を含むデジタル情報をディスプレイや紙などに表示する又は印字することができる。表示された又は印字されたデジタル情報を読み取れるリーダー部(例、光学式リーダー)を備えるリーダー装置は、該リーダー部を介して該デジタル情報を自装置の記憶領域などに入力することができる。また、リーダー装置は、後述のレンダリング処理部を更に備えていてもよい。なお、上記の検出システム50は、上記のデジタル装置やリーダー部を備えるリーダー装置を備える構成であってもよい。また、検出装置1は、上記のデジタル装置やリーダー装置を備える構成であってもよい。検出装置1が上記のデジタル装置を備える場合に、通信部6はモデル情報の少なくとも一部を上記のデジタル装置に送信してもよい。また、上記のデジタル装置は、受信したモデル情報をもとにデジタル情報を生成し、このデジタル情報を紙などの媒体に出力してもよい。
次に、上述の構成の検出装置1の動作に基づき、本実施形態に係る検出方法について説明する。図4は、実施形態に係る検出方法の一例を示すフローチャートである。検出装置1は、ステップS1からステップS5の処理によって、照明光L1の照射方向を変えながら、各照射方向に応じた対象物OBを含む空間の全天画像および一視点から見た対象物OBの撮像画像を取得し、各照射方向に応じた光源情報を算出する。なお、ステップS1の処理に先立ち、撮像部2Aは、照明光L1の照射が停止された状態で対象物OBを含む空間の全天画像を撮像してもよい。
ステップS1において、制御部9は、照明装置ILを制御し、照明光L1の照射方向を設定して照明光L1を照射させる。ステップS2において、撮像部2Aは、照明光L1が照射されている状態の対象物OBを含む空間の全天画像を撮像する。ステップS3において、検出部2Bの撮像部11は、視点Vpから対象物OBを撮像する。ステップS3の処理は、ステップS2の処理と並行して行われてもよいし、ステップS2よりも前に行われてもよい。ステップS4において、光源算出部4は、撮像部11が撮像した全天画像を用いて、光源情報を算出する。
図5は、光源情報の算出処理(図4のステップS4)の例を示すフローチャートである。図5のステップS21において、光源算出部4は、記憶部7から全天画像のデータを取得する。ステップS22において、光源算出部4は、全天画像を球面上の画像(図2参照)に変換する。ステップS23において、光源算出部4は、対象物OBに照射される光(照明光L1、環境光L2)のうち照明光L1を環境光L2と分離して照明光L1の光源情報を得る。例えば、光源算出部4は、照明光L1が照射された状態で撮像された全天画像から、照明光L1が照射されていない状態で撮像された全天画像を差し引くことで、全天画像上の照明光L1を環境光L2と分離する。なお、ステップS22の処理とステップS23の処理は、順番が入れ替えられてもよく、全天画像上の照明光L1を環境光L2と分離した後に、全天画像を球面上の画像に変換してもよい。ステップS24において、光源算出部4は、球面上の全天画像を用いて対象物OBにおける照明光L1の光源情報を算出する。
図4のステップS5において、制御部9は、照明光L1の照射方向を変更するか否かを判定する。制御部9は、例えば、予め定められた複数の照射方向の一部について全天画像の撮像が終了していない場合に、照明光L1の照射方向を変更すると判定する(ステップS5;Yes)。制御部9は、照明光L1の照射方向を変更すると判定した場合(ステップS5;Yes)、ステップS1の処理に戻り、照射方向を次の方向に設定し、ステップS1以降の処理を繰り返し行う。このように、制御部9は、照明光L1の照射方向を切り替えつつ、撮像部2Aは、照射方向ごとに全天画像を撮像し、光源算出部4は、照射方向ごとに光源情報を算出する。なお、ステップS4の処理(光源情報算出処理)は、複数の照射方向のそれぞれについて全天画像を取得した後に行われてもよい。例えば、検出装置1は、ステップS4の処理を除いたステップS1からステップS5の処理を繰り返し行って全天画像のデータを蓄積し、光源算出部4は、蓄積された全天画像のデータを用いて各照射方向の光源情報を順に算出してもよい。ステップS5において、制御部9は、例えば、予め定められた複数の照射方向について全天画像の撮像が終了した場合に、照明光L1の照射方向を変更しないと判定する(ステップS5;No)。
ステップS6において、検出部2Bは、対象物OBを視点Vpから検出する。例えば、制御部9は、対象物OBまでの距離を測距部12に検出させる。測距部12による距離の検出処理は、撮像部2Aによる撮像処理あるいは撮像部11による撮像処理と並行して行われてもよいし、並行しないで行われてもよい。ステップS7において、情報算出部7は、検出部2の検出結果を用いて、視点Vpから見た対象物OBの形状情報を算出する。例えば、情報算出部3は、測距部12の検出結果(例、デプス情報)を用いて点群データを算出し、点群データを用いてサーフェス情報を算出する。
ステップS8において、特性算出部5は、情報算出部3が算出した形状情報、光源算出部4が算出した光源情報、及び照射方向を変えながら対象物OBを撮像した複数の撮像画像を用いて、対象物OBの表面特性情報を算出する。上記の複数の撮像画像は、例えば、ステップS3において撮像部11が撮像した画像であるが、ステップS2において撮像部2Aが撮像した全天画像でもよく、撮像部2Aによる撮像画像(全天画像)と撮像部11による撮像画像とを含んでもよい。
図6は、実施形態に係る表面特性情報の算出処理(ステップS8)の例を示すフローチャートである。ステップS31において、特性算出部5は、対象物OBのうち算出対象の部分を設定する。算出対象の部分は、例えば、撮像画像の1画素または複数の画素でもよいし、点群データに含まれる3つ以上の点を順に結んだ線に囲まれるメッシュ領域でもよいし、サーフェス情報に含まれる3つ以上の線に囲まれる面でもよい。ステップS32において、特性算出部5は、算出対象の部分の形状情報、照明光L1の各照射方向についての光源情報、及び各照射方向に対応する対象物OBの撮像画像(例、撮像部11による撮像画像)を記憶部7から取得する。
ステップ33において、特性算出部5は、関係式(例、上記の式(4))を解く情報が充足しているか否かを判定する。例えば、式(4)について説明したように、特性算出部5は、観測画素の数が基底ベクトルの数以上である場合、関係式を解く情報が充足していると判定する(ステップS33;Yes)。特性算出部5は、関係式を解く情報が充足していると判定した場合(ステップS33;Yes)、ステップS34において、表面特性情報を未知数とする関係式を解く。ステップS35において、特性算出部5は、評価関数を用いて未知数を最適化する。この評価関数は、例えば、上記の関係式の解を用いたレンダリング処理によって得られる対象物OBの画像と、関係式を解く際に使われた撮像画像との差分である。例えば、特性算出部5は、上記の評価関数の値が最少化されるように、未知数を最適化する。
ステップS33において、関係式を解く情報が充足していない(不足する)と判定された場合(ステップS33;No)、又はステップS35の処理の終了後に、ステップS36において、特性算出部5は、次の算出対象の部分があるか否かを判定する。特性算出部5は、例えば、予め定められた部分についてステップS31の処理が完了していない場合、次に算出対象の部分があると判定する(ステップS36;Yes)。特性算出部5は、次に算出対象の部分があると判定した場合(ステップS36;Yes)、ステップS31の処理に戻り、次の算出対象の部分を設定し、ステップS32以降の処理を繰り返し行う。ステップS36において、特性算出部5は、例えば、予め定められた部分についてステップS31の処理が完了した場合、次に算出対象の部分がないと判定し(ステップS36;No)、一連の処理を終了する。
図7は、実施形態に係る表面特性情報の算出処理の他の例を示すフローチャートである。図7の処理において、特性算出部5は、上記の関係式を解くことで得られた光学特性を用いた補間によって、他の部分の光学特性を算出する。図7の処理は、例えば、図6のステップS36の処理の後に行われる。ステップS41において、特性算出部5は、算出対象の部分を設定する。ステップS42において、特性算出部5は、算出対象の部分に関して光学特性を算出済であるか否かを判定する。特性算出部5は、算出対象の部分に関して光学特性を算出済でないと判定した場合(ステップS42;No)、光学特性を補間で算出するか否かを判定する。特性算出部5は、例えば、算出対象の部分の周囲に光学特性が算出された部分が補間を行うことが可能な数だけ存在する場合、光学特性を補間で算出すると判定する(ステップS43;Yes)。特性算出部5は、光学特性を補間で算出すると判定した場合(ステップS43;Yes)、ステップS44において光学特性を補間で算出する。
特性算出部5は、ステップS44の処理後、ステップS32において光学特性が算出済であると判定した場合(ステップS42;No)、又はステップS43において光学特性を補間で算出しないと判定した場合(ステップS43;No)に、ステップS45において次の算出対象の部分があるか否かを判定する。特性算出部5は、例えば、予め定められた部分についてステップS41の処理が完了していない場合、次に算出対象の部分があると判定する(ステップS45;Yes)。特性算出部5は、次に算出対象の部分があると判定した場合(ステップS45;Yes)、ステップS41の処理に戻り、次の算出対象の部分を設定し、ステップS42以降の処理を繰り返し行う。ステップS45において、特性算出部5は、例えば、予め定められた部分についてステップS41の処理が完了した場合、次に算出対象の部分がないと判定し(ステップS45;No)、一連の処理を終了する。
図4のステップS9において、確度算出部6は、表面特性情報の確度情報を算出する。図8は、実施形態に係る確度情報の算出処理(ステップS9)の例を示すフローチャートである。ステップS51において、確度算出部6は、算出対象の部分を設定する。ステップS52において、確度算出部6は、算出対象の部分の光学特性が上記の関係式で算出されたか否かを判定する。例えば、特性算出部5は、関係式を用いた光学特性の算出の成否を示すフラグを生成しておき、確度算出部6は、このフラグを参照してステップS52の判定を行う。特性算出部5は、光学特性が関係式で算出されたと判定した場合(ステップS52;Yes)、ステップS53において、算出対象の部分に関する光学特性の確度を第1値にセットする。第1値は、固定値でもよいし、上記の評価関数の値に応じた値でもよい。
特性算出部5は、光学特性が関係式で算出されていないと判定した場合(ステップS52;No)、ステップS54において、算出対象の部分の光学特性が補間で算出されたか否かを判定する。例えば、特性算出部5は、補間で光学特性を算出したか否かを示すフラグを生成しておき、確度算出部6は、このフラグを参照してステップS54の判定を行う。特性算出部5は、光学特性が補間で算出されたと判定した場合(ステップS54;Yes)、ステップS55において、算出対象の部分に関する光学特性の確度を第2値にセットする。第2値は、固定値でもよいし、補間に用いた光学特性の確度に応じた値(例、相加平均、相乗平均、加重平均)でもよい。第2値は、例えば、第1値に比べて確度が低いことを示す値に設定される。特性算出部5は、光学特性が補間で算出されていないと判定した場合(ステップS54;No)、ステップS56において、算出対象の部分に関する光学特性の確度を第3値にセットする。ステップS56の処理は、例えば、確度情報の算出対象の部分に関して光学特性が「Null」である場合に行われる。第3値は、例えば、第1値、第2値のいずれと比べても確度が低いことを示す値に設定される。第3値は、例えば、光学特性の算出に失敗したことを示すフラグでもよい。例えば、第1値は「1」、第2値は「0.5」、第3値は「0」などでもよい。
確度算出部6は、ステップS53の処理後、ステップS55の処理後、又はステップS57の処理後に、ステップS57において次の算出対象の部分があるか否かを判定する。特性算出部5は、例えば、予め定められた部分についてステップS51の処理が完了していない場合、次に算出対象の部分があると判定する(ステップS57;Yes)。特性算出部5は、次に算出対象の部分があると判定した場合(ステップS57;Yes)、ステップS51の処理に戻り、次の算出対象の部分を設定し、ステップS52以降の処理を繰り返し行う。ステップS57において、特性算出部5は、例えば、予め定められた部分についてステップS51の処理が完了した場合、次に算出対象の部分がないと判定し(ステップS57;No)、一連の処理を終了する。
[第2実施形態]
第2実施形態について説明する。本実施形態において、上述の実施形態と同様の構成については、同じ符号を付してその説明を省略あるいは簡略化する。図9は、実施形態に係る検出装置を適用した検出システムを示す図である。検出システム50は、複数の検出装置(第1検出装置1a、第2検出装置1b)を備える。第1検出装置1aは、視点Vp1から対象物OBを検出し、視点Vp1から見た対象物OBのモデル情報(第1モデル情報)を算出する。第2検出装置1bは、視点Vp1と異なる視点Vp2から対象物OBを検出し、視点Vpから見た対象物OBのモデル情報(第2モデル情報)を算出する。検出システム50は、第1モデル情報と第2モデル情報とを統合する。
第1検出装置1aは、位置算出部31を備える。位置算出部31は、光源情報を用いて、対象物OBと照明光L1の照射方向と視点Vp1との相対的な位置情報を算出する。位置算出部31は、情報算出部3が算出した第1モデル情報と、一視点と異なる視点から対象物OBを検出して得られる形状情報を含む第2モデル情報との統合に用いられる情報として、光源情報を用いて照明光L1の照射方向と対象物OBの位置と一視点との位置との関係を示す位置情報を算出する。第2検出装置1bは、例えば、第1検出装置1aと同様の構成である。第2検出装置1bは、第1検出装置1aと同様に、対象物OBと照明光L1の照射方向と視点Vp2との相対的な位置情報を算出する。
これらの位置情報は、例えば、第1モデル情報と第2モデル情報との統合に用いられる。例えば、第2検出装置1bは、第1検出装置1aと通信可能に接続され、第2モデル情報および位置情報を第1検出装置1aへ送信する。第1検出装置1aの通信部8は、第2検出装置1bから第2モデル情報および位置情報を受信する。第1検出装置1aはモデル統合部32を備え、モデル統合部32は、上記の位置情報を用いて、第1モデル情報と第2モデル情報とを統合する。モデル統合部32は、例えば、第1検出装置1aの位置算出部31が算出した対象物OBと照明光L1の所定の照射方向との関係と、第2検出装置baの位置算出部31が算出した対象物OBと照明光L1の所定の照射方向との関係とが整合するように、第2モデル情報を第1モデル情報と同じ座標系に変換する。モデル統合部32は、例えば、第1モデル情報と、座標変換した第2モデル情報との足し合わせによってモデル情報を統合する。
なお、モデル統合部32は、第1モデル情報が示す形状の特徴点と、第2モデル情報が示す形状の特徴点とのマッチングによって、第1モデル情報と第2モデル情報とを統合してもよい。例えば、モデル統合部32は、第1位置情報と第2位置情報とを用いることで、第1モデル情報における特徴点と類似する第2モデル情報における特徴点を探索する範囲を絞ることができ、処理の負荷を低減することができる。
[第3実施形態]
第3実施形態について説明する。本実施形態において、上述の実施形態と同様の構成については、同じ符号を付してその説明を省略あるいは簡略化する。図10は、本実施形態に係る検出システムを示す図である。検出システム50は、検出装置1と、検出装置1から出力される情報を処理する情報処理装置51と、を備える。情報処理装置51には、例えば、入力装置52および表示装置53が設けられる。
情報処理装置51は、検出装置1との間の通信により、検出装置1から情報を取得する。情報処理装置51は、例えば、検出装置1から取得した情報(例、モデル情報)を使って、レンダリング処理を実行する。例えば、情報処理装置51は、ユーザにより入力装置52に入力された視点の設定情報を元に、この視点から対象物OBを見た推定画像のデータを算出する。情報処理装置51は、例えば、推定画像のデータを表示装置53に供給し、表示装置53に推定画像を表示させる。
入力装置52は、例えば、キーボード、マウス、タッチパネル、加速度センサなどのセンサ、音声入力機、タッチ型ペンなどの少なくとも一つを含む。入力装置52は、情報処理装置51と接続される。入力装置52は、例えばユーザから情報の入力を受け付け、入力された情報を情報処理装置51に供給する。表示装置53は、例えば、液晶ディスプレイ又はタッチパネル型ディスプレイを含み、情報処理装置51と接続されている。表示装置53は、例えば、情報処理装置51から供給される画像データにより、画像(例、レンダリング処理による推定画像)を表示する。
情報処理装置51は、通信部55、記憶部56、レンダリング処理部57、及び制御部58を備える。通信部55は、例えば、USBポート、ネットワークカード、電波または赤外線の無線通信を行う通信器のうち少なくとも一つを含む。通信部55は、検出装置1の通信部8と通信可能である。
記憶部56は、例えば、USBメモリなどの取り外し可能な記憶媒体、外付け型あるいは内蔵型のハードディスクなどの大容量記憶装置を含む。記憶部56は、例えば、通信部55を介して受信した情報の少なくとも一部のデータ、検出装置1を制御する撮像制御プログラム、情報処理装置51の各処理を実行させる処理プログラム、などを記憶する。
レンダリング処理部57は、例えば、グラフィックス プロセッシング ユニット(Graphics Processing Unit; GPU)を含む。なお、レンダリング処理部57は、CPUおよびメモリが画像処理プログラムに従って各処理を実行する態様でもよい。レンダリング処理部57は、例えば、描画処理、テクスチャマッピング処理、シェーディング処理の少なくとも一つの処理を行う。
レンダリング処理部57は、描画処理において、例えば、モデル情報の形状情報に定められた形状を任意の視点から見た推定画像(例、再構築画像)を算出できる。以下の説明において、形状情報が示す形状をモデル形状という。レンダリング処理部57は、例えば、描画処理によって、モデル情報(例、形状情報)からモデル形状(例、推定画像)を再構成できる。レンダリング処理部57は、検出装置1が生成した表面特性情報を用いて、レンダリング処理を行う。レンダリング処理部57は、例えば、算出した推定画像のデータを記憶部56に記憶させる。また、レンダリング処理部57は、テクスチャマッピング処理において、例えば、推定画像上の物体の表面に、モデル情報のテクスチャ情報が示す画像を貼り付けた推定画像を算出できる。レンダリング処理部57は、推定画像上の物体の表面に、対象物OBと別のテクスチャを貼り付けた推定画像を算出することもできる。レンダリング処理部57は、シェーディング処理において、例えば、モデル情報の光源情報が示す光源により形成される陰影を推定画像上の物体に付加した推定画像を算出できる。また、レンダリング処理部57は、シェーディング処理において、例えば、任意の光源により形成される陰影を推定画像上の物体に付加した推定画像を算出できる。
制御部58は、例えば、情報処理装置51の各部、検出装置1、入力装置52、及び表示装置53を制御する。制御部58は、例えば、通信部55を制御し、検出装置1に指令(制御信号)や設定情報を送信させる。制御部58は、例えば、通信部55が検出装置1から受信した情報を、記憶部56に記憶させる。制御部58は、例えば、レンダリング処理部57を制御し、レンダリング処理を実行させる。
なお、検出システム50は、入力装置52を備えなくてもよい。例えば、検出システム50は、各種の指令、情報が通信部8を介して入力される形態でもよい。また、検出システム50は、表示装置53を備えなくてもよい。例えば、検出システム50は、レンダリング処理により生成された推定画像のデータを外部の表示装置へ出力し、この表示装置が推定画像を表示してもよい。また、検出システム50は、図9に示したように複数の検出装置(1a、1b)を備え、情報処理装置Aは、モデル統合部32を備えてもよい。例えば、情報処理装置Aは、第1検出装置1aおよび第2検出装置1bのそれぞれと通信可能に接続され、モデル統合部32は、第1検出装置1aから受信した第1モデル情報と第2検出装置1bから受信した第2モデル情報とを統合してもよい。
上述の実施形態において、情報算出部3、光源算出部4、及び特性算出部5を含む算出部は、例えばコンピュータシステムを含む。この算出部は、記憶部7に記憶されている検出プログラムを読み出し、この検出プログラムに従って各種の処理を実行する。この検出プログラムは、例えば、コンピュータに、対象物を検出した検出結果を用いて、対象物の形状情報を含むモデル情報を算出することと、対象物に対する照明光の照射方向を変化させて対象物を含む空間を撮像した複数の全天画像を用いて、照明光(例、照明光L1)の光源情報を算出することと、光源情報、及び形状情報を用いて対象物の表面特性情報を算出することと、を実行させる。この検出プログラムは、コンピュータ読み取り可能な記憶媒体に記録されて提供されてもよい。
なお、本発明の技術範囲は、上述の実施形態などで説明した態様に限定されるものではない。上述の実施形態などで説明した要件の1つ以上は、省略されることがある。また、上述の実施形態などで説明した要件は、適宜組み合わせることができる。また、法令で許容される限りにおいて、上述の実施形態などで引用した全ての文献の開示を援用して本文の記載の一部とする。