本発明者らは、2つのカメラからなるステレオカメラで撮影された2つの画像を用いたステレオ測距における測距精度の向上を検討してきた。そして、本発明者らは、「背景技術」で挙げた特許文献1及び2に記載される技術について、ステレオ測距での距離測定誤差を検討した。特許文献1及び2に記載される技術は、距離測定誤差を定性的に減少させるものの、距離測定誤差の原因となるカメラ画像のノイズ成分の影響を考慮していない。そこで、本発明者らは、カメラ画像のノイズ成分の影響を考慮することによる測距精度の改善を検討した。そして、本発明者らは、ステレオ測距での距離測定処理において、カメラ画像のノイズ成分の分散等の統計量を用いて距離測定結果を重み付けすることによって、確率統計的に距離測定誤差を低減することが可能であることを見出した。そこで、本発明者らは、測距精度の改善のために、以下に記載されるような技術を見出した。
具体的には、本開示の一態様に係る撮像装置は、複数の画像から被写体の3次元位置を算出し、前記複数の画像及び前記3次元位置の情報を出力する撮像装置であって、少なくとも3つのカメラを有し、前記カメラそれぞれにより画像を撮影する撮像部と、前記カメラそれぞれのカメラパラメタを記憶するカメラパラメタ記憶部と、処理回路とを備え、前記処理回路は、前記画像及び前記カメラパラメタを取得し、前記画像から複数の画像のペアを抽出し、前記複数の画像のペアと前記カメラパラメタとから、前記画像のペアそれぞれについて、前記画像のペアにそれぞれ含まれる画素のペアに対する計測点の3次元位置を特定する情報と前記画素のペアそれぞれの画素の位置を特定する情報とを含む位置情報を算出し、前記位置情報及び前記カメラパラメタに基づき、前記画像のペアそれぞれに対応する前記カメラのペアにおける前記3次元位置に対する見込み角対応長又は見込角を用いた情報で、前記画像のペアそれぞれの前記3次元位置を特定する情報を重み付け加算し、重み付け加算値を適用した前記計測点の位置情報を出力する。
上記態様において、カメラのペアの見込み角対応長及び見込角が小さくなるほど、ステレオ視の測距精度が低下する。また、見込み角対応長及び見込角は、カメラのペアの視野の中央よりも端の位置に対するステレオ視の際、小さくなる。このような見込み角対応長及び見込角を用いた3次元位置を特定する情報の重み付け加算値は、3次元位置に起因する測距精度のばらつきの影響を低減した値となり得る。カメラ画像のノイズ分布による距離測定誤差への影響は、距離測定誤差の分散に反映され得る。さらに、距離測定誤差の分散は、見込み角対応長及び見込角と対応付けられ得る。このような見込み角対応長又は見込角を用いた3次元位置を特定する情報の重み付け加算値は、カメラの画像のノイズ成分の分布に起因する測距精度のばらつきの影響も低減する。よって、距離測定誤差の低減が可能になる。
また、本開示の一態様に係る撮像装置において、前記処理回路は、前記重み付け加算値の分散を最小化するように、前記画像のペアそれぞれの前記3次元位置を特定する情報に付与する重みを決定してもよい。上記態様によれば、重み付け加算値の分散を最小化することによって、重み付け加算値は、カメラの画像のノイズ分布に起因する測距精度のばらつきの影響を、確率統計的に低減することができる。よって、安定した距離測定誤差の低減が可能になる。
また、本開示の一態様に係る撮像装置において、前記少なくとも3つのカメラそれぞれの視野角は、180度以上であってもよい。上記態様によれば、撮像装置は、広範囲な撮像が可能である。
また、本開示の一態様に係る撮像装置において、前記処理回路は、前記重み付け加算では、前記見込み角対応長の2乗をその総和で正規化したものを用いてもよい。上記態様において、見込み角対応長の2乗は、距離測定誤差の分散と反比例関係にあり、距離測定誤差と高い相関を有する。さらに、正規化された見込み角対応長の2乗は、0~1の間の値をとり、且つその総和が1である。よって、正規化された見込み角対応長の2乗は、見込み角対応長の2乗の総和に依存せず、重みとして効果的に機能する。
また、本開示の一態様に係る撮像装置において、前記処理回路は、前記重み付け加算では、前記見込み角の2乗をその総和で正規化したものを用いてもよい。上記態様において、見込み角の2乗は、距離測定誤差の分散と反比例関係にあり、距離測定誤差と高い相関を有する。さらに、正規化された見込み角の2乗は、0~1の間の値をとり、且つその総和が1である。よって、正規化された見込み角の2乗は、見込み角の2乗の総和に依存せず、重みとして効果的に機能する。
また、本開示の一態様に係る撮像装置において、前記カメラパラメタは、前記画像における被写体の投影が遮蔽された遮蔽領域及び被写体が投影される非遮蔽領域に関する遮蔽情報を含み、前記処理回路は、前記画像のうちの第1画像における前記遮蔽領域の画素値を、他の前記画像の前記非遮蔽領域の画素値に基づき、補完してもよい。上記態様によれば、カメラの視野全体にわたって被写体が映し出されることが可能になる。例えば、撮像装置が、周囲の監視などに用いられる場合、周囲全体にわたる漏れのない監視を行うことができる。
本開示の一態様に係る画像処理方法は、複数の画像から被写体の3次元位置を算出し、前記複数の画像及び前記3次元位置の情報を出力する画像処理方法であって、(a1)少なくとも3つのカメラそれぞれにより撮影された画像を取得し、(a2)前記カメラそれぞれのカメラパラメタを取得し、(a3)前記画像から複数の画像のペアを抽出し、(a4)前記複数の画像のペアと前記カメラパラメタとから、前記画像のペアそれぞれについて、前記画像のペアにそれぞれ含まれる画素のペアに対する計測点の3次元位置を特定する情報と前記画素のペアそれぞれの画素の位置を特定する情報とを含む位置情報を算出し、(a5)前記位置情報及び前記カメラパラメタに基づき、前記画像のペアそれぞれに対応する前記カメラのペアにおける前記3次元位置に対する見込み角対応長又は見込角を用いた情報で、前記画像のペアそれぞれの前記3次元位置を特定する情報を重み付け加算し、(a6)重み付け加算値を適用した前記計測点の位置情報を出力し、処理(a1)~(a6)少なくとも1つは、プロセッサにより実行される。上記態様によれば、本開示の一態様に係る撮像装置と同様の効果が得られる。
また、本開示の一態様に係る画像処理方法は、重み付け加算値の分散を最小化するように、前記画像のペアそれぞれの前記3次元位置を特定する情報に付与する重みを決定してもよい。
また、本開示の一態様に係る画像処理方法において、前記少なくとも3つのカメラそれぞれの視野角は、180度以上であってもよい。
また、本開示の一態様に係る画像処理方法は、前記重み付け加算では、前記見込み角対応長の2乗をその総和で正規化したものを用いてもよい。
また、本開示の一態様に係る画像処理方法は、前記重み付け加算では、前記見込み角の2乗をその総和で正規化したものを用いてもよい。
また、本開示の一態様に係る画像処理方法において、前記カメラパラメタは、前記画像における被写体の投影が遮蔽された遮蔽領域及び被写体が投影される非遮蔽領域に関する遮蔽情報を含み、前記画像処理方法はさらに、(b1)前記画像のうちの第1画像における前記遮蔽領域の画素値を、他の前記画像の前記非遮蔽領域の画素値に基づき、補完してもよい。
本開示の一態様に係るプログラムは、(a1)少なくとも3つのカメラそれぞれにより撮影された画像を取得し、(a2)前記カメラそれぞれのカメラパラメタを取得し、(a3)前記画像から複数の画像のペアを抽出し、(a4)前記複数の画像のペアと前記カメラパラメタとから、前記画像のペアそれぞれについて、前記画像のペアにそれぞれ含まれる画素のペアに対する計測点の3次元位置を特定する情報と前記画素のペアそれぞれの画素の位置を特定する情報とを含む位置情報を算出し、(a5)前記位置情報及び前記カメラパラメタに基づき、前記画像のペアそれぞれに対応する前記カメラのペアにおける前記3次元位置に対する見込み角対応長又は見込角を用いた情報で、前記画像のペアそれぞれの前記3次元位置を特定する情報を重み付け加算し、(a6)重み付け加算値を適用した前記計測点の位置情報を出力することを、コンピュータに実行させる。上記態様によれば、本開示の一態様に係る撮像装置と同様の効果が得られる。
また、本開示の一態様に係るプログラムは、重み付け加算値の分散を最小化するように、前記画像のペアそれぞれの前記3次元位置を特定する情報に付与する重みを決定してもよい。
また、本開示の一態様に係るプログラムは、前記重み付け加算では、前記見込み角対応長の2乗をその総和で正規化したものを用いてもよい。
また、本開示の一態様に係るプログラムは、前記重み付け加算では、前記見込み角の2乗をその総和で正規化したものを用いてもよい。
また、本開示の一態様に係るプログラムにおいて、前記カメラパラメタは、前記画像における被写体の投影が遮蔽された遮蔽領域及び被写体が投影される非遮蔽領域に関する遮蔽情報を含み、前記プログラムはさらに、(b1)前記画像のうちの第1画像における前記遮蔽領域の画素値を、他の前記画像の前記非遮蔽領域の画素値に基づき、補完させてもよい。
なお、上記の全般的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD-ROM等の不揮発性の記録媒体を含む。
以下、実施の形態に係る撮像装置等を、図面を参照しながら説明する。なお、以下で説明される実施の形態は、包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ(工程)、並びにステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、以下の実施の形態の説明において、略平行、略直交のような「略」を伴った表現が、用いられる場合がある。例えば、略平行とは、完全に平行であることを意味するだけでなく、実質的に平行である、すなわち、例えば数%程度の差異を含むことも意味する。他の「略」を伴った表現についても同様である。
[実施の形態]
以下において、実施の形態に係る撮像装置1を説明する。本実施の形態では、撮像装置1が、自動車の車載用として用いられ、障害物を検知するように構成された例を説明する。なお、撮像装置1は、車載される場合、自動車の周囲の監視、自動車の運転支援等の用途で用いられてもよい。また、撮像装置1は、いかなる対象物に搭載されてもよい。例えば、撮像装置1は、自動車以外の車両、船舶、飛行体又はロボット等の移動体に搭載されてもよい。自動車以外の車両は、トラック、バス、二輪車、搬送車、鉄道、建設機械、荷役機械等であってもよい。飛行体は、航空機、ドローン等であってもよい。
図1並びに図2A及び図2Bを参照して、撮像装置1の構成を説明する。なお、図1は、実施の形態に係る撮像装置1の機能的な構成の一例を示す。図2A及び図2Bはそれぞれ、撮像装置1が備える撮像部100の異なる2つの構造例示す。図1に示されるように、撮像装置1は、撮像部100と、画像処理部110と、障害物検出部120と、ディスプレイ130とを備える。
撮像部100は、3つ以上のカメラを備えている。3つ以上のカメラのそれぞれは魚眼レンズを有する。限定するものではないが、本実施の形態では、撮像部100は、4つのカメラ101a、101b、101c及び101dを備える。4つのカメラ101a、101b、101c及び101dは、一体化されてもよく、分離して配置されてもよい。画像処理部110は、カメラ101a、101b、101c及び101dのそれぞれが撮影した画像を取得し、処理する。画像処理部110は、位置算出部111と、位置選択統合部112と、画像補完部113と、カメラパラメタ記憶部114とを備える。なお、4つのカメラを区別するために添え字a~dを用いるが、以下では、これらを特に区別しない場合には、添え字を利用せず「カメラ101」と記述する場合がある。
図2A及び図2Bを参照すると、撮像装置1の撮像部100の構成例が示されている。図2Aは、4つのカメラ101が一体として固定された構成の撮像部100の例を示す。図2Aにおいて、撮像部100は、(a)の正面図、(b)の側面図、及び、(c)の断面図で示されている。上記断面図は、撮像部100の2つのカメラ101の2つのレンズの中心を通る断面で、撮像部100を切断した図である。図2Aにおいて、4つのカメラ101は、それぞれのレンズの中心が正方形の頂点に位置するように配置されている。図2Bは、3つのカメラ101が一体として固定された構成の撮像部100の別の例を示す。図2Bにおいて、撮像部100は、(a)の正面図、及び、(b)の側面図で示されている。図2Bにおいて、3つのカメラ101は、それぞれのレンズの中心が正三角形の頂点に位置するように配置されている。
図2Aにおける撮像部100の例では、各カメラ101のレンズは、魚眼レンズであり、その直径は概ね同じである。図2Aにおける4つのカメラ101のそれぞれの光軸は互いに平行であり、且つ、隣り合う2つのレンズと近接して配置されている。したがって、隣接する2つのカメラの光軸間の距離、つまりレンズの中心間の距離は、レンズの直径に概ね一致する。各カメラ101の視野は、隣り合うカメラ101の視野と重なる。
図2Bにおける撮像部100の例では、各カメラ101のレンズは、魚眼レンズであり、その直径は概ね同じである。図2Bにおける3つのカメラ101のそれぞれの光軸は互いに平行であり、且つ、隣り合う2つのレンズと近接して配置されている。したがって、隣接する2つのカメラの光軸間の距離、つまりレンズの中心間の距離は、レンズの直径に概ね一致する。各カメラ101の視野は、隣り合うカメラ101の視野と重なる。なお、本実施の形態では、撮像部100は、図2Aに示す例の構成を有する。
また、図2A及び図2Bに示されるように、隣接するカメラ101の光軸間の距離は基線長と呼ばれ、撮像部100において、各カメラ101の光軸上に撮像素子が設けられている。撮像素子は、カメラ101のレンズを通って入射する光を受光して、受光した光から像を形成する構成を有するものであればよく、例えば、CMOS(Complementary Metal-Oxide Semiconductor)イメージセンサ又はCCD(Charge Coupled Device)イメージセンサであってもよい。
なお、上述の撮像装置1は、少なくとも撮像部100及び画像処理部110を含む構成であってもよい。障害物検出部120及びディスプレイ130は、撮像装置1の外部に設けられた機器に含まれもよい。外部に設けられた機器は、例えばPC(パーソナルコンピュータ)とそのディスプレイとを含み、これらを用いて障害物検出部120及びディスプレイ130を実現してもよい。画像処理部110と障害物検出部120とは、有線通信を介して接続されていてもよいし、無線通信を介して接続されていてもよい。また、画像処理部110及び障害物検出部120は、1対1で直接的に接続されていてもよいし、インターネット等の通信ネットワークを介して間接的に接続されていてもよい。
上述した撮像部100におけるカメラ101の構成は、本発明者らの以下の知見に基づいている。具体的には、ステレオ視(Stereo vision)における、3次元位置の推定誤差の原因の1つとして、視差推定における量子化誤差がある。量子化誤差とは、実際には実数値である視差を、1画素精度で推定することにより生じる誤差である。この量子化誤差の大きさは一定と考えることができるため、視差が大きいほど、つまり、視差ベクトルの長さが長いほど、量子化誤差の影響は低くなり、3次元位置の精度は高くなる。そのため、ステレオ視のペアとなる複数のカメラは、視差が大きくなるよう、カメラ間の距離である基線長が十分な長さになるように配置するのが一般的である。
ここで、「視差」とは、2つの異なる点A及び点B、例えば、2つの異なる位置にあるカメラ、から同一の対象点Oを観察した場合、同一の対象点の方向又は位置の差である。視差は、例えば、点A及び対象点Oを含む線分と点B及び対象点Oを含む線分とがなす角度(∠AOB)で表現してもよい。本明細書においては、3次元空間での対象点の方向の差も、2次元投影像での対象点の位置の差も、区別せず視差と呼ぶ。
一方、魚眼レンズを有するカメラで撮影した被写体像は、大きく歪むため、視野内での被写体の3次元位置によって、言い換えると、画像中の被写体の位置によって、被写体像の形、及び/又は、大きさ、及び/又は向きが異なる。魚眼レンズを有するあるカメラCCDが被写体を撮影した画像IIDと、魚眼レンズを有する他のカメラCCEが被写体を撮影した画像IIEとをステレオ視に用いる場合、カメラCCD及びCCEの間の被写体に対する視差が大きいほど、画像IIDにおける被写体像の形と画像IIEにおける被写体像の形とが異なる度合が増し、画像IIDにおける被写体像の大きさと画像IIEにおける被写体像の大きさとが異なる度合が増し、画像IIDにおける被写体像の向きと画像IIEにおける被写体像の向きとが異なる度合が増す。そのため、画像IIDにおける被写体位置と画像IIEにおける被写体位置との間の視差推定が困難になる。
このような例として、図3には、被写体とカメラとの距離を一定(距離1m)とした状態で、カメラの向きを0度、45度、90度に変更して撮影した被写体像の例が示されている。なお、カメラの向き0度は、カメラの光軸が被写体に向いている場合のカメラの向きである。図3によれば、画像中の位置の違いにより、被写体像の見え方、つまり、被写体像の形、大きさ又は向きが違っていることが分かる。これは、魚眼レンズによる歪み方が被写体及びカメラを含む直線と光軸とがなす角度によって異なるためである。図3のカメラの向き0度(被写体及びカメラを含む直線と光軸とがなす角度が0度)の画像と、図3のカメラの向き90度(被写体及びカメラを含む直線と光軸とがなす角度が90度)の画像との間では、視差推定が困難であることが類推できる。このような2つの画像中の被写体像の形、大きさ及び向きの違いは、カメラ間の基線長が長いほど、及び、被写体と撮像装置との距離が近いほど顕著になる。そのため、特に被写体と撮像装置との距離を一定以上に保てない場合、基線長を短くとることでこの影響を低減することができる。
そこで本実施の形態では、被写体が撮像装置1の近くにある場合であっても、複数の魚眼カメラ間の視差が大きくなり過ぎないようにするために、図2A及び図2Bに示されるように、複数の魚眼レンズを有するカメラ101の光軸が互いに平行で、且つ、複数の魚眼レンズを近接して配置した撮像部100を用いる。これにより、推定した視差の誤差を低減できるという効果が期待できる。さらに、実数精度の視差推定手法を用いることで、視差推定における量子化誤差の問題が低減するという効果も期待できる。
しかしながら、視野角が180度ある魚眼レンズを有するカメラを複数個、例えば、第1カメラと第2カメラとを、近接して配置すると、第1カメラのレンズ又は本体が、第2カメラで撮像した画像に映り込む。つまり、第1カメラがなければ第2カメラが撮像できる第1カメラの背部の被写体は、第2カメラに対して第1カメラのレンズ又は本体で遮蔽されるので、第2カメラで撮像した画像に含まれないという別の問題が発生する。例えば、図4に示されるような3つ以上の魚眼カメラC1~C3を用いる従来の撮像装置では、2つのカメラ間、例えば、魚眼カメラC1と魚眼カメラC2との基線長が長いため、魚眼カメラC2のレンズ又は本体が魚眼カメラC1の視野に映り込む場合であっても、魚眼カメラC2のレンズ又は本体が魚眼カメラC1の視野に映り込む領域が魚眼カメラC1の視野に占める割合は小さい。これに対し、図2A及び図2Bのように複数のカメラ101を近接させると、複数のカメラ101に含まれるあるカメラ、例えばカメラ101aの視野において、複数のカメラ101に含まれる他のカメラ、例えばカメラ101bのレンズによって遮蔽される領域が広くなる。さらに、被写体上の点の3次元位置の算出には、2つのカメラがそれぞれ撮像した画像を用いるため、被写体上の点がカメラ101aの視野において遮蔽される領域とカメラ101bの視野において遮蔽される領域との少なくとも一方に含まれると、カメラ101aが撮像した画像とカメラ101bが撮像した画像とを用いて、その被写体上の点の3次元位置を算出できない。つまり、カメラ101aで撮像した画像において3次元位置を算出できない領域は、被写体に含まれる領域であってカメラ101aの視野において遮蔽される領域と、被写体に含まれる領域であってカメラ101bの視野において遮蔽される領域とをあわせた領域になる。
上記問題に対し、本発明者らは、魚眼レンズを有するカメラを含む撮像装置であって、魚眼レンズを有するカメラが被写体を撮像した画像に含まれる撮像装置の部分が撮像された領域である遮蔽領域を、撮像装置の部分がなければ魚眼レンズを有するカメラが本来撮像した「被写体の部分」の画像を生成し、生成した画像で遮蔽領域を補い、生成した画像に対応する「被写体の部分」の3次元位置を、算出する技術を完成させるに至った。これにより、遮蔽のない画像と当該画像に対応する3次元位置とを取得することができる。なお、画像中の遮蔽領域の情報は、複数のレンズの物理的な配置関係、及び各レンズの仕様に基づいて、事前に取得しておくことができる。
なお、本明細書では、魚眼レンズの視野角は、概ね180度、又はそれ以上であるとしており、これらを「概ね180度以上」と記述している。概ね180度は、180度以下の角度、例えば160度から180度の角度を含む。また、180度以上とは、例えば180度以上230度以下の角度を含む。
図1を参照すると、撮像装置1は、撮像部100で各カメラ101の視野に含まれる画像を撮影し、画像処理部110で撮影した画像における遮蔽領域を補った画像と、当該画像内の被写体の3次元位置とを生成する。障害物検出部120は、撮像部100の視野内の画像と当該画像内の被写体の3次元位置とに基づいて合成画像を生成し、ディスプレイ130に表示する。
撮像部100は、4つのカメラ101a~101dを含み、4つのカメラ101a~101dの各々は視野角が概ね180度の魚眼レンズを有する。4つのカメラ101a~101dは、図2Aのように配置される。4つのカメラ101a~101dの各々は、視野内の画像を撮影して画像を出力する(以降、この画像をカメラ画像とも呼ぶ)。すなわち、4つのカメラ101a~101dは4つのカメラ画像(つまり、画像データ)を出力する。隣り合う2つのカメラ101の光軸間の距離は、2つのカメラ101のレンズ直径の和より小さいようにしてもよい。一般的に、2つのカメラの光軸間の距離が小さくなるに従い、一方のカメラのカメラ画像に他方のカメラのレンズがより広く映るので、一方のカメラのカメラ画像に他方のカメラの背部にある物体がより広く遮蔽される。一般的に、2つのカメラのレンズの直径が大きくなるに従い、一方のカメラのカメラ画像に他方のカメラのレンズがより広く映るので、一方のカメラのカメラ画像に他方のカメラの背部にある物体がより広く遮蔽される。
本開示の技術では、2つのカメラの光軸間の距離が、2つのカメラ101のレンズの直径の和よりも小さくても、一方のカメラのカメラ画像に他方のカメラの背部にある物体が遮蔽されていない画像と当該物体の3次元位置とを取得することができる。
隣り合う2つのカメラ101の光軸間の距離は、2つのカメラ101のレンズ直径の平均と概ね同じであるとしてもよい。一般的に、2つのカメラの光軸間の距離が小さくなるほど、一方のカメラのカメラ画像に他方のカメラがより広く映り、一方のカメラのカメラ画像において他方のカメラの背部にある物体が遮蔽される領域が増える。2つのカメラを最も近づけた場合、すなわち、2つのカメラのレンズが接した場合、2つのカメラの光軸間の距離は2つのカメラのレンズ直径の平均と概ね同じになる。この時、一方のカメラのカメラ画像において、他のカメラの背部にある物体が遮蔽される領域と、他方のカメラのカメラ画像において、一方のカメラの背部にある物体が遮蔽される領域との和が最大になる。すなわち、一方のカメラのカメラ画像及び他方のカメラのカメラ画像のそれぞれにおいて、3次元位置を取得できない領域が最大になる。
一方、本開示の技術では、2つのカメラの光軸間の距離は2つのカメラのレンズ直径の平均と概ね同じであっても、一方のカメラのカメラ画像において、他のカメラの背部にある物体が遮蔽される領域がない画像と当該物体の3次元位置とを取得することができる。言い換えると、2つのカメラの光軸間の距離が2つのカメラのレンズ直径の平均と概ね同じとき、本開示の技術の効果が最も高くなる。
図1に示すように、画像処理部110は、位置算出部111、位置選択統合部112、画像補完部113及びカメラパラメタ記憶部114を含む。カメラパラメタ記憶部114は、4つのカメラ101の各々についてカメラパラメタを予め記憶する。カメラパラメタは外部パラメタ、内部パラメタ、及び遮蔽情報を含む。外部パラメタは、カメラの位置及び向きなどの、カメラの物理的な配置に関する情報を含む。内部パラメタは、レンズの歪及び焦点距離などの、カメラの特性に関する情報を含む。遮蔽情報は、カメラ画像において、被写体の部分が撮像された領域ではなく撮像装置1の部分が撮像された領域を示す情報を含む。すなわち、遮蔽情報は、カメラの視野の一部が撮像装置1の部分によって遮蔽された結果、当該カメラのカメラ画像において、被写体の部分の画像がない領域を示す情報を含む。例えば、遮蔽情報は、各カメラ101で撮影した場合の各カメラ101のカメラ画像に含まれる遮蔽領域を示す情報を含む。遮蔽情報は、各カメラ101のカメラ画像において、撮像装置1に含まれる部分を撮像した画素値を有する画素を特定する情報であってもよい。
位置算出部111は、4つのカメラ101から出力された4つのカメラ画像(つまり、画像データ)を取得して、4つのカメラ画像のうちから2つのカメラ画像を1ペアとして6ペアの組み合わせを抽出する。また、位置算出部111は、カメラパラメタ記憶部114から4つのカメラ101それぞれのカメラパラメタを読み出す。位置算出部111は、推定した6ペアのカメラ画像間の視差と、カメラパラメタに含まれる外部パラメタ及び内部パラメタとに基づいて、カメラ画像内の被写体の3次元位置を算出し、位置情報として出力する。なお、被写体は、カメラ画像全体の領域であってもよい。
位置算出部111は、カメラパラメタに基づいて位置情報を生成する。位置情報の各々は,3次元空間内の1つの点PPnの位置を特定する情報と、4つのカメラ101に含まれる第1カメラが点PPnを含む被写体を撮像して得たカメラ画像IIIに含まれる画素PLIPnの位置を特定する情報と、4つのカメラ101に含まれる第2カメラが点PPnを含む被写体を撮像して得たカメラ画像IIJに含まれる画素PLJPnの位置を特定する情報とを含む。画素PLIPnは第1カメラが点PPnを撮像した画像が観察されると推定される画素であり、画素PLJPnは第2カメラが点PPnを撮像した画像が観察されると推定される画素である。この推定の方法については後述する。つまり、複数の位置情報の各々は、3次元空間内の1つの点PPnに関する3次元位置情報と、点PPnに対応する2つの画素PLIPn及びPLJPnに関する画素ペア情報とを含む。
画素ペア情報で特定される2つの画素に含まれる画素PLIPnは、カメラペア(つまり、カメラのペア)に含まれる第1カメラが撮像したカメラ画像IIIにおいて、点PPnに対応する点に位置する。画素ペア情報で特定される2つの画素に含まれる画素PLJPnは、カメラペアに含まれる第2カメラが撮像したカメラ画像IIJにおいて、点PPnに対応する点に位置する。点PPnに関する3次元位置情報は、2つの画素PLIPn及びPLJPnの位置を特定する情報である位置情報に基づいて決定され、2つの画素PLIPn及びPLJPnはそれぞれ、異なる第1カメラ及び第2カメラのカメラ画像III及びカメラ画像IIJに含まれる。
位置選択統合部112は、位置算出部111が出力した位置情報を取得し、且つ、カメラパラメタ記憶部114から各カメラ101のカメラパラメタを読み出す。位置選択統合部112は、カメラパラメタに含まれる遮蔽情報に基づいて、位置情報から、画素ペア情報で特定される2つの画素の双方が遮蔽領域に含まれない位置情報の少なくとも一部を選択し、選択された位置情報を、各カメラペアのカメラ画像の間で統合し、統合結果を選択位置統合情報として出力する。選択位置統合情報は、複数の位置情報から、所定の位置情報を除外して生成され、所定の位置情報の各々は所定の画素ペア情報を含み、所定の画素ペア情報で特定される2つの画素の少なくも一方は遮蔽領域に含まれるとしてもよい。選択位置統合情報には、画素ペア情報が含まれ、画素ペア情報で特定される2つの画素のそれぞれは、2つの画素のそれぞれが含まれるカメラ画像において遮蔽領域に含まれず、当該2つのカメラ画像の間で互いに対応する点に位置する。つまり、画素ペア情報で特定される2つの画素を用いて、被写体上の点を特定できる。
画像補完部113は、カメラ画像と、位置選択統合部112から出力された選択位置統合情報とを取得する。画像補完部113は、少なくとも1つのカメラ画像の遮蔽領域について、他のカメラ画像の非遮蔽領域と選択位置統合情報とに基づいて、遮蔽領域の画像を当該他のカメラ画像に基づいて補完画像を生成する。そして、画像補完部113は、生成した補完画像と上記選択位置統合情報とを出力する。
画像補完部113は、選択位置統合情報に含まれる画素ペア情報によって特定される2つの画素のうちの少なくとも一方の選択画素の画素値を使用して、当該2つの画素が含まれないカメラ画像において、遮蔽領域に含まれ且つ選択画素に対応する対象画素の画素値を決定する。対象画素と選択画素とは互いに対応する対応点に位置する。なお、対象画素と選択画素とが対応点に位置するか否かは、カメラパラメタと選択画素に対応する3次元位置情報とに基づいて決定されてもよい。
障害物検出部120は、補完画像と選択位置統合情報とを取得し、選択位置統合情報に基づいて障害物等の3次元物体を検出する。さらに、障害物検出部120は、検出した3次元物体の位置に対応する補完画像上の領域に、注視領域を示す枠を重畳合成した合成画像を出力する。
ディスプレイ130は、合成画像を取得して、表示する。ディスプレイ130は、液晶パネル、有機又は無機EL(Electro Luminescence)等の表示パネルによって構成されてよい。
図1の画像処理部110及び障害物検出部120を構成する各構成要素は、電子回路又は集積回路等のハードウェアで実現されてもよいし、コンピュータ上で実行されるプログラム等のソフトウェアで実現されてもよい。プログラムは、アプリケーションとして、インターネット等の通信網を介した通信、モバイル通信規格による通信等で提供されるものであってもよい。
なお、図5に示すように、画像処理部110は、位置算出部111、位置選択統合部112、画像補完部113及びカメラパラメタ記憶部114に加えて、カメラパラメタ取得部115を含んでもよい。カメラパラメタ取得部115は、カメラパラメタ記憶部114からカメラ101のカメラパラメタを取得し、位置算出部111、位置選択統合部112及び画像補完部113に出力する。
なお、画像処理部110は、カメラパラメタ記憶部114を含まず、例えば、クラウドサーバ等の外部の装置が、カメラパラメタ記憶部114を含んでもよい。この場合、カメラパラメタ記憶部114が、無線及び有線の通信手段で、カメラパラメタ取得部115と接続されてもよい。そして、カメラパラメタ取得部115が、カメラパラメタ記憶部114に記憶された情報、例えばカメラパラメタを取得してもよい。カメラパラメタ取得部115は、カメラパラメタ記憶部114から、複数のカメラ101の位置情報、複数のカメラ101の焦点距離、複数のカメラ101のカメラ画像におけるどの画素が遮蔽領域に含まれるかを示す情報を含む遮蔽情報を含むカメラパラメタを取得してもよい。
図5の例では、位置算出部111、位置選択統合部112及び画像補完部113は、カメラパラメタ取得部115を介して、カメラパラメタ記憶部114と情報をやりとりし、例えば、カメラパラメタ記憶部114に格納された情報を読み出す等をしてもよい。位置算出部111は、カメラパラメタ取得部115を介して、カメラパラメタ記憶部114から4つのカメラ101のカメラパラメタを読み出してもよい。位置選択統合部112は、位置算出部111が出力した位置情報を得て、カメラパラメタ取得部115を介して、カメラパラメタ記憶部114からカメラパラメタを読み出してもよい。
図6を参照すると、実施の形態に係る撮像装置1のハードウェア構成の一例が示されている。撮像装置1は、撮像部100と、画像処理部110及び障害物検出部120に対応するコンピュータ300と、ディスプレイ130とを備える。撮像装置1において、撮像部100は、その視野内の画像を撮影してカメラ画像として出力し、コンピュータ300は、出力されたカメラ画像を取得して、補完画像と選択位置統合情報とを算出し、さらに、合成画像を生成して出力する。ディスプレイ130は、コンピュータ300で生成された合成画像を表示する。3つ以上のカメラ101a、101b、101c・・・は撮像部100に対応する。
コンピュータ300は、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303、HDD(Hard Disk Drive)304、ビデオ入力インタフェース(I/F)305及びビデオカード306を含む。コンピュータ300を動作させるプログラムは、ROM302又はHDD304に予め保持されている。プログラムは、プロセッサであるCPU301によって、ROM302又はHDD304からRAM303に読み出されて展開される。CPU301は、RAM303に展開されたプログラム中のコード化された各命令を実行する。ビデオ入力I/F305は、プログラムの実行に応じて、撮像部100で撮影されたカメラ画像を、RAM303へ取り込む。ビデオカード306は、プログラムの実行に応じて生成された画像を処理してディスプレイ130に出力し、ディスプレイ130がその画像を表示する。上述したように、コンピュータ300は画像処理部110及び障害物検出部120に対応する。カメラパラメタ記憶部114は、ROM302、RAM303又はHDD304に対応する。
なお、コンピュータプログラムは、半導体であるROM302又はHDD304に限らず、例えばCD-ROM等の記録媒体に格納されていてもよい。また、コンピュータプログラムは、有線ネットワーク、無線ネットワーク又は放送等を介して伝送され、コンピュータ300のRAM303に取り込まれてもよい。
以下、実施の形態に係る撮像装置1の動作を、図7を用いて説明する。なお、図7は、実施の形態に係る撮像装置1の画像処理部110及び障害物検出部120の動作の一例を表すフローチャートである。図7において、ステップS401~S405の5つの処理は、図6のコンピュータ300で実行される。
なお、図7の各ステップの処理は、図5の画像処理部110及び障害物検出部120に含まれる各構成要素で実行してもよい。すなわち、カメラパラメタ記憶部114及びカメラパラメタ取得部115によるカメラパラメタ読み出しのステップS401の処理と、位置算出部111による位置算出のステップS402の処理と、位置選択統合部112による位置選択統合のステップS403の処理と、画像補完部113による画像補完のステップS404の処理と、障害物検出部120による合成画像生成のステップS405の処理とが、実行されてもよい。
これに限定するものではないが、本実施の形態では、撮像装置1が自動車に設置される例を説明する。具体的には、撮像装置1は、自動車の後方のカメラ画像と当該カメラ画像に対応する3次元位置とを取得して障害物を検出し、その結果を自動車内に設置したディスプレイに表示し、それにより、利用者であるドライバに車体後方の状況を提示する。
図8Aを参照すると、実施の形態に係る撮像装置1の自動車への設置の例を示す平面図が示されている。撮像部100は、カメラ101の光軸が概ね自動車が後方に直進する方向に一致するように、車体後部に車体後方に向けて設置される。画像処理部110、障害物検出部120及びディスプレイ130はそれぞれ、ドライバから見える車室内設置される。また、図8Bを参照すると、自動車に搭載された撮像装置1による撮影が行われている状況の例が、平面図で示されている。これに限定されるものではないが、撮像部100の4つのカメラ101a~101dは、互いに同期して一定時間間隔で、画像を撮像して出力する。
図9Aを参照すると、撮像部100の4つのカメラ101a~101dの配置の例が、正面図の(a)及び背面図の(b)により示されている。また、図9Bを参照すると、図8Aの撮像部100の設置状況、及び、図8Bの撮影状況において、図9Aの4つのカメラ101a~101dで撮影されるカメラ画像の例が示されている。各カメラ画像の左右両端に接する円弧の内側が、視野角180度の視野内の被写体を表している。本実施の形態において、カメラ101a~101dはそれぞれ、魚眼レンズを有し、それぞれの投影モデルは等距離射影モデルであるとする。また、カメラ101a~101d、及び、ビデオ入力I/F305は、横1280画素、縦960画素のカラー画像を、それぞれ撮影し、取得できるものとする。なお、上述は、カメラの投影モデル及びカメラ画像の画素数を限定するものではなく、他の投影モデル及び画素数でもよい。前述したように、本開示では、カメラ画像間での被写体像の形、大きさ及び向きの違いによる視差推定の誤差を低減するために、複数のカメラ101が近接して配置される。本実施の形態では、図9Aに示すカメラ101a~101dの最短の基線長を0.015mとした。このように構成した撮像部100で撮影された4つのカメラ画像の例が、図9Bに示される。図中の4つのカメラ画像中の被写体は、それぞれの形、大きさ及び向きは、概ね同じであることがわかる。その一方で、カメラ101a~101dを近接して配置したため、全てのカメラ画像において、視野の端に、隣接するカメラのレンズが映り込み、その背部の被写体が遮蔽されていることがわかる。なお、これらの遮蔽された領域は、図9B中の「隣接するカメラのレンズによる遮蔽」の部分で示された領域である。
コンピュータ300は、撮像部100の動作と並行して、予め定められたプログラムを実行することで、図7のステップS401~S405の処理を行う。以降、コンピュータ300で実行されるステップS401~S405の詳細な処理を、図1及び図9A~図21を用いて説明する。
ステップS401では、位置算出部111は、カメラパラメタ記憶部114から、カメラパラメタ記憶部114に予め記憶された各カメラ101a~101dの内部パラメタ、外部パラメタ及び遮蔽情報を含むカメラパラメタを読み出す。ステップS401の処理は、図5に示すカメラパラメタ取得部115が実行してもよい。カメラの外部パラメタ{Mq,r}と3次元座標との関係、及び、カメラの内部パラメタ(f,k)と3次元座標と画素座標との関係をそれぞれ、下記の式1及び式2に示す。なお、式1において、r=1,・・・,4である。
上記の式1における外部パラメタ{Mq,r}は、2つのカメラq及びrの各カメラ座標系の位置関係を表す行列の集まりである。行列Mq,rは、カメラqのカメラ座標系の3次元位置(xq,yq,zq)をカメラrのカメラ座標系の3次元位置(xr,yr,zr)に変換する4×4の行列を表している。内部パラメタのfは焦点距離、kは撮像素子上での画素サイズである。上記の式2は、カメラ座標系の3次元位置(x,y,z)とカメラ画像の画素座標(u,v)との関係を表している。これら外部パラメタ{Mq,r}及び内部パラメタ(f,k)は、一般的にカメラ校正方法と呼ばれる広く知られた手法によってあらかじめ求めておく。なお、上記の式2では、レンズの投影モデルが等距離射影の場合の内部パラメタを用いたが、適用される投影モデルはこれに限定されるものではなく、立体射影及び等立体角射影等の他の投影モデルであってもよい。
ここで、4つのカメラ101a~101dの遮蔽情報の例を、図10に示す。遮蔽情報とは、カメラ画像において、レンズ又はカメラ本体が映り込み、レンズ又はカメラ本体がその背部の被写体を遮蔽している領域を示す情報である。本実施の形態では、遮蔽情報は、カメラ画像の各画素が、「被写体領域」、「遮蔽領域」及び「視野外領域」の3つのいずれであるかを表す。例えば、カメラ画像Iの画素座標(u,v)の遮蔽情報をO(u,v)のように表す。図10は、各画素の3つの状態に関して、被写体領域は白色(つまり、無着色無模様)、遮蔽領域は斜線、視野外領域は黒色で、それぞれ表した図である。この遮蔽情報は、事前にカメラ101で画像を撮影して、各画素がどの領域に属するかを、人手で判定することで作成することができる。本実施の形態では、撮像装置1は、図9Bの遮蔽領域を含むカメラ画像から、遮蔽領域のない画像と当該画像に対応する3次元位置とを算出する。
次に、ステップS402では、位置算出部111は、撮像部100のカメラ101a~101dで撮影された複数のカメラ画像(つまり、画像データ)を取得する。そして、位置算出部111は、取得した複数のカメラ画像のうちから、複数の「カメラ画像のペア」を抽出する。複数の「カメラ画像のペア」の各々は2つのカメラ画像を含む。例えば、カメラ101a~101dによる4つのカメラ画像からは、6つの「カメラ画像のペア」が抽出される。さらに、位置算出部111は、各「カメラ画像のペア」に含まれるカメラ画像において、ステップS401で読み出したカメラパラメタを用いて、ステレオ視によりカメラ画像中の複数点の3次元位置を算出する。ステレオ視では、互いに異なる視点に位置し且つ視野が重複するように配置された2つのカメラで撮影された2つのカメラ画像、のそれぞれに含まれる点であってかつ互いに対応する点の組、すなわち、対応点の組を求め、求めた対応点の組と予め求めておいたカメラの位置及び向き等のカメラパラメタとを用いて、対応点の組に対する被写体上の点の3次元座標が計算される。
以下、ステップS402の処理の詳細を説明する。カメラ101a、101b、101c及び101dで撮影した4つのカメラ画像をそれぞれ、カメラ画像Ia、Ib、Ic及びIdとする。これらから、2つのカメラ画像からなる6つの画像のペア(Ia,Ib)、(Ia,Ic)、(Ia,Id)、(Ib,Ic)、(Ib,Id)及び(Ic,Id)が抽出される。以下において、画像のペアのことを、画像ペアとも呼ぶ。そして、各画像ペアに対して、ペア内の2つのカメラ画像のそれぞれに含まれる点であってかつ互いに対応する点の組、すなわち、対応点の組が、複数検出される。例えば、カメラ101aが被写体上の点をカメラ画像Iaに含まれる点PIaとして撮像し、カメラ101bが当該点をカメラ画像Ibに含まれる点PIbとして撮像した場合、点PIaと点PIbとは対応点の組である。点PIaと点PIbとは互いに対応する点、又は、互いに対応する対応点、又は、点PIaは点PIbに対応すると表現してもよい。対応点の組を画素の組で表現してもよい。例えば、点PIa及びPIbの対応点の組を、点PIaにおける画素と点PIbにおける画素との組で表現してもよい。対応点の組を画素座標の組で表現してもよい。例えば、点PIa及びPIbの対応点の組を、点PIaにおける画像座標と点PIbにおける画像座標との組で表現してもよい。例えば、画像ペア(Ia,Ib)の場合、カメラ画像Ia上の各々の画素について、カメラ画像Ib上の対応する画素が検出される。つまり、カメラ画像Ia上の画素座標(uan,van)に対応するカメラ画像Ib上画素座標(ubn,vbn)が検出される。ここで、n=1,・・・,Na、Naはカメラ画像Ia上の画素数である。カメラ画像Iaの画素座標(uan,van)と、カメラ画像Ibの画素座標(ubn,vbn)とが互いに対応する場合、画素座標(uan,van)における画素の画素値ia(uan,van)と画素座標(ubn,vbn)における画素値ib(ubn,vbn)とが等しい。これを輝度拘束と呼ぶ。
また、ある1つの被写体は、カメラ画像中の複数の隣接する画素を占めることから、カメラ画像Iaの画素座標(uan,van)に隣接する画素で特定される点に対応するカメラ画像Ibに含まれる点は、カメラ画像Ibの画素座標(ubn,vbn)の近くにある可能性が高い。これを滑らかさ拘束と呼ぶ。カメラ画像Ia及びIbのそれぞれに含まれる点であってかつ互いに対応する点の組、すなわち、対応点の組は、上述した輝度拘束と滑らかさ拘束との2つの条件を最もよく満たす画素座標(uan,van)及び(ubn,vbn)の組の集まりを推定することで、得ることができる。なお、カメラ画像Ia上の画素座標と、このカメラ画像Ia上の画素座標に対応するカメラ画像Ib上の画素座標との組み合わせ情報を画素ペア情報と呼んでもよい。
2つのカメラ画像間の対応する画素座標を実数精度で算出する対応点探索手法及び動き推定手法は、前述で挙げた非特許文献1及び非特許文献2などに詳しく記載されている。これらの手法は、既知な従来技術であるため、詳細な説明を省略する。例えば、非特許文献1には、オプティカルフロー拘束のL1ノルムとトータルバリエーションとの重み付け和からなる画像全体についてのエネルギー評価関数を定義し、これを最小化するフロー(視差もしくは動きベクトル)を画像中の全画素について求める方法が記載されている。非特許文献2には、非特許文献1におけるトータルバリエーションを、対応点の組に含まれる対応点間の色の差と対応点の組に含まれる対応点間の画素座標値との差で重み付けする方法が記載されている。
次に、各対応点の組について、カメラ画像Ia及びIbそれぞれの対応点の画素座標(uan,van)及び(ubn,vbn)と、予め求めたおいたカメラ101a及び101bの外部パラメタMb,a及び内部パラメタfa,ka,fb,kbとを用いて、下記の式3に示す連立方程式を解くことで、対応点の組に対する被写体上の点の3次元位置(xan,yan,zan)が算出される。本実施の形態では、3次元位置は、カメラ101aの視点座標系(カメラ座標系とも呼ぶ)の座標値とするが、カメラ101bの視点座標系が適用されてもよい。なお、fa及びkaはそれぞれ、カメラ101aの焦点距離及び単位画素サイズであり、fb及びkbはそれぞれ、カメラ101bの焦点距離及び単位画素サイズである。また、他の5つの画像ペアに対しても同様に、3次元位置の算出が行われる。
なお、2つのカメラ画像の対応点の組と2つのカメラ位置とから対応点の組に対する被写体上の点の3次元位置を算出する2眼ステレオ手法、及び、2つの3次元座標系間での座標値の変換は、前述で挙げた非特許文献3などに詳しく記載されている。これらの手法は、既知な従来技術であるため、詳細な説明を省略する。例えば、非特許文献3には、123-137頁の第8章ステレオ視において、ステレオ視による対応付けの詳細が記載され、39頁には2つの3次元座標系間での座標値の変換に関して記載されている。
以上のステップS402の詳細な処理により、位置算出部111は、6つの画像ペアのそれぞれについて、「対応点の組で特定される複数の対応点の位置、及び対応点の組に対する被写体上の点の3次元位置」を複数算出し、これらを位置情報として出力する。例えば、2つのカメラ画像Iq及びIrについて、2つのカメラ画像Iq及びIr間のNq個の「対応点の組で特定される複数の対応点、及び対応点の組に対する被写体上の点」の位置情報を{Pq,r,n}(n=1,・・・,Nq)とする。そして、Nq個の位置情報Pq,r,nの集まりであるPq,rが下記の式4のように表される。また、m個の画像ペアである画像ペア1~画像ペアmが存在する場合、{(画像ペア1に関する全ての『「対応点の組で特定される複数の対応点、及び対応点の組に対する被写体上の点」の位置情報』),・・・,(画像ペアmに関する全ての『「対応点の組で特定される複数の対応点、及び対応点の組に対する被写体上の点」の位置情報』}である位置情報をPtotalと表す。本実施の形態では、4つのカメラのそれぞれで撮像したカメラ画像Ia、Ib、Ic、Idを前提としているので、Ptotal={Pa,b、Pa,c、Pa,d、Pb,c、Pb,d、Pc,d}である。
位置情報は、対応点の組で特定される2つの対応点のそれぞれの画素を特定する画素ペア情報と、画素ペア情報で特定された画素のペアに対応する被写体上の点の3次元位置とを含む情報としてもよい。画素ペア情報は、2つのカメラ画像間で対応する2つの画素の画素座標を含んでもよい。このように、ステップS402では、位置算出部111は、カメラ101で撮影された複数の画像のうちの2つの画像とカメラパラメタとから、ステレオ視によって被写体上の点の3次元位置を算出し、位置情報として出力する。
次に、ステップS403では、位置選択統合部112は、ステップS401で読み出した遮蔽情報と、ステップS402で算出した位置情報Ptotalとを取得し、位置情報Ptotal={Pa,b、Pa,c、Pa,d、Pb,c、Pb,d、Pc,d}から、選択位置統合情報P’total={P’a,b、P’a,c、P’a,d、P’b,c、P’b,d、P’c,d}を生成する。具体的には、位置選択統合部112は、位置情報Ptotalに含まれる全ての対応点の組に対して、以下の選択統合処理を繰り返す。
位置選択統合部112は、2つのカメラ画像、例えばカメラ画像Ia及びIbのペアについて、位置情報Ptotalに含まれる位置情報Pa,b,nから、カメラ画像Iaでの対応点の座標値(uan,van)と、カメラ画像Ibでの対応点の座標値(ubn,vbn)とを読み出す。そして、位置選択統合部112は、カメラ画像Iaの遮蔽情報Oaと、カメラ画像Ibの遮蔽情報Obとから、カメラ画像Iaにおける座標値(uan,van)を有する対応点の遮蔽情報である遮蔽情報Oa(uan,van)及びカメラ画像Ibにおける座標値(ubn,vbn)を有する対応点の遮蔽情報である遮蔽情報Ob(ubn,vbn)を読み出す。遮蔽情報Oa(uan,van)が「被写体領域」であることを示し、かつ、遮蔽情報Ob(ubn,vbn)が「被写体領域」であることを示す場合、位置選択統合部112は、当該位置情報Pa,b,nを選択する。一方、遮蔽情報Oa(uan,van)と遮蔽情報Ob(ubn,vbn)との少なくも一方が「遮蔽領域」又は「視野外領域」であることを示す場合、位置選択統合部112は、当該位置情報Pa,b,nを選択しない。
位置選択統合部112は、この選択操作を、2つのカメラ画像Ia及びIbのペアの全ての位置情報Pa,b,n(n=1,・・・,Na)に対して行い、選択した位置情報の集合を選択位置統合情報P’a,bとする。
さらに、位置選択統合部112は、この選択操作を、2つのカメラ画像Ia及びIbのペア以外の全てのカメラ画像のペアの位置情報に含まれる全対応点の組に対しても行う。つまりPa,cからP’a,cを生成し、Pa,dからP’a,dを生成し、Pb,cからP’b,cを生成し、Pb,dからP’b,dを生成し、Pc,dからP’c,dを生成する。これにより、位置選択統合部112は、選択位置統合情報P’total={P’a,b、P’a,c、P’a,d、P’b,c、P’b,d、P’c,d}を生成する。
選択位置統合情報は、複数の位置情報から、所定の位置情報を除外して生成されてもよい。この場合、除外される所定の位置情報の各々は、所定の画素ペア情報を含み、当該所定の画素ペア情報で特定される画素の少なくも一方が遮断領域に含まれるとしてもよい。
図11参照すると、画像ペア(Ia,Ib)、(Ia,Ic)、(Ia,Id)、(Ib,Ic)、(Ib,Id)及び(Ic,Id)にそれぞれ対応する位置情報Pa,b、Pa,c、Pa,d、Pb,c、Pb,d及びPc,dと遮蔽情報との関係の概念図が示されている。例えば、「カメラ101a-101b」の図では、カメラ101a及び101bの2つのカメラ画像Ia及びIbから算出した位置情報Pa,bを基に、カメラ101aのカメラ画像Iaの各々画素が含まれる領域が図化されている。具体的には、「視野外領域」である領域は黒色で表され、「遮蔽領域」である領域は斜線で表され、「被写体領域」である領域は白色(つまり、無着色無模様)で表される。図10のカメラ101aのカメラ画像Iaの右上領域、及び、カメラ101bのカメラ画像Ibの左上領域がそれぞれ、遮蔽領域であるのに対し、位置情報に基づくと、カメラ101aでの遮蔽領域とカメラ101bでの遮蔽領域との両方において3次元位置を計測できない。そのため、図11の「カメラ101a-101b」では、右上及び左上の領域に遮蔽領域が生じる。これに対し、他のカメラのペア、つまり画像ペアでは、遮蔽領域の場所が異なる。例えば、「カメラ101a-101c」では、左上の領域が遮蔽領域ではなく、「カメラ101b-101d」では、右上の領域が遮蔽領域ではない。したがって、複数の画像ペアから算出した位置情報から、遮蔽されていない被写体領域、すなわち図10中の白色の領域を、選択して集めることで、遮蔽領域のない位置情報を得ることができる。この考え方で、遮蔽されていない領域(白色領域)を集めたものが、ステップS403で選択された選択位置統合情報P’totalに対応する。例えば、当該4つのカメラのそれぞれで撮像したカメラ画像Ia、Ib、Ic及びIdに関するP’totalはP’total={P’a,b、P’a,c、P’a,d、P’b,c、P’b,d、P’c,d}である。例えば、P’a,bは図11の「カメラ101a-101b」における遮蔽されていない領域(白色領域)の位置情報、つまり、選択された対応点の組で特定される2つの対応点のそれぞれの画素を特定する画素ペア情報と、画素ペア情報で特定された画素のペアに対応する被写体上の点の3次元位置とを含む情報である。
各カメラの上記の遮蔽されていない領域(白色領域)について考えると、レンズによる遮蔽の影響を受けない領域では、複数の選択位置統合情報が得られる。例えば、カメラ101aに着目しこれを基準カメラとすると、カメラ101a-101b、101a-101c及び101a-101dの3つのカメラペアのそれぞれに対するカメラ画像のペアに基づいた位置情報が得られる。これら3つの位置情報の統合について、以下に説明する。
ここで、図12を参照すると、4つのカメラ101a~101dで被写体の位置情報を得る場合を説明する図が示されている。図12において、4つのカメラについては図9Aと同一の符号を付しており、計測点151が設定されている。カメラ101aを基準カメラとする場合、カメラ101a-101b、101a-101c及び101a-101dのペアでそれぞれ、計測点151の位置情報である3次元位置の情報が取得される。カメラのペアから位置情報を取得する場合、カメラの間の距離である基線長が位置情報の誤差に影響することが知られている。視野角が魚眼レンズと比べて狭い一般的なカメラのペアによって位置情報を取得する場合、撮影される画像内で基線長は実用上ほぼ一定とみなすことができる。しかしながら、魚眼レンズを用いたカメラのペアによって位置情報を取得する場合、撮影される画像内で、基線長のみかけの長さの変化が大きい。この基線長のみかけの長さは、2つのカメラのレンズから被写体に至る2つの視線が形成する見込み角の大きさに対応し且つ相関する。このため、本明細書では、基線長のみかけの長さのことを、見込み角対応長と呼ぶ。見込み角対応長に関する説明は、後述する。そして、一方のカメラから見た他方のカメラの方向(つまり、基線方向)とカメラ画像内での他方のカメラの位置とに応じて、見込み角対応長が変化し、変化する見込み角対応長に応じて取得する位置情報の誤差が変化する。この点について特許文献1及び特許文献2では、複数の位置情報を統合するためにそれぞれ異なる重み付け加算を行っている。これらの重み付け加算により、それぞれ定性的に位置情報の誤差を低減することができるが、ここでは重み付け加算した統合結果の位置情報の誤差を、取得時の誤差要因を考慮して最小化する方法について説明する。
以下では、位置情報の誤差としてカメラの光学中心から画素の方向の奥行き(depth)についての誤差について述べる。位置情報を取得する際、これに用いる各カメラは予めキャリブレーションされており、カメラによって撮影されるカメラ画像の画素座標(u,v)と被写体位置からカメラの光学中心への光線の入射角との関係、すなわち、画素座標(u,v)を通る光線の3次元空間についての式は既知である。そのため、奥行き(depth)と位置情報(X,Y,Z)とはカメラパラメタを用いて相互に変換が可能である。
カメラによって撮影されたカメラ画像には、暗電流、ショットノイズ等のノイズが含まれる。これらのノイズはガウス分布でモデル化される。
ステレオ測距時には、対応点の画素値が等しいことを前提として計算するが、ノイズを含む画像間で対応付け、すなわち視差推定を行うと、視差推定値に誤差が生じる。視差の誤差は、下記の式5に示す様にノイズの大きさとエピポーラ線に沿う方向の輝度勾配との比に比例する。
上記の式5において、Δuは視差の誤差であり、εは画素値のノイズであり、∂I/∂nはエピポーラ線方向の画素値の勾配つまり輝度勾配である。ここで、魚眼レンズの射影モデルとして等距離射影を仮定すると、視差推定結果の角度誤差ΔΦも、下記の式6に示すようにノイズの大きさとエピポーラ線に沿う方向の輝度勾配との比に比例する。また、式5及び式6において、ノイズεは、下記の式7のように示される。すなわち、ノイズεは、平均0、分散σ2の正規分布に従う。
次に、2つのカメラ(カメラ1及びカメラ2)による三角測量における見込み角対応長と角度誤差との関係について、図13を用いて説明する。図13において、投影中心161は、2つのカメラの片方のカメラ1の投影中心であり、投影中心162は他方のカメラ2の投影中心である。計測点163は、カメラ1及び2を用いて三角測量を行う対象点である。視線164は、カメラ1から計測点163を見た視線であり、視線165は、カメラ2から計測点163を見た視線である。基線長166は、カメラ1とカメラ2との間の実際の距離である。見込み角対応長167は、計測点163からカメラ1及び2を見たときのカメラ間の見掛けの距離に相当し、計測点163からの見かけの基線長でもある。
視線164及び165それぞれの方向の直線164a及び165aは、計測点163において、角度Φの内角を形成する。角度Φは、カメラ1及び2から計測点163を見た場合の見込み角でもある。見込み角Φの二等分線である直線168に垂直な線分のうちで、カメラ2の投影中心162に一方の端点を有し且つ直線164a上に他方の端点を有する線分167aの長さが、見込み角対応長167となる。カメラ2の投影中心162から二等分線168に下ろした垂線が直線164aと交差する点と、投影中心162との距離が、見込み角対応長167ともいえる。直線168は、線分167aの垂直二等分線となる。また、見込み角対応長は、線分167aに平行である線分169aの長さであってもよい。線分169aは、カメラ1の投影中心161に一方の端点を有し且つ直線165a上に他方の端点を有する。線分169aの長さである見込み角対応長169も、計測点163からカメラ1及び2を見たときのカメラ間の見掛けの距離に相当する。
見込み角対応長167は、見込み角Φを中心角とする扇形におけるカメラ2の投影中心162を通る弦の長さでもある。見込み角対応長169は、見込み角Φを中心角とする扇形におけるカメラ1の投影中心161を通る弦の長さでもある。このように、見込み角対応長は、カメラ1又は2の投影中心161又は162における、中心角Φの扇形の弦方向での見込み角Φの内側領域の幅である。見込み角Φの内側領域は、視線164及び165の内側領域である。
また、見込み角対応長は、見込み角対応長167及び169に限定されない。例えば、見込み角対応長は、見込み角Φを中心角とする扇形のいずれの弦であってもよい。例えば、見込み角対応長は、線分167a及び169aに平行であり且つ両端を直線164a及び165a上に有するいかなる線分の長さであってもよい。このような見込み角対応長に対応する線分は、線分167a及び169aの間に位置してもよい。
また、見込み角対応長は、直線164a及び165aの内角である見込み角Φで代用されてもよい。見込み角Φは、見込み角対応長と同様の挙動を有し相関する。これにより、見込み角Φの変化は、見込み角対応長の変化を示すことができ、見込み角対応長の変化と1対1で対応する。具体的には、見込み角Φが大きくなれば、見込み角対応長が長くなり、見込み角Φが小さくなれば、見込み角対応長が短くなる。見込み角Φと、計測点163と投影中心161又は162との距離とにより、見込み角対応長の算出が可能である。
キャリブレーションされたカメラでは、上記の式2の関係からカメラ画像中の座標値からカメラの視線方向(つまり、視線方向のベクトル)を計算できる。ここで、カメラiの視点座標系における計測点の座標(x,y,z)=(Xi,Yi,Zi)とする。そして、式2において、カメラ1の視点座標系における計測点の座標(x,y,z)=(X1,Y1,Z1)、カメラ1が当該計測点を含む被写体を撮影したカメラ画像における計測点の画像の座標を(u,v)=(x1,y1)、カメラ2が当該計測点を含む被写体を撮影したカメラ画像における計測点の画像の座標を(u,v)=(x2,y2)とすると、(x1,y1)から(X1,Y1,Z1)への視線ベクトル(a1,b1,c1)は以下のように求められる。カメラ1の画像中における計測点(X1,Y1,Z1)の方位角をφ1とすると、tanφ1=y1/x1より、φ1=tan-1(y1/x1)であり、撮像面からの仰角をθ1とすると、式2よりθ1=k1・(x12+y12)1/2/f1である。また、tanθ1=(X12+Y12)1/2/Z1である。これらの関係から、視線ベクトル(a1,b1,c1)は下記の式8のようになる。
また、(x2,y2)から(X2,Y2,Z2)への視線ベクトル(a2,b2,c2)は、以下のように求められる。ここで、(X2,Y2,Z2)は、カメラ2の視点座標系における計測点の座標である(なお、(Xi,Yi,Zi)と(X2,Y2,Z2)とは物理的には同じ点を示し、座標系が異なっている。)。
カメラ2の画像中における計測点(X2,Y2,Z2)の方位角をφ2、撮像面からの仰角をθ2とすると、カメラ1の場合と同様にして求めた視線ベクトルにカメラ2の座標系からからカメラ1の座標系への変換行列M21の回転成分(式1のr00~r22で示される成分)をかけることにより、視線ベクトル(a2,b2,c2)は、下記の式9のようになる。
以上のように、視線方向のベクトルと、カメラの位置及び姿勢を表す外部パラメタとによって、カメラの投影中心と被写体とを結ぶ視線方向の直線を3次元空間中で一意に求められる。そのため、カメラ1及びカメラ2の画像中の座標値から、2つの視線164及び165の方向の直線164a及び165aの交点として、計測点163の3次元位置が計算される。
なお、上記の2つの視線方向の直線164a及び165aは、カメラ画像間の対応付けの誤差及び量子化誤差により、厳密には交差しないことが生じうる。そのため、実際の計測点163の位置計算では、計測点163の3次元位置を2直線164a及び165aから等距離にある点として求められることがある。なお、直線164a及び165aから等距離にある点は、2直線164a及び165aに共通な垂線を考え、各直線についての垂線の足の中点であってもよい。又は、計測点163の3次元位置を、片方のカメラを基準に考え、その投影中心から当該カメラの視線方向上の垂線の足の位置として求めてもよい。なお、2つの直線上の点間の距離を最小化する点の組は、両者が共有する垂線の脚になることについては後述する。
上記2つの視線164及び165の方向から、計測点163から見た2つのカメラ1及び2の角度Φは、下記の式10から求められる。なお、カメラ1から(a1,b1,c1)へ向かうベクトルは、視線164の方向ベクトルつまり視線ベクトルであり、カメラ2から(a2,b2,c2)へ向かうベクトルは、視線165の視線ベクトルである。
見込み角対応長deffの条件で3角測量による測距をおこなうと、見込み角対応長の片方の位置(片方のカメラの視点に相当)から頂点(被写体位置に相当)までの距離depthは、下記の式11のように示される。例えば、図13において、計測点163とカメラ2の投影中心162との距離が、距離depthに相当する。そして、視点位置から見た角度Φに誤差ΔΦが重畳されると、距離depthの誤差errdepthは、下記の式12のように示される。
上記式12において、距離depthの誤差errdepthは、ノイズ(確率変数ε)の分数式で示されており、誤差errdepthの分散を解析的に表すことはできないが、数値的に評価することは可能である。図14はその一例である。図14は、カメラから1mの位置、すなわち、着目カメラを覆う半径1mの半球上に位置する被写体について、σ=1、∂I/∂n=50、比例定数α=0.03の場合の、距離depthの誤差の分散を示す。なお、σ=1は、8ビットの画像においてPSNR=20log(255/1)=48.1dBであることを意味する。図14において、距離depthの誤差の分散は、見込み角対応長deffのほぼ2乗に反比例している。
平均、分散の異なる確率変数(すなわち、誤差をともなう数値、ここでは距離depthの取得値)に対しては、それらの重み付け加算についても平均及び分散を計算することができる。4眼カメラの場合、着目カメラを含むステレオペア(つまり、カメラのペア)は前述のように3通りになることから、3つの測距値が得られる。3通りの測距データの誤差xiを、下記の式13に示すような確率変数とみなすと、下記の式14に示すように、3つの確率変数x1、x2及びx3の重み付け和が求まる。なお、μiは、複数の対応点における誤差xiの平均であり、σi2は、複数の対応点における誤差xiの分散である。
重み付け加算値の分散を最小化するように重みα、β及びγを決めることで、個々の測距精度を上回る精度の測距値を得ることができる。その様なα、β及びγの値は、簡単のため誤差の平均μ1、μ2及びμ3をそれぞれ0とすると、下記の式15に示す関係から、下記の式16に示すかたちで求まる。
図14に示した関係から、3つのステレオペアにおける距離depthの誤差の分散すなわち、σ1
2、σ2
2及びσ3
2はそれぞれ、対応するステレオペアの見込み角対応長deff1、deff2及びdeff3の約2乗に反比例する。この関係と式16の結果とから、重み付け統合時の係数つまり重みα、β及びγの値は、個々のステレオペアによる測距時の見込み角対応長deff1、deff2及びdeff3を用いて下記の式17のように表される。
なお、式11及び図13より、図13の計測点163から見たカメラ1及び2の角度(見込み角)Φは、見込み角対応長deffと比例関係にあるので、式17に示した重みα、β及びγの値は、下記の式18としても同じ効果が得られ、本開示に含まれる。
以上のことから、複数のカメラの中の着目するカメラqについて、その画素座標値と位置情報との組を、着目カメラ視点における選択位置統合情報として下記の式19のように表す。
着目カメラqは、2×2=4眼の場合、図12に示されるように、左下(LL)視点、右下(LR)視点、左上(UL)視点、右上(UR)のいずれかである。着目カメラqについて、例えば、qがカメラ101a(左下視点)の場合、下記の式20又は式21のように、複数の位置情報に含まれる誤差の分散に応じた重み付け加算を行うことにより、位置情報の誤差の分散を最小化した対応点の3次元位置を得ることができる。なお、重み付け加算の重みα、β及びγにおいて、式20では、誤差の分散の代わりに、見込み角対応長の2乗が用いられ、式21では、誤差の分散の代わりに、見込み角の2乗が用いられている。つまり、式20及び式21では、画像のノイズレベル及びステレオ視による3次元位置の誤差の分散を用いずに、これらに対応する見込み角対応長及び見込み角を用いて、重み付け加算がされている。
式20及び式21において、(xan,yan,zan)は計測点の3次元位置であり、カメラ101aが当該計測点を撮像した画像はカメラ101aのカメラ画像における画素座標(uan,van)で観察されることを意味する。また、(x(a-b)n,y(a-b)n,z(a-b)n)は、上記の式4において、qをカメラ101aに対応するaとし、rをカメラ101bに対応するbとしたものである。つまり、(x(a-b)n,y(a-b)n,z(a-b)n)は、カメラ101a及び101bの2つのカメラ画像間で、ステレオ視によって求められる3次元位置を示す。(x(a-c)n,y(a-c)n,z(a-c)n)についても同様に、上記の式4において、qをカメラ101aに対応するaとし、rをカメラ101cに対応するcとしたものである。(x(a-d)n,y(a-d)n,z(a-d)n)についても同様に、上記の式4において、qをカメラ101aに対応するaとし、rをカメラ101dに対応するdとしたものである。(x(a-c)n,y(a-c)n,z(a-c)n)は、カメラ101a及び101cの2つのカメラ画像間のステレオ視による3次元位置を示す。(x(a-d)n,y(a-d)n,z(a-d)n)は、カメラ101a及び101dの2つのカメラ画像間のステレオ視による3次元位置を示す。
さらに、式20のdeff,(a-b)nは、カメラ101a及びカメラ101bで位置(x(a-b)n,y(a-b)n,z(a-b)n)を三角測量する場合の見込み角対応長である。同様に、deff,(a-c)nは、カメラ101a及びカメラ101cで位置(x(a-c)n,y(a-c)n,z(a-c)n)を三角測量する場合の見込み角対応長であり、deff,(a-d)nは、カメラ101a及びカメラ101dで位置(x(a-d)n,y(a-d)n,z(a-d)n)を三角測量する場合の見込み角対応長である。
また、式21のΦ(a-b)nは、カメラ101a及びカメラ101bで位置(x(a-b)n,y(a-b)n,z(a-b)n)を三角測量する場合の見込み角である。同様に、Φ(a-c)nは、カメラ101a及びカメラ101cで、位置(x(a-c)n,y(a-c)n,z(a-c)n)を三角測量する場合の見込み角であり、Φ(a-d)nは、カメラ101a及びカメラ101dで、位置(x(a-d)n,y(a-d)n,z(a-d)n)を三角測量する場合の見込み角である。
式20又は式21によって、カメラ101aにおける画素座標(uan,van)に対応する3次元座標(xan,yan,zan)が、カメラ101aを基準としてカメラ101a~101dによって形成される3つのカメラペア101a-101b、101a-101c及び101a-101dの画像ペア(Ia,Ib)、(Ia,Ic)及び(Ia,Id)それぞれにおけるステレオ視による3次元位置を用いて算出される。
式20では、(xan,yan,zan)を算出するために、カメラペアのカメラ画像のペアに基づく3次元座標の座標値に見込み角対応長を用いた重み付け値が加味されている。例えば、カメラ画像ペアIa及びIbに基づく3次元座標のx座標値に見込み角対応長を用いた重み付け値が積算され、カメラ画像ペアIa及びIcに基づく3次元座標のx座標値に見込み角対応長を用いた重み付け値が積算され、カメラ画像ペアIa及びIdに基づく3次元座標のx座標値に見込み角対応長を用いた重み付け値が積算され、この3つの積算値が加算されてxanが算出される。加味される重みは、上記の式17に示すように、各見込み角対応長の2乗を見込み角対応長の2乗の総和で除算したもの、つまり、(見込み角対応長の2乗)/(見込み角対応長の2乗の総和)である。このような重みは、見込み角対応長の2乗が正規化されたものであり、重みの総和が1となる。
式21では、(xan,yan,zan)を算出するために、カメラペアのカメラ画像のペアに基づく3次元座標の座標値に、見込み角を用いた重み付け値が加味されている。例えば、カメラ画像ペアIa及びIbに基づく3次元座標のx座標値に見込み角を用いた重み付け値が積算され、カメラ画像ペアIa及びIcに基づく3次元座標のx座標値に見込み角を用いた重み付け値が積算され、カメラ画像ペアIa及びIdに基づく3次元座標のx座標値に見込み角を用いた重み付け値が積算され、この3つの積算値が加算されてxanが算出される。加味される重みは、上記の式18に示すように、各見込み角の2乗を見込み角の2乗の総和で除算したもの、つまり、(見込み角の2乗)/(見込み角の2乗の総和)である。このような重みは、見込み角の2乗が正規化されたものであり、重みの総和が1となる。
図15~図17に上記方法で位置情報を統合した場合の一例を示す。図15は、4眼の魚眼レンズを有する撮像部100によるステレオ画像の一例である。図15は、カメラ101a~101bのカメラ画像を示す。図16は、位置情報の統合に用いたカメラ101aのカメラ画像であり、カメラ画像中のポール位置がフレーム毎に異なる様に配置されている。図16は、6つのフレームのカメラ画像を示し、6つのフレームの間では、被写体のうちのポールと撮像部100との距離がそれぞれ異なっている。具体的には、フレーム1からフレーム6に向かうに従って、上記距離が大きくなる。図17は、評価画像中で位置統合の評価を行った場所を示す図である。図17では、それぞれのフレームで白い領域(つまり、無着色無模様領域)、すなわちポールの領域について、CG作成時に用意したポールの3次元位置と三角測量によって計算されたポールの3次元位置との差異から、位置情報の統合方法の比較を行うことができる。図17のフレーム1~6はそれぞれ、図16のフレーム1~6に対応する。
ここで、位置情報の誤差の評価は、着目視点のカメラ(ここではカメラ101a)の各画素から見た位置情報で示される位置までの奥行き値、depthaを用いて行う。奥行き値depthanと位置情報(xan,yan,zan)との関係は、下記の式22で表される。
なお、式13~式17による上記の説明では、すべてのステレオペア、つまり画像ペアで遮蔽が生じていない場合の統合方法を示した。しかしながら、1組のステレオペアで遮蔽が生じている場合には、残りの2組のステレオペアによる測距値の重み付け統合を行うことにより、統合値が、選択位置統合情報として出力される。また、2組のステレオペアで遮蔽が生じている場合には、残りの1組のステレオペアによる測距値が、選択位置統合値として出力される。これにより、遮蔽の影響を受けずに測距値を選択統合できる。
図18を参照すると、上記の奥行き値depthaの相対測距誤差(相対RMS誤差とも呼ばれる)が比較して示されている。図18における相対RMS誤差は、図16に示す6フレームのカメラ画像それぞれについて、図17でポールの領域である評価領域における測距誤差から計算されている。図18の結果から、同じ被写体であっても三角測量するカメラペアに応じて測距精度が異なることがわかる。特許文献1及び2に開示されている統合方法によって、測距誤差は低減されているが、3つのステレオペアのうちで最良のステレオペア(101a-101b)による測距誤差を下回ることはできていない。これに対し、見込み角対応長の-2乗で重み付けを行う本実施の形態の統合方法では、最良のステレオペア(101a-101b)による測距誤差を下回る測距誤差で位置情報を統合できている。
このように、ステップS403では、位置選択統合部112は、遮蔽情報に基づいて、遮蔽されていない領域の位置情報を選択し、選択位置統合情報P’total={P’a,b、P’a,c、P’a,d、P’b,c、P’b,d、P’c,d}を生成し、さらに選択した位置情報を見込み角対応長に基づいて重みづけ加算して、着目カメラ視点における選択位置統合情報P”qを生成する。
次に、ステップS404では、画像補完部113は、撮像部100のカメラ101a~101dで撮影された複数のカメラ画像と、ステップS401で読み出された遮蔽情報、並びに、カメラ101a~101dの内部パラメタ及び外部パラメタと、ステップS403で生成された選択位置統合情報P’totalと、着目カメラ視点における選択位置統合情報P”qとを取得する。さらに、画像補完部113は、カメラ画像の遮蔽領域の画素の画素値を、選択位置統合情報に基づいて、他の画像の画素の画素値に基づく値で置き換えることで補完画像を生成し、補完画像と着目カメラ視点における選択位置統合情報P”qとを出力する。
以下、ステップS404の処理の詳細を説明する。本実施の形態では、画像Iaにおける遮蔽領域の画素の画素値を、他の3つの画像Ib、Ic及びIdと、選択位置統合情報P’total={P’a,b、P’a,c、P’a,d、P’b,c、P’b,d、P’c,d}とを用いて補完する場合を説明する。
ステップS404では、画像補完部113は、最初に、選択位置統合情報P’totalの全位置情報について、画像Ia上の画素座標(ua,va)を算出する。選択位置統合情報P’total={P’a,b、P’a,c、P’a,d、P’b,c、P’b,d、P’c,d}を用いて算出される画像Ia上の画素座標には、遮蔽情報を対応付けることができる。
画像Ia上の画素座標を算出する方法は以下の通りである。選択位置統合情報P’totalに含まれ且つカメラ101b、101c及び101dに対応するカメラqの座標系の3次元位置(xq,yq,zq)と、カメラ101a及びカメラqの外部パラメタMq,aとを用いて、カメラ101aの座標系で、画像Iaの各画素に映し出される被写体の3次元位置(xa,ya,za)を算出する。カメラ101a及び101bの場合に関して、各カメラの座標系XaYaZa及びXbYbZbと、カメラの外部パラメタMa,bとの関係を図19に示す。そして、3次元位置(xa,ya,za)とカメラ101aの内部パラメタ(f,k)と用いて、下記の式23に基づき、カメラ101aの画素座標(ua,va)を算出することができ、これによりカメラ101aの視点での遮蔽領域における距離値を生成することができ、着目視点での選択位置統合情報P”aに遮蔽領域(ua,va)における距離値の情報を追加する。
以上述べた方法により、カメラ101aの遮蔽領域における距離画像を生成できるのは、以下の理由による。つまり、ステップS403に関して上述したように、選択位置統合情報P’total={P’a,b、P’a,c、P’a,d、P’b,c、P’b,d、P’c,d}に含まれる3次元位置では、ステレオカメラペアの双方の画像中で「被写体領域」に写っているものだけが選択されている。そのため、選択位置統合情報P’total={P’a,b、P’a,c、P’a,d、P’b,c、P’b,d、P’c,d}に含まれる3次元位置のうち、カメラ101aの「遮蔽領域」の画素位置に(ua,va)が算出される3次元位置は、カメラ101aを含まないカメラペアにより算出された3次元位置になる。
なお、上記の説明では簡単のために3次元位置からカメラ101aの2次元画像への投影による方法について説明したが、カメラ101aの遮蔽領域中の同一画素に選択位置統合情報P’totalに含まれる3次元位置が複数回投影される場合には、被写体領域において行った見込角対応長を用いた重み付け加算による高精度化を行ってもよい。
次に、ステップS404では、画像補完部113は、画像Iaの全ての画素のうち、遮蔽情報Oa(u,v)が「遮蔽領域」である画素の座標(u,v)を抽出する。これを遮蔽画素oaj=(uaj,vaj)と呼ぶ。次に、画像補完部113は、各遮蔽画素について、先に求めた選択位置統合情報P’totalから、カメラ101aの画素座標(ua,va)と、遮蔽画素の画素座標(uaj,vaj)との画像上での距離が最も近い対応点の位置情報を選択する。そして、画像補完部113は、選択した対応点で対応付けられる2つの画像Iq及びIrに関して、画像Iq及びIr上での対応点の画素値iq(uqn,vqn)及びir(urn,vrn)から対応点の画素値を算出し、この画素値を、画素座標(uaj,vaj)である画像Iaの遮蔽画素の画素値として設定する。2つの画像Iq及びIr上の対応点の画素値iq(uqn,vqn)及びir(urn,vrn)から、1つの画素値を算出する手法として、ここでは平均画素値を用いるものとする。さらに、画像補完部113は、上述の処理を遮蔽画素のすべてに繰り返し、画像Iaの遮蔽領域の全ての画素を新たな画素値に設定する。上記した画像補完のステップS404の詳細な動作により、補完画像が生成される。なお、遮蔽領域に含まれない画素の画素値は、変更することなく使用すればよい。
図20A及び図20Bはそれぞれ、補完画像及び着目カメラ視点における選択位置統合情報P”qの例を示す。図20Aは、図9A中の「カメラ101a」のカメラ画像のうち、隣接するレンズ等により遮蔽される遮蔽領域を、選択位置統合情報を用いて、他の画像の画素値で置き換えて生成した画像である。図9Bの各カメラ画像では、右端の車両の多くの部分が遮蔽されているのに対し、図20Aの補完画像では、車両が遮蔽されていない。また、図20Bは、カメラ101aの視点における選択位置統合情報P”aの情報から、画像Iaでの画素座標値と、各画素座標値に対応する3次元点とカメラ101aとの距離に比例する輝度値とを算出し、濃淡画像として表した図である。
このように、ステップS404では、画像補完部113は、基準画像上の遮蔽領域の画素について、選択位置統合情報P’total={P’a,b、P’a,c、P’a,d、P’b,c、P’b,d、P’c,d}と他の画像とに基づいて、画素値を決定し、遮蔽領域を補完した補完画像を生成する。
最後に、ステップS405では、障害物検出部120は、補完画像と選択位置統合情報とを取得し、選択位置統合情報に基づいて障害物等の3次元物体を検出し、検出した3次元物体の位置に対応する補完画像上の領域に、注視領域を示す枠を重畳合成して合成画像として出力する。
本実施の形態において、選択位置統合情報に基づいて障害物を検出する手法として、選択位置統合情報の被写体の各3次元位置(xa,ya,za)とカメラ101aとの距離dが、予め定められた距離dthよりも小さい場合に、障害物上の点として検出する手法を用いる。さらに、障害物として検出された点の集まりの外接矩形が、補完画像に重畳され、合成画像として出力され、ディスプレイ130に表示される。
このように、ステップS405では、障害物検出部120は、予め定めた閾値よりも近い位置に障害物等の3次元物体が存在する場合に、補完画像の対応する領域に注意を喚起する図形を重畳した合成画像を生成し、ディスプレイ130に出力する。
以上のコンピュータ300で実行されるステップS401~S405の処理によって、撮像部100で撮像された4つのカメラ画像から、画像処理部110では1つの補完画像と着目カメラ視点における選択位置統合情報とが生成され、障害物検出部120では1つの合成画像が生成され、それぞれ出力される。さらに、撮像部100及びコンピュータ300は、上記の動作を繰り返してもよい。
ステップS405によって生成される合成画像の例を、図21に示す。図21から、自動車の車体後方のカメラに近い場所にある障害物(この例では、歩行者及び停止車両)に注意を喚起する枠が表示されるため、接触する可能性が高い障害物の存在を運転者が容易に認知できる。特に、従来技術による魚眼のカメラを用いた3次元位置算出方法では、カメラ本体によって遮蔽されるために画像及び画像に対応する3次元位置を取得できない領域についても、本実施の形態の撮像装置1は、例えば180度内の遮蔽のない画像と当該画像に対応する3次元位置とを取得できる。例えば、図9Bにおける「カメラ101a」の画像中の右側の車両は、その一部の領域がレンズにより遮蔽されている。しかしながら、撮像装置1は、図20Aのように、180度内の遮蔽領域のない画像と当該画像に対応する3次元位置とを取得することができる。さらに、撮像装置1は、図21のように遮蔽領域のない合成画像を表示できる。
上述したように、カメラ画像のノイズは、カメラ画像間の対応点のマッチング際のマッチング誤差の原因となり得る。そして、マッチング誤差は、三角測量時の角度誤差を生じさせ、カメラによるステレオ視で特定される3次元位置に誤差を生む。実施の形態に係る撮像装置1は、ノイズの分布をもとに、ステレオ視における3次元位置の誤差の分散を推定し、この分散を最小化する様に複数のステレオペア(つまり、カメラのペア)で測定された誤差を含む3次元位置を、見込み角対応長又は見込み角を用いた重みで重み付け加算することにより3次元位置の誤差を最小化することができる。画像のノイズレベルは、信号が一様なところでは画像から推定することができるが、信号が変化している場合には推定が困難になる。これに対して、見込み角対応長及び見込み角は、キャリブレーションされたカメラでは画素座標とカメラから見た視線方向との対応付けができているため、ステレオマッチングによる画像間の対応付けから一意に計算することが容易にできる。
[その他]
以上、本開示の1つ以上の態様に係る撮像装置等について、実施の形態に基づいて説明したが、本開示は、実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の1つ以上の態様の範囲内に含まれてもよい。
例えば、実施の形態に係る撮像装置1において、撮像部100は4つのカメラ101a~101dで構成されるものとしたが、カメラの数量は4つに限定されるものではない。あるカメラの画像に含まれる他のカメラによる遮蔽を補うためには、少なくとも3つのカメラがあればよく、3つ以上のいかなる数量のカメラが設けられてもよい。
実施の形態に係る撮像装置1において、撮像装置1に含まれる複数のカメラのうちの1つのカメラに含まれる画素の画素値が、当該1つのカメラの部分を撮像した値を示す場合も、当該画素が遮蔽領域に含まれるとしてもよい。
実施の形態に係る撮像装置1において、複数のカメラ画像のペアの入力を受けて、ステップS402~S404までの処理を順次行うとしたが、ステップS402~S404の処理が1度に取り扱うデータ量を、カメラ画像のペア毎に限定するものではなく、カメラ画像中の一部の領域ごと、又は、画素ごとに、ステップS402~S404の処理を繰り返してもよい。
実施の形態に係る撮像装置1において、ステップS404で、遮蔽領域に含まれる画素の画素値を他の画像の画素値から補完する方法として、遮蔽領域に含まれる画素の最近傍の対応点の画素の画素値を用いるとしたが、この方法に限定するものではない。選択位置統合情報に含まれる対応点の情報を用いて、遮蔽領域に含まれない画像の画素の画素値に基づいて、遮蔽領域の画素の画素値を設定する方法であれば、どのような方法であってもよい。例えば、遮蔽領域の画素とある一定距離以内の複数の対応点に基づいて、遮蔽領域に含まれない画像上の複数の画素とそれらの画素値とを参照して画素値を重みづけ加算する、などの方法を用いてもよい。
実施の形態に係る撮像装置1において、ステップS402で、複数の画素について対応点を検出して3次元位置を算出したのち、ステップS403で、複数の画素のうち遮蔽領域に含まれない画素を選択する手順とした。しかしながら、遮蔽領域に含まれない画素を選択するための手順は上記に限定されるものではなく、結果として遮蔽領域に含まれない画素を選択することができれば、どのような手順であってもよい。例えば、画素の位置座標を算出したのちに、遮蔽領域に含まれない画素を選択する手順の代わりに、遮蔽情報を用いて遮蔽領域に含まれない画素を選択し、その後、選択した画素について対応点の検出とその3次元位置の算出とを行ってもよい。この手順は、実施の形態で説明した手順に比べて、対応点の検出及び3次元位置の算出が行われる画素の数が少ないため、計算量を削減できるという効果がある。
実施の形態に係る撮像装置1は、自動車に搭載されていたが、搭載対象は、これに限定されない。撮像装置1は、複数のカメラで被写体とその被写体の3次元位置とを計測するいかなる用途に適用されてもよい。例えば、撮像装置1は、自動車以外のいかなる移動体に搭載されてもよく、監視カメラのような固定された対象物に搭載されてもよい。
また、上述したように、本開示の技術は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD-ROM等の不揮発性の記録媒体を含む。
例えば、上記実施の形態に係る撮像装置に含まれる各構成要素は典型的には集積回路であるLSI(Large Scale Integration:大規模集積回路)として実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続及び/又は設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
なお、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、図6に示す様にCPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、上記構成要素の一部又は全部は、脱着可能なIC(Integrated Circuit)カード又は単体のモジュールから構成されてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。ICカード又はモジュールは、上記のLSI又はシステムLSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカード又はモジュールは、その機能を達成する。これらICカード及びモジュールは、耐タンパ性を有するとしてもよい。
本開示の画像処理方法は、MPU(Micro Processing Unit)、CPU、プロセッサ、LSIなどの回路、ICカード又は単体のモジュール等によって、実現されてもよい。
さらに、本開示の技術は、ソフトウェアプログラム又はソフトウェアプログラムからなるデジタル信号によって実現されてもよく、プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
また、上記で用いた序数、数量等の数字は、全て本開示の技術を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。また、構成要素間の接続関係は、本開示の技術を具体的に説明するために例示するものであり、本開示の機能を実現する接続関係はこれに限定されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを1つの機能ブロックとして実現したり、1つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、2つの直線上の点間の距離を最小化する点の組は、両者が共有する垂線の脚になることについて、以下に説明する。2つの直線のうちの直線1を、
とし、2つの直線のうちの直線2を、
とする。ここで、(X
1,Y
1,Z
1)はカメラ1の位置であり、(X
2,Y
2,Z
2)はカメラ2の位置である。(a
1,b
1,c
1)及び(a
2,b
2,c
2)はそれぞれ、カメラ1及びカメラ2の視線ベクトルを示す単位方向ベクトルとする。sはカメラ1からの距離を表し、tはカメラ2からの距離を表す。
なお、単位方向ベクトル(a1,b1,c1)及び(a2,b2,c2)はそれぞれ、あらかじめカメラ1及びカメラ2をキャリブレーションしておくことにより、カメラ1及びカメラ2の画像中の任意の画素座標値(x,y)について一意にそれらの値が決まる様にしておく(すなわち、どの画素がどの方向に対応するか、事前に校正しておく)。
そして、直線1上の点は、(X
1+sa
1,Y
1+sb
1,Z
1+sc
1)と表され、直線2上の点は、(X
2+ta
2,Y
2+tb
2,Z
2+tc
2)と表される。さらに、直線1上の点と直線2上の点との距離の2乗Jは、
となる。
視差推定が誤差なく正しく行われている場合には、直線1と直線2とは通常1点で交差するが、視差推定に誤差が含まれると、両者が交差しない場合が起こりえる。その様な場合も含めて、上記Jを最小化するs及びtを求めることにより、カメラ1及びカメラ2からの距離を求めることができる。
上記Jを最小にするs及びtは、
より、
を解くことによって、
として求めることができる。なお、上式中の逆行列は、(a
1,b
1,c
1)=(a
2,b
2,c
2)、すなわち2直線が平行な場合を除き、計算することができる。また、2直線が平行な場合、被写体が無限遠にあると考え、s=∞、t=∞と考えればよい。
以上のようにして求めたs及びtについて、カメラ1を基準に考えるとsがカメラ1の位置(X1,Y1,Z1)からの距離を表し、一方、カメラ2を基準に考えるとtがカメラ2の位置(X2,Y2,Z2)からの距離を表す。
なお、カメラ1及びカメラ2のどちらかのカメラを基準カメラとして考えるのではなく、上記2点の中点である
を2直線の交点と考えてもよい。
なお、Jを最小にする点の組(X1+sa1,Y1+sb1,Z1+sc1),(X2+ta2,Y2+tb2,Z2+tc2)の意味について考える。点(X1+sa1,Y1+sb1,Z1+sc1)は直線1上の点の中で、直線2に最も近い点である。点(X2+ta2,Y2+tb2,Z2+tc2)は直線2上の点の中で点(X1+sa1,Y1+sb1,Z1+sc1)に最も近い点、すなわち、点(X1+sa1,Y1+sb1,Z1+sc1)から直線2に降ろした垂線の足である。一方、点(X2+ta2,Y2+tb2,Z2+tc2)は直線2上の点の中で、直線1に最も近い点である。点(X1+sa1,Y1+sb1,Z1+sc1)は直線1上の点の中で点(X2+ta2,Y2+tb2,Z2+tc2)に最も近い点、すなわち、点(X2+ta2,Y2+tb2,Z2+tc2)から直線1に降ろした垂線の足である。
以上のことから、上記Jを最小にするs及びtによって決まる2点(X1+sa1,Y1+sb1,Z1+sc1)及び(X2+ta2,Y2+tb2,Z2+tc2)を通る直線は、直線1及び直線2の双方に垂直な直線、すなわち、直線1及び直線2について共通の垂線になっている。