本発明は、いわゆるパノラマ画像を合成する技術、およびパノラマ画像を用いて画像から物体を検出する技術に関する。
パンチルト(PT)カメラ等を用いて物体検出を行う方法としては、撮像された複数枚の画角の異なる画像から1枚の大きなパノラマ画像を合成し、合成されたパノラマ画像を用いて背景差分等の画像処理を行う方法が有効である。
このようなパノラマ画像合成に関する従来技術として、例えば特許文献1では、カメラの位置、姿勢、および入力画像対から画像解析によって動きベクトルを求め、その動きベクトルに基づいてカメラパラメータを算出し、算出したカメラパラメータに従って画像を貼り合せてパノラマ画像合成を行う方法が開示されている。この方法により、各画像間での正確な位置合わせを行うことができ、位置歪の少ないパノラマ画像を合成することができる。
特開2002−150264号公報
しかしながら、上述の従来技術では、パノラマ画像合成に用いる画像を撮像している間に光源の位置、方向、強さ、個数などの光源環境に変化が生じた場合、生成されるパノラマ画像は、部分ごとに光源状態が異なる、すなわち光源環境が同一でないパノラマ画像となる。このような光源環境が同一でないパノラマ画像を用いて背景差分を行った場合、物体以外の背景領域も物体として検出されてしまい、物体検出の精度は大きく低下する。
また、パノラマ画像を合成した後に光源環境に変化が生じた場合も、物体検出を行う画像とパノラマ画像とで光源環境が大きく異なるので、物体以外の背景領域も物体として検出されてしまい、背景差分による物体検出の精度は大きく低下する。
このような光源環境の変化に起因する問題は、例えば屋外での物体検出を行う場合には特に顕著となり、実際のシステムとして適用するためには、この問題を解消する必要がある。
前記の問題に鑑み、本発明は、光源環境に変化が生じた場合においても物体検出を可能にすべく、画像全体にわたって光源環境が同一のパノラマ画像を、合成可能にすることを課題とする。
前記の課題を解決するために、本発明は、パノラマ画像合成方法として、第1の重複領域を共通に持ち、かつ、第1の重複領域以外の第2の重複領域を持つN(Nは3以上の整数)枚の画像と第2の重複領域を持たない被拡張画像とからなる重複画像群を、取得し、被拡張画像の線形係数を、第1の重複領域における重複画像群の画像それぞれの画素値を用いて算出し、算出した線形係数と、第2の重複領域におけるN枚の画像それぞれの画素値とを用いて、被拡張画像のサイズを第2の重複領域まで拡張し、このサイズが拡張された被拡張画像を基にして、パノラマ画像を合成するものである。
この発明によると、第1の重複領域の各画像から求めた線形係数を用いることによって、被拡張画像を、第2の重複領域まで拡張することができる。すなわち、任意に選択した被拡張画像と同一の光源環境における画像を、「被拡張画像+第2の重複領域」まで、拡張することができる。したがって、画像全体にわたって光源環境が同一のパノラマ画像を容易に生成することができる。
なお、本願明細書でいうところの「光源環境が同一のパノラマ画像」とは、そのパノラマ画像の各部分において、推定される光源の位置、方向、強さおよび個数が、実質的にほぼ同一であるもの、のことをいう。理論上は、光源環境を完全に同一にすることは可能であるが、実際には、線形係数の算出誤差等に起因して、光源環境が完全には同一にはならない場合もあり得る。本願発明は、そのような場合も、含むものである。
また、本発明は、画像から物体を検出する方法として、前記本発明のパノラマ画像合成方法によって、検出対象画像の撮影範囲を含む複数のパノラマ画像を生成し、検出対象画像と複数のパノラマ画像とを基にして、検出対象画像と光源環境が同一の予測背景画像を生成し、これを検出対象画像と対比することによって、物体検出を行うものである。
この発明によると、検出対象画像について、画像全体にわたって光源環境が同一のパノラマ画像を複数枚用いることによって、光源環境が同一の予測背景画像が生成される。これにより、パノラマ画像と光源環境が異なっている画像についても、精度良く、物体検出を行うことができる。
本発明によると、画像の線形化を利用することによって、光源環境が同一のパノラマ画像を合成することができる。また、このパノラマ画像を複数枚用いることによって、任意の光源環境において撮影した画像から、物体検出を行うことができる。
図1は本発明の第1の実施形態に係る物体検出装置の構成図である。
図2はカメラの位置・姿勢を定義する座標系を示す図である。
図3はパノラマ投影面座標系への座標変換方法を示す図である。
図4は図1のパノラマ画像合成部の動作であり、本発明の第1の実施形態に係るパノラマ画像合成方法を示すフローチャートである。
図5は選択された重複画像群の一例を示す模式図である。
図6は線形化係数の算出方法を説明するための図である。
図7はパノラマ画像を用いた物体検出を示す図である。
図8は本発明の第2の実施形態に係るパノラマ画像合成方法を示すフローチャートである。
図9は本発明の第1の実施形態に係るパノラマ画像合成方法を用いて合成したパノラマ画像の一例を示す図である。
図10は評価画像群の例を示す図である。
図11は図10を模式的に表した図である。
図12は本発明の第3の実施形態に係るパノラマ画像合成方法を示すフローチャートである。
図13は評価画像群の一例の模式図である。
図14は評価画像群の判定処理を示すフローチャートである。
図15はパノラマ画像合成の過程を説明する図である。
図16はパノラマ画像の例である。
図17は第1の実施形態と第3の実施形態との比較結果である。
図18は評価画像群の一例の模式図である。
図19は評価画像群の判定処理を示すフローチャートである。
符号の説明
11 A領域(第1の領域)
12 B領域(第2の領域)
23 空き缶(物体)
101 撮像部
102 撮像画像補正部
103 画像記憶部
104 パノラマ画像合成部
105 物体検出部
106 検出物体表示部
本発明の第1態様では、パノラマ画像合成方法として、第1の重複領域を共通に持ち、かつ、前記第1の重複領域以外の第2の重複領域を持つN(Nは3以上の整数)枚の画像と前記第2の重複領域を持たない被拡張画像とからなる重複画像群を、取得するステップと、前記被拡張画像の線形係数を、前記第1の重複領域における前記重複画像群の画像それぞれの画素値を用いて、算出するステップと、前記線形係数と、前記第2の重複領域における前記N枚の画像それぞれの画素値を用いて、前記被拡張画像のサイズを前記第2の重複領域まで拡張するステップとを備え、サイズが拡張された前記被拡張画像を基にしてパノラマ画像を合成するものを提供する。
本発明の第2態様では、前記N枚の画像として、光源環境が互いに異なっている画像を取得する第1態様のパノラマ画像合成方法を提供する。
本発明の第3態様では、算出した前記被拡張画像の線形係数の信頼性を判定するステップを備え、信頼性が低いと判定したとき、重複画像群の再取得を行う第1態様のパノラマ画像合成方法を提供する。
本発明の第4態様では、前記取得ステップは、画像記憶部に記憶された画像の中から重複画像群を選択するものであり、前記画像記憶部に新たな画像が入力されたとき、重複画像群の再選択を行い、この新重複画像群と旧重複画像群とで画像合成の好適性を比較し、この比較結果を基にしてパノラマ画像を更新するか否かを判定する第1態様のパノラマ画像合成方法を提供する。
本発明の第5態様では、画像合成の好適性を拡散反射画素の個数を用いて判断するものであり、新重複画像群の方が拡散反射画素の個数が多いとき、パノラマ画像の更新を行う第4態様のパノラマ画像合成方法を提供する。
本発明の第6態様では、画像合成の好適性を画像間の独立性を用いて判断するものであり、新重複画像群の方が画像間の独立性が高いとき、パノラマ画像の更新を行う第4態様のパノラマ画像合成方法を提供する。
本発明の第7態様では、第1態様のパノラマ画像合成方法によって、検出対象画像の撮影範囲を含む複数のパノラマ画像を生成するステップと、前記検出対象画像と前記複数のパノラマ画像とを基にして、前記検出対象画像と光源環境が同一の予測背景画像を生成するステップと、前記検出対象画像と前記予測背景画像とを対比し、物体検出を行うステップとを備えた物体検出方法を提供する。
本発明の第8態様では、前記複数のパノラマ画像は少なくとも3枚である第7態様の物体検出方法を提供する。
本発明の第9態様では、前記取得ステップにおいて、同一の前記第1の重複領域を持つ前記重複画像群が複数個あるとき、各重複画像群について、算出される線形係数の信頼性を評価し、信頼性が最も高いものを選択する第1態様のパノラマ画像合成方法を提供する。
本発明の第10態様では、被拡張画像に対して、評価画像群が存在するか否かを判定するステップを備え、評価画像群が存在するとき、この評価画像群を用いて、前記被拡張画像の線形係数を算出する第1態様のパノラマ画像合成方法を提供する。
本発明の第11態様では、前記評価画像群が複数個存在するとき、当該評価画像群に含まれた前記第2の重複領域における画像の独立性が最も高いものを選択する第10態様のパノラマ画像合成方法を提供する。
本発明の第12態様では、前記評価画像群が複数個、存在するとき、当該評価画像群が占める画像領域における画素数が最も多いものを選択する第10態様のパノラマ画像合成方法を提供する。
本発明の第13態様では、第1の重複領域を共通に持ち、かつ、前記第1の重複領域以外の第2の重複領域を持つN(Nは3以上の整数)枚の画像と、前記第2の重複領域を持たない被拡張画像とからなる重複画像群を取得する手段と、前記被拡張画像の線形係数を、前記第1の重複領域における前記重複画像群の画像それぞれの画素値を用いて、算出する手段と、前記線形係数と、前記第2の重複領域における前記N枚の画像それぞれの画素値を用いて、前記被拡張画像のサイズを、前記第2の重複領域まで拡張する手段とを備え、サイズが拡張された前記被拡張画像を基にして、パノラマ画像を合成するパノラマ画像合成装置を提供する。
本発明の第14態様では、撮像部と、前記撮像部によって撮像された画像に対して、幾何学的補正および光学的補正を行う撮像画像補正部と、前記撮像画像補正部によって補正された画像を記憶する画像記憶部と、前記画像記憶部に記憶された画像を入力とする第13態様のパノラマ画像合成装置とを備え、前記パノラマ画像合成装置は、前記重複画像群を、前記画像記憶部に記憶された画像の中から取得する撮像装置を提供する。
本発明の第15態様では、第14態様の撮像装置と、前記撮像装置が備えた前記パノラマ画像合成装置によって合成されたパノラマ画像を用いて、物体検出を行う物体検出部と、前記物体検出部によって検出された物体の領域を表示する検出物体表示部とを備えた物体検出装置を提供する。
本発明の第16態様では、コンピュータにパノラマ画像合成を実行させるプログラムとして、第1の重複領域を共通に持ち、かつ、前記第1の重複領域以外の第2の重複領域を持つN(Nは3以上の整数)枚の画像と、前記第2の重複領域を持たない被拡張画像とからなる重複画像群を取得するステップと、前記被拡張画像の線形係数を、前記第1の重複領域における前記重複画像群の画像それぞれの画素値を用いて算出するステップと、前記線形係数と、前記第2の重複領域における前記N枚の画像それぞれの画素値を用いて、前記被拡張画像のサイズを、前記第2の重複領域まで拡張するステップと、サイズが拡張された前記被拡張画像を基にして、パノラマ画像を合成するステップとをコンピュータに実行させるものを提供する。
本発明の第17態様では、互いに一部の画像領域が重複し、かつ、光源環境が異なる複数の部分画像を入力とし、前記入力した部分画像に基づいて、前記各部分画像よりも広い領域にわたり、光源環境が同一のパノラマ画像を生成し、出力するパノラマ画像合成装置を提供する。
以下、本発明の実施の形態について、図面を参照しつつ、説明する。
(第1の実施形態)
図1は本発明の第1の実施形態に係るパノラマ画像合成方法を用いた物体検出装置の構成図である。図1において、101は静止画または動画を撮像する撮像部、102は撮像部101によって撮像された画像に対して補正を行う撮像画像補正部、103は撮像画像補正部102を用いて補正された画像を記憶する画像記憶部、104は画像記憶部103に記憶された画像からパノラマ画像を合成するパノラマ画像合成装置としてのパノラマ画像合成部、105は撮像部101によって撮像された画像およびパノラマ画像合成部104によって合成されたパノラマ画像を用いて物体検出を行う物体検出部、106は物体検出部105によって検出された物体領域を表示する検出物体表示部である。撮像部101、撮像画像補正部102、画像記憶部103およびパノラマ画像合成部104によって、本発明の撮像装置が構成されている。
以下、図1の物体検出装置について、撮像方向の異なる複数枚の画像からパノラマ画像を合成し、合成されたパノラマ画像を用いて物体検出を行う場合の動作を説明する。ここで述べる物体検出とは、光源環境の異なる少なくとも3枚のパノラマ画像の合成を行い、これを背景として、その後撮像された画像の中から背景以外に映り込むものを検出することを指す。
なお、説明の簡単のため、環境条件として、光源は平行光源であり、物体の表面は完全拡散反射面であるものと仮定する。
撮像部101は撮像方向の異なる画像の撮像を行う。具体的には例えば、パンチルト(PT)動作可能なビデオカメラやデジタルスチルカメラ、または、PT動作可能な雲台に固定されたビデオカメラやデジタルスチルカメラによって、撮影が実行される。ここでは、PT動作可能なビデオカメラを用いるものとする。
また撮像部101は撮像した画像とともに、カメラの位置・姿勢情報を撮像画像補正部102に送る。カメラの位置・姿勢情報とは、図2に示す(Xw,Yw,Zw,θ,φ)の5つのパラメータをいう。Xw,Yw,Zwは世界座標系におけるカメラの位置座標(点o)を示し、θ,φはそれぞれカメラ座標系におけるY軸、X軸の正方向に対して左回りに回転させる角度(パン角,チルト角)を示す。カメラの位置・姿勢の検出は、例えばGPS等の位置検出装置、ジャイロスコープ等の姿勢検出装置を用いればよい。また、予め計画された撮影プランからカメラの位置・姿勢を算出してもよい。予め計画された撮影プランとは例えば、カメラを始点(X0,Y0,Z0,θ0,φ0)からφの正方向に角速度0.1π[rad/sec]の等速運動に従って動かす、等といったものである。
撮像画像補正部102は撮像部101によって撮像された画像に対し、幾何学的補正、光学的補正、および撮像画像座標系からパノラマ投影面座標系への座標変換を行う。撮像画像の幾何学的補正としては、レンズ歪の補正を行う。例えば、「コンピュータビジョン技術評論と将来展望,pp.42−44,新技術コミュニケーション,1998」に示されたWengらによるレンズ歪補正方法を用いればよい。また、撮像画像の光学的補正としては、周辺減光の補正を行う。例えば「平成12年度ナチュラルビジョンの研究開発プロジェクト(次世代映像表示・伝送システム)研究開発報告書,pp.51−53,通信・放送機構,2001」に示された、輝度の時間変動の無い1つの点光源を被写体とし、その点光源が所望の位置に来るようにカメラの首を振り、観測された各位置での輝度値の逆数を用いて周辺減光の補正係数を算出する方法を、用いればよい。
また、パノラマ投影面座標系への座標変換方法としては、例えば図3に示すとおり、撮像画像座標系(i,j)から円筒座標系に投影を行ったパノラマ投影面座標系(u,v)への変換を行う関数をfとすると、fは撮像部101から送られたカメラの位置・姿勢情報を用いて次式によって表される。
(u,v)=f(i,j,Xw,Yw,Zw,θ,φ)(式1)
なお、撮像画像座標系(i,j)からパノラマ投影面座標系(u,v)への変換は球面座標系を用いた投影を行ってもよい。また、パン・チルト角が小さい場合は平面座標系を用いた投影を行ってもよい。
なお、上述の撮像画像補正部102で用いる各補正パラメータは、本装置で物体検出を行う以前に予め求めておく。
画像記憶部103は撮像画像補正部102によって補正を行った画像とカメラの位置・姿勢情報を、記憶媒体に記憶する。記憶媒体とは、例えばメモリやハードディスク、フィルム等によって実現される。
<パノラマ画像合成>
パノラマ画像合成部104は画像記憶部103に記憶された複数枚の画像から、パノラマ画像を生成する。以下、パノラマ画像合成部104の動作を図4のフローチャートを用いて説明する。
まず、ステップS11において、画像記憶部103に記憶された画像の中から、第1の重複領域(A領域)を共通に持つ重複画像群であって、かつ、A領域以外の第2の重複領域(B領域)を持つN(Nは3以上の整数)枚の画像と、B領域を持たない被拡張画像としての画像とからなる重複画像群を、選択する(S11)。ここでは、Nは3としている。図5は選択された重複画像群の例を示す模式図である。図5において、I1,I2,I3,I4は画像記憶部103から選択された画像であり、これら4枚の画像I1,I2,I3,I4はA領域11において重複している。またA領域11以外のB領域12において、3枚の画像I1,I2,I3が重複しており、画像I4はB領域12を含まない。なお、A領域およびB領域における重複画像の枚数に関しては、後述する。
各画像の重複領域の検出は、例えば、パノラマ投影面座標系(u,v)における各画像の座標値を用いて行えばよい。また、ある画素位置に対する重複画像群が複数存在するときは、例えば、B領域を持つ3枚の画像間の独立性が最も高いものを、選択するようにしてもよい。この具体的な方法については、後述する。
次に、ステップS12において、ステップS11で選択した重複画像群を用いて、被拡張画像の拡張に用いる線形係数を算出する。線形係数の算出は、A領域における重複画像群の各画像の画素値を用いて、Shashuaの方法(「Shashua A.,“Geometry and Photometry in 3D Visual Recognition”,P.D.thesis,Dept.Brain and Cognitive Science,MIT,1992」参照)に基づいて、行う。
以下、Shashuaの方法による線形係数の算出について、詳しく説明する。Shashuaは、平行光源と、被写体表面が全て完全拡散反射面であることとを仮定することによって、光源方向の異なる3枚の画像の線形結合により任意の光源方向の画像を表現できることを示している。すなわち、光源方向が異なる3枚の画像をベクトル表現したものをI1,I2,I3とすると、任意の光源方向の画像I4は、次式のように線形結合によって表現できる。
I4=c4 1I1+c4 2I2+c4 3I3 (式2)
ここで、c4=[c4 1c4 2c4 3]Tを画像I4に対する線形係数として算出する。
具体的には図6に示すように、4枚の画像I1,I2,I3,I4に対して、3点の画素座標P1(x1,y1),P2(x2,y2),P3(x3,y3)の選択を行い、選択された3点P1,P2,P3の各座標における画素値iを利用し、次の式を用いて線形化係数の算出を行う。
ここで、ik(x,y)は入力画像kにおける画素座標(x,y)の画素値を表している。
この(式3)により、線形係数c4=[c4 1c4 2c4 3]Tの算出を行うことができる。これにより、任意の光源方向の画像I4をI1,I2,I3,c4=[c4 1c4 2c4 3]Tを用いて表現することができる。また、D−1が算出できない場合は、3点P1(x1,y1),P2(x2,y2),P3(x3,y3)の再選択を行う。3点P1,P2,P3の選択方法および線形係数の導出の詳細については、例えば「光学現象の分類基準を利用した画像の線形化」(画像の認識・理解シンポジウム(MIRU2002)論文集,vol.2,pp.167−176,2002)に記載されている。
このようなShashuaの方法を用い、選択された重複画像群の4枚の画像のA領域について、(式3)の計算を行い、線形係数を求める。このとき、B領域を持つ3枚の画像をI1,I2,I3とし、B領域を持たない被拡張画像をI4として、線形係数c4=[c4 1c4 2c4 3]Tの算出を行う。
なお、ここで説明したように、光源が平行光源であり、物体表面が完全拡散反射面であると仮定したとき、任意光源方向の画像は4枚の画像を用いて合成することができるため、本実施形態では、重複画像群として、A領域を共通に持つ4枚の画像を選択すればよいことになる。
また、拡散反射画素とは、(式2)の振る舞いをする画素のことを示す。
次にステップS13において、ステップS12で算出された線形係数に対する信頼性を判定する。ここでの線形係数の信頼性判定とは、重複画像群の中のB領域を持つ3枚の画像間の独立性を判定することである。具体的な判定方法としては、例えば、ステップS12で算出した行列Dの条件数を用いる。すなわち、行列Dの条件数を求め、この条件数が所定の閾値よりも小さいときは、選択したB領域を持つ3枚の画像は独立であり、算出した線形係数は信頼性があると判定する。一方、所定の閾値よりも大きいときは、算出した線形係数は信頼性が低いと判定し、ステップS11に戻り、同じA領域を持ち、いまの重複画像群とは異なる重複画像群の再選択を行う。
ここで、信頼性が低いと判定される原因は、
○ いずれかの画像において、選択した3画素のうち2個以上の法線方向が同じ
○ 少なくとも2枚以上の画像について、光源状態が等しい
の何れかであり、このような信頼性の低い線形係数を用いてパノラマ画像を合成した場合、輝度の誤差が大きいパノラマ画像が生成される。逆に、信頼性があると判定された場合は、B領域を持つ3枚の画像は、各々光源方向が異なっており、かつ、被写体表面の法線方向の異なる画素が3画素以上存在する、という条件を満たすことになる。このような信頼性の高い線形係数を用いてパノラマ画像を合成した場合は、輝度の誤差が小さいパノラマ画像の生成が可能となる。上述した輝度の誤差とは、被拡張画像と同一の光源環境で撮影された理想的なパノラマ画像と、生成されたパノラマ画像との輝度誤差を示す。
なお、ステップS11において重複画像群の選択を行う際に、同じA領域に対する重複画像群の候補が複数存在するとき、算出される線形係数の信頼性が最も高いものを、選択するようにしてもよい。具体的には例えば、上述の条件数が最小となる候補を、重複画像群として選択すればよい。これは、条件数が小さいほど、算出した線形係数の信頼性が高い、または、選択した重複画像群に含まれたB画像を持つ3枚の画像の独立性が高い、といえるからである。
また、ステップS11〜S13の処理においては、(式3)におけるD−1の有無と信頼性の高いDの条件数を基準にして、重複画像の選択と選択された画像中の3点の選択を行うことによって最適な線形係数を行う。よって、同じ基準を用いた処理であれば他の手法であってもかまわない。例えばS12においてD−1,Dの条件数の算出を同時に行い、S13では算出されたD−1,Dの条件数の信頼性判定を行い、信頼性のない場合には3点P1(x1,y1),P2(x2,y2),P3(x3,y3)の再選択を行ってもよい。この場合、3点P1(x1,y1),P2(x2,y2),P3(x3,y3)の選択を所定回数繰り返しても信頼性のある線形係数が算出されないときは、重複画像の再選択を行えばよい。
そして、線形係数が信頼性ありと判定されたとき(S13でYes)、ステップS14において、この線形係数とB領域を持つ3枚の画像の画素値とを用いて被拡張画像のサイズを拡張する。ここでは、信頼性があると判定された線形係数c4および画像I1,I2,I3のB領域における画素値を、それぞれ(式2)に代入することによって、被拡張画像I4を「I4の画像領域+B領域」まで拡張する。このように、(式2)を用いて被拡張画像I4の拡張を行うためには、3枚の画像I1,I2,I3が被拡張画像I4の画像領域以外の領域において、重複する領域(すなわちB領域)を持つ必要がある。
このようにステップS11〜S14によって、重複画像群に含まれた被拡張画像を、「原画像領域+B領域」まで拡張することができる。したがって、このような処理を繰り返し行うことによって、画像全体にわたって光源環境が同一であるパノラマ画像を容易に生成することができる。
次に、ステップS15において、画像が所望のパノラマ画像の全領域まで拡張されたか否かを判定する。そして、まだ全領域まで拡張されていないと判定したときは(S15でNo)、ステップS14において拡張した画像を画像記憶部103において記憶媒体に格納し(S16)、ステップS11に戻る。一方、全領域まで拡張されていると判定したときは(S15でYes)、そのパノラマ画像を画像記憶部103において記憶媒体に格納する(S17)。ステップS15における判定方法としては、例えば、拡張された画像の画素数が全領域分の画素数となったとき、全領域まで拡張されたと判定するようにすればよい。また、パノラマ画像を記憶する記憶媒体としては、例えばメモリやハードディスク、フィルム等を用いればよい。このように、ステップS11〜S16の処理を繰り返すことによって、全領域まで拡張された光源環境が同一である1枚のパノラマ画像が画像記憶部103に記憶される。ステップS11〜S16によって、本実施形態に係るパノラマ画像合成方法が実現される。
次に、終了判定を行う(S18)。本実施形態では、後述するように、物体検出を行うために光源方向が異なる3枚のパノラマ画像を生成する必要がある。このため、ここでは、画像記憶部103に画像間の独立性のあるパノラマ画像が3枚以上存在するとき(S18でYes)処理を終了し、画像間の独立性のあるパノラマ画像が3枚未満のときは(S18でNo)ステップS11に戻り、新たなパノラマ画像の合成を行うものとする。
ここでの判定方法としては例えば、行列式の値を用いればよい。具体的には、画像記憶部103に記憶されたパノラマ画像の中から任意の3枚のパノラマ画像(I1 P,I2 P,I3 Pとする)を選択し、選択したパノラマ画像I1 P,I2 P,I3 Pにおける3点P1(x1,y1),P2(x2,y2),P3(x3,y3)の画素値を(式3)における行列Dの形に置き、行列式|D|の算出を行う。そして、この行列式|D|の値が0でないとき、これら3枚のパノラマ画像I1 P,I2 P,I3 Pは光源方向が異なるパノラマ画像と判定し、処理を終了する。
一方、行列式|D|の値が0になるときは、選択した3枚のパノラマ画像I1 P,I2 P,I3 Pが独立でないと判断できるので、画像記憶部103に記憶された他の3枚のパノラマ画像の組み合わせを選択し、同様の処理を行う。画像記憶部103に記憶されたパノラマ画像のうちいずれの3枚を選択しても、行列式の値が0になるときは、ステップS11に戻る。もちろん、パノラマ画像が2枚以下の場合も、ステップS11に戻る。
以上のような処理を実行することによって、パノラマ画像合成部104において、画像間の独立性のある3枚のパノラマ画像が合成される。
図9は本実施形態に係るパノラマ画像合成方法によって合成したパノラマ画像の一例である。図9(a)は画像サイズが拡張される被拡張画像I0と光源方向の異なる3枚の画像I1,I2,I3を示す。図9(b)は上述した本実施形態の方法によって、図9(a)の4枚の画像I0,I1,I2,I3の重複領域を用いて、光源環境を画像I0に合わせるように合成したパノラマ画像である。また、図9(c)は従来手法の1つであるヒストグラム一致法(詳細は「画像解析ハンドブック」、東京大学出版会、pp.463,1991を参照)によって、画像I0,I1を用いて、光源環境を画像I0に合わせるように合成した画像である。
図9(b)のパノラマ画像では、図9(c)の画像と対比すると分かるように、輝度誤差が少なく、画像のつなぎ目がない。すなわち、本実施形態に係るパノラマ画像合成方法によると、光源方向の異なる画像が与えられても、輝度誤差の少ないパノラマ画像が合成される。
なお、本実施形態に係る方法によって合成されたパノラマ画像は、拡散反射画素のみによって構成されたパノラマ画像となる。このような画像をパノラマ基底画像と呼ぶ。
<パノラマ画像を用いた物体検出>
物体検出部105は、撮像画像補正部102から受けた画像について、パノラマ画像合成部104から入力された3枚のパノラマ画像を用いて、物体検出を行う。ここでの物体検出は、例えば、背景差分を用いればよい。
本実施形態における背景差分を用いた物体検出の例について、図7を用いて説明する。図7では、冷蔵庫21とテーブル22が置かれた部屋において、テーブル22を撮影し、その画像から、テーブル22に置かれた物体(空き缶23)を検出する場合を示している。I1 P,I2 P,I3 Pはパノラマ画像合成部104から入力されたパノラマ画像であり、背景として床、冷蔵庫21およびテーブル22を撮している。これら3枚のパノラマ画像I1 P,I2 P,I3 Pは、物体検出を行う画像を撮す前に撮影された画像を用いて、すでに合成されている。いま、PTカメラ25によって、画像I4が撮されたとする。画像I4では、テーブル22の上に空き缶23が乗っている。
ここで、各パノラマ画像I1 P,I2 P,I3 Pから画像I4の画像領域に対応する画像I1,I2,I3を切り出し、これらの画像I1,I2,I3,I4を用いて、(式3)により線形係数c4=[c4 1c4 2c4 3]Tを算出する。画像I4には背景以外の物(図7の例では空き缶23)が存在している。このため、(式3)を用いて線形係数c4=[c4 1c4 2c4 3]Tを算出する際に、3点P1,P2,P3として背景以外の点が選択されてしまう(例えば、空き缶23が映った領域に点P1,P2,P3が選択される)場合があり得る。この場合には、線形係数の算出が正しく行えない。ただし、例えばRANSAC(「MA.FischlerandR.C.Bolles,”Random sample consensus:a paradigm for model fitting with application to image analysis and automated cartography,Commun,Assoc,Comp,Mach,24,pp.381−395,1981」参照)を用いることによって、3点P1,P2,P3を4枚の画像全ての背景成分上で選択することができ、背景以外のものの影響を受けることなく、線形係数を算出することが可能となる(詳細は、「光学現象の分類基準を利用した画像の線形化」画像の認識・理解シンポジウム(MIRU2002)論文集,vol.2,pp.167−176,2002を参照)。このように算出された線形係数c4および画像I1,I2,I3の画素値を(式2)に代入することによって、現在の照明条件下において撮像された画像I4に対する予測背景画像I4 Eを作成することができる。そして、この予測背景画像I4 Eと元の画像I4との画素値の差分が所定の閾値よりも大きい領域を、物体領域として検出する。
そして、検出物体表示部106は、物体検出部105によって検出された物体の領域を例えばモニタなどの表示装置に表示する。
以上のように本実施形態によると、線形化を用いた画像拡張によって、画像全体にわたって光源環境が一定のパノラマ画像を生成することができる。そして、このようなパノラマ画像を複数枚用いることによって、任意の光源環境において撮影した画像から、背景差分による物体検出を行うことが可能になる。
なお、本実施形態では、(式3)を用いて線形係数の算出を行うものとしたが、(式3)は選択した3点P1,P2,P3の画素が全て拡散反射であることを仮定した式である。実環境においては、鏡面反射等の拡散反射以外の成分が画像に含まれるので、(式3)が必ずしも成り立たない可能性がある。ただし、尺長らの方法(詳細は「光学現象の分類基準を利用した画像の線形化」,画像の認識・理解シンポジウム(MIRU2002)論文集,vol.2,pp.167−176,2002を参照)を用いることによって、これら拡散反射画素以外の画素値の影響を受けずに、3点P1,P2,P3の画素が全て拡散反射画素となるような選択を行うことが可能になる。
また本実施形態では、光源を平行光源と仮定したため、パノラマ画像合成や物体検出の際に4枚の画像を用いることによって、正しい線形係数を算出することができた。ところが、実環境下の光源には相互反射等の環境光が含まれるため、線形係数の算出を4枚の画像を用いて行った場合、実際の画像に対して誤差が大きい線形化画像しか得られない可能性がある。ただし、このような環境光が含まれる光源条件下であっても、5枚よりも多くの画像を用いることによって、線形係数の算出を精度良く行うことができ、本実施形態と同様に、画像の線形化を用いた画像拡張や物体検出を行うことが可能となる。例えば、環境光が含まれる場合であっても、4〜9枚の画像を用いて、誤差の少ない線形化画像を作成できることが、すでに報告されている(詳細は、「双方向反射分布関数の周波数特性に基づく反射成分の分離」,情報処理学会研究報告,CVIM 2002−134−1,pp.1−8,2002を参照)。
(第2の実施形態)
上述したように、実環境で撮像される画像には拡散反射画素以外の画素が多く含まれる。これらの画素は、画像合成処理においてノイズとなり、生成されるパノラマ画像の輝度誤差が大きくなる原因となる。また、重複領域を持つ画像群の独立性が低い場合にも、パノラマ画像の輝度誤差が大きくなる原因となる。このため、例えば監視システムのような、画像が逐次入力されるシステムでは、新たな入力画像を用いたときに、すでに生成されているパノラマ画像よりも輝度誤差が少ないパノラマ画像を得ることができる場合には、パノラマ画像を更新することが好ましい。これにより、拡散反射画素以外の画素によるノイズの影響を最小限に抑えることができる。
本発明の第2の実施形態では、第1の実施形態の構成に加えて、パノラマ画像を適宜更新するものである。本実施形態に係る物体検出装置の構成は、図1と同様であるが、パノラマ画像合成部104において、パノラマ画像の更新を行う点が異なる。図8は本実施形態におけるパノラマ画像合成部104の動作を示すフローチャートである。図8において、図4と共通のステップには図4と同一の符号を付しており、ここではその詳細な説明を省略する。第1の実施形態と異なるのは、パノラマ画像を更新するか否かを判定するステップS21を備えている点である。
すなわち、ステップS21において、画像記憶部103に新たな画像が入力されたとき、重複画像群の再選択を行い、同じ重複領域を持つ、新重複画像群と旧重複画像群とで画像合成の好適性を比較する。そして、新重複画像群の方が、画像合成に好適であると判断したときは、パノラマ画像を更新すると判定し(S21でYes)、ステップS11以降の処理に進む。一方、そうでないときは(S21でNo)、パノラマ画像の更新を行わない。
ここで、新重複画像群とは、画像記憶部103に新たな画像が入力されたときの、新たな入力画像とそれまでに記憶されている画像とを組み合わせた重複画像群を示す。組み合わせ方法は、ステップS11においてすでに説明したような条件および方法を用いて、実現することができる。
画像合成の好適性を判断する方法としては、例えば、新重複画像群および旧重複画像群を用いて、それぞれ、ステップS12〜S14までの処理を行って合成画像を作成し、作成された合成画像における拡散反射画素の個数を比較し、その個数が多い方を好適性ありとすればよい。拡散反射画素の検出は、例えば、ある閾値以下の画素値を持つ画素を陰影画素とし、また、ある閾値以上の画素値を持つ画素を鏡面反射画素とし、これら陰影画素および鏡面反射画素を除いた画素の総和を、拡散反射画素の個数とすればよい。
また、画像合成の好適性を判断する他の方法としては、例えば、各重複画像群の拡散反射画素の総数を用いて画像合成の好適性を判断してもよい。ステップS12において線形係数を算出する際、算出に用いる画素に陰影画素や鏡面反射画素が選択された場合、正しい線形係数を算出することができない。よって、用いる重複画像のA領域において拡散反射画素の個数が多いほど、正しい線形係数の算出が期待できる。すなわち、新重複画像群のA領域における各画像の拡散反射画素の総数が旧重複画像群のA領域における各画像の拡散反射画素の総数よりも多いとき、パノラマ画像の更新を行うようにすればよい。
また、画像合成の好適性を判断する他の方法としては、例えば、画像間の独立性を用いて、画像合成の好適性を判断してもよい。すなわち、旧重複画像群に対して新重複画像群の方が、画像間の独立性が高いとき、パノラマ画像の更新を行うようにすればよい。画像間の独立性の判定は、例えば、ステップS13において説明した方法(条件数を算出し、条件数が小さいほど独立性が高いと判定)によって実現できる。また、旧重複画像群で線形係数を算出する際に用いた3点の座標位置と同じ座標位置における輝度値を用いて新重複画像群の条件数の算出を行い、算出された新重複画像群の条件数が旧重複画像群の条件数よりも小さいとき、パノラマ画像の更新を行うようにしてもよい。
このように本実施形態によると、画像合成により好適な重複画像群が得られたときにパノラマ画像が更新されるので、より輝度誤差の少ないパノラマ画像を作成することが可能となる。したがって、物体検出の精度もより向上させることができる。
(第3の実施形態)
上述したパノラマ画像合成方法では、線形係数算出の計算を逐次的に繰り返すことによって、画像を拡張する。しかし、このような画像拡張では、輝度誤差の評価は各々のA領域において逐次的にしか行えないため、計算を繰り返して画像を拡張していくと、画像中に含まれるノイズや量子化誤差などが蓄積されていく。これは、最終的に合成されるパノラマ画像の輝度誤差が大きくなる原因になる。このため、所望の画像サイズに拡張するまでに用いる画像の組み合わせが複数通り考えられる場合は、このような繰り返し計算による誤差の蓄積を最小限に抑えるように、画像合成を行うことが好ましい。これにより、より輝度誤差の少ないパノラマ画像が得られ、物体検出の精度も向上する。
本発明の第3の実施形態では、第1の実施形態の構成に加えて、パノラマ画像合成時における繰り返し演算による誤差を軽減するものである。本実施形態に係る物体検出装置の構成は図1と同様であるが、画像記憶部103に、いわゆる評価画像群が存在する場合、パノラマ画像合成部104は、第1の実施形態とは異なる処理方法によって、線形係数の算出を行う。
ここで「評価画像群」とは、「被拡張画像と重複画像群として連結された画像群において、被拡張画像と同一の光源環境を持つ画像が少なくとも1枚存在する画像群」と定義する。もう少し具体的に説明すると、ある被拡張画像I0と本発明の重複画像群を構成するN枚の画像をまず特定し、次に、このN枚の画像のB領域を被拡張画像としたときにこれと重複画像群を構成するN枚の画像を特定し、さらに、このN枚の画像のB領域と重複画像群を構成するN枚の画像を特定する、というように、重複画像群を構成するN枚の画像を、連結するように、順次特定していく。そして、最後に特定したN枚の画像が、元の被拡張画像I0と光源環境が同一である画像と重複したとき、それまでに特定した複数組のN枚の画像と元の被拡張画像I0とを、「評価画像群」とする。
この評価画像群を用いることによって、複数のA領域を併せて用いて輝度誤差の評価を行うことが可能となり、各A領域で逐次的に輝度誤差の評価を行いつつ画像を拡張した第1の実施形態に比べて、輝度誤差の少ないパノラマ画像の合成が可能となる。
なお、ここでは、元の被拡張画像と光源環境が同一の画像として、元の被拡張画像自体を用いるものとする。元の被拡張画像とは別の画像を用いる例については、後述する。
図10は具体的な評価画像群の例を示す。図10は画像I0に対して評価画像群(I4,I5,I6)(I7,I8,I9)が存在している最も単純な例である。(I4,I5,I6)(I7,I8,I9)は同じ画角を持つ画像群であり、これらを1枚の画像として模式的に表したものを図11に示す。図11において、I0は2個の重複画像群で連結されており(A456 1+B456 1を持つ(I4,I5,I6)、およびA789 1+B789 456を持つ(I7,I8,I9))、A456 1とA789 1は同じ画像I0に属しているので、連結された画像群内に、被拡張画像と光源環境が同一である画像が存在しているといえる(共に画像I0)。よって、I0および(I4,I5,I6)(I7,I8,I9)は画像I0に対する評価画像群であるといえる。
図12は本実施形態におけるパノラマ画像合成部104の動作を示すフローチャートである。図12において、図4と共通のステップには図4と同一の符号を付しており、ここではその詳細な説明を省略する。第1の実施形態と異なるのは、評価画像群が存在するか否かを判定するステップS31、および評価画像群が存在する場合に誤差の少ない線形係数を算出するステップS32を備えている点である。
すなわち、ステップS31において、画像記憶部103に記憶された画像の中から、評価画像群の有無の判定を行う。そして、評価画像群があったときは(S31でYes)、この評価画像群に属する画像を利用して誤差の少ない線形係数の算出を行う(S32)。一方、そうでないときは(S31でNo)、第1の実施形態と同様に、ステップS11以降の処理を行う。
評価画像群の有無の具体的な判定方法を図13および図14を用いて説明する。図13は、画像I0に対してI0GからIn−1Gのn組で構成された評価画像群の一例である(光源環境が同一である画像が共に被拡張画像I0であるケース)。このIkGはk番目の画像群Ikを表している。また、k番目のA領域をAk、k番目のB領域をBkと表している(k=0,1,…,n)。また、図14は評価画像群判定ステップS31の具体的な処理の流れを示すフローチャートである。以下、図14を用いてS31の処理の流れを説明する。
まず、ステップS41において、画像記憶部103に記憶された画像の中から、任意の1枚の画像I0を選択する。
次に、ステップS42において、ステップS41で画像記憶部103に記憶された全ての画像が選択されたか否かの判定を行う。判定方法としては、ステップS41で選択した画像I0の履歴をメモリに記憶しておき、画像記憶部103に記憶された画像との参照を行うことにより判定することができる。判定の結果、既に全ての画像の選択を行っていたときは(S42でYes)、評価画像群なしと判定する(S50)。
全ての画像をまだ選択していないと判定したとき(S42でNo)、ステップS43において、ステップS41で選択した画像I0に対して、A+B領域を持つ画像群が少なくとも2組存在するか否かを判定する。ここでの判定は、第1の実施形態で述べた重複領域の検出方法を用いて実現できる。判定の結果、画像群が2組以上存在しないときは(S43でNo)、ステップS41に戻り、画像I0の再選択を行う。一方、画像群が少なくとも2組存在するときは(S43でYes)、ステップS44においてkに0を代入する。
次に、ステップS45において、ステップS43で判定された画像群のうちの1組(Ak,Bk)を選択し、選択した画像群のBk領域内にさらに少なくとも1組のA+B領域を持つ画像群(Ak+1,Bk+1)が存在するか否かを判定する。ここでの判定も、第1の実施形態で述べた重複領域の検出方法を用いて実現できる。ここで、新たな画像群が存在しないと判定されたときは(S45でNo)、ステップS41に戻り、画像の再選択を行う。
新たな画像群(Ak+1,Bk+1)が存在するとき(S45でYes)、ステップS46において、Bk+1領域内にAnが存在するか否かを判定する。ここで、Anとは、ステップS43で検出された画像群のうち、ステップS45で選択されなかった画像群のA領域を指す。Bk+1にAnが存在するときは(S46でYes)、評価画像群ありと判定し、処理を終了する。
一方、Bk+1にAnが存在しなかったときは(S46でNo)、kが閾値tよりも小さいか否かを判定し(ステップS48)、kが閾値tよりも小さいときは(S48でYes)、kをインクリメントし(ステップS49)、ステップS45に戻って処理を繰り返す。一方、kが閾値tよりも小さくないときは(S48でNo)、ステップS41にもどり、画像I0の再選択を行う。
ここで、繰り返し回数の閾値tは、例えば次のようにして決定すればよい。すなわち、画像記憶部103に記憶されている全撮像画像数がa枚とすると、aを、重複画像群中のB領域を持つ画像の数N(各実施形態の説明では3)で除したときの商の値を、閾値tとして用いればよい。
なお、画像I0に対して評価画像群が複数個、存在するときは、その評価画像群に存在する各B領域におけるN枚の画像の独立性が、最も高いものを、選択してもよい。例えば、各B領域において第1の実施形態で述べた行列Dの条件数の計算を行い、この条件数の値が各B領域において閾値以下であり、かつ、各B領域における条件数の値の総和が最も小さい評価画像群を、独立性が最も高いものとして、選択すれば良い。これにより、輝度誤差がより少ないパノラマ画像を合成することができる。
また、画像I0に対して評価画像群が複数個、存在するとき、その評価画像群が占める画像領域における画素数が、最も多いものを、選択してもよい。これにより、最終的なパノラマ画像を合成するまでの計算回数が少なくなり、パノラマ画像の輝度誤差をより少なくすることができる。
以上のように、ステップS41〜S50の処理を行うことによって、ステップS31における評価画像群の有無を判定することができる。
次に、S32において、S31で選択された評価画像群を用いて、繰り返し計算による誤差の蓄積が小さい線形係数の算出を行う。算出方法としては、例えば評価画像群内の各A領域において複数の線形係数組を算出しておき、それらの係数組の組み合わせの中から最も輝度誤差が小さくなる係数組を選択すればよい。この処理の流れを図13を用いて説明する。
図13において、Ck−1 kを、k−1番目の画像群とk番目の画像群との線形係数組を表す記号として用いると、各画像間には以下の式が成り立つ。
I0=C0 1I1G (式4)
I1G=C1 2I2G (式5)
・・・
I(n−1)G=Cn−1 nInG (式6)
ここで、(式4)〜(式6)において、複数個(N個)の係数組Ck−1 kを求めておく。一方、(式A)〜(式6)より、
I0=C0 1C1 2…Cn−1 nInG (式7)
が成り立つ。ここで、評価画像群が存在する場合には、(式7)により求まった画像I0(I0 Lとする)と現実の被拡張画像I0との画素値を、An領域において直接比較できる。このため、(式8)の評価式に従い、評価値e_valが最も高くなる係数組を求めることにより、パノラマ画像合成を行う際の繰り返し計算による誤差の蓄積が最小となるような線形係数の算出を行うことができる。評価関数Ek(Ak)は、k番目のA領域におけるIkとIk Lとの画素値の差分が閾値以下の画素数の総和(e_val)を求めればよい。
すなわち、(式8)により、最も評価値e_valが高くなる係数組Ck−1 kの組み合わせを、各A領域で算出したN個の係数組の組み合わせから選択すればよい。
以上、S32における最適な線形係数の算出方法について説明した。以下、具体的な算出例を、図11を用いて説明する。
図11において、I1と(I4,I5,I6)には、次の式が成り立つ。
また、(I4,I5,I6)と(I7,I8,I9)には、次の式が成り立つ。
一方、I1と(I7,I8,I9)には、(式9)、(式10)より次の式が成り立つ。
ここで、ikはIkにおける画素値を表している。はじめに(式9)を用いてA456 1において3通りの係数組c1を求める。同様に(式10)を用いてA789 456領域において3通りの係数組c4,c5,c6を求める。これは例えばRANSACを用いて(式8)で示した評価値e_valの高い上位3組の係数組を求めればよい。これにより(式9)から(式11)では各々3組のc1,c4,c5,c6の係数組の組み合わせにより、全81通りのIk Lが算出される。次にこの81通りの中で(式12)に示される評価値e(各A領域でのe_valの総和)が最も高い係数組の組み合わせを選択する。
図15は本実施形態に係るパノラマ画像合成の過程を説明する図である。被拡張画像I0は、重複領域A0を用いて領域1まで拡張される。同様に、重複領域域A1を用いて領域2まで拡張され、重複領域A2を用いて領域3まで拡張される。各領域を拡張するにあたり、算出する線形係数の上位3組を保持し、最終的な評価値が最も高くなる線形係数の組み合わせを選択する。ここでは、A領域における合成画像Ik Lと合成に用いた画像Ikとの輝度誤差(輝度値の差分値が2以下)が最も少なくなるようにした。
図16は図15を用いて説明した方法で合成したパノラマ画像である。図16(a)は被拡張画像I0、図16(b)は本実施形態によって生成されたパノラマ画像Ipである。図16(b)を見ると分かるように、輝度誤差の無い良好なパノラマ画像が得られている。
図17は第1の実施形態と本実施形態との比較結果を示す。図17は、各実施形態で合成されたパノラマ画像について、正解画像を基準にしたときの、輝度の平均2乗誤差および誤差の分散を表している。図17から、本実施形態によって生成されたパノラマ画像は第1の実施形態によって生成されたパノラマ画像に比べ、誤差が少なく、誤差の分散が小さいことが分かる。これは、第3の実施形態に係るパノラマ画像合成方法の有効性を示している。
なお、S32では、各A領域で評価値e_valが高い係数組を複数保持し、それらの係数組の組合せにおいて最も評価値eが高くなる係数組の組合せを最適な線形係数として算出したが、他の最適な線形係数の算出方法としては、例えば、各A領域で複数の線形係数組を算出して保持する代わりに、全てのA領域で同時に3点の画素値の選択を行って線形係数の算出を行い、算出された線形係数を(式8)を用いて評価を行い、これを複数回繰り返す中で最も評価値e_valの高い係数の組み合わせを選択しても良い。
また、S32における他の最適な線形係数の算出方法としては、例えば、(式4)〜(式6)の各領域で算出した線形係数を用いて算出した画素値と、元の被拡張画像の画素値との2乗誤差が最少となるように、線形係数を求めてもよい。具体的には、例えば線形係数の初期値として、各A領域で求めた最も評価の高い線形係数を用い、勾配法を用いて(式12)に示す誤差関数Eを最少にする係数組を求めれば良い(詳細は「Numerical Recipes in C 日本語版」,pp.292−295,株式会社技術評論社,1993)。この2乗誤差関数を(式13)に示す。ia bは画像Iaにおけるk番目の画素位置における画素値を示し、l,m,nは各A領域の画素数を示す。
なお、ここまでは、評価画像群において、元の被拡張画像と光源環境が同一である画像が、被拡張画像自体である場合を例にとって、説明を行った。ただし、一般的には、図18に示すように、評価画像群において、被拡張画像I0と光源環境が同一である画像は、画像I0と異なる画像Inであってもかまわない。この場合、評価画像群の存在の有無を判定するステップS31における処理の流れが、図14のフローとは、若干異なる。
図19は被拡張画像I0と光源環境が同一である画像が、被拡張画像I0と異なる画像Inである場合のステップS31の処理を示すフローチャートである。図19において、図14と共通のステップには図14と同一の符号を付しており、ここではその詳細な説明を省略する。図14の処理と異なるのは、被拡張画像I0と光源環境が同一である画像Inを検出する点である(検出対象画像には画像I0も含まれるので、必ず1枚以上は存在する)
まず、ステップS41において、画像記憶部103に記憶された画像の中から、任意の1枚の画像I0を選択する。
次に、ステップS61では、ステップS41で選択された画像I0と同一の光源環境の画像Inの検出を行う。具体的な検出方法としては、例えば、測定対象領域に測定対象物を設置し、その変化を調べるようにしてもかまわない。これは、例えば完全拡散反射を起し、鏡面反射を生じない硫酸バリウムやスペクトラロンの物体を置くようにしてもかまわない。
また、時間変化によって光源環境は変化すると考えられるので、一定時間経過ごとに光学環境が変化したと判断してもかまわない。これは、例えば窓などにより太陽光が入り込んでくる環境において特に有効である。
また、鏡面球を使って光源状態を撮像し、その変化を検出するようにしてもよい。もちろん、広角カメラを天井方向に向けて光源状態を撮影してもかまわない。
また、撮像領域内において、最も輝度が高い画素の位置を認識し、その位置が動いた際には光源環境が変化したと判断するようにしても構わない。これは、最も輝度が高い画素は鏡面反射を起していると考えられるため、この位置が動くことを検出することで光源位置の変化を検出するものである。
次に、ステップS42において、ステップS41で画像記憶部103に記憶された全ての画像が選択されたか否かの判定を行う。判定の結果、既に全ての画像の選択を行っていたときは(S42でYes)、評価画像群なしと判定する(S50)。
全ての画像をまだ選択していないと判定したとき(S42でNo)、ステップS62において、ステップS41で選択した画像I0に対して、A+B領域を持つ画像群が少なくとも1組存在するかを判定する。判定の結果、画像群が1組も存在しないときは(S62でNo)、ステップS41に戻り、画像I0の再選択を行う。一方、画像群が少なくとも1組存在するときは(ステップS62でYes)、ステップS44においてkに0を代入する。
次に、ステップS45において、ステップS62で判定された画像群の中から1組の画像群(Ak,Bk)を選択し、選択した画像群のBk領域内にさらに少なくとも1組のA+B領域を持つ画像群(Ak+1,Bk+1)が存在するか否かを判定する。ここで、新たな画像群が存在しないと判定されたときは(S45でNo)、ステップS41に戻り、画像の再選択を行う。
新たな画像群(Ak+1,Bk+1)が存在するとき(S45でYes)、ステップS63において、Bk+1領域内に画像Inとの重複領域(An)が存在するか否かを判定する。存在するときは(S63でYes)、評価画像群ありと判定し、処理を終了する。
一方、Bk+1に画像Inとの重複領域が存在しなかったときは(S63でNo)、kが閾値tよりも小さいか否かを判定し(ステップS48)、kが閾値tよりも小さいときは(S48でYes)、kをインクリメントし(ステップS49)、ステップS45に戻って処理を繰り返す。一方、kが閾値tよりも小さくないときは(S48でNo)、ステップS41にもどり、画像I0の再選択を行う。
このように、評価画像群において、被拡張画像I0と光源環境が同一である画像が被拡張画像I0と異なる画像であった場合でも、図19に示す処理によって、評価画像群の有無を判定することができる。
このように本実施形態によると、評価画像群が存在するか否かを判定するステップS31、および評価画像群が存在する場合に誤差の少ない線形係数を算出するステップS32により、画像合成を行う際の繰り返し計算による誤差の蓄積を最小限に抑えるような線形係数の算出を行うことができるので、より輝度誤差の少ないパノラマ画像合成を行うことができ、物体検出の精度も向上する。
本発明では、光源環境が一定のパノラマ画像を合成でき、このパノラマ画像を複数枚用いることによって、任意の光源環境において撮影した画像から物体検出を行うことができるので、例えば、屋外等の光環境が頻繁に変化するような場所の、監視システムにおける侵入者検出等に有用である。
本発明は、いわゆるパノラマ画像を合成する技術、およびパノラマ画像を用いて画像から物体を検出する技術に関する。
パンチルト(PT)カメラ等を用いて物体検出を行う方法としては、撮像された複数枚の画角の異なる画像から1枚の大きなパノラマ画像を合成し、合成されたパノラマ画像を用いて背景差分等の画像処理を行う方法が有効である。
このようなパノラマ画像合成に関する従来技術として、例えば特許文献1では、カメラの位置、姿勢、および入力画像対から画像解析によって動きベクトルを求め、その動きベクトルに基づいてカメラパラメータを算出し、算出したカメラパラメータに従って画像を貼り合せてパノラマ画像合成を行う方法が開示されている。この方法により、各画像間での正確な位置合わせを行うことができ、位置歪の少ないパノラマ画像を合成することができる。
特開2002―150264号公報
しかしながら、上述の従来技術では、パノラマ画像合成に用いる画像を撮像している間に光源の位置、方向、強さ、個数などの光源環境に変化が生じた場合、生成されるパノラマ画像は、部分ごとに光源状態が異なる、すなわち光源環境が同一でないパノラマ画像となる。このような光源環境が同一でないパノラマ画像を用いて背景差分を行った場合、物体以外の背景領域も物体として検出されてしまい、物体検出の精度は大きく低下する。
また、パノラマ画像を合成した後に光源環境に変化が生じた場合も、物体検出を行う画像とパノラマ画像とで光源環境が大きく異なるので、物体以外の背景領域も物体として検出されてしまい、背景差分による物体検出の精度は大きく低下する。
このような光源環境の変化に起因する問題は、例えば屋外での物体検出を行う場合には特に顕著となり、実際のシステムとして適用するためには、この問題を解消する必要がある。
前記の問題に鑑み、本発明は、光源環境に変化が生じた場合においても物体検出を可能にすべく、画像全体にわたって光源環境が同一のパノラマ画像を、合成可能にすることを課題とする。
前記の課題を解決するために、本発明は、パノラマ画像合成方法として、第1の重複領域を共通に持ち、かつ、第1の重複領域以外の第2の重複領域を持つN(Nは3以上の整数)枚の画像と第2の重複領域を持たない被拡張画像とからなる重複画像群を、取得し、被拡張画像の線形係数を、第1の重複領域における重複画像群の画像それぞれの画素値を用いて算出し、算出した線形係数と、第2の重複領域におけるN枚の画像それぞれの画素値とを用いて、被拡張画像のサイズを第2の重複領域まで拡張し、このサイズが拡張された被拡張画像を基にして、パノラマ画像を合成するものである。
この発明によると、第1の重複領域の各画像から求めた線形係数を用いることによって、被拡張画像を、第2の重複領域まで拡張することができる。すなわち、任意に選択した被拡張画像と同一の光源環境における画像を、「被拡張画像+第2の重複領域」まで、拡張することができる。したがって、画像全体にわたって光源環境が同一のパノラマ画像を容易に生成することができる。
なお、本願明細書でいうところの「光源環境が同一のパノラマ画像」とは、そのパノラマ画像の各部分において、推定される光源の位置、方向、強さおよび個数が、実質的にほぼ同一であるもの、のことをいう。理論上は、光源環境を完全に同一にすることは可能であるが、実際には、線形係数の算出誤差等に起因して、光源環境が完全には同一にはならない場合もあり得る。本願発明は、そのような場合も、含むものである。
また、本発明は、画像から物体を検出する方法として、前記本発明のパノラマ画像合成方法によって、検出対象画像の撮影範囲を含む複数のパノラマ画像を生成し、検出対象画像と複数のパノラマ画像とを基にして、検出対象画像と光源環境が同一の予測背景画像を生成し、これを検出対象画像と対比することによって、物体検出を行うものである。
この発明によると、検出対象画像について、画像全体にわたって光源環境が同一のパノラマ画像を複数枚用いることによって、光源環境が同一の予測背景画像が生成される。これにより、パノラマ画像と光源環境が異なっている画像についても、精度良く、物体検出を行うことができる。
本発明によると、画像の線形化を利用することによって、光源環境が同一のパノラマ画像を合成することができる。また、このパノラマ画像を複数枚用いることによって、任意の光源環境において撮影した画像から、物体検出を行うことができる。
本発明の第1態様では、パノラマ画像合成方法として、第1の重複領域を共通に持ち、かつ、前記第1の重複領域以外の第2の重複領域を持つN(Nは3以上の整数)枚の画像と前記第2の重複領域を持たない被拡張画像とからなる重複画像群を、取得するステップと、前記被拡張画像の線形係数を、前記第1の重複領域における前記重複画像群の画像それぞれの画素値を用いて、算出するステップと、前記線形係数と、前記第2の重複領域における前記N枚の画像それぞれの画素値を用いて、前記被拡張画像のサイズを前記第2の重複領域まで拡張するステップとを備え、サイズが拡張された前記被拡張画像を基にしてパノラマ画像を合成するものを提供する。
本発明の第2態様では、前記N枚の画像として、光源環境が互いに異なっている画像を取得する第1態様のパノラマ画像合成方法を提供する。
本発明の第3態様では、算出した前記被拡張画像の線形係数の信頼性を判定するステップを備え、信頼性が低いと判定したとき、重複画像群の再取得を行う第1態様のパノラマ画像合成方法を提供する。
本発明の第4態様では、前記取得ステップは、画像記憶部に記憶された画像の中から重複画像群を選択するものであり、前記画像記憶部に新たな画像が入力されたとき、重複画像群の再選択を行い、この新重複画像群と旧重複画像群とで画像合成の好適性を比較し、この比較結果を基にしてパノラマ画像を更新するか否かを判定する第1態様のパノラマ画像合成方法を提供する。
本発明の第5態様では、画像合成の好適性を拡散反射画素の個数を用いて判断するものであり、新重複画像群の方が拡散反射画素の個数が多いとき、パノラマ画像の更新を行う第4態様のパノラマ画像合成方法を提供する。
本発明の第6態様では、画像合成の好適性を画像間の独立性を用いて判断するものであり、新重複画像群の方が画像間の独立性が高いとき、パノラマ画像の更新を行う第4態様のパノラマ画像合成方法を提供する。
本発明の第7態様では、第1態様のパノラマ画像合成方法によって、検出対象画像の撮影範囲を含む複数のパノラマ画像を生成するステップと、前記検出対象画像と前記複数のパノラマ画像とを基にして、前記検出対象画像と光源環境が同一の予測背景画像を生成するステップと、前記検出対象画像と前記予測背景画像とを対比し、物体検出を行うステップとを備えた物体検出方法を提供する。
本発明の第8態様では、前記複数のパノラマ画像は少なくとも3枚である第7態様の物体検出方法を提供する。
本発明の第9態様では、前記取得ステップにおいて、同一の前記第1の重複領域を持つ前記重複画像群が複数個あるとき、各重複画像群について、算出される線形係数の信頼性を評価し、信頼性が最も高いものを選択する第1態様のパノラマ画像合成方法を提供する。
本発明の第10態様では、被拡張画像に対して、評価画像群が存在するか否かを判定するステップを備え、評価画像群が存在するとき、この評価画像群を用いて、前記被拡張画像の線形係数を算出する第1態様のパノラマ画像合成方法を提供する。
本発明の第11態様では、前記評価画像群が複数個存在するとき、当該評価画像群に含まれた前記第2の重複領域における画像の独立性が最も高いものを選択する第10態様のパノラマ画像合成方法を提供する。
本発明の第12態様では、前記評価画像群が複数個、存在するとき、当該評価画像群が占める画像領域における画素数が最も多いものを選択する第10態様のパノラマ画像合成方法を提供する。
本発明の第13態様では、第1の重複領域を共通に持ち、かつ、前記第1の重複領域以外の第2の重複領域を持つN(Nは3以上の整数)枚の画像と、前記第2の重複領域を持たない被拡張画像とからなる重複画像群を取得する手段と、前記被拡張画像の線形係数を、前記第1の重複領域における前記重複画像群の画像それぞれの画素値を用いて、算出する手段と、前記線形係数と、前記第2の重複領域における前記N枚の画像それぞれの画素値を用いて、前記被拡張画像のサイズを、前記第2の重複領域まで拡張する手段とを備え、サイズが拡張された前記被拡張画像を基にして、パノラマ画像を合成するパノラマ画像合成装置を提供する。
本発明の第14態様では、撮像部と、前記撮像部によって撮像された画像に対して、幾何学的補正および光学的補正を行う撮像画像補正部と、前記撮像画像補正部によって補正された画像を記憶する画像記憶部と、前記画像記憶部に記憶された画像を入力とする第13態様のパノラマ画像合成装置とを備え、前記パノラマ画像合成装置は、前記重複画像群を、前記画像記憶部に記憶された画像の中から取得する撮像装置を提供する。
本発明の第15態様では、第14態様の撮像装置と、前記撮像装置が備えた前記パノラマ画像合成装置によって合成されたパノラマ画像を用いて、物体検出を行う物体検出部と、前記物体検出部によって検出された物体の領域を表示する検出物体表示部とを備えた物体検出装置を提供する。
本発明の第16態様では、コンピュータにパノラマ画像合成を実行させるプログラムとして、第1の重複領域を共通に持ち、かつ、前記第1の重複領域以外の第2の重複領域を持つN(Nは3以上の整数)枚の画像と、前記第2の重複領域を持たない被拡張画像とからなる重複画像群を取得するステップと、前記被拡張画像の線形係数を、前記第1の重複領域における前記重複画像群の画像それぞれの画素値を用いて算出するステップと、前記線形係数と、前記第2の重複領域における前記N枚の画像それぞれの画素値を用いて、前記被拡張画像のサイズを、前記第2の重複領域まで拡張するステップと、サイズが拡張された前記被拡張画像を基にして、パノラマ画像を合成するステップとをコンピュータに実行させるものを提供する。
本発明の第17態様では、互いに一部の画像領域が重複し、かつ、光源方向および光源の個数のうち少なくともいずれか一方が異なる複数の部分画像を入力とし、前記入力した部分画像に基づいて、前記各部分画像よりも広い領域にわたり、光源環境が同一のパノラマ画像を生成し、出力するパノラマ画像合成装置を提供する。
以下、本発明の実施の形態について、図面を参照しつつ、説明する。
(第1の実施形態)
図1は本発明の第1の実施形態に係るパノラマ画像合成方法を用いた物体検出装置の構成図である。図1において、101は静止画または動画を撮像する撮像部、102は撮像部101によって撮像された画像に対して補正を行う撮像画像補正部、103は撮像画像補正部102を用いて補正された画像を記憶する画像記憶部、104は画像記憶部103に記憶された画像からパノラマ画像を合成するパノラマ画像合成装置としてのパノラマ画像合成部、105は撮像部101によって撮像された画像およびパノラマ画像合成部104によって合成されたパノラマ画像を用いて物体検出を行う物体検出部、106は物体検出部105によって検出された物体領域を表示する検出物体表示部である。撮像部101、撮像画像補正部102、画像記憶部103およびパノラマ画像合成部104によって、本発明の撮像装置が構成されている。
以下、図1の物体検出装置について、撮像方向の異なる複数枚の画像からパノラマ画像を合成し、合成されたパノラマ画像を用いて物体検出を行う場合の動作を説明する。ここで述べる物体検出とは、光源環境の異なる少なくとも3枚のパノラマ画像の合成を行い、これを背景として、その後撮像された画像の中から背景以外に映り込むものを検出することを指す。
なお、説明の簡単のため、環境条件として、光源は平行光源であり、物体の表面は完全拡散反射面であるものと仮定する。
撮像部101は撮像方向の異なる画像の撮像を行う。具体的には例えば、パンチルト(PT)動作可能なビデオカメラやデジタルスチルカメラ、または、PT動作可能な雲台に固定されたビデオカメラやデジタルスチルカメラによって、撮影が実行される。ここでは、PT動作可能なビデオカメラを用いるものとする。
また撮像部101は撮像した画像とともに、カメラの位置・姿勢情報を撮像画像補正部102に送る。カメラの位置・姿勢情報とは、図2に示す(Xw,Yw,Zw,θ,φ)の5つのパラメータをいう。Xw,Yw,Zwは世界座標系におけるカメラの位置座標(点o)を示し、θ,φはそれぞれカメラ座標系におけるY軸、X軸の正方向に対して左回りに回転させる角度(パン角,チルト角)を示す。カメラの位置・姿勢の検出は、例えばGPS等の位置検出装置、ジャイロスコープ等の姿勢検出装置を用いればよい。また、予め計画された撮影プランからカメラの位置・姿勢を算出してもよい。予め計画された撮影プランとは例えば、カメラを始点(X0,Y0,Z0,θ0,φ0)からφの正方向に角速度0.1π[rad/sec]の等速運動に従って動かす、等といったものである。
撮像画像補正部102は撮像部101によって撮像された画像に対し、幾何学的補正、光学的補正、および撮像画像座標系からパノラマ投影面座標系への座標変換を行う。撮像画像の幾何学的補正としては、レンズ歪の補正を行う。例えば、「コンピュータビジョン技術評論と将来展望,pp.42−44,新技術コミュニケーション,1998」に示されたWengらによるレンズ歪補正方法を用いればよい。また、撮像画像の光学的補正としては、周辺減光の補正を行う。例えば「平成12年度ナチュラルビジョンの研究開発プロジェクト(次世代映像表示・伝送システム)研究開発報告書,pp.51−53,通信・放送機構,2001」に示された、輝度の時間変動の無い1つの点光源を被写体とし、その点光源が所望の位置に来るようにカメラの首を振り、観測された各位置での輝度値の逆数を用いて周辺減光の補正係数を算出する方法を、用いればよい。
また、パノラマ投影面座標系への座標変換方法としては、例えば図3に示すとおり、撮像画像座標系(i,j)から円筒座標系に投影を行ったパノラマ投影面座標系(u,v)への変換を行う関数をfとすると、fは撮像部101から送られたカメラの位置・姿勢情報を用いて次式によって表される。
(u,v)=f(i,j,Xw,Yw,Zw,θ,φ) (式1)
なお、撮像画像座標系(i,j)からパノラマ投影面座標系(u,v)への変換は球面座標系を用いた投影を行ってもよい。また、パン・チルト角が小さい場合は平面座標系を用いた投影を行ってもよい。
なお、上述の撮像画像補正部102で用いる各補正パラメータは、本装置で物体検出を行う以前に予め求めておく。
画像記憶部103は撮像画像補正部102によって補正を行った画像とカメラの位置・姿勢情報を、記憶媒体に記憶する。記憶媒体とは、例えばメモリやハードディスク、フィルム等によって実現される。
<パノラマ画像合成>
パノラマ画像合成部104は画像記憶部103に記憶された複数枚の画像から、パノラマ画像を生成する。以下、パノラマ画像合成部104の動作を図4のフローチャートを用いて説明する。
まず、ステップS11において、画像記憶部103に記憶された画像の中から、第1の重複領域(A領域)を共通に持つ重複画像群であって、かつ、A領域以外の第2の重複領域(B領域)を持つN(Nは3以上の整数)枚の画像と、B領域を持たない被拡張画像としての画像とからなる重複画像群を、選択する(S11)。ここでは、Nは3としている。図5は選択された重複画像群の例を示す模式図である。図5において、I1,I2,I3,I4は画像記憶部103から選択された画像であり、これら4枚の画像I1,I2,I3,I4はA領域11において重複している。またA領域11以外のB領域12において、3枚の画像I1,I2,I3が重複しており、画像I4 はB領域12を含まない。なお、A領域およびB領域における重複画像の枚数に関しては、後述する。
各画像の重複領域の検出は、例えば、パノラマ投影面座標系(u,v)における各画像の座標値を用いて行えばよい。また、ある画素位置に対する重複画像群が複数存在するときは、例えば、B領域を持つ3枚の画像間の独立性が最も高いものを、選択するようにしてもよい。この具体的な方法については、後述する。
次に、ステップS12において、ステップS11で選択した重複画像群を用いて、被拡張画像の拡張に用いる線形係数を算出する。線形係数の算出は、A領域における重複画像群の各画像の画素値を用いて、Shashuaの方法(「Shashua A., “Geometry and Photometry in 3D Visual Recognition”, P.D. thesis, Dept. Brain and Cognitive Science, MIT, 1992」参照)に基づいて、行う。
以下、Shashuaの方法による線形係数の算出について、詳しく説明する。Shashuaは、平行光源と、被写体表面が全て完全拡散反射面であることとを仮定することによって、光源方向の異なる3枚の画像の線形結合により任意の光源方向の画像を表現できることを示している。すなわち、光源方向が異なる3枚の画像をベクトル表現したものをI1,I2,I3とすると、任意の光源方向の画像I4は、次式のように線形結合によって表現できる。
I4=c4 1I1+c4 2I2+c4 3I3 (式2)
ここで、c4=[c4 1 c4 2 c4 3]T を画像I4に対する線形係数として算出する。
具体的には図6に示すように、4枚の画像I1,I2,I3,I4に対して、3点の画素座標P1(x1,y1),P2(x2,y2),P3(x3,y3)の選択を行い、選択された3点P1,P2,P3の各座標における画素値iを利用し、次の式を用いて線形化係数の算出を行う。
ここで、ik(x,y)は入力画像kにおける画素座標(x,y)の画素値を表している。
この(式3)により、線形係数c4=[c4 1 c4 2 c4 3]T の算出を行うことができる。これにより、任意の光源方向の画像I4をI1,I2,I3,c4=[c4 1 c4 2 c4 3]T を用いて表現することができる。また、D−1が算出できない場合は、3点P1(x1,y1),P2(x2,y2),P3(x3,y3)の再選択を行う。3点P1,P2,P3の選択方法および線形係数の導出の詳細については、例えば「光学現象の分類基準を利用した画像の線形化」(画像の認識・理解シンポジウム(MIRU2002)論文集,vol.2, pp.167−176, 2002)に記載されている。
このようなShashuaの方法を用い、選択された重複画像群の4枚の画像のA領域について、(式3)の計算を行い、線形係数を求める。このとき、B領域を持つ3枚の画像をI1,I2,I3とし、B領域を持たない被拡張画像をI4として、線形係数c4=[c4 1 c4 2 c4 3]T の算出を行う。
なお、ここで説明したように、光源が平行光源であり、物体表面が完全拡散反射面であると仮定したとき、任意光源方向の画像は4枚の画像を用いて合成することができるため、本実施形態では、重複画像群として、A領域を共通に持つ4枚の画像を選択すればよいことになる。
また、拡散反射画素とは、(式2)の振る舞いをする画素のことを示す。
次にステップS13において、ステップS12で算出された線形係数に対する信頼性を判定する。ここでの線形係数の信頼性判定とは、重複画像群の中のB領域を持つ3枚の画像間の独立性を判定することである。具体的な判定方法としては、例えば、ステップS12で算出した行列Dの条件数を用いる。すなわち、行列Dの条件数を求め、この条件数が所定の閾値よりも小さいときは、選択したB領域を持つ3枚の画像は独立であり、算出した線形係数は信頼性があると判定する。一方、所定の閾値よりも大きいときは、算出した線形係数は信頼性が低いと判定し、ステップS11に戻り、同じA領域を持ち、いまの重複画像群とは異なる重複画像群の再選択を行う。
ここで、信頼性が低いと判定される原因は、
○ いずれかの画像において、選択した3画素のうち2個以上の法線方向が同じ
○ 少なくとも2枚以上の画像について、光源状態が等しい
の何れかであり、このような信頼性の低い線形係数を用いてパノラマ画像を合成した場合、輝度の誤差が大きいパノラマ画像が生成される。逆に、信頼性があると判定された場合は、B領域を持つ3枚の画像は、各々光源方向が異なっており、かつ、被写体表面の法線方向の異なる画素が3画素以上存在する、という条件を満たすことになる。このような信頼性の高い線形係数を用いてパノラマ画像を合成した場合は、輝度の誤差が小さいパノラマ画像の生成が可能となる。上述した輝度の誤差とは、被拡張画像と同一の光源環境で撮影された理想的なパノラマ画像と、生成されたパノラマ画像との輝度誤差を示す。
なお、ステップS11において重複画像群の選択を行う際に、同じA領域に対する重複画像群の候補が複数存在するとき、算出される線形係数の信頼性が最も高いものを、選択するようにしてもよい。具体的には例えば、上述の条件数が最小となる候補を、重複画像群として選択すればよい。これは、条件数が小さいほど、算出した線形係数の信頼性が高い、または、選択した重複画像群に含まれたB画像を持つ3枚の画像の独立性が高い、といえるからである。
また、ステップS11〜S13の処理においては、(式3)におけるD−1の有無と信頼性の高いDの条件数を基準にして、重複画像の選択と選択された画像中の3点の選択を行うことによって最適な線形係数を行う。よって、同じ基準を用いた処理であれば他の手法であってもかまわない。例えばS12においてD−1,Dの条件数の算出を同時に行い、S13では算出されたD−1,Dの条件数の信頼性判定を行い、信頼性のない場合には3点P1(x1,y1),P2(x2,y2),P3(x3,y3)の再選択を行ってもよい。この場合、3点P1(x1,y1),P2(x2,y2),P3(x3,y3)の選択を所定回数繰り返しても信頼性のある線形係数が算出されないときは、重複画像の再選択を行えばよい。
そして、線形係数が信頼性ありと判定されたとき(S13でYes)、ステップS14において、この線形係数とB領域を持つ3枚の画像の画素値とを用いて被拡張画像のサイズを拡張する。ここでは、信頼性があると判定された線形係数c4および画像I1,I2,I3のB領域における画素値を、それぞれ(式2)に代入することによって、被拡張画像I4を「I4の画像領域+B領域」まで拡張する。このように、(式2)を用いて被拡張画像I4の拡張を行うためには、3枚の画像I1,I2,I3が被拡張画像I4の画像領域以外の領域において、重複する領域(すなわちB領域)を持つ必要がある。
このようにステップS11〜S14によって、重複画像群に含まれた被拡張画像を、「原画像領域+B領域」まで拡張することができる。したがって、このような処理を繰り返し行うことによって、画像全体にわたって光源環境が同一であるパノラマ画像を容易に生成することができる。
次に、ステップS15において、画像が所望のパノラマ画像の全領域まで拡張されたか否かを判定する。そして、まだ全領域まで拡張されていないと判定したときは(S15でNo)、ステップS14において拡張した画像を画像記憶部103において記憶媒体に格納し(S16)、ステップS11に戻る。一方、全領域まで拡張されていると判定したときは(S15でYes)、そのパノラマ画像を画像記憶部103において記憶媒体に格納する(S17)。ステップS15における判定方法としては、例えば、拡張された画像の画素数が全領域分の画素数となったとき、全領域まで拡張されたと判定するようにすればよい。また、パノラマ画像を記憶する記憶媒体としては、例えばメモリやハードディスク、フィルム等を用いればよい。このように、ステップS11〜S16の処理を繰り返すことによって、全領域まで拡張された光源環境が同一である1枚のパノラマ画像が画像記憶部103に記憶される。ステップS11〜S16によって、本実施形態に係るパノラマ画像合成方法が実現される。
次に、終了判定を行う(S18)。本実施形態では、後述するように、物体検出を行うために光源方向が異なる3枚のパノラマ画像を生成する必要がある。このため、ここでは、画像記憶部103に画像間の独立性のあるパノラマ画像が3枚以上存在するとき(S18でYes)処理を終了し、画像間の独立性のあるパノラマ画像が3枚未満のときは(S18でNo)ステップS11に戻り、新たなパノラマ画像の合成を行うものとする。
ここでの判定方法としては例えば、行列式の値を用いればよい。具体的には、画像記憶部103に記憶されたパノラマ画像の中から任意の3枚のパノラマ画像(I1 P,I2 P,I3 Pとする)を選択し、選択したパノラマ画像I1 P,I2 P,I3 Pにおける3点P1(x1,y1),P2(x2,y2),P3(x3,y3)の画素値を(式3)における行列Dの形に置き、行列式|D|の算出を行う。そして、この行列式|D|の値が0でないとき、これら3枚のパノラマ画像I1 P,I2 P,I3 Pは光源方向が異なるパノラマ画像と判定し、処理を終了する。
一方、行列式|D|の値が0になるときは、選択した3枚のパノラマ画像I1 P,I2 P,I3 Pが独立でないと判断できるので、画像記憶部103に記憶された他の3枚のパノラマ画像の組み合わせを選択し、同様の処理を行う。画像記憶部103に記憶されたパノラマ画像のうちいずれの3枚を選択しても、行列式の値が0になるときは、ステップS11に戻る。もちろん、パノラマ画像が2枚以下の場合も、ステップS11に戻る。
以上のような処理を実行することによって、パノラマ画像合成部104において、画像間の独立性のある3枚のパノラマ画像が合成される。
図9は本実施形態に係るパノラマ画像合成方法によって合成したパノラマ画像の一例である。図9(a)は画像サイズが拡張される被拡張画像I0と光源方向の異なる3枚の画像I1,I2,I3を示す。図9(b)は上述した本実施形態の方法によって、図9(a)の4枚の画像I0,I1,I2,I3の重複領域を用いて、光源環境を画像I0に合わせるように合成したパノラマ画像である。また、図9(c)は従来手法の1つであるヒストグラム一致法(詳細は「画像解析ハンドブック」、東京大学出版会、pp.463,1991を参照)によって、画像I0,I1を用いて、光源環境を画像I0に合わせるように合成した画像である。
図9(b)のパノラマ画像では、図9(c)の画像と対比すると分かるように、輝度誤差が少なく、画像のつなぎ目がない。すなわち、本実施形態に係るパノラマ画像合成方法によると、光源方向の異なる画像が与えられても、輝度誤差の少ないパノラマ画像が合成される。
なお、本実施形態に係る方法によって合成されたパノラマ画像は、拡散反射画素のみによって構成されたパノラマ画像となる。このような画像をパノラマ基底画像と呼ぶ。
<パノラマ画像を用いた物体検出>
物体検出部105は、撮像画像補正部102から受けた画像について、パノラマ画像合成部104から入力された3枚のパノラマ画像を用いて、物体検出を行う。ここでの物体検出は、例えば、背景差分を用いればよい。
本実施形態における背景差分を用いた物体検出の例について、図7を用いて説明する。図7では、冷蔵庫21とテーブル22が置かれた部屋において、テーブル22を撮影し、その画像から、テーブル22に置かれた物体(空き缶23)を検出する場合を示している。I1 P,I2 P,I3 Pはパノラマ画像合成部104から入力されたパノラマ画像であり、背景として床、冷蔵庫21およびテーブル22を撮している。これら3枚のパノラマ画像I1 P,I2 P,I3 Pは、物体検出を行う画像を撮す前に撮影された画像を用いて、すでに合成されている。いま、PTカメラ25によって、画像I4が撮されたとする。画像I4では、テーブル22の上に空き缶23が乗っている。
ここで、各パノラマ画像I1 P,I2 P,I3 P から画像I4の画像領域に対応する画像I1,I2,I3を切り出し、これらの画像I1,I2,I3,I4を用いて、(式3)により線形係数c4=[c4 1 c4 2 c4 3]Tを算出する。画像I4には背景以外の物(図7の例では空き缶23)が存在している。このため、(式3)を用いて線形係数c4=[c4 1 c4 2 c4 3]Tを算出する際に、3点P1,P2,P3として背景以外の点が選択されてしまう(例えば、空き缶23が映った領域に点P1,P2,P3が選択される)場合があり得る。この場合には、線形係数の算出が正しく行えない。ただし、例えばRANSAC(「MA.FischlerandR.C.Bolles,”Random sample consensus: a paradigm for model fitting with application to image analysis and automated cartography,Commun,Assoc,Comp,Mach,24,pp.381-395,1981」参照)を用いることによって、3点P1,P2,P3を4枚の画像全ての背景成分上で選択することができ、背景以外のものの影響を受けることなく、線形係数を算出することが可能となる(詳細は、「光学現象の分類基準を利用した画像の線形化」画像の認識・理解シンポジウム(MIRU2002)論文集,vol.2, pp.167−176, 2002を参照)。このように算出された線形係数c4および画像I1,I2,I3の画素値を(式2)に代入することによって、現在の照明条件下において撮像された画像I4に対する予測背景画像I4 Eを作成することができる。そして、この予測背景画像I4 Eと元の画像I4との画素値の差分が所定の閾値よりも大きい領域を、物体領域として検出する。
そして、検出物体表示部106は、物体検出部105によって検出された物体の領域を例えばモニタなどの表示装置に表示する。
以上のように本実施形態によると、線形化を用いた画像拡張によって、画像全体にわたって光源環境が一定のパノラマ画像を生成することができる。そして、このようなパノラマ画像を複数枚用いることによって、任意の光源環境において撮影した画像から、背景差分による物体検出を行うことが可能になる。
なお、本実施形態では、(式3)を用いて線形係数の算出を行うものとしたが、(式3)は選択した3点P1,P2,P3の画素が全て拡散反射であることを仮定した式である。実環境においては、鏡面反射等の拡散反射以外の成分が画像に含まれるので、(式3)が必ずしも成り立たない可能性がある。ただし、尺長らの方法(詳細は「光学現象の分類基準を利用した画像の線形化」,画像の認識・理解シンポジウム(MIRU2002)論文集,vol.2, pp.167−176, 2002を参照)を用いることによって、これら拡散反射画素以外の画素値の影響を受けずに、3点P1,P2,P3の画素が全て拡散反射画素となるような選択を行うことが可能になる。
また本実施形態では、光源を平行光源と仮定したため、パノラマ画像合成や物体検出の際に4枚の画像を用いることによって、正しい線形係数を算出することができた。ところが、実環境下の光源には相互反射等の環境光が含まれるため、線形係数の算出を4枚の画像を用いて行った場合、実際の画像に対して誤差が大きい線形化画像しか得られない可能性がある。ただし、このような環境光が含まれる光源条件下であっても、5枚よりも多くの画像を用いることによって、線形係数の算出を精度良く行うことができ、本実施形態と同様に、画像の線形化を用いた画像拡張や物体検出を行うことが可能となる。例えば、環境光が含まれる場合であっても、4〜9枚の画像を用いて、誤差の少ない線形化画像を作成できることが、すでに報告されている(詳細は、「双方向反射分布関数の周波数特性に基づく反射成分の分離」,情報処理学会研究報告, CVIM 2002-134-1, pp.1-8,2002を参照)。
(第2の実施形態)
上述したように、実環境で撮像される画像には拡散反射画素以外の画素が多く含まれる。これらの画素は、画像合成処理においてノイズとなり、生成されるパノラマ画像の輝度誤差が大きくなる原因となる。また、重複領域を持つ画像群の独立性が低い場合にも、パノラマ画像の輝度誤差が大きくなる原因となる。このため、例えば監視システムのような、画像が逐次入力されるシステムでは、新たな入力画像を用いたときに、すでに生成されているパノラマ画像よりも輝度誤差が少ないパノラマ画像を得ることができる場合には、パノラマ画像を更新することが好ましい。これにより、拡散反射画素以外の画素によるノイズの影響を最小限に抑えることができる。
本発明の第2の実施形態では、第1の実施形態の構成に加えて、パノラマ画像を適宜更新するものである。本実施形態に係る物体検出装置の構成は、図1と同様であるが、パノラマ画像合成部104において、パノラマ画像の更新を行う点が異なる。図8は本実施形態におけるパノラマ画像合成部104の動作を示すフローチャートである。図8において、図4と共通のステップには図4と同一の符号を付しており、ここではその詳細な説明を省略する。第1の実施形態と異なるのは、パノラマ画像を更新するか否かを判定するステップS21を備えている点である。
すなわち、ステップS21において、画像記憶部103に新たな画像が入力されたとき、重複画像群の再選択を行い、同じ重複領域を持つ、新重複画像群と旧重複画像群とで画像合成の好適性を比較する。そして、新重複画像群の方が、画像合成に好適であると判断したときは、パノラマ画像を更新すると判定し(S21でYes)、ステップS11以降の処理に進む。一方、そうでないときは(S21でNo)、パノラマ画像の更新を行わない。
ここで、新重複画像群とは、画像記憶部103に新たな画像が入力されたときの、新たな入力画像とそれまでに記憶されている画像とを組み合わせた重複画像群を示す。組み合わせ方法は、ステップS11においてすでに説明したような条件および方法を用いて、実現することができる。
画像合成の好適性を判断する方法としては、例えば、新重複画像群および旧重複画像群を用いて、それぞれ、ステップS12〜S14までの処理を行って合成画像を作成し、作成された合成画像における拡散反射画素の個数を比較し、その個数が多い方を好適性ありとすればよい。拡散反射画素の検出は、例えば、ある閾値以下の画素値を持つ画素を陰影画素とし、また、ある閾値以上の画素値を持つ画素を鏡面反射画素とし、これら陰影画素および鏡面反射画素を除いた画素の総和を、拡散反射画素の個数とすればよい。
また、画像合成の好適性を判断する他の方法としては、例えば、各重複画像群の拡散反射画素の総数を用いて画像合成の好適性を判断してもよい。ステップS12において線形係数を算出する際、算出に用いる画素に陰影画素や鏡面反射画素が選択された場合、正しい線形係数を算出することができない。よって、用いる重複画像のA領域において拡散反射画素の個数が多いほど、正しい線形係数の算出が期待できる。すなわち、新重複画像群のA領域における各画像の拡散反射画素の総数が旧重複画像群のA領域における各画像の拡散反射画素の総数よりも多いとき、パノラマ画像の更新を行うようにすればよい。
また、画像合成の好適性を判断する他の方法としては、例えば、画像間の独立性を用いて、画像合成の好適性を判断してもよい。すなわち、旧重複画像群に対して新重複画像群の方が、画像間の独立性が高いとき、パノラマ画像の更新を行うようにすればよい。画像間の独立性の判定は、例えば、ステップS13において説明した方法(条件数を算出し、条件数が小さいほど独立性が高いと判定)によって実現できる。また、旧重複画像群で線形係数を算出する際に用いた3点の座標位置と同じ座標位置における輝度値を用いて新重複画像群の条件数の算出を行い、算出された新重複画像群の条件数が旧重複画像群の条件数よりも小さいとき、パノラマ画像の更新を行うようにしてもよい。
このように本実施形態によると、画像合成により好適な重複画像群が得られたときにパノラマ画像が更新されるので、より輝度誤差の少ないパノラマ画像を作成することが可能となる。したがって、物体検出の精度もより向上させることができる。
(第3の実施形態)
上述したパノラマ画像合成方法では、線形係数算出の計算を逐次的に繰り返すことによって、画像を拡張する。しかし、このような画像拡張では、輝度誤差の評価は各々のA領域において逐次的にしか行えないため、計算を繰り返して画像を拡張していくと、画像中に含まれるノイズや量子化誤差などが蓄積されていく。これは、最終的に合成されるパノラマ画像の輝度誤差が大きくなる原因になる。このため、所望の画像サイズに拡張するまでに用いる画像の組み合わせが複数通り考えられる場合は、このような繰り返し計算による誤差の蓄積を最小限に抑えるように、画像合成を行うことが好ましい。これにより、より輝度誤差の少ないパノラマ画像が得られ、物体検出の精度も向上する。
本発明の第3の実施形態では、第1の実施形態の構成に加えて、パノラマ画像合成時における繰り返し演算による誤差を軽減するものである。本実施形態に係る物体検出装置の構成は図1と同様であるが、画像記憶部103に、いわゆる評価画像群が存在する場合、パノラマ画像合成部104は、第1の実施形態とは異なる処理方法によって、線形係数の算出を行う。
ここで「評価画像群」とは、「被拡張画像と重複画像群として連結された画像群において、被拡張画像と同一の光源環境を持つ画像が少なくとも1枚存在する画像群」と定義する。もう少し具体的に説明すると、ある被拡張画像I0と本発明の重複画像群を構成するN枚の画像をまず特定し、次に、このN枚の画像のB領域を被拡張画像としたときにこれと重複画像群を構成するN枚の画像を特定し、さらに、このN枚の画像のB領域と重複画像群を構成するN枚の画像を特定する、というように、重複画像群を構成するN枚の画像を、連結するように、順次特定していく。そして、最後に特定したN枚の画像が、元の被拡張画像I0と光源環境が同一である画像と重複したとき、それまでに特定した複数組のN枚の画像と元の被拡張画像I0とを、「評価画像群」とする。
この評価画像群を用いることによって、複数のA領域を併せて用いて輝度誤差の評価を行うことが可能となり、各A領域で逐次的に輝度誤差の評価を行いつつ画像を拡張した第1の実施形態に比べて、輝度誤差の少ないパノラマ画像の合成が可能となる。
なお、ここでは、元の被拡張画像と光源環境が同一の画像として、元の被拡張画像自体を用いるものとする。元の被拡張画像とは別の画像を用いる例については、後述する。
図10は具体的な評価画像群の例を示す。図10は画像I0に対して評価画像群(I4,I5,I6)(I7,I8,I9)が存在している最も単純な例である。(I4,I5,I6)(I7,I8,I9)は同じ画角を持つ画像群であり、これらを1枚の画像として模式的に表したものを図11に示す。図11において、I0は2個の重複画像群で連結されており(A456 1+B456 1を持つ(I4,I5,I6)、およびA789 1+B789 456を持つ(I7,I8,I9))、A456 1とA789 1は同じ画像I0に属しているので、連結された画像群内に、被拡張画像と光源環境が同一である画像が存在しているといえる(共に画像I0)。よって、I0および(I4,I5,I6)(I7,I8,I9)は画像I0に対する評価画像群であるといえる。
図12は本実施形態におけるパノラマ画像合成部104の動作を示すフローチャートである。図12において、図4と共通のステップには図4と同一の符号を付しており、ここではその詳細な説明を省略する。第1の実施形態と異なるのは、評価画像群が存在するか否かを判定するステップS31、および評価画像群が存在する場合に誤差の少ない線形係数を算出するステップS32を備えている点である。
すなわち、ステップS31において、画像記憶部103に記憶された画像の中から、評価画像群の有無の判定を行う。そして、評価画像群があったときは(S31でYes)、この評価画像群に属する画像を利用して誤差の少ない線形係数の算出を行う(S32)。一方、そうでないときは(S31でNo)、第1の実施形態と同様に、ステップS11以降の処理を行う。
評価画像群の有無の具体的な判定方法を図13および図14を用いて説明する。図13は、画像I0に対してI0GからIn−1Gのn組で構成された評価画像群の一例である(光源環境が同一である画像が共に被拡張画像I0であるケース)。このIkGはk番目の画像群Ikを表している。また、k番目のA領域をAk、k番目のB領域をBkと表している(k=0,1,…,n)。また、図14は評価画像群判定ステップS31の具体的な処理の流れを示すフローチャートである。以下、図14を用いてS31の処理の流れを説明する。
まず、ステップS41において、画像記憶部103に記憶された画像の中から、任意の1枚の画像I0を選択する。
次に、ステップS42において、ステップS41で画像記憶部103に記憶された全ての画像が選択されたか否かの判定を行う。判定方法としては、ステップS41で選択した画像I0の履歴をメモリに記憶しておき、画像記憶部103に記憶された画像との参照を行うことにより判定することができる。判定の結果、既に全ての画像の選択を行っていたときは(S42でYes)、評価画像群なしと判定する(S50)。
全ての画像をまだ選択していないと判定したとき(S42でNo)、ステップS43において、ステップS41で選択した画像I0に対して、A+B領域を持つ画像群が少なくとも2組存在するか否かを判定する。ここでの判定は、第1の実施形態で述べた重複領域の検出方法を用いて実現できる。判定の結果、画像群が2組以上存在しないときは(S43でNo)、ステップS41に戻り、画像I0の再選択を行う。一方、画像群が少なくとも2組存在するときは(S43でYes)、ステップS44においてkに0を代入する。
次に、ステップS45において、ステップS43で判定された画像群のうちの1組(Ak,Bk)を選択し、選択した画像群のBk領域内にさらに少なくとも1組のA+B領域を持つ画像群(Ak+1,Bk+1)が存在するか否かを判定する。ここでの判定も、第1の実施形態で述べた重複領域の検出方法を用いて実現できる。ここで、新たな画像群が存在しないと判定されたときは(S45でNo)、ステップS41に戻り、画像の再選択を行う。
新たな画像群(Ak+1,Bk+1)が存在するとき(S45でYes)、ステップS46において、Bk+1領域内にAnが存在するか否かを判定する。ここで、Anとは、ステップS43で検出された画像群のうち、ステップS45で選択されなかった画像群のA領域を指す。Bk+1にAnが存在するときは(S46でYes)、評価画像群ありと判定し、処理を終了する。
一方、Bk+1にAnが存在しなかったときは(S46でNo)、kが閾値tよりも小さいか否かを判定し(ステップS48)、kが閾値tよりも小さいときは(S48でYes)、kをインクリメントし(ステップS49)、ステップS45に戻って処理を繰り返す。一方、kが閾値tよりも小さくないときは(S48でNo)、ステップS41にもどり、画像I0の再選択を行う。
ここで、繰り返し回数の閾値tは、例えば次のようにして決定すればよい。すなわち、画像記憶部103に記憶されている全撮像画像数がa枚とすると、aを、重複画像群中のB領域を持つ画像の数N(各実施形態の説明では3)で除したときの商の値を、閾値tとして用いればよい。
なお、画像I0に対して評価画像群が複数個、存在するときは、その評価画像群に存在する各B領域におけるN枚の画像の独立性が、最も高いものを、選択してもよい。例えば、各B領域において第1の実施形態で述べた行列Dの条件数の計算を行い、この条件数の値が各B領域において閾値以下であり、かつ、各B領域における条件数の値の総和が最も小さい評価画像群を、独立性が最も高いものとして、選択すれば良い。これにより、輝度誤差がより少ないパノラマ画像を合成することができる。
また、画像I0に対して評価画像群が複数個、存在するとき、その評価画像群が占める画像領域における画素数が、最も多いものを、選択してもよい。これにより、最終的なパノラマ画像を合成するまでの計算回数が少なくなり、パノラマ画像の輝度誤差をより少なくすることができる。
以上のように、ステップS41〜S50の処理を行うことによって、ステップS31における評価画像群の有無を判定することができる。
次に、S32において、S31で選択された評価画像群を用いて、繰り返し計算による誤差の蓄積が小さい線形係数の算出を行う。算出方法としては、例えば評価画像群内の各A領域において複数の線形係数組を算出しておき、それらの係数組の組み合わせの中から最も輝度誤差が小さくなる係数組を選択すればよい。この処理の流れを図13を用いて説明する。
図13において、Ck−1 kを、k−1番目の画像群とk番目の画像群との線形係数組を表す記号として用いると、各画像間には以下の式が成り立つ。
I0 =C0 1I1G (式4)
I1G=C1 2I2G (式5)
・・・
I(n−1)G=Cn−1 nInG (式6)
ここで、(式4)〜(式6)において、複数個(N個)の係数組Ck−1 kを求めておく。一方、(式4)〜(式6)より、
I0=C0 1C1 2…Cn−1 nInG (式7)
が成り立つ。ここで、評価画像群が存在する場合には、(式7)により求まった画像I0(I0 Lとする)と現実の被拡張画像I0との画素値を、An領域において直接比較できる。このため、(式8)の評価式に従い、評価値e_valが最も高くなる係数組を求めることにより、パノラマ画像合成を行う際の繰り返し計算による誤差の蓄積が最小となるような線形係数の算出を行うことができる。評価関数Ek(Ak)は、k番目のA領域におけるIkとIk Lとの画素値の差分が閾値以下の画素数の総和(e_val)を求めればよい。
すなわち、(式8)により、最も評価値e_valが高くなる係数組Ck−1 kの組み合わせを、各A領域で算出したN個の係数組の組み合わせから選択すればよい。
以上、S32における最適な線形係数の算出方法について説明した。以下、具体的な算出例を、図11を用いて説明する。
図11において、I1と(I4,I5,I6)には、次の式が成り立つ。
また、(I4,I5,I6)と(I7,I8,I9)には、次の式が成り立つ。
一方、I1と(I7,I8,I9)には、(式9)、(式10)より次の式が成り立つ。
ここで、ikはIkにおける画素値を表している。はじめに(式9)を用いてA456 1において3通りの係数組c1を求める。同様に(式10)を用いてA789 456領域において3通りの係数組c4,c5,c6を求める。これは例えばRANSACを用いて(式8)で示した評価値e_valの高い上位3組の係数組を求めればよい。これにより(式9)から(式11)では各々3組のc1,c4,c5,c6の係数組の組み合わせにより、全81通りのIk Lが算出される。次にこの81通りの中で(式12)に示される評価値e(各A領域でのe_valの総和)が最も高い係数組の組み合わせを選択する。
図15は本実施形態に係るパノラマ画像合成の過程を説明する図である。被拡張画像I0は、重複領域A0を用いて領域1まで拡張される。同様に、重複領域域A1を用いて領域2まで拡張され、重複領域A2を用いて領域3まで拡張される。各領域を拡張するにあたり、算出する線形係数の上位3組を保持し、最終的な評価値が最も高くなる線形係数の組み合わせを選択する。ここでは、A領域における合成画像Ik Lと合成に用いた画像Ikとの輝度誤差(輝度値の差分値が2以下)が最も少なくなるようにした。
図16は図15を用いて説明した方法で合成したパノラマ画像である。図16(a)は被拡張画像I0、図16(b)は本実施形態によって生成されたパノラマ画像Ipである。図16(b)を見ると分かるように、輝度誤差の無い良好なパノラマ画像が得られている。
図17は第1の実施形態と本実施形態との比較結果を示す。図17は、各実施形態で合成されたパノラマ画像について、正解画像を基準にしたときの、輝度の平均2乗誤差および誤差の分散を表している。図17から、本実施形態によって生成されたパノラマ画像は第1の実施形態によって生成されたパノラマ画像に比べ、誤差が少なく、誤差の分散が小さいことが分かる。これは、第3の実施形態に係るパノラマ画像合成方法の有効性を示している。
なお、S32では、各A領域で評価値e_valが高い係数組を複数保持し、それらの係数組の組合せにおいて最も評価値eが高くなる係数組の組合せを最適な線形係数として算出したが、他の最適な線形係数の算出方法としては、例えば、各A領域で複数の線形係数組を算出して保持する代わりに、全てのA領域で同時に3点の画素値の選択を行って線形係数の算出を行い、算出された線形係数を(式8)を用いて評価を行い、これを複数回繰り返す中で最も評価値e_valの高い係数の組み合わせを選択しても良い。
また、S32における他の最適な線形係数の算出方法としては、例えば、(式4)〜(式6)の各領域で算出した線形係数を用いて算出した画素値と、元の被拡張画像の画素値との2乗誤差が最少となるように、線形係数を求めてもよい。具体的には、例えば線形係数の初期値として、各A領域で求めた最も評価の高い線形係数を用い、勾配法を用いて(式12)に示す誤差関数Eを最少にする係数組を求めれば良い(詳細は「Numerical Recipes in C 日本語版」,pp.292−295,株式会社技術評論社,1993)。この2乗誤差関数を(式13)に示す。ia bは画像Iaにおけるk番目の画素位置における画素値を示し、l,m,nは各A領域の画素数を示す。
なお、ここまでは、評価画像群において、元の被拡張画像と光源環境が同一である画像が、被拡張画像自体である場合を例にとって、説明を行った。ただし、一般的には、図18に示すように、評価画像群において、被拡張画像I0と光源環境が同一である画像は、画像I0と異なる画像Inであってもかまわない。この場合、評価画像群の存在の有無を判定するステップS31における処理の流れが、図14のフローとは、若干異なる。
図19は被拡張画像I0と光源環境が同一である画像が、被拡張画像I0と異なる画像Inである場合のステップS31の処理を示すフローチャートである。図19において、図14と共通のステップには図14と同一の符号を付しており、ここではその詳細な説明を省略する。図14の処理と異なるのは、被拡張画像I0と光源環境が同一である画像Inを検出する点である(検出対象画像には画像I0も含まれるので、必ず1枚以上は存在する)。
まず、ステップS41において、画像記憶部103に記憶された画像の中から、任意の1枚の画像I0を選択する。
次に、ステップS61では、ステップS41で選択された画像I0と同一の光源環境の画像Inの検出を行う。具体的な検出方法としては、例えば、測定対象領域に測定対象物を設置し、その変化を調べるようにしてもかまわない。これは、例えば完全拡散反射を起し、鏡面反射を生じない硫酸バリウムやスペクトラロンの物体を置くようにしてもかまわない。
また、時間変化によって光源環境は変化すると考えられるので、一定時間経過ごとに光学環境が変化したと判断してもかまわない。これは、例えば窓などにより太陽光が入り込んでくる環境において特に有効である。
また、鏡面球を使って光源状態を撮像し、その変化を検出するようにしてもよい。もちろん、広角カメラを天井方向に向けて光源状態を撮影してもかまわない。
また、撮像領域内において、最も輝度が高い画素の位置を認識し、その位置が動いた際には光源環境が変化したと判断するようにしても構わない。これは、最も輝度が高い画素は鏡面反射を起していると考えられるため、この位置が動くことを検出することで光源位置の変化を検出するものである。
次に、ステップS42において、ステップS41で画像記憶部103に記憶された全ての画像が選択されたか否かの判定を行う。判定の結果、既に全ての画像の選択を行っていたときは(S42でYes)、評価画像群なしと判定する(S50)。
全ての画像をまだ選択していないと判定したとき(S42でNo)、ステップS62において、ステップS41で選択した画像I0に対して、A+B領域を持つ画像群が少なくとも1組存在するかを判定する。判定の結果、画像群が1組も存在しないときは(S62でNo)、ステップS41に戻り、画像I0の再選択を行う。一方、画像群が少なくとも1組存在するときは(ステップS62でYes)、ステップS44においてkに0を代入する。
次に、ステップS45において、ステップS62で判定された画像群の中から1組の画像群(Ak,Bk)を選択し、選択した画像群のBk領域内にさらに少なくとも1組のA+B領域を持つ画像群(Ak+1,Bk+1)が存在するか否かを判定する。ここで、新たな画像群が存在しないと判定されたときは(S45でNo)、ステップS41に戻り、画像の再選択を行う。
新たな画像群(Ak+1,Bk+1)が存在するとき(S45でYes)、ステップS63において、Bk+1領域内に画像Inとの重複領域(An)が存在するか否かを判定する。存在するときは(S63でYes)、評価画像群ありと判定し、処理を終了する。
一方、Bk+1に画像Inとの重複領域が存在しなかったときは(S63でNo)、kが閾値tよりも小さいか否かを判定し(ステップS48)、kが閾値tよりも小さいときは(S48でYes)、kをインクリメントし(ステップS49)、ステップS45に戻って処理を繰り返す。一方、kが閾値tよりも小さくないときは(S48でNo)、ステップS41にもどり、画像I0の再選択を行う。
このように、評価画像群において、被拡張画像I0と光源環境が同一である画像が被拡張画像I0と異なる画像であった場合でも、図19に示す処理によって、評価画像群の有無を判定することができる。
このように本実施形態によると、評価画像群が存在するか否かを判定するステップS31、および評価画像群が存在する場合に誤差の少ない線形係数を算出するステップS32により、画像合成を行う際の繰り返し計算による誤差の蓄積を最小限に抑えるような線形係数の算出を行うことができるので、より輝度誤差の少ないパノラマ画像合成を行うことができ、物体検出の精度も向上する。
本発明では、光源環境が一定のパノラマ画像を合成でき、このパノラマ画像を複数枚用いることによって、任意の光源環境において撮影した画像から物体検出を行うことができるので、例えば、屋外等の光環境が頻繁に変化するような場所の、監視システムにおける侵入者検出等に有用である。
本発明の第1の実施形態に係る物体検出装置の構成図である。
カメラの位置・姿勢を定義する座標系を示す図である。
パノラマ投影面座標系への座標変換方法を示す図である。
図1のパノラマ画像合成部の動作であり、本発明の第1の実施形態に係るパノラマ画像合成方法を示すフローチャートである。
選択された重複画像群の一例を示す模式図である。
線形化係数の算出方法を説明するための図である。
パノラマ画像を用いた物体検出を示す図である。
本発明の第2の実施形態に係るパノラマ画像合成方法を示すフローチャートである。
本発明の第1の実施形態に係るパノラマ画像合成方法を用いて合成したパノラマ画像の一例を示す図である。
評価画像群の例を示す図である。
図10を模式的に表した図である。
本発明の第3の実施形態に係るパノラマ画像合成方法を示すフローチャートである。
評価画像群の一例の模式図である。
評価画像群の判定処理を示すフローチャートである。
パノラマ画像合成の過程を説明する図である。
パノラマ画像の例である。
第1の実施形態と第3の実施形態との比較結果である。
評価画像群の一例の模式図である。
評価画像群の判定処理を示すフローチャートである。
符号の説明
11 A領域(第1の領域)
12 B領域(第2の領域)
23 空き缶(物体)
101 撮像部
102 撮像画像補正部
103 画像記憶部
104 パノラマ画像合成部
105 物体検出部
106 検出物体表示部