(58)【調査した分野】(Int.Cl.,DB名)
前記結像光学系は、第1波長帯域の光を透過し、第2波長帯域の光を遮蔽する第1フィルタ領域と、前記第1波長帯域の光を遮蔽し、前記第2波長帯域の光を透過する第2フィルタ領域とを有するフィルタを被写体光の光路上に備え、
前記第1画像は、前記第1波長帯域の光を受光して被写体像を結像する第1イメージセンサによって撮像され、
前記第2画像は、前記第1フィルタ領域および前記第2フィルタ領域を透過する第3波長帯域の光を受光して被写体像を結像する第2イメージセンサまたは前記第2波長帯域の光を受光して被写体像を結像する第3イメージセンサによって撮像される、
請求項1に記載の画像処理装置。
前記距離取得部は、前記第1画像および前記第2画像から局所領域を抽出し、前記局所領域の前記第1画像および前記第2画像の情報を前記統計モデルに入力して、前記局所領域内の距離情報を取得する請求項1乃至3のいずれか1項に記載の画像処理装置。
前記統計モデルは、前記第1画像および前記第2画像の少なくとも1画素以上について前記被写体までの距離を推定して前記距離情報を出力し、かつ、前記推定した距離の不確実性情報を出力する請求項1乃至7のいずれか1項に記載の画像処理装置。
前記距離取得部は、閾値以上の不確実性を示す前記不確実性情報とともに前記統計モデルから出力された距離情報を、前記閾値未満の不確実性を示す前記不確実性情報とともに前記統計モデルから出力された前記第1画像上および前記第2画像上における周辺の距離情報を用いて補正する請求項8に記載の画像処理装置。
【発明を実施するための形態】
【0008】
以下、実施の形態について図面を参照して説明する。
まず、
図1を参照して、一実施形態に係る画像処理装置を適用する測距装置の構成を説明する。この測距装置1は、画像を撮像し、撮像された画像を用いて撮像地点から被写体までの距離(奥行きとも称する)を推定する。
【0009】
この測距装置1は、画像を撮像する撮像部11と、撮像された画像を処理する画像処理部12とを備える。測距装置1は、撮像部11と画像処理部12とを備える一つの装置として実現されてもよいし、撮像部11に相当する撮像装置と、画像処理部12に相当する画像処理装置とのような複数の装置で構成されるシステムであってもよい。
【0010】
図1に示すように、撮像部11は、フィルタ21とレンズ22とイメージセンサ23とを備える単眼カメラにより構成される。フィルタ21は、互いに異なる波長帯域(色成分)の光を透過する複数のフィルタ領域を含む。フィルタ21は、例えば、二色のカラーフィルタ領域である第1フィルタ領域211と第2フィルタ領域212とで構成される。
【0011】
イメージセンサ23は、フィルタ21とレンズ22とを透過した光を受光し、受光した光を電気信号に変換(光電変換)する。イメージセンサ23には、例えばCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)が用いられる。イメージセンサ23は、少なくとも二種類の撮像素子を含み、例えば、赤色(R)の光を受光する撮像素子を含む第1センサ231と、緑色(G)の光を受光する撮像素子を含む第2センサ232と、青色(B)の光を受光する撮像素子を含む第3センサ233とを備える。各撮像素子は、対応する波長帯域の光を受光し、受光した光を電気信号に変換する。この電気信号をA/D変換することによりカラー画像を生成することができる。以下では、画像のR成分、G成分、B成分である色成分画像(波長成分画像とも称する)を、それぞれR画像、G画像、B画像とも称する。なお、赤色、緑色、青色の撮像素子毎の電気信号を用いて、R画像、G画像、B画像をそれぞれ生成することもできる。つまり、撮像部11は、一度の撮像(ワンショット)で、カラー画像、R画像、G画像、およびB画像の少なくとも一つを生成することができる。
【0012】
次いで、
図2は、フィルタ21の構成の例を示す。フィルタ21は、互いに異なる光の波長帯域(色成分)を透過する複数のフィルタ領域を有し、2以上のフィルタ領域は、撮像部11の光学中心213に対して非点対称な形状である。フィルタ21は、例えば、二色のカラーフィルタ領域である第1フィルタ領域211と第2フィルタ領域212とで構成される。フィルタ21の中心は、撮像部11(レンズ22)の光学中心213と一致している。第1フィルタ領域211および第2フィルタ領域212はそれぞれ、光学中心213に対して非点対称である形状を有している。また、例えば、二つのフィルタ領域211,212は重複せず、且つ二つのフィルタ領域211,212によってフィルタ21の全領域を構成している。
図2に示す例では、第1フィルタ領域211および第2フィルタ領域212はそれぞれ、円形のフィルタ21が光学中心213を通る線分で分割された半円の形状を有している。第1フィルタ領域211は、例えばイエロー(Y)のフィルタ領域であり、第2フィルタ領域212は、例えばシアン(C)のフィルタ領域である。なお、第1フィルタ領域211がマゼンタ(M)のフィルタ領域であって、第2フィルタ領域212がイエロー(Y)のフィルタ領域であってもよい。さらに、第1フィルタ領域211がシアン(C)のフィルタ領域であって、第2フィルタ領域212がマゼンタ(M)のフィルタ領域であってもよい。
【0013】
各カラーフィルタが透過する波長帯域は異なる。一つのフィルタ領域が透過する光の波長帯域の一部と、別の一つのカラーフィルタ領域が透過する光の波長帯域の一部は、例えば重複する。一つのカラーフィルタ領域が透過する光の波長帯域は、例えば別の一つのカラーフィルタ領域が透過する光の波長帯域を含んでもよい。
【0014】
なお、第1フィルタ領域211と第2フィルタ領域212とは、任意の波長帯域の透過率を変更するフィルタ、任意方向の偏光光を通過させる偏光フィルタ、または任意の波長帯域の集光パワーを変更するマイクロレンズであってもよい。例えば、任意の波長帯域の透過率を変更するフィルタは、原色フィルタ(RGB)、補色フィルタ(CMY)、色補正フィルタ(CC−RGB/CMY)、赤外線・紫外線カットフィルタ、NDフィルタ、または遮蔽板であってもよい。第1フィルタ領域211や第2フィルタ領域212がマイクロレンズである場合は、レンズ22により光線の集光の分布に偏りが生じることでぼけの形状が変化する。
【0015】
以下では、説明を分かりやすくするために、
図2に示すフィルタ21において、第1フィルタ領域211がイエロー(Y)のフィルタ領域であり、第2フィルタ領域212がシアン(C)のフィルタ領域である場合を主に例示する。
たとえば
図2に示したフィルタ21がカメラの開口部に配置されることにより、開口部が二色で二分割された構造開口であるカラー開口が構成される。このカラー開口を透過する光線に基づいて、イメージセンサ23は画像を生成する。イメージセンサ23に入射する光の光路上において、フィルタ21とイメージセンサ23との間にレンズ22が配置されてもよい。イメージセンサ23に入射する光の光路上において、レンズ22とイメージセンサ23との間にフィルタ21が配置されてもよい。レンズ22が複数設けられる場合、フィルタ21は、2つのレンズ22の間に配置されてもよい。
【0016】
第2センサ232に対応する波長帯域の光は、イエローの第1フィルタ領域211とシアンの第2フィルタ領域212の両方を透過する。第1センサ231に対応する波長帯域の光は、イエローの第1フィルタ領域211を透過し、シアンの第2フィルタ領域212を透過しない。第3センサ233に対応する波長帯域の光は、シアンの第2フィルタ領域212を透過し、イエローの第1フィルタ領域211を透過しない。
【0017】
なお、ある波長帯域の光がフィルタまたはフィルタ領域を透過するとは、フィルタまたはフィルタ領域が高い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰(すなわち、光量の低下)が極めて小さいことを意味する。また、ある波長帯域の光がフィルタまたはフィルタ領域を透過しないとは、光がフィルタまたはフィルタ領域に遮蔽されることであり、たとえば、フィルタまたはフィルタ領域が低い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰が極めて大きいことを意味する。たとえばフィルタまたはフィルタ領域は、ある波長帯の光を吸収することにより光を減衰させる。
【0018】
図3は、第1フィルタ領域211および第2フィルタ領域212の透過率特性の例を示す。なお、可視光の波長帯域のうち700nmより長い波長の光に対する透過率は図示を省略してあるが、その透過率は700nmの場合に近いものである。
図3に示すイエローの第1フィルタ領域211の透過率特性215では、波長帯域が620nmから750nm程度のR画像に対応する光と、波長帯域が495nmから570nm程度のG画像に対応する光とが高い透過率で透過され、波長帯域が450nmから495nm程度のB画像に対応する光がほとんど透過されていない。また、シアンの第2フィルタ領域212の透過率特性216では、B画像およびG画像に対応する波長帯域の光が高い透過率で透過され、R画像に対応する波長帯域の光がほとんど透過されていない。
【0019】
したがって、R画像(第1センサ231)に対応する波長帯域の光はイエローの第1フィルタ領域211のみを透過し、B画像(第3センサ233)に対応する波長帯域の光はシアンの第2フィルタ領域212のみを透過する。G画像(第2センサ232)に対応する波長帯域の光は、第1フィルタ領域211と第2フィルタ領域212を透過する。
【0020】
このようなR画像、B画像および画像上のぼけの形状は被写体までの距離dに応じて、より詳細には、距離dと合焦距離dfとの差分に応じて変化する。合焦距離dfは、撮像位置から、画像上にぼけが発生しない(すなわち、ピントが合う)合焦位置までの距離である。また、各フィルタ領域211,212が光学中心213に対して非点対称な形状であるので、R画像上およびB画像上のぼけの形状は、被写体が合焦距離dfよりも手前にあるか、それとも奥にあるかによって異なり、また偏っている。R画像上およびB画像上のぼけの偏りの方向は、撮像位置から見て、被写体が合焦距離dfよりも手前にあるか、それとも奥にあるかによってそれぞれ反転する。
【0021】
図4を参照して、フィルタ21が配置されたカラー開口による光線変化と、ぼけの形状とについて説明する。
被写体210が合焦距離dfよりも奥にある場合(d>df)、イメージセンサ23によって撮像された画像にはぼけが発生する。この画像のぼけの形状は、R画像、G画像およびB画像でそれぞれ異なっている。例えば、R画像のぼけの形状(201R)は左側に偏り、G画像のぼけの形状(201G)は偏りがなく、B画像のぼけの形状(201B)は右側に偏っている。また、被写体210が合焦距離dfから奥に離れる程、ぼけのサイズは大きくなる。ぼけは、隣接する画素との画素値の差分(勾配)を用いて検出することができる。
【0022】
また、被写体210が合焦距離dfにある場合(d=df)、イメージセンサ23によって撮像された画像にはほとんどぼけが発生しない。この画像のぼけの形状は、R画像、G画像およびB画像でほぼ同じである。R画像のぼけの形状(201R)、G画像のぼけの形状(201G)およびB画像のぼけの形状(201B)のいずれも偏りがない。
【0023】
また、被写体210が合焦距離dfよりも手前にある場合(d<df)、イメージセンサ23によって撮像された画像にはぼけが発生する。この画像のぼけの形状は、R画像、G画像およびB画像でそれぞれ異なっている。例えば、R画像のぼけの形状(201R)は右側に偏り、G画像のぼけの形状(201G)は偏りがなく、B画像のぼけの形状(201B)は左側に偏っている。また、被写体210が合焦距離dfから手前に離れる程、ぼけのサイズは大きくなる。
【0024】
このように、被写体210が合焦距離dfよりも手前または奥にある場合、イエローの第1フィルタ領域211を透過した光線に基づくR画像のぼけの形状(201R,203R)は非対称であり、またシアンの第2フィルタ領域212を透過した光線に基づくB画像のぼけの形状(201B,203B)も非対称である。そして、そのR画像のぼけの形状(201R,203R)は、B画像のぼけの形状(201B,203B)とは異なっている。また、被写体210が合焦距離dfから離れる程、ぼけのサイズは大きくなる。
【0025】
一方、画像処理部12は、
図1に示すように、画像取得部121、距離取得部122および出力部123を備える。画像処理部12は、例えば、コンピュータまたは各種電子機器に内蔵される組み込みシステムとして実現され得る。画像処理部12は、その一部またはすべてがソフトウェア(プログラム)によって実現されても良いし、ハードウェア(電子回路)によって実現されても良い。
【0026】
画像取得部121は、撮像部11によって生成され得るカラー画像、R画像、G画像およびB画像のうち、ぼけの形状が左側または右側に偏るR画像およびB画像を少なくとも取得する(撮影画像a1)。ここでは、撮像部11によってR画像、G画像およびB画像が生成され、画像取得部121は、これら3つの画像を取得するものと想定する。
【0027】
距離取得部122は、画像取得部121によって取得される、ぼけの形状が左側または右側に偏るR画像およびB画像を少なくとも用いて、被写体までの距離を取得する。より詳しくは、距離取得部122は、事前に学習された統計モデル122Aによって、少なくともR画像およびB画像の2つの画像から被写体までの距離を取得する。統計モデル122Aは、ニューラルネットワークやランダムフォレストなどといった既知の様々な機械学習のアルゴリズムを適用することができる。ここでは、距離取得部122は、R画像、G画像およびB画像の3つの画像を用いて、被写体までの距離を取得するものと想定する。R画像、G画像およびB画像の3つの画像を用いた統計モデル122Aによる距離の取得の詳細については後述する。
【0028】
出力部123は、距離取得部122によって取得された距離(距離情報a2)を、例えば、画像と位置的に対応づけて配置したマップ形式で出力する。例えば、画素値が距離を示す画像データとして、出力部123は、画素単位に取得される距離を出力する。画像データとして距離が出力される場合、この画像データを使って、色で距離を示す距離画像を表示することができる。出力部123から出力される距離を用いれば、例えば、被写体のサイズを算出することなども可能である。
【0029】
図5は、画像処理部(画像処理装置)12のシステム構成を例示する。画像処理部12は、CPU31、RAM32、不揮発性メモリ33、および通信部34を備える。また、画像処理部12は、CPU31、RAM32、不揮発性メモリ33、および通信部34を相互に接続するバス35を有している。
【0030】
CPU31は、画像処理部12内の様々なコンポーネントの動作を制御する。CPU31は、単一のプロセッサであってもよいし、複数のプロセッサで構成されていてもよい。CPU31は、不揮発性メモリ33からRAM32にロードされる様々なプログラムを実行する。これらプログラムは、オペレーティングシステム(OS)や様々なアプリケーションプログラムを含む。アプリケーションプログラムは、画像処理プログラム32Aを含む。この画像処理プログラム32Aは、被写体を撮像した画像を用いて、被写体までの距離を推定するための命令群を含む。また、RAM32は、主記憶装置として用いられる記憶媒体である。不揮発性メモリ33は、補助記憶装置として用いられる記憶媒体である。
【0031】
通信部34は、有線通信または無線通信を実行するように構成されたデバイスである。通信部34は、信号を送信する送信部と信号を受信する受信部とを含む。通信部34は、ネットワークを介した外部機器との通信、周辺に存在する外部機器との通信等を実行する。この外部機器には撮像部11も含まれ得る。したがって、通信部34は、撮像部11から画像を受信してもよい。
【0032】
図6は、本実施形態の画像処理装置(画像処理部12)を適用する測距装置1の画像からの距離検出に関する基本構造を示す図である。
測距装置1は、互いに異なる波長帯域の光を透過する複数のフィルタ領域を含むフィルタ21を備える撮像部11によって、ぼけが互いに異なる形状で発生する複数の画像を生成する(撮影画像a1)。画像処理部12は、この複数の画像の情報を、事前に学習された統計モデル122Aに入力し、統計モデル122Aによって、被写体までの距離を取得する(距離情報a2)。
【0033】
図7は、互いに異なる波長帯域の光を透過する複数のフィルタ領域を含むフィルタ21を備える撮像部11によって生成される、ぼけが互いに異なる形状で発生する複数の画像(撮影画像a1)は、距離に関して物理的な手がかり(ほけ情報b1)を与えるものであることを示す図である。
【0034】
図4を参照して説明した通り、被写体210がピント位置よりも奥にある場合、フィルタ21およびレンズ22を透過した光がイメージセンサ23に受光されて生成される複数の画像(撮影画像a1)のうち、R画像のぼけの形状(ぼけ情報b1)は左側に偏り、B画像のぼけの形状(ぼけ情報b1)は右側に偏る。一方、被写体210がピント位置よりも手前にある場合、フィルタ21およびレンズ22を透過した光がイメージセンサ23に受光されて生成される複数の画像(撮影画像a1)のうち、R画像のぼけの形状(ぼけ情報b1)は右側に偏り、B画像のぼけの形状(ぼけ情報b1)は左側に偏る。
【0035】
つまり、本実施形態の画像処理装置1の撮像部11によって生成される複数の画像においては、R画像上およびB画像上のぼけの偏りの方向が、被写体210がピント位置よりも奥か手前かで反転するので、第1に、ぼけの色(形状)によって、被写体210がピント位置よりも奥か手前かを区別することができる。
【0036】
また、被写体210がピント位置から離れる程、ぼけのサイズは大きくなるので、第2に、ぼけのサイズによって、ピント位置から被写体210までの距離を取得することができる。被写体210がピント位置よりも奥か手前かを区別することができ、かつ、ピント位置から被写体210までの距離を取得することができれば、撮影地点から被写体210までの距離を取得することができる。
【0037】
このように、互いに異なる波長帯域の光を透過する複数のフィルタ領域を含むフィルタ21を備える撮像部11によって生成される、ぼけが互いに異なる形状で発生する複数の画像(撮影画像a1)は、距離に関して物理的な手がかり(ほけ情報b1)を与えるものである。
【0038】
図8は、本実施形態の画像処理装置1が、距離に関する物理的な手がかりである撮影画像a1中のぼけ情報b1を統計モデル122Aで分析し、被写体210までの距離(距離情報a2)を推定することを示す図である。
図7を参照して説明した通り、この画像処理装置1の撮像部11によって生成される複数の画像(撮影画像a1)上のぼけ(ぼけ情報b1)は、被写体210までの距離に関する物理的な手がかりとなる。具体的には、ぼけの色(形状)やサイズが、被写体210までの距離に関する手がかりとなる。画像処理装置1の画像処理部12、より詳しくは、距離取得部122は、当該物理的な手がかりである撮影画像a1中のぼけ情報b1を統計モデル122Aで分析し、被写体210までの距離(距離情報a2)を推定する。
【0039】
図9は、本実施形態の画像処理装置1で適用し得る、統計モデル122Aによって撮影画像a1から距離情報a2を推定する方式の第1例(パッチ方式)を示す図である。
第1例においては、距離取得部122は、撮影画像a1から局所領域(画像パッチa11)を抽出し、当該局所領域ごとに、撮影画像a1の情報を統計モデル122Aへ入力して距離情報a2を推定する。局所領域の抽出は、例えば、撮影画像a1の全領域をマトリックス状に分割し、分割後の部分領域を順次抽出することであってもよいし、撮影画像a1を認識して、被写体像が検出された領域を網羅するように、複数の局所領域を抽出することであってもよい。また、局所領域は、他の局所領域との間で一部がオーバーラップしていてもよい。
【0040】
一方、撮影画像a1の情報が局所領域ごとに入力される統計モデル122Aは、その局所領域について画素ごとに距離を推定する。局所領域がオーバーラップして抽出される場合、オーバーラップ領域については、例えば、平均値を算出してもよいし、(3以上の局所領域がオーバーラップする場合)多数決で値を決定してもよい。
【0041】
図10は、第1例における統計モデル122Aに対する撮影画像a1の情報の一入力例を示す図である。
撮影画像a1から局所領域(画像パッチa11)を抽出する距離取得部122は、R画像、G画像およびB画像のそれぞれについて、当該局所領域の勾配データΔa1(Δa1−R,Δa1−G,Δa1−B)を生成して、この勾配データΔa1を統計モデル122Aに入力する。勾配データΔa1は、各画素の隣接する画素との画素値の差分を示す。例えば、局所領域が、n画素(X軸方向)×m画素(Y軸方向)の矩形領域として抽出される場合、局所領域内の各画素について算出した例えば右隣の画素との差分値をn行×m列のマトリックス状に配置した勾配データΔa1が生成されて、統計モデル122Aに入力される。統計モデル122Aは、R画像の勾配データΔa1−Rと、G画像の勾配データΔa1−Gと、B画像の勾配データΔa1−Bとを使って、ぼけから距離情報を抽出する。なお、原理的には、R画像の勾配データΔa1−RとG画像の勾配データΔa1−Gとのペア、G画像の勾配データΔa1−GとB画像の勾配データΔa1−Bとのペア、または、B画像の勾配データΔa1−BとR画像の勾配データΔa1−Rとのペア、のいずれかが入力されれば、ペアの偏り具合から距離を判断できるので、ぼけから距離情報を抽出する条件は成立する。
【0042】
図11は、本実施形態の画像処理装置1で適用し得る、統計モデル122Aによって撮影画像a1から距離情報a2を推定する方式の第2例を示す図である。
第2例においては、撮影画像a1の情報として、第1例における局所領域(画像パッチa11)ごとの勾配データΔa1の入力に加え、当該局所領域の撮影画像a1上における位置情報a12をさらに統計モデル122Aへ入力する。位置情報a12は、例えば、局所領域の中心点に対応するものであってもよいし、例えば左上辺などの予め定められた一辺に対応するものであってもよいし、画像パッチa11に含まれる画素それぞれの撮影画像a1上での位置情報を用いてもよい。
【0043】
位置情報a12をさらに統計モデル122Aへ入力することで、例えば、レンズ22の中心部を透過する光によって結像された被写体像のぼけと、レンズ22の端部を透過する光によって結像された被写体像のぼけとの間で違いが生じる場合に、その違いが距離の推定に影響を及ぼすことを除去することができる。つまり、この第2例は、ぼけ、距離および画像上の位置の相関が学習された統計モデル122Aによって、撮影画像a1から距離情報a2を、より確実に推定することができる。
【0044】
図12は、第2例における統計モデル122Aに対する撮影画像a1の情報の一入力例を示す図である。
例えば、n画素(X軸方向)×m画素(Y軸方向)の矩形領域を局所領域として抽出する場合、距離取得部122は、当該局所領域の例えば中心点に対応する撮影画像a1上のX座標値を、n×m個、n行×m列のマトリックス状に配置したX座標データa12−1と、当該局所領域の例えば中心点に対応する撮影画像a1上のY座標値を、n×m個、n行×m列のマトリックス状に配置したY座標データa12−2とを生成して、勾配データΔa1(Δa1−R,Δa1−G,Δa1−B)とともに、統計モデル122Aに入力する。
【0045】
図13は、本実施形態の画像処理装置1で適用し得る、統計モデル122Aによって撮影画像a1から距離情報a2を推定する方式の第3例(画面一括方式)を示す図である。
第3例においては、距離取得部122は、第1例や第2例のような、撮影画像a1からの局所領域(画像パッチa11)の抽出は行わず、撮影画像a1の全領域について、撮影画像a1の情報(勾配データΔa1(Δa1−R,Δa1−G,Δa1−B))を統計モデル122Aに入力する。
【0046】
局所領域ごとに距離(距離情報a2)が推定される第1例や第2例と比較して、統計モデル122Aによる推定の不確実性が高まる可能性はあるが、撮影画像a1からの局所領域の抽出を行わない当該第3例においては、距離取得部122の負荷を軽減することができる。
【0047】
図14は、本実施形態の画像処理装置1が備える統計モデル122Aの学習方法の一例を示す図である。
図9を参照して説明した第1例、
図11を参照して説明した第2例、
図13を参照して説明した第3例のいずれの方式が適用される場合においても、統計モデル122Aの学習方法は、基本的に、撮影画像a1の情報を統計モデル122Aに入力し、統計モデル122Aによって推定された距離情報a2と正解値c1との誤差を統計モデル122Aにフィードバックするというものである。フィードバックとは、誤差が減少するように統計モデル122Aのパラメータを更新することである。
【0048】
図9を参照して説明した第1例の方式が適用される場合、統計モデル122Aの学習時においても、局所領域(画像パッチa11)ごとに、撮影画像a1の情報(勾配データΔa1)が統計モデル122Aに入力され、統計モデル122Aによって推定された各局所領域内の各画素の距離情報a2と正解値c1とが比較される。また、
図11を参照して説明した第2例の方式が適用される場合には、撮影画像a1の情報として、さらに、各局所領域の撮影画像a1上における位置情報a12が統計モデル122Aに入力される。
図13を参照して説明した第3例の方式が適用される場合は、撮影画像a1の情報(勾配データΔa1)が全領域分一括して統計モデル122Aに入力され、統計モデル122Aによって推定された各画素の距離情報a2と正解値c1とが比較される。
【0049】
図15は、ぼけと距離との関係を示す。
図15では、被写体がピント位置よりも手前にある場合に発生するぼけのサイズをX軸上においてマイナスの値で示し、被写体がピント位置よりも奥にある場合に発生するぼけのサイズをX軸上においてプラスの値で示している。つまり、ぼけの色(形状)を正負で示している。被写体がピント位置よりも手前にある場合または被写体がピント位置よりも奥にある場合のいずれの場合においても、被写体がピント位置から離れる程、ぼけのサイズ(ピクセル)の絶対値は大きくなる。
図15の例では、ピント位置が約1500mmであることを想定している。例えば、約−4.8ピクセルのぼけは、約1000mmの距離に対応し、0ピクセルのぼけは、1500mmの距離に対応し、約4.8ピクセルのぼけは、約2750mmの距離に対応する。
【0050】
統計モデル122Aの学習時に、撮影画像a1の情報を統計モデル122Aに入力する場合、その撮影画像a1を撮影した際の被写体までの距離に対応する、色(形状)を正負で示すぼけのサイズが正解値c1として用いられる。換言すると、統計モデル122Aは、距離情報a2として、ぼけのサイズを出力する。
図15の線分d1で示されるように距離とぼけのサイズとは相関があるので、距離を推定することと、ぼけのサイズを推定することとは同義である。しかしながら、撮影画像a1と、この撮影画像a1に含まれるぼけとは線形の関係にあるので、統計モデル122Aに直接的に距離を推定させる場合と比較して、統計モデル122Aにぼけのサイズを推定させる場合の方が、統計モデル122Aによる推定の精度を高めることができる。統計モデル122Aは、例えば、n画素(X軸方向)×m画素(Y軸方向)の局所領域ごとに撮影画像a1の情報が入力される場合、その局所領域の各画素について推定したぼけのサイズをn行×m列に配列した距離情報a2を出力する。
【0051】
正解値c1は、入力した撮影画像a1の情報から統計モデル122Aによって推定された距離情報a2と比較される。例えば、本実施形態の画像処理装置1において取得可能な距離の下限値(手前)から上限値(奥)まで極力細かい粒度で被写体を各距離で撮影した撮影画像a1を用意し、これらの情報を統計モデル122Aに入力するとともに、それらを撮影した時の被写体までの距離に対応するぼけのサイズを正解値c1として用いる。統計モデル122Aの学習のための撮影画像a1は、被写体が異なる様々な撮影画像a1が用意されることが好ましい。
【0052】
図16は、本実施形態の画像処理装置1が備える統計モデル122Aの学習の流れを示すフローチャートである。
まず、撮影画像a1の情報、より詳しくは、ぼけの形状が左側または右側に偏るR画像およびB画像の勾配データ(Δa1−R,Δa1−B)を少なくとも含む2種類以上の勾配データΔa1を統計モデル122Aへ入力する(ステップA1)。撮影画像a1の情報を、撮影画像a1から抽出した局所領域(画像パッチa11)ごとに入力する場合、当該局所領域の撮影画像a1上における位置情報a12をさらに統計モデル122Aへ入力してもよい。
【0053】
統計モデル122Aに対して撮影画像a1の情報を入力すると、統計モデル122Aによって、被写体までの距離(距離情報a2)が推定される(ステップA2)。統計モデル122Aによって推定された距離(距離情報a2)は、正解値c1と比較され(ステップA3)、その誤差が、統計モデル122Aへフィードバックされる(ステップA4)。より詳しくは、誤差が減少するように統計モデル122Aのパラメータが更新される。
【0054】
図17は、本実施形態の画像処理装置1における統計モデル122Aによる撮影画像a1からの距離情報a2の取得の流れを示すフローチャートである。
画像処理装置1は、互いに異なる波長帯域の光を透過する2以上のフィルタ領域(第1フィルタ領域211、第2フィルタ領域212)を含むフィルタ21を開口部に備えたカメラ(撮像部11)で画像(撮影画像a1)を撮影する(ステップB1)。
【0055】
画像処理装置1は、撮影画像a1の情報、より詳しくは、ぼけの形状が左側または右側に偏るR画像およびB画像の勾配データ(Δa1−R,Δa1−B)を少なくとも含む2種類以上の勾配データΔa1を統計モデル122Aへ入力する(ステップB2)。
【0056】
統計モデル122Aに対して撮影画像a1の情報を入力すると、統計モデル122Aによって、被写体までの距離(距離情報a2)が推定される(ステップB3)。画像処理装置1は、統計モデル122Aによって推定された距離(距離情報a2)を、例えば、撮影画像a1と位置的に対応づけて配置したマップ形式で出力する(ステップB4)。
【0057】
このように、本実施形態の画像処理装置1は、撮像部11が、距離に関する物理的な手がかりであるぼけ情報b1を含む撮影画像a1を生成し、画像処理部12が、この撮影画像a1の情報を基に、統計モデル122Aによって距離(距離情報a2)を推定する。撮像部11によって生成される撮影画像a1中のぼけ情報b1は、被写体までの物理的な距離(距離情報a2)と相関があるため、例えば錯視に騙されるようなことのない、ロバストな距離検出が可能となる。また、統計情報に基づき、距離(距離情報a2)を推定することで、ぼけ情報をモデル化して距離を算出する場合のような、画像に含まれるぼけ情報がモデルから外れると、算出される距離の誤差が大きくなる可能性があるといった懸念材料を生じさせることがない。
【0058】
次に、本実施形態の画像処理装置1の一変形例について説明する。
図18は、当該一変形例の概要を説明するための図である。
図18に示すように、この変形例では、統計モデル122Aが、撮影画像a1の情報から距離情報a2を推定する際、その推定の不確実性の度合いを画素ごとに算出して、その値を不確実性情報a3として距離情報a2とともに出力する。統計モデル122Aによる推定の不確実性の度合いの算出方法は、特定の方法に限定されず、既知の様々な方法を適用することができる。
【0059】
距離取得部122は、統計モデル122Aから出力される不確実性情報a3を調べ、その値が閾値以上であった場合、例えば、距離情報a2を破棄したり、不確実性情報a3の値が閾値未満であった、撮影画像a1上での周辺の距離情報a2を使って、その値が閾値以上の当該距離情報a2を補正したり、といった処置を施し、これらの処置が施された距離情報a2を出力部123へ転送する。補正は、例えば、周辺の距離情報a2の平均値を補正値としてもよいし、多数決で補正値を決定してもよい。破棄する場合は、例えば、その画素に対応する位置に無効を示す値を配置する。
【0060】
このように、この変形例では、さらに、推定の不確実性の度合いの高い距離情報a2がそのまま使われてしまうことなどを防止することができる。
図19は、この変形例における統計モデル122Aの学習方法の一例を示す図である。
図19に示すように、統計モデル122Aが不確実性情報a3を出力する本変形例においても、基本的には、撮影画像a1の情報を統計モデル122Aに入力し、統計モデル122Aによって推定された距離情報a2と正解値c1との誤差を統計モデル122Aにフィードバックする。不確実性を学習する際には、距離情報と正解値との誤差を不確実性の二乗で割り算した誤差を用いることで学習時の偏りを減少させることができる。ただしそのままでは不確実性を無限大とすることで誤差をゼロにできてしまうため、不確実性の二乗をペナルティとして誤差に加算する。つまり、推定された距離情報a2と正解値c1との誤差を不確実性で補正した値が減少するように統計モデル122Aのパラメータを更新する。さらに、この変形例では、不確実性情報a3を用いて、学習の偏りをなくすことができる。例えば、推定された距離情報a2と正解値c1との誤差が無い一方で、不確実性情報a3で示される推定の不確実性の度合いが高い場合、その距離情報a2は偶然に推定された可能性があり、その距離の学習が不足していることを認識することができる。
【0061】
図20は、この変形例における統計モデル122Aによる撮影画像a1からの距離情報a2の取得の流れを示すフローチャートである。
先に説明した
図16のフローチャートとの違いを説明すると、まず、ステップB3において、統計モデル122Aによって、推定された距離(距離情報a2)の不確実性情報a3が出力される。
【0062】
また、このステップB3とステップB4との間において、ステップB11とステップB12とが実行される。即ち、画像処理装置1は、推定された距離の中に不確実性が閾値以上のものが存在するか否かを調べる(ステップB11)。存在する場合(ステップB11:YES)、画像処理装置1は、例えば、撮影画像a1上の周辺の不確実性が閾値未満の距離を使って、当該不確実性が閾値以上の距離を補正する(ステップB12)。なお、画像処理装置1は、当該不確実性が閾値以上の距離を破棄してもよい。
【0063】
このように、統計モデル122Aが不確実性情報a3を出力することで、学習時においては、学習の偏りをなくすことができ、実働時においては、誤って推定された距離がそのまま使用されることなどを防止することができる。
(応用例)
以下、前述のような構成を有する測距装置1が適用される応用例についていくつか説明する。
【0064】
図21は、測距装置1を含む移動体9の機能構成例を示す。移動体9は、例えば、自動運転機能を有する自動車、無人航空機、自律型の移動ロボット等として実現され得る。無人航空機は、人が乗ることができない飛行機、回転翼航空機、滑空機、飛行船であって、遠隔操作または自動操縦により飛行させることができるものであり、例えば、ドローン(マルチコプター)、ラジコン機、農薬散布用ヘリコプター等を含む。自律型の移動ロボットは、無人搬送車(Automated Guided Vehicle:AGV)のような移動ロボット、床を掃除するための掃除ロボット、来場者に各種案内を行うコミュニケーションロボット等を含む。移動体9にはさらに、ロボット本体が移動するものだけでなく、ロボットアームのような、ロボットの一部分の移動・回転用の駆動機構を有する産業用ロボットも含まれ得る。
【0065】
図21に示すように、移動体9は、例えば、測距装置1と制御信号生成部14と駆動機構15とを有する。測距装置1の内、少なくとも撮像部11は、例えば、移動体9またはその一部分の進行方向の被写体を撮像するように設置される。
図22に示すように、移動体9が自動車9Aである場合、撮像部11は、前方を撮像するいわゆるフロントカメラとして設置され得るほか、バック時に後方を撮像するいわゆるリアカメラとしても設置され得る。もちろん、これら両方が設置されてもよい。また、撮像部11は、いわゆるドライブレコーダーとしての機能を兼ねて設置されるものであってもよい。すなわち、撮像部11は録画機器であってもよい。
【0066】
次いで、
図23は、移動体9がドローン9Bである場合の例を示す。ドローン9Bは、駆動機構15に相当するドローン本体91と四つのプロペラ部921,922,923,924とを備える。各プロペラ部921,922,923,924はプロペラとモータとを有する。モータの駆動がプロペラに伝達されることによって、プロペラが回転し、その回転による揚力によってドローン9Bが浮上する。ドローン本体91の、例えば下部には、撮像部11(あるいは、撮像部11を含む測距装置1)が搭載されている。
【0067】
また、
図24は、移動体9が自律型の移動ロボット9Cである場合の例を示す。移動ロボット9Cの下部には、駆動機構15に相当する、モータや車輪等を含む動力部95が設けられている。動力部95は、モータの回転数や車輪の向きを制御する。移動ロボット9Cは、モータの駆動が伝達されることによって、路面または床面に接地する車輪が回転し、当該車輪の向きが制御されることにより任意の方向に移動することができる。撮像部11は、例えば、人型の移動ロボット9Cの頭部に、前方を撮像するように設置され得る。なお、撮像部11は、後方や左右を撮像するように設置されてもよいし、複数の方位を撮像するように複数設置されてもよい。また、センサ等を搭載するためのスペースが少ない小型ロボットに少なくとも撮像部11を設けて、自己位置、姿勢および被写体の位置を推定することにより、デッドレコニングを行うこともできる。
【0068】
なお、移動体9の一部分の移動および回転を制御する場合、
図25に示すように、撮像部11は、例えば、ロボットアーム9Dで把持される物体を撮像するように、ロボットアームの先端等に設置されてもよい。画像処理部12は、把持しようとする物体までの距離を推定する。これにより、物体の正確な把持動作を行うことができる。
【0069】
制御信号生成部14は、測距装置1から出力される被写体までの距離に基づいて、駆動機構15を制御するための制御信号を出力する。駆動機構15は、制御信号により、移動体9または移動体の一部分を駆動する。駆動機構15は、例えば、移動体9またはその一部分の移動、回転、加速、減速、推力(揚力)の加減、進行方向の転換、通常運転モードと自動運転モード(衝突回避モード)の切り替え、およびエアバック等の安全装置の作動の内の少なくとも一つを行う。駆動機構15は、例えば、被写体までの距離がしきい値未満である場合、移動、回転、加速、推力(揚力)の加減、物体に近寄る方向への方向転換、および自動運転モード(衝突回避モード)から通常運転モードへの切り替えの内の少なくとも一つを行ってもよい。
【0070】
自動車9Aの駆動機構15は、例えばタイヤである。ドローン9Bの駆動機構15は、例えばプロペラである。移動ロボット9Cの駆動機構15は、例えば脚部である。ロボットアーム9Dの駆動機構15は、例えば撮像部11が設けられた先端を支持する支持部である。
【0071】
移動体9は、さらに画像処理部12からの被写体までの距離に関する情報が入力されるスピーカやディスプレイを備えていてもよい。スピーカやディスプレイは、被写体までの距離に関する音声または画像を出力する。スピーカやディスプレイは、測距装置1と有線または無線で接続されている。さらに、移動体9は、画像処理部12からの被写体までの距離に関する情報が入力される発光部を有していていもよい。発光部は、例えば、画像処理部12からの被写体までの距離に応じて点灯したり消灯したりする。
【0072】
また、例えば、移動体9がドローンである場合、上空から、地図(物体の三次元形状)の作成、ビルや地形の構造調査、ひび割れや電線破断等の点検等が行われる際に、撮像部11は対象を撮影した画像を取得し、被写体までの距離が閾値以上であるか否かを判定する。制御信号生成部14は、この判定結果に基づいて、点検対象との距離が一定になるようにドローンの推力を制御するための制御信号を生成する。ここで、推力には揚力も含まれる。駆動機構15が、この制御信号に基づいてドローンを動作させることにより、ドローンを点検対象に並行して飛行させることができる。移動体9が監視用のドローンである場合、監視対象の物体との距離を一定に保つようにドローンの推力を制御するための制御信号を生成してもよい。
【0073】
また、ドローンの飛行時に、撮像部11は地面方向を撮影した画像を取得し、地面との距離が閾値以上であるか否かを判定する。制御信号生成部14は、この判定結果に基づいて、地面からの高さが指定された高さになるようにドローンの推力を制御するための制御信号を生成する。駆動機構15が、この制御信号に基づいてドローンを動作させることにより、ドローンを指定された高さで飛行させることができる。農薬散布用ドローンであれば、ドローンの地面からの高さを一定に保つことで、農薬を均等に散布しやすくなる。
【0074】
また、移動体9がドローンまたは自動車である場合、ドローンの連携飛行や自動車の連隊走行時に、撮像部11は、周囲のドローンや前方の自動車を撮影した画像を取得し、そのドローンや自動車までの距離が閾値以上であるか否かを判定する。制御信号生成部14は、この判定結果に基づいて、その周囲のドローンや前方の自動車との距離が一定になるように、ドローンの推力や自動車の速度を制御するための制御信号を生成する。駆動機構15が、この制御信号に基づいてドローンや自動車を動作させることにより、ドローンの連携飛行や自動車の連隊走行を容易に行うことができる。移動体9が自動車である場合、ドライバーが閾値を設定できるように、ユーザインタフェースを介してドライバーの指示を受理することで、閾値を変化させてもよい。これにより、ドライバーが好む車間距離で自動車を走行させられる。あるいは、前方の自動車との安全な車間距離を保つために、自動車の速度に応じて閾値を変化させてもよい。安全な車間距離は、自動車の速度によって異なる。そこで、自動車の速度が速いほど閾値を長く設定することができる。また、移動体9が自動車である場合に、進行方向の所定の距離を閾値に設定しておき、その閾値の手前に物体が現れた場合にブレーキが自動で作動したり、エアバック等の安全装置が自動で作動したりする制御信号生成部14を構成するとよい。この場合、自動ブレーキやエアバック等の安全装置が駆動機構15に設けられる。
【0075】
以上説明したように、本実施形態によれば、一つのカメラで一度に撮像された画像からのロバストな距離検出が可能であるため、例えば、自動車、ドローン、ロボット等の各種の移動体9の動作を容易に制御することができる。
また、本実施形態に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【0076】
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【0077】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。