(57)【要約】【課題】画像から距離を取得する際のロバスト性を向上させることが可能な画像処理装置、測距装置、方法及びプログラムを提供することにある。【解決手段】実施形態に係る画像処理装置は、格納手段と、画像取得手段と、距離取得手段とを具備する。格納手段は、光学系の収差の影響を受けた第１画像に生じる、当該第１画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルを格納する。画像取得手段は、光学系の収差の影響を受けた第２画像を取得する。距離取得手段は、取得された第２画像を統計モデルに入力し、当該第２画像中の被写体までの距離を示す距離情報を取得する。【選択図】  図１
2020148483.tif 000002
【特許請求の範囲】
【請求項１】
光学系の収差の影響を受けた第１画像に生じる、当該第１画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルを格納する格納手段と、
前記光学系の収差の影響を受けた第２画像を取得する画像取得手段と、
前記取得された第２画像を前記統計モデルに入力し、当該第２画像中の被写体までの距離を示す距離情報を取得する距離取得手段と
を具備する画像処理装置。
【請求項２】
前記第１画像中の被写体までの距離に応じて非線形に変化するぼけは、前記光学系の収差により生じるぼけを含む請求項１記載の画像処理装置。
【請求項３】
前記第１画像中の被写体までの距離に応じて非線形に変化するぼけは、前記光学系に取り込まれる光の量を調節する絞り機構の開口部の大きさまたは形状に応じて生じるぼけを含む請求項１または２に記載の画像処理装置。
【請求項４】
前記統計モデルは、前記第１画像中の被写体までの距離に応じて非線形に変化するぼけのみを学習することによって生成される請求項１記載の画像処理装置。
【請求項５】
前記統計モデルは、前記第１画像のうちの局所領域毎に、当該局所領域中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成される請求項１〜４のいずれか一項に記載の画像処理装置。
【請求項６】
前記統計モデルは、ニューラルネットワークまたはランダムフォレストである請求項１〜５のいずれか一項に記載の画像処理装置。
【請求項７】
前記統計モデルは、距離に応じて変化するぼけを前記第２画像から抽出し、当該ぼけに応じた距離を推定し、
前記距離取得手段は、前記推定された距離を示す距離情報を取得する
請求項１〜６のいずれか一項に記載の画像処理装置。
【請求項８】
前記距離取得手段は、前記取得された第２画像から局所領域を抽出し、当該抽出された局所領域に関する情報を前記統計モデルに入力して、当該局所領域中の被写体までの距離を示す距離情報を取得する請求項５記載の画像処理装置。
【請求項９】
前記統計モデルに入力される前記局所領域に関する情報は、当該局所領域を構成する各画素と当該画素に隣接する画素との画素値の差分を示す情報である請求項８記載の画像処理装置。
【請求項１０】
前記統計モデルに入力される前記局所領域に関する情報は、前記第２画像における当該局所領域の位置情報を含む請求項８または９に記載の画像処理装置。
【請求項１１】
前記位置情報は、前記第２画像上における前記局所領域の中心点の座標を示す情報である請求項１０記載の画像処理装置。
【請求項１２】
前記統計モデルは、前記第２画像を構成する複数の画素の各々について前記被写体までの距離を推定するとともに、当該推定された距離に対する不確実性の度合いを示す不確実度を算出し、
前記距離取得手段は、前記推定された距離を示す距離情報及び前記算出された不確実度を取得する
請求項１〜１１のいずれか一項に記載の画像処理装置。
【請求項１３】
前記距離取得手段は、前記取得された距離情報のうち、前記算出された不確実度が閾値以上である距離を示す距離情報を破棄する請求項１２記載の画像処理装置。
【請求項１４】
前記距離取得手段は、前記取得された距離情報によって示される第１距離を、当該第１距離が推定された画素の周辺に位置する画素について推定された第２距離を用いて補正し、
前記第１距離に対する不確実度は閾値以上であり、
前記第２距離に対する不確実度は前記閾値未満である
請求項１２記載の画像処理装置。
【請求項１５】
画像を撮像する撮像手段と、
前記撮像手段の光学系の収差の影響を受けた第１画像に生じる、当該第１画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルを格納する格納手段と、
前記撮像手段の光学系の収差の影響を受けた第２画像を前記撮像手段から取得する画像取得手段と、
前記取得された第２画像を前記統計モデルに入力し、当該第２画像中の被写体までの距離を示す距離情報を取得する距離取得手段と
を具備する測距装置。
【請求項１６】
光学系の収差の影響を受けた第１画像に生じる、当該第１画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルを格納手段に格納するステップと、
前記光学系の収差の影響を受けた第２画像を取得するステップと、
前記取得された第２画像を前記統計モデルに入力し、当該第２画像中の被写体までの距離を示す距離情報を取得するステップと
を具備する方法。
【請求項１７】
格納手段を有する画像処理装置のコンピュータによって実行されるプログラムであって、
前記コンピュータに、
光学系の収差の影響を受けた第１画像に生じる、当該第１画像中の被写体までの距離にも応じて非線形に変化するぼけを学習することによって生成された統計モデルを前記格納手段に格納するステップと、
前記光学系の収差の影響を受けた第２画像を取得するステップと、
前記取得された第２画像を前記統計モデルに入力し、当該第２画像中の被写体までの距離を示す距離情報を取得するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置、測距装置、方法及びプログラムに関する。
【背景技術】
【０００２】
一般的に、被写体までの距離を取得するために、２つの撮像装置（カメラ）やステレオカメラ（複眼のカメラ）で撮像された画像を用いることが知られていたが、近年では、１つの撮像装置（単眼のカメラ）で撮像された画像を用いて被写体までの距離を取得する技術が開発されている。
【０００３】
しかしながら、１つの撮像装置で撮像された画像から距離を取得する場合には、高いロバスト性を実現することが困難である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Marcela Cavalho、外４名、”Deep Depth from Defocus: how can defocus blur improve 3D estimation using dense neural networks?”、［online］、［平成３１年２月５日検索］、インターネット<URL: https://arxiv.org/abs/1809.01567>
【非特許文献２】P.Trouve et al., Passive depth estimation using chromatic aberration and a depth from defocus approach, Applied Optics, vol. 52, no. 29, pp. 7152-7163, 2013
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、本発明が解決しようとする課題は、画像から距離を取得する際のロバスト性を向上させることが可能な画像処理装置、測距装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
実施形態に係る画像処理装置は、格納手段と、画像取得手段と、距離取得手段とを具備する。前記格納手段は、光学系の収差の影響を受けた第１画像に生じる、当該第１画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルを格納する。前記画像取得手段は、前記光学系の収差の影響を受けた第２画像を取得する。前記距離取得手段は、前記取得された第２画像を前記統計モデルに入力し、当該第２画像中の被写体までの距離を示す距離情報を取得する。
【図面の簡単な説明】
【０００７】
【図１】実施形態に係る画像処理装置を含む測距システムの構成の一例を示す図。
【図２】画像処理装置のシステム構成の一例を示す図。
【図３】測距システムの動作の概要を説明するための図。
【図４】単レンズを用いた場合における被写体までの距離と色収差により画像に生じるぼけとの関係性を示す図。
【図５】色消しレンズを用いた場合における被写体までの距離と色収差により画像に生じるぼけとの関係性を示す図。
【図６】撮像装置に設けられている絞り機構の開口部の大きさとＰＳＦ形状との関係性を示す図。
【図７】各チャンネルの画像に生じるＰＳＦ形状の一例を示す図。
【図８】各チャンネルの画像に生じるＰＳＦ形状の別の例を示す図。
【図９】ＰＳＦ形状の非線形性と絞り機構の開口部の形状との関係を表す図。
【図１０】距離情報を取得する動作の概要を示す図。
【図１１】撮像画像から距離を推定する第１方式を説明するための図。
【図１２】第１方式において統計モデルに入力される情報の一例を示す図。
【図１３】撮像画像から距離を推定する第２方式を説明するための図。
【図１４】第２方式において統計モデルに入力される情報の一例を示す図。
【図１５】撮像画像から距離を推定する第３方式を説明するための図。
【図１６】統計モデルの学習方法の一例を示す図。
【図１７】画像から推定される被写体までの距離について具体的に説明するための図。
【図１８】統計モデルを生成する処理の処理手順の一例を示すフローチャート。
【図１９】撮像画像から距離情報を取得する際の画像処理装置の処理手順の一例を示すフローチャート。
【図２０】本実施形態の変形例の概要を説明するための図。
【図２１】統計モデルの学習方法の一例を示す図。
【図２２】撮像画像から距離情報を取得する際の画像処理装置の処理手順の一例を示すフローチャート。
【図２３】測距装置を含む移動体の機能構成の一例を示す図。
【図２４】移動体が自動車である場合について説明するための図。
【図２５】移動体がドローンである場合について説明するための図。
【図２６】移動体が自立型の移動ロボットである場合について説明するための図。
【図２７】移動体がロボットアームである場合について説明するための図。
【発明を実施するための形態】
【０００８】
以下、図面を参照して、実施形態について説明する。  
図１は、本実施形態に係る画像処理装置を含む測距システムの構成の一例を示す。図１に示す測距システム１は、画像を撮像し、当該撮像された画像を用いて撮像地点から被写体までの距離を取得（測定）するために使用される。
【０００９】
図１に示すように、測距システム１は、撮像装置２及び画像処理装置３を備える。本実施形態においては、測距システム１が別個の装置である撮像装置２及び画像処理装置３を備えるものとして説明するが、当該測距システム１は、撮像装置２が撮像部として機能し、画像処理装置３が画像処理部として機能する１つの装置（測距装置）として実現されていてもよい。また、画像処理装置３は、例えば各種クラウドコンピューティングサービスを実行するサーバとして動作するものであってもよい。
【００１０】
撮像装置２は、各種画像を撮像するために用いられる。撮像装置２は、レンズ２１とイメージセンサ２２とを備える。レンズ２１及びイメージセンサ２２は、撮像装置２の光学系（単眼カメラ）に相当する。なお、撮像装置２の光学系には、例えば当該撮像装置２の光学系に取り込まれる光の量（入光量）を調節するための開口部を有する絞り機構（図示せず）等が更に設けられている。
【００１１】
レンズ２１には、被写体で反射した光が入射する。レンズ２１に入射した光は、レンズ２１を透過する。レンズ２１を透過した光は、イメージセンサ２２に到達し、当該イメージセンサ２２によって受光（検出）される。イメージセンサ２２は、受光した光を電気信号に変換（光電変換）することによって、複数の画素から構成される画像を生成する。
【００１２】
なお、イメージセンサ２２は、例えばＣＣＤ（Charge Coupled Device）イメージセンサ及びＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサ等により実現される。イメージセンサ２２は、例えば赤色（Ｒ）の波長帯域の光を検出する第１センサ（Ｒセンサ）２２１、緑色（Ｇ）の波長帯域の光を検出する第２センサ（Ｇセンサ）２２２及び青色（Ｂ）の波長帯域の光を検出するセンサ（Ｂセンサ）２２３を含む。イメージセンサ２２は、第１〜第３センサ２２１〜２２３により対応する波長帯域の光を受光して、各波長帯域（色成分）に対応するセンサ画像（Ｒ画像、Ｇ画像及びＢ画像）を生成することができる。すなわち、撮像装置２によって撮像される画像はカラー画像（ＲＧＢ画像）であり、当該画像にはＲ画像、Ｇ画像及びＢ画像が含まれる。
【００１３】
なお、本実施形態においてはイメージセンサ２２が第１〜第３センサ２２１〜２２３を含むものとして説明するが、イメージセンサ２２は、第１〜第３センサ２２１〜２２３のうちの少なくとも１つを含むように構成されていればよい。また、イメージセンサ２２は、第１〜第３センサ２２１〜２２３に代えて、例えばモノクロ画像を生成するためのセンサを含むように構成されていてもよい。
【００１４】
本実施形態においてレンズ２１を透過した光に基づいて生成された画像は、光学系（レンズ２１）の収差の影響を受けた画像であり、当該収差により生じるぼけを含む。なお、画像に生じるぼけの詳細については後述する。
【００１５】
図１に示す画像処理装置３は、機能構成として、統計モデル格納部３１、画像取得部３２、距離取得部３３及び出力部３４を含む。
【００１６】
統計モデル格納部３１には、被写体までの距離を撮像装置２によって撮像された画像から取得するために用いられる統計モデルが格納されている。統計モデル格納部３１に格納されている統計モデルは、上記した光学系の収差の影響を受けた画像（第１画像）に生じる、当該画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成されている。なお、統計モデルは、例えばニューラルネットワークまたはランダムフォレスト等の既知の様々な機械学習のアルゴリズムを適用して生成することができるものとする。また、本実施形態において適用可能なニューラルネットワークには、例えば畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）、全結合ニューラルネットワーク及び再帰型ニューラルネットワーク等が含まれていてもよい。
【００１７】
画像取得部３２は、上記した撮像装置２によって撮像された画像（第２画像）を、当該撮像装置２（イメージセンサ２２）から取得する。
【００１８】
距離取得部３３は、画像取得部３２によって取得された画像を用いて、当該画像中の被写体までの距離を示す距離情報を取得する。この場合、距離取得部３３は、画像を統計モデル格納部３１に格納されている統計モデルに入力することによって、当該画像中の被写体までの距離を示す距離情報を取得する。
【００１９】
出力部３４は、距離取得部３３によって取得された距離情報を、例えば画像と位置的に対応づけて配置したマップ形式で出力する。この場合、出力部３４は、距離情報によって示される距離を画素値とする画素から構成される画像データを出力する（つまり、距離情報を画像データとして出力する）ことができる。このように距離情報が画像データとして出力される場合、当該画像データは、例えば色で距離を示す距離画像として表示することができる。出力部３４によって出力される距離情報は、例えば撮像装置２によって撮像された画像中の被写体のサイズを算出するために利用することも可能である。
【００２０】
図２は、図１に示す画像処理装置３のシステム構成の一例を示す。画像処理装置３は、ＣＰＵ３０１、不揮発性メモリ３０２、ＲＡＭ３０３及び通信デバイス３０４を備える。また、画像処理装置３は、ＣＰＵ３０１、不揮発性メモリ３０２、ＲＡＭ３０３及び通信デバイス３０４を相互に接続するバス３０５を有する。
【００２１】
ＣＰＵ３０１は、画像処理装置３内の様々なコンポーネントの動作を制御するためのプロセッサである。ＣＰＵ３０１は、単一のプロセッサであってもよいし、複数のプロセッサで構成されていてもよい。ＣＰＵ３０１は、不揮発性メモリ３０２からＲＡＭ３０３にロードされる様々なプログラムを実行する。これらプログラムは、オペレーティングシステム（ＯＳ）や様々なアプリケーションプログラムを含む。アプリケーションプログラムは、撮像装置２によって撮像された画像を用いて当該撮像装置２から当該画像中の被写体までの距離を取得するための画像処理プログラム３０３Ａを含む。
【００２２】
不揮発性メモリ３０２は、補助記憶装置として用いられる記憶媒体である。ＲＡＭ３０３は、主記憶装置として用いられる記憶媒体である。図２においては不揮発性メモリ３０２及びＲＡＭ３０３のみが示されているが、画像処理装置３は、例えばＨＤＤ（Hard Disk Drive）及びＳＳＤ（Solid State Drive）等の他の記憶装置を備えていてもよい。
【００２３】
なお、本実施形態において、図１に示す統計モデル格納部３１は、例えば不揮発性メモリ３０２または他の記憶装置等によって実現される。
【００２４】
また、本実施形態において、図１に示す画像取得部３２、距離取得部３３及び出力部３４の一部または全ては、ＣＰＵ３０１（つまり、画像処理装置３のコンピュータ）に画像処理プログラム３０３Ａを実行させること、すなわちソフトウェアによって実現されるものとする。この画像処理プログラム３０３Ａは、コンピュータ読み取り可能な記憶媒体に格納して頒布されてもよいし、ネットワークを通じて画像処理装置３にダウンロードされてもよい。なお、これらの各部３２〜３４の一部または全ては、ＩＣ（Integrated Circuit）等のハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
【００２５】
通信デバイス３０４は、有線通信または無線通信を実行するように構成されたデバイスである。通信デバイス３０４は、信号を送信する送信部と信号を受信する受信部とを含む。通信デバイス３０４は、ネットワークを介した外部機器との通信、周辺に存在する外部機器との通信等を実行する。この外部機器には、撮像装置２が含まれる。この場合、画像処理装置３は、通信デバイス３０４を介して、撮像装置２から画像を受信する。
【００２６】
図２においては省略されているが、画像処理装置３は、例えばマウスまたはキーボードのような入力デバイス及びディスプレイのような表示デバイスを更に備えていてもよい。
【００２７】
次に、図３を参照して、本実施形態における測距システム１の動作の概要について説明する。
【００２８】
測距システム１において、撮像装置２（イメージセンサ２２）は、上記したように光学系（レンズ２１）の収差の影響を受けた画像を生成する。
【００２９】
画像処理装置３（画像取得部３２）は、撮像装置２によって生成された画像を取得し、当該画像を統計モデル格納部３１に格納されている統計モデルに入力する。
【００３０】
画像処理装置３（距離取得部３３）は、統計モデルによって、当該統計モデルに入力された画像中の被写体までの距離を示す距離情報を取得する。
【００３１】
このように本実施形態においては、統計モデルを用いて、撮像装置２によって撮像された画像から距離情報を取得することができる。
【００３２】
ここで、本実施形態において、撮像装置２によって撮像された画像には、上記したように当該撮像装置２の光学系の収差（レンズ収差）に起因するぼけが生じている。
【００３３】
以下、画像に生じるぼけについて説明する。なお、本実施形態においては、撮像装置２の光学系の収差に起因するぼけのうち、主に色収差について説明する。
【００３４】
図４は、被写体までの距離と色収差により画像に生じるぼけとの関係性について示している。以下の説明では、撮像装置２においてピントが合う位置をピント位置と称する。
【００３５】
収差のあるレンズ２１を透過する際の光の屈折率は波長帯域毎に異なるため、例えば被写体の位置がピント位置からずれているような場合には、各波長帯域の光が１点に集まらず異なった点に到達する。これが、画像上で色収差（ぼけ）として現れる。
【００３６】
図４の上段は、撮像装置２（イメージセンサ２２）に対する被写体の位置がピント位置よりも遠い（つまり、被写体の位置がピント位置よりも奥にある）場合を示している。
【００３７】
この場合、赤色の波長帯域の光４０１に関しては、イメージセンサ２２（第１センサ２２１）において比較的小さいぼけｂＲを含む画像が生成される。一方、青色の波長帯域の光４０２に関しては、イメージセンサ２２（第３センサ２２３）において比較的大きいぼけｂＢを含む画像が生成される。なお、緑色の波長帯域の光４０３に関しては、ぼけｂＲとぼけｂＢとの中間の大きさのぼけを含む画像が生成される。したがって、このような被写体の位置がピント位置よりも遠い状態で撮像された画像においては、当該画像中の被写体の外側に青色のぼけが観察される。
【００３８】
一方、図４の下段は、撮像装置２（イメージセンサ２２）に対する被写体の位置がピント位置よりも近い（つまり、被写体の位置がピント位置よりも手前にある）場合を示している。
【００３９】
この場合、赤色の波長帯域の光４０１に関しては、イメージセンサ２２（第１センサ２２１）において比較的大きいぼけｂＲを含む画像が生成される。一方、青色の波長帯域の光４０２に関しては、イメージセンサ２２（第３センサ２２３）において比較的大きいぼけｂＢを含む画像が生成される。なお、緑色の波長帯域の光４０３に関しては、ぼけｂＲとぼけｂＢとの中間の大きさのぼけを含む画像が生成される。したがって、このような被写体の位置がピント位置よりも近い状態で撮像された画像においては、当該画像中の被写体の外側に赤色のぼけが観察される。
【００４０】
ここで、図４はレンズ２１が単純な単レンズの例を示しているが、一般的に、撮像装置２においては、例えば色収差補正が施されたレンズ（以下、色消しレンズと表記）が用いられる場合がある。なお、色消しレンズとは、低分散の凸レンズと高分散の凹レンズを組み合わせたレンズであり、色収差を補正するレンズとして最もレンズ枚数が少ないレンズである。
【００４１】
なお、図５は、レンズ２１として上記した色消しレンズを用いた場合における被写体までの距離と色収差により画像に生じるぼけとの関係性を示している。色消しレンズにおいては青色の波長と赤色の波長の焦点位置を揃える設計がされているが、色収差は完全には除去することができないため、被写体の位置がピント位置よりも遠い場合には緑色のぼけが発生し、被写体の位置がピント位置よりも近い場合には紫色のぼけが発生する。
【００４２】
図４の中段は、撮像装置２（イメージセンサ２２）に対する被写体の位置とピント位置とが一致している場合を示している。この場合には、イメージセンサ２２（第１〜第３センサ２２１〜２２３）においてはぼけの少ない画像が生成される。
【００４３】
ここで、撮像装置２の光学系には上記したように絞り機構が設けられているが、当該撮像装置２によって撮像された画像に生じるぼけの形状は、当該絞り機構の開口部の大きさによっても異なる。なお、ぼけの形状は、ＰＳＦ（Point Spread Function）形状と称され、点光源が撮像されたときに生じる光の拡散分布を示している。
【００４４】
図６は、撮像装置２に設けられている絞り機構の開口部の大きさとＰＳＦ形状との関係性を示す。
【００４５】
図６の上段は、ピント位置１５００ｍｍ、カメラレンズ焦点距離５０ｍｍ、Ｆ値（絞り）をＦ１．８とした撮像装置２によって撮像された画像に生じるＰＳＦ形状を、被写体の位置が撮像装置２から近い順に左から示している。図６の下段は、ピント位置１５００ｍｍ、カメラレンズ焦点距離５０ｍｍ、Ｆ値（絞り）をＦ４とした撮像装置２によって撮像された画像に生じるＰＳＦ形状を、被写体の位置が撮像装置２から近い順に左から示している。図６の上段及び下段の中央は、被写体の位置がピント位置と一致している場合のＰＳＦ形状を示している。
【００４６】
なお、Ｆ値とは、撮像装置２（光学系）に取り込む光の量を数値化したものである。Ｆ値が大きくなるにつれて、撮像装置２に取り込まれる光の量が多くなる（つまり、開口部の大きさが大きくなる）ことを示す。
【００４７】
図６の上段及び下段の対応する位置に示されているＰＳＦ形状は撮像装置２に対する被写体の位置が同一である場合のＰＳＦ形状であるが、当該被写体の位置が同一である場合であっても、上段のＰＳＦ形状（Ｆ値がＦ１．８である撮像装置２で撮像した画像に生じるＰＳＦ形状）と下段のＰＳＦ形状（Ｆ値がＦ４である撮像装置２で撮像した画像に生じるＰＳＦ形状）とでは形状が異なっている。
【００４８】
更に、図６の最も左側のＰＳＦ形状と最も右側のＰＳＦ形状に示すように、例えば被写体の位置からピント位置までの距離が同程度である場合であっても、当該被写体の位置がピント位置よりも近い場合と当該被写体の位置がピント位置よりも遠い場合とで、ＰＳＦ形状が異なっている。
【００４９】
なお、上記したように絞り機構の開口部の大きさや撮像装置２に対する被写体の位置に応じてＰＳＦ形状が異なる現象は、各チャンネル（ＲＧＢ画像、Ｒ画像、Ｇ画像及びＢ画像）においても同様に生じる。図７は、ピント位置１５００ｍｍ、カメラレンズ焦点距離５０ｍｍ、Ｆ値をＦ１．８とした撮像装置２によって撮像された各チャンネルの画像に生じるＰＳＦ形状を、被写体の位置がピント位置よりも近い（手前にある）場合と被写体の位置がピント位置よりも遠い（奥にある）場合とに分けて示している。図８は、ピント位置１５００ｍｍ、カメラレンズ焦点距離５０ｍｍ、Ｆ値をＦ４とした撮像装置２で撮像した各チャンネルの画像に生じるＰＳＦ形状を、被写体の位置がピント位置よりも近い場合と被写体の位置がピント位置よりも遠い場合とに分けて示している。
【００５０】
本実施形態に係る画像処理装置３（測距システム１）は、上記したような画像中の被写体までの距離（つまり、撮像装置２に対する被写体の位置）に応じて非線形に変化するぼけ（色、サイズ及び形状）に着目して生成された統計モデルを用いて、被写体までの距離を画像から取得するものである。なお、本実施形態において、非線形に変化するぼけには、上記した図４及び図５において説明した撮像装置２の光学系の色収差により生じるぼけや、図６〜図８において説明した撮像装置２の光学系に取り込まれる光の量を調節する絞り機構の開口部の大きさに応じて生じるぼけ等が含まれる。
【００５１】
また、ＰＳＦ形状は、絞り機構の開口部の形状によっても異なる。ここで、図９は、ＰＳＦ形状の非線形性（非対称性）と絞り機構の開口部の形状との関係を表している。上記したＰＳＦ形状の非線形性は、絞り機構の開口部の形状が円以外の場合に生じやすい。特に、ＰＳＦ形状の非線形性は、開口部の形状が奇数角形、或いはイメージセンサの水平または垂直軸に対して非対称に配置された偶数角形の場合により生じやすい。
【００５２】
本実施形態においては、撮像装置２のピント位置を固定したとき、レンズ２１を透過した光は、被写体までの距離に応じて異なる点広がり関数（ＰＳＦ）または点像分布関数の応答形状を有し、このような光をイメージセンサ２２で検出して画像が生成される。
【００５３】
図１０は、本実施形態において距離情報を取得する動作の概要を示す。以下の説明においては、距離情報（被写体までの距離）を取得するために撮像装置２によって撮像された画像を撮像画像と称する。
【００５４】
図１０に示す撮像画像５０１に生じるぼけ（ぼけ情報）５０２は、被写体５０３までの距離に関する物理的な手掛かりとなる。具体的には、ぼけの色、ＰＳＦのサイズ及び形状が、被写体５０３までの距離に関する手掛かりとなる。
【００５５】
本実施形態に係る画像処理装置３（距離取得部３３）においては、このような物理的な手掛かりである撮像画像５０１に生じるぼけ５０２を統計モデルで分析することによって被写体５０３までの距離５０４を推定する。
【００５６】
以下、本実施形態において統計モデルによって撮像画像から距離を推定する方式の一例について説明する。ここでは、第１〜第３方式について説明する。
【００５７】
まず、図１１を参照して、第１方式について説明する。第１方式において、距離取得部３３は、撮像画像５０１から局所領域（画像パッチ）５０１ａを抽出する。
【００５８】
この場合、例えば撮像画像５０１の全領域をマトリクス状に分割し、当該分割後の部分領域を局所領域５０１ａとして順次抽出するようにしてもよいし、撮像画像５０１を認識して、被写体（像）が検出された領域を網羅するように局所領域５０１ａを抽出するようにしてもよい。また、局所領域５０１ａは、他の局所領域５０１ａとの間で一部がオーバーラップしていてもよい。
【００５９】
距離取得部３３は、抽出された局所領域５０１ａ毎に、当該局所領域５０１ａに関する情報（撮像画像５０１の情報）を統計モデルへ入力することによって、当該局所領域５０１ａ中の被写体までの距離５０４を推定する。
【００６０】
このように局所領域５０１ａに関する情報が入力される統計モデルは、当該局所領域５０１ａを構成する画素毎に距離を推定する。
【００６１】
ここで、例えば特定の画素が第１局所領域５０１ａ及び第２局所領域５０１ａの両方に属する（つまり、第１局所領域５０１ａ及び第２局所領域５０１ａとの間で当該画素を含む領域がオーバーラップしている）場合、当該画素が第１局所領域５０１ａに属するものとして推定された距離と、当該画素が第２局所領域５０１ａに属するものとして推定された距離とでは異なる場合がある。
【００６２】
このため、例えば上記したように一部がオーバーラップする複数の局所領域５０１ａが抽出されている場合、当該複数の局所領域５０１ａがオーバーラップしている領域を構成する画素の距離は、例えば当該オーバーラップしている一方の局所領域５０１ａの一部の領域（画素）について推定された距離と他方の局所領域５０１ａの一部の領域（画素）について推定された距離との平均値としてもよい。また、一部がオーバーラップする３以上の局所領域５０１ａが抽出されている場合、当該３以上の局所領域５０１ａがオーバーラップしている領域を構成する画素の距離は、当該オーバーラップしている３以上の局所領域５０１ａの一部の領域毎に推定された距離による多数決で決定されてもよい。
【００６３】
図１２は、上記した第１方式において統計モデルに入力される局所領域５０１ａに関する情報の一例を示す。
【００６４】
距離取得部３３は、撮像画像５０１に含まれるＲ画像、Ｇ画像及びＢ画像のそれぞれについて、当該撮像画像５０１から抽出された局所領域５０１ａの勾配データ（Ｒ画像の勾配データ、Ｇ画像の勾配データ及びＢ画像の勾配データ）を生成する。このように距離取得部３３によって生成された勾配データが統計モデルに入力される。
【００６５】
なお、勾配データは、各画素と当該画素に隣接する画素との画素値の差分（差分値）を示す。例えば、局所領域５０１ａがｎ画素（Ｘ軸方向）×ｍ画素（Ｙ軸方向）の矩形領域として抽出される場合、当該局所領域５０１ａ内の各画素について算出した例えば右隣の画素との差分値をｎ行×ｍ列のマトリクス状に配置した勾配データが生成される。
【００６６】
統計モデルは、Ｒ画像の勾配データと、Ｇ画像の勾配データと、Ｂ画像の勾配データとを用いて、当該各画像に生じているぼけから距離を推定する。図１２においてはＲ画像、Ｇ画像及びＢ画像の各々の勾配データが統計モデルに入力される場合について示しているが、撮像画像５０１（ＲＧＢ画像）の勾配データが統計モデルに入力される構成であってもよい。
【００６７】
次に、図１３を参照して、第２方式について説明する。第２方式においては、第１方式における局所領域５０１ａに関する情報として、当該局所領域（画像パッチ）５０１ａ毎の勾配データ及び撮像画像５０１における当該局所領域５０１ａの位置情報が統計モデルに入力される。
【００６８】
位置情報５０１ｂは、例えば局所領域５０１ａの中心点を示すものであってもよいし、左上辺等の予め定められた一辺を示すものであってもよい。また、位置情報５０１ｂとして、局所領域（画像パッチ）５０１ａを構成する画素それぞれの撮像画像５０１上での位置情報を用いてもよい。
【００６９】
上記したように位置情報５０１ｂを更に統計モデルに入力することで、例えばレンズ２１の中心部を透過する光によって結像された被写体像のぼけと、当該レンズ２１の端部を透過する光によって結像された被写体像のぼけとの間で違いが生じる場合に、当該違いが距離の推定に与える影響を除去することができる。
【００７０】
つまり、この第２方式によれば、ぼけ、距離及び画像上の位置の相関に基づいて、撮像画像５０１から距離をより確実に推定することができる。
【００７１】
図１４は、上記した第２方式において統計モデルに入力される局所領域５０１ａに関する情報の一例を示す。
【００７２】
例えばｎ画素（Ｘ軸方向）×ｍ画素（Ｙ軸方向）の矩形領域が局所領域５０１ａとして抽出される場合、画像取得部３２は、当該局所領域５０１ａの例えば中心点に対応する撮像画像５０１上のＸ座標値をそれぞれｎ行×ｍ列のマトリクス状に配置したＸ座標データと、当該局所領域５０１ａの例えば中心点に対応する撮像画像５０１上のＹ座標値をそれぞれｎ行×ｍ列のマトリクス状に配置したＹ座標データとを取得し、これらのデータが距離取得部３３に入力される。
【００７３】
第２方式においては、このように距離取得部３３によって生成されたＸ座標データ及びＹ座標データが、上記したＲ画像、Ｇ画像及びＢ画像の勾配データとともに、統計モデルに入力される。
【００７４】
更に、図１５を参照して、第３方式について説明する。第３方式においては、上記した第１方式及び第２方式のような撮像画像５０１からの局所領域（画像パッチ）５０１ａの抽出は行われない。第３方式において、距離取得部３３は、撮像画像５０１の全領域に関する情報（Ｒ画像、Ｇ画像及びＢ画像の勾配データ）を統計モデルに入力する。
【００７５】
局所領域５０１ａ毎に距離５０４を推定する第１方式及び第２方式と比較して、第３方式は、統計モデルによる推定の不確実性が高くなる可能性があるが、距離取得部３３の負荷を軽減することができる。
【００７６】
以下の説明においては、上記した第１方式〜第３方式において統計モデルに入力される情報を、便宜的に、画像に関する情報と称する。
【００７７】
図１６は、本実施形態における統計モデルの学習方法の一例を示す。ここでは、撮像装置２によって撮像された画像を用いた統計モデルの学習について説明するが、当該統計モデルの学習は、例えば撮像装置２の光学系と同様の光学系を有する他のデバイス（カメラ等）によって撮像された画像を用いて行われてもよい。
【００７８】
なお、上記の説明では距離情報を取得するために撮像装置２によって撮像された画像を撮像画像としたが、本実施形態において、距離に応じて非線形に変化するぼけを統計モデルが学習するための画像については便宜的に学習用画像と称する。
【００７９】
上記した図１１を参照して説明した第１方式、図１３を参照して説明した第２方式、図１５を参照して説明した第３方式のいずれの方式を用いる場合においても、統計モデルの学習は、基本的に、学習用画像６０１に関する情報を統計モデルに入力し、当該統計モデルによって推定された距離（距離情報）６０２と正解値６０３との誤差を当該統計モデルにフィードバックすることによって行われる。なお、フィードバックとは、誤差が減少するように統計モデルのパラメータ（例えば、重み係数）を更新することをいう。
【００８０】
上記した撮像画像から距離を推定する方式として第１方式が適用される場合には、統計モデルの学習時においても、学習用画像６０１から抽出された局所領域（画像パッチ）毎に、当該局所領域に関する情報（勾配データ）が統計モデルに入力され、当該統計モデルによって各局所領域内の各画素の距離６０２が推定される。このように推定された距離６０２と正解値６０３とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
【００８１】
同様に、撮像画像から距離を推定する方式として第２方式が適用される場合には、統計モデルの学習時においても、学習用画像６０１から抽出された局所領域（画像パッチ）毎に、当該局所領域に関する情報として勾配データ及び位置情報が統計モデルに入力され、当該統計モデルによって各局所領域内の各画素の距離６０２が推定される。このように推定された距離６０２と正解値６０３とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
【００８２】
また、撮像画像から距離を推定する方式として第３方式が適用される場合には、統計モデルの学習時においても、学習用画像６０１の全領域に関する情報（勾配データ）が一括して統計モデルに入力され、当該統計モデルによって当該学習用画像６０１内の各画素の距離６０２が推定される。このように推定された距離６０２と正解値６０３とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
【００８３】
本実施形態における統計モデルは、例えばピント位置（焦点距離）を固定した状態で撮像装置２から被写体までの距離を変化させながら撮像される画像を用いた学習が繰り返し実行されることによって生成（用意）される。また、１つのピント位置についての学習が完了した場合には、他のピント位置についても同様に学習を実行することによって、より精度の高い統計モデルを生成することができる。このような統計モデルが画像処理装置３に含まれる統計モデル格納部３１に格納され、撮像画像から距離情報を取得する際に用いられる。
【００８４】
ここで、図１７を参照して、画像（撮像画像または学習画像）から推定される被写体までの距離について具体的に説明する。
【００８５】
図１７においては、被写体がピント位置よりも近い（手前にある）場合に生じるぼけのサイズをＸ軸上においてマイナスの値で示し、被写体がピント位置よりも遠い（奥にある）場合に生じるぼけのサイズをＸ軸上においてプラスの値で示している。つまり、図１７においては、ぼけの色及びサイズを正負の値で示している。
【００８６】
図１７においては、被写体の位置がピント位置よりも近い場合及び被写体の位置がピント位置よりも遠い場合のいずれの場合においても、被写体がピント位置から離れるほど、ぼけのサイズ（ピクセル）の絶対値が大きくなることが示されている。
【００８７】
図１７に示す例では、画像を撮像した光学系におけるピント位置が約１５００ｍｍである場合を想定している。この場合、例えば約−４．８ピクセルのぼけは光学系から約１０００ｍｍの距離に対応し、０ピクセルのぼけは光学系から１５００ｍｍの距離に対応し、約４．８ピクセルのぼけは光学系から約７５０ｍｍの距離に対応する。
【００８８】
ここでは、便宜的に、ぼけのサイズ（ピクセル）をＸ軸上に示す場合について説明したが、上記した図６〜図８において説明したように、画像に生じるぼけの形状（ＰＳＦ形状）についても、当該被写体がピント位置よりも近い場合と当該被写体がピント位置よりも遠い場合とで異なる。このため、図１７においてＸ軸上に示す値は、当該ぼけの形状（ＰＳＦ形状）を反映した値であってもよい。
【００８９】
なお、統計モデルの学習時に、学習用画像に関する情報が統計モデルに入力される場合には、当該学習用画像が撮像された際の被写体までの実際の距離に対応する、ぼけの色、サイズ及び形状を正負で示す値（以下、ぼけ値と表記）が正解値として用いられる。このような学習が行われた統計モデルによれば、画像中の被写体までの距離としては、上記したぼけ値が出力される。
【００９０】
例えば図１７の線分ｄ１によって示されるように被写体までの距離とぼけの色、サイズ（及び形状）とは相関があるため、距離を推定することと、ぼけの色、サイズ及び形状を推定することとは同義である。
【００９１】
なお、統計モデルに直接的に距離を推定させる場合と比較して、当該統計モデルにぼけの色、サイズ及び形状を推定させる場合の方が、統計モデルによる推定の精度を高めることができる。例えばｎ画素（Ｘ軸方向）×ｍ画素（Ｙ軸方向）の局所領域毎に当該局所領域に関する情報が統計モデルに入力される場合、当該統計モデルは、その局所領域を構成する各画素について推定したぼけの色、サイズ及び形状（を示すぼけ値）をｎ行×ｍ列に配列した距離を出力するものとする。
【００９２】
なお、統計モデルの学習においては、画像処理装置３において取得（推定）可能な距離の下限値（手前）から上限値（奥）まで極力細かい粒度で被写体を各距離で撮像した学習用画像を用意し、これらの学習用画像に関する情報を統計モデルに入力する。統計モデルの学習において用いられる正解値としては、このような学習用画像が撮像されたときの被写体までの距離に対応するぼけの色、サイズ及び形状を示すぼけ値を用いる。なお、統計モデルの学習には、被写体が異なる様々な学習画像が用意されることが好ましい。
【００９３】
次に、図１８に示すフローチャートを参照して、本実施形態に係る画像処理装置３において用いられる統計モデルを生成する処理の処理手順について説明する。なお、図１８に示す処理は、例えば画像処理装置３において実行されてもよいし、他の装置等において実行されてもよい。
【００９４】
まず、予め用意された学習用画像に関する情報が統計モデルに入力される（ステップＳ１）。この学習用画像は、例えば撮像装置２に備えられるレンズ２１を透過した光に基づいてイメージセンサ２２によって生成された画像であって、撮像装置２の光学系（レンズ２１）の収差の影響を受けた画像である。具体的には、学習用画像には、上記した図４〜図８において説明した被写体までの距離に応じて非線形に変化するぼけが生じている。
【００９５】
なお、学習用画像に生じるぼけと相関がある当該学習用画像を撮像した光学系の情報（例えば、絞り機構の開口部の大きさ等）については、図１８に示す処理を実行する画像処理装置３または他の装置等において把握されているものとする。
【００９６】
撮像画像から距離を推定する方式として上記した第１方式が適用される場合には、学習用画像に関する情報として、当該学習用画像の局所領域毎に、Ｒ画像、Ｇ画像及びＢ画像の勾配データが統計モデルに入力される。
【００９７】
撮像画像から距離を推定する方式として上記した第２方式が適用される場合には、学習用画像に関する情報として、学習用画像の局所領域毎に、Ｒ画像、Ｇ画像及びＢ画像の勾配データと当該局所領域の学習用画像上における位置情報とが統計モデルに入力される。
【００９８】
撮像画像から距離を推定する方式として上記した第３方式が適用される場合には、学習用画像に関する情報として、当該学習用画像の全領域分のＲ画像、Ｇ画像及びＢ画像の勾配データが統計モデルに入力される。
【００９９】
なお、本実施形態においてはＲ画像、Ｇ画像及びＢ画像の勾配データが統計モデルに入力されるものとして説明するが、上記した学習用画像に生じるぼけの形状（ＳＰＦ形状）の観点から距離を推定する場合には、Ｒ画像、Ｇ画像及びＢ画像の勾配データのうちの少なくとも１つの勾配データが統計モデルに入力されればよい。一方、色収差により学習用画像に生じるぼけの色及びサイズの観点から距離を推定する場合には、Ｒ画像、Ｇ画像及びＢ画像の勾配データのうちの少なくとも２つの勾配データが統計モデルに入力されればよい。
【０１００】
統計モデルに対して学習用画像に関する情報が入力されると、統計モデルによって、被写体までの距離が推定される（ステップＳ２）。この場合、統計モデルにより、学習用画像に生じているぼけが当該学習用画像から抽出され、当該ぼけに応じた距離が推定される。
【０１０１】
ステップＳ２において推定された距離は、学習用画像の撮像時に得られている正解値と比較される（ステップＳ３）。
【０１０２】
ステップＳ３における比較結果（誤差）は、統計モデルにフィードバックされる（ステップＳ４）。これにより、統計モデルにおいては、誤差が減少するようにパラメータが更新される（つまり、学習用画像に生じているぼけが学習される）。
【０１０３】
上記した図１８に示す処理が学習用画像毎に繰り返し実行されることによって、当該学習用画像中の被写体までの距離に応じて非線形に変化するぼけを学習した統計モデルが生成される。このように生成された統計モデルは、画像処理装置３に含まれる統計モデル格納部３１に格納される。
【０１０４】
図１９に示すフローチャートを参照して、撮像画像から距離情報を取得する際の画像処理装置３の処理手順の一例について説明する。
【０１０５】
まず、撮像装置２（イメージセンサ２２）は、被写体を撮像することによって当該被写体を含む撮像画像を生成する。この撮像画像は、上記したように撮像装置２の光学系（レンズ２１）の収差の影響を受けた画像である。
【０１０６】
なお、撮像画像に生じるぼけと相関がある当該撮像画像を撮像した撮像装置２の光学系の情報（例えば、絞り機構の開口部の大きさ等）については、画像処理装置３において把握されているものとする。
【０１０７】
画像処理装置３に含まれる画像取得部３２は、撮像画像を撮像装置２から取得する（ステップＳ１１）。
【０１０８】
次に、距離取得部３３は、ステップＳ１１において取得された撮像画像に関する情報を、統計モデル格納部３１に格納されている統計モデル（図１８に示す処理が実行されることによって事前に学習された統計モデル）に入力する（ステップＳ１２）。なお、このステップＳ１２の処理は上記した図１８に示すステップＳ１の処理と同様であるため、ここではその詳しい説明を省略する。
【０１０９】
ステップＳ１２の処理が実行されると、統計モデルにおいて被写体までの距離が推定され、統計モデルは、当該推定された距離を出力する。なお、被写体までの距離は、撮像画像を構成する画素毎に推定されて出力される。これにより、距離取得部３３は、統計モデルから出力された距離を示す距離情報を取得する（ステップＳ１３）。
【０１１０】
ステップＳ１３の処理が実行されると、出力部３４は、当該ステップＳ１３において取得された距離情報を、例えば撮像画像５０１と位置的に対応づけて配置したマップ形式で出力する（ステップＳ１４）。なお、本実施形態においては距離情報がマップ形式で出力されるものとして主に説明したが、当該距離情報は、他の形式で出力されても構わない。
【０１１１】
上記したように本実施形態においては、光学系の収差の影響を受けた学習用画像（第１画像）に生じる、当該画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルを統計モデル格納部３１に予め格納しておき、当該光学系の収差を受けた撮像画像が取得された場合に、当該撮像画像を当該統計モデルに入力することによって、当該撮像画像中の被写体までの距離を示す距離情報を取得する。
【０１１２】
なお、本実施形態において、画像中の被写体までの距離に応じて非線形に変化するぼけには、例えば光学系の色収差により生じるぼけ及び当該光学系に取り込まれる光の量を調節する絞り機構の開口部の大きさまたは形状に応じて生じるぼけのうちの少なくとも一方が含まれる。また、本実施形態においては光学系の収差として主に色収差についてのみ説明したが、本実施形態において用いられる統計モデルは、他の収差により生じるぼけを学習する（つまり、他の収差により生じるぼけに基づいて距離情報を取得する）ものであってもよい。本実施形態においては例えばモノクロ画像に生じるような単色収差でも距離を推定可能であるが、色収差があるカラー画像の場合には距離の推定精度を向上させることができる。
【０１１３】
本実施形態においては、画像中の被写体までの距離が当該画像に生じるぼけと相関があるという観点に基づいて、統計モデルにより距離に応じて変化するぼけ（ぼけ情報）を撮像画像から抽出することによって、当該ぼけに応じた距離を推定することができる。
【０１１４】
すなわち、本実施形態においては、上記した光学系（レンズ２１）の収差の影響を受けた画像中の被写体までの距離に応じて非線形に変化するぼけに着目して学習（深層学習）した統計モデルを用いることによって、撮像画像中の被写体までの距離を推定し、当該推定された距離を示す距離情報の取得することを実現する。
【０１１５】
ここで、例えば画像全体のぼけ情報とセマンティック情報とを用いて学習した統計モデルを用いて距離を推定するようなものがあるが、この場合には、細かいぼけ情報を利用することができず、更には、環境にロバスト性を持たせる（すなわち、様々な撮像画像から高精度で距離を推定可能とする）ために膨大な学習データが必要となる。
【０１１６】
これに対して、本実施形態においては、統計モデルが画像に生じるぼけのみを学習する構成であるため、上記したようなぼけ情報とセマンティック情報とを用いて学習する場合と比較して、撮像画像から距離（距離情報）を取得する際のロバスト性を向上させる（つまり、高いロバスト性を実現する）ことができる。
【０１１７】
また、単眼カメラを用いて距離を推定するために当該カメラの開口部にフィルタを設ける（つまり、カメラのレンズに細工を施す）ような構成があるが、このような構成においては当該フィルタによって光の透過化率が低下し、カラーバランスが偏りやすい。更に、フィルタ等の部品数の増加によってコストが高くなる。
【０１１８】
これに対して、本実施形態においては、光の透過率の低下及びカラーバランスの偏りを生じることはなく、更には、コストが高くなることもない。
【０１１９】
また、本実施形態において、統計モデルが画像から抽出された局所領域毎にぼけを学習する場合には、撮像画像から高い精度の距離を推定可能な統計モデルを生成することができる。この場合、撮像画像から抽出された局所領域に関する情報を統計モデルに入力することによって、当該局所領域毎に、当該局所領域内の被写体までの距離を示す距離情報を取得することができる。
【０１２０】
なお、局所領域に関する情報には、例えば当該局所領域を構成する各画素の隣接する画素との画素値の差分を示す情報が含まれるが、他の情報が局所領域に関する情報として用いられてもよい。
【０１２１】
具体的には、局所領域に関する情報として、画像における当該局所領域の位置情報を更に統計モデルに入力してもよい。このような構成によれば、局所領域の位置を考慮した、より精度の高い距離情報を取得することができる。なお、この位置情報は、例えば撮像画像上における局所領域の中心点の座標を示す情報であるが、他の情報であってもよい。
【０１２２】
ここでは統計モデルが画像から抽出された局所領域毎にぼけを学習する場合について説明したが、統計モデルが学習用画像の全領域分のぼけを一括して学習し、撮像画像の全領域分のぼけを入力して距離を推定する構成とした場合には、画像処理装置３（距離取得部３３）の演算負荷等を低減することが可能となる。
【０１２３】
なお、本実施形態における統計モデルは、例えばニューラルネットワークまたはランダムフォレストであるものとして説明したが、他のアルゴリズムが適用されたものであってもよい。
【０１２４】
次に、本実施形態の変形例に係る画像処理装置３について説明する。以下の説明においては、上述した本実施形態の説明において用いた図面と同様の部分には同一参照符号を付してその詳しい説明を省略するものとし、当該本実施形態と異なる点についてのみ主に説明する。
【０１２５】
まず、図２０を参照して、本変形例の概要を説明する。図２０に示すように、本変形例においては、統計モデルが撮像画像５０１に関する情報から距離５０４を推定する際に、その推定の不確実性の度合い（以下、不確実度と表記）７０１を画素毎に算出し、当該不確実度７０１を距離５０４とともに出力する。この不確実度７０１の算出方法は、特定の方法に限定されず、既知の様々な方法を適用することができる。
【０１２６】
本変形例において、距離取得部３３は、統計モデルから出力される不確実度を調べ、当該不確実度が閾値以上であった場合には、例えば取得された距離情報（つまり、不確実度が閾値以上の距離を示す距離情報）を破棄する。なお、距離情報は当該距離情報によって示される距離が推定された画素に対応する位置に配置されて出力される（つまり、マップ形式で出力される）が、距離情報を破棄する場合は、例えば統計モデルによって推定された距離（距離情報）が無効であることを示す値を、当該距離が推定された画素に対応する位置に配置するものとする。
【０１２７】
また、距離取得部３３は、特定の画素について推定された距離に対する不確実度が閾値以上である場合、当該距離を、当該画素の周辺の画素について推定された距離（不確実度が閾値未満である距離）を用いて補正することも可能である。この補正においては、例えば周辺の画素について推定された距離の平均値を補正値としてもよいし、当該距離による多数決で補正値を決定してもよい。
【０１２８】
図２１は、本変形例における統計モデルの学習方法の一例を示す。図２１に示すように、統計モデルが不確実度を出力する本変形例においても、基本的には、学習用画像６０１に関する情報を統計モデルに入力し、統計モデルによって推定された距離６０２と正解値６０３との誤差を統計モデルにフィードバックする。ただし、学習用画像６０１に関する情報が入力された統計モデルにおいては、上記したように推定された距離６０２に対する不確実度７０２が算出される。このため、本変形例においては、距離６０２と正解値６０３との誤差を不確実度７０２の二乗で割り算した誤差をフィードバックするものとする。この場合、不確実度７０２を無限大とした際には誤差がゼロになるため、不確実度７０２の二乗をペナルティとして誤差に加算するものとする。
【０１２９】
本変形例においては、上記したように距離６０２と正解値６０３との誤差を不確実度７０２で補正した値が減少するように統計モデルのパラメータ（例えば、重み係数）が更新される。
【０１３０】
ここで、例えば統計モデルにより推定された距離６０２と正解値６０３との誤差がない一方で、不確実度７０２が高い場合、当該距離６０２は偶然に推定された可能性があると推測することができる。この場合には、距離６０２（正解値６０３）の学習が不足していることを認識することができる。
【０１３１】
本変形例では、統計モデルにより算出される不確実度を用いることによって、このような学習の偏りを減少させることができる。
【０１３２】
以下、本変形例に係る画像処理装置３の動作について説明する。なお、本変形例に係る画像処理装置３において用いられる統計モデルを生成する処理については、上記した不確実度で補正した誤差を用いる点以外は上述した図１８に示す処理と同様であるため、その詳しい説明を省略する。
【０１３３】
ここでは、図２２に示すフローチャートを参照して、撮像画像から距離情報を取得する際の画像処理装置３の処理手順について説明する。
【０１３４】
まず、上述した図１９に示すステップＳ１１及びＳ１２の処理に相当するステップＳ２１及びＳ２２の処理が実行される。
【０１３５】
本変形例においては、ステップＳ２２の処理が実行されると、統計モデルによって、被写体までの距離が推定されるとともに、当該距離に対する不確実度（不確実性の度合い）が算出される。なお、被写体までの距離及び不確実度は、撮像画像を構成する画素毎に統計モデルから出力される。
【０１３６】
これにより、距離取得部３３は、統計モデルから出力された距離を示す距離情報及び不確実度を撮像画像を構成する画素毎に取得する（ステップＳ２３）。
【０１３７】
次に、ステップＳ２３において取得された距離情報（つまり、画素毎の距離情報）の各々についてステップＳ２４及びＳ２５の処理が実行される。以下の説明においては、ステップＳ２４及びＳ２５の処理の対象となる距離情報を対象距離情報とし、当該対象距離情報によって示される距離に対する不確実度を対象不確実度とする。更に、統計モデルにおいて対象距離情報によって示される距離が推定（出力）された撮像画像を構成する画素を対象画素とする。
【０１３８】
この場合、距離取得部３３は、対象不確実度が閾値以上であるか否かを判定する（ステップＳ２４）。
【０１３９】
対象不確実度が閾値以上であると判定された場合（ステップＳ２４のＹＥＳ）、距離取得部３３は、ステップＳ２３において取得された画素毎の距離情報のうち、撮像画像において対象画素の周辺に位置する画素（以下、周辺画素と表記）について推定された距離を示す距離情報であって、当該距離情報によって示される距離に対する不確実度が閾値未満である距離情報を特定する。ここで特定される距離情報は、複数であってもよいし、１つであってもよい。距離取得部３３は、特定された距離情報によって示される距離を用いて、対象距離情報によって示される距離を補正する（ステップＳ２５）。周辺画素について推定された距離を示す距離情報の中に、不確実度が閾値未満である距離情報が存在しない場合には、対象距離情報によって示される距離は例えば予め定めた不定値に設定される。
【０１４０】
なお、複数の距離情報が特定された場合、対象距離情報によって示される距離は、当該複数の距離情報の各々によって示される距離（つまり、周辺画素について推定された距離）の平均値等に補正されてもよいし、当該複数の距離情報によって示される距離による多数決に基づいて補正されてもよい。また、１つの距離情報が特定された場合、対象距離情報によって示される距離は、当該１つの距離情報によって示される距離に基づいて補正されればよい。
【０１４１】
一方、対象不確実度が閾値以上でない（つまり、閾値未満である）と判定された場合（ステップＳ２４のＮＯ）、ステップＳ２５の処理は実行されない。
【０１４２】
次に、ステップＳ２３において取得された全ての距離情報について上記したステップＳ２４及びＳ２５の処理が実行されたか否かが判定される（ステップＳ２６）。
【０１４３】
全ての距離情報について処理が実行されていないと判定された場合（ステップＳ２６のＮＯ）、ステップＳ２４に戻って処理が繰り返される。この場合、ステップＳ２４及びＳ２５の処理が実行されていない距離情報を対象距離情報として処理が実行される。
【０１４４】
一方、全ての距離情報について処理が実行されたと判定された場合（ステップＳ２６のＹＥＳ）、上述した図１９に示すステップＳ１４の処理に相当するステップＳ２７の処理が実行される。
【０１４５】
なお、図２２に示す例においては、周辺画素について推定された距離を用いて不確実度が閾値以上である距離を補正するものとして説明したが、当該不確実度が閾値以上である距離を示す距離情報は、破棄されて、出力部３４によって出力されないようにしてもよい。
【０１４６】
上記したように本変形例においては、統計モデルから算出される不確実度を利用することによって、当該不確実度が閾値以上の距離（つまり、不確実性の度合いが高く、誤って推定された可能性が高い距離）がそのまま使用されること等を防止することができる。
【０１４７】
（応用例）  
以下、前述した実施形態及び変形例のような構成を有する測距システム１が適用される応用例について説明する。ここでは、便宜的に、測距システム１が図１に示す撮像装置２に相当する撮像部、画像処理装置３に相当する画像処理部を備える１つの装置（測距装置）として実現されている場合について説明する。以下の図面においては、測距装置１が撮像部２及び画像処理部３を備えるものとして説明する。
【０１４８】
図２３は、測距装置１が組み込まれている移動体８００の機能構成の一例を示す。移動体８００は、例えば自動運転機能を有する自動車、無人航空機、自立型の移動ロボット等として実現され得る。無人航空機は、人が乗ることができない飛行機、回転翼航空機、滑空機、飛行船であって、遠隔操作または自動操縦により飛行させることができるものであり、例えばドローン（マルチコプター）、ラジコン機、農薬散布用ヘリコプター等を含む。自立型の移動ロボットは、無人搬送車（ＡＧＶ：Automated Guided Vehicle）のような移動ロボット、床を掃除するための掃除ロボット、来場者に各種案内を行うコミュニケーションロボット等を含む。移動体８００には、ロボット本体が移動するものだけでなく、ロボットアームのような、ロボットの一部分を移動または回転させるような駆動機構を有する産業用ロボット等も含まれる。
【０１４９】
図２３に示すように、移動体８００は、例えば測距装置１と制御信号生成部８０１と駆動機構８０２とを有する。測距装置１に備えられる撮像部２は、例えば移動体８００またはその一部分の進行方向の被写体を撮像するように設置される。
【０１５０】
図２４に示すように、移動体８００が自動車８００Ａである場合、撮像部（撮像装置）２は、前方を撮像するいわゆるフロントカメラとして設置される。なお、撮像部２は、バック時に後方を撮像するいわゆるリアカメラとして設置されてもよい。また、フロントカメラ及びリアカメラとして複数の撮像部２が設置されてもよい。更に、撮像部２は、いわゆるドライブレコーダーとしての機能を兼ねて設置されるものであってもよい。すなわち、撮像部２は録画機器であってもよい。
【０１５１】
図２５は、移動体８００がドローン８００Ｂである場合の例を示す。ドローン８００Ｂは、駆動機構８０２に相当するドローン本体８１１と４つのプロペラ部８１２〜８１５とを備える。各プロペラ部８１２〜８１５は、プロペラとモータとを有する。モータの駆動がプロペラに伝達されることによって、当該プロペラが回転し、その回転による揚力によってドローン８００Ｂが浮上する。ドローン本体８１１の例えば下部には、撮像部２（測距装置１）が搭載されている。
【０１５２】
また、図２６は、移動体８００が自立型の移動ロボット８００Ｃである場合の例を示す。移動ロボット８００Ｃの下部には、駆動機構８０２に相当する、モータや車輪等を含む動力部８２１が設けられている。動力部８２１は、モータの回転数や車輪の向きを制御する。移動ロボット８００Ｃは、モータの駆動が伝達されることによって、路面または床面に設置する車輪が回転し、当該車輪の向きが制御されることにより任意の方向に移動することができる。図２６に示す例では、撮像部２は、例えば人型の移動ロボット８００Ｃの前方を撮像するように、当該移動ロボット８００Ｃの頭部に設置されている。なお、撮像部２は、移動ロボット８００Ｃの後方や左右を撮像するように設置されてもよいし、複数の方位を撮像するように複数設置されてもよい。また、センサ等を搭載するためのスペースが少ない小型ロボットに撮像部２を設けて、自己位置、姿勢及び被写体の位置を推定することにより、デッドレコニングを行うこともできる。
【０１５３】
なお、図２７に示すように移動体８００がロボットアーム８００Ｄであり、当該ロボットアーム８００Ｄの一部分の移動及び回転を制御する場合には、撮像部２は、当該ロボットアーム８００Ｄの先端等に設置されてもよい。この場合、撮像部２によってロボットアーム８００Ｄで把持される物体が撮像され、画像処理部３は、ロボットアーム８００Ｄが把持しようとする物体までの距離を推定することができる。これにより、ロボットアーム８００Ｄにおいて、物体の正確な把持動作を行うことができる。
【０１５４】
制御信号生成部８０１は、測距装置１（画像処理部３）から出力される被写体までの距離を示す距離情報に基づいて駆動機構８０２を制御するための制御信号を出力する。駆動機構８０２は、制御信号生成部８０１から出力される制御信号により、移動体８００または当該移動体８００の一部分を駆動する。駆動機構８０２は、例えば移動体８００または当該移動体８００の一部分の移動、回転、加速、減速、推力（揚力）の加減、進行方向の転換、通常運転モードと自動運転モード（衝突回避モード）との切り替え及びエアバッグ等の安全装置の作動のうちの少なくとも１つを行う。駆動機構８０２は、例えば被写体までの距離が閾値未満である場合に、移動、回転、加速、推力（揚力）の加減、物体に近寄る方向への方向転換及び自動運転モード（衝突回避モード）から通常運転モードへの切り替えのうちの少なくとも１つを行ってもよい。
【０１５５】
なお、図２４に示す自動車８００Ａの駆動機構８０２は、例えばタイヤである。図２５に示すドローン８００Ｂの駆動機構８０２は、例えばプロペラである。図２６に示す移動ロボット８００Ｃの駆動機構８０２は、例えば脚部である。図２７に示すロボットアーム８００Ｄの駆動機構８０２は、例えば撮像部２が設けられた先端を支持する支持部である。
【０１５６】
移動体８００は、測距装置１から出力された被写体までの距離に関する情報（距離情報）が入力されるスピーカやディスプレイを更に備えていてもよい。このスピーカやディスプレイは、測距装置１と有線または無線で接続されており、被写体までの距離に関する音声または画像を出力するように構成されている。更に、移動体８００は、測距装置１から出力された被写体までの距離に関する情報が入力され、例えば被写体までの距離に応じて点灯及び消灯することができる発光部を有していてもよい。
【０１５７】
また、例えば移動体８００がドローン８００Ｂである場合においては、上空から、地図（物体の三次元形状）の作成、ビルや地形の構造調査、ひび割れや電線破断等の点検等が行われる際に、撮像部２が対象を撮像した画像を取得し、被写体までの距離が閾値以上であるか否かを判定する。制御信号生成部８０１は、この判定結果に基づいて、点検対象との距離が一定になるようにドローン８００Ｂの推力を制御するための制御信号を生成する。ここで、推力には揚力も含まれるものとする。駆動機構８０２がこの制御信号に基づいてドローン８００Ｂを動作させることにより、当該ドローン８００Ｂを点検対象に平行して飛行させることができる。移動体８００が監視用のドローンである場合、監視対象の物体との距離を一定に保つようにドローンの推力を制御するための制御信号を生成してもよい。
【０１５８】
なお、移動体８００（例えば、ドローン８００Ｂ）が各種インフラストラクチャー（以下、単にインフラと表記）の保守点検等に用いられる場合には、当該インフラにおけるひび割れ箇所または錆が発生している箇所等を含む補修が必要な箇所（以下、補修箇所と表記）を撮像部２で画像を撮像することによって、当該補修箇所までの距離を得ることができる。この場合、補修箇所までの距離を利用することによって画像から当該補修箇所のサイズを算出することが可能である。これによれば、例えばインフラ全体を表すマップ上に補修箇所を表示することによって、当該インフラの保守点検者に補修箇所を認識させることができる。また、補修箇所のサイズを事前に保守点検者に伝えておくことは、円滑な補修作業を実施するためにも有用である。
【０１５９】
また、ドローン８００Ｂの飛行時に、撮像部２が地面方向を撮像した画像を取得し、地面との距離が閾値以上であるか否かを判定する。制御信号生成部８０１は、この判定結果に基づいて地面からの高さが指定された高さになるようにドローン８００Ｂの推力を制御するための制御信号を生成する。駆動機構８０２がこの制御信号に基づいてドローン８００Ｂを動作させることにより、当該ドローン８００Ｂを指定された高さで飛行させることができる。ドローン８００Ｂが農薬散布用ドローンであれば、このようにドローン８００Ｂの地面からの高さを一定に保つことで、農薬を均等に散布しやすくなる。
【０１６０】
また、移動体８００が自動車８００Ａまたはドローン８００Ｂである場合、自動車８００Ａの連隊走行やドローン８００Ｂの連携飛行時に、撮像部２が前方の自動車や周囲のドローンを撮像した画像を取得し、当該自動車やドローンまでの距離が閾値以上であるか否かを判定する。制御信号生成部８０１は、この判定結果に基づいて、前方の自動車や周囲のドローンとの距離が一定になるように、自動車８００Ａの速度やドローン８００Ｂの推力を制御するための制御信号を生成する。駆動機構８０２がこの制御信号に基づいて自動車８００Ａやドローン８００Ｂを動作させることにより、自動車８００Ａの連隊走行やドローン８００Ｂの連携飛行を容易に行うことができる。
【０１６１】
更に、移動体８００が自動車８００Ａである場合、自動車８００Ａのドライバーが閾値を設定（変更）することができるように、ユーザインタフェースを介してドライバーの指示を受理可能な構成としてもよい。これにより、ドライバーが好む車間距離で自動車８００Ａを走行させるようなことができる。また、前方の自動車との安全な車間距離を保つために、自動車８００Ａの速度に応じて閾値を変化させてもよい。安全な車間距離は、自動車８００Ａの速度によって異なる。そこで、自動車８００Ａの速度が速いほど閾値を大きく（長く）設定することができる。
【０１６２】
また、移動体８００が自動車８００Ａである場合には、進行方向の所定の距離を閾値に設定しておき、当該閾値の手前に物体が現れた際にブレーキを作動させるまたはエアバッグ等の安全装置を作動させる制御信号を生成するようにしてもよい。この場合、自動ブレーキやエアバッグ等の安全装置が駆動機構８０２に設けられる。
【０１６３】
以上述べた少なくとも１つの実施形態によれば、画像から距離を取得する際のロバスト性を向上させることが可能な画像処理装置、測距装置、方法及びプログラムを提供することができる。
【０１６４】
また、本実施形態及び本変形例に記載された様々な機能の各々は、回路（処理回路）によって実現されてもよい。処理回路の例には、中央処理装置（ＣＰＵ）のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム（命令群）を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたＣＰＵ以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【０１６５】
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるため、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１６６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。  
【符号の説明】
【０１６７】
１…測距システム（測距装置）、２…撮像装置（撮像部）、３…画像処理装置（画像処理部）、２１…レンズ、２２…イメージセンサ、３１…統計モデル格納部、３２…画像取得部、３３…距離取得部、３４…出力部、２２１…第１センサ、２２２…第２センサ、２２３…第３センサ、３０１…ＣＰＵ、３０２…不揮発性メモリ、３０３…ＲＡＭ、３０３Ａ…画像処理プログラム、３０４…通信デバイス、３０５…バス。
【図１】
2020148483.tif 000003
【図２】
2020148483.tif 000004
【図３】
2020148483.tif 000005
【図４】
2020148483.tif 000006
【図５】
2020148483.tif 000007
【図６】
2020148483.tif 000008
【図７】
2020148483.tif 000009
【図８】
2020148483.tif 000010
【図９】
2020148483.tif 000011
【図１０】
2020148483.tif 000012
【図１１】
2020148483.tif 000013
【図１２】
2020148483.tif 000014
【図１３】
2020148483.tif 000015
【図１４】
2020148483.tif 000016
【図１５】
2020148483.tif 000017
【図１６】
2020148483.tif 000018
【図１７】
2020148483.tif 000019
【図１８】
2020148483.tif 000020
【図１９】
2020148483.tif 000021
【図２０】
2020148483.tif 000022
【図２１】
2020148483.tif 000023
【図２２】
2020148483.tif 000024
【図２３】
2020148483.tif 000025
【図２４】
2020148483.tif 000026
【図２５】
2020148483.tif 000027
【図２６】
2020148483.tif 000028
【図２７】
2020148483.tif 000029