(57)【特許請求の範囲】
【請求項１】
同一の対象物を撮影した複数の入力画像を取得する第１ステップと、
取得した各入力画像を、共通に、複数の小領域に分割する第２ステップと、
分割した各小領域について、各入力画像から基底画像を生成する第３ステップと、
基底画像が生成不能であった小領域について、その近傍小領域における基底画像生成に係る演算値を用いた補間処理によって、基底画像を生成する第４ステップとを備え、
生成した各基底画像を用いて、与えられた光源環境における前記対象物の線形化画像を、生成する
ことを特徴とする画像処理方法。
【請求項２】
請求項１において、
生成された線形化画像を用いて、画像処理を行うステップを備えた
ことを特徴とする画像処理方法。
【請求項３】
請求項２において、
前記画像処理は、対象物の光学特性に基づいた領域分離、対象物識別、対象物３次元位置・形状推定のうちの少なくとも１つの処理を、含む
ことを特徴とする画像処理方法。
【請求項４】
請求項１において、
前記対象物を、光源環境を変化させつつ、撮影し、前記複数の画像を取得する
ことを特徴とする画像処理方法。
【請求項５】
請求項４において、
前記複数の画像において、前記対象物に生じる影の位置が異なるように、光源を制御する
ことを特徴とする画像処理方法。
【請求項６】
請求項１において、
前記対象物を、光源環境の変化を検出したとき、撮影し、前記複数の画像を取得する
ことを特徴とする画像処理方法。
【請求項７】
請求項６において、
前記対象物に生じる影の位置が変化したとき、光源環境が変化したものと検出する
ことを特徴とする画像処理方法。
【請求項８】
請求項１において、
前記第３ステップは、
Ｋ枚の入力画像から、Ｎ（Ｎは正の整数：Ｎ＜Ｋ）枚の基底元画像を選択するステップと、
残り（Ｋ−Ｎ）枚の入力画像について、前記Ｎ枚の基底元画像を用いて、線形化係数組をそれぞれ決定するステップと、
決定した線形化係数組を用いて前記Ｎ枚の基底元画像を線形化し、Ｎ枚の基底画像を生成するステップとを備えた
ことを特徴とする画像処理方法。
【請求項９】
請求項８において、
Ｎは３である
ことを特徴とする画像処理方法。
【請求項１０】
請求項８において、
前記線形化係数組決定ステップにおいて、
当該入力画像から所定数の点をランダムに選択し、この所定数の点から、線形化係数組候補を求めるともに、その確からしさを示す評価指標の値を求める候補算出処理を、繰り返し実行し、
前記評価指標の値が最も確からしい線形化係数組候補を、当該入力画像の線形化係数組として決定する
ことを特徴とする画像処理方法。
【請求項１１】
請求項１０において、
前記候補算出処理は、前記所定数の点の法線方向が互いに異なっているか否かを判断するステップを含み、
繰り返し毎に選択した前記所定数の点が、いずれも、その法線方向が互いに等しいと判断したとき、当該小領域は、基底画像が生成不能と判断する
ことを特徴とする画像処理方法。
【請求項１２】
請求項８において、
前記第４ステップは、
当該小領域の線形化係数組を、その近傍小領域について求められた線形化係数組を用いて、補間するものである
ことを特徴とする画像処理方法。
【請求項１３】
請求項１２において、
補間の際に、各近傍小領域の線形化係数組に係る前記評価指標の値を、加味する
ことを特徴とする画像処理方法。
【請求項１４】
請求項８において、
前記第３ステップは、
前記Ｎ枚の基底画像を用いて、前記入力画像の少なくともいずれか１つと光源環境が共通する線形化画像を生成するステップを含む
ことを特徴とする画像処理方法。
【請求項１５】
請求項１において、
前記第２ステップは、
平行光源とみなせる光の広がりの上限値、光源と対象物との距離、カメラと対象物との距離、およびカメラパラメータのうちの少なくともいずれか１つに基づいて、小領域のサイズを決定する
ことを特徴とする画像処理方法。
【請求項１６】
請求項１において、
基底画像が生成不能の小領域について、前記第４ステップにおける補間処理に代えて、そのサイズを変更し、再度、前記第３ステップを実行する
ことを特徴とする画像処理方法。
【請求項１７】
請求項１において、
基底画像が生成不能の小領域について、前記第４ステップにおける補間処理に代えて、前記小領域の切り出し位置を変更し、再度、前記第３ステップを実行する
ことを特徴とする画像処理方法。
【請求項１８】
請求項１において、
前記複数の入力画像は、光源が複数存在する環境において、撮影されたものである
ことを特徴とする画像処理方法。
【請求項１９】
請求項２において、
前記画像処理は、前記対象物が有する突起物または窪みの位置を推定する処理である
ことを特徴とする画像処理方法。
【請求項２０】
同一の対象物を撮影した複数の入力画像を取得する画像入力部と、
前記画像入力部によって取得された各入力画像を、共通に、複数の小領域に分割する画像領域分割部と、
前記画像領域分割部によって分割された各小領域について、各入力画像から基底画像を生成する小領域合成画像生成部と、
前記小領域合成画像生成部において基底画像が生成不能であった小領域について、その近傍小領域における基底画像生成に係る演算値を用いた補間処理によって、基底画像を生成する画像補間部とを備え、
生成した各基底画像を用いて、与えられた光源環境における前記対象物の線形化画像を、生成する
ことを特徴とする画像処理装置。
【請求項２１】
コンピュータに、画像処理を実行させるプログラムであって、
同一の対象物を撮影した複数の入力画像を、共通に、複数の小領域に分割するステップと、
分割した各小領域について、各入力画像から基底画像を生成するステップと、
基底画像が生成不能であった小領域について、その近傍小領域における基底画像生成に係る演算値を用いた補間処理によって、基底画像を生成するステップと、
生成した各基底画像を用いて、与えられた光源環境における前記対象物の線形化画像を、生成するステップと
をコンピュータに実行させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関し、特に、一般環境で撮影した画像の処理の際に問題となる鏡面反射や影の影響を除去するための技術に関する。
【背景技術】
【０００２】
従来、対象物の位置や姿勢の検出、対象物の認識、対象物の動きの検出等を行うために、カメラを用いる方法が広く用いられている。これは、カメラで撮影された画像に対し、例えばパターンマッチングやオプティカルフロー検出、特徴点抽出といった画像処理を適用することによって実現される。
【０００３】
例えば、カメラ画像から対象物の位置・姿勢を検出するものとして、対象物の３次元形状モデルをステレオカメラの画像に位置合わせして統合するものがあった（例えば、特許文献１）。
【０００４】
しかしながら、上述の特許文献１のような画像処理は、ノイズのない画像に対しては有効であるが、一般環境で撮影された画像に対しては十分な信頼性・精度が得られないといった問題がある（例えば、非特許文献１参照）。この原因は主として、通常の画像処理が拡散反射のみの物体を仮定しているため、鏡面反射の影響により画像データの色情報がカメラ位置によって変化することや、影が生じるために画素値が大幅に変化してしまうことを考慮していないためである。
【０００５】
例えば、家庭内のような実環境では、光源の正反射によって生じる鏡面反射が検出精度や認識率の低下の原因となる。図３７は携帯電話２０１を家庭内で撮影したときの画像を模式的に示す図である。家庭内では通常、１個以上の光源２０２が存在する。そして、光源とカメラが携帯電話２０１の表面に対して正反射の関係を満たすとき、画素値の高い鏡面反射領域２０３が生じる。このため、例えば、図３８に示すパターン画像２０４を用いてパターンマッチングにより携帯電話２０１を検出しようとする場合、鏡面反射領域２０３はパターン画像２０４において対応する領域２０５とは輝度もエッジ情報も大きく異なっている。したがって、検出精度は極端に劣化してしまう。しかも、鏡面反射領域は、カメラ位置によって位置が異なり、また、光源状態によって輝度も変化する。
【０００６】
また、鏡面反射はステレオマッチング処理でも重要な影響を及ぼす。図４０は、図３９に示すように対象物２０７をステレオカメラ２０６Ｌ，２０６Ｒによってそれぞれ撮影したときの画像である。図４０に示すように、光源２０２の影響により、左画像および右画像のいずれにも鏡面反射領域２０３Ｌ，２０３Ｒが生じている。ところが、鏡面反射領域２０３Ｌ，２０３Ｒの位置と色情報はカメラ位置によって異なっているため、左画像と右画像とは全く異なる画像になっている。このことは、ステレオマッチングの精度を劣化させる原因となる。
【０００７】
また、このような問題は、鏡面反射だけでなく、近傍に存在する物体が落とす影（cast shadow）や、対象物の法線方向Ｎと光源方向Ｌとの角度（図４１参照）が９０°以上になるときに生じる影（attached shadow）によっても生じる。図３７のように、携帯電話２０１の近傍に遮蔽物２０８が存在している場合、遮蔽物２０８が作り出す影は携帯電話２０１上に落ち、携帯電話２０１上に影領域２０９が生じる。影領域２０９はパターン画像２０４とは異なる画像であるため、鏡面反射同様に精度を劣化させる原因となる。
【０００８】
このような問題を解決するために、画像処理を行う前処理として、鏡面反射や影領域を補正することが広く行われている。鏡面反射や影領域を推定する手法としては、鏡面反射と拡散反射との偏光特性の違いを利用し、偏光フィルタを用いる第１の従来例（例えば、特許文献２）、対象物を回転させ、マルチスペクトルカメラを利用することによって鏡面反射領域を分離する第２の従来例（例えば、特許文献３）、さらには、様々な方向から光源を当てた対象物の画像を利用し、鏡面反射が生じない理想状態での画像である「線形化画像」を合成し、この線形化画像を利用して鏡面反射や影領域を分離する第３の従来例（例えば、非特許文献２）などがある。
【０００９】
しかしながら、第１の従来例では、カメラに偏光フィルタを取り付ける必要があり、一般のカメラによって実現することは難しい。また、第２の従来例では、対象物を回転テーブルに載せて撮像する必要があるため、家庭内等での利用には不向きである。
【００１０】
一方、第３の従来例は、対象物に照射する光源の位置のみを変化させればよく、しかも、その光源の位置は未知でもかまわないため、家庭内のような一般環境において効果的であると考えられる。
【００１１】
この第３の従来例について説明する。まず、光学現象である拡散反射、鏡面反射および影について、図４２を用いて説明する。
【００１２】
２色性反射モデルを仮定すると、物体の輝度は、拡散反射成分と鏡面反射成分との和として表現される。また、Lambertianモデルによれば、拡散反射成分の画素値Ｉｄ  は、次式で示される。
Ｉｄ  ＝ｎ・ｓ  （式１）
【００１３】
ここで、ｎは物体表面の法線方向Ｎと拡散反射率（albedo）との積であり、ｓは光源方向単位ベクトルと光源照度との積を表す。
【００１４】
また、影は、図４２に示すように、物体の法線が光源方向を向いていないために生じるattached shadowと、他の物体により光が遮蔽されることによって生じるcast shadowの２種類に分けられる。環境光や相互反射の影響がない場合、両者とも輝度は０になる。しかし、(式１)では、attached shadowは負の値となり、cast shadowは正の値となる。
【００１５】
Ｓｈａｓｈｕａは、平行光源および完全拡散反射面を仮定することによって、光源方向の異なる３枚の画像の線形結合により、任意の光源方向の画像を表現できることを示した（非特許文献３参照）。つまり、光源方向の異なる３枚の画像をベクトル表現したものをＩ１  ，Ｉ２  ，Ｉ３  とすると、任意の方向の画像Ｉｋ  は、次式のように線形結合によって表現できる。
Ｉｋ  ＝ｃｋ１Ｉ１  ＋ｃｋ２Ｉ２  ＋ｃｋ３Ｉ３    （式２）
ここで、
ｃｋ  ＝［ｃｋ１  ｃｋ２  ｃｋ３  ］Ｔ  
を画像Ｉｋ  に対する「線形化係数組」と呼ぶ。またこのように、線形和によって作成された画像を「線形化画像」と呼ぶ。
【００１６】
しかし、実画像は影や鏡面反射を含むため、（式２）を満たさない。そこで第３の従来例では、（式２）を満たす拡散反射のみの３枚の画像を作成するために、光源方向の異なる複数枚の画像を撮影し、ＲＡＮＳＡＣ（非特許文献４参照）を利用する。こうして作成した拡散反射のみの画像を「基底画像」と呼ぶ。基底画像をＳｈａｓｈｕａの方法に適用することによって、撮影画像の光源環境に対応する線形化画像を作成することができる。すなわち、線形化画像は次の式で示される。  
ＩｋＬ ＝ｃｋ１Ｉ１Ｂ ＋ｃｋ２Ｉ２Ｂ ＋ｃｋ３Ｉ３Ｂ  （式３）
ただし、ＩｋＬ  は入力画像Ｉｋ  に対応する線形化画像、Ｉ１Ｂ ，Ｉ２Ｂ ，Ｉ３Ｂ  はそれぞれ上述の方法で作成した３枚の基底画像を示す。このようにして生成された線形化画像は、鏡面反射が生じていない、理想状態での画像である。このため、この線形化画像を用いて画像処理を行うことによって、鏡面反射や影の影響を受けない画像処理を実現することができる。
【００１７】
また、第３の従来例では、この線形化画像を利用した、光学特性に基づく領域分割についても示されている。ここで、入力画像Ｉｋ  における画素ｐの画素値をｉｋ（ｐ）、これに対応する線形化画像の画素値をｉｋ（ｐ）Ｌ  とすると、拡散反射、鏡面反射、cast shadowおよびattached shadowは、次の関係式に従って分離できる。図４３はこれを図示したものである。  
拡散反射        if ｜ｉｋ（ｐ）−ｉｋ（ｐ）Ｌ  ｜≦Ｔ・ｉｋ（ｐ）
鏡面反射        if (ｉｋ（ｐ）−ｉｋ（ｐ）Ｌ  ＞Ｔ・ｉｋ（ｐ）) and （ｉｋ（ｐ）Ｌ  ≧０）
cast shadow     if (ｉｋ（ｐ）−ｉｋ（ｐ）Ｌ  ＜−Ｔ・ｉｋ（ｐ）) and （ｉｋ（ｐ） ＜Ｔｓ）
attached shadow if（ｉｋ（ｐ）Ｌ  ＜０） and （ｉｋ（ｐ） ＜Ｔｓ）
（式４）
【特許文献１】特許第２９６１２６４号公報
【特許文献２】特許第３４５９９８１号公報
【特許文献３】特開２００３−８５５３１号公報
【特許文献４】特開２００４−５５０９号公報
【非特許文献１】阪野貴彦、池内克史“移動カメラによる自空間画像を用いた車両からのスペキュラ除去”，情報処理学会  研究報告  ＣＶＩＭ，２００３−ＣＶＩＭ−１４１，ｐｐ．１７−２３，２００３
【非特許文献２】石井育規，福井孝太郎，向川康博，尺長健“光学現象の分類に基づく画像の線形化“，情報処理学会論文誌, vol.44, no. SIG5 (CVIM6), pp.11-21, 2003
【非特許文献３】Shashua A., “Geometry and Photometry in 3D Visual Recognition”, P.D. thesis, Dept. Brain and Cognitive Science, MIT, 1992
【非特許文献４】M. A. Fischler and R. C. Bolles, “Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography”, Communications of the ACM, Volume 24, Issue 6, pp. 381-395
【発明の開示】
【発明が解決しようとする課題】
【００１８】
図４４は第３の従来例を用いて画像処理を行った結果を示す図である。ここでは、入力画像として、平行光源の向きを変化させた２４枚の画像を利用した。同図中、（ａ）は入力画像の一部、（ｂ）は（ａ）の画像を利用して作成した線形化画像である。また（ｃ），（ｄ），（e）は、（ａ）および（ｂ）の画像から（式４）を利用して分離した鏡面反射、cast shadowおよびattached shadowをそれぞれ示している。図４４から分かるように、平行光源については良好な結果が得られる。
【００１９】
これに対して図４５は、点光源の位置を変化させた２４枚の入力画像に対し、同様の処理を行った結果を示す図である。同図中、（ａ）は入力画像の一部、（ｂ）は（ａ）の画像を利用して作成した線形化画像、（ｃ）は（ａ）および（ｂ）の画像から（式４）を利用して分離した鏡面反射を示す。図４５から、平行光源でなく点光源を用いたために、線形化画像の生成に失敗し、この結果、鏡面反射成分が誤って分離されていることが分かる。
【００２０】
一般に、屋外など遮蔽物の存在しない環境では、太陽光は平行光源に近似できることが知られているが、家庭内の光源である電球などの照明器具は平行光源では近似できず、むしろ点光源であることが知られている。このため、平行光源を仮定している第３の従来例の手法を家庭内等にそのまま適応することはできず、家庭内等の一般環境において利用可能にするためには、第３の従来例を、点光源を考慮した手法に拡張することが必須条件である。
【００２１】
また、第３の従来例は、カメラ固定および対象物固定であれば、光源の位置は未知であっても、処理が実現できる。ただし、次の２つの条件が必要である。
○ランダムサンプリングにおいて、処理画像中の拡散反射領域の３点を選択する。
○選択された拡散反射領域の３点の法線方向が異なっている。
ここで、第２の条件について説明する。（式２）から明らかなように、線形化係数組を求めるためには、Ｉ１  ，Ｉ２  ，Ｉ３  が独立であることが条件である。しかし、Ｉ１  ，Ｉ２  ，Ｉ３  の法線方向が全て異なっていない場合、これらの画素値は独立にならない。もし、これらの画素値が独立でない場合、すなわち３画素の法線方向が全て異なっていない場合、（式２）は縮退してしまい、正確な解を求めることはできない。
【００２２】
前記の問題に鑑み、本発明は、平行光源を仮定できないような家庭内等の一般環境においても、線形化画像を生成可能にし、鏡面反射や影の影響を除去できるようにすることを課題とする。
【課題を解決するための手段】
【００２３】
前記の課題を解決するために、本発明は、画像処理として、同一の対象物を撮影した複数の入力画像を、共通に複数の小領域に分割し、各小領域について各入力画像から基底画像を生成し、基底画像が生成不能であった小領域について、その近傍小領域における基底画像生成に係る演算値を用いた補間処理によって基底画像を生成するものであり、生成した各基底画像を用いて、与えられた光源環境における前記対象物の線形化画像を生成するものである。
【００２４】
この発明によると、複数の入力画像は、小領域に分割されるので、平行光源が仮定できないような光源環境で撮影された場合であっても、それぞれの小領域では、平行光源を仮定できるようになり、基底画像を生成可能になる。また、基底画像が生成不能であった小領域についても、その近傍小領域における基底画像生成に係る演算値を用いた補間処理によって、基底画像が生成される。そして、生成した各基底画像を用いて、与えられた光源環境における対象物の線形化画像が生成される。すなわち、家庭内等一般環境においても、線形化画像が生成可能になり、したがって、この線形化画像を用いることによって、鏡面反射や影の影響が除去された画像処理を実現することができる。
【発明の効果】
【００２５】
本発明によると、家庭内のような一般環境において、非常に簡易な構成によって、鏡面反射が生じない理想状態での画像である線形化画像を生成することができる。したがって、画像処理において、従来、問題になっていた鏡面反射や影の影響を除去することができる。さらに、この線形化画像を用いて、画像中の鏡面反射領域や影領域の分離を行うことも可能になる。
【発明を実施するための最良の形態】
【００２６】
本発明の第１態様では、画像処理方法として、同一の対象物を撮影した複数の入力画像を取得する第１ステップと、取得した各入力画像を共通に複数の小領域に分割する第２ステップと、分割した各小領域について、各入力画像から基底画像を生成する第３ステップと、基底画像が生成不能であった小領域について、その近傍小領域における基底画像生成に係る演算値を用いた補間処理によって、基底画像を生成する第４ステップとを備え、生成した各基底画像を用いて、与えられた光源環境における前記対象物の線形化画像を生成するものを提供する。
【００２７】
本発明の第２態様では、生成された線形化画像を用いて、画像処理を行うステップを備えた第１態様の画像処理方法を提供する。
【００２８】
本発明の第３態様では、前記画像処理は、対象物の光学特性に基づいた領域分離、対象物識別、対象物３次元位置・形状推定のうちの少なくとも１つの処理を含む第２態様の画像処理方法を提供する。
【００２９】
本発明の第４態様では、前記対象物を、光源環境を変化させつつ撮影し、前記複数の画像を取得する第１態様の画像処理方法を提供する。
【００３０】
本発明の第５態様では、前記複数の画像において、前記対象物に生じる影の位置が異なるように光源を制御する第４態様の画像処理方法を提供する。
【００３１】
本発明の第６態様では、前記対象物を、光源環境の変化を検出したとき撮影し、前記複数の画像を取得する第１態様の画像処理方法を提供する。
【００３２】
本発明の第７態様では、前記対象物に生じる影の位置が変化したとき、光源環境が変化したものと検出する第６態様の画像処理方法を提供する。
【００３３】
本発明の第８態様では、前記第３ステップは、Ｋ枚の入力画像からＮ（Ｎは正の整数：Ｎ＜Ｋ）枚の基底元画像を選択するステップと、残り（Ｋ−Ｎ）枚の入力画像について、前記Ｎ枚の基底元画像を用いて線形化係数組をそれぞれ決定するステップと、決定した線形化係数組を用いて前記Ｎ枚の基底元画像を線形化し、Ｎ枚の基底画像を生成するステップとを備えた第１態様の画像処理方法を提供する。
【００３４】
本発明の第９態様では、Ｎは３である第８態様の画像処理方法を提供する。
【００３５】
本発明の第１０態様では、前記線形化係数組決定ステップにおいて、当該入力画像から所定数の点をランダムに選択し、この所定数の点から、線形化係数組候補を求めるともに、その確からしさを示す評価指標の値を求める候補算出処理を、繰り返し実行し、前記評価指標の値が最も確からしい線形化係数組候補を、当該入力画像の線形化係数組として決定する第８態様の画像処理方法を提供する。
【００３６】
本発明の第１１態様では、前記候補算出処理は、前記所定数の点の法線方向が互いに異なっているか否かを判断するステップを含み、繰り返し毎に選択した前記所定数の点が、いずれも、その法線方向が互いに等しいと判断したとき、当該小領域は基底画像が生成不能と判断する第１０態様の画像処理方法を提供する。
【００３７】
本発明の第１２態様では、前記第４ステップは、当該小領域の線形化係数組を、その近傍小領域について求められた線形化係数組を用いて補間する第８態様の画像処理方法を提供する。
【００３８】
本発明の第１３態様では、補間の際に、各近傍小領域の線形化係数組に係る前記評価指標の値を加味する第１２態様の画像処理方法を提供する。
【００３９】
本発明の第１４態様では、前記第３ステップは、前記Ｎ枚の基底画像を用いて、前記入力画像の少なくともいずれか１つと光源環境が共通する線形化画像を生成するステップを含む第８態様の画像処理方法を提供する。
【００４０】
本発明の第１５態様では、前記第２ステップは、平行光源とみなせる光の広がりの上限値、光源と対象物との距離、カメラと対象物との距離、およびカメラパラメータのうちの少なくとも１つに基づいて、小領域のサイズを決定する第１態様の画像処理方法を提供する。
【００４１】
本発明の第１６態様では、基底画像が生成不能の小領域について、前記第４ステップにおける補間処理に代えて、そのサイズを変更し、再度、前記第３ステップを実行する第１態様の画像処理方法を提供する。
【００４２】
本発明の第１７態様では、基底画像が生成不能の小領域について、前記第４ステップにおける補間処理に代えて、前記小領域の切り出し位置を変更し、再度、前記第３ステップを実行する第１態様の画像処理方法を提供する。
【００４３】
本発明の第１８態様では、前記複数の入力画像は、光源が複数存在する環境において、撮影されたものである第１態様の画像処理方法を提供する。
【００４４】
本発明の第１９態様では、前記画像処理は、前記対象物が有する突起物または窪みの位置を推定する処理である第２態様の画像処理方法を提供する。
【００４５】
本発明の第２０態様では、同一の対象物を撮影した複数の入力画像を取得する画像入力部と、前記画像入力部によって取得された各入力画像を共通に複数の小領域に分割する画像領域分割部と、前記画像領域分割部によって分割された各小領域について、各入力画像から基底画像を生成する小領域合成画像生成部と、前記小領域合成画像生成部において基底画像が生成不能であった小領域について、その近傍小領域における基底画像生成に係る演算値を用いた補間処理によって、基底画像を生成する画像補間部とを備え、生成した各基底画像を用いて、与えられた光源環境における前記対象物の線形化画像を生成する画像処理装置を提供する。
【００４６】
本発明の第２１態様では、コンピュータに画像処理を実行させるプログラムとして、同一の対象物を撮影した複数の入力画像を共通に複数の小領域に分割するステップと、分割した各小領域について、各入力画像から基底画像を生成するステップと、基底画像が生成不能であった小領域について、その近傍小領域における基底画像生成に係る演算値を用いた補間処理によって、基底画像を生成するステップと、生成した各基底画像を用いて、与えられた光源環境における前記対象物の線形化画像を生成するステップとをコンピュータに実行させる画像処理プログラムを提供する。
【００４７】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００４８】
（第１の実施形態）
図１は本発明の第１の実施形態に係る画像処理方法を実行する画像処理装置の構成を示すブロック図である。この画像処理装置は、光源の位置を制御する光源制御部１０１と、光源制御部１０１によって光源環境が変化している状態で複数の画像を入力する画像入力部１０２と、画像入力部１０２によって入力された光源環境が異なる複数の画像を用いて、線形化画像を生成する線形化画像生成部１０３とを備えている。
【００４９】
線形化画像生成部１０３は、入力された複数の画像を保持する画像保持部１０４と、画像保持部１０４が保持している入力画像を小領域に分割する画像領域分割部１０５と、分割した各小領域について、複数の画像から合成画像として基底画像を生成する小領域合成画像生成部１０６と、合成画像が生成不能であった小領域について、補間処理によって、基底画像を生成する画像補間部１０７とを備えている。そして、線形化画像生成部１０３は、生成した各小領域の基底画像を用いて、鏡面反射が生じない理想状態での合成画像である線形化画像を生成する。
【００５０】
さらに、生成された線形化画像を利用して、光学特性に基づく領域分割、対象物の識別、対象物の３次元位置・形状の推定等の画像処理を行う画像処理部１０８を備えていてもよい。
【００５１】
ここでは、図２のような家庭内作業ロボットに、図１の画像処理装置が設けられているものとする。図２において、ロボット１０は、撮像を行うカメラ１１と、例えば腕などの可動部１２に設置された光源１３とを備えている。この光源１３は、点光源であってもよいし、液晶ディスプレィのような面光源であってもよい。
【００５２】
光源制御部１０１はロボット１０の可動部１２の動きを制御することによって、光源１３の位置や姿勢を変更し、これにより、光源環境を変化させる。画像入力部１０２は、光源制御部１０１が光源環境を変化させている間に、カメラ１１を利用して、ある対象物について複数の画像を撮影する。このとき、例えば、対象物に生じる影の位置が異なるように光源１３を制御すればよい。画像保持部１０４は画像入力部１０２が入力した画像を次々に保持することによって、光源環境が異なる複数枚の画像を蓄え、以下の処理に備える。なお、画像保持部１０４は、入力画像の他に、線形化画像生成部１０３が生成した基底画像や線形化画像を蓄えてもかまわない。
【００５３】
＜小領域分割＞
画像領域分割部１０５は画像保持部１０４によって保持されている入力画像を、基底画像を生成する単位としての小領域に分割する。この小領域分割は、光源環境を平行光源と仮定して、線形化画像を生成可能にするために行うものである。
【００５４】
まず、平行光源と点光源の関係について説明する。平行光源とは、撮像範囲内の対象物に入射する光の広がりθが非常に狭い範囲に限定されている（θ≒０）光源である。一方、点光源は、光が広がって到達する光源である。このため、同一光源であっても、光源と対象物との距離や撮像範囲によって、平行光源とみなせたり、点光源とみなせたりする。
【００５５】
すなわち、図３（ａ）に示すように、対象物２１の長さＬに対して光源２２と対象物２１との距離Ｄが十分に長い場合、光の広がりθｎａｒｒｏｗ は十分に小さくなる（θｎａｒｒｏｗ≒０）。このため、光源２２に照射される対象物２１上の全ての点は、光源２２からの距離がほぼ等しくなり、光源２２は平行光源とみなすことができる。一方、図３（ｂ）に示すように、対象物２１の長さＬに対して光源２２と対象物２１との距離Ｄが十分長くはない場合、入射角θｗｉｄｅは大きくなる（θｗｉｄｅ≠０）。このため、光源２２を平行光源とみなすことはできず、点光源であるとみなされる。
【００５６】
言い換えると、光源と対象物との距離、および対象物の長さを変更することによって、点光源であっても、平行光源と仮定して処理することが可能である。
【００５７】
そこで本実施形態では、入力画像の光源環境を平行光源とみなせるように、入力画像を小領域に分割し、分割した小領域毎に画像処理を行うものとする。
【００５８】
いま、図４（ａ）に示すように、台２４の上に置いた球２５を光源２２によって照射し、台２４の上方からカメラ２３によって撮影するものとする。このとき、図４（ｂ）のような画像が得られる。この状態では、光の広がりθｗ  は十分に広いため光源２２は点光源とみなされる。
【００５９】
そこで、図５（ａ）に示すように画像を小領域に分割し、小領域ごとに処理を行う。図５（ｂ）に、図５（ａ）で示した小領域ｎに対応した視野範囲Ａｎを示す。図５（ｂ）から、画像を小領域に分割することによって、光の広がりθｎ  はθｗ  に比べて十分に小さくなることが分かる。つまり、平行光源を仮定できる程度に光の広がりθｎ  が十分に小さくなるように画像を小さく分割すれば、点光源であっても、平行光源を仮定した画像処理を行うことが可能である。
【００６０】
ここで、対象物は、突起物や窪みのない、形状が滑らかに変化する物体である平面と仮定する。図５（ｂ）において、光源２２から対象物平面までの距離をＤ、視野範囲Ａｎにおける対象物平面の一辺の長さをＬｓとすると、光の広がりは次の式を満たす。
θｎ  ≦２・tan−１（Ｌｓ／（２・Ｄ））    （式５）
ここで、例えば平行光源を仮定するための条件が、
θｎ  ≦θＴｈ
と分かっているものとすると、長さＬｓが次の条件を満たせば、平行光源を仮定できることになる。
２・tan−１（Ｌｓ／（２・Ｄ））≦θＴｈ
∴  Ｌｓ≦２・Ｄtan（θＴｈ／２）  （式６）
つまり、Ｌｓ＝２・Ｄtan（θＴｈ／２）  となるように、小領域を設定すればよい。
【００６１】
そして、対象物平面の一辺の長さＬｓから画像上の小領域のサイズを決定するためには、カメラパラメータ、およびカメラと対象物との距離が既知であればよい。
【００６２】
また、（式６）から、小領域の設定は、光源と被写体との距離Ｄに基づいて行えばよいことがわかる。つまり、距離Ｄが長い領域では、小領域を比較的広く設定し、また、距離Ｄが短い領域では、小領域を比較的狭く設定すればよい。
【００６３】
また、平行光源では、対象物各点に照射される光源の照度はすべて等しいことを仮定している。点光源など実際の光源では、光は減衰するため、この仮定は成り立たない。しかし、光源と被写体との距離が等しい領域では、光の減衰度合が等しくなるため、光源の照度は等しくなる。そのため、光源からの距離がほぼ等しい領域ごとに小領域を設定することが望ましい。
【００６４】
カメラパラメータは、焦点距離（投影中心と撮像平面の距離）、レンズ歪み係数、画像の歪み中心、画面の縦横比、画素サイズなどのカメラ内部パラメータと、カメラの焦点位置、姿勢（向き）などのカメラ外部パラメータとを含む。画像処理を行う際には、事前にこれらのパラメータを推定する必要がある。カメラ内部パラメータは、例えば、「Roger Y.Tsai，“An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision”，Proceedings of IEEE Conference on Computer Vision and Pattern Recognition，ｐｐ．３６４−３７４，１９８６」などの方法を利用して、事前に求めておけばよい。またカメラ外部パラメータは、例えば、特開平５−３８６８８号公報に開示された既存の方法を用いて求めればよい。
【００６５】
また、カメラと対象物との距離も、容易に得ることができる。例えば、特願２００３−０５７８８６に示されている物品管理システムでは、ロボットに画像パターンを設けて、天井等に設置したカメラの画像にパターンマッチング処理を行うことによって、ロボットの位置を認識する。また、対象物に関しては、背景差分などの手法によってその位置を認識する。これらの処理の結果から、ロボットに設置したカメラと対象物との距離を、容易に検出することができる。
【００６６】
このように、処理領域に対する光の広がりθＴｈを設定することによって、小領域のサイズを設定することができる。広がりθＴｈは例えば５°程度に設定すればよい。ただし、この値はこの限りではない。
【００６７】
＜基底画像と線形化画像の作成＞
小領域合成画像生成部１０６は、画像領域分割部１０５によって分割された各小領域について、それぞれ、画像保持部１０４に保持された複数の入力画像を基にして、合成画像を生成する。画像保持部１０４にＫ（Ｋは正の整数）枚の入力画像が保持されており、各小領域の処理も、Ｋ枚の入力画像を用いて行われるものとする。
【００６８】
ここでは、上述した第３の従来例の手法を基にして、ＲＡＮＳＡＣを用いて、基底画像と線形化画像の作成を行う。その手順としては、（１）線形化係数組の算出、（２）基底画像の作成、および（３）入力画像の線形化  を実行する。分割された全ての小領域について処理を行うことによって、入力画像に対応する線形化画像を作成することができる。
【００６９】
（１）線形化係数組の算出
まず、Ｋ枚の入力画像から、３枚の基底元画像Ｉ１  ，Ｉ２  ，Ｉ３  を選択する。この選択方法については後述する。そして、この基底元画像Ｉ１  ，Ｉ２  ，Ｉ３  から、残りの入力画像Ｉｋ  （ｋ＝４，５，６，…，Ｋ）について、これを表現するための線形化係数組をそれぞれ算出する。ここでは、ＲＡＮＳＡＣを利用する。
【００７０】
図６は線形化係数組の算出処理を示すフローチャートである。図６に示すように、まず、初期化処理としてカウンタｋに４（ステップＳ１１）、カウンタiteに１、Num＿muxに０を代入する（ステップＳ１２）。ｋは処理を行う入力画像を表すカウンタであり、iteは繰り返し演算を行った回数を表すカウンタである。Num＿muxについては後述する。また処理の反復回数は、ite＿thとして予め定めておく。
【００７１】
次に、入力画像ｋの画像内から３点をランダムに選択する（ステップＳ１３）。ここで、選択された３点を（ｘ１，ｙ１），（ｘ２，ｙ２），（ｘ３，ｙ３）とする。こうして選択された３点を利用して、線形化係数組候補ｔｍｐ＿ｃを算出する（ステップＳ１４）。これは、次の方程式を計算することによって求められる。
【数１】
0003935499.tif 000002
ここで、ｉｋ（ｕ，ｖ）は入力画像ｋにおける画素（ｕ，ｖ）の画素値を表している。
【００７２】
次に、こうして求めた線形化係数組候補を利用して、次式から線形化画像を作成する（ステップＳ１５）。
ＩｋＬ＝ｔｍｐ＿ｃ１Ｉ１＋ｔｍｐ＿ｃ２Ｉ２＋ｔｍｐ＿ｃ３Ｉ３  （式８）
ただし、ｔｍｐ＿ｃ＝［ｔｍｐ＿ｃ１  ｔｍｐ＿ｃ２  ｔｍｐ＿ｃ３］
【００７３】
そして入力画像ｋの画像領域を、（式８）によって作成した線形化画像ＩｋＬと（式４）を用いて光学特性に基づき分類する。そして画像上の拡散反射領域を求め、この拡散反射領域に属する画素数Ｎｕｍ＿ｄを算出する（ステップＳ１６）。ステップＳ１３〜Ｓ１６が候補算出処理に相当する。
【００７４】
ここで、入力画像は拡散反射領域が支配的であると考えると、作成した線形化係数組候補ｔｍｐ＿ｃが適当であればあるほど、拡散反射領域の画素数Ｎｕｍ＿ｄは多くなると考えられる。つまり、拡散反射領域の画素数Ｎｕｍ_ｄを評価指標として、その値が最も大きくなる線形化係数組ｔｍｐ＿ｃを、最適な線形化係数組として検出すればよい。そこで、これまで反復を行った中で、最も大きい画素数Ｎｕｍ＿ｄをＮｕｍ＿ｍａｘとし、そのときの線形化係数組候補ｔｍｐ＿ｃをｃとして保持しておく。
【００７５】
すなわち、ステップＳ１６において算出した画素数Ｎｕｍ＿ｄをそれまでの最大値Ｎｕｍ＿ｍａｘと比較し（Ｓ１７）、Ｎｕｍ＿ｄの方が大きいときは（Ｓ１７でＹｅｓ）、Ｎｕｍ＿ｍａｘの値をＮｕｍ＿ｄに置き換えるとともに、さらにｃをｔｍｐ＿ｃに置き換え（ステップＳ１８）、次のランダムサンプリングの準備を行う（ステップＳ１９）。一方、Ｎｕｍ＿ｄの方が小さいときは（Ｓ１７でＮｏ）、Ｎｕｍ＿ｄ，ｃの置き換えは行わず、ステップＳ１９に進む。
【００７６】
ステップＳ１９では、所定回数（ｉｔｅ＿ｔｈ回）ランダムサンプリングが行われたかをチェックする。もし、まだ所定回数ランダムサンプリングが行われていないときは（ステップＳ１９でＮｏ）、カウンタｉｔｅを１つインクリメントし（ステップＳ２０）、再度、ランダムサンプリングを行う（ステップＳ１３）。一方、すでに所定回数ランダムサンプリングが行われているときは（ステップＳ１９でＹｅｓ）、入力画像ｋの線形化係数組ｃｋ  としてｃを選択し（ステップＳ２１）、入力画像ｋの処理を終了する。
【００７７】
このとき、まだ処理を行っていない入力画像があるとき（ステップＳ２２でＮｏ）、カウンタｋを１つインクリメントし（ステップＳ２３）、次の入力画像について処理を行う（ステップＳ１２）。一方、もし、すべての入力画像において処理が終わっているときは（ステップＳ２２でＹｅｓ）、処理を終了する。
【００７８】
なお、ここでの基底元画像としては、鏡面反射や影領域の少ない画像を選択するのが好ましい。このために例えば、輝度が極端に高くも低くもない画素が多い入力画像を基底元画像とすることが望ましい。
【００７９】
また、基底元画像としては、光源環境が大きく異なる３枚の入力画像を選択するのが好ましい。このためには例えば、画像上の数点の画素値が互いに大きく異なる３枚の入力画像を選択すればよい。また例えば、光源環境を推定し、光源の位置や強度ができるだけ異なる３枚の入力画像を選択するようにしても構わない。光源環境を推定する方法としては、鏡面球を利用する方法や、広角カメラを天井方向に向けて光源状態を撮影する方法が広く知られている。表面が鏡面の物質である球の表面に写っているものは、球が置かれた位置に入射している光源の情報である。そこでこのような鏡面球をカメラで撮影し、その画像を解析することによって、光源の位置と照射輝度分布を推定する（例えば、「田中法博、富永昌治  “全方位の光源分光分布の計測とその応用”，画像の認識・理解シンポジウム（ＭＩＲＵ２００２），ｖｏｌ．ＩＩ，ｐｐ．９９−１００４，２０００」）。
【００８０】
（２）基底画像の作成
次に、（１）で求めた線形化係数組ｃｋ  と各入力画像Ｉｋ  を用いて、基底元画像を線形化し、基底画像を作成する。ここでもＲＡＮＳＡＣを利用し、１画素ずつの処理を行う。
【００８１】
ここで、（式３）を見直してみる。入力画像ｋの画素ｍに対して（式３）を適用すると、次の式が求まる。  
ｉｋ（ｍ）Ｌ  ＝ｃｋ１ｉ１（ｍ）Ｂ  ＋ｃｋ２ｉ２（ｍ）Ｂ  ＋ｃｋ３ｉ３（ｍ）Ｂ  （式９）
【００８２】
ここで、ｉ（ｍ）Ｂ  ＝［ｉ１（ｍ）Ｂ  ｉ２（ｍ）Ｂ  ｉ３（ｍ）Ｂ ］  は画素ｍに対する基底画像の画素値を示しており、基底画素値と呼ぶ。この式において、線形化係数組ｃｋ  ＝［ｃｋ１  ｃｋ２  ｃｋ３ ］Ｔ  は（１）の処理によりすでに求まっている。このため、もし入力画像ｋの画素ｍが  ｉｋ（ｍ）＝ｉｋ（ｍ）Ｌ  を満たす、すなわち拡散反射を起しているとき、（式９）における未知数は、基底画素値ｉ（ｍ）Ｂ  ＝［ｉ１（ｍ）Ｂ  ｉ２（ｍ）Ｂ  ｉ３（ｍ）Ｂ ］のみの３個となる。
【００８３】
したがって、入力画像ｋ（ｋ＝４，５，６，…，Ｋ）のうち、画素ｍが拡散反射領域である３枚を選択することができれば、（式９）を一意に解くことができる。ところが、実際にはどの画素が拡散反射を起しているかは分からないため、ここではＲＡＮＳＡＣによるランダムサンプリングを利用し、また評価指標として、（１）の処理と同様に拡散反射領域の画素数を用いることによって、基底画素値を求める。
【００８４】
図７は基底画像の生成処理を示すフローチャートである。ここでは、上述の線形化係数組の算出処理と異なり、処理を画素ごとに行う。つまり、基底画素値を１画素ずつＲＡＮＳＡＣの枠組みで求める。
【００８５】
まず、処理を行う画素ｍを設定する（ステップＳ３１）。次に、初期化のためにカウンタｉｔｅに１、Num＿maxに０を代入する（ステップＳ３２）。カウンタｉｔｅは繰り返し演算を行った回数を示し、また処理の反復回数はｉｔｅ＿ｔｈとして予め定めておく。Num＿maxについては後述する。次に、線形化係数組が既に求まっている（Ｋ−３）枚の入力画像から３枚をランダムに選択する（ステップＳ３３）。ここで、選択された３枚の入力画像をｋ１  ，ｋ２  ，ｋ３  とする。こうして選択された３枚の画素値を（式９）に代入すると、次の方程式が求まる。  
【数２】
0003935499.tif 000003
ここで、
ｔｍｐ＿ｉ（ｍ）Ｂ  ＝［ｔｍｐ＿ｉ１（ｍ）Ｂ  ｔｍｐ＿ｉ２（ｍ）Ｂ  ｔｍｐ＿ｉ３（ｍ）Ｂ  ］Ｔ  
は、ｉｋ１（ｍ），ｉｋ２（ｍ），ｉｋ３（ｍ）がすべて拡散反射であるとき、基底画素値となるが、そうでないときは意味のない値になる。そこで、ｔｍｐ＿ｉ（ｍ）Ｂ  を基底画素値候補と呼ぶ。（式１０）を解くことにより、基底画素値候補ｔｍｐ＿ｉ（ｍ）Ｂ  を算出する（ステップＳ３４）。すなわち、
【数３】
0003935499.tif 000004
【００８６】
次に、こうして求めた基底画素値候補ｔｍｐ＿ｉ（ｍ）Ｂ  を利用して、（Ｋ−３）枚の入力画像に対して、次の式から線形化画素値ｉｋ（ｍ）Ｌ  を作成する（ステップＳ３５）。
ｉｋ（ｍ）Ｌ  ＝ｃｋ１ｔｍｐ＿ｉ１（ｍ）Ｂ  ＋ｃｋ２ｔｍｐ＿ｉ２（ｍ）Ｂ  ＋ｃｋ３ｔｍｐ＿ｉ３（ｍ）Ｂ  
ただし、ｋ＝４，５，６，…，Ｋ    （式１２）
【００８７】
さらに、入力画像ｋの画素値を、（式１２）で作成した線形化画素値ｉｋ（ｍ）Ｌ  と（式４）を用いて光学特性に基づき分類する。そして、分類したｉｋ（ｍ）（ｋ＝４，５，６，…，Ｋ）において、拡散反射領域の画素数Ｎｕｍ＿ｄを算出する（ステップＳ３６）。
【００８８】
ここで、入力画像は拡散反射領域が支配的であると考えると、作成した線形化画像候補が適当であればあるほど、拡散反射領域の画素数Ｎｕｍ＿ｄは多くなると考えられる。つまり、拡散反射領域の画素数Ｎｕｍ＿ｄを評価指標として、その値が最も大きくなる基底画素値候補を、最適な基底画素値として検出すればよい。そこで、これまで反復を行ってきた中で、最も大きい画素値Ｎｕｍ＿ｄをＮｕｍ＿ｍａｘとし、そのときの基底画素値候補ｔｍｐ＿ｉ（ｍ）Ｂ  をｉとして保持しておく。
【００８９】
すなわち、ステップＳ３６において算出した画素数Ｎｕｍ＿ｄをそれまでの最大値Ｎｕｍ＿ｍａｘと比較し（Ｓ３７）、Ｎｕｍ＿ｄの方が大きいときは（Ｓ３７でＹｅｓ）、Ｎｕｍ＿ｍａｘの値をＮｕｍ＿ｄに置き換えるとともに、さらにｉをｔｍｐ＿ｉ（ｍ）Ｂ  に置き換え（ステップＳ３８）、次のランダムサンプリングの準備を行う（ステップＳ３９）。一方、Ｎｕｍ＿ｄの方が小さいときは（Ｓ３７でＮｏ）、Ｎｕｍ＿ｄ，ｉの置き換えは行わず、ステップＳ３９に進む。
【００９０】
ステップＳ３９では、所定回数（ｉｔｅ＿ｔｈ回）ランダムサンプリングが行われたかをチェックする。もし、まだ所定回数ランダムサンプリングが行われていないときは（ステップＳ３９でＮｏ）、カウンタｉｔｅを１つインクリメントし（ステップＳ４０）、再度、ランダムサンプリングを行う（ステップＳ４３）。一方、すでに所定回数ランダムサンプリングが行われているときは（ステップＳ３９でＹｅｓ）、画素ｍの基底画素値ｉ（ｍ）Ｂ  としてｉを選択し（ステップＳ４１）、画素ｍの処理を終了する。
【００９１】
このとき、まだ処理を行っていない画素がある場合（ステップＳ４２でＮｏ）、カウンタｍを１つインクリメントし（ステップＳ４３）、次の画素について処理を行う（ステップＳ３２）。一方、もし、すべての画素について処理が終わっているときは（ステップＳ４２でＹｅｓ）、処理を終了する。
【００９２】
以上の処理を、分割された全ての画像の全ての画素について行うことによって、基底画像を生成する。
【００９３】
（３）入力画像の線形化
次に、（式３）に従って、各入力画像の線形化係数組ｃｋ  と基底画像Ｉ１Ｂ  ，Ｉ２Ｂ  ，Ｉ３Ｂ  の線形結合によって、入力画像ｋの線形化画像ＩｋＬ  を作成する。  
ＩｋＬ ＝ｃｋ１Ｉ１Ｂ ＋ｃｋ２Ｉ２Ｂ ＋ｃｋ３Ｉ３Ｂ  （式３）
上述したように、線形化画像とは、鏡面反射が生じていない理想状態のときに観測される画像である。このため、この線形化画像を利用して画像処理を行うことによって、鏡面反射や影の影響を受けない画像処理が可能になる。
【００９４】
なお、ここでの線形化係数組ｃｋ  は、（１）の処理において求めたものをそのまま用いてもかまわないし、入力画像Ｉ１ ，Ｉ２ ，Ｉ３ の代わりに基底画像Ｉ１Ｂ  ，Ｉ２Ｂ  ，Ｉ３Ｂ  を用いて、再度、（１）の処理によって求めなおしてもかまわない。
【００９５】
以上のような処理を行うことによって、画像保持部１０４に保持されている画像の線形化画像を作成することができる。
【００９６】
なおここでは、入力画像を線形化するまでの処理を示したが、もちろん、（２）の基底画像作成処理までで処理を終えてもかまわない。このような基底画像を画像保持部１０４に保持することによって、画像入力部１０２が入力した画像に対し、（３）の処理を行うだけで、線形化画像を作成することが可能である。
【００９７】
＜補間処理＞
以上のように、画像を小領域に分割して処理することによって、点光源であっても、平行光源として仮定して、第３の従来例と同様の方法によって取り扱うことができる。ただし、画像を小領域に分割することに起因して、次のような問題が生じる。
【００９８】
上述のように第３の従来例では、次の条件を満たす３点以上の画素が存在していることが、前提条件になっている。
【００９９】
○  法線方向が異なる。
○  拡散反射領域である。
【０１００】
前者の前提条件を満たさないとき、（式７）の行列Ｄや（式１１）の行列Ｅが縮退を起すので、（式７）や（式８）の解を求めることができない。また、後者の前提条件を満たさないとき、ＲＡＮＳＡＣにおいて評価関数として用いた拡散反射領域の画素数は、拡散反射領域がそもそも存在しないため、常に０になってしまい、このため、評価関数としての役割を果たさなくなる。そして、小領域に分割することは、これらの前提条件を満たさない領域の存在可能性を高める原因となる。
【０１０１】
図８は図５（ａ）のように分割した各小領域において、第３の従来例を適用した結果である。まず平面領域３１，３２すなわち画像内に１平面しか存在せず、ほとんどの画素で法線方向が等しい領域では、線形化画像を生成できない。また影領域３３のように、拡散反射領域を含まず、影か鏡面反射しか存在しない領域でも、やはり解を求めることができない。このように、小領域に分割して処理を行っても、全ての領域について基底画像や線形化画像を生成できるとは限らず、生成できるのは画像上の一部であり、残りの領域については生成不能となる場合があり得る。
【０１０２】
そこで本実施形態では、画像補間部１０７が、小領域合成画像生成部１０６において基底画像や線形化画像を生成不能であった小領域について、補間処理によって、基底画像や線形化画像を生成する。まず、次のような仮定をおく。
【０１０３】
○  画像を分割した各小領域では、線形化係数組は、近傍小領域の線形化係数組と相関がある。
【０１０４】
これは、各小領域における光の入射角が連続に変化していくことを考えると、妥当な仮定である。この仮定より、次の式が導かれる。
【数４】
0003935499.tif 000005
【０１０５】
ここで、Ｉｋ（ｘ，ｙ）Ｌ  は入力画像ｋの小領域（ｘ，ｙ）（図９の注目領域４１）における線形化画像、Ｉ１（ｘ，ｙ）Ｂ  ，Ｉ２（ｘ，ｙ）Ｂ  ，Ｉ３（ｘ，ｙ）Ｂ  はそれぞれ３枚の基底画像における小領域（ｘ，ｙ）の画像、ｃｋ（ｘ、ｙ）  ＝［ｃｋ（ｘ、ｙ）１  ｃｋ（ｘ、ｙ）２  ｃｋ（ｘ、ｙ）３ ］Ｔ  は入力画像ｋの小領域（ｘ，ｙ）における線形化係数組を示している。すなわち、（式１３）は「ある小領域（ｘ，ｙ）の線形化係数組は、その８近傍領域（図９の領域４２）の線形化係数組を利用することによって生成できる」ことを示している。
【０１０６】
すなわち、ここでは、基底画像が生成不能であった小領域（注目領域）について、基底画像生成に係る演算値としての線形化係数組を、その近傍小領域における線形化係数組を用いた補間処理によって求め、基底画像や線形化画像を生成する。以下、その手法について説明する。
【０１０７】
１．Nearest neighbor
まず、前提条件として、撮影された画像上では鏡面反射領域に比べて拡散反射領域が支配的であるとする。これは、鏡面反射が、光源方向とカメラ方向が対象物の法線方向に対して正反射の関係になったときにのみ生じるものであることから明らかである。
【０１０８】
図１０は注目領域の線形化係数組として、近傍領域の線形化係数組のうち最適なものを選択する方法を示すフローチャートである。まず、Ｒａｔｅ＿ｍａｘの初期化を行うために、０を代入する（ステップＳ５１）。次に、注目領域の近傍領域を１つ選択する（ステップＳ５２）。選択した近傍領域ｘについて線形化係数組が求まっているか否かを調べ（ステップＳ５３）、もし求まっていないときは（Ｓ５３でＮｏ）、他の近傍領域のチェックを行う（ステップＳ５９）。もし、全ての近傍領域のチェックが終了しているときは（Ｓ５９でＹｅｓ）、処理を終了する。
【０１０９】
一方、選択した近傍領域ｘの線形化係数組が求まっているとき（Ｓ５３でＹｅｓ）、その線形化係数組と（式３）を用いて、近傍領域ｘの線形化画像を生成する（ステップＳ５４）。さらに、生成した線形化画像と（式４）を用いて、その近傍領域ｘの画像について光学特性に基づく領域分割を行う（ステップＳ５５）。ここで求めた拡散反射、鏡面反射、cast shadow、attached shadowの各領域の画素数をそれぞれＸｄ，Ｘｓ，Ｘｃ，Ｘａ、近傍領域内の総画素数をＸａｌｌとする。このとき、次式で定義する拡散反射画素率Ｒａｔｅ＿ｘを計算する（ステップＳ５６）。
Ｒａｔｅ＿ｘ＝Ｘｄ／（Ｘａｌｌ−（Ｘｃ＋Ｘａ））  （式１４）
【０１１０】
（式１４）で定義された拡散反射画素率Ｒａｔｅ＿ｘは、総画素数から影と判別された画素数を除いた画素数と、拡散反射領域と判別された画素数の比を表している。上述のように、入力画像において拡散反射領域は鏡面反射領域に比べて支配的であるため、求まった線形化係数組が正しいほど拡散反射画素率Ｒａｔｅ＿ｘの値は高くなる。すなわち、拡散反射画素率Ｒａｔｅ＿ｘは線形化係数組の確からしさを示す評価指標として用いることができる。
【０１１１】
そこで、Ｒａｔｅ＿ｘとＲａｔｅ＿ｍａｘとを比較し（ステップＳ５７）、Ｒａｔｅ＿ｘの方が大きいときは（Ｓ５７でＹｅｓ）、この近傍領域ｘの線形化係数組の信頼性は十分高いと考えられる。そこで、Ｒａｔｅ＿ｍａｘにＲａｔｅ＿ｘを代入するとともに、この近傍領域ｘの線形化係数組を線形化係数組候補として保持する（ステップＳ５８）。一方、Ｒａｔｅ＿ｘがＲａｔｅ＿ｍａｘよりも小さいとき（Ｓ５７でＮｏ）、この近傍領域ｘの線形化係数組の信頼性はすでに保持されている線形化係数組候補よりも低いと判断し、その線形化係数組を線形化係数組候補とはせず、他の近傍領域のチェックを行う（ステップＳ５９）。
【０１１２】
このような処理を全ての近傍小領域について繰り返すことによって、近傍８領域の中で最も確からしい線形化係数組を線形化係数組候補として求めることができる。上述したように、近傍の領域同士の線形化係数組には相関があるため、近傍領域において最も確からしい線形化係数組は、注目領域においても確からしい線形化係数組であると考えられる。このため、このような補間処理によって求めた線形化係数組候補を用いることによって、基底画像生成において解を求めることができなかった領域についても、線形化画像を作成し、光学的な領域分割を行うことができる。
【０１１３】
なお、ここでは、注目領域について最も確からしい線形化係数組を選択する範囲として、８近傍領域を用いたが、これに限られるものではない。例えば図１１（ａ）に示すように、４近傍領域４３のみを用いてもよい。このように近傍領域を狭く設定することによって、処理時間を短縮することができる。逆に、例えば図１１（ｂ）に示す１２近傍領域４４や図１１（ｃ）に示す２４近傍領域４５のように、近傍領域を広く設定してもかまわない。近傍領域を広く設定することによって、選択肢が増えるので、注目領域の線形化係数組を高精度に選択することができる。
【０１１４】
またここでは、拡散反射画素率Ｒａｔｅ＿ｘを評価関数として用いたが、線形化係数組を選択するための評価指標は、これに限られるものではない。例えば、単に拡散反射領域の画素数Ｘｄを評価指標として用いてもかまわない。また、影領域も加えて、Ｘｄ＋Ｘｃ＋Ｘｄを評価指標として用いてもかまわない。
【０１１５】
またここでは、評価指標値の算出はその近傍領域のみにおいて行うものとしたが、この代わりに、評価指標値を算出するための評価領域を、当該近傍領域とは別個に定めてもかまわない。例えば上述の図１０のフローのステップＳ５４〜Ｓ５６において、近傍領域Ｘとは別個に定めた評価領域について、線形化画像を生成し、光学特性に基づき領域を分割し、評価指標としての拡散反射画素率Ｒａｔｅ＿ｘを計算すればよい。
【０１１６】
この方法は、分割した領域ごとに画像特徴が全く異なる場合に有効である。例えば図９において、領域（ｘ−１，ｙ）はその２／３が影領域であるのに対し、領域（ｘ＋１，ｙ）は全く影を含まない、ということは多々ある。この場合、上述したように、各領域の線形化係数組を当該領域の拡散反射画素率Ｒａｔｅ＿ｘを用いて評価することは、必ずしも適切ではない。そこで例えば、注目領域４１と８近傍領域４２とを合わせた９個の小領域全体を、評価領域として設定する。すなわち、各近傍領域の線形化係数組を、共通の領域４１，４２に適用して拡散反射画素率Ｒａｔｅ＿ｘなどの評価指標値を計算し、比較する。これにより、より適切な評価を行うことが可能になる。
【０１１７】
もちろん、この評価領域は、線形化係数組を求めるために分割した小領域を基にして設定する必要は必ずしもなく、例えば図９の評価領域４６，４７のように設定してもかまわない。
【０１１８】
また、境界領域の連続性を利用して、線形化係数組を推定してもかまわない。隣り合った画素は相関が強いと考えられるので、注目領域の最外位置の画素値は、その画素に隣り合った近傍領域の画素値とほぼ等しいと考えられる（図１２の境界領域４８）。そこで、この連続性を評価関数として利用する。すなわち、評価関数として、境界領域の連続性を考慮した次式のＦｕｎｃ（Ｘｋ（ｘ，ｙ）Ｌ  ）を用いる。
【数５】
0003935499.tif 000006
【０１１９】
ここで、小領域の画素数はすべて（ＰｘＱ）画素、ｘｋ（ｘ，ｙ，ｐ，ｑ）Ｌ  は入力画像ｋの小領域（ｘ，ｙ）において、その小領域内の画素（ｐ，ｑ）の線形化画素値を示している。
【０１２０】
２．２次補間
ここでは、近傍領域の線形化係数組を２次補間することによって、注目領域の線形化係数組を求める方法について説明する。
【０１２１】
まず、線形化係数組の値を領域の位置（ｍ，ｎ）の関数ｇ（ｍ，ｎ）とし、この曲面を以下の２次式によって、近似することを考える。
ｇ（ｍ，ｎ）＝Ａ／２・ｍ２  ＋Ｂ／２・ｎ２  ＋Ｃｍｎ＋Ｄｍ＋Ｅｎ＋Ｆ  （式１５）
ここで、位置（ｍ，ｎ）はその領域の中心位置を示す。この（式１５）を解くためには、６個以上の線形化係数組が求まっていればよい。そこで、注目領域の近傍領域のうち、線形化係数組が求まっている６領域を選択し、その線形化係数組と位置（ｍ，ｎ）を代入することによって、（式１５）を解くことができる。
【０１２２】
このとき、線形化係数組ｃｋ  の各要素ｃｋ１，ｃｋ２，ｃｋ３ごとに独立に（式１５）を解いてもよいし、またｃｋ１，ｃｋ２，ｃｋ３を極座標表示し、その要素それぞれに対して（式１５）を解いてもかまわない。
【０１２３】
また、６領域から解を一意に求める代わりに、６個以上の領域を選択し、最小自乗法によって解を求めるようにしてもかまわない。また、さらに広い領域を（式１５）によって近似するようにしてもかまわない。これは例えば、多くの領域の線形化係数組を用い、ＲＡＮＳＡＣを用いることによって解を求めればよい。
【０１２４】
もちろん、例えば、スプライン補間処理などを用いてもかまわないし、また、３次以上のフィッティングを行ってもかまわない。
【０１２５】
３．重み付け処理
ここでは、重み付け処理によって、注目領域の線形化係数組を求める方法を説明する。これは、上述の拡散反射画素率Ｒａｔｅ＿ｘなど、近傍領域の線形化係数組の確からしさの指標を重みとして利用する。近傍の小領域（ｍ，ｎ）における拡散反射画素率をＲａｔｅ＿ｘ（ｍ，ｎ）とすると、注目領域（ｘ，ｙ）の線形化係数組は次の式で表される。
【数６】
0003935499.tif 000007
ここで、Ｓは注目領域（ｘ，ｙ）の近傍において線形化係数組が求まっている領域を示している。つまり、（式１６）は拡散反射画素率で重み付けをした近傍領域の平均線形化係数組を表している。
【０１２６】
もちろん、重みは拡散反射画素率に限られるものではなく、上述の拡散反射領域の画素数を用いたり、また、重み付けを行わず、単純な近傍領域の線形化係数組の平均値を用いたりしてもかまわない。
【０１２７】
また、１．〜３．のようにして求めた線形化係数組を初期値とし、さらに勾配法を用いて最適な線形化係数組を求めるようにしてもかまわない。
【０１２８】
このように、点光源を制御しながら撮影した複数の画像に対して、処理領域を分割し、さらに補間処理を行うことによって、点光源においても、鏡面反射や影の影響を補正した線形化画像を作成することができる。そして画像処理部１０８は、線形化画像生成部１０３によって生成された線形化画像を用いて、画像処理を行う。線形化画像は鏡面反射や影が除去された理想的な画像であるため、線形化画像を用いることによって、鏡面反射や影の影響を受けない画像処理を実現することができる。ここでの画像処理としては、例えば、対象物の３次元位置・形状推定、対象物の識別、光学特性に基づいた領域分割などがある。
【０１２９】
図１３は図４０のステレオ画像に対する線形化画像である。図１３から、鏡面反射が画像からきれいに除去できていることが分かる。したがって、ステレオマッチングの精度も向上し、３次元位置・形状の推定の精度も向上する。また、対象物識別処理においても、線形化画像を用いることによって鏡面反射などによる精度劣化を抑えることができる。
【０１３０】
さらに、入力画像に対し、線形化画像と（式４）を用いて、拡散反射や鏡面反射、cast shadowやattached shadowといった光学特性に基づいた領域分離を行うこともできる。
【０１３１】
図１４（ａ）は図４５（ａ）の入力画像から本実施形態の方法によって生成した線形化画像を示す図である。また図１４（ｂ）は図４５（ａ）の入力画像から図１４（ａ）の線形化画像および（式４）を用いて分離した鏡面反射成分を示す図である。図１４（ａ），（ｂ）を第３の従来例による図４５（ｂ），（ｃ）と比較すると、特に平面領域において線形化画像の生成精度が上がっていることが分かる。また鏡面反射領域と拡散反射領域の分離精度は、第３の従来例では７０％であるのに対し、本実施形態では９１％と大幅に改善されている。なお、分離精度は次式により計算される。
（分離精度）
＝（（正しく鏡面反射と推定された画素数）＋（正しく拡散反射と推定された画素数））／（（拡散反射の画素数）＋（鏡面反射の画素数））
【０１３２】
なお、以上の説明では、領域の分割は各小領域間の重なりがないように行うものとしたが、もちろん図１５に示すように、各小領域が重なり合うように領域分割を行ってもかまわない。このように領域を分割することによって、注目領域４１と近傍領域４２との間の相関が高くなるので、補間処理の精度がより向上する。
【０１３３】
また、小領域の形状は矩形である必要はなく、例えば図１６のように、任意の形状であってもかまわない。
【０１３４】
また、重みを、領域ごとに設定するのでなく、画像上での位置の関数として設定してもかまわない。図１７はこの処理の様子を示す図であり、ここでは小領域を円形に設定している。まず、評価領域を半径ｒの円形領域５１として設定し、分離精度Ｅ（ｒ）を求める。次に、評価領域を半径ｒ’の円形領域５２に変更し、再度、分離精度Ｅ(ｒ’)を求める。評価領域の半径を変えながらこの処理を繰り返すことによって、分離精度を、評価円形領域の中心位置（ｘ，ｙ）と半径ｒの関数Ｅ（ｘ，ｙ，ｒ）として表現することができる。この分離精度Ｅ（ｘ，ｙ，ｒ）は求まった線形係数ごとに存在するため、ある線形化係数組Ｃｌ＝［ｃ１  ｃ２  ｃ３］における分離精度Ｅ（ｘ，ｙ，ｒ）をＥｌ（ｘ，ｙ，ｒ）とする。図１８は各線形化係数組Ｃ１〜Ｃ５の分離精度Ｅ１〜Ｅ５を模式的に示した図である。
【０１３５】
このとき、任意の点（ｘｍ，ｙｍ）の線形化係数組Ｃｍは、次のような重み付け処理によって求められる。
【数７】
0003935499.tif 000008
【０１３６】
もちろん、任意の点（ｘｍ，ｙｍ）の線形化係数組Ｃｍは前述のNearest neighborを利用し、次のように求めてもかまわない。
【数８】
0003935499.tif 000009
【０１３７】
このような処理を用いることによって、画像の領域を明に分割しなくても線形化画像を作成することができる。これは、上述のように評価領域を変化させるため、確定的な評価領域を用いる必要がないためである。
【０１３８】
また、光源制御部１０１は、撮影環境の光源、例えば、家庭内の照明を切り替えることによって、光源環境を変化させるものでもよい。このような光源の切り替えは、例えば電力線を用いたエコーネットなどを利用すればよい。
【０１３９】
家庭内で通常用いられる白熱灯や蛍光灯は、第３の従来例では、平行光仮定が成り立たないために光源として用いることができなかった。ところが本発明では、点光源においても線形化画像の作成や光学特性に基づいた領域分離を行うことができるので、家庭内照明を点光源の集合体と捉えることによって、処理が可能である。家庭内照明を光源として利用することができれば、照明を別途準備する必要がなくなるため、非常にシンプルな画像処理装置において本発明を実現することができる。
【０１４０】
さらに、光源制御部１０１による光源環境の変更は、家庭内であれば、住居人がいなくなる夜や出勤・通勤後の時間帯に定期的に行うようにしてもかまわない。
【０１４１】
図１９は本実施形態によって生成された線形化画像の例である。図１９に示すように、本実施形態の画像処理方法によると、鏡面反射が生じない理想状態での画像である線形化画像が生成される。
【０１４２】
また、画像入力部１０２は、必ずしも撮像を行う必要はない。例えば、メモリやハードディスクなどに蓄えられている画像をネットワークやインターフェイスを通じて取り込むようにしてもかまわない。
【０１４３】
また、撮影された画像から合成画像を作成するようにしてもかまわない。これは、撮影した複数画像の視点位置や視点方向が異なる場合に有効である。上述のように、本実施形態では視点位置は固定でなくてはならないが、任意視点合成の技術を用いることにより、視点が動いた場合においてもカメラ位置情報、動き情報などを用いてあたかも同じ視点から撮影した画像に変換できる。画像入力部１０２はこの任意視点合成技術を利用することによって、視点位置が等しい合成画像を作成すればよい。
【０１４４】
（変形例）
また、画像補間部１０７は、次の３つの処理を切り替えるような制御手段を含んでいてもかまわない。
○  上述の手法によって補間処理を行う。
○  補間処理を行わずに、小領域合成画像生成部１０５が作成した画像をそのまま画像処理部１０８へ送る。
○  画像領域分割部１０５によって小領域の大きさや位置を変更し、再度、小領域合成画像生成部１０６によって合成画像を作成しなおす。
【０１４５】
本実施形態では分割した小領域ごとに処理を行うため、ＲＡＮＳＡＣのランダムサンプリングにおいて、選択した３点の法線方向が全て等しくなることが起こり易くなる。この場合、行列Ｄが縮退し、解が求まらず、線形化係数を求めることができない。
【０１４６】
そこで、まず行列Ｄの縮退を調べることによって、ＲＡＮＳＡＣでサンプリングした各３点の法線方向が等しいか否かを判断する。もし、行列Ｄが縮退しているときは、処理を中断することによって処理の効率化を図ることができる。すなわち、行列Ｄの縮退を確認することによって、処理を高速化することができる。そして、すべてのランダムサンプリング点において行列Ｄが縮退している場合、上述のように処理を切り替える。
【０１４７】
行列の縮退を調べる指標としては、まず、行列の次元数がある。通常、行列の次元数を調べるためには行列式を求めればよい。次の行列Ａの行列式｜Ａ｜は、（式１７）によって表される。
【数９】
0003935499.tif 000010
行列式｜Ａ｜が０のとき、行列Ａは縮退していると考えられる。
【０１４８】
ところが本実施形態では、たとえ選択された３点の法線方向が等しい場合でも、点光源を平行光と近似している点や、量子化誤差やノイズの影響によって、行列式｜Ａ｜は小さな値にはなるものの必ずしも０にはならない。そこで、次の条件を満たすとき、選択された３点の法線方向が等しいと判断する。
｜Ａ｜≦Ｔｈ１    （式１８）
【０１４９】
また、行列の縮退を検出するために、例えば、行列Ａの要素である３つのベクトルａ１，ａ２，ａ３を利用する方法も考えられる。行列Ａが縮退しているとき、図２０（ａ）（ｂ）に示すように、ベクトルａ１，ａ２，ａ３が平面上または直線上に並ぶ。そこで、これら３つのベクトルａ１，ａ２，ａ３のなす角度成分を、行列の縮退の指標として用いればよい。すなわち、ａ１とａ２，ａ２とａ３，ａ３とａ１がなす角度をそれぞれ求め、それらの角度の最小値を求める。これは、次の条件を満たす場合に、３画素の法線方向が等しいと判断すればよい。
【数１０】
0003935499.tif 000011
（式１９）は指標の単位が角度であるため、（式１８）に比べて閾値がわかりやすいといった長所があるが、図２０（ａ）のように３つのベクトルが同一平面上に存在しているときには、検出に失敗するという問題がある。このため、行列式とともに用いるのが好ましい。
【０１５０】
また同様の方法として、（式２０）のように、行列式を３つのベクトルの長さで正規化するという方法が考えられる。
【数１１】
0003935499.tif 000012
行列式｜Ａ｜は、図２０（ｃ）に示すように、３つのベクトルａ１，ａ２，ａ３によって張られる平行六面体６１の体積を表している。したがって、行列式｜Ａ｜を各ベクトルの大きさによって正規化することによって、ベクトル間の角度成分のみが抽出される。
【０１５１】
また、行列の縮退を調べる指標として、行列の条件数を用いてもかまわない。行列Ａの条件数とは、行列Ａが良条件(well-conditioned)か悪条件(ill-conditioned)かの指標であり、次のようなもので表される。
○  行列Ａの最大固有値と最小固有値との比
○  行列Ａの最大特異値と最小特異値との比
○  行列Ａのノルムと逆行列Ａ−１のノルムとの比
【０１５２】
さらに、行列の三角化を行い、その対角成分を用いてもかまわない。行列Ａは、次式のように展開できる。
【数１２】
0003935499.tif 000013
このような処理を行列の三角化と呼ぶ。行列の三角化は、Gram-Schmidtの直交化などの手法を利用することによって実現される。Gram-Schmidtの直交化を用いた場合、（式２１）は以下のように求められる。
【数１３】
0003935499.tif 000014
ここで、ｖ１，ｖ２，ｖ３が正規直交基底であることに着目すると、次のことが分かる。
○  ｘ２２はａ２からａ１へ下ろした足の長さである
○  ｘ３３はａ３からａ１とａ２が張る平面に下ろした足の長さである
図２１はこの関係を図示したものである。このことから、次の条件式を満たすとき、３点の法線方向が等しいと判断できる。
ｍｉｎ（ｘ２２，ｘ３３）≦Ｔｈ４
【０１５３】
次に、上述した各条件式を用いた判断手法における閾値決定の方法について説明する。ここでは、実際に撮像するであろう条件において、平面と、それ以外の対象物とをそれぞれ撮像することによって、閾値を決めるものとする。
【０１５４】
まず図２２に示すように、カメラ７１によって平面７２と対象物としての球７３を撮像する。ここで、図２２（ａ）のように平面７２を撮像したとき、画像中の各点の法線方向は全て等しくなり、また図２２（ｂ）のように球７３を撮像したとき、画像中の各点の法線方向は全て異なっている。カメラ７１と対象物７３は実際の環境と同様に設置する。ここでは、家庭内作業ロボットが作業を行うことを想定し、カメラ７１は平面７２から５０ｃｍ離して設置し、球７３の半径は１０ｃｍとした。カメラ７１は実際のロボットに設置されるものと同様の水平画角５６°、画素数６４０ｘ４８０のものを利用した。
【０１５５】
そして、図２２（ａ），（ｂ）の状況でそれぞれ撮影した画像における各条件式の評価関数の頻度を求めることによって、最適な閾値を決定することができる。図２３〜図２５は各条件式の評価値を示すグラフである。ただし、これらの評価値は、撮像された画面中央部の１６０ｘ１６０画素における評価値である。
【０１５６】
図２３は行列式を３個のベクトルの長さで正規化した値、すなわち（式２０）において絶対値を外したものの頻度を示すグラフである。また図２４は行列の最大固有値と最小固有値の比を利用した条件数の値の頻度とその累積値を示すグラフである。さらに、図２５は（式２２）で示した、行列を三角化した際の対角成分の最小値の頻度とその累積値を示すグラフである。グラフ上に鎖線で示した閾値Ｔｈ２，Ｔｈ３，Ｔｈ４を定めることによって、いずれの条件式においても、３点の法線方向が等しいか否かの判別を９０％以上の精度で実現できることが分かる。
【０１５７】
なお、ここでは、行列Ａの行要素ベクトルａ１，ａ２，ａ３を用いる方法について説明したが、もちろん、下のような列要素ベクトルｂ１，ｂ２，ｂ３を用いてもかまわない。
【数１４】
0003935499.tif 000015
【０１５８】
このような法線方向検出を利用した線形化係数組の算出方法について、図２６のフローチャートを用いて説明する。図２６は図６と基本的な処理の流れは同様であり、共通するステップには同一の符号を付しており、ここではその詳細な説明を省略する。
【０１５９】
図２６に示すように、まず、初期化処理としてカウンタｋに４（ステップＳ１１）、カウンタiteに１、Num＿maxに０、そしてｃに初期値ｃ０を代入する（ステップＳ６１）。ここで初期値ｃ０には、線形化係数組として存在しない値を設定することが望ましい。例えば、ｃ０＝［０００］Ｔ  などとすればよい。
【０１６０】
次に、入力画像ｋの画像内から３点をランダムに選択する（ステップＳ１３）。ここで、選択された３点を（ｘ１，ｙ１），（ｘ２，ｙ２），（ｘ３，ｙ３）とする。この３点を利用して、上述したような３点の法線方向が等しいか否かの判別を行う（ステップＳ６２）。３点の法線方向が異なっているときは（Ｓ６２でＹｅｓ）、選択された３点を利用して線形化画像を作成し、拡散反射領域の画素数Ｎｕｍ＿ｄを評価指標として用いて、線形化係数組を評価する（Ｓ１４〜Ｓ１８）。一方、３点の法線方向が等しいときは（Ｓ６２でＮｏ）、線形化画像の作成を行わないで、ステップＳ１９に進む。
【０１６１】
このようにして所定回数（ｉｔｅ＿ｔｈ回）ランダムサンプリングを行った後（Ｓ１９でＹｅｓ）、ｃに初期値ｃ０以外の値が入っているか否かを調べる（ステップＳ６３）。もし初期値ｃ０のままのときは（Ｓ６３でＹｅｓ）、入力画像ｋのこの小領域については解が求まらないと判断して処理を終了する（ステップＳ６４）。そして、他の入力画像の処理を行う（Ｓ２２，Ｓ２３）。解が求まらないのは、この小領域内の法線方向がほとんど等しい場合、または、この小領域では影や鏡面反射が支配的である場合である。解が求まらないと判断された領域の処理については、後述する。
【０１６２】
一方、ｃに初期値ｃ０以外の値が入っているときは（Ｓ６３でＮｏ）、入力画像ｋの線形化係数組ｃｋとしてｃを選択し（ステップＳ２１）、入力画像ｋの処理を終了する。そして、他の入力画像の処理を行う（Ｓ２２，Ｓ２３）。
【０１６３】
なお、ステップＳ６４において解が求まらないと判断された小領域については、画像補間部１０７によって、上述したような補間処理を行えばよい。
【０１６４】
また、解が求まらないと判断された小領域については、再度、画像領域分割部１０５において小領域のサイズを大きくし、再度、処理を行うようにしてもよい。これは、処理領域が広いほど、３点の法線方向が等しくなる可能性が低くなるからである。ところが、処理領域をあまり広くし過ぎてしまうと、平行光源仮定が成り立たなくなってしまう。このため、処理領域の拡大は平行光源仮定が成り立つ範囲で行うようにすることが望ましい。例えば、光源と対象物の距離を基準にして、（式６）で示された
Ｌｓ＝２・Ｄtan（θＴｈ／２）
というサイズの処理領域の大きさをまず設定し、もしその小領域について解が求まらないとき、領域を拡大するようにすればよい。また、逆に、適当なサイズの処理領域を設定し、解が求まるときはそのサイズを縮小していき、解が求まる最小のサイズの領域を最適な処理領域として設定するようにしてもかまわない。この場合、光源と対象物の距離は未知であってもよい。
【０１６５】
また、（１）線形化係数組の算出処理時に解が求まらないと判断されたとき、基底元画像Ｉ１，Ｉ２，Ｉ３を別の入力画像Ｉｘ，Ｉｙ，Ｉｚに変更するようにしてもよい。この際、基底元画像の選択のときと同様に、鏡面反射や影領域の少ない画像を新しい基底元画像として選択することが望ましい。
【０１６６】
ただし、一部の小領域のみについて基底元画像を変更してしまうと、上述の（式１３）の関係式が成り立たなくなる。そこで、領域（ｍ，ｎ）において、変更後の基底元画像Ｉｘ（ｍ，ｎ），Ｉｙ（ｍ，ｎ），Ｉｚ（ｍ，ｎ）を基にして生成した基底画像Ｉｘ（ｍ，ｎ）Ｂ，Ｉｙ（ｍ，ｎ）Ｂ，Ｉｚ（ｍ，ｎ）Ｂを、変更前の基底元画像Ｉ１（ｍ，ｎ），Ｉ２（ｍ，ｎ），Ｉ３（ｍ，ｎ）を基にして生成した基底画像Ｉ１（ｍ，ｎ）Ｂ，Ｉ２（ｍ，ｎ）Ｂ，Ｉ３（ｍ，ｎ）Ｂに変更することが望ましい。この処理について、説明する。
【０１６７】
基底画像は、線形化画像であることに着目すると、次の関係式が成り立つ。
【数１５】
0003935499.tif 000016
ここで、行列Ｃ１（ｍ，ｎ）は未知であるが、これを求めることができれば、基底画像Ｉｘ（ｍ，ｎ）Ｂ，Ｉｙ（ｍ，ｎ）Ｂ，Ｉｚ（ｍ，ｎ）Ｂから基底画像Ｉ１（ｍ，ｎ）Ｂ，Ｉ２（ｍ，ｎ）Ｂ，Ｉ３（ｍ，ｎ）Ｂを作成することができる。
【０１６８】
一方、領域（ｍ，ｎ）の近傍領域（ｍ’，ｎ’）においては、変更前の基底元画像Ｉ１（ｍ’，ｎ’），Ｉ２（ｍ’，ｎ’），Ｉ３（ｍ’，ｎ’）を基にして生成した基底画像Ｉ１（ｍ’，ｎ’）Ｂ，Ｉ２（ｍ’，ｎ’）Ｂ，Ｉ３（ｍ’，ｎ’）Ｂが求まっているため、次の関係式が成り立っている、
【数１６】
0003935499.tif 000017
ここで、行列Ｃ１（ｍ，ｎ）と異なり、行列Ｃ２（ｍ，ｎ）は既知である。また、上述したように、近傍の線形化係数組には相関があることに着目し、次のような仮定を導入する。
Ｃ２（ｍ，ｎ）＝Ｃ２（ｍ’，ｎ’）  （式２５）
ここで、
【数１７】
0003935499.tif 000018
であることに着目すると、（式２３）、（式２５）、（式２６）から、行列Ｃ１（ｍ，ｎ）は次のように求まる。
【数１８】
0003935499.tif 000019
（式２３）、（式２７）から、基底画像Ｉ１（ｍ，ｎ）Ｂ，Ｉ２（ｍ，ｎ）Ｂ，Ｉ３（ｍ，ｎ）Ｂは、基底画像Ｉｘ（ｍ，ｎ）Ｂ，Ｉｙ（ｍ，ｎ）Ｂ，Ｉｚ（ｍ，ｎ）Ｂから次の関係式によって求まる。
【数１９】
0003935499.tif 000020
ここで、近傍領域（ｍ’，ｎ’）は、上述のように、nearest neighborや２次補間、重み付け処理等によって最適なものを選べばよい。
【０１６９】
なお、解が求まらない領域を検出するためには、法線方向を調べる手法だけでなく、例えば、作成された基底画像や線形化画像の領域内でのエッジを調べる方法によっても可能である。一般に、画像は近傍領域で滑らかに変化するという性質がある。そこで、このエッジ情報を利用して、解が求まらない領域を検出する。
【０１７０】
図２７は上述した方法によって生成した基底画像の一例である。図２７において、領域８１は解が求まり正確な基底画像が生成された領域、領域８２は正確な解が求まらず、正確な基底画像が求まらなかった領域である。
【０１７１】
ところで、画像上のエッジは、次の３つの要因によって生成されると考えられる。
１）テクスチャによるエッジ
２）複数個の物体間の境界や、奥行きが急激に変化する境界に生じるエッジ
３）影や鏡面反射とそれ以外の領域との境界によるエッジ
ここで、カメラと対象物は固定したまま光源環境を変更しつつ撮影したとき、画像上のエッジのうちその位置が変化するのは、３）のエッジのみである。一方、基底画像や線形化画像ではその性質上、３）のエッジは存在しない。以上のことから、入力画像には１）、２）、３）のエッジが存在するが、基底画像や線形化画像には１）と２）のエッジしか存在しないことが分かる。すなわち、もし、基底画像や線形化画像が正しく求まっている場合、次の関係式を満たす。
【数２０】
0003935499.tif 000021
ただし、Ｅｄｇｅ（Ｉ）は画像Ｉからエッジを抽出した結果を示す。
【０１７２】
図２８において、（ａ）は図２７の領域８１を拡大した図、（ｂ）は各入力画像における領域８１に対応する領域を示す図である。図２８から分かるように、領域８１については（式３３）を満たしている。一方、図２９において、（ａ）は図２７の領域８２を拡大した図、（ｂ）は各入力画像における領域８２に対応する領域を示す図である。図２９から分かるように、領域８３のエッジは、いずれの入力画像（図２９（ｂ））にも含まれておらず、したがって領域８２は（式３３）を満たさない。これは、領域８２では解が求まらなかったからである。
【０１７３】
このように、（式３３）を解が求まるか否かの判別式として利用することができる。すなわち、この（式３３）を満たす領域については正確な基底画像が求まっているが、満たさない領域については、正確な基底画像が求まっていないと判断すればよい。
【０１７４】
また上述したように、解が求まらない小領域について、そのサイズを拡大して再度、処理を行うようにしてもよいが、分割する小領域の変更は、その大きさだけに限られるものではなく、例えば、領域分割を行う位置を変更するようにしてもよい。
【０１７５】
図３０は４個の球が置かれた状態を撮影した画像である。このとき、実線のように領域分割を行うと、図３１（ａ）に示すように、領域内に１平面しか存在しないため線形化画像を生成できない平面領域８４が生じる。一方、図３０を図３１（ｂ）のように領域分割すると、いずれの領域も複数の法線方向を持つため、全ての領域において線形化画像を生成することができる。したがって、解が求まらない小領域が存在するとき、領域を分割する位置を変更するようにしてもよい。
【０１７６】
また、図１５のように、小領域の設定を、領域同士に重なりがあるように行ってもかまわない。領域の大きさが一様でなく、また、領域間に重なりがある場合でも、上述したような補間処理によって線形化係数組を補間することができる。これは例えば、注目領域の重心位置と近傍領域との距離、およびその近傍領域の拡散反射画素率などの信頼性などを利用して、重み付け補間を行うことによって実現できる。
【０１７７】
もちろん、解が求まらないと判断された小領域は、領域分割から処理をやり直すのではなく、補間処理を行うようにしてもかまわない。
【０１７８】
また、小領域の分割方法を変更しながら複数の基底画像を作成し、作成した基底画像を組み合わせることによって、最適な基底画像を作成するようにしてもかまわない。この処理について詳述する。
【０１７９】
図４６（ａ）は平面上におかれた２個の球状物体４６１、４６２を撮影した画像を示している。このような状況において、光源位置を変えて、Ｋ枚の画像を撮影し、これらの画像を入力画像として線形化画像を作成する。
【０１８０】
ここで、図４６（ｂ），（ｃ）に示したように、画面領域分割の切り出し位置を変更し、処理を別々に行うことを考える。この図において、直線で区切られた領域が分割された小領域を示している。
【０１８１】
まず、領域４６７について考える。図４６（ｂ）のように領域分割を行った場合、領域４６７は切り出し領域４６９に含まれる。この切り出し領域４６９は図４６（ｂ）から明らかなように、球状物体４６２が支配的であるため、基底画像が正しく求まっていると考えられる。一方、図４６（ｃ）のように領域分割を行った場合、領域４６７は切り出し領域４７０に含まれる。この切り出し領域４７０は図４６（ｃ）から明らかなように、平面が支配的であるため、前述のように基底画像が正しく求まらないと考えられる。
【０１８２】
一方、領域４６８について考える。図４６（ｂ）のように領域分割を行った場合、領域４６７は切り出し領域４７１に含まれる。この切り出し領域４７１は図４６（ｂ）から明らかなように、平面が支配的であるため、基底画像が正しく求まらないと考えられる。一方、図４６（ｃ）のように領域分割を行った場合、領域４６７は切り出し領域４７２に含まれる。この切り出し領域４７２は図４６（ｃ）から明らかなように、球状物体４６１が支配的であるため、前述のように基底画像が正しく求まっていると考えられる。
【０１８３】
このように、同じ入力画像を利用しても、領域分割の切り出し位置によって、基底画像が正しく求まる領域と求まらない境域が変化する。そこで、切り出し位置を変更しながら基底画像を作成する処理を複数回行い、さらに、こうして求まった複数の基底画像から、正しく基底画像が求まっている領域のみを組み合わせることによって、正確な基底画像を作成することができる。
【０１８４】
このとき、正しく基底画像が求まっているかどうかを判断する評価関数が必要であるが、これは、例えば、定性的３値表現（例えば、「山口修、福井和広  “定性的３値表現に基づく画像マッチング”，電子情報通信学会技術研究報告ＰＲＭＵ２００２−３４，ｐｐ．２３−３０，２００２」参照）を利用すればよい。定性的３値表現とは、近傍画素との輝度値の大小関係、同値関係を表現したものであり、光源変動に強い特徴量であることが知られている。ここで、図４７のような８近傍における定性的３値表現は、以下のように表現される。
【数２１】
0003935499.tif 000022
ただし、ｆｉ，ｊは（ｉ，ｊ）における輝度値を示している。
【０１８５】
以下、処理の流れについて説明する。
【０１８６】
まず、上述のように、領域分割の切り出し位置Ｓを変更しながら基底画像を作成する処理を複数回行い、複数の基底画像を作成する。ここで、切り出し位置Ｓで求めた基底画像を[ＩＳ１Ｂ  ＩＳ２Ｂ  ＩＳ３Ｂ]とする。
【０１８７】
こうして求まった複数の基底画像を図４８のように再度、小領域に分割し、領域ごとに定性的３値表現を求める。この図において、直線で区切られた領域が分割された小領域を示している。さらに、Ｋ枚の入力画像Ｉ１，Ｉ２…ＩＫの対応領域においても同様に定性的３値表現を求める。（ｘ，ｙ）における画像Ｉの定性値３値表現をＱＴＲ（Ｉ（ｘ，ｙ））と表現すると、領域ｍの基底画像[Ｉ１Ｂ（ｍ）  Ｉ２Ｂ（ｍ）  Ｉ３Ｂ（ｍ）]は以下のように表現される。
【数２２】
0003935499.tif 000023
【０１８８】
ここで、定性的３値表現は８近傍を利用したが、本手法はもちろんこれに限定されるものではない。例えば、水平方向、垂直方向のみの定性的３値表現を用いてもかまわない。もちろん、評価関数として必ず定性的３値表現を使う必要はなく、例えば、前述のエッジ情報や空間輝度勾配、増分符号相関（例えば、「村瀬一朗、金子俊一、五十嵐悟  “増分符号相関によるロバスト画像照合”，電子情報通信学会論文誌，ｖｏｌ．Ｊ８３−Ｄ−ＩＩ，Ｎｏ．５，ｐｐ．１３２３−１３３１，２０００」参照）などであってもかまわない。
【０１８９】
図５１〜５３はこの処理により基底画像を生成した様子を示している。図５１の入力画像に対し、切り出し位置Ｓを１６通り変えながら作成した基底画像を図５２に示す。この図において、実線は分割された領域を示している。図５３は、こうして求めた１６枚の基底画像から、定性値３値表現を利用して合成した、基底画像を示している。このように、領域分割の切り出し位置を変更し、それぞれの切り出し位置で求まった基底画像を組み合わせることで、正確な基底画像が作成できることがわかる。
【０１９０】
（第２の実施形態）
図３２は本発明の第２の実施形態に係る画像処理方法を実行する画像処理装置の構成を示す図である。図３２において、図１と共通の構成要素には同一の符号を付しており、ここではその詳細な説明を省略する。
【０１９１】
図３２の構成を図１と対比すると、光源制御部１０１の代わりに、撮像環境において光源環境の変化を検出する光源環境変化検出部１０９が設けられている。本実施形態では、光源環境変化検出部１０９によって光源環境の変化が検出されたとき、画像入力部１０２が撮像を行い、これによって複数の画像を取得する。すなわち、本実施形態では、光源を自ら制御するのではなく、光源環境が変化したときに撮像を行うことによって、光源環境の異なる複数の画像を取得する。取得した画像は画像保持部１０４に保持され、第１の実施形態と同様の手法によって処理が行われる。
【０１９２】
光源環境変化検出部１０９は例えば、照度計を有し、この照度計による計測値が変化したとき、光源環境が変化したと判断する構成であればよい。照度計は撮影領域の一部に１個だけ取り付けてもよいし、複数個取り付けてもかまわない。
【０１９３】
あるいは、画面上の輝度値やＲＧＢ値などを測定し、この測定値が変化したとき、光源環境が変化したと判断する構成であってもよい。このとき、画面上の一部または複数部に測定対象領域を設定し、その領域の変化のみを調べるようにしてもかまわない。なお、このような測定対象領域は、変化が分かりやすいように、白色の領域に設定することが望ましい。また、撮影領域に、例えば完全拡散反射を起し、鏡面反射を生じない硫酸バリウムやスペクトラロンのような測定用対象物を設置し、その領域の輝度値はＲＧＢ値の変化を検出するようにしてもよい。
【０１９４】
また、光源環境は経時的に変化すると考えられるので、光源環境変化検出部１０９は、所定時間経過ごとに光学環境が変化したと判断するような構成としてもかまわない。この構成は、例えば窓から太陽光が入り込んでいる環境において、特に有効である。
【０１９５】
また、光源状態を実際に観察し、その変化を検出するようにしてもよい。上述したように、光源状態の観察は、鏡面球を用いて光源状態を撮像したり、広角カメラを天井方向に向けて光源を撮影したりすることによって実現できる。
【０１９６】
また、撮像領域内において最も輝度が高い画素の位置を認識し、その位置が変化したとき、光源環境が変化したと判断するようにしてもよい。これは、最も輝度が高い画素は鏡面反射を起しているはずなので、この位置が動いたときは、光源位置が変化したものと考えられるからである。
【０１９７】
あるいは、対象物に生じる影の位置が変化したとき、光源環境が変化したものとして検出するようにしてもよい。
【０１９８】
以上のように本実施形態によると、光源を能動的に変化させなくても、第１の実施形態と同様に、線形化画像を生成することができる。
【０１９９】
（第３の実施形態）
図３３は本発明の第３の実施形態に係る画像処理方法を実行する画像処理装置の構成を示す図である。図３３において、図１と共通の構成要素には同一の符号を付しており、ここではその詳細な説明を省略する。
【０２００】
図３３の構成を図１と対比すると、光源制御部１０１が省かれている。本実施形態では、上述の方法によって基底画像が既に作成され、画像保持部１０４に保持されており、画像入力部１０２によって入力された画像の線形化画像を生成する。このため、基底画像の生成を行う必要がないので、高速に処理することができる。
【０２０１】
画像入力部１０２によって入力された画像は、画像保持部１０４に保持される。一方、画像保持部１０４には、既に基底画像が保持されている。このとき、入力画像と保持されている基底画像とは、視点位置が同じであるものとする。これらの画像に対し、画像領域分割部１０５は上述の手法によって画像を小領域に分割する。そして、小領域合成画像生成部１０６は画像領域分割部１０５によって分割された各小領域において、第１の実施形態で説明した「（３）入力画像の線形化」の手法によって、入力画像を線形化する。さらに、解が求まらない領域については、画像補間部１０７により、補間処理を行い、線形化画像を生成する。この際、上述したように画像領域分割部１０５によって領域分割の方法を変更し、再度、処理を行うようにしてもかまわない。
【０２０２】
このように本実施形態では、既に作成された基底画像を画像保持部１０４に保持することによって、入力画像に対する線形化画像を、より高速に生成することができる。
【０２０３】
また本実施形態では、第１の実施形態のように光源環境を変化させたり、第２の実施形態のように光源環境の変化を検出したりしないため、画像保持部１０４に保持された複数の入力画像について、光源環境が異なっているか否かは不明である。ただし、もし、光源環境が等しい入力画像を検出することができれば、これを廃棄し、光源環境が異なる複数の入力画像のみを準備することができる。
【０２０４】
ここで、行列の縮退を調べることによって、３点の法線方向が等しいか否かを判断できることをすでに説明したが、光源環境が等しい場合も、同様に行列が縮退する。すなわち、同様の手法によって、光源環境が等しい画像を検出することができる。そこで、光源環境が異なる画像のみを用いることが可能になり、したがって、光源環境を能動的に変化させたり、光源環境の変化を検出したりしなくても、線形化画像を生成することができる。
【０２０５】
なお、上述した処理では、ランダムサンプリングにおいて３点を選択し、ＲＡＮＳＡＣを利用して、線形化係数組や基底画素値、さらには線形化画像を求めるものとしたが、もちろん、他の方法を用いてもかまわない。例えば、４点以上の点をランダムサンプリングし、それらの点から最小自乗法によって、最適な解を求めてもかまわない。また、ＲＡＮＳＡＣの手法の代わりに、例えば、「向川康博，宮木一，三橋貞彦，尺長健  “Photometric Image-Based Renderingによる仮想照明画像の生成“，情報処理学会論文誌,コンピュータビジョンとイメージメディア，vol.41, no. SIG10 (CVIM1), pp.19-30, 2000」に記載されたランダムサンプリングを利用した手法を用いてもかまわない。
【０２０６】
なお、これまでの説明では、光源は単一光源としたが、複数光源であってもかまわない。このことについて説明する。
【０２０７】
図３４（ａ）は２個の光源２２Ａ，２２Ｂが存在する環境において、対象物をカメラ２３によって撮影している状況を示す模式図である。２個の光源２２Ａ，２２Ｂは色ベクトルが等しい、すなわち同じ光源である。また、カメラ２３の焦点距離やゲイン、ホワイトバランスは固定であるとする。
【０２０８】
図３４（ａ）の状況において撮像される画像ＩＡ＋Ｂは、図３４（ｂ）のように光源２２Ａのみが存在するときの画像ＩＡと、図３４（ｃ）のように光源２２Ｂのみが存在するときの画像ＩＢとの和によって表される。すなわち、
ＩＡ＋Ｂ＝ＩＡ＋ＩＢ    （式２９）
このとき、光源２２Ａ，２２Ｂは同じ光源であるため、（式２）より、ＩＡ，ＩＢは次のように同じ基底ベクトルで表現される。
ＩＡ  ＝ｃＡ１Ｉ１＋ｃＡ２Ｉ２＋ｃＡ３Ｉ３    （式３０）
ＩＢ  ＝ｃＢ１Ｉ１＋ｃＢ２Ｉ２＋ｃＢ３Ｉ３    （式３１）
（式３０）（式３１）を（式２９）に代入すると、次の関係式が導かれる。
ＩＡ＋Ｂ＝ＩＡ＋ＩＢ
＝（ｃＡ１Ｉ１＋ｃＡ２Ｉ２＋ｃＡ３Ｉ３）＋（ｃＢ１Ｉ１＋ｃＢ２Ｉ２＋ｃＢ３Ｉ３）
＝（ｃＡ１＋ｃＢ１）Ｉ１＋（ｃＡ２＋ｃＢ２）Ｉ２＋（ｃＡ３＋ｃＢ３）Ｉ３
＝ ｃＡ＋Ｂ１Ｉ１＋ｃＡ＋Ｂ２Ｉ２＋ｃＡ＋Ｂ３Ｉ３   （式３２）
（式３２）より、光源が複数であっても色ベクトルが同じであれば、同様に処理可能であることがわかる。
【０２０９】
また、これまでの説明では、光源制御部１０１が制御できる光源のみが存在する場合を説明してきたが、太陽光や屋内照明のような外光が存在しても構わない。このことについて説明する。
【０２１０】
外光が存在する場合、実際に撮像される画像Ｉは、次の式で表される。
Ｉ＝Ｉｃ  ＋Ｉｎ  
【０２１１】
ここで、Ｉｃ  は光源制御部１０１により制御される光源１３のみが照射されたときに撮像される画像、Ｉｎ  はそれ以外の外光のみによって照らされたときに撮像される画像を示している。
【０２１２】
通常、このような外光は、光源制御部１０１が光源を変化させるような短い時間においてはほとんど変化しないと考えられる。そこで、光源制御部１０１が制御する光源１３を消灯させた状態で画像Ｉｎ  の撮像を行う。さらに、次の式に従い、すべての入力画像Ｉからこの画像Ｉｎ  の差分をとった差分画像を、新しい入力画像Ｉ’とする。
Ｉ’＝Ｉｃ  ＝Ｉ−Ｉｎ  
【０２１３】
このような画像Ｉ’を入力画像として利用することによって、外光が存在している環境においても、上述の方法によって処理可能である。
【０２１４】
また、光源の色ベクトルが異なる場合についても、画素の輝度値を基準に考えると、光源による輝度値の変化は線形に変化する。このため、色ベクトルが同じ場合と同様に、上述の方法によって処理可能である。
【０２１５】
また、上述の各実施形態では、Ｓｈａｓｈｕａの画像線形化を基にしたため、３枚の基底画像を用いる場合について説明したが、もちろん、本発明はこれに限られるものではない。例えば、点光源が遠方に存在する場合、球面調和関数を利用することによって、画像を９枚の基底画像の線形和によって表されることが知られている（例えば、「Ronen Basri, David Jacobs, “Photometric stereo with general, unknown lighting”, IEEE Conference on Computer Vision and Pattern Recognition pp.II-374-381, 2001」）。ところが、実際には、光源環境が一様でない場合や点光源仮定にならない環境光などが存在する。この場合、画像領域を小領域に分割すると光源環境を一様にすることができるため、やはり本発明は有効である。
【０２１６】
また、基底画像の枚数は、光源状態によって切り替えるようにしてもかまわない。例えば、光源は単一で位置も固定、ただし放射輝度のみが異なる場合、基底画像は１枚でよく、放射輝度の変化はゲインのみの変化によって表現される。また、光源が２個あるが、位置は固定、放射輝度のみが変化する場合、基底画像は２枚でよい。これは上述のように、２個の光源に照らされた状態で撮像される画像は、各光源のみにおいて撮像された画像の線形和に等しいことから明らかである。
【０２１７】
このような状況は、例えば家庭内の照明器具を光源として利用する場合などに有効である。家庭内に設置された照明器具は通常、複数個あるが、その位置は固定されている。また、インバータ照明であれば放射輝度は変化する。また放射輝度は、照明のちらつきなどにより変化する。
【０２１８】
以上説明したような画像処理方法を実現する装置を、図２のような家庭内作業ロボットに設けることによって、家庭内のような一般環境においても、作業を正確に行うことができる。光源環境を固定できる工場などと違い、家庭内では光源環境が大きく変化するため、鏡面反射や影による画像処理精度の劣化が著しい。これは、例えばロボットが対象物を把持する際にその位置姿勢をステレオカメラ等によって計測するときに、計測ミスを招く大きな要因となる。ロボットの例えば腕などのような可動部に光源を設置し、その光源を動かしながら画像を撮像することによって、本発明に係る画像処理を行うことができる。このとき、鏡面反射などの影響が除去された線形化画像が生成されるので、この線形化画像において対象物の位置計測を行うことによって、正確な位置姿勢計測ができる。
【０２１９】
なお、上述の説明では、対象物は固定であり、光源環境が変化することを前提にしていたが、もちろん、本発明はこれに限られるものではない。例えば、光源が固定であるが、対象物の位置姿勢が変化する場合であってもかまわない。この場合、対象物の位置姿勢が変化した画像において特徴点抽出を行い、さらに各画像間でその対応点を求めることによって、画像間の対応関係を求めるようにすればよい。特徴点の抽出や対応点検索は例えば、「J. Shi and C. Tomasi, "Good Features to Track," IEEE Conference on Computer Vision and Pattern Recognition ,1994, pp. 593-600, 1994」のような手法を用いればよい。
【０２２０】
なお、特許文献４には、任意の照明を照らして撮影された物体の画像を合成する手法が開示されているが、この手法は第３の従来例と同様に平行光を前提としているため、一般環境にそのまま適用することは極めて困難である。ところが、上述した本発明の手法を適用することによって、一般環境である点光源においても実施できる。もちろん、光源と対象物の両方を移動させてもかまわない。
【０２２１】
また、上記の処理を利用して、突起物や窪みのように、光源からの距離が、周囲と比べて極端に異なる領域を推定することも可能である。すなわち、画像処理によって、対象物の突起物や窪みの位置を推定することができる。この処理について説明する。
【０２２２】
図４９のように、対象物２１に、光源からの距離が周囲に比べ、極端に異なる突起物２６が存在する場合を考える。ここで、対象物が拡散物体であると仮定し、カメラは図４９の光源２２の近傍に設置されているとする。このとき撮像される画像と、その画像を利用して画像の線形化を行ない、光学特性に基づき分類した結果を示した模式図を図５０（ａ）、（ｂ）に示す。図５０（ｂ）において、黒色領域２７が拡散反射領域と分類された領域を、また、白色領域２８が未定義領域または鏡面反射領域と分類された領域を示している。本来、影領域が存在するが、ここでは説明を簡単にするために省略している。この図から、光源からの距離がほぼ等しい対象物は正確に拡散反射領域と分類されているが、拡散物体である突起物２６はその分類に失敗していることがわかる。
【０２２３】
これは以下の理由による。画像の線形化は前述のようにＲＡＮＳＡＣを利用して行なっているため、撮像範囲内で拡散反射領域と分類された画素数Ｎｕｍ＿ｄが最大となる線形化画像が作成される。また、前述のように、画像の線形化が正確に動作するためには、光源からの距離がほぼ等しい領域のみで処理を行なう必要がある。ここで、図６のフローチャートで示した線形化係数組の算出処理におけるステップＳ１３の３点の選択処理を考える。ここで、突起物から３点が選択された場合、その３点における光源との距離Ｄとほぼ等しい光源との距離をもつ領域のみが拡散反射領域と分類される。そのため、拡散反射領域と分類される画素数Ｎｕｍ＿ｄは非常に小さくなる。一方、突起物ではない対象物から３点が選択された場合、拡散反射領域と分類される領域は、その３点における、光源との距離Ｄとほぼ等しい光源との距離をもつ領域となるが、この領域は対象物において支配的である。そのため、拡散反射領域と分類される画素数Ｎｕｍ＿ｄは非常に大きくなる。そのため、図５０（ｂ）のように、光源からの距離がほぼ等しい対象物は正確に拡散反射領域と分類されるが、拡散物体であるはずの突起物２６はその分類に失敗してしまう。
【０２２４】
以上のことから、突起物や窪みのように、光源からの距離が、周囲と比べ極端に異なる被写体領域を推定することが可能である。つまり、対象物が鏡面反射を起こさないことが既知の場合、鏡面反射領域または未定義領域に分類される領域は、周囲と比べ極端に異なる領域であると判断する。
【０２２５】
鏡面反射や影の影響の除去は、前述のように対象物の位置・姿勢検出といった３次元計測に利用されることがある。上記の手法により、突起物や窪みの位置を推定することは、３次元計測を直接行なっているため、非常に有効である。
【０２２６】
もちろん、このように画像の線形化処理が正確に求まらない領域を作らないために、画像領域分割部１０５による小領域分割を、光源からの距離がほぼ等しい領域ごとに行うようにしてもかまわない。
【０２２７】
また、本発明に係る画像処理は、バイオメトリック認証などで特に有効である。顔認証や虹彩認証において、鏡面反射による映り込みは画像のノイズとなり、認証精度の劣化を招いてしまう。これに対して本発明では、拡散反射のみの画像である線形化画像を生成できるため、鏡面反射による認証精度の劣化を防ぐことができる。
【０２２８】
例えば、顔認証を行う場合、光源環境を変更した画像を複数枚撮影し、それらの画像から固定照明環境の線形化画像を作成し、その線形化画像を利用して認証処理を行えばよい。これは、車内での人物認証などに特に有効である。本発明では、対象の位置は固定であることが望ましいが、車内では人物はシート上にしか存在しないため、認証対象は固定されていると仮定することが可能である。
【０２２９】
また、携帯端末を用いた認証に本発明を適用してもよい。図３５はある人物９１が携帯端末９２を利用して顔認証を行っている図である。携帯端末９２はカメラと複数のＬＥＤ光源を有しており（図示は省略）、第１の実施形態に係る画像処理を実行可能に構成されている。そして、生成した線形化画像を利用して、従来の方法によって顔認証を行う。
【０２３０】
画像入力部１０２としてのカメラが撮影を行う際、携帯端末９２内の光源制御部１０１は複数のＬＥＤ光源を順に点灯させる。これにより、光源環境が異なる複数の画像を撮像することができる。この際、手ブレなどによりカメラ位置がずれてしまう可能性が高いため、ジャイロなど、手ブレ補正処理を導入することが望ましい。
【０２３１】
ここで、光源となりうるものとして、携帯端末９２に設けられた複数のＬＥＤ光源の他に、環境光源９３が存在している。図３６（ａ）は図３５の状況で撮影した画像の一例である。図３６（ａ）から分かるように、認証を行う人物領域９４とその背景領域９５とでは光源環境が全く異なる。これは、背景が空などの場合に特に顕著である。人物領域９４では、携帯端末９２に十分近いため、その光源の影響を強く受ける。一方、背景領域９５では、携帯端末９２からは相当遠いため、その光源の影響はほとんど受けず、したがって環境光源９３が支配的になる。このため、光源環境が全く異なる領域が一枚の画像上に共存することになり、第３の従来例では、線形化係数を推定することが難しく、信頼性の低い線形化画像を作成してしまい、この結果、認証精度を劣化させる。
【０２３２】
一方、本発明では、図３６（ｂ）に示すように、画像を小領域９６に分割して処理を行うため、人物領域９４における各小領域では、背景領域９５との境界を含む小領域を除き、光源環境は等しくなる。このため、信頼性の高い線形化画像を生成することができ、この結果、認証精度を向上させることができる。
【０２３３】
また、本発明に係る画像処理は、画像を提示する際に適用してもよい。これは、例えばカットされた宝石や金属のように、鏡面反射が非常に強い対象物において特に有効である。このような対象物は鏡面反射が強すぎるため、その形状を黙視で確かめることが難しい。ところが、本発明を適用することによって、鏡面反射が生じていない画像を生成できるので、形状を確認するのに適した画像を提示することができる。
【０２３４】
また、基底画像を線形結合することによって任意光源の画像を生成することができるので、光源環境が異なった画像を容易に生成することができる。これにより、ある対象物について、様々な光源環境における見え方を前もって確かめることが可能になる。これは例えば、家庭内のインテリアを検討するときに有効である。例えば、椅子を購入する際、その椅子を家のリビングに置いたときどのように見えるのかは、光源環境に大きく依存する。朝と夕方とで印象が全く異なることも多々ある。このため、その椅子の画像を、光源環境を変えて提示することによって、購入者は、様々な光源環境における実際の見え方を前もって確かめることができる。
【０２３５】
なお、本発明に係る画像処理方法は、そのステップの全部または一部を、専用のハードウェアを用いて実現してもかまわないし、または、コンピュータのプログラムによってソフトウェア的に実現してもかまわない。例えば、本発明の各実施形態に係る画像処理方法は、当該方法を実現するためのプログラムを、コンピュータに実行させることによって、実現することができる
【産業上の利用可能性】
【０２３６】
本発明に係る画像処理は、光源環境が複雑な状況下でも、非常に簡易な構成によって、鏡面反射が生じない理想状態での画像である線形化画像を生成することができ、鏡面反射や影の影響を除去できるので、例えば、家庭内用ロボットや自動車などの画像処理装置、または、認証装置や画像提示装置等に有用である。
【図面の簡単な説明】
【０２３７】
【図１】本発明の第１の実施形態に係る画像処理装置の構成図である。
【図２】家庭内作業ロボットの模式図である。
【図３】平行光源と点光源との相違を説明するための図である。
【図４】ある撮影状況と、そのときの画像とを示す図である。
【図５】図４の場合における小領域分割を示す図である。
【図６】本発明の第１の実施形態における線形化係数組の算出処理を示すフローチャートである。
【図７】本発明の第１の実施形態における基底画像の生成処理を示すフローチャートである。
【図８】図５（ａ）に第３の従来例を適用した結果を示す図である。
【図９】近傍領域の例を示す図である。
【図１０】近傍領域の線形化係数組のうち最適なものを選択する方法を示すフローチャートである。
【図１１】近傍領域の他の例を示す図である。
【図１２】近傍領域との境界領域を示す図である。
【図１３】図４０に対する線形化画像である。
【図１４】（ａ）は図４５（ａ）から生成した線形化画像、（ｂ）は図４５（ａ）から分離した鏡面反射成分である。
【図１５】領域分割の他の例であり、小領域同士が重なりを持つ例である。
【図１６】領域分割の他の例であり、小領域の形状が矩形でない例である。
【図１７】重みを位置の関数として設定して線形化係数組を算出する方法を説明するための図である。
【図１８】線形化係数組の分離精度を模式的に示す図である。
【図１９】本発明の第１の実施形態によって生成された線形化画像の一例である。
【図２０】行列が縮退しているときのその要素ベクトルの関係を示す図である。
【図２１】行列の三角化とその対角成分の幾何学的な意味を示す図である。
【図２２】３点の法線方向が等しいか否かの判断方法における閾値決定を説明するための図である。
【図２３】図２２における、各条件式の評価値を示すグラフである。
【図２４】図２２における、各条件式の評価値を示すグラフである。
【図２５】図２２における、各条件式の評価値を示すグラフである。
【図２６】本発明の第１の実施形態の他の例における、法線方向検出を利用した線形化係数組の算出処理を示すフローチャートである。
【図２７】基底画像が求まらない領域を画像のエッジを利用して検出する方法を説明するための図である。
【図２８】基底画像が求まらない領域を画像のエッジを利用して検出する方法を説明するための図である。
【図２９】基底画像が求まらない領域を画像のエッジを利用して検出する方法を説明するための図である。
【図３０】領域分割の変更を説明するための図である。
【図３１】領域分割の変更を説明するための図である。
【図３２】本発明の第２の実施形態に係る画像処理装置の構成図である。
【図３３】本発明の第３の実施形態に係る画像処理装置の構成図である。
【図３４】光源が複数存在する場合の処理を説明するための図である。
【図３５】携帯端末を利用した顔認証を示す図である。
【図３６】図３５の状況で撮影した画像と領域分割を示す図である。
【図３７】携帯電話２０１を家庭内で撮影したときの画像を模式的に示す図である。
【図３８】図３７の携帯電話を検出するためのパターン画像である。
【図３９】対象物をステレオカメラによって撮影する状況を示す図である。
【図４０】図３９において撮影された画像である。
【図４１】光源とカメラ、対象物の法線方向の関係を示す概念図である。
【図４２】光学現象である拡散反射、鏡面反射および影を示す概念図である。
【図４３】光学特性に基づく領域分割の基準を示すグラフである。
【図４４】平行光源において、第３の従来例を用いて画像処理を行った結果を示す図である。
【図４５】点光源において、第３の従来例を用いて画像処理を行った結果を示す図である。
【図４６】領域分割の切り出し位置によって、基底画像が変化することを説明するための概念図である。
【図４７】８近傍を利用した定性的３値表現を表現するための概念図である。
【図４８】領域分割の切り出し位置を変更させながら基底画像を作成する処理を説明するための概念図である。
【図４９】突起物を有する対象物の撮影状況を示す図である。
【図５０】図４９における画像と、その光学特性に基づく領域分割の結果を示す図である。
【図５１】領域分割の切り出し位置を変更しながら基底画像を作成した際の入力画像を示す図である。
【図５２】領域分割の切り出し位置を１６通り変更しながら作成した１６枚の基底画像を示す図である。
【図５３】図５２の基底画像を組み合わせて作成した正確な基底画像を示す図である。
【符号の説明】
【０２３８】
１０１  光源制御部
１０２  画像入力部
１０３  線形化画像生成部
１０４  画像保持部
１０５  画像領域分割部
１０６  小領域合成画像生成部
１０７  画像補間部
１０８  画像処理部
１０９  光源環境変化検出部
【図１】
0003935499.tif 000024
【図２】
0003935499.tif 000025
【図３】
0003935499.tif 000026
【図６】
0003935499.tif 000027
【図７】
0003935499.tif 000028
【図９】
0003935499.tif 000029
【図１０】
0003935499.tif 000030
【図１１】
0003935499.tif 000031
【図１２】
0003935499.tif 000032
【図１３】
0003935499.tif 000033
【図１５】
0003935499.tif 000034
【図１６】
0003935499.tif 000035
【図１７】
0003935499.tif 000036
【図１８】
0003935499.tif 000037
【図２０】
0003935499.tif 000038
【図２１】
0003935499.tif 000039
【図２２】
0003935499.tif 000040
【図２３】
0003935499.tif 000041
【図２４】
0003935499.tif 000042
【図２５】
0003935499.tif 000043
【図２６】
0003935499.tif 000044
【図３２】
0003935499.tif 000045
【図３３】
0003935499.tif 000046
【図３４】
0003935499.tif 000047
【図３５】
0003935499.tif 000048
【図３６】
0003935499.tif 000049
【図３７】
0003935499.tif 000050
【図３８】
0003935499.tif 000051
【図３９】
0003935499.tif 000052
【図４０】
0003935499.tif 000053
【図４１】
0003935499.tif 000054
【図４３】
0003935499.tif 000055
【図４７】
0003935499.tif 000056
【図４８】
0003935499.tif 000057
【図４９】
0003935499.tif 000058
【図５０】
0003935499.tif 000059
【図４】
0003935499.tif 000060
【図５】
0003935499.tif 000061
【図８】
0003935499.tif 000062
【図１４】
0003935499.tif 000063
【図１９】
0003935499.tif 000064
【図２７】
0003935499.tif 000065
【図２８】
0003935499.tif 000066
【図２９】
0003935499.tif 000067
【図３０】
0003935499.tif 000068
【図３１】
0003935499.tif 000069
【図４２】
0003935499.tif 000070
【図４４】
0003935499.tif 000071
【図４５】
0003935499.tif 000072
【図４６】
0003935499.tif 000073
【図５１】
0003935499.tif 000074
【図５２】
0003935499.tif 000075
【図５３】
0003935499.tif 000076