以下、図面を参照して、各実施形態について説明する。
(第1実施形態)
まず、第1実施形態について説明する。図1は、本実施形態に係る画像処理装置を含む測距システムの構成の一例を示す。図1に示す測距システム1は、画像を撮像し、当該撮像された画像を用いて撮像地点から被写体までの距離を取得(測定)するために使用される。
図1に示すように、測距システム1は、撮像装置2及び画像処理装置3を備える。本実施形態においては、測距システム1が別個の装置である撮像装置2及び画像処理装置3を備えているものとして説明するが、当該測距システム1は、撮像装置2が撮像部として機能し、画像処理装置3が画像処理部として機能する1つの装置(以下、測距装置と表記)として実現されていてもよい。測距システム1の場合には、例えばデジタルカメラ等を撮像装置2として用い、パーソナルコンピュータ、スマートフォンまたはタブレットコンピュータ等を画像処理装置3として用いることができる。この場合、画像処理装置3は、例えばクラウドコンピューティングサービスを実行するサーバ装置として動作するものであってもよい。一方、測距装置1の場合には、デジタルカメラ、スマートフォン及びタブレットコンピュータ等を当該測距装置1として用いることができる。
撮像装置2は、各種画像を撮像するために用いられる。撮像装置2は、レンズ21とイメージセンサ22とを備える。レンズ21及びイメージセンサ22は、撮像装置2の光学系(単眼カメラ)に相当する。また、本実施形態において、レンズ21は、当該レンズ21の位置を調整することによりピント位置を制御するための機構及びレンズ駆動回路等と、撮像装置2の光学系に取り込まれる光の量(入光量)を調節するための開口部を有する絞り機構及び絞り制御回路等と、当該レンズ21に関する情報(以下、レンズ情報と表記)を予め保持しているメモリ等(図示せず)が搭載される制御回路等とともにレンズユニットを構成する。
また、本実施形態において、撮像装置2は、レンズ21(レンズユニット)を手動で他のレンズに交換可能に構成されていてもよい。この場合、ユーザは、例えば標準レンズ、望遠レンズ及び広角レンズ等の複数の種別のレンズのうちの1つを撮像装置2に装着して用いることができる。なお、レンズを交換した場合には、焦点距離やF値(絞り値)が変わり、撮像装置2において用いられるレンズに応じた画像を撮像することができる。
本実施形態において、焦点距離とは、レンズから、当該レンズに対して平行に光が入射したときに当該光が収束する位置までの距離をいう。また、F値とは、絞り機構に応じて撮像装置2に取り込まれる光の量を数値化したものである。なお、F値は、値が小さくなるにつれて、撮像装置2に取り込まれる光の量が多くなる(つまり、開口部の大きさが大きくなる)ことを示す。
レンズ21には、被写体で反射した光が入射する。レンズ21に入射した光は、レンズ21を透過する。レンズ21を透過した光は、イメージセンサ22に到達し、当該イメージセンサ22によって受光(検出)される。イメージセンサ22は、受光した光を電気信号に変換(光電変換)することによって、複数の画素から構成される画像を生成する。
なお、イメージセンサ22は、例えばCCD(Charge Coupled Device)イメージセンサ及びCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等により実現される。イメージセンサ22は、例えば赤色(R)の波長帯域の光を検出する第1センサ(Rセンサ)221、緑色(G)の波長帯域の光を検出する第2センサ(Gセンサ)222及び青色(B)の波長帯域の光を検出するセンサ(Bセンサ)223を含む。イメージセンサ22は、第1~第3センサ221~223により対応する波長帯域の光を受光して、各波長帯域(色成分)に対応するセンサ画像(R画像、G画像及びB画像)を生成することができる。すなわち、撮像装置2によって撮像される画像はカラー画像(RGB画像)であり、当該画像にはR画像、G画像及びB画像が含まれる。
なお、本実施形態においてはイメージセンサ22が第1~第3センサ221~223を含むものとして説明するが、イメージセンサ22は、第1~第3センサ221~223のうちの少なくとも1つを含むように構成されていればよい。また、イメージセンサ22は、第1~第3センサ221~223に代えて、例えばモノクロ画像を生成するためのセンサを含むように構成されていてもよい。
本実施形態においてレンズ21を透過した光に基づいて生成された画像は、光学系(に含まれるレンズ21)の収差の影響を受けた画像であり、当該収差により生じるぼけを含む。なお、画像に生じるぼけの詳細については後述する。
画像処理装置3は、機能構成として、統計モデル格納部31、表示処理部32、測距領域選定部33、画像取得部34、画像補正部35、距離取得部36、信頼度確認モード設定部37及び出力部38を含む。
統計モデル格納部31には、被写体までの距離を撮像装置2によって撮像された画像から取得するために用いられる統計モデルが格納されている。統計モデル格納部31に格納されている統計モデルは、上記した光学系の収差の影響を受けた画像に生じる、当該画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成されている。統計モデル格納部31には、複数の統計モデルが格納されていてもよい。
なお、統計モデルは、例えばニューラルネットワークまたはランダムフォレスト等の既知の様々な機械学習のアルゴリズムを適用して生成することができるものとする。また、本実施形態において適用可能なニューラルネットワークには、例えば畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)、全結合ニューラルネットワーク及び再帰型ニューラルネットワーク等が含まれていてもよい。
表示処理部32は、プレビュー表示として、上記した撮像装置2によって連続的に撮像された複数の画像を順次表示する。
測距領域選定部33は、表示処理部32によって表示されている画像(つまり、撮像装置2によって撮像された画像)中の領域を選定する。なお、本実施形態においては、測距領域選定部33によって選定された領域に含まれる被写体までの距離(情報)が取得される。また、測距領域選定部33によって選定される領域は、例えばユーザの操作等に基づいて決定される。
すなわち、本実施形態において上記したプレビュー表示とは、距離を取得する対象となる被写体等をユーザが確認するために事前に画像を表示することをいう。
画像取得部34は、表示処理部32によって表示されている画像中の領域が測距領域選定部33によって選定された場合に、当該画像を取得する。
画像補正部35は、画像取得部34によって取得された画像に対して色補正を行う。この場合、画像補正部35は、画像取得部34によって取得された画像に対して、当該画像において表現されている色の数を低減する(カラーバリエーションを減らすことができる)補正を行うものとする。
距離取得部36は、画像補正部35によって色補正が行われた画像(測距領域選定部33によって選定された領域)中の被写体までの距離を示す距離情報を取得する。この場合、距離取得部36は、後述するように画像補正部35によって色補正が行われた後の画像を統計モデル格納部31に格納されている統計モデルに入力することによって距離情報を取得する。
信頼度確認モード設定部37は、ユーザの操作に基づいて、信頼度確認モードを設定する。信頼度確認モードとは、被写体までの距離に対する信頼度(不確実性の度合い)をユーザが確認するためのモードである。信頼度確認モード設定部37によって信頼度確認モードが設定された場合、ユーザは、例えば上記したプレビュー画面において、距離取得部36によって取得された距離情報によって示される距離に対する信頼度を確認することができる。
出力部38は、距離取得部36によって取得された距離情報を取得する。なお、距離情報は、例えば表示処理部32を介して表示されてもよいし、画像処理装置3の外部に出力されても構わない。
図2は、図1に示す画像処理装置3のシステム構成の一例を示す。図2に示すように、画像処理装置3は、CPU301、不揮発性メモリ302、RAM303、通信デバイス304、入力デバイス305及び表示デバイス306等を備える。また、画像処理装置3は、CPU301、不揮発性メモリ302、RAM303、通信デバイス304、入力デバイス305及び表示デバイス306を相互に接続するバス307を有する。
CPU301は、画像処理装置3内の様々なコンポーネントの動作を制御するためのプロセッサである。CPU301は、単一のプロセッサであってもよいし、複数のプロセッサで構成されていてもよい。CPU301は、不揮発性メモリ302からRAM303にロードされる様々なプログラムを実行する。これらプログラムは、オペレーティングシステム(OS)や様々なアプリケーションプログラムを含む。アプリケーションプログラムは、撮像装置2によって撮像された画像を用いて当該撮像装置2から当該画像中の被写体までの距離を取得するための画像処理プログラム303Aを含む。
不揮発性メモリ302は、補助記憶装置として用いられる記憶媒体である。RAM303は、主記憶装置として用いられる記憶媒体である。図2においては不揮発性メモリ302及びRAM303のみが示されているが、画像処理装置3は、例えばHDD(Hard Disk Drive)及びSSD(Solid State Drive)等の他の記憶装置を備えていてもよい。
なお、本実施形態において、図1に示す統計モデル格納部31は、例えば不揮発性メモリ302または他の記憶装置等によって実現される。
また、本実施形態において、図1に示す表示処理部32、測距領域選定部33、画像取得部34、画像補正部35、距離取得部36、信頼度確認モード設定部37及び出力部38の一部または全ては、CPU301(つまり、画像処理装置3のコンピュータ)に画像処理プログラム303Aを実行させること、すなわち、ソフトウェアによって実現されるものとする。この画像処理プログラム303Aは、コンピュータ読み取り可能な記憶媒体に格納して頒布されてもよいし、ネットワークを通じて画像処理装置3にダウンロードされてもよい。なお、これらの各部32~38の一部または全ては、IC(Integrated Circuit)等のハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
通信デバイス304は、有線通信または無線通信を実行するように構成されたデバイスである。通信デバイス304は、ネットワークを介した外部機器との通信等を実行する。この外部機器には、撮像装置2が含まれる。この場合、画像処理装置3は、通信デバイス304を介して、撮像装置2から画像を受信する。
入力デバイス305は、例えばマウスまたはキーボード等を含む。表示デバイス306は、例えば液晶ディスプレイ(LCD:Liquid Crystal Display)等を含む。なお、入力デバイス305及び表示デバイス306は、例えばタッチスクリーンディスプレイのように一体として構成されていてもよい。
次に、図3を参照して、本実施形態における測距システム1の動作の概要について説明する。
測距システム1において、撮像装置2(イメージセンサ22)は、上記したように光学系(レンズ21)の収差の影響を受けた画像を生成する。
画像処理装置3は、撮像装置2によって生成された画像を取得し、当該画像を統計モデル格納部31に格納されている統計モデルに入力する。なお、図3においては示されていないが、本実施形態において統計モデルに入力される画像は、色補正が行われた後の画像である。画像に対して行われる色補正の詳細については後述する。
画像処理装置3(距離取得部36)は、画像が入力された統計モデルから出力される当該画像中の被写体までの距離を示す距離情報を取得する。
このように本実施形態においては、統計モデルを用いて、撮像装置2によって撮像された画像から距離情報を取得することができる。
ここで、本実施形態において、撮像装置2によって撮像された画像には、上記したように当該撮像装置2の光学系の収差(レンズ収差)に起因するぼけが生じている。
以下、撮像装置2によって撮像された画像に生じるぼけについて説明する。まず、撮像装置2の光学系の収差に起因するぼけのうち、色収差について説明する。
図4は、被写体までの距離と色収差により画像に生じるぼけとの関係性について示している。以下の説明では、撮像装置2においてピントが合う位置をピント位置と称する。
収差のあるレンズ21を透過する際の光の屈折率は波長帯域毎に異なるため、例えば被写体の位置がピント位置からずれているような場合には、各波長帯域の光が1点に集まらず異なった点に到達する。これが画像上で色収差(ぼけ)として現れる。
図4の上段は、撮像装置2(イメージセンサ22)に対する被写体の位置がピント位置よりも遠い(つまり、被写体の位置がピント位置よりも奥にある)場合を示している。
この場合、赤色の波長帯域の光401に関しては、イメージセンサ22(第1センサ221)において比較的小さいぼけbRを含む画像が生成される。一方、青色の波長帯域の光402に関しては、イメージセンサ22(第3センサ223)において比較的大きいぼけbBを含む画像が生成される。なお、緑色の波長帯域の光403に関しては、ぼけbRとぼけbBとの中間の大きさのぼけを含む画像が生成される。したがって、このような被写体の位置がピント位置よりも遠い状態で撮像された画像においては、当該画像中の被写体の外側に青色のぼけが観察される。
一方、図4の下段は、撮像装置2(イメージセンサ22)に対する被写体の位置がピント位置よりも近い(つまり、被写体の位置がピント位置よりも手前にある)場合を示している。
この場合、赤色の波長帯域の光401に関しては、イメージセンサ22(第1センサ221)において比較的大きいぼけbRを含む画像が生成される。一方、青色の波長帯域の光402に関しては、イメージセンサ22(第3センサ223)において比較的小さいぼけbBを含む画像が生成される。なお、緑色の波長帯域の光403に関しては、ぼけbRとぼけbBとの中間の大きさのぼけを含む画像が生成される。したがって、このような被写体の位置がピント位置よりも近い状態で撮像された画像においては、当該画像中の被写体の外側に赤色のぼけが観察される。
ここで、図4はレンズ21が単純な単レンズの例を示しているが、一般的に、撮像装置2においては、例えば色収差補正が施されたレンズ(以下、色消しレンズと表記)が用いられる場合がある。なお、色消しレンズとは、低分散の凸レンズと高分散の凹レンズを組み合わせたレンズであり、色収差を補正するレンズとして最もレンズ枚数が少ないレンズである。
図5は、レンズ21として上記した色消しレンズを用いた場合における被写体までの距離と色収差により画像に生じるぼけとの関係性を示している。色消しレンズにおいては青色の波長と赤色の波長の焦点位置を揃える設計がされているが、色収差は完全には除去することができない。このため、被写体の位置がピント位置よりも遠い場合には図5の上段に示すように緑色のぼけが発生し、被写体の位置がピント位置よりも近い場合には図5の下段に示すように紫色のぼけが発生する。
なお、図4及び図5の中段は、撮像装置2(イメージセンサ22)に対する被写体の位置とピント位置とが一致している場合を示している。この場合には、イメージセンサ22(第1~第3センサ221~223)においてぼけの少ない画像が生成される。
ここで、撮像装置2の光学系(レンズユニット)には上記したように絞り機構が備えられているが、当該撮像装置2によって撮像された画像に生じるぼけの形状は、当該絞り機構の開口部の大きさによっても異なる。なお、ぼけの形状は、PSF(Point Spread Function)形状と称され、点光源が撮像されたときに生じる光の拡散分布を示している。
図6の上段は、焦点距離が50mmのレンズを用いた撮像装置2(の光学系)においてピント位置を1500mm、F値(絞り)をF1.8とした場合に当該撮像装置2によって撮像された画像の中央部に生じるPSF形状を、被写体の位置が撮像装置2から近い順に左から示している。図6の下段は、焦点距離が50mmのレンズを用いた撮像装置2(の光学系)においてピント位置を1500mm、F値(絞り)をF4とした場合に当該撮像装置2によって撮像された画像の中央部に生じるPSF形状を、被写体の位置が撮像装置2から近い順に左から示している。なお、図6の上段及び下段の中央は、被写体の位置がピント位置と一致している場合のPSF形状を示している。
図6の上段及び下段の対応する位置に示されているPSF形状は撮像装置2に対する被写体の位置が同一である場合のPSF形状であるが、当該被写体の位置が同一である場合であっても、上段のPSF形状(F値をF1.8として撮像した画像に生じるPSF形状)と下段のPSF形状(F値をF4として撮像した画像に生じるPSF形状)とでは形状が異なっている。
更に、図6の最も左側のPSF形状と最も右側のPSF形状に示すように、例えば被写体の位置からピント位置までの距離が同程度である場合であっても、当該被写体の位置がピント位置よりも近い場合と当該被写体の位置がピント位置よりも遠い場合とで、PSF形状が異なっている。
なお、上記したように絞り機構の開口部の大きさや撮像装置2に対する被写体の位置に応じてPSF形状が異なる現象は、各チャンネル(RGB画像、R画像、G画像及びB画像)においても同様に生じる。図7は、焦点距離が50mmのレンズを用いた撮像装置2においてピント位置を1500mm、F値をF1.8とした場合に当該撮像装置2によって撮像された各チャンネルの画像に生じるPSF形状を、被写体の位置がピント位置よりも近い(手前にある)場合と被写体の位置がピント位置よりも遠い(奥にある)場合とに分けて示している。図8は、焦点距離が50mmのレンズを用いた撮像装置2においてピント位置を1500mm、F値をF4とした場合に当該撮像装置2によって撮像された各チャンネルの画像に生じるPSF形状を、被写体の位置がピント位置よりも近い場合と被写体の位置がピント位置よりも遠い場合とに分けて示している。
更に、撮像装置2によって撮像された画像に生じるPSF形状は、当該画像中の位置によっても異なる。
図9の上段は、焦点距離が50mmのレンズを用いた撮像装置2においてピント位置を1500mm、F値をF1.8とした場合に当該撮像装置2によって撮像された画像中の各位置に生じるPSF形状を、被写体の位置がピント位置よりも近い場合と被写体の位置がピント位置よりも遠い場合とに分けて示している。
図9の中段は、焦点距離が50mmのレンズを用いた撮像装置2においてピント位置を1500mm、F値をF4とした場合に当該撮像装置2によって撮像された画像中の各位置に生じるPSF形状を、被写体の位置がピント位置よりも近い場合と被写体の位置がピント位置よりも遠い場合とに分けて示している。
図9の上段及び中段に示すように、撮像装置2によって撮像された画像の端部近傍(特に、左上等の角部近傍)においては、例えば画像中央付近に位置するPSF形状とは異なるPSF形状を観察することができる。
また、図9の下段は、焦点距離が105mmのレンズを用いた撮像装置2においてピント位置を1500mm、F値をF4とした場合に当該撮像装置2によって撮像された画像中の各位置に生じるPSF形状を、被写体の位置がピント位置よりも近い場合と被写体の位置がピント位置よりも遠い場合とに分けて示している。
上記した図9の上段及び中段は同一のレンズを用いて撮像された画像に生じるPSF形状を示しているが、図9の下段に示すように、焦点距離が異なるレンズを用いた場合には当該レンズに応じた異なるPSF形状(図9の上段及び中段とは異なるPSF形状)が観察される。
次に、図10を参照して、上記した撮像装置2の光学系に用いるレンズの種別に応じたPSF形状(レンズの収差)の位置依存性について具体的に説明する。図10は、焦点距離が異なる複数のレンズの各々を用いて撮像された画像の中央付近(画面中央)及び端部付近(画面端)に生じるPSF形状を、被写体の位置がピント位置よりも近い場合と被写体の位置がピント位置よりも遠い場合とに分けて示している。
図10に示すように、画像の中央付近に生じるPSF形状は、レンズの種別が異なる場合であっても概ね円形で同一であるが、画像の端部付近に生じるPSF形状は、画像の中央付近に生じるPSF形状と異なる形状を有し、かつ、レンズの種別に応じてそれぞれ特性(特徴)が異なる。なお、上記した図5において説明した被写体の位置がピント位置よりも近い場合にはPSFのふち付近に紫色のぼけが発生し、被写体の位置がピント位置よりも遠い場合にはPSFのふち付近に緑色のぼけが発生する点については、レンズの種別が異なる場合であっても共通している。
また、図10においては、焦点距離が50mmのレンズに関しては2つの例(#1及び#2)が示されているが、これは、焦点距離が50mmで同一であるが、レンズの製造元が異なる(つまり、異なる製品である)ことを示している。焦点距離が85mmのレンズについても同様である。
本実施形態に係る画像処理装置3(測距システム1)においては、上記したような画像中の被写体までの距離(つまり、撮像装置2に対する被写体の位置)に応じて非線形に変化するぼけ(色、サイズ及び形状)に着目して生成された統計モデルを用いて、被写体までの距離を画像から取得するものとする。
なお、本実施形態における被写体までの距離に応じて非線形に変化するぼけには、上記した図4及び図5において説明した撮像装置2の光学系の色収差により生じるぼけ、図6~図8において説明した撮像装置2の光学系に取り込まれる光の量を調節する絞り機構の開口部の大きさ(つまり、F値)に応じて生じるぼけ、図9及び図10において説明した撮像装置2によって撮像された画像中の位置に応じて変化するぼけ等が含まれる。
なお、PSF形状は、絞り機構の開口部の形状によっても異なる。ここで、図11は、PSF形状の非線形性(非対称性)と絞り機構の開口部の形状との関係を表している。上記したPSF形状の非線形性は、絞り機構の開口部の形状が円以外の場合に生じやすい。特に、PSF形状の非線形性は、開口部の形状が奇数角形、或いはイメージセンサ22の水平または垂直軸に対して非対称に配置された偶数角形の場合により生じやすい。
また、上記した図9においては、画像中の被写体までの距離及び当該画像中の位置に依存するPSF形状(つまり、距離依存性及び位置依存性を有するぼけ)を画像上に表しているが、当該画像の各々は、収差マップと称される。収差マップとは、光学系の収差の影響を受けた画像に生じるぼけであって、当該画像中の被写体までの距離及び当該画像中の位置に依存するぼけの分布を表すマップ形式の情報である。換言すれば、収差マップとは、収差によって生じる画像中のぼけ(つまり、光学系の収差)の距離依存性と位置依存性とを示す情報である。このような収差マップは、画像中の被写体までの距離を推定する(つまり、当該距離を示す距離情報を取得する)際に利用されてもよい。
図12は、本実施形態において距離情報を取得する動作の概要を示す。以下の説明においては、距離情報(被写体までの距離)を取得するために撮像装置2によって撮像された画像を撮像画像と称する。
図12に示す撮像画像501に生じるぼけ(ぼけ情報)502は、被写体503までの距離に関する物理的な手掛かりとなる。具体的には、ぼけの色、PSFのサイズ及び形状が、被写体503までの距離に関する手掛かりとなる。
本実施形態に係る画像処理装置3(距離取得部36)においては、このような物理的な手掛かりである撮像画像501に生じるぼけ502を統計モデルで分析(解析)することによって被写体503までの距離504を推定する。
以下、本実施形態において統計モデルによって撮像画像から距離を推定する方式の一例について説明する。ここでは、第1~第3方式について説明する。
まず、図13を参照して、第1方式について説明する。第1方式において、距離取得部36は、撮像画像501から局所領域(画像パッチ)501aを抽出する。
この場合、例えば撮像画像501の全領域(または所定の領域)をマトリクス状に分割し、当該分割後の部分領域を局所領域501aとして順次抽出するようにしてもよいし、撮像画像501を認識して、被写体(像)が検出された領域を網羅するように局所領域501aを抽出するようにしてもよい。また、局所領域501aは、他の局所領域501aとの間で一部がオーバーラップしていてもよい。
距離取得部36は、抽出された局所領域501a毎に、当該局所領域501aに関する情報(撮像画像501の情報)を統計モデルへ入力することによって、当該局所領域501a中の被写体までの距離504を推定する。
このように局所領域501aに関する情報が入力された統計モデルは、当該局所領域501aを構成する画素毎に距離を推定する。
ここで、例えば特定の画素が第1局所領域501a及び第2局所領域501aの両方に属する(つまり、第1局所領域501a及び第2局所領域501aとの間で当該画素を含む領域がオーバーラップしている)場合、当該画素が第1局所領域501aに属するものとして推定された距離と、当該画素が第2局所領域501aに属するものとして推定された距離とでは異なる場合がある。
このため、例えば上記したように一部がオーバーラップする複数の局所領域501aが抽出されている場合、当該複数の局所領域501aがオーバーラップしている領域を構成する画素の距離は、例えば当該オーバーラップしている一方の局所領域501aの一部の領域(画素)について推定された距離と他方の局所領域501aの一部の領域(画素)について推定された距離との平均値としてもよい。また、一部がオーバーラップする3以上の局所領域501aが抽出されている場合、当該3以上の局所領域501aがオーバーラップしている領域を構成する画素の距離は、当該オーバーラップしている3以上の局所領域501aの一部の領域毎に推定された距離による多数決で決定されてもよい。
図14は、上記した第1方式において統計モデルに入力される局所領域501aに関する情報の一例を示す。
距離取得部36は、撮像画像501に含まれるR画像、G画像及びB画像のそれぞれについて、当該撮像画像501から抽出された局所領域501aの勾配データ(R画像の勾配データ、G画像の勾配データ及びB画像の勾配データ)を生成する。このように距離取得部36によって生成された勾配データが統計モデルに入力される。
なお、勾配データは、各画素と当該画素に隣接する画素との画素値の差分(差分値)を示す。例えば、局所領域501aがn画素(X軸方向)×m画素(Y軸方向)の矩形領域として抽出される場合、当該局所領域501a内の各画素について算出した例えば右隣の画素との差分値をn行×m列のマトリクス状に配置した勾配データが生成される。
統計モデルは、R画像の勾配データと、G画像の勾配データと、B画像の勾配データとを用いて、当該各画像に生じているぼけから距離を推定する。図14においてはR画像、G画像及びB画像の各々の勾配データが統計モデルに入力される場合について示しているが、撮像画像501(RGB画像)の勾配データが統計モデルに入力される構成であってもよい。
次に、図15を参照して、第2方式について説明する。第2方式においては、第1方式における局所領域501aに関する情報として、当該局所領域(画像パッチ)501a毎の勾配データ及び撮像画像501における当該局所領域501aの位置情報が統計モデルに入力される。
位置情報501bは、例えば局所領域501aの中心点を示すものであってもよいし、左上辺等の予め定められた一辺を示すものであってもよい。また、位置情報501bとして、局所領域(画像パッチ)501aを構成する画素それぞれの撮像画像501上での位置情報を用いてもよい。
上記したように位置情報501bを更に統計モデルに入力することで、例えばレンズ21の中心部を透過する光によって結像された被写体像のぼけと、当該レンズ21の端部を透過する光によって結像された被写体像のぼけとの間の差異を考慮して距離504を推定することができる。
つまり、この第2方式によれば、ぼけ、距離及び画像上の位置の相関に基づいて撮像画像501から距離をより確実に推定することができる。
図16は、上記した第2方式において統計モデルに入力される局所領域501aに関する情報の一例を示す。
例えばn画素(X軸方向)×m画素(Y軸方向)の矩形領域が局所領域501aとして抽出される場合、距離取得部36は、当該局所領域501aの例えば中心点に対応する撮像画像501上のX座標値(X座標データ)と、当該局所領域501aの例えば中心点に対応する撮像画像501上のY座標値(Y座標データ)とを取得する。
第2方式においては、このように距離取得部36によって取得されたX座標データ及びY座標データが、上記したR画像、G画像及びB画像の勾配データとともに、統計モデルに入力される。
更に、図17を参照して、第3方式について説明する。第3方式においては、上記した第1方式及び第2方式のような撮像画像501からの局所領域(画像パッチ)501aの抽出は行われない。第3方式において、距離取得部36は、例えば撮像画像501の全領域(または所定の領域)に関する情報(R画像、G画像及びB画像の勾配データ)を統計モデルに入力する。
局所領域501a毎に距離504を推定する第1方式及び第2方式と比較して、第3方式は、統計モデルによる推定の不確実性が高くなる可能性があるが、距離取得部36の負荷を軽減することができる。
以下の説明においては、上記した第1~第3方式において統計モデルに入力される情報を、便宜的に画像に関する情報と称する。
ここで、図18を参照して、撮像画像から推定される被写体までの距離について具体的に説明する。
図18においては、被写体がピント位置よりも近い(手前にある)場合に生じるぼけのサイズをX軸上においてマイナスの値で示し、被写体がピント位置よりも遠い(奥にある)場合に生じるぼけのサイズをX軸上においてプラスの値で示している。つまり、図18においては、ぼけの色及びサイズを正負の値で示している。
図18においては、被写体の位置がピント位置よりも近い場合及び被写体の位置がピント位置よりも遠い場合のいずれの場合においても、被写体がピント位置から離れるほど、ぼけのサイズ(ピクセル)の絶対値が大きくなることが示されている。
図18に示す例では、画像を撮像した光学系におけるピント位置が約1500mmである場合を想定している。この場合、例えば約-4.8ピクセルのぼけは光学系から約1000mmの距離に対応し、0ピクセルのぼけは光学系から1500mmの距離に対応し、約4.8ピクセルのぼけは光学系から約750mmの距離に対応する。
ここでは、便宜的に、ぼけのサイズ(ピクセル)をX軸上に示す場合について説明したが、上記した図6~図10において説明したように、画像に生じるぼけの形状(PSF形状)についても、当該被写体がピント位置よりも近い場合と当該被写体がピント位置よりも遠い場合とで異なるし、画像中の位置によっても異なる。このため、図18においてX軸上に示す値は、実際には当該ぼけの形状(PSF形状)を反映した値である。
上記した被写体までの距離とぼけの色、サイズ及び形状とは例えば図18の線分d1によって示されるような相関があるため、距離を推定することと、ぼけの色、サイズ及び形状(を正負で示すぼけ値)を推定することとは同義である。
なお、統計モデルに直接的に距離を推定させる場合と比較して、当該統計モデルにぼけの色、サイズ及び形状を推定させる場合の方が、統計モデルによる推定の精度を高めることができる。この場合、統計モデルは、例えばn画素(X軸方向)×m画素(Y軸方向)の局領域毎に当該局所領域(画像)に関する情報が当該統計モデルに入力されることによって、当該局所領域を構成する各画素について推定したぼけの色、サイズ及び形状(を示すぼけ値)をn行×m列に配列した距離を出力するものとする。
次に、図19のフローチャートを参照して、撮像画像から距離情報を取得する際の画像処理装置3の処理手順の一例について説明する。
まず、撮像装置2(イメージセンサ22)は、被写体を連続的に撮像することによって、当該被写体を含む複数の撮像画像を生成する。なお、撮像装置2のピント位置が固定された場合、レンズ21を透過した光は被写体までの距離に応じて異なる点広がり関数(PSF)または点像分布関数の応答形状を有し、このような光をイメージセンサ22で検出することによって、撮像装置2の光学系の収差の影響を受けた撮像画像が生成される。
表示処理部32は、上記したように撮像装置2において生成された複数の撮像画像を例えば表示デバイス306に順次表示することによって、プレビュー表示を行う(ステップS1)。
ここで、図20は、ステップS1においてプレビュー表示が行われた際の画像処理装置3(表示デバイス306)の画面(以下、プレビュー画面と表記)の一例を示す。
図20に示すように、プレビュー画面306aには、画像表示領域306b、測距領域選定ボタン306c及び信頼度確認モードボタン306dが設けられている。
画像表示領域306bは、上記した撮像装置2において生成された複数の撮像画像を順次表示するための領域である。
測距領域選定ボタン306cは、画像表示領域306bに表示されている撮像画像中の領域であって、距離情報を取得する領域(以下、測距領域と表記)の選定を指示するためのボタンである。
信頼度確認モードボタン306dは、信頼度確認モードの設定を指示するためのボタンである。
上記した画像表示領域306bに撮像画像が表示されている状態で測距領域選定ボタン306cがユーザによって押下(指定)された場合、図20に示すプレビュー画面306aは図21に示すプレビュー画面306eに遷移し、ユーザは、当該プレビュー画面306eに設けられている画像表示領域306b上で測距領域を指定する操作を行うことができる。
具体的には、例えばプレビュー画面306eに設けられている画像表示領域306b上に矩形形状の枠306fが表示され、ユーザは、入力デバイス305を介してこの枠306fのサイズを変化させる操作を行うことによって、当該枠306fに包含される領域を測距領域として指定することができる。これによれば、ユーザは、距離情報を取得する被写体を包含するような領域を測距領域として指定することができる。
再び図19に戻ると、測距領域選定部33は、上記したユーザの操作に応じて測距領域を選定するか否かを判定する(ステップS2)。ステップS2においては、上記したプレビュー画面に設けられている測距領域選定ボタンがユーザによって押下された場合に、測距領域を選定すると判定する。
測距領域を選定しないと判定された場合(ステップS2のNO)、ステップS1に戻って処理が繰り返される。
一方、測距領域を選定すると判定された場合(ステップS2のYES)、測距領域選定部33は、上記したユーザの操作(例えば、枠306fのサイズを変化させる操作)によって指定された領域を測距領域として選定する。なお、ステップS2の処理が実行された場合、測距領域選定部33は、当該ステップS2において選定された測距領域を示す情報(以下、測距領域情報と表記)を取得する。測距領域情報には、撮像画像上の当該測距領域情報によって示される測距領域を特定することが可能な情報(例えば、座標値等)が含まれる。
なお、ここではユーザによって指定された領域が測距領域として選定されるものとして説明したが、例えばユーザが画像表示領域306b(撮像画像)上の位置を指定する操作をした場合には、当該指定された位置に対応する画素の周囲の画素の各々を、当該画素の画素値等に基づいてカテゴリ分類するセマンティックセグメンテーションを行うような構成としてもよい。この場合には、ユーザによって指定された位置に対応する特定の被写体を包含する領域を自動的に検出し、当該検出された領域を測距領域として選定することができる。すなわち、本実施形態においては、ユーザの操作によって指定された撮像画像中の位置に基づいて検出される被写体を包含する領域を測距領域として選定するような構成であってもよい。
また、例えば撮像装置2(測距装置1)が特定の被写体にピントを合わせるオートフォーカス(AF)機能を有する場合には、当該オートフォーカス機能によって抽出される被写体を包含する領域が測距領域として選択されてもよい。測距領域は、撮像画像に対して実行される他の画像処理等に応じて選定されてもよい。
また、ステップS3において選定される測距領域は、1つであってもよいし、複数であってもよい。また、測距領域は、撮像画像中の一部の領域でなく、当該撮像画像の全部の領域であってもよい。また、測距領域の形状は、矩形形状でなくてもよく、例えば円形形状等であってもよい。
次に、画像取得部34は、ステップS3において測距領域が選定された撮像画像を取得する(ステップS4)。以下、ステップS4において取得された撮像画像を対象撮像画像と称する。
ステップS4の処理が実行されると、画像補正部35は、対象撮像画像に対する色補正を行う(ステップS5)。
以下、画像補正部35によって行われる色補正について具体的に説明する。なお、本実施形態においては、色補正としてホワイトバランス補正が行われるものとして説明する。
まず、本実施形態における対象撮像画像は上記したように光学系の収差の影響を受けた画像であるが、当該対象撮像画像において表現される色は、光源の色温度の影響によって変化する(偏りが生じる)ことが知られている。なお、色温度とは光源が発する光の色を表す尺度であり、当該色温度は、例えば屋外で光源となる太陽光と室内で光源となる蛍光灯とで異なる。すなわち、対象撮像画像(において表現される色)は、撮像装置2の周囲の環境の影響を受けているといえる。更に、撮像画像において表現される色は、例えばイメージセンサ22(第1~第3センサ221~223)の特性(センサRGB特性)によっても変化する。
具体的には、図22に示す白色点のPSF(点広がり関数)は、レンズ特性h(λ)×物体表面反射光S(λ)のように表現され、RGB(つまり、カラー画像に含まれるR画像、G画像及びB画像)の画素値が一致している。しかしながら、図22に示すように、白色点のPSFは光源E(λ)及びセンサRGB特性(センサ感度)qc(λ)の影響を受けるため、対象撮像画像においては、レンズ特性h(λ)×物体表面反射光S(λ)×光源E(λ)×センサRGB特性qc(λ)によって表される環境に依存したPSFが観察される。なお、図22に示す光源E(λ)は光源からの光の波長(λ)のスペクトル特性を表しており、図22に示すセンサRGB特性qc(λ)はRGB画像における画素値の最大値の比を表している。
すなわち、光源及びセンサRGB特性による影響がなければRGB画素値が揃った白色点のPSFが得られるべきところ、対象撮像画像においては、RGB画素値に偏りが生じたPSF(つまり、環境に依存したPSF)が観察される。
上記したように対象撮像画像においては、光源の色温度やセンサRGB特性によって色に偏りが生じ、環境に依存したPSFが観察されるが、このような対象撮像画像から距離(情報)を取得する場合、当該距離の精度が低下する場合がある。具体的には、例えば同一の色であっても光源の色温度やセンサRGB特性に応じて異なる色が表示(表現)されるものとすると、精度の高い距離を取得(推定)することが困難となる。このような場合において距離の精度を向上させるためには、例えば光源の色温度やセンサRGB特性による影響を考慮した全ての色(カラーバリエーション)のぼけを学習した統計モデルを生成しておくことが考えられるが、このような学習には多大な労力を要するため、画像から距離を取得する際の環境ロバスト性を向上させることは困難である。
そこで、本実施形態においては、図23に示すように、対象撮像画像(環境に依存したPSF)に対する補正係数を算出し、当該補正係数を用いて上記した白色PSFを復元するような補正を行うことにより、光源の色温度等による影響を吸収し、対象撮像画像において表現される色の数(カラーバリエーション)を減少させる。なお、補正係数は、例えばカラー画像において表現されているグレーのような色を白色にするために当該カラー画像に含まれるR画像、G画像及びB画像に乗算するゲイン値(gain(R,G,B))に相当する。
なお、上記したホワイトバランス補正は、対象撮像画像に含まれる予め定められた領域単位で行われる。この場合、補正係数は、対象撮像画像(測距領域)に含まれる画素毎に、当該画素を包含する予め定められたサイズの領域(以下、単位領域と表記)に含まれる複数の画素の各々の画素値に基づいて算出される。
ここで、図24に示すような対象撮像画像501に含まれる画素Piに対して算出される補正係数について説明する。
まず、画像補正部35は、画素Piを包含する予め定められたサイズの単位領域Aiを特定する。この場合、例えば画素Piが中央に位置する矩形形状の単位領域Aiが特定されるが、当該画素Piが角部に位置する単位領域Aiが特定されてもよいし、矩形形状以外の形状の単位領域Aiが特定されてもよい。
次に、画像補正部35は、特定された単位領域Aiに含まれる複数の画素の各々の画素値を対象撮像画像501から取得する。この単位領域Aiに含まれる複数の画素には、画素Piも含まれる。なお、上記したように対象撮像画像501がカラー画像である場合、画像補正部35によって取得される画素値の各々は、当該カラー画像に含まれるR画像の画素値、G画像の画素値及びB画像の画素値を含む。
画像補正部35は、取得された複数の画素の各々に含まれるR画像の画素値に基づいて、当該R画像の画素値の平均値(以下、R画像の平均画素値と表記)を算出する。同様に、画像補正部35は、取得された複数の画素の各々に含まれるG画像の画素値に基づいて当該G画像の画素値の平均値(以下、G画像の平均画素値と表記)を算出する。更に、画像補正部35は、取得された複数の画素の各々に含まれるB画像の画素値に基づいて当該B画像の画素値の平均値(以下、B画像の平均画素値と表記)を算出する。
更に、画像補正部35は、算出されたR画像の平均画素値、G画像の平均画素値及びB画像の平均画素値のうちの最大値(以下、RGB平均画素値の最大値と表記)を特定する。
この場合、画素P
iに対する補正係数は、以下の式(1)によって算出される。
なお、式(1)において、gain(R,G,B)は、画素Pi(R画像、G画像及びB画像の各々の画素値)に対する補正係数(ゲイン値)を示す。RaveはR画像の平均画素値、GaveはG画像の平均画素値、BaveはB画像の平均画素値を示す。また、max(Rave,Gave,Bave)は、RGB平均画素値の最大値を示す。
すなわち、本実施形態においては、RGB平均画素値の最大値をR画像の平均画素値で除算した値が画素Piの画素値に含まれるR画像の画素値に対する補正係数(以下、gain(R)と表記)である。また、RGB平均画素値の最大値をG画像の平均画素値で除算した値が画素Piの画素値に含まれるG画像の画素値に対する補正係数(以下、gain(G)と表記)である。また、RGB平均画素値の最大値をB画像の平均値で除算した値が画素Piの画素値に含まれるB画像の画素値に対する補正係数(以下、gain(B)と表記)である。
上記したように画素P
iに対する補正係数が算出された場合、当該補正係数を用いて当該画素P
iの画素値が補正される。具体的には、画素P
iの画素値に含まれるR画像の画素値、G画像の画素値及びB画像の画素値をP
i(R,G,B)とし、ホワイトバランス補正が行われた後の画素P
iの画素値をP
i´(R,G,B)とすると、P
i´(R,G,B)は以下の式(2)により算出される。
すなわち、ホワイトバランス補正が行われると、画素Piの画素値Pi(R,G,B)は、画素Piの画素値に含まれるR画像の画素値にgain(R)を乗算することによって得られる値、画素Piの画素値に含まれるG画像の画素値にgain(G)を乗算することによって得られる値、画素Piの画素値に含まれるB画像の画素値にgain(B)を乗算することによって得られる値を含む画素値Pi´(R,G,B)に補正される。
ここでは対象撮像画像501に含まれる画素Piについて説明したが、当該対象撮像画像501に含まれる他の画素についても同様の処理が実行される。
なお、上記したように画素値が補正される画素は少なくとも測距領域に含まれる画素であるが、対象撮像画像に含まれる全ての画素の画素値が補正されても構わない。
また、ここでは単位領域が画素値を補正する画素を包含する対象撮像画像の一部の領域であるものとして説明したが、単位領域は対象撮像画像の全体の領域であってもよい。
なお、例えばカラーバリエーションが豊富な画像が対象撮像画像であるような場合には、微小な領域を単位領域とした方が効果的なホワイトバランス補正を行うことができる。しかしながら、本実施形態においては対象撮像画像に生じるぼけを物理的な手掛かりとして被写体までの距離を取得(推定)する構成であるため、光学系の収差と被写体までの距離との関係に影響を与えない(つまり、ぼけの色等を変化させない)領域を単位領域とすることが好ましい。なお、光学系の収差と被写体までの距離との関係に影響を与えない領域とは例えば対象撮像画像に生じるぼけを包含するサイズの領域を含むが、上記したステップS5の処理が実行される時点では、測距領域に含まれる被写体までの距離(つまり、ぼけのサイズ)が不明であるため、例えば当該対象撮像画像(測距領域)に生じ得るぼけを包含することができる程度のサイズの領域を単位領域とするものとする。また、対象撮像画像に生じるぼけは位置依存性を有するため、単位領域のサイズは、例えば測距領域の位置等に基づいて定められてもよい。
再び図19に戻ると、距離取得部36は、上記した測距領域情報及びステップS5においてホワイトバランス補正(色補正)が行われた後の対象撮像画像に基づいて測距領域に含まれる被写体までの距離を示す距離情報を取得する(ステップS6)。
この場合、距離取得部36は、測距領域情報によって示される測距領域に関する情報(勾配データ)を統計モデル格納部31に格納されている統計モデルに入力する。これにより、統計モデルにおいて測距領域中の被写体までの距離が推定され、当該統計モデルは、当該推定された距離を出力する。なお、被写体までの距離は、測距領域を構成する画素毎に推定されて出力される。これにより、距離取得部36は、統計モデルから出力された距離を示す距離情報を取得することができる。
ここで、例えば図25に示すように、統計モデルは、撮像画像(対象撮像画像)501に関する情報から距離504を推定する際に、その推定の不確実性の度合い(以下、不確実度と表記)601を画素毎に算出し、当該不確実度601を距離504とともに出力するように構築(生成)されている場合がある。この不確実度601の算出方法は、特定の方法に限定されず、既知の様々な方法を適用することができる。
この場合、距離取得部36は、ステップS6において取得された距離情報とともに不確実度を取得する(ステップS7)。
ところで、上記した図20に示すプレビュー画面306aに設けられている信頼度確認モードボタン306dを押下する操作がユーザによって行われた場合、信頼度確認モード設定部37は、信頼度確認モードを設定する。なお、ユーザが信頼度確認モードボタン306dを押下する操作を行うタイミングは例えば上記したステップS1においてプレビュー表示が行われたタイミングであってもよいし、例えばステップS7の処理が実行された後であってもよい。信頼度確認モード設定部37によって信頼度確認モードが設定された場合、当該信頼度確認モードが設定されていることを示す情報(以下、信頼度確認モード設定フラグと表記)が画像処理装置3の内部で保持される。
上記したステップS7が実行されると、上記した信頼度確認モード設定フラグに基づいて、信頼度確認モードが設定されているか否かが判定される(ステップS8)。
信頼度確認モードが設定されていると判定された場合(ステップS8のYES)、ステップS7において取得された不確実度は、表示処理部32によってプレビュー表示される(ステップS9)。
この場合、上記した図21に示すプレビュー画面306eは図26に示すプレビュー画面306gに遷移する。
図26に示すように、プレビュー画面306gに設けられている画像表示領域306bにおいては、上記したように画素毎に算出された不確実度が信頼度として対象撮像画像上に重ねて表示される。
なお、本実施形態において特定の画素に対して算出された不確実度が高い場合は、当該特定の画素に対応する被写体までの距離の信頼度が低いことを表す。一方、特定の画素に対して算出された不確実度が低い場合は、当該特定の画素に対応する被写体までの距離の信頼度が高いことを表す。
また、画像表示領域306bにおいて、不確実度は、当該不確実度に応じた異なる色で表示されるものとする。これによれば、ユーザは、対象撮像画像上に表示された不確実度(信頼度)を直感的に把握することができる。
なお、不確実度は、例えば当該不確実度に応じた色の濃淡等で表してもよいし、測距領域または当該測距領域に含まれる被写体の輪郭(エッジ部)に加工を施す(例えば、輪郭の太さを変更する)ことにより表示してもよい。また、不確実度は、単に数値等として表示されてもよいし、他の形式で表示されてもよい。
ここで、プレビュー画面306gには、決定ボタン306h及び再度実行ボタン306iが更に設けられている。決定ボタン306hは、ステップS6において取得された距離情報を出力することを指示するためのボタンである。再度実行ボタン306iは、距離情報の取得を再度実行することを指示するためのボタンである。
ユーザは、上記したように不確実(信頼度)が表示されたプレビュー画面306g(画像表示領域306b)を参照して、測距領域に含まれる被写体までの距離の信頼度が高い(つまり、不確実度が低い)と判断できる場合には決定ボタン306hを押下する操作(つまり、距離情報を出力することを指示する操作)を行う。一方、ユーザは、測距領域に含まれる被写体までの距離の信頼度が低い(つまり、不確実度が高い)と判断できる場合には再度実行ボタン306iを押下する操作(つまり、距離情報の取得を再度実行することを指示する操作)を行う。
この場合、距離取得部36は、ユーザの操作に応じてステップS6において取得された距離情報を出力するか否かを判定する(ステップS10)。ステップS10においては、上記したプレビュー画面306gにおいて決定ボタン306hを押下する操作が行われた場合に距離情報を出力すると判定され、再度実行ボタン306iを押下する操作が行われた場合に距離情報を出力しないと判定される。
距離情報を出力すると判定された場合(ステップS10のYES)、出力部38は、ステップS6において取得された距離情報を出力する(ステップS11)。この場合、出力部38は、距離情報を、対象撮像画像中の測距領域と位置的に対応づけて配置したマップ形式の画像データ(距離情報によって示される距離を画素値とする画素から構成される画像データ)として出力することができる。なお、距離情報は、単に数値等として出力されてもよいし、他の形式で出力されてもよい。
また、距離情報は、上記したプレビュー画面に表示されてもよいし、当該プレビュー画面とは異なる画面に表示されてもよい。更に、距離情報は、例えば対象撮像画像と組み合わせて表示されてもよい。また、距離情報は、画像処理装置3内部または外部のサーバ装置等において保存されるようにしてもよい。
一方、距離情報を出力しないと判定された場合(ステップS10のNO)、ステップS5に戻って処理が繰り返される。この場合、上記したステップS5においてホワイトバランス補正が行われた(補正係数の算出に用いられた)単位領域のサイズを変更してステップS5の処理が再度実行される。
ここで、上記したようにホワイトバランス補正が行われる単位領域は光学系の収差と被写体までの距離との関係に影響を与えない(つまり、ぼけの色等を変化させない)領域とすることが好ましいが、上記したステップS5の処理が実行された時点では被写体までの距離(つまり、ぼけのサイズ)が不明であるため、当該ステップS5においては、撮像画像(測距領域)に生じ得るぼけを包含することができる程度のサイズの領域を単位領域としてホワイトバランス補正が行われている。これに対して、再度実行されるステップS5の処理においては、上記したステップS6の処理が実行されることによって統計モデルによってぼけのサイズが推定されている。このため、再度実行されるステップS5においては、統計モデルによって推定されたぼけ(つまり、測距領域に含まれる被写体までの距離に応じて生じるぼけ)を包含するサイズの領域を単位領域とする。これによれば、実際に対象撮像画像に生じているぼけのサイズに適した単位領域(微小な領域)で、より効果的なホワイトバランス補正を行うことができるため、後に再度実行されるステップS6において不確実度の低い(つまり、信頼度の高い)距離を示す距離情報を取得することが期待できる。
すなわち、本実施形態において繰り返しステップS5の処理が実行される場合には、不確実度(または不確実性が低い距離が推定される画素の割合)が減少するように補正係数が算出される(つまり、単位領域が変更される)ものとする。
ここでは再度実行ボタン306iを押下する操作が行われた場合にステップS5に戻って処理が実行されるものとして説明したが、当該再度実行ボタン306iを押下する操作が行われた場合には、例えばステップS3に戻って異なる測距領域が再度選定されるようにしてもよい。
また、本実施形態においては統計モデル格納部31に1つの統計モデルが格納されているものとして主に説明したが、当該統計モデル格納部31には複数の統計モデルが格納されていてもよい。具体的には、上記したようにレンズの種別によって特に画像の端部近傍のPSF形状が大きく異なることから、当該レンズの種別を考慮することなく生成された1つの統計モデルを用いて距離情報を取得する構成では、画像から取得される距離の精度が低下する場合がある。このため、統計モデル格納部31には、例えばレンズ毎の統計モデルが格納されていてもよい。このような構成の場合には、上記したように再度実行ボタン306iを押下する操作が行われた際に、上記したステップS6の処理において用いられた統計モデルを例えばレンズ情報(レンズ21の仕様値)によって特定されるレンズ21に応じた統計モデルに変更するようにしてもよい。なお、このように統計モデルを変更する場合には、例えば対象撮像画像を解析することによって得られる収差マップ等を利用してもよい。この場合、収差マップと当該収差マップが得られる画像に適切な統計モデルとを予め対応づけておくことにより、対象撮像画像を解析することによって得られる収差マップに対応する統計モデルに変更することが可能となる。また、統計モデルは、ステップS6において取得された距離情報に応じて変更されてもよい。
例えば、一度得られた距離情報のぼけサイズを包含する単位領域で色補正を行った画像で学習した統計モデルに変更する。
なお、図19には示されていないが、上記したように統計モデルが変更される場合には、単位領域(補正係数)を変更することなくステップS36以降の処理が実行されてもよい。
一方、ステップS8において信頼度確認モードが設定されていないと判定された場合(ステップS8のNO)、ステップS9及びS10の処理は実行されず、ステップS11の処理が実行される。この場合、例えばステップS6において取得された距離情報のうち不確実度が閾値以下(信頼度が閾値以上)の距離を示す距離情報のみを出力する(つまり、不確実度が閾値以下でない距離を示す距離情報を破棄する)ことができるが、当該ステップS6において取得された距離情報を全て出力するようにしてもよい。
上記した図19に示す処理によれば、ユーザの操作に基づいて測距領域が選定され、対象撮像画像に対するホワイトバランス補正が行われた後に、統計モデルを用いて距離情報及び不確実度が取得され、プレビュー画面に不確実度(信頼度)が表示されるが、このような一連の動作はインタラクティブに行われてもよい。例えば画像処理装置3(測距装置1)がスマートフォン等によって実現されている場合には、ユーザは、プレビュー画面を参照しながら測距領域を指定し、当該測距領域に含まれる距離の信頼度が低い場合には再度距離情報を取得させ、所望の距離情報が得られた時点で当該距離情報を出力するような操作を行うことができる。
なお、本実施形態においてはプレビュー画面(画像表示領域)に対するユーザの操作に応じて測距領域が選定されるものとして説明したが、当該測距領域は、ユーザの操作によらず、撮像画像の全体の領域としてもよいし、画像処理によって自動的に抽出された被写体を包含する領域としてもよい。この場合には、図1に示す測距領域選定部33が省略された構成としてもよく、図19に示すステップS2及びS3の処理は省略されてもよい。
更に、本実施形態においてはユーザの操作に応じて信頼度確認モードが設定されるものとして説明したが、常に信頼度確認モードが設定された動作または信頼度確認モードが設定されていない動作を行うようにしてもよい。この場合、図1に示す信頼度確認モード設定部37が省略された構成としてもよい。また、常に信頼度確認モードが設定された動作を行う場合には、図19に示すステップS8の処理は省略される。一方、常に信頼度確認モードが設定されていない動作を行う場合には、図19に示すS8~S10の処理は省略される。
また、本実施形態においては、統計モデルが不確実度を算出するように構築(生成)されているものとして説明したが、当該統計モデルは被写体までの距離を推定する際に不確実度を算出しないように構築されていてもよい。この場合、例えば図19に示すステップS7~S10の処理を省略することができる。
更に、本実施形態においてはプレビュー画面を参照しながらユーザが画像処理装置3(測距装置1)を操作するような使用態様を想定しているが、本実施形態は、プレビュー表示を行うことなく、単に撮像装置2によって撮像された撮像画像に含まれる被写体までの距離を示す距離情報が出力される、より簡易な処理を実行するように構成されていてもよい。この場合、図19に示すステップS4~S6及びS11の処理が実行されればよい。
上記したように本実施形態においては統計モデルを用いて撮像画像から被写体までの距離を取得することが可能であるが、当該統計モデルは、学習処理を実行することによって生成される。
以下、統計モデルを生成するための学習処理(以下、単に統計モデルの学習処理と表記)について説明する。図27は、本実施形態における統計モデルの学習処理(学習方法)の一例を示す。ここでは、撮像装置2によって撮像された画像を用いた統計モデルの学習処理について説明するが、当該統計モデルの学習処理は、例えば撮像装置2の光学系と同様の光学系を有する他のデバイス(カメラ等)によって撮像された画像を用いて行われてもよい。
なお、上記の説明では距離情報を取得するために撮像装置2によって撮像された画像を撮像画像としたが、本実施形態において、距離に応じて非線形に変化するぼけを統計モデルが学習するための画像については便宜的に学習用画像と称する。
上記した図13を参照して説明した第1方式、図15を参照して説明した第2方式、図17を参照して説明した第3方式のいずれの方式を用いる場合においても、統計モデルの学習処理は、基本的に、学習用画像701に関する情報を統計モデルに入力し、当該統計モデルによって推定された距離(距離情報)702と正解値703との誤差を当該統計モデルにフィードバックすることによって行われる。なお、フィードバックとは、誤差が減少するように統計モデルのパラメータ(例えば、重み係数)を更新することをいう。
上記した撮像画像から距離を推定する方式として第1方式が適用される場合には、統計モデルの学習処理時においても、学習用画像701から抽出された局所領域(画像パッチ)毎に、当該局所領域に関する情報(勾配データ)が統計モデルに入力され、当該統計モデルによって各局所領域内の各画素の距離702が推定される。このように推定された距離702と正解値703とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
同様に、撮像画像から距離を推定する方式として第2方式が適用される場合には、統計モデルの学習処理時においても、学習用画像701から抽出された局所領域(画像パッチ)毎に、当該局所領域に関する情報として勾配データ及び位置情報が統計モデルに入力され、当該統計モデルによって各局所領域内の各画素の距離702が推定される。このように推定された距離702と正解値703とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
また、撮像画像から距離を推定する方式として第3方式が適用される場合には、統計モデルの学習処理時においても、学習用画像701の全領域に関する情報(勾配データ)が一括して統計モデルに入力され、当該統計モデルによって当該学習用画像701内の各画素の距離702が推定される。このように推定された距離702と正解値703とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
なお、上記したように学習用画像701に関する情報が統計モデルに入力された場合には、上記した図25において説明した場合と同様に、距離702に対する不確実度602が算出されるものとする。この場合の統計モデルの学習処理においては、距離702と正解値703との誤差を不確実度602の二乗で除算した誤差をフィードバックするものとする。この場合、不確実度602を無限大とした際には誤差がゼロとなるため、不確実度602の二乗をペナルティとして誤差に加算するものとする。
上記した統計モデルの学習処理によれば、距離702と正解値703との誤差を不確実度602で補正した値が減少するように統計モデルのパラメータ(例えば、重み係数)が更新される。
ここで、例えば統計モデルにより推定された距離702と正解値703との誤差がない一方で、不確実度602が高い場合、当該距離702は偶然に推定された可能性があると推測することができる。この場合には、距離702(正解値703)の学習が不足していることを認識することができる。
このように統計モデルにより算出される不確実度を用いた場合には、学習の偏りを減少させることも可能である。
なお、本実施形態における統計モデルは、例えばピント位置を固定した状態で撮像装置2から被写体までの距離を変化させながら撮像された学習用画像を用いた学習処理が繰り返し実行されることによって生成される。また、1つのピント位置についての学習処理が完了した場合には、他のピント位置についても同様に学習処理を実行することによって、より精度の高い統計モデルを生成することができる。
また、上記した図18においては距離を推定することと、ぼけの色、サイズ及び形状を推定することとが同義であると説明したが、統計モデルの学習時に学習用画像に関する情報が統計モデルに入力される場合には、当該学習用画像が撮像された際の被写体までの実際の距離に対応する、ぼけの色、サイズ及び形状(を正負で示すぼけ値)が正解値として用いられる。このような学習が行われた統計モデルによれば、画像中の被写体までの距離として上記したぼけ値が出力される。
次に、図28のフローチャートを参照して、本実施形態に係る画像処理装置3において用いられる統計モデルを生成する処理(つまり、統計モデルの学習処理)の処理手順の一例について説明する。なお、図28に示す処理は、例えば画像処理装置3において実行されてもよいし、他の装置等において実行されてもよい。
まず、予め用意された学習用画像が取得される(ステップS21)。この学習用画像は、例えば撮像装置2に備えられるレンズ21を透過した光に基づいてイメージセンサ22によって生成された画像であって、撮像装置2の光学系(レンズ21)の収差の影響を受けた画像である。具体的には、学習用画像には、図4~図10において説明した被写体までの距離に応じて非線形に変化するぼけが生じている。
なお、統計モデルの学習処理においては、画像処理装置3において取得(推定)可能な距離の下限値(手前)から上限値(奥)まで極力細かい粒度で被写体を各距離で撮像した学習用画像が予め用意されているものとする。また、学習用画像としては、被写体が異なる様々な画像を用意しておくことが好ましい。
ここで、本実施形態においては、上記したように色補正(ホワイトバランス補正)が行われた撮像画像から被写体までの距離(を示す距離情報)が取得される。このため、ステップS1において取得された学習用画像に対しても同様に色補正が行われるものとする(ステップS22)。なお、ステップS22の処理は必須ではないが、上記した統計モデルにおいて推定される距離の精度を向上させるためには、学習用画像に対しても色補正を行うことが好ましい。ステップS22の処理は上記した図19に示すステップS5の処理と同様の処理であるため、ここではその詳しい説明を省略する。
ステップS22の処理が実行されると、当該ステップS22において色補正が行われた後の学習用画像に関する情報が統計モデルに入力される(ステップS23)。
撮像画像から距離を推定する方式として上記した第1方式が適用される場合には、学習用画像に関する情報として、当該学習用画像の局所領域毎に、R画像、G画像及びB画像の勾配データが統計モデルに入力される。
撮像画像から距離を推定する方式として上記した第2方式が適用される場合には、学習用画像に関する情報として、学習用画像の局所領域毎に、R画像、G画像及びB画像の勾配データと当該局所領域の学習用画像上における位置情報とが統計モデルに入力される。
撮像画像から距離を推定する方式として上記した第3方式が適用される場合には、学習用画像に関する情報として、当該学習用画像の全領域分のR画像、G画像及びB画像の勾配データが統計モデルに入力される。
なお、本実施形態においてはR画像、G画像及びB画像の勾配データが統計モデルに入力されるものとして説明するが、上記した学習用画像に生じるぼけの形状(PSF形状)の観点から距離を推定する場合には、R画像、G画像及びB画像の勾配データのうちの少なくとも1つの勾配データが統計モデルに入力されればよい。一方、色収差により学習用画像に生じるぼけの色及びサイズの観点から距離を推定する場合には、R画像、G画像及びB画像の勾配データのうちの少なくとも2つの勾配データが統計モデルに入力されればよい。なお、2色の勾配データを用いる場合には、当該2色を同じバランスにする色補正を行っても構わない。このような構成によれば、処理コストの削減に寄与することができる。
統計モデルに対して学習用画像に関する情報が入力されると、統計モデルによって、被写体までの距離が推定される(ステップS24)。この場合、統計モデルにより、学習用画像に生じているぼけが当該学習用画像から抽出され、当該ぼけに応じた距離が推定される。
また、ステップS24の処理が実行されると、統計モデルは、当該ステップS24において推定された距離に対する不確実度を算出する(ステップS25)。
ステップS24において推定された距離は、学習用画像の撮像時に得られている正解値と比較される(ステップS26)。
ステップS25における比較結果(誤差)は、ステップS25において算出された不確実度を用いて補正され、統計モデルにフィードバックされる(ステップS27)。これにより、統計モデルにおいては、誤差が減少するようにパラメータが更新される(つまり、学習用画像に生じているぼけが学習される)。
上記した図28に示す処理が学習用画像毎に繰り返し実行されることによって、当該学習用画像中の被写体までの距離に応じて非線形に変化するぼけを学習した統計モデルが生成される。このように生成された統計モデルは、画像処理装置3に含まれる統計モデル格納部31に格納される。
ここでは1つの統計モデルの学習処理について説明したが、統計モデル格納部31にレンズ毎の統計モデル(つまり、複数の統計モデル)を格納しておく場合には、例えば当該レンズ(当該レンズを用いて撮像された学習用画像)毎に上記した図28に示す処理が実行されればよい。
上記したように本実施形態においては、光学系の収差の影響を受けた撮像画像(第2画像)を取得し、当該撮像画像において表現されている色の数(つまり、カラーバリエーション)を低減する色補正を当該撮像画像に対して行い、当該色補正が行われた後の撮像画像(第3画像)を統計モデルに入力し、当該撮像画像中の被写体までの距離を示す距離情報(第1距離情報)を取得する。
撮像装置2によって撮像された撮像画像は光源の色温度(つまり、撮像装置2の周囲の環境)等の影響を受けているところ、本実施形態においては、上記した構成により、撮像画像のカラーバリエーションを減少させることで、当該撮像画像から取得される距離(統計モデルにおいて推定される距離)の精度及び当該撮像画像から距離を取得する際の環境ロバスト性を向上させることが可能となる。
また、本実施形態においては、光源の色温度等の影響により変化した色(つまり、画素値)を補正した撮像画像から被写体までの距離を示す距離情報を取得する構成であるため、光源の色温度等の影響を考慮した全ての色(カラーバリエーション)のぼけを学習する必要がなく、統計モデルの学習処理にかかる負担を軽減することができる。
なお、本実施形態においては撮像画像に含まれる予め定められたサイズの領域(第1領域)単位でホワイトバランス補正を行うが、本実施形態は撮像画像に生じるぼけを被写体までの距離に関する物理的な手掛かりとして当該距離を推定(取得)する構成であるから、当該ホワイトバランス補正が行われる領域(単位領域)は光学系の収差と被写体までの距離との関係性に影響を与えない領域とすることが好ましい。光学系の収差と被写体までの距離との関係性に影響を与えない領域は、例えば少なくとも被写体までの距離に応じて生じるぼけを包含するサイズの領域であるものとする。これによれば、ホワイトバランス補正が行われることによってぼけの色を変化させることがないため、当該ホワイトバランス補正が距離の精度を低下させる要因となることを抑制することができる。
また、本実施形態においては、例えば第1画素を包含する単位領域に含まれる複数の第2画素の画素値に基づいて当該第1画素に対する補正係数(第1補正係数)を算出し、当該補正係数を用いて第1画素の画素値に対する色補正(ホワイトバランス補正)を行うことにより、撮像画像を構成する画素(測距領域に含まれる画素)毎に画素値を適切に補正することができる。
更に、本実施形態において信頼度確認モードが設定されている場合には、統計モデルによって推定された距離に対する不確実度(不確実性の度合い)に基づくユーザの操作に応じて、ホワイトバランス補正が行われた際の単位領域(第1領域)とはサイズが異なる単位領域(第2領域)でホワイトバランス補正が再度行われる。このような構成によれば、より精度の高い(不確実度が低い)距離を示す距離情報を取得することができる可能性がある。
なお、本実施形態においては例えば統計モデルによって推定されたぼけのサイズを包含するサイズの領域を単位領域として再度ホワイトバランス補正を行うものとして説明したが、当該単位領域は、不確実度が減少するように変更されればよい。この場合、単位領域を任意に変更しながら、不確実度が減少する(例えば、ユーザがプレビュー画面に設けられている決定ボタンを押下する操作を行う)まで処理を繰り返すような構成であってもよい。
また、ホワイトバランス補正が再度行われた後の撮像画像(第4画像)から取得された距離情報(第2距離情報)によって示される距離の不確実度(第2不確実度)をユーザが参照し、当該不確実度が低いような場合には、当該不確実度に基づくユーザの操作に応じて当該取得された距離情報が出力される。このような構成によれば、ユーザの意図する距離情報(例えば、不確実度が低い距離を示す距離情報)を出力することができる。
なお、上記した信頼度確認モードが設定されていない場合には、不確実度が閾値以下である距離情報のみを出力する(つまり、不確実度が閾値以下でない距離情報を破棄する)ような構成としてもよい。
更に、本実施形態においては撮像画像中の測距領域(第3領域)を選定し、当該測距領域に対して色補正が行われ、当該測距領域中の被写体までの距離を示す距離情報を取得することにより、ユーザが意図する被写体までの距離を示す距離情報を出力することができる。この場合、ユーザの操作によって指定された領域が測距領域として選定されてもよいし、当該ユーザの操作によって指定された撮像画像中の位置に基づいて検出される被写体を包含する領域が測距領域として選定されてもよい。
なお、本実施形態においては色補正としてホワイトバランス補正が行われるものとして主に説明したが、本実施形態は、上記した光源の色温度等を含む撮像装置2の周辺の環境に応じて撮像画像に生じるカラーバリエーションを低減するような色補正が行われる構成であればよい。
(第2実施形態)
次に、第2実施形態について説明する。なお、本実施形態においては、前述した第1実施形態と同様の部分についての詳しい説明を省略し、当該第1実施形態とは異なる部分について主に説明する。
図29は、本実施形態に係る画像処理装置を含む測距システムの構成の一例を示す。図29においては、前述した図1と同一の部分には同一参照符号を付してその詳しい説明を省略し、当該図1とは異なる部分について説明する。
図29に示すように、本実施形態に係る画像処理装置3は、前述した第1実施形態において説明した信頼度確認モード設定部37に代えて評価部39を含む点で、当該第1実施形態とは異なる。
なお、本実施形態に係る画像処理装置3は前述した図2に示すハードウェア構成を有し、評価部39の一部または全ては、CPU301(つまり、画像処理装置3のコンピュータ)に画像処理プログラム303Aを実行させること、すなわち、ソフトウェアによって実現されるものとする。また、評価部39の一部または全ては、IC(Integrated Circuit)等のハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
評価部39は、前述した第1実施形態において説明した不確実度に基づいて、距離取得部36によって取得された距離情報を評価する。本実施形態においては、評価部39による評価結果に基づいて画像補正部35による色補正が再度行われる。
次に、図30のフローチャートを参照して、撮像画像から距離情報を取得する際の画像処理装置3の処理手順の一例について説明する。
まず、前述した図19に示すステップS1~S3の処理に相当するステップS31~S33の処理が実行される。
ここで、ステップS33の処理が実行されると、例えばユーザの操作に応じて不確実度の閾値が設定される(ステップS34)。
ステップS33の処理が実行されると、図19に示すステップS4~7の処理に相当するステップS35~S38の処理が実行される。
次に、評価部39は、距離取得部36によって取得された距離情報を評価するために、ステップS38において取得された不確実度がステップS34において設定された閾値以下であるか否かを判定する(ステップS39)。
なお、上記したステップS38においては測距領域に含まれる画素毎に推定された距離に対する不確実度(つまり、画素毎の不確実度)が取得されるが、ステップS39においては、例えば当該測距領域に含まれる複数の画素の不確実度の代表値(例えば、平均値等)が閾値以下であるか否かを判定するものとする。
不確実度(の代表値)が閾値以下でないと判定された場合(ステップS39のNO)、ステップS36に戻って処理が繰り返される(つまり、ステップS36の処理が再度実行される)。なお、この再度実行されるステップS36の処理は、前述した図19において説明した再度実行されるステップS5の処理と同様であるため、ここではその詳しい説明を省略する。
一方、不確実度(の代表値)が閾値以下であると判定された場合(ステップS39のYES)、前述した図19に示すステップS11の処理に相当するステップS40の処理が実行される。
前述した第1実施形態においては不確実度(信頼度)を参照(確認)したユーザの操作に応じて距離情報が出力されるが、上記したように本実施形態においては、不確実度がユーザによって設定された閾値以下でない場合にホワイトバランス補正を再度行い、当該不確実度が当該閾値以下である場合に自動的に距離情報が出力される。このような構成によれば、画像から取得される距離の精度及び当該画像から距離を取得する際の環境ロバスト性とともに、よりユーザの所望の信頼度の距離情報が得られるため実用性をも向上させることができる。
なお、上記した図30に示すステップS38においては、測距領域を構成する画素毎の不確実度の代表値が閾値以下であるか否かが判定されるものとして説明したが、例えば測距領域を構成する全ての画素に対する不確実度が第1閾値以下である画素の割合が第2閾値以上であるか否かが判定されるようにしてもよい。このような構成によれば、測距領域に含まれる全ての画素に対する不確実度が第1閾値以下である画素の割合が第2閾値以上でない場合にはステップS35に戻って処理が繰り返され、測距領域に含まれる全ての画素に対する不確実度が第1閾値以下である画素の割合が第2閾値以上である場合にステップS39の処理が実行される。
また、ステップS38の処理は、例えば測距領域を分割した小領域(以下、分割領域と表記)単位で実行されてもよい。具体的には、分割領域毎にステップS38の処理が実行され、不確実度が閾値以下でないと判定された分割領域についてのみステップS35に戻って処理が繰り返される。このような構成によれば、測距領域を分割した分割領域単位で不確実度を参照しながら最適なホワイトバランス補正を行い、当該分割領域単位の結果(距離情報)を統合して出力するようなことが可能となる。
更に、図30に示す処理においては、例えばステップS35~S37の処理が予め定められた回数繰り返し実行され、ステップS38において当該処理が予め定められた回数実行されたか否かが判定されてもよい。この場合、ステップS35~S37の処理が予め定められた回数実行されることによって複数の距離情報が取得されるが、ステップS39においては、当該複数の距離情報のうち、不確実度が最小となっている距離情報が出力されるものとする。このような構成によれば、より精度の高い距離を示す距離情報を出力することができる可能性がある。
なお、本実施形態は、前述した第1実施形態と同様に、プレビュー表示を行わない構成であってもよいし、測距領域選定部33が省略された構成であってもよい。
(応用例)
以下、前述した第1及び第2実施形態のような構成を有する測距システム1が適用される応用例について説明する。ここでは、便宜的に、測距システム1が図1及び図29に示す撮像装置2に相当する撮像部、画像処理装置3に相当する画像処理部を備える1つの装置(測距装置)として実現されている場合について説明する。以下の図面においては、測距装置1が撮像部2及び画像処理部3を備えるものとして説明する。
図31は、測距装置1が組み込まれている移動体800の機能構成の一例を示す。移動体800は、例えば自動運転機能を有する自動車、無人航空機、自立型の移動ロボット等として実現され得る。無人航空機は、人が乗ることができない飛行機、回転翼航空機、滑空機、飛行船であって、遠隔操作または自動操縦により飛行させることができるものであり、例えばドローン(マルチコプター)、ラジコン機、農薬散布用ヘリコプター等を含む。自立型の移動ロボットは、無人搬送車(AGV:Automated Guided Vehicle)のような移動ロボット、床を掃除するための掃除ロボット、来場者に各種案内を行うコミュニケーションロボット等を含む。移動体800には、ロボット本体が移動するものだけでなく、ロボットアームのような、ロボットの一部分を移動または回転させるような駆動機構を有する産業用ロボット等も含まれる。
図31に示すように、移動体800は、例えば測距装置1と制御信号生成部801と駆動機構802とを有する。測距装置1は、例えば撮像部2が移動体800またはその一部分の進行方向の被写体を撮像することができるように設置される。
図32に示すように、移動体800が自動車800Aである場合、測距装置1は、前方を撮像するいわゆるフロントカメラとして設置される。なお、測距装置1は、バック時に後方を撮像するいわゆるリアカメラとして設置されてもよい。また、フロントカメラ及びリアカメラとして複数の測距装置1が設置されてもよい。更に、測距装置1は、いわゆるドライブレコーダーとしての機能を兼ねて設置されるものであってもよい。すなわち、測距装置1は録画機器であってもよい。
図33は、移動体800がドローン800Bである場合の例を示す。ドローン800Bは、駆動機構802に相当するドローン本体811と4つのプロペラ部812~815とを備える。各プロペラ部812~815は、プロペラとモータとを有する。モータの駆動がプロペラに伝達されることによって、当該プロペラが回転し、その回転による揚力によってドローン800Bが浮上する。ドローン本体811の例えば下部には、測距装置1が搭載されている。
また、図34は、移動体800が自立型の移動ロボット800Cである場合の例を示す。移動ロボット800Cの下部には、駆動機構802に相当する、モータや車輪等を含む動力部821が設けられている。動力部821は、モータの回転数や車輪の向きを制御する。移動ロボット800Cは、モータの駆動が伝達されることによって、路面または床面に設置する車輪が回転し、当該車輪の向きが制御されることにより任意の方向に移動することができる。図34に示す例では、測距装置1は、例えば撮像部2が人型の移動ロボット800Cの前方を撮像するように、当該移動ロボット800Cの頭部に設置されている。なお、測距装置1は、移動ロボット800Cの後方や左右を撮像するように設置されてもよいし、複数の方位を撮像するように複数設置されてもよい。また、センサ等を搭載するためのスペースが少ない小型ロボットに測距装置1を設けて、自己位置、姿勢及び被写体の位置を推定することにより、デッドレコニングを行うこともできる。
なお、図35に示すように移動体800がロボットアーム800Dであり、当該ロボットアーム800Dの一部分の移動及び回転を制御する場合には、測距装置1は、当該ロボットアーム800Dの先端等に設置されてもよい。この場合、測距装置1に備えられる撮像部2によってロボットアーム800Dで把持される物体が撮像され、画像処理部3は、ロボットアーム800Dが把持しようとする物体までの距離を推定することができる。これにより、ロボットアーム800Dにおいて、物体の正確な把持動作を行うことができる。
制御信号生成部801は、測距装置1(画像処理部3)から出力される被写体までの距離を示す距離情報に基づいて駆動機構802を制御するための制御信号を出力する。駆動機構802は、制御信号生成部801から出力される制御信号により、移動体800または当該移動体800の一部分を駆動する。駆動機構802は、例えば移動体800または当該移動体800の一部分の移動、回転、加速、減速、推力(揚力)の加減、進行方向の転換、通常運転モードと自動運転モード(衝突回避モード)との切り替え及びエアバッグ等の安全装置の作動のうちの少なくとも1つを行う。駆動機構802は、例えば被写体までの距離が閾値未満である場合に、移動、回転、加速、推力(揚力)の加減、物体に近寄る方向への方向転換及び自動運転モード(衝突回避モード)から通常運転モードへの切り替えのうちの少なくとも1つを行ってもよい。
なお、図32に示す自動車800Aの駆動機構802は、例えばタイヤである。図33に示すドローン800Bの駆動機構802は、例えばプロペラである。図34に示す移動ロボット800Cの駆動機構802は、例えば脚部である。図35に示すロボットアーム800Dの駆動機構802は、例えば測距装置1が設けられた先端を支持する支持部である。
移動体800は、測距装置1から出力された被写体までの距離に関する情報(距離情報)が入力されるスピーカやディスプレイを更に備えていてもよい。このスピーカやディスプレイは、測距装置1と有線または無線で接続されており、被写体までの距離に関する音声または画像を出力するように構成されている。更に、移動体800は、測距装置1から出力された被写体までの距離に関する情報が入力され、例えば被写体までの距離に応じて点灯及び消灯することができる発光部を有していてもよい。
また、例えば移動体800がドローン800Bである場合においては、上空から、地図(物体の三次元形状)の作成、ビルや地形の構造調査、ひび割れや電線破断等の点検等が行われる際に、撮像部2が対象を撮像した画像を取得し、被写体までの距離が閾値以上であるか否かを判定する。制御信号生成部801は、この判定結果に基づいて、点検対象との距離が一定になるようにドローン800Bの推力を制御するための制御信号を生成する。ここで、推力には揚力も含まれるものとする。駆動機構802がこの制御信号に基づいてドローン800Bを動作させることにより、当該ドローン800Bを点検対象に対して平行して飛行させることができる。移動体800が監視用のドローンである場合、監視対象の物体との距離を一定に保つようにドローンの推力を制御するための制御信号を生成してもよい。
なお、移動体800(例えば、ドローン800B)が各種インフラストラクチャー(以下、単にインフラと表記)の保守点検等に用いられる場合には、当該インフラにおけるひび割れ箇所または錆が発生している箇所等を含む補修が必要な箇所(以下、補修箇所と表記)の画像を撮像部2で撮像することによって、当該補修箇所までの距離を得ることができる。この場合、補修箇所までの距離を利用することによって画像から当該補修箇所のサイズを算出することが可能である。これによれば、例えばインフラ全体を表すマップ上に補修箇所を表示することによって、当該インフラの保守点検者に補修箇所を認識させることができる。また、補修箇所のサイズを事前に保守点検者に伝えておくことは、円滑な補修作業を実施するためにも有用である。
また、ドローン800Bの飛行時に、撮像部2が地面方向を撮像した画像を取得し、地面との距離が閾値以上であるか否かを判定する。制御信号生成部801は、この判定結果に基づいて地面からの高さが指定された高さになるようにドローン800Bの推力を制御するための制御信号を生成する。駆動機構802がこの制御信号に基づいてドローン800Bを動作させることにより、当該ドローン800Bを指定された高さで飛行させることができる。ドローン800Bが農薬散布用ドローンであれば、このようにドローン800Bの地面からの高さを一定に保つことで、農薬を均等に散布しやすくなる。
また、移動体800が自動車800Aまたはドローン800Bである場合、自動車800Aの連隊走行やドローン800Bの連携飛行時に、撮像部2が前方の自動車や周囲のドローンを撮像し、当該自動車やドローンまでの距離が閾値以上であるか否かを判定する。制御信号生成部801は、この判定結果に基づいて、前方の自動車や周囲のドローンとの距離が一定になるように、自動車800Aの速度やドローン800Bの推力を制御するための制御信号を生成する。駆動機構802がこの制御信号に基づいて自動車800Aやドローン800Bを動作させることにより、自動車800Aの連隊走行やドローン800Bの連携飛行を容易に行うことができる。
更に、移動体800が自動車800Aである場合、自動車800Aのドライバーが閾値を設定(変更)することができるように、ユーザインタフェースを介してドライバーの指示を受理可能な構成としてもよい。これにより、ドライバーが好む車間距離で自動車800Aを走行させるようなことができる。また、前方の自動車との安全な車間距離を保つために、自動車800Aの速度に応じて閾値を変化させてもよい。安全な車間距離は、自動車800Aの速度によって異なる。そこで、自動車800Aの速度が速いほど閾値を大きく(長く)設定することができる。
また、移動体800が自動車800Aである場合には、進行方向の所定の距離を閾値に設定しておき、当該閾値の手前に物体が表れた際にブレーキを作動させるまたはエアバッグ等の安全装置を作動させる制御信号を生成するようにしてもよい。この場合、自動ブレーキやエアバッグ等の安全装置が駆動機構802に設けられる。
以上述べた少なくとも1つの実施形態によれば、画像から取得される距離の精度及び当該画像から距離を取得する際の環境ロバスト性を向上させることが可能な画像処理装置、測距装置、方法及びプログラムを提供することができる。
また、本実施形態及び本変形例に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるため、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。