(57)【要約】【課題】  画像から、被写体の位置を精度良く取得できる画像処理装置を実現する。【解決手段】  実施形態によれば、画像処理装置は、バッファ部、距離算出部、三次元座標算出部、および補正部を具備する。バッファ部は、被写体を撮影した第１画像と、前記被写体を撮影した前記第１画像とは異なる第２画像とを保存する。距離算出部は、環境光、前記被写体の反射特性、および前記被写体の色の少なくとも何れかによる影響を補正するための補正パラメータを用いて、前記第１画像における前記被写体までの第１距離と、前記第２画像における前記被写体までの第２距離の少なくとも一方を算出する。三次元座標算出部は、前記第１画像と前記第２画像とを用いて、前記被写体の相対スケールの三次元座標を算出する。補正部は、前記第１距離と前記第２距離の少なくとも一方と前記相対スケールの三次元座標とに基づいて、前記被写体の実スケールの三次元座標を算出する。【選択図】図９
2019049457.tif 000002
【特許請求の範囲】
【請求項１】
被写体を撮影した第１画像と、前記被写体を撮影した前記第１画像とは異なる第２画像とを保存するバッファ部と、
環境光、前記被写体の反射特性、および前記被写体の色の少なくとも何れかによる影響を補正するための補正パラメータを用いて、前記第１画像における前記被写体までの第１距離と、前記第２画像における前記被写体までの第２距離の少なくとも一方を算出する距離算出部と、
前記第１画像と前記第２画像とを用いて、前記被写体の相対スケールの三次元座標を算出する三次元座標算出部と、
前記第１距離と前記第２距離の少なくとも一方と前記相対スケールの三次元座標とに基づいて、前記被写体の実スケールの三次元座標を算出する補正部とを具備する画像処理装置。
【請求項２】
前記補正部は、
前記第１距離と前記第２距離の少なくとも一方と、前記相対スケールの三次元座標とが、実空間内の同一の位置を示すように、前記補正パラメータと、前記相対スケールの三次元座標を実スケールの三次元座標に変換するためのスケールパラメータとを算出し、
前記算出された補正パラメータとスケールパラメータとを用いて前記被写体の実スケールの三次元座標を算出する請求項１に記載の画像処理装置。
【請求項３】
前記補正部は、前記算出されたスケールパラメータと前記相対スケールの三次元座標とに基づいて、前記被写体の実スケールの三次元座標を算出する請求項２に記載の画像処理装置。
【請求項４】
前記第１画像は、第１波長成分画像と第２波長成分画像とを含み、
前記第２画像は、第３波長成分画像と第４波長成分画像とを含み、
前記第１波長成分画像に含まれるぼけを前記第２波長成分画像に含まれるぼけに補正するための第１ぼけ補正量を算出し、前記第３波長成分画像に含まれるぼけを前記第４波長成分画像に含まれるぼけに補正するための第２ぼけ補正量を算出するぼけ補正量算出部をさらに具備し、
前記距離算出部は、前記第１ぼけ補正量に基づいて前記第１距離を算出し、前記第２ぼけ補正量に基づいて前記第２距離を算出する請求項１に記載の画像処理装置。
【請求項５】
前記第１波長成分画像に含まれるぼけの形状と、前記第２波長成分画像に含まれるぼけの形状の少なくとも一方は非点対称であり、
前記第３波長成分画像に含まれるぼけの形状と、前記第４波長成分画像に含まれるぼけの形状の少なくとも一方は非点対称である請求項４に記載の画像処理装置。
【請求項６】
前記補正部は、
前記第１距離と前記第２距離の少なくとも一方と、前記相対スケールの三次元座標とを用いて、前記補正パラメータと、前記相対スケールの三次元座標を実スケールの三次元座標に変換するためのスケールパラメータとを算出し、
前記算出された補正パラメータと前記第１ぼけ補正量とに基づいて、または前記算出された補正パラメータと前記第２ぼけ補正量とに基づいて、前記被写体の実スケールの三次元座標を算出する請求項４または請求項５に記載の画像処理装置。
【請求項７】
前記補正部は、前記第１画像と前記第２画像との対応点毎に、前記補正パラメータを算出する請求項６に記載の画像処理装置。
【請求項８】
前記補正部は、前記第１画像上または前記第２画像上の類似する色を有する領域毎に、前記補正パラメータを算出する請求項６に記載の画像処理装置。
【請求項９】
前記補正部は、前記第１画像上の複数の画素と前記第２画像上の複数の画素とに対して共通である前記補正パラメータを算出する請求項６に記載の画像処理装置。
【請求項１０】
前記三次元座標算出部は、さらに、前記第１画像が撮像された位置および姿勢と前記第２画像が撮像された位置および姿勢との相対的な位置関係を示す一つ以上のパラメータを算出する請求項１に記載の画像処理装置。
【請求項１１】
前記第１画像と前記第２画像とには、撮像時の前記被写体までの距離情報がそれぞれ符号化される請求項１に記載の画像処理装置。
【請求項１２】
前記第１画像と前記第２画像とは、単一の光学系でそれぞれ取得される請求項１に記載の画像処理装置。
【請求項１３】
請求項１乃至請求項１２のいずれか一項に記載の画像処理装置と、
前記第１画像と前記第２画像とを撮像する撮像部とを具備する測距装置。
【請求項１４】
前記撮像部は、
レンズと、
互いに異なる波長帯域の光を受光する少なくとも二種類の撮像素子を含むイメージセンサと、
前記レンズを通過して前記イメージセンサに入射する光の光路上に設けられ、互いに異なる波長帯域の光を透過する少なくとも二つのフィルタ領域を含むフィルタとを備える請求項１３に記載の測距装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置および測距装置に関する。
【背景技術】
【０００２】
二つのカメラやステレオカメラ（複眼のカメラ）で撮像された画像から、被写体までの距離を取得する技術が知られている。また、近時、一つのカメラ（単眼のカメラ）で撮像された画像から、被写体までの距離を取得する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−４３０５５号公報
【特許文献２】特開２０１６−１０２７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
撮像された画像は、環境光や被写体の反射特性の影響を受けることがある。このような画像を用いて被写体までの距離が取得される場合、精度が低下する可能性がある。
【０００５】
本発明が解決しようとする課題は、画像から、被写体の位置を精度良く取得できる画像処理装置および測距装置を提供することである。
【課題を解決するための手段】
【０００６】
実施形態によれば、画像処理装置は、バッファ部、距離算出部、三次元座標算出部、および補正部を具備する。バッファ部は、被写体を撮影した第１画像と、前記被写体を撮影した前記第１画像とは異なる第２画像とを保存する。距離算出部は、環境光、前記被写体の反射特性、および前記被写体の色の少なくとも何れかによる影響を補正するための補正パラメータを用いて、前記第１画像における前記被写体までの第１距離と、前記第２画像における前記被写体までの第２距離の少なくとも一方を算出する。三次元座標算出部は、前記第１画像と前記第２画像とを用いて、前記被写体の相対スケールの三次元座標を算出する。補正部は、前記第１距離と前記第２距離の少なくとも一方と前記相対スケールの三次元座標とに基づいて、前記被写体の実スケールの三次元座標を算出する。
【図面の簡単な説明】
【０００７】
【図１】実施形態に係る測距装置の構成を示すブロック図。
【図２】同実施形態の測距装置内の撮像部に設けられるフィルタの構成の例を示す図。
【図３】図２のフィルタの透過率特性の例を示す図。
【図４】図２のフィルタが配置されたカラー開口の光線変化と、ぼけの形状とを説明するための図。
【図５】同実施形態の測距装置によって撮像された画像上のぼけを利用して、被写体までの距離を算出する方法の例を説明するための図。
【図６】環境光や被写体表面の反射特性の影響により、画像から推定される被写体までの距離の精度が低下する例を説明するための図。
【図７】異なる位置（視点）から撮像された複数の画像を用いて推定される被写体位置のスケールが不定であることを説明するための図。
【図８】同実施形態の測距装置内の画像処理部（画像処理装置）のシステム構成の例を示すブロック図。
【図９】図８の画像処理部によって実行される画像処理プログラムの機能構成の例を示すブロック図。
【図１０】図８の画像処理部によって被写体の位置が推定される例を説明するための図。
【図１１】図８の画像処理部によって実行される処理の手順の例を示すフローチャート。
【図１２】同実施形態の測距装置を備える移動体の構成を示すブロック図。
【図１３】同実施形態の測距装置を備える自動車の外観の例を示す斜視図。
【図１４】同実施形態の測距装置を備えるドローンの外観の例を示す斜視図。
【図１５】同実施形態の測距装置を備えるロボットの外観の例を示す斜視図。
【図１６】同実施形態の測距装置を備えるロボットアームの外観の例を示す斜視図。
【発明を実施するための形態】
【０００８】
以下、実施の形態について図面を参照して説明する。
【０００９】
まず、図１を参照して、一実施形態に係る測距装置の構成を説明する。この測距装置１は、画像を撮像し、撮像された画像を用いて被写体の位置を実スケールで推定する。推定される被写体の位置は、撮像地点から被写体までの距離（奥行きとも称する）を少なくとも含み、例えば、三次元空間の座標として表される。
【００１０】
この測距装置１は、画像を撮像する撮像部１１と、撮像された画像を処理する画像処理部１２とを備える。測距装置１は、撮像部１１と画像処理部１２とを備える一つの装置として実現されてもよいし、撮像部１１に相当する撮像装置と、画像処理部１２に相当する画像処理装置とのような複数の装置で構成されるシステムであってもよい。撮像部１１は、被写体の画像と当該被写体までの距離に関する情報とを一度の撮影で取得する機能を有する。撮像部１１は、この機能により、例えば、撮像時の被写体までの距離情報が符号化された画像を取得する。また、画像処理部１２は、例えば、コンピュータ、または各種電子機器に内蔵される組み込みシステムとして実現され得る。画像処理部１２は、撮像部１１により撮像された少なくとも二つの画像を用いて、被写体の三次元情報を生成する機能を有している。
【００１１】
図１に示すように、撮像部１１は、フィルタ２１とレンズ２２とイメージセンサ２３とを備える単眼カメラにより構成される。フィルタ２１は、互いに異なる波長帯域（色成分）の光を透過する複数のフィルタ領域を含む。フィルタ２１は、例えば、二色のカラーフィルタ領域である第１フィルタ領域２１１と第２フィルタ領域２１２とで構成される。撮像部１１は、被写体をそれぞれ少なくとも位置および視点の何れかが異なる条件で撮像した少なくとも二つの画像を生成する。したがって、二つの画像間では被写体の見え方が異なっている。
【００１２】
イメージセンサ２３は、フィルタ２１とレンズ２２とを透過した光を受光し、受光した光を電気信号に変換（光電変換）する。イメージセンサ２３には、例えばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）やＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）が用いられる。イメージセンサ２３は、少なくとも二種類の撮像素子を含み、例えば、赤色（Ｒ）の光を受光する撮像素子を含む第１センサ２３１と、緑色（Ｇ）の光を受光する撮像素子を含む第２センサ２３２と、青色（Ｂ）の光を受光する撮像素子を含む第３センサ２３３とを備える。各撮像素子は、対応する波長帯域の光を受光し、受光した光を電気信号に変換する。この電気信号をＡ／Ｄ変換することによりカラー画像を生成することができる。以下では、画像のＲ成分、Ｇ成分、Ｂ成分である色成分画像（波長成分画像とも称する）を、それぞれＲ画像、Ｇ画像、Ｂ画像とも称する。なお、赤色、緑色、青色の撮像素子毎の電気信号を用いて、Ｒ画像、Ｇ画像、Ｂ画像をそれぞれ生成することもできる。つまり、撮像部１１は、一度の撮像（ワンショット）で、カラー画像、Ｒ画像、Ｇ画像、およびＢ画像の少なくとも一つを生成することができる。
【００１３】
次いで、図２は、フィルタ２１の構成の例を示す。フィルタ２１は、互いに異なる光の波長帯域（色成分）を透過する複数のフィルタ領域を有し、２以上のフィルタ領域は、撮像装置２の光学中心２１３に対して非点対称な形状である。フィルタ２１は、例えば、二色のカラーフィルタ領域である第１フィルタ領域２１１と第２フィルタ領域２１２とで構成される。フィルタ２１の中心は、撮像装置２（レンズ２２）の光学中心２１３と一致している。第１フィルタ領域２１１および第２フィルタ領域２１２はそれぞれ、光学中心２１３に対して非点対称である形状を有している。また、例えば、二つのフィルタ領域２１１，２１２は重複せず、且つ二つのフィルタ領域２１１，２１２によってフィルタ２１の全領域を構成している。図２に示す例では、第１フィルタ領域２１１および第２フィルタ領域２１２はそれぞれ、円形のフィルタ２１が光学中心２１３を通る線分で分割された半円の形状を有している。第１フィルタ領域２１１は、例えばイエロー（Ｙ）のフィルタ領域であり、第２フィルタ領域２１２は、例えばシアン（Ｃ）のフィルタ領域である。なお、第１フィルタ領域２１１がマゼンタ（Ｍ）のフィルタ領域であって、第２フィルタ領域２１２がイエロー（Ｙ）のフィルタ領域であってもよい。さらに、第１フィルタ領域２１１がシアン（Ｃ）のフィルタ領域であって、第２フィルタ領域２１２がマゼンタ（Ｍ）のフィルタ領域であってもよい。
【００１４】
各カラーフィルタが透過する波長帯域は異なる。一つのフィルタ領域が透過する光の波長帯域の一部と、別の一つのカラーフィルタ領域が透過する光の波長帯域の一部は、例えば重複する。一つのカラーフィルタ領域が透過する光の波長帯域は、例えば別の一つのカラーフィルタ領域が透過する光の波長帯域を含んでもよい。
【００１５】
なお、第１フィルタ領域２１１と第２フィルタ領域２１２とは、任意の波長帯域の透過率を変更するフィルタ、任意方向の偏光光を通過させる偏光フィルタ、または任意の波長帯域の集光パワーを変更するマイクロレンズであってもよい。例えば、任意の波長帯域の透過率を変更するフィルタは、原色フィルタ（ＲＧＢ）、補色フィルタ（ＣＭＹ）、色補正フィルタ（ＣＣ−ＲＧＢ／ＣＭＹ）、赤外線・紫外線カットフィルタ、ＮＤフィルタ、または遮蔽板であってもよい。第１フィルタ領域２１１や第２フィルタ領域２１２がマイクロレンズである場合は、レンズ２２により光線の集光の分布に偏りが生じることでぼけの形状が変化する。
【００１６】
以下では、説明を分かりやすくするために、図２に示すフィルタ２１において、第１フィルタ領域２１１がイエロー（Ｙ）のフィルタ領域であり、第２フィルタ領域２１２がシアン（Ｃ）のフィルタ領域である場合を主に例示する。
【００１７】
たとえば図２に示したフィルタ２１がカメラの開口部に配置されることにより、開口部が二色で二分割された構造開口であるカラー開口が構成される。このカラー開口を透過する光線に基づいて、イメージセンサ２３は画像を生成する。イメージセンサ２３に入射する光の光路上において、フィルタ２１とイメージセンサ２３との間にレンズ２２が配置されてもよい。イメージセンサ２３に入射する光の光路上において、レンズ２２とイメージセンサ２３との間にフィルタ２１が配置されてもよい。レンズ２２が複数設けられる場合、フィルタ２１は、２つのレンズ２２の間に配置されてもよい。
【００１８】
第２センサ２３２に対応する波長帯域の光は、イエローの第１のフィルタ領域２１１とシアンの第２のフィルタ領域２１２の両方を透過する。第１センサ２３１に対応する波長帯域の光は、イエローの第１のフィルタ領域２１１を透過し、シアンの第２のフィルタ領域２１２を透過しない。第３センサ２３３に対応する波長帯域の光は、シアンの第２のフィルタ領域２１２を透過し、イエローの第１のフィルタ領域２１１を透過しない。
【００１９】
なお、ある波長帯域の光がフィルタまたはフィルタ領域を透過するとは、フィルタまたはフィルタ領域が高い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰（すなわち、光量の低下）が極めて小さいことを意味する。また、ある波長帯域の光がフィルタまたはフィルタ領域を透過しないとは、光がフィルタまたはフィルタ領域に遮蔽されることであり、たとえば、フィルタまたはフィルタ領域が低い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰が極めて大きいことを意味する。たとえばフィルタまたはフィルタ領域は、ある波長帯の光を吸収することにより光を減衰させる。
【００２０】
図５は、第１フィルタ領域２１１および第２フィルタ領域２１２の透過率特性の例を示す。なお、可視光の波長帯域のうち７００ｎｍより長い波長の光に対する透過率は図示を省略してあるが、その透過率は７００ｎｍの場合に近いものである。図５に示すイエローの第１フィルタ領域２１１の透過率特性２１５では、波長帯域が６２０ｎｍから７５０ｎｍ程度のＲ画像に対応する光と、波長帯域が４９５ｎｍから５７０ｎｍ程度のＧ画像に対応する光とが高い透過率で透過され、波長帯域が４５０ｎｍから４９５ｎｍ程度のＢ画像に対応する光がほとんど透過されていない。また、シアンの第２フィルタ領域２１２の透過率特性２１６では、Ｂ画像およびＧ画像に対応する波長帯域の光が高い透過率で透過され、Ｒ画像に対応する波長帯域の光がほとんど透過されていない。
【００２１】
したがって、Ｒ画像（第１センサ２３１）に対応する波長帯域の光はイエローの第１フィルタ領域２１１のみを透過し、Ｂ画像（第３センサ２３３）に対応する波長帯域の光はシアンの第２フィルタ領域２１２のみを透過する。Ｇ画像（第２センサ２３２）に対応する波長帯域の光は、第１フィルタ領域２１１と第２フィルタ領域２１２を透過する。
【００２２】
このようなＲ画像、Ｂ画像および画像上のぼけの形状は被写体までの距離ｄに応じて、より詳細には、距離ｄと合焦距離ｄｆとの差分に応じて変化する。合焦距離ｄｆは、撮像位置から、画像上にぼけが発生しない（すなわち、ピントが合う）合焦位置までの距離である。また、各フィルタ領域２１１，２１２が光学中心２１３に対して非点対称な形状であるので、Ｒ画像上およびＢ画像上のぼけの形状は、被写体が合焦距離ｄｆよりも手前にあるか、それとも奥にあるかによって異なり、また偏っている。Ｒ画像上およびＢ画像上のぼけの偏りの方向は、撮像位置から見て、被写体が合焦距離ｄｆよりも手前にあるか、それとも奥にあるかによってそれぞれ反転する。
【００２３】
図４を参照して、フィルタ２１が配置されたカラー開口による光線変化と、ぼけの形状とについて説明する。  
被写体２１０が合焦距離ｄｆよりも奥にある場合（ｄ＞ｄｆ）、イメージセンサ２３によって撮像された画像にはぼけが発生する。この画像のぼけの形状を示すぼけ関数（ＰＳＦ：Ｐｏｉｎｔ  Ｓｐｒｅａｄ  Ｆｕｎｃｔｉｏｎ）は、Ｒ画像、Ｇ画像およびＢ画像でそれぞれ異なっている。例えば、Ｒ画像のぼけ関数２０１Ｒは左側に偏ったぼけの形状を示し、Ｇ画像のぼけ関数２０１Ｇは偏りのないぼけの形状を示し、Ｂ画像のぼけ関数２０１Ｂは右側に偏ったぼけの形状を示している。
【００２４】
また、被写体２１０が合焦距離ｄｆにある場合（ｄ＝ｄｆ）、イメージセンサ２３によって撮像された画像にはほとんどぼけが発生しない。この画像のぼけの形状を示すぼけ関数は、Ｒ画像、Ｇ画像およびＢ画像でほぼ同じである。すなわち、Ｒ画像のぼけ関数２０１Ｒ、Ｇ画像のぼけ関数２０１Ｇ、およびＢ画像のぼけ関数２０１Ｂは、偏りのないぼけの形状を示している。
【００２５】
また、被写体２１０が合焦距離ｄｆよりも手前にある場合（ｄ＜ｄｆ）、イメージセンサ２３によって撮像された画像にはぼけが発生する。この画像のぼけの形状を示すぼけ関数は、Ｒ画像、Ｇ画像およびＢ画像でそれぞれ異なっている。すなわち、Ｒ画像のぼけ関数２０１Ｒは右側に偏ったぼけの形状を示し、Ｇ画像のぼけ関数２０１Ｇは偏りのないぼけの形状を示し、Ｂ画像のぼけ関数２０１Ｂは左側に偏ったぼけの形状を示している。
【００２６】
このように、被写体２１０が合焦距離ｄｆよりも手前または奥にある場合、イエローの第１フィルタ領域２１１を透過した光線に基づくＲ画像のぼけ関数２０１Ｒ，２０３Ｒは非対称であり、またシアンの第２フィルタ領域２１２を透過した光線に基づくＢ画像のぼけ関数２０１Ｂ，２０３Ｂも非対称である。そして、そのＲ画像のぼけ関数２０１Ｒ，２０３Ｒは、Ｂ画像のぼけ関数２０１Ｂ，２０３Ｂとは異なっている。
【００２７】
図５は、このような画像上のぼけを利用して被写体２１０までの距離を算出（推定）する方法を示す。図５に示す例では、フィルタ２１は、イエローの第１フィルタ領域２１１とシアンの第２フィルタ領域２１２とによって構成されている。そのため、Ｒ画像に対応する波長帯域の光が、第１フィルタ領域２１１に対応する部分５１Ｒを通過し、Ｇ画像に対応する波長帯域の光が、第１フィルタ領域２１１および第２フィルタ領域２１２に対応する部分５１Ｇを通過し、Ｂ画像に対応する波長帯域の光が、第２フィルタ領域２１２に対応する部分５１Ｂを通過する。
【００２８】
このようなフィルタ２１を用いて撮像された画像上にぼけが生じた場合、Ｒ画像、Ｇ画像およびＢ画像上のぼけはそれぞれ異なる形状になる。図５に示すように、Ｇ画像のぼけ関数５２Ｇは左右対称であるぼけの形状を表している。また、Ｒ画像のぼけ関数５２ＲおよびＢ画像のぼけ関数５２Ｂは非点対称であるぼけの形状を表し、ぼけの偏りはそれぞれ異なっている。
【００２９】
Ｒ画像のぼけ関数５２ＲおよびＢ画像のぼけ関数５２Ｂには、Ｒ画像およびＢ画像上の非点対称なぼけを左右対称なぼけに補正するためのぼけ補正フィルタ５３，５４が適用され、ぼけ補正フィルタ５３、５４が適用された後のぼけ関数がＧ画像のぼけ関数５２Ｇと一致するかどうかが判定される。ぼけ補正フィルタ５３，５４は複数用意されており、複数のぼけ補正フィルタ５３、５４は、被写体との複数の距離に対応する。あるぼけ補正フィルタ５３，５４が適用されたぼけ関数が、Ｇ画像のぼけ関数５２Ｇと一致した場合には、そのぼけ補正フィルタ５３，５４に対応する距離が、撮影された被写体２１０までの距離に決定される。
【００３０】
このぼけ関数が一致しているかどうかの判定には、例えば、ぼけ補正フィルタが適用されたＲ画像またはＢ画像と、Ｇ画像との相関が用いられる。したがって、例えば、複数のぼけ補正フィルタから、ぼけ補正フィルタが適用されたぼけ関数と、Ｇ画像のぼけ関数との相関がより高くなるぼけ補正フィルタを探索することで、画像上の各画素に写る被写体までの距離が推定される。
【００３１】
ぼけ補正フィルタが適用されたＲ画像またはＢ画像と、Ｇ画像との相関を示す相関値には、例えば、ＮＣＣ（Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）、ＺＮＣＣ（Ｚｅｒｏ−ｍｅａｎ  Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）、Ｃｏｌｏｒ  Ａｌｉｇｎｍｅｎｔ  Ｍｅａｓｕｒｅ、等が用いられ得る。
【００３２】
また、あるぼけ補正フィルタ５３，５４が適用されたぼけ関数５５Ｒ，５５Ｂが、Ｇ画像のぼけ関数５２Ｇと一致しているかどうかの判定に、ぼけ補正フィルタが適用されたＲ画像またはＢ画像と、Ｇ画像との相違度が用いられてもよい。この相違度がより低くなる距離を求めることで、被写体までの距離を算出することができる。相違度には、例えば、ＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）、等が用いられ得る。
【００３３】
なお、ぼけ補正フィルタ５３が適用されたＲ画像のぼけ関数が、ぼけ補正フィルタ５４が適用されたＢ画像のぼけ関数と一致するかどうかが判定されてもよい。これらぼけ補正フィルタ５３，５４は同一の距離に対応する。ぼけ補正フィルタ５３が適用されたＲ画像のぼけ関数が、ぼけ補正フィルタ５４が適用されたＢ画像のぼけ関数と一致した場合には、それらぼけ補正フィルタ５３，５４に対応する距離が、撮影された被写体２１０までの距離に決定される。
【００３４】
このように、二つの色成分画像上のぼけ（例えば、ぼけ関数、ぼけ形状）の相対的な関係が、被写体までの距離と相関を持つので、画像処理部１２は、この相関関係を予めキャリブレーションして保持することもできる。キャリブレーションにより、一方の色成分画像上のぼけを、他方の色成分画像上のぼけに補正するためのぼけ補正量と、被写体までの距離との対応を示すルックアップテーブル（ＬＵＴ）やモデルが作成される。例えば、Ｒ画像またはＢ画像のぼけ関数をＧ画像のぼけ関数と一致させるために用いられるぼけ補正フィルタ５３，５４と、被写体までの距離との対応を示すＬＵＴまたはモデルが作成される。なお、ぼけ補正量の代わりに、一方の色成分画像上のぼけと、他方の色成分画像上のぼけとの関係を示す、例えば、ぼけの大きさのような他の値（パラメータ）が用いられてもよい。このＬＵＴまたはモデルを参照することにより、ぼけ補正量を被写体までの距離に変換することができる。
【００３５】
しかしながら、画像上のぼけから、被写体までの距離を推定する方法では、撮影時の環境光、被写体の反射特性、および被写体の色の少なくとも何れかの影響により、距離の推定精度が低下する可能性がある。環境光による影響は、例えば、撮影が屋外、室内等の様々な環境で行われることによる光源のスペクトル特性の違いによって生じるものである。被写体の反射特性による影響は、例えば、被写体の材質や表面の凹凸による反射スペクトル特性の違いによって生じるものである。
【００３６】
より具体的には、フィルタ２１の透過特性とイメージセンサ２３の分光感度特性とが、この推定方法に理想的な周波数特性を有していない場合、被写体までの距離が同一であっても、環境光、被写体の反射特性、被写体の色等の影響によって、画像上のぼけ（ぼけの量、形状）が変動する。その結果、画像上のぼけに基づいて推定される、被写体までの距離の精度が低下する。例えば、被写体までの距離が実際には同じであっても、二つの色成分画像上のぼけの相対的な関係と、被写体までの距離とが必ずしも一対一で対応しない。そのため、予めキャリブレーションした相関関係に基づいて距離が算出される場合、算出される距離にバラつきが発生する可能性がある。したがって、画像から、被写体までの距離を精度良く取得できる新たな技術の実現が要求される。
【００３７】
なお、上記の理想的な周波数特性は、例えば、第３センサ２３３（青センサ）が受光する波長帯域の光が、第２フィルタ領域２１２（例えば、シアン）のみを通過し、第１フィルタ領域２１１（例えば、イエロー）では完全に遮断されるような、イメージセンサ２３の分光感度特性とフィルタ２１の透過特性との組み合わせにより得られる。本実施形態では、このような理想的な特性を持たないカメラが用いられる場合でも、環境光、被写体の反射特性・色等に対してロバストに被写体までの距離や被写体の三次元座標を推定する。
【００３８】
具体的には、本実施形態では、画像上のぼけから、被写体までの距離を推定する方法とＳｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ（ＳｆＭ）とのハイブリット方式により、撮影時の環境光、被写体の反射特性、および被写体の色の少なくとも何れかの影響が補正された距離（三次元情報）が取得される。ＳｆＭは、少なくとも位置および視点の何れかが異なる条件で被写体を撮像した画像を用いて、撮像時のカメラ間の相対的な位置関係と、被写体の三次元情報とを算出する三次元再構成方法である。
【００３９】
また、本実施形態では、画像上のぼけだけでなく、撮影時の環境光、被写体の反射特性、および被写体の色の少なくとも何れかの影響を補正するための補正パラメータα（補正量）も用いて、推定される距離が規定される。図６に示すように、画像上のぼけのみに基づいて距離を推定する方法では、被写体までの距離が実際には同一であったとしても、環境光、被写体の反射特性、および被写体の色の少なくとも何れかの影響が異なることによって、バラつきのある距離が算出される。画像６２は、カメラ位置６１から被写体２１０を撮像することにより生成された画像である。
【００４０】
画像６２が理想的な条件で撮像された場合、例えば、環境光、被写体の反射特性、および被写体の色の少なくともいずれかによる影響を受けていない場合、画像処理部１２は、この画像６２上の画素６２１に関するぼけ補正量に基づいて、カメラ位置６１から、画素６２１に対応する被写体２１０上の実際の物点６４１までの距離を精度良く算出することができる。この場合、補正パラメータαによる距離の補正は不要である。
【００４１】
画像６２が理想的な条件で撮像されていない場合、例えば、環境光、被写体の反射特性、および被写体の色の少なくともいずれかによる影響を受けている場合、画像６２上の画素６２１に関するぼけ補正量から推定される距離を、補正パラメータαにより補正する必要がある。この補正パラメータαが補正に適切な値よりも小さい場合には、カメラ位置６１から点６３１までの距離が、被写体２１０までの距離として算出され、実際の距離よりも短い距離が算出される。また、補正パラメータαが補正に適切な値よりも大きい場合には、カメラ位置６１から点６５１までの距離が、被写体２１０までの距離として算出され、実際の距離よりも長い距離が算出される。このように、環境光、被写体の反射特性、および被写体の色の少なくともいずれかによる影響により、同一の距離として算出されるべき距離にバラつきが生じることになる。
【００４２】
一方、ＳｆＭでは、被写体を撮像した複数の画像から、スケールパラメータβ（スケール補正量）が不定（未知）である被写体の三次元情報が取得される。つまり、この三次元座標は相対スケールの三次元座標である。図７は、被写体２１０を少なくとも位置および視点の何れかが異なる条件で撮像した二つの画像７２，７４から、スケールパラメータβが不定である被写体の三次元座標が算出される例を示す。
【００４３】
画像７２上の特徴点７２１と画像７４上の特徴点７４１とは対応する特徴量を有し、したがって被写体の同一の箇所が撮像された対応点である。また、画像７２上の特徴点７２２と画像７４上の特徴点７４２とは対応する特徴量を有し、被写体の別の同一の箇所が撮像された対応点である。画像処理部１２は、これら対応点を用いたＳｆＭにより、例えば回転行列Ｒと平行移動ベクトルｔとで表される、撮像時のカメラ位置の相対関係を推定し、各対応点に対応する被写体の三次元座標を推定する。この平行移動ベクトルｔは、カメラ間の距離を表し、大きさが不定である。
【００４４】
この平行移動ベクトルｔの大きさが不定であることにより、画像７２の撮像時のカメラ位置Ｐ（ｋ）７１に対して、画像７４の撮像時のカメラ位置Ｐ（ｋ＋１）が、位置７３と位置７５のいずれであるかを特定できない。そのため、特徴点７２１と特徴点７４１とからなる対応点に対応する被写体の三次元座標が、カメラ位置７３である場合の点７７１と、カメラ位置７５である場合の点７８１のいずれであるかを特定できない。また、特徴点７２２と特徴点７４２とからなる対応点に対応する被写体の三次元座標が、カメラ位置７３である場合の点７７２と、カメラ位置７５である場合の点７８２のいずれであるかを特定できない。
【００４５】
このように、ＳｆＭでは、スケールパラメータβが不定である被写体の三次元座標が取得される。換言すると、実スケールへの変換のためのスケールパラメータβが与えられたならば、被写体の実スケールの三次元座標を取得することができる。
【００４６】
そのため本実施形態では、画像処理部１２は、補正パラメータαを含む距離とスケールパラメータβが不定である三次元座標とが実空間内の同一の位置を示すように、補正パラメータαとスケールパラメータβとを最適化することにより、精度が向上した実スケールの三次元座標、または被写体までの距離を算出する。したがって、画像処理部１２は、撮影時の環境光、被写体の反射特性、および被写体の色の少なくともいずれかの影響に対してロバストに、実スケールの三次元座標、または被写体までの距離を精度良く算出することができる。
【００４７】
図８および図９を参照して、上記動作を実現するための構成を説明する。  
まず、図８は、画像処理部（画像処理装置）１２のシステム構成を例示する。画像処理部１２は、ＣＰＵ３１、ＲＡＭ３２、不揮発性メモリ３３、および通信部３４を備える。また、画像処理部１２は、ＣＰＵ３１、ＲＡＭ３２、不揮発性メモリ３３、および通信部３４を相互に接続するバス３５を有している。
【００４８】
ＣＰＵ３１は、画像処理部１２内の様々なコンポーネントの動作を制御する。ＣＰＵ３１は、単一のプロセッサであってもよいし、複数のプロセッサで構成されていてもよい。ＣＰＵ３１は、不揮発性メモリ３３からＲＡＭ３２にロードされる様々なプログラムを実行する。これらプログラムは、オペレーティングシステム（ＯＳ）や様々なアプリケーションプログラムを含む。アプリケーションプログラムは、画像処理プログラム３２Ａを含む。この画像処理プログラム３２Ａは、被写体を撮像した複数の画像を用いて、撮像時のカメラの位置関係を推定し、被写体の位置を推定するための命令群を含む。また、ＲＡＭ３２は、主記憶装置として用いられる記憶媒体である。不揮発性メモリ３３は、補助記憶装置として用いられる記憶媒体である。
【００４９】
通信部３４は、有線通信または無線通信を実行するように構成されたデバイスである。通信部３４は、信号を送信する送信部と信号を受信する受信部とを含む。通信部３４は、ネットワークを介した外部機器との通信、周辺に存在する外部機器との通信等を実行する。この外部機器には撮像部１１（撮像装置）も含まれ得る。したがって、通信部３４は、撮像部１１から画像を受信してもよい。
【００５０】
図９は、画像処理部１２のＣＰＵ３１によって実行される画像処理プログラム３２Ａの機能構成を例示する。画像処理プログラム３２Ａは、バッファ処理部４１、特徴点検出部４２、対応点検出部４３、三次元座標算出部４４、ぼけ補正量算出部４５、距離算出部４６、補正量算出部４７、および補正部４８を備える。各部の動作は、ＣＰＵ３１が画像処理プログラム３２Ａに含まれる命令群を実行することによって実現され得る。
【００５１】
バッファ処理部４１は、通信部３４を介したデータ伝送により、撮像部１１によって撮像された画像を取得し、取得された画像をフレームバッファ４０に保存する。フレームバッファ４０は、例えば、ＲＡＭ３２内に確保された記憶領域である。バッファ処理部４１は、フレームバッファ４０に少なくとも二つの画像を格納する。この少なくとも二つの画像は、被写体をそれぞれ、少なくとも位置および視点の何れかが異なる条件で撮像することにより生成された、互いに異なる画像である。なお、この少なくとも二つの画像は、被写体に対する撮像時のカメラの位置および／または姿勢がそれぞれ異なる画像であるとも云える。
【００５２】
より具体的には、バッファ処理部４１は、撮像部１１から第１画像４０１を受信し、この第１画像４０１をフレームバッファ４０に格納する。そして、バッファ処理部４１は、撮像部１１から第２画像４０２を受信し、この第２画像４０２をフレームバッファ４０に格納する。第１画像４０１と第２画像４０２とは、撮像部１１を構成する単一の光学系により取得されたものである。
【００５３】
特徴点検出部４２は、フレームバッファ４０に格納された各画像４０１，４０２から特徴点群を検出する。特徴点検出部４２は、画像上の局所的な特徴量を用いて、画像上のエッジやコーナーのような特徴点群を検出する。この特徴量には、ＯＲＢ、ＳＩＦＴ、ＳＵＲＦ、ＫＡＺＥ、ＡＫＡＺＥ等が用いられ得る。
【００５４】
対応点検出部４３は、第１画像４０１上の特徴点群と第２画像４０２上の特徴点群とをマッチングすることにより、これら画像４０１，４０２間で対応する対応点群を検出する。つまり、対応点検出部４３は、第１画像４０１上の第１特徴点に対応する、第２画像４０２上の第２特徴点を検出することにより、これら第１特徴点および第２特徴点からなる対応点を検出する。したがって、検出された対応点は、第１画像４０１上のある位置の画素（第１特徴点）が、第２画像４０２上のある位置の画素（第２特徴点）に対応することを示す。なお、対応点検出部４３は、対応点をサブピクセル単位で検出してもよい。また、マッチングは、各特徴点が有する特徴量に基づき、例えば、総当たり法、高速近似近傍探索法等を用いて行われる。
【００５５】
三次元座標算出部４４は、第１画像４０１と第２画像４０２とを用いて、例えばＳｆＭにより、被写体の相対スケールの三次元座標を算出する。この被写体の相対スケールの三次元座標は、例えば、被写体に関するスケールパラメータβが不定である三次元座標である。具体的には、三次元座標算出部４４は、第１画像４０１と第２画像４０２との対応点群に基づいて、第１画像４０１の撮影時の撮像部１１（カメラ）と第２画像４０２の撮影時の撮像部１１との相対的な位置関係と、スケールパラメータβが不定である被写体の三次元情報とを算出する。
【００５６】
二つの画像４０１，４０２をそれぞれ撮像した時点の撮像部１１の相対的な位置関係は、例えば、二つのカメラ座標系の相対的な位置関係で表される。そして、第１画像４０１を撮影した時点のカメラに対して設定される第１カメラ座標系と、第２画像４０２を撮影した時点のカメラに対して設定される第２カメラ座標系との相対的な位置関係は、例えば回転行列Ｒと平行移動ベクトルｔである一つ以上のパラメータで表される。第１カメラ座標系は、第１画像４０１を撮影した時点のカメラの位置を原点とし、当該カメラの姿勢を基準として設定される。第２カメラ座標系は、第２画像４０２を撮影した時点のカメラの位置を原点とし、当該カメラの姿勢を基準として設定される。また、平行移動ベクトルｔのスケールは不定（未知）である。
【００５７】
三次元座標算出部４４は、回転行列Ｒと平行移動ベクトルｔとを、対応点群の幾何学的関係であるエピポーラ拘束条件に基づき算出する。この算出には、例えば、８点アルゴリズムが用いられる。第１カメラ座標系と第２カメラ座標系との相対的な位置関係（例えば、回転行列Ｒと平行移動ベクトルｔ）が算出されたならば、三次元座標算出部４４は、ステレオビジョン（三角測量）の原理に基づいて、対応点毎にスケールパラメータβが未知である三次元座標を算出することができる。この三次元座標は、スケールパラメータβが与えられたならば、絶対スケール（実スケール）の三次元座標に補正することができる。
【００５８】
また、ぼけ補正量算出部４５および距離算出部４６は、画像上のぼけから、被写体までの距離を算出する。  
まず、ぼけ補正量算出部４５は、第１画像４０１に含まれる第１波長成分画像のぼけを、第１画像４０１に含まれる第２波長成分画像のぼけに補正するための第１ぼけ補正量を算出する。また、ぼけ補正量算出部４５は、第２画像４０２に含まれる第３波長成分画像のぼけを、第２画像に含まれる第４波長成分画像のぼけに補正するための第２ぼけ補正量を算出する。
【００５９】
第１波長成分画像のぼけ関数と第２波長成分のぼけ関数の少なくとも一方は非点対称である。第３波長成分画像のぼけ関数と第４波長成分画像のぼけ関数の少なくとも一方は非点対称である。第１波長成分画像と第３波長成分画像とは、波長帯域が同じであるか、あるいは一部重複しており、例えば、Ｒ画像またはＢ画像である。また、第２波長成分画像と第４波長成分画像とは、波長帯域が同じであるか、あるいは一部重複しており、例えば、Ｇ画像である。
【００６０】
ぼけ補正量算出部４５は、例えば、第１画像４０１と第２画像４０２との対応点毎にぼけ補正量を算出する。画像上の位置（ｘ，ｙ）におけるぼけ補正量は、下記の関数として表現される。  
ｒ（ｘ，ｙ）  
ただし、画像上の位置（ｘ，ｙ）は、画像中心を基準とした物理距離を示す。この関数は、画像上の位置（ｘ，ｙ）を入力として、画像上の位置（ｘ，ｙ）におけるぼけ補正量が決定されることを示す。
【００６１】
距離算出部４６は、環境光、被写体の反射特性、および被写体の色の少なくともいずれかによる影響を補正するための補正パラメータαを用いて、第１画像４０１における被写体までの第１距離と、第２画像４０２における被写体までの第２距離の少なくとも一方を算出する。具体的には、距離算出部４６は、第１ぼけ補正量に基づいて第１カメラ座標系における被写体までの第１距離を算出する。また、距離算出部４６は、第２ぼけ補正量に基づいて第２カメラ座標系における被写体までの第２距離を算出する。算出された距離は、環境光、被写体の反射特性、および被写体の色の少なくともいずれかの影響を補正するための補正パラメータαを含む。環境光や被写体の反射特性・色の影響は、被写体の三次元位置毎に異なるため、補正パラメータαは画像上の位置（ｘ，ｙ）毎に異なり得る。したがって、画像上の位置（ｘ，ｙ）における被写体までの距離は、下記の関数として表現される。  
Ｚ（ｒ（ｘ，ｙ），α（ｘ，ｙ））  
この関数は、画像上の位置（ｘ，ｙ）におけるぼけ補正量ｒ（ｘ，ｙ）と、補正パラメータα（ｘ，ｙ）とを入力として、画像上の位置（ｘ，ｙ）における被写体までの距離が決定されることを示す。
【００６２】
次いで、補正量算出部４７は、距離算出部４６により算出された第１距離と第２距離の少なくとも一方と、三次元座標算出部４４により算出された相対スケールの三次元座標（スケールパラメータβが不定である三次元座標）とに基づき、補正パラメータαとスケールパラメータβとを算出する。補正量算出部４７は、スケール情報が未知の三次元座標と、第１距離および第２距離の少なくとも一方とが、実空間内の同一の位置を示すように最適化することで、補正パラメータαとスケールパラメータβとを算出する。以下、補正パラメータαとスケールパラメータβの算出方法について説明する。
【００６３】
画像上の位置（ｘ，ｙ）に対応する三次元座標は、距離算出部４６により算出される距離に基づき以下のように表現される。
【００６４】
【数１】
2019049457.tif 000003
ただし、ｚは、レンズ２２とイメージセンサ２３との間の距離であり、一般的には、カメラキャリブレーションにより予め定められる。つまり、式（１）は、画像上の位置（ｘ，ｙ）と、その位置における距離情報（ぼけ補正量ｒ（ｘ，ｙ）および補正パラメータα（ｘ，ｙ））が与えられれば、画像上の位置（ｘ，ｙ）に対応する三次元座標が算出されることを示す。
【００６５】
図１０は、ある対応点の第１画像４０１上の位置８２１が（ｘ１，ｙ１）であり、第２画像４０２上の位置８４１が（ｘ２，ｙ２）である場合を示す。この対応点に対応する物点８５１の三次元座標は、第１画像４０１を撮像した時点のカメラ位置８１を原点とする第１カメラ座標系と、第２画像４０２を撮像した時点のカメラ位置８３を原点とする第２カメラ座標系との二通りの座標系を使って表現可能である。第１カメラ座標系における第１距離に基づく物点８５１の第１三次元座標と、第２カメラ座標系におけると第２距離に基づく物点８５１の第２三次元座標は、以下の関数でそれぞれ表現される。  
【００６６】
【数２】
2019049457.tif 000004
一方、三次元座標算出部４４によって算出される、スケール情報が未知である三次元座標に基づく場合、第１カメラ座標系における物点８５１の第３三次元座標と、第２カメラ座標系における物点８５１の第４三次元座標は、以下の関数でそれぞれ表現される。  
【００６７】
【数３】
2019049457.tif 000005
そして、第１カメラ座標系と第２カメラ座標系の各々において、距離算出部４６により算出される距離を用いた物点８５１の三次元座標と、三次元座標算出部４４により算出されるスケールが不定の三次元座標を用いた物点８５１の三次元座標とが一致するための条件は、以下の二つの関係式（式（２）および式（３））で表現される。  
【００６８】
【数４】
2019049457.tif 000006
補正量算出部４７は、式（２）と式（３）とが同時に成立するように補正パラメータαとスケールパラメータβとを算出する。例えば、式（２）と式（３）を連立して解くことで、対応点毎に補正パラメータαとスケールパラメータβとが算出される。二つの未知数α，βに対して二つの関係式が成り立つので、補正量算出部４７は、補正パラメータαとスケールパラメータβとを物点（対応点）毎に最適化可能である。
【００６９】
補正パラメータαは、ある対応点を構成する特徴点（画素）間では共通の値を取る。つまり、補正パラメータαは、ある対応点に関して、画像間で共通の値を取る。しかし、補正パラメータαは、対応点（物点）毎に異なる値を取り得る。また、スケールパラメータβは、対応点によらず共通の値になることが自然である。
【００７０】
そのため、補正量算出部４７は、スケールパラメータβが対応点によらず共通の値となる制約条件の下、式（２）と式（３）との関係が対応点毎に成立するように補正パラメータαとスケールパラメータβとを最適化してもよい。例えば、式（２）の両辺の誤差と、式（３）の両辺の誤差からなる誤差関数を定義し、対応点毎の誤差関数の和であるコスト関数（二乗誤差最小基準のコスト関数）を定義する。補正量算出部４７は、スケールパラメータβが共通の値となることを制約条件に、コスト関数が最小となる補正パラメータαとスケールパラメータβとを算出する。この算出には、最適化問題の解を探索するアルゴリズムの一つである勾配法等が使用される。
【００７１】
上記では、補正パラメータαを対応点毎に最適化する場合を説明したが、撮像時のノイズなどの外乱影響を考慮して、補正パラメータαが領域毎に共通の値を取るように最適化することもできる。例えば、対応点周辺の局所領域や画像上で類似する色を持つ領域（例えば、閾値範囲内の画素値を持つ領域）では、環境光や被写体の反射特性の影響がほぼ同じであると推定されるため、補正パラメータαも同一あるいは類似の値になると推定される。このような領域では、補正量算出部４７は、補正パラメータαが領域内で共通の値となり、且つスケールパラメータβが領域によらず共通の値となる制約条件の下、式（２）と式（３）の関係が領域毎に成立するように補正パラメータαとスケールパラメータβとを最適化してもよい。あるいは、補正量算出部４７は、この制約条件の下、式（２）または式（３）の関係が領域毎に成立するように補正パラメータαとスケールパラメータβとを最適化してもよい。
【００７２】
なお、被写体の反射特性が一様である場合、環境光の影響のみを補正すればよいので、補正パラメータαの値は対応点によらず共通の値になるのが自然である。この場合、補正量算出部４７は、第１画像４０１上の複数の画素と第２画像４０２上の複数の画素とに対して共通である補正パラメータαを算出する。
【００７３】
このように、補正パラメータαは、対応点毎に、領域毎に、あるいは画像上の複数の画素に対して、共通であるように最適化することができる。
【００７４】
補正部４８は、第１距離と第２距離の少なくとも一方と、スケールが不定である三次元座標とに基づいて、被写体の実スケールの三次元座標（三次元情報）を算出する。この算出には、補正量算出部４７により算出された補正パラメータαとスケールパラメータβとが用いられ得る。補正部４８は、被写体の実スケールの三次元座標を、スケールが不定である三次元座標とスケールパラメータβとに基づいて算出してもよいし、補正パラメータαと、第１ぼけ補正量または第２ぼけ補正量とに基づいて算出してもよい。三次元座標は、第１カメラ座標系と第２カメラ座標系の二通りの表現が可能なので、補正部４８は、両方を算出してもよいし、必要な方だけを算出してもよい。
【００７５】
なお、補正部４８は、三次元座標算出部４４により算出された、スケールパラメータβが不定である三次元座標の精度が低い場合、例えば、二つの画像４０１，４０２間での被写体の動きが小さい場合、距離算出部４６により算出された第１距離または第２距離に基づき、被写体の三次元座標を算出してもよい。
【００７６】
補正部４８は、実スケールの三次元座標を含む三次元情報（距離画像でもよい）を出力する。出力される三次元情報は、測距装置１を利用するアプリケーションに応じた形態に適宜変更可能である。例えば、被写体の三次元形状のみを知りたい場合、第１カメラ座標系における三次元座標が出力されてもよいし、第２カメラ座標系における三次元座標が出力されてもよい。また例えば、自動車やローバーなどの移動体に測距装置１を搭載し、リアルタイムで被写体までの距離情報を知りたい場合、最新のタイムスタンプを有する画像に対応するカメラ座標系における三次元座標が出力されることが望ましい。
【００７７】
さらに、カメラの位置情報も出力したい場合、補正部４８は、回転行列Ｒと平行移動ベクトルｔとを含む情報も出力してもよい。また、補正部４８は、回転行列Ｒと平行移動ベクトルｔとを用いて、ある座標系における測距装置１（撮像部１１）の自己位置および自己姿勢を算出し、それらを含む情報を出力してもよい。自己位置は、例えば、任意のローカル座標系における三次元座標によって示される。自己位置は、世界座標系の三次元座標や、緯度経度によって表されてもよい。自己姿勢は、例えば、ヨー、ロール、ピッチで示されてもよいし、クオータニオンによって示されてもよい。
【００７８】
次いで、図１１のフローチャートを参照して、画像処理部１２によって実行される処理の手順の例を説明する。この処理は、前述の通り、画像処理部１２のＣＰＵ３１が画像処理プログラム３２Ａに含まれる命令群を実行することによって実現され得る。
【００７９】
まず、バッファ処理部４１は、撮像部１１によって撮像された複数の画像を取得し、フレームバッファ４０に格納する（ステップＳ１１）。ここでは、フレームバッファ４０に第１画像４０１と第２画像４０２とが格納される場合を例示する。各画像４０１，４０２は二つ以上の波長帯域（色成分）に対応する二つ以上の画像成分を含み、例えば、Ｒ画像とＧ画像とＢ画像とを含む。
【００８０】
特徴点検出部４２は、フレームバッファ４０に格納された各画像４０１，４０２から特徴点群を検出する（ステップＳ１２）。対応点検出部４３は、第１画像４０１から検出された特徴点群と、第２画像４０２から検出された特徴点群とをマッチングすることにより、画像間の対応点群を検出する（ステップＳ１３）。
【００８１】
三次元座標算出部４４は、この画像間の対応点群を用いて、スケールが不定である被写体２１０の三次元情報を推定する（ステップＳ１４）。三次元座標算出部４４は、対応点群を用いてＳｆＭを行うことにより、撮像部１１の移動（カメラ運動）を推定する。より具体的には、三次元座標算出部４４は、第１画像４０１が撮像された時点の第１位置および姿勢（第１視点）から、第２画像４０２が撮像された時点の第２位置および姿勢（第２視点）への撮像部１１の移動を推定し、推定された移動に基づいて、第１位置と第２位置と各位置における姿勢とを相対的に推定する。そして、三次元座標算出部４４は、第１位置と第２位置と各位置における姿勢とを用いて、各対応点に対応する被写体２１０の三次元座標を推定する。
【００８２】
また、ぼけ補正量算出部４５は、第１画像４０１と第２画像４０２の少なくとも一方を用いて、被写体のぼけ補正情報を算出する（ステップＳ１５）。ぼけ補正情報は、第１画像４０１に関する第１ぼけ補正量と、第２画像４０２に関する第２ぼけ補正量とを含む。
【００８３】
距離算出部４６は、ぼけ補正情報に基づいて、被写体までの距離情報を算出する（ステップＳ１６）。具体的には、距離算出部４６は、第１ぼけ補正量に基づいて、第１カメラ座標系における被写体までの第１距離情報を算出し、第２ぼけ補正量に基づいて、第２カメラ座標系における被写体までの第２距離情報を算出する。前述の通り、距離情報は、環境光、被写体の反射特性、および被写体の色の少なくともいずれかによる影響を補正するための補正パラメータαを含んでいる。
【００８４】
補正量算出部４７は、ステップＳ１４の手順で推定されたスケールが未知である三次元情報と、ステップＳ１６の手順で算出された第１距離情報および／または第２距離情報とを用いて、補正パラメータαとスケールパラメータβとを算出する（ステップＳ１７）。補正量算出部４７は、スケールが未知である三次元情報と距離情報（第１距離情報、第２距離情報）とが実空間内の同一の位置を示すように最適化することにより、補正パラメータαとスケールパラメータβとを算出する。
【００８５】
補正部４８は、スケールパラメータβを用いて、スケールが未知である三次元情報を補正することにより、実スケールの三次元情報を算出する（ステップＳ１８）。補正部４８は、補正パラメータαと、第１ぼけ補正量または第２ぼけ補正量とを用いて、実スケールの三次元情報を算出してもよい。あるいは、実スケールの三次元情報の代わりに、実スケールの距離画像が算出されてもよい。そして、補正部４８は、算出された実スケールの三次元情報（または距離画像）を出力する（ステップＳ１９）。
【００８６】
以上により、画像処理部１２は、被写体２１０の実スケールの三次元情報を精度良く算出することができる。なお、ステップＳ１４の手順と、ステップＳ１５およびステップＳ１６の手順とは、並列に実行され得る。
【００８７】
以上説明したように、本実施形態によれば、画像から、被写体の位置を精度良く取得することができる。フレームバッファ４０は、被写体を撮影した第１画像４０１と、この被写体を撮影した第１画像４０１とは異なる第２画像４０２とを保存する。距離算出部４６は、環境光、被写体の反射特性、および被写体の色の少なくともいずれかによる影響を補正するための補正パラメータを用いて、第１画像４０１における被写体までの第１距離と、第２画像４０２における被写体までの第２距離の少なくとも一方を算出する。三次元座標算出部４４は、第１画像４０１と第２画像４０２とを用いて、被写体の相対スケールの三次元座標を算出する。補正量算出部４７および補正部４８は、第１距離と第２距離の少なくとも一方と相対スケールの三次元座標とに基づいて、被写体の実スケールの三次元座標を算出する。これにより、第１画像４０１と第２画像４０２とから、被写体の位置を示す三次元座標を精度良く取得することができる。
【００８８】
（応用例）  
以下、前述のような構成を有する測距装置１が適用される応用例についていくつか説明する。
【００８９】
図１２は、測距装置１を含む移動体９の機能構成例を示す。移動体９は、例えば、自動運転機能を有する自動車、無人航空機、自律型の移動ロボット等として実現され得る。無人航空機は、人が乗ることができない飛行機、回転翼航空機、滑空機、飛行船であって、遠隔操作または自動操縦により飛行させることができるものであり、例えば、ドローン（マルチコプター）、ラジコン機、農薬散布用ヘリコプター等を含む。自律型の移動ロボットは、無人搬送車（Ａｕｔｏｍａｔｅｄ  Ｇｕｉｄｅｄ  Ｖｅｈｉｃｌｅ：ＡＧＶ）のような移動ロボット、床を掃除するための掃除ロボット、来場者に各種案内を行うコミュニケーションロボット等を含む。移動体９にはさらに、ロボット本体が移動するものだけでなく、ロボットアームのような、ロボットの一部分の移動・回転用の駆動機構を有する産業用ロボットも含まれ得る。
【００９０】
図１２に示すように、移動体９は、例えば、測距装置１と制御信号生成部１４と駆動機構１５とを有する。測距装置１の内、少なくとも撮像部１１は、例えば、移動体９またはその一部分の進行方向の被写体を撮像するように設置される。
【００９１】
図１３に示すように、移動体９が自動車９Ａである場合、撮像部１１は、前方を撮像するいわゆるフロントカメラとして設置され得るほか、バック時に後方を撮像するいわゆるリアカメラとしても設置され得る。もちろん、これら両方が設置されてもよい。また、撮像部１１は、いわゆるドライブレコーダーとしての機能を兼ねて設置されるものであってもよい。すなわち、撮像部１１は録画機器であってもよい。
【００９２】
次いで、図１４は、移動体９がドローン９Ｂである場合の例を示す。ドローン９Ｂは、駆動機構１５に相当するドローン本体９１と四つのプロペラ部９２１，９２２，９２３，９２４とを備える。各プロペラ部９２１，９２２，９２３，９２４はプロペラとモータとを有する。モータの駆動がプロペラに伝達されることによって、プロペラが回転し、その回転による揚力によってドローン９Ｂが浮上する。ドローン本体９１の、例えば下部には、撮像部１１（あるいは、撮像部１１を含む測距装置１）が搭載されている。
【００９３】
また、図１５は、移動体９が自律型の移動ロボット９Ｃである場合の例を示す。移動ロボット９Ｃの下部には、駆動機構１５に相当する、モータや車輪等を含む動力部９５が設けられている。動力部９５は、モータの回転数や車輪の向きを制御する。移動ロボット９Ｃは、モータの駆動が伝達されることによって、路面または床面に接地する車輪が回転し、当該車輪の向きが制御されることにより任意の方向に移動することができる。撮像部１１は、例えば、人型の移動ロボット９Ｃの頭部に、前方を撮像するように設置され得る。なお、撮像部１１は、後方や左右を撮像するように設置されてもよいし、複数の方位を撮像するように複数設置されてもよい。また、センサ等を搭載するためのスペースが少ない小型ロボットに少なくとも撮像部１１を設けて、自己位置、姿勢および被写体の位置を推定することにより、デッドレコニングを行うこともできる。
【００９４】
なお、移動体９の一部分の移動および回転を制御する場合、図１６に示すように、撮像部１１は、例えば、ロボットアーム９Ｄで把持される物体を撮像するように、ロボットアームの先端等に設置されてもよい。画像処理部１２は、把持しようとする物体の三次元形状やその物体が置かれている位置を推定する。これにより、物体の正確な把持動作を行うことができる。
【００９５】
制御信号生成部１４は、測距装置１から出力される自己位置、姿勢および被写体の位置に基づいて、駆動機構１５を制御するための制御信号を出力する。駆動機構１５は、制御信号により、移動体９または移動体の一部分を駆動する。駆動機構１５は、例えば、移動体９またはその一部分の移動、回転、加速、減速、推力（揚力）の加減、進行方向の転換、通常運転モードと自動運転モード（衝突回避モード）の切り替え、およびエアバック等の安全装置の作動の内の少なくとも一つを行う。駆動機構１５は、例えば、自己位置から被写体までの距離がしきい値未満である場合、移動、回転、加速、推力（揚力）の加減、物体に近寄る方向への方向転換、および自動運転モード（衝突回避モード）から通常運転モードへの切り替えの内の少なくとも一つを行ってもよい。
【００９６】
自動車９Ａの駆動機構１５は、例えばタイヤである。ドローン９Ｂの駆動機構１５は、例えばプロペラである。移動ロボット９Ｃの駆動機構１５は、例えば脚部である。ロボットアーム９Ｄの駆動機構１５は、例えば撮像部１１が設けられた先端を支持する支持部である。
【００９７】
移動体９は、さらに画像処理部１２からの自己位置、自己姿勢、および被写体の位置に関する情報が入力されるスピーカやディスプレイを備えていてもよい。スピーカやディスプレイは、自己位置、自己姿勢、および被写体の位置に関する音声または画像を出力する。スピーカやディスプレイは、測距装置１と有線または無線で接続されている。さらに、移動体９は、画像処理部１２からの自己位置、自己姿勢、および被写体の位置に関する情報が入力される発光部を有していていもよい。発光部は、例えば、画像処理部１２からの自己位置、自己姿勢、および被写体の位置に関する情報に応じて点灯したり消灯したりする。
【００９８】
なお、測距装置１の画像処理部１２は、推定された撮像部１１の位置と、測距装置１以外によって作成され測距装置１に入力される地図（例えばカーナビゲーションのための地図）とを用いて、この地図上での撮像部１１の位置を推定してもよい。移動体９は、ＧＰＳ信号を受信し、ＧＰＳ座標系における位置を検出するためのＧＰＳレシーバ（図示せず）を備えていてもよい。また、カーナビゲーションのための地図は、例えば、自動車に設けられるカーナビゲーションシステムで用いられる地図であって、ＧＰＳ座標系に基づいた、道路や、橋、建物等のオブジェクトを示すデータが含まれている。ＧＰＳレシーバを用いて取得される位置には、ＧＰＳ信号の取得状況等によって誤差（例えば、数メートルの誤差）が含まれている場合がある。そのため、ＧＰＳレシーバを用いて取得される位置だけでなく測距装置１によって推定された撮像部１１の位置も用いることにより、地図上でのより正確な自己位置を推定することができる。さらに、ＧＰＳ信号が受信できずにＧＰＳレシーバを用いて位置が取得できない場合にも、一旦、地図上での自己位置が取得できていれば、画像処理部１２は、測距装置１によって連続して推定される撮像部１１の位置を用いて、地図上での自己位置を推定し続けることができるので、移動体９を目的位置まで移動等させることができる。
【００９９】
また、画像処理部１２は、推定された特徴点の三次元座標（すなわち、画像上の画素に撮像された被写体の三次元座標）を用いて、カーナビゲーションのための地図を補完してもよい。画像処理部１２は、例えば、自動車の走行中に連続して得られる撮像画像から、特徴点の三次元座標を繰り返し推定することができる。これにより、カーナビゲーションのための地図に含まれていないオブジェクトの三次元座標を当該地図に追加することができ、より詳細な地図を得ることができる。制御信号生成部１４および駆動機構１５は、補完された地図上での撮像部１１の位置に基づいて、例えば、衝突を回避するように移動体９（例えば、自動車）を移動させることができる。
【０１００】
別の例として、例えば、移動体９がドローンである場合、上空から、地図（物体の三次元形状）の作成、ビルや地形の構造調査、ひび割れや電線破断等の点検等が行われる際に、撮像部１１は対象を撮影した画像を取得し、自己位置と被写体との距離が閾値以上であるか否かを判定する。制御信号生成部１４は、この判定結果に基づいて、点検対象との距離が一定になるようにドローンの推力を制御するための制御信号を生成する。ここで、推力には揚力も含まれる。駆動機構１５が、この制御信号に基づいてドローンを動作させることにより、ドローンを点検対象に並行して飛行させることができる。移動体９が監視用のドローンである場合、監視対象の物体との距離を一定に保つようにドローンの推力を制御するための制御信号を生成してもよい。
【０１０１】
また、ドローンの飛行時に、撮像部１１は地面方向を撮影した画像を取得し、自己位置と地面との距離が閾値以上であるか否かを判定する。制御信号生成部１４は、この判定結果に基づいて、地面からの高さが指定された高さになるようにドローンの推力を制御するための制御信号を生成する。駆動機構１５が、この制御信号に基づいてドローンを動作させることにより、ドローンを指定された高さで飛行させることができる。農薬散布用ドローンであれば、ドローンの地面からの高さを一定に保つことで、農薬を均等に散布しやすくなる。
【０１０２】
また、移動体９がドローンまたは自動車である場合、ドローンの連携飛行や自動車の連隊走行時に、撮像部１１は、周囲のドローンや前方の自動車を撮影した画像を取得し、自己位置からそのドローンや自動車までの距離が閾値以上であるか否かを判定する。制御信号生成部１４は、この判定結果に基づいて、その周囲のドローンや前方の自動車との距離が一定になるように、ドローンの推力や自動車の速度を制御するための制御信号を生成する。駆動機構１５が、この制御信号に基づいてドローンや自動車を動作させることにより、ドローンの連携飛行や自動車の連隊走行を容易に行うことができる。移動体９が自動車である場合、ドライバーが閾値を設定できるように、ユーザインタフェースを介してドライバーの指示を受理することで、閾値を変化させてもよい。これにより、ドライバーが好む車間距離で自動車を走行させられる。あるいは、前方の自動車との安全な車間距離を保つために、自動車の速度に応じて閾値を変化させてもよい。安全な車間距離は、自動車の速度によって異なる。そこで、自動車の速度が速いほど閾値を長く設定することができる。また、移動体９が自動車である場合に、進行方向の所定の距離を閾値に設定しておき、その閾値の手前に物体が現れた場合にブレーキが自動で作動したり、エアバック等の安全装置が自動で作動する制御信号生成部１４を構成するとよい。この場合、自動ブレーキやエアバック等の安全装置が駆動機構１５に設けられる。
【０１０３】
以上説明したように、本実施形態によれば、実スケールに基づく被写体の位置を精度良く取得することができ、この実スケールに基づく被写体の位置を用いることにより、例えば、自動車、ドローン、ロボット等の各種の移動体９の動作を容易に制御することができる。
【０１０４】
また、本実施形態に記載された様々な機能の各々は、回路（処理回路）によって実現されてもよい。処理回路の例には、中央処理装置（ＣＰＵ）のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム（命令群）を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたＣＰＵ以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【０１０５】
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１０６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０７】
１…測距装置、１１…撮像部、１２…画像処理部、２１…フィルタ、２２…レンズ、２３…イメージセンサ、３１…ＣＰＵ、３２…ＲＡＭ、３２Ａ…画像処理プログラム、３３…不揮発性メモリ、３４…通信部、３５…バス、４０…フレームバッファ、４１…バッファ処理部、４２…特徴点検出部、４３…対応点検出部、４４…三次元座標算出部、４５…ぼけ補正量算出部、４６…距離算出部、４７…補正量算出部、４８…補正部。
【図１】
2019049457.tif 000007
【図２】
2019049457.tif 000008
【図３】
2019049457.tif 000009
【図４】
2019049457.tif 000010
【図５】
2019049457.tif 000011
【図６】
2019049457.tif 000012
【図７】
2019049457.tif 000013
【図８】
2019049457.tif 000014
【図９】
2019049457.tif 000015
【図１０】
2019049457.tif 000016
【図１１】
2019049457.tif 000017
【図１２】
2019049457.tif 000018
【図１３】
2019049457.tif 000019
【図１４】
2019049457.tif 000020
【図１５】
2019049457.tif 000021
【図１６】
2019049457.tif 000022