以下、図面を参照して、本実施形態について説明する。
図1は、本実施形態に係る撮像装置の構成の一例を示す。図1に示す撮像装置1は、例えばデジタルカメラ等として実現され、撮像部2、画像処理部3及び制御部4を備える。
撮像部2は、各種画像を撮像するために用いられる。撮像部2は、レンズ21とイメージセンサ22とを備える。レンズ21及びイメージセンサ22は、撮像装置1の光学系(単眼カメラ)に相当する。また、本実施形態において、レンズ21は、当該レンズ21の位置を調整することによりピント位置を制御するためのピント調整機構(レンズ駆動回路)、撮像装置1の光学系に取り込まれる光の量(入光量)を調節するための開口部を有する絞り機構(絞り制御回路)及び当該レンズ21に関する情報(以下、レンズ情報と表記)を予め保持しているメモリ等(図示せず)が搭載される制御回路等とともにレンズユニットを構成する。
また、本実施形態において、撮像装置1はレンズ21(レンズユニット)を手動で他のレンズに交換可能に構成されており、ユーザは、例えば標準レンズ、望遠レンズ及び広角レンズ等の複数の種別のレンズのうちの1つを撮像装置1に装着して用いることができるものとする。なお、レンズを交換した場合には、焦点距離やF値(絞り値)が変わり、撮像装置1において用いられるレンズに応じた画像を撮像することができる。
本実施形態において、焦点距離とは、レンズから、当該レンズに対して平行に光が入射したときに当該光が収束する位置までの距離をいう。また、F値とは、絞り機構に応じて撮像装置1に取り込まれる光の量を数値化したものである。なお、F値は、値が小さくなるにつれて、撮像装置1に取り込まれる光の量が多くなる(つまり、開口部の大きさが大きくなる)ことを示す。
レンズ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)の波長帯域の光を検出する第3センサ(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には、光学系の収差を受けた画像に生じるぼけであって、当該画像中の被写体までの距離及び当該画像中の位置に依存するぼけの分布を表すマップ形式の情報(以下、収差マップと表記)が格納される。換言すれば、収差マップとは、収差によって生じる画像中のぼけ(つまり、光学系の収差)の距離依存性と位置依存性とを示す情報である。なお、収差マップ格納部32には、上記した統計モデル格納部31に格納されている統計モデル毎に収差マップが格納されている(つまり、収差マップは統計モデルに紐づけられている)。
レンズ情報取得部33は、上記した撮像装置1の光学系(撮像部2)に含まれるレンズ21に関するレンズ情報を取得する。このレンズ情報は、上記したようにレンズユニットに備えられるメモリに保持されており、当該レンズユニットから取得される。なお、レンズ情報には、レンズ21の焦点距離、F値、ピント位置等が含まれる。
統計モデル選定部34は、例えばレンズ情報取得部33によって取得されたレンズ情報に基づいて、統計モデル格納部31に格納されている複数の統計モデルの中から適切な統計モデルを選定する。なお、統計モデル選定部34は、収差マップ格納部32に格納されている収差マップを用いて統計モデルを選定してもよい。
表示処理部35は、プレビュー表示として、上記した撮像部2によって連続的に撮像された複数の画像を順次表示する。なお、プレビュー表示とは、後述するように例えばピントを合わせる対象となる被写体をユーザが確認するために事前に画像を表示することをいう。
被写体選定部36は、表示処理部35によって表示されている画像(つまり、撮像部2によって撮像された画像)中の被写体を選定する。被写体選定部36によって選定される被写体は、例えばユーザの操作等に基づいて決定される。
画像取得部37は、表示処理部35によって表示されている画像中の被写体が被写体選定部36によって選定された場合に、当該画像を取得する。
距離取得部38は、画像取得部37によって取得された画像中の被写体選定部36によって選定された被写体までの距離を示す距離情報を取得する。この場合、距離取得部38は、後述するように画像取得部37によって取得された画像を統計モデル選定部34によって選定された統計モデルに入力することによって距離情報を取得する。
制御部4は、撮像装置1(撮像部2)におけるフォーカスを制御するための機能部であり、フォーカス制御値取得部41及びレンズ位置制御部42を含む。なお、本実施形態において、「フォーカスを制御する」とは、撮像部2に含まれるレンズ21の位置を変えることによって被写体のピント位置(つまり、撮像部2においてピントが合う位置)を調節することをいう。
フォーカス制御値取得部41は、距離取得部38によって取得された距離情報(つまり、被写体選定部36によって選定された被写体までの距離)に応じたフォーカス制御値を取得する。なお、フォーカス制御値は、例えばレンズ位置の移動量に対応する値であり、レンズ21に備えられているメモリに保持されている情報に基づいて取得される。
レンズ位置制御部42は、フォーカス制御値取得部41によって取得されたフォーカス制御値に基づいて、レンズ21の位置を制御する。これにより、例えば被写体選定部36によって選定された被写体にピントが合わせられ、撮像部2は、当該被写体にピントが合った画像を撮像することができる。
図2は、撮像装置1のシステム構成の一例を示す。図2に示すように、撮像装置1は、CPU101、不揮発性メモリ102、RAM103、通信デバイス104、入力デバイス105及び表示デバイス106を相互に接続するバス107を有する。なお、図2においては、撮像装置1の光学系に関するハードウェア構成については省略している。
CPU101は、撮像装置1内の様々なコンポーネントの動作を制御するためのプロセッサである。CPU101は、単一のプロセッサであってもよいし、複数のプロセッサで構成されていてもよい。CPU101は、不揮発性メモリ102からRAM103にロードされる様々なプログラムを実行する。これらプログラムは、オペレーティングシステム(OS)や様々なアプリケーションプログラムを含む。アプリケーションプログラムは、撮像装置1によって撮像された画像から取得される距離情報に基づいてフォーカスを制御するためのフォーカス制御プログラム103Aを含む。
不揮発性メモリ102は、補助記憶装置として用いられる記憶媒体である。RAM103は、主記憶装置として用いられる記憶媒体である。図2においては不揮発性メモリ102及びRAM103のみが示されているが、撮像装置1は、例えばSDカード等の他の記憶デバイスを利用可能に構成されていてもよい。
なお、本実施形態において、図1に示す画像処理部3及び制御部4の一部または全ては、CPU101(つまり、撮像装置1のコンピュータ)にフォーカス制御プログラム103Aを実行させること、すなわち、ソフトウェアによって実現されるものとする。このフォーカス制御プログラム103Aは、コンピュータ読み取り可能な記憶媒体に格納して頒布されてもよいし、ネットワークを通じて撮像装置1にダウンロードされてもよい。なお、画像処理部3及び制御部4の一部または全ては、IC(Integrated Circuit)等のハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
また、本実施形態において、画像処理部3に含まれる統計モデル格納部31及び収差マップ格納部32は、例えば不揮発性メモリ102または他の記憶デバイス等によって実現される。
通信デバイス104は、有線通信または無線通信を実行するように構成されたデバイスである。通信デバイス104は、ネットワークを介した外部機器との通信を実行する。
入力デバイス105は、例えば撮像装置1の筐体等に設けられている各種ボタン等を含む。表示デバイス106は、例えば撮像装置1の筐体等に設けられている液晶ディスプレイ(LCD:Liquid Crystal Display)等を含む。なお、撮像装置1は、入力デバイス105及び表示デバイス106として、例えば各種画像を表示するとともに、当該画像上におけるユーザの指の接触位置(つまり、タッチ操作)を検出することが可能なタッチスクリーンディスプレイ等を備えていてもよい。
次に、図3を参照して、本実施形態において距離情報を取得する際の撮像装置1の動作の概要について説明する。
撮像装置1において、撮像部2(イメージセンサ22)は、上記したように光学系(レンズ21)の収差の影響を受けた画像を生成する。
画像処理部3は、撮像部2によって生成された画像を取得し、当該画像を統計モデル格納部31に格納されている統計モデル(統計モデル選定部34によって選定された統計モデル)に入力する。
これにより、画像処理部3は、画像が入力された統計モデルから出力される当該画像中の被写体までの距離を示す距離情報を取得する。
このように本実施形態においては、統計モデルを用いて、撮像部2によって撮像された画像から距離情報を取得することができる。
ここで、本実施形態において、撮像部2によって撮像された画像には、上記したように当該撮像装置1の光学系の収差(レンズ収差)に起因するぼけが生じている。
以下、撮像部2によって撮像された画像に生じるぼけについて説明する。まず、撮像部2の光学系の収差に起因するぼけのうち、色収差について説明する。
図4は、被写体までの距離と色収差により画像に生じるぼけとの関係について示している。
収差のあるレンズ21を透過する際の光の屈折率は波長帯域毎に異なるため、例えば被写体の位置がピント位置からずれているような場合には、各波長帯域の光が1点に集まらず異なった点に到達する。これが画像上で色収差(ぼけ)として現れる。
図4の上段は、撮像部2(イメージセンサ22)に対する被写体の位置がピント位置よりも遠い(つまり、被写体の位置がピント位置よりも奥にある)場合を示している。
この場合、赤色の波長帯域の光501に関しては、イメージセンサ22(第1センサ221)において比較的小さいぼけbRを含む画像が生成される。一方、青色の波長帯域の光502に関しては、イメージセンサ22(第3センサ223)において比較的大きいぼけbBを含む画像が生成される。なお、緑色の波長帯域の光503に関しては、ぼけbRとぼけbBとの中間の大きさのぼけを含む画像が生成される。したがって、このような被写体の位置がピント位置よりも遠い状態で撮像された画像においては、当該画像中の被写体の外側に青色のぼけが観察される。
一方、図4の下段は、撮像部2(イメージセンサ22)に対する被写体の位置がピント位置よりも近い(つまり、被写体の位置がピント位置よりも手前にある)場合を示している。
この場合、赤色の波長帯域の光501に関しては、イメージセンサ22(第1センサ221)において比較的大きいぼけbRを含む画像が生成される。一方、青色の波長帯域の光502に関しては、イメージセンサ22(第3センサ223)において比較的小さいぼけbBを含む画像が生成される。なお、緑色の波長帯域の光503に関しては、ぼけbRとぼけbBとの中間の大きさのぼけを含む画像が生成される。したがって、このような被写体の位置がピント位置よりも近い状態で撮像された画像においては、当該画像中の被写体の外側に赤色のぼけが観察される。
ここで、図4はレンズ21が単純な単レンズの例を示しているが、一般的に、撮像部2においては、例えば色収差補正が施されたレンズ(以下、色消しレンズと表記)が用いられる場合がある。なお、色消しレンズとは、低分散の凸レンズと高分散の凹レンズを組み合わせたレンズであり、色収差を補正するレンズとして最もレンズ枚数が少ないレンズである。
図5は、レンズ21として上記した色消しレンズを用いた場合における被写体までの距離と色収差により画像に生じるぼけとの関係性を示している。色消しレンズにおいては青色の波長と赤色の波長の焦点位置を揃える設計がされているが、色収差は完全には除去することができない。このため、被写体の位置がピント位置よりも遠い場合には図5の上段に示すように緑色のぼけが発生し、被写体の位置がピント位置よりも近い場合には図5の下段に示すように紫色のぼけが発生する。
なお、図4及び図5の中段は、撮像部2(イメージセンサ22)に対する被写体の位置とピント位置とが一致している場合を示している。この場合には、イメージセンサ22(第1~第3センサ221~223)においてぼけの少ない画像が生成される。
ここで、撮像装置1の光学系(レンズユニット)には上記したように絞り機構が備えられているが、撮像部2によって撮像された画像に生じぼけの形状は、当該絞り機構の開口部の大きさによっても異なる。なお、ぼけの形状は、PSF(Point Spread Function)形状と称され、点光源が撮像されたときに生じる光の拡散分布を示している。
図6の上段は、焦点距離が50mmのレンズを用いた撮像装置1の光学系(撮像部2)においてピント位置を1500mm、F値(絞り)をF1.8とした場合に当該撮像部2によって撮像された画像の中央部に生じるPSF形状を、被写体の位置が撮像装置1から近い順に左から示している。図6の下段は、焦点距離が50mmのレンズを用いた撮像装置1の光学系(撮像部2)においてピント位置を1500mm、F値(絞り)をF4とした場合に当該撮像部2によって撮像された画像に生じるPSF形状を、被写体の位置が撮像装置1から近い順に左から示している。なお、図6の上段及び下段の中央は、被写体の位置がピント位置と一致している場合のPSF形状を示している。
図6の上段及び下段の対応する位置に示されているPSF形状は、撮像装置1に対する被写体の位置が同一である場合のPSF形状であるが、当該被写体の位置が同一である場合であっても、上段のPSF形状(F値をF1.8として撮像した画像に生じるPSF形状)と下段のPSF形状(F値をF4として撮像した画像に生じるPSF形状)とでは形状が異なっている。
更に、図6の最も左側のPSF形状と最も右側のPSF形状に示すように、例えば被写体の位置からピント位置までの距離が同程度である場合であっても、当該被写体の位置がピント位置よりも近い場合と当該被写体の位置がピント位置よりも遠い場合とで、PSF形状が異なっている。
なお、上記したように絞り機構の開口部の大きさや撮像装置1に対する被写体の位置に応じて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を参照して、上記した撮像装置1の光学系(撮像部2)に用いるレンズの種別に応じたPSF形状(レンズの収差)の位置依存性について具体的に説明する。図10は、焦点距離が異なる複数のレンズの各々を用いて撮像された画像の中央付近(画面中央)及び端部付近(画面単)に生じるPSF形状を、被写体の位置がピント位置よりも近い場合と被写体の位置がピント位置よりも遠い場合とに分けて示している。
図10に示すように、画像の中央付近に生じるPSF形状は、レンズの種別が異なる場合であっても概ね円形で同一であるが、画像の端部付近に生じるPSF形状は、画像の中央付近に生じるPSF形状と異なる形状を有し、かつ、レンズの種別に応じてそれぞれ特性(特徴)が異なる。なお、上記した図5において説明した被写体の位置がピント位置よりも近い場合にはPSFのふち付近に紫色のぼけが発生し、被写体の位置がピント位置よりも遠い場合にはPSFのふち付近に緑色のぼけが発生する点については、レンズの種別が異なる場合であっても共通している。
また、図10においては、焦点距離が50mmのレンズに関しては2つの例(#1及び#2)が示されているが、これは、焦点距離が50mmで同一であるが、レンズの製造元が異なる(つまり、異なる製品である)ことを示している。焦点距離が85mmのレンズについても同様である。
ここで、本実施形態においては、画像に生じるぼけを学習することによって生成された統計モデルを用いて距離情報を取得するが、上記したようにレンズの種別によって特に画像の端部近傍のPSF形状が大きく異なることから、当該レンズの種別を考慮することなく生成された1つの統計モデルを用いて距離情報を取得する構成では、画像から取得される距離の精度が低下する場合がある。
このため、本実施形態においては、上記した画像中の被写体までの距離(つまり、撮像装置1に対する被写体の位置)に応じて非線形に変化するぼけに着目して撮像装置1の光学系(撮像部2)に用いられるレンズ毎に生成された統計モデルを用いて、被写体までの距離を当該撮像部2によって撮像された画像から取得するものとする。
本実施形態において、被写体までの距離に応じて非線形に変化するぼけには、上記した図4及び図5において説明した撮像装置1の光学系の色収差により生じるぼけ、図6~図8において説明した撮像装置1の光学系に取り込まれる光の量を調節する絞り機構の開口部の大きさ(つまり、F値)に応じて生じるぼけ、図9及び図10において説明した撮像装置1(撮像部2)によって撮像された画像中の位置に応じて変化するぼけ等が含まれる。
なお、PSF形状は、絞り機構の開口部の形状によっても異なる。ここで、図11は、PSF形状の非線形性(非対称性)と絞り機構の開口部の形状との関係を表している。上記したPSF形状の非線形性は、絞り機構の開口部の形状が円以外の場合に生じやすい。特に、PSF形状の非線形性は、開口部の形状が奇数角形、或いはイメージセンサ22の水平または垂直軸に対して非対象に配置された偶数角形の場合により生じやすい。
また、上記した図9においては、画像中の被写体までの距離及び当該画像中の位置に依存するPSF形状(つまり、距離依存性及び位置依存性を有するぼけ)を画像上に表しているが、当該画像の各々は、上記した収差マップ格納部32に格納されている収差マップに相当する。すなわち、本実施形態において、収差マップ格納部32には、レンズの焦点距離やF値(つまり、レンズの種別やレンズ情報)に応じた複数の収差マップが格納されている。なお、収差マップ格納部32に格納されている収差マップの各々には、当該収差マップによって示される距離依存性及び位置依存性を有するぼけを生じさせるレンズに応じた統計モデル(つまり、当該距離依存性及び位置依存性を有するぼけを学習した統計モデル)が紐づけられている。
図12は、本実施形態において画像中の被写体までの距離を統計モデルを用いて推定する動作の概要を示す。以下の説明においては、被写体までの距離(距離情報)を取得するために撮像装置1(撮像部2)によって撮像された画像を撮像画像と称する。
図12に示す撮像画像601に生じるぼけ(ぼけ情報)602は、被写体603までの距離に関する物理的な手掛かりとなる。具体的には、ぼけの色、PSFのサイズ及び形状が被写体603までの距離に関する手がかりとなる。
本実施形態に係る画像処理部3(距離取得部38)においては、このような物理的な手掛かりである撮像画像601に生じるぼけ602を統計モデルで分析(解析)することによって被写体603までの距離604を推定する。
以下、本実施形態において統計モデルによって撮像画像から距離を推定する方式の一例について説明する。ここでは、第1~第3方式について説明する。
まず、図13を参照して、第1方式について説明する。第1方式において、距離取得部38は、撮像画像601から局所領域(画像パッチ)601aを抽出する。
この場合、例えば撮像画像601の全領域をマトリクス状に分割し、当該分割後の部分領域を局所領域601aとして順次抽出するようにしてもよいし、撮像画像601を認識して、被写体(像)が検出された領域を網羅するように局所領域601aを抽出するようにしてもよい。また、局所領域601aは、他の局所領域601aとの間で一部がオーバーラップしていてもよい。
距離取得部38は、抽出された局所領域601a毎に、当該局所領域601aに関する情報(撮像画像601の情報)を統計モデルへ入力することによって、当該局所領域601a中の被写体までの距離604を推定する。
このように局所領域601aに関する情報が入力される統計モデルは、当該局所領域601aを構成する画素毎に距離を推定する。
ここで、例えば特定の画素が第1局所領域601a及び第2局所領域601aの両方に属する(つまり、第1局所領域601a及び第2局所領域601aとの間で当該画素を含む領域がオーバーラップしている)場合、当該画素が第1局所領域601aに属するものとして推定された距離と、当該画素が第2局所領域601aに属するものとして推定された距離とでは異なる場合がある。
このため、例えば上記したように一部がオーバーラップする複数の局所領域601aが抽出されている場合、当該複数の局所領域601aがオーバーラップしている領域を構成する画素の距離は、例えば当該オーバーラップしている一方の局所領域601aの一部の領域(画素)について推定された距離と他方の局所領域601aの一部の領域(画素)について推定された距離との平均値としてもよい。また、一部がオーバーラップする3以上の局所領域601aが抽出されている場合、当該3以上の局所領域601aがオーバーラップしている領域を構成する画素の距離は、当該オーバーラップしている3以上の局所領域601aの一部の領域毎に推定された距離による多数決で決定されてもよい。
図14は、上記した第1方式において統計モデルに入力される局所領域601aに関する情報の一例を示す。
距離取得部38は、撮像画像601に含まれるR画像、G画像及びB画像のそれぞれについて、当該撮像画像601から抽出された局所領域601aの勾配データ(R画像の勾配データ、G画像の勾配データ及びB画像の勾配データ)を生成する。このように距離取得部38によって生成された勾配データが統計モデルに入力される。
なお、勾配データは、各画素と当該画素に隣接する画素との画素値の差分(差分値)を示す。例えば、局所領域601aがn画素(X軸方向)×m画素(Y軸方向)の矩形領域として抽出される場合、当該局所領域601a内の各画素について算出した例えば右隣の画素との差分値をn行×m列のマトリクス状に配置した勾配データが生成される。
統計モデルは、R画像の勾配データと、G画像の勾配データと、B画像の勾配データとを用いて、当該各画像に生じているぼけから距離を推定する。図14においてはR画像、G画像及びB画像の各々の勾配データが統計モデルに入力される場合について示しているが、撮像画像601(RGB画像)の勾配データが統計モデルに入力される構成であってもよい。
次に、図15を参照して、第2方式について説明する。第2方式においては、第1方式における局所領域601aに関する情報として、当該局所領域(画像パッチ)601a毎の勾配データ及び撮像画像601における当該局所領域601aの位置情報が統計モデルに入力される。
位置情報601bは、例えば局所領域601aの中心点を示すものであってもよいし、左上辺等の予め定められた一辺を示すものであってもよい。また、位置情報601bとして、局所領域(画像パッチ)601aを構成する画素それぞれの撮像画像601上での位置情報を用いてもよい。
上記したように位置情報601bを更に統計モデルに入力することで、例えばレンズ21の中心部を透過する光によって結像された被写体像のぼけと、当該レンズ21の端部を透過する光によって結像された被写体像のぼけとの間の差異を考慮して距離を推定することができる。
つまり、この第2方式によれば、ぼけ、距離及び画像上の位置の相関に基づいて撮像画像601から距離をより確実に推定することができる。
図16は、上記した第2方式において統計モデルに入力される局所領域601aに関する情報の一例を示す。
例えばn画素(X軸方向)×m画素(Y軸方向)の矩形領域が局所領域601aとして抽出される場合、距離取得部38は、当該局所領域601aの例えば中心点に対応する撮像画像601上のX座標値(X座標データ)と、当該局所領域601aの例えば中心点に対応する撮像画像601上のY座標値(Y座標データ)とを取得する。
第2方式においては、このように距離取得部38によって取得されたX座標データ及びY座標データが、上記したR画像、G画像及びB画像の勾配データとともに、統計モデルに入力される。
更に、図17を参照して、第3方式について説明する。第3方式においては、上記した第1方式及び第2方式のような撮像画像601からの局所領域(画像パッチ)601aの抽出は行われない。第3方式において、距離取得部38は、撮像画像601の全領域に関する情報(R画像、G画像及びB画像の勾配データ)を統計モデルに入力する。
局所領域601a毎に距離604を推定する第1方式及び第2方式と比較して、第3方式は、統計モデルによる推定の不確実性が高くなる可能性があるが、距離取得部38の負荷を軽減することができる。
以下の説明においては、上記した第1~第3方式において統計モデルに入力される情報を、便宜的に画像に関する情報と称する。
図18は、本実施形態における統計モデルの学習方法の一例を示す。ここでは、撮像装置1(撮像部2)によって撮像された画像を用いた統計モデルの学習について説明するが、当該統計モデルの学習は、例えば撮像装置1の光学系と同様の光学系を有する他のデバイス(カメラ等)によって撮像された画像を用いて行われてもよい。
なお、上記の説明では距離情報を取得するために撮像部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とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
本実施形態における統計モデルは、例えばピント位置を固定した状態で撮像装置1から被写体までの距離を変化させながら撮像される画像を用いた学習が繰り返し実行されることによって生成される。また、1つのピント位置についての学習が完了した場合には、他のピント位置についても同様に学習を実行することによって、より精度の高い統計モデルを生成することができる。
ここで、図19を参照して、画像(撮像画像または学習用画像)から推定される被写体までの距離について具体的に説明する。
図19においては、被写体がピント位置よりも近い(手前にある)場合に生じるぼけのサイズをX軸上においてマイナスの値で示し、被写体がピント位置よりも遠い(奥にある)場合に生じるぼけのサイズをX軸上においてプラスの値で示している。つまり、図19においては、ぼけの色及びサイズを正負の値で示している。
図19においては、被写体の位置がピント位置よりも近い場合及び被写体の位置がピント位置よりも遠い場合のいずれの場合においても、被写体がピント位置から離れるほど、ぼけのサイズ(ピクセル)の絶対値が大きくなることが示されている。
図19に示す例では、画像を撮像した光学系におけるピント位置が約1500mmである場合を想定している。この場合、例えば約-4.8ピクセルのぼけは光学系から約1000mmの距離に対応し、0ピクセルのぼけは光学系から1500mmの距離に対応し、約4.8ピクセルのぼけは光学系から約750mmの距離に対応する。
ここでは、便宜的に、ぼけのサイズ(ピクセル)をX軸上に示す場合について説明したが、上記した図6~図10において説明したように、画像に生じるぼけの形状(PSF形状)についても、当該被写体がピント位置よりも近い場合と当該被写体がピント位置よりも遠い場合とで異なるし、画像中の位置によっても異なる。このため、図19において示すX軸上に示す値は、実際には当該ぼけの形状(PSF形状)を反映した値である。
なお、統計モデルの学習時に、学習用画像に関する情報が統計モデルに入力される場合には、当該学習用画像が撮像された際の被写体までの実際の距離に対応する、ぼけの色、サイズ及び形状を正負で示す値(以下、ぼけ値と表記)が正解値として用いられる。このような学習が行われた統計モデルによれば、画像中の被写体までの距離としては、上記したぼけ値が出力される。
例えば図19の線分d1によって示されるように被写体までの距離とぼけの色、サイズ及び形状とは相関があるため、距離を推定することと、ぼけの色、サイズ及び形状を推定することとは同義である。
なお、統計モデルに直接的に距離を推定させる場合と比較して、当該統計モデルにぼけの色、サイズ及び形状を推定させる場合の方が、統計モデルによる推定の精度を高めることができる。この場合、例えばn画素(X軸方向)×m画素(Y軸方向)の局所領域毎に当該局所領域に関する情報が統計モデルに入力される場合、当該統計モデルは、その局所領域を構成する各画素について推定したぼけの色、サイズ及び形状(を示すぼけ値)をn行×m列に配列した距離を出力するものとする。
また、統計モデルの学習においては、画像処理部3において取得(推定)可能な距離の下限値(手前)から上限値(奥)まで極力細かい粒度で被写体を各距離で撮像した学習用画像を用意し、これらの学習用画像に関する情報を統計モデルに入力する。統計モデルの学習において用いられる正解値としては、このような学習用画像が撮像されたときの被写体までの距離に対応するぼけの色、サイズ及び形状を示すぼけ値を用いる。なお、統計モデルの学習には、被写体が異なる様々な学習用画像が用意されることが好ましい。
次に、図20に示すフローチャートを参照して、画像処理部3において用いられる統計モデルを生成する処理の処理手順の一例について説明する。なお、図20に示す処理は、例えば画像処理部3(つまり、撮像装置1)において実行されてもよいし、当該撮像装置1以外の他の装置等において実行されてもよい。
まず、予め用意された学習用画像に関する情報が統計モデルに入力される(ステップS1)。この学習用画像は、例えば撮像装置1の光学系(撮像部2)に備えられるレンズ21を透過した光に基づいてイメージセンサ22によって生成された画像であって、当該光学系(レンズ21)の収差の影響を受けた画像である。具体的には、学習用画像には、上記した図4~図10において説明した被写体までの距離に応じて非線形に変化するぼけが生じている。
なお、学習用画像に生じるぼけと相関がある当該学習用画像を撮像した光学系の情報(例えば、焦点距離、F値、ピント位置等)については、図20に示す処理を実行する画像処理部3または他の装置等おいて把握されているものとする。
撮像画像から距離を推定する方式として上記した第1方式が適用される場合には、学習用画像に関する情報として、当該学習用画像の局所領域毎に、R画像、G画像及びB画像の勾配データが統計モデルに入力される。
撮像画像から距離を推定する方式として上記した第2方式が適用される場合には、学習用画像に関する情報として、学習用画像の局所領域毎に、R画像、G画像及びB画像の勾配データと当該局所領域の学習用画像上における位置情報とが統計モデルに入力される。
撮像画像から距離を推定する方式として上記した第3方式が適用される場合には、学習用画像に関する情報として、当該学習用画像の全領域分のR画像、G画像及びB画像の勾配データが統計モデルに入力される。
なお、本実施形態においてはR画像、G画像及びB画像の勾配データが統計モデルに入力されるものとして説明するが、上記した学習用画像に生じるぼけの形状(PSF形状)の観点から距離を推定する場合には、R画像、G画像及びB画像の勾配データのうちの少なくとも1つの勾配データが統計モデルに入力されればよい。一方、色収差により学習用画像に生じるぼけの色及びサイズの観点から距離を推定する場合には、R画像、G画像及びB画像の勾配データのうちの少なくとも2つの勾配データが統計モデルに入力されればよい。
統計モデルに対して学習用画像に関する情報が入力されると、統計モデルによって、被写体までの距離が推定される(ステップS2)。この場合、統計モデルにより、学習用画像に生じているぼけが当該学習用画像から抽出され、当該ぼけに応じた距離が推定される。
ステップS2において推定された距離は、学習用画像の撮像時に得られている正解値と比較される(ステップS3)。
ステップS3における比較結果(誤差)は、統計モデルにフィードバックされる(ステップS4)。これにより、統計モデルにおいては、誤差が減少するようにパラメータが更新される(つまり、学習用画像に生じているぼけが学習される)。
上記した図20に示す処理が学習用画像毎に繰り返し実行されることによって、当該学習用画像中の被写体までの距離に応じて非線形に変化するぼけ(の距離依存性及び位置依存性)を学習した統計モデルが生成される。このように生成された統計モデルは、画像処理部3に含まれる統計モデル格納部31に格納される。
ここでは1つの統計モデルの学習について説明したが、本実施形態においては、上記したように撮像装置1の光学系に用いられるレンズ毎に統計モデルが用意される。ここで、例えば撮像装置1(撮像部2)が第1レンズ及び第2レンズを用いることができるものとすると、第1レンズに応じた統計モデルは、当該第1レンズを用いた撮像部2によって撮像される画像(学習用画像)を用いた学習を繰り返すことによって生成される。一方、第2レンズに応じた統計モデルは、当該第2レンズを用いた撮像部2によって撮像される画像(学習用画像)を用いた学習を繰り返すことによって生成される。他のレンズについても同様である。すなわち、本実施形態においては、撮像装置1の光学系(撮像部2)に用いられるレンズを交換しながら学習を繰り返すことによって、当該レンズの各々に応じた統計モデルを生成することができる。
なお、ここでは複数のレンズを交換しながら撮像された画像を学習用画像として利用する場合について説明したが、本実施形態において、収差マップ格納部32には各レンズの焦点距離、F値、ピント位置に応じた距離依存性及び位置依存性を示す複数の収差マップが格納されている。この複数の収差マップは複数のレンズの各々を用いて撮像された画像に生じるぼけの分布を表すものであるため、所定の画像にこれらの収差マップが畳み込まれた画像(カラー画像)を学習用画像として利用して、各レンズに応じた統計モデルの学習を行うことも可能である。このような構成によれば、学習用画像を収集する手間を軽減することが可能となる。
次に、図21に示すフローチャートを参照して、撮像画像から距離情報を取得してフォーカスを制御する際の撮像装置1の処理手順の一例について説明する。なお、以下の説明においては、撮像画像を撮像する撮像部2に含まれるレンズ21(つまり、撮像装置1に装着されているレンズ21)を対象レンズ21と称する。
まず、撮像部2(イメージセンサ22)は、被写体を連続的に撮像することによって当該被写体を含む複数の撮像画像を生成する。なお、撮像部2のピント位置が固定された場合、対象レンズ21を透過した光は被写体までの距離に応じて異なる点拡がり関数(PSF)または点像分布関数の応答形状を有し、このような光をイメージセンサ22で検出することによって、撮像装置1の光学系(対象レンズ21)の収差の影響を受けた撮像画像が生成される。
表示処理部35は、撮像部2において生成された複数の撮像画像を例えば表示デバイスに順次表示することによって、プレビュー表示を行う(ステップS11)。
次に、被写体選定部36は、プレビュー表示が行われている撮像画像中の被写体を選定する(ステップS12)。このステップS12の処理は、例えば撮像装置1に対するユーザの操作に応じて実行される。具体的には、被写体選定部36は、例えばタッチスクリーンディスプレイにプレビュー表示が行われている場合において、当該タッチスクリーンディスプレイに表示されている撮像画像中の被写体を指定する操作(タッチ操作等)に応じて当該被写体を選定することができる。
また、撮像装置1が例えば所定のプログラムに基づく処理(画像処理)によって撮像画像中の特定の被写体(例えば、人物、顔、瞳、移動物体等)を抽出する機能を有する場合には、被写体選定部36は、当該被写体を自動的に選定してもよい。なお、このような画像処理は、撮像装置1に設けられている物理的なボタン(例えば、シャッターボタン及びメニューボタン等)に対するユーザの操作に応じて実行されてもよい。
なお、ステップS12において選定される被写体は、1つであってもよいし、複数であってもよい。
ステップS12の処理が実行された場合、被写体選定部36は、選定された被写体の情報として、当該選定された被写体の数及び撮像画像上の当該被写体(を包含する領域)の位置等を取得する。なお、被写体の位置は、例えば当該被写体を包含する領域の中心点に対応する撮像画像上のX座標値及びY座標値等で表されればよい。
次に、画像取得部37は、ステップS12において被写体が選定された撮像画像を取得する(ステップS13)。
ステップS13の処理が実行されると、ステップS12において選定された被写体の情報及び当該ステップS13において取得された撮像画像に基づいて距離取得処理が実行される(ステップS14)。なお、距離取得処理においては、ステップS12において選定された被写体までの距離を示す距離情報が取得される。
ステップS14の処理が実行されると、フォーカス制御値取得部41は、当該ステップS14において取得された距離情報に応じたフォーカス制御値を取得する(ステップS15)。
ここで、図22を参照して、ステップS15において取得されるフォーカス制御値について説明する。
まず、一般的に、撮像部2によって無限遠に位置する被写体を撮像した場合、レンズ(主点)から焦点距離fの分だけ離れた位置(以下、焦点位置と表記)に被写体像が形成(結像)される。これに対して、被写体までの距離が有限の場合には、焦点位置から離れた位置に被写体像が形成される。このような被写体像が形成される位置の差を繰り出し量(レンズ繰り出し量)と称する。
撮像部2においては、通常、焦点位置にイメージセンサが配置されているが、この状態で有限距離に位置する被写体が撮像された場合、上記した繰り出し量の分だけ被写体像が離れるため、当該イメージセンサにおいては当該被写体にピントが合っていない画像(つまり、当該被写体がぼけている画像)が生成される。この場合、例えばレンズを繰り出し量の分だけ前に出すことで被写体にピントを合わせることができる。
なお、図22に示すレンズから被写体までの距離u、焦点距離f及び繰り出し量xの関係は、以下の式(1)によって表される。
よって、繰り出し量xは、レンズから被写体までの距離u及び焦点距離fを用いて、以下の式(2)によって算出することができる。
上記したステップS15においては、このような繰り出し量xをフォーカス制御値として取得する。なお、対象レンズ21の焦点距離fはレンズユニットに備えられるメモリ(レンズ情報)から取得可能であり、対象レンズ21から被写体までの距離uとしてはステップS14において取得された距離情報(によって示される距離)を用いる。
ここでは上記した式(2)を用いて繰り出し量(フォーカス制御値)を算出するものとして説明したが、例えば対象レンズ21(の焦点距離)における繰り出し量と対象レンズ21から被写体までの距離との対応関係を予め保持したテーブルを当該対象レンズ21に備えられるメモリ等に格納しておき、当該テーブルを参照することによって、フォーカス制御値(繰り出し量)を取得する構成としてもよい。
再び図21に戻ると、レンズ位置制御部42は、ステップS15において取得されたフォーカス制御値に基づいて、対象レンズ21の位置を制御する(ステップS16)。この場合、レンズ位置制御部42は、レンズユニットに備えられるピント調整機構(例えば、フォーカスリング)を回転させることによって対象レンズ21の位置を変更する。なお、フォーカス制御値(繰り出し量)とピント調整機構を回転させる量(レンズ移動量)との対応関係を示す情報は例えば対象レンズ21に備えられているメモリに保持されており、レンズ位置制御部42は、このような情報に基づいて対象レンズ21の位置を制御する。
ステップS16の処理が実行されると、撮像部2は、被写体を撮像する(ステップS17)。これにより、本実施形態においては、ステップS12において選定された被写体に自動的にピントを合わせて当該被写体を含む画像を撮像することができる。
なお、ここではステップS12において選定された被写体にピントが合うように対象レンズ21の位置を制御するものとして説明したが、本実施形態においては、例えば当該被写体にピントが合わない(つまり、デフォーカスする)ように対象レンズ21の位置を制御するようにしてもよい。更に、例えばタッチスクリーンディスプレイまたは各種ボタン等に対するユーザの操作に応じてデフォーカス量が指定される構成であってもよい。この場合、ステップS15において取得されるフォーカス制御値にはデフォーカス量に応じたF値(絞り)が含まれ、ステップS16においては当該F値に基づいてレンズユニットに備えられる絞り機構が更に制御される。
また、ステップS12において距離が異なる複数の被写体が選定された場合には、1つの被写体にピントが合い、他の被写体にピントが合わないように対象レンズ21の位置を制御してもよい。
ステップS12において選定された被写体にピントを合わせるか合わせないかは、当該被写体が選定される際に例えばタッチスクリーンディスプレイまたは各種ボタン等に対するユーザの操作に応じて指定されればよい。
次に、図23に示すフローチャートを参照して、上記した距離取得処理(図21に示すステップS14の処理)の処理手順の一例について説明する。
ここで、上記したようにレンズユニットに備えられるメモリには、対象レンズ21に関するレンズ情報が予め保持されている。このレンズ情報は、対象レンズ21の仕様値(カタログ値)に相当し、例えば当該対象レンズ21の焦点距離やF値等を含む。また、レンズ情報には、現在のピント位置(またはピント調整機構に対する制御値)等の情報が含まれていてもよい。
距離取得処理において、レンズ情報取得部33は、上記したレンズ情報をレンズユニットから取得する(ステップS21)。
ここで、画像処理部3には、例えば図21に示す処理が前回実行された際に撮像装置1の光学系に用いられていたレンズに関するレンズ情報が保持されているものとする。
これにより、統計モデル選定部34は、ステップS21において取得されたレンズ情報及び画像処理部3に保持されているレンズ情報に基づいて、対象レンズ21のレンズ情報(つまり、焦点距離、F値、ピント位置等)が変更されているか否かを判定する(ステップS22)。レンズ情報として少なくとも焦点距離、F値、ピント位置のいずれか1つ、またはその組み合わせが取得できる場合、このようなレンズ情報として取得される情報に基づいて対象レンズ21のレンズ情報が変更されているか否かを判定しても良い。
対象レンズ21のレンズ情報が変更されていると判定された場合(ステップS22のYES)、統計モデル選定部34は、ステップS21において取得されたレンズ情報(対象レンズ21のカタログ値)を使用して統計モデルを選定するか否かを判定する(ステップS23)。なお、レンズ情報を使用して統計モデルを選定する場合には統計モデル選定部34の処理量を低減させることができる一方で、当該レンズ情報の信頼性によっては適切な統計モデルが選定されない可能性もある。このため、レンズ情報を使用して統計モデルを選定するか否かについては、例えばユーザによって予め設定されているものとする。
上記したユーザによる設定に基づいてレンズ情報を使用して統計モデルを選定しないと判定された場合(ステップS23のNO)、統計モデル選定部34は、対象レンズ21を用いた撮像部2によって撮像された画像(以下、サンプル画像と表記)から当該対象レンズ21の収差マップ(PSF形状)を推定する(ステップS24)。
ここで、ステップS24において用いられるサンプル画像は、例えば白点画像や白黒ストライプ等のテストパターンを撮像することによって得られる画像(テストパターン画像)であるものとする。統計モデル選定部34は、このようなサンプル画像の各位置に生じているぼけ(PSF形状)を抽出することによって対象レンズ21の収差マップを推定する。サンプル画像は、例えばレンズユニットに備えられるメモリに保持されていてもよいし、撮像部2によって撮像されて画像処理部3に保持されていてもよい。
なお、ステップS24においては、サンプル画像全体の収差マップを推定するようにしてもよいし、当該サンプル画像の一部の領域の収差マップを推定するようにしてもよい。また、サンプル画像の一部の領域の収差マップを推定する場合、当該一部の領域は、図21に示すステップS12において選定された被写体を包含する領域(以下、被写体領域と表記)であってもよいし、特徴的な形状のぼけが生じるサンプル画像の端部近傍の領域であってもよい。
次に、統計モデル選定部34は、ステップS24において推定された対象レンズ21の収差マップを、収差マップ格納部32に格納されている収差マップの各々と照合する(ステップS25)。ステップS25において、統計モデル選定部34は、対象レンズ21の収差マップと収差マップ格納部32に格納されている収差マップの各々との類似度を算出し、当該類似度が高い収差マップを特定する。
なお、上記したステップS24及びS25の処理が実行されることによって収差マップが特定されるが、収差マップは、例えば撮像装置1の光学系(対象レンズ21)の収差を受けた第1サンプル画像(ぼけが生じている画像)と、撮像装置1に取り込まれる光の量を少なくする(つまり、開口部の大きさを小さくする)ことによって得られる収差の影響が少ない第2サンプル画像(ぼけが生じていない画像)とを用いて特定されてもよい。具体的には、第1サンプル画像(デフォーカスした画像)と、第2サンプル画像に対して収差マップ格納部32に格納されている収差マップの各々を畳み込むことによって生成される画像との類似度を算出し、当該類似度が高い画像の生成に用いられた収差マップ(当該画像に畳み込まれた収差マップ)を特定するようにしてもよい。
ここで、収差マップ格納部32に格納されている収差マップの各々は、上記したように統計モデルに紐づけられている。このため、統計モデル選定部34は、統計モデル格納部31に格納されている複数の統計モデルの中から、上記したように特定された収差マップに紐づけられている統計モデルを選定する(ステップS26)。ステップS26において選定された統計モデルは、対象レンズ21を用いた撮像部2によって撮像された撮像画像に対して高い精度で距離を推定可能な統計モデルに相当し、対象レンズ21(のレンズ情報(焦点距離、F値、ピント位置等))に応じた統計モデルとして画像処理部3において設定される。
ステップS26の処理が実行されると、距離取得部38は、図21に示すステップS13において取得された撮像画像中の被写体領域に関する情報(勾配データ)を、ステップS26において選定された統計モデルに入力する(ステップS27)。
ステップS27の処理が実行されると、統計モデルにおいて被写体領域中の被写体(つまり、ステップS12において選定された被写体)までの距離が推定され、当該統計モデルは、当該推定された距離を出力する。なお、被写体までの距離は、被写体領域(撮像画像)を構成する画素毎に推定されて出力される。これにより、距離取得部38は、統計モデルから出力された距離を示す距離情報を取得する(ステップS28)。
なお、ステップS26において選定された統計モデル(つまり、対象レンズ21に応じた統計モデルとして画像処理部3において設定された統計モデル)は、当該対象レンズ21が他のレンズに変更されない限り、図23の処理が実行される度に用いられる。
すなわち、上記したステップS22において対象レンズ21のレンズ情報が変更されていないと判定された場合(ステップS22のNO)、既に設定されている統計モデル(つまり、図21及び図23の処理が前回実行されることによって選定された統計モデル)を用いてステップS27及びS28の処理が実行されればよい。
一方、ステップS23においてレンズ情報を使用して統計モデルを選定すると判定された場合(ステップS23のYES)、統計モデル選定部34は、統計モデル格納部31に格納されている複数の統計モデルの中から、当該レンズ情報(に含まれる焦点距離、F値、ピント位置等)に基づいて特定されるレンズ(つまり、対象レンズ21)に応じた統計モデルを選定する(ステップS26)。このステップS26の処理が実行された後は、上記したステップS27及びS28の処理が実行されればよい。
なお、図21に示すステップS12において複数の被写体が選定されている場合、図23に示すステップS27及びS28の処理は、当該被写体(領域)毎に実行される。これにより、複数の被写体の各々までの距離を示す距離情報を取得することができる。また、例えば複数の被写体が異なる撮像画像から選定されている場合には、図21に示すステップS13以降処理が当該撮像画像毎に実行されればよい。
また、図23に示す例では、レンズ情報を使用して統計モデルを選定する場合にはステップS26の処理が実行されるものとして説明したが、例えば当該レンズ情報(焦点距離、F値、現在のピント位置)から光線追跡を行い、対象レンズ21を用いた撮像部2によって撮像される画像に生じるぼけ(PSF形状)をシミュレーションすることができる場合がある。このような場合には、このシミュレーション結果に基づいて推定される収差マップを用いてステップS25に相当する処理を実行することによって統計モデルを選定してもよい。
また、図23に示す例では、ステップS23においてレンズ情報を使用して統計モデルを選定しないと判定された場合にステップS24及びS25の処理が実行されるものとして説明したが、例えば当該レンズ情報を取得することができないような場合にもステップS24及びS25が実行されればよい。
また、例えばステップS23においてレンズ情報を使用して統計モデルを選定すると判定された場合であっても、ステップS21において取得されたレンズ情報に合致する統計モデルが無い場合ある。このような場合には、ステップS24、ステップS25の処理を実行し、最も類似度が高い収差マップに紐づけられている統計モデルを選定するようにしてもよい。
更に、対象レンズ21の製造元(レンズメーカー)から対象レンズ21の収差マップに相当する収差情報を取得することができる場合がある。この場合には、この収差情報を用いてステップS25に相当する処理を実行することによって統計モデルを選定してもよい。
また、ユーザが手動で焦点距離、F値、ピント位置を設定し、この設定値を用いてステップS26が実行されてもよい。
上記したように本実施形態においては、光学系(第2光学系)の収差の影響を受けた学習用画像に生じる、当該学習用画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成された統計モデルを統計モデル格納部31に予め格納しておき、光学系(第1光学系)の収差の影響を受けた撮像画像が取得された場合に、当該撮像画像を当該統計モデルに入力することによって当該画像中の被写体までの距離を示す距離情報を取得し、当該距離情報に基づいて対象レンズ21の位置を制御する。
本実施形態においては、このような構成により、例えば必要以上に対象レンズ21を移動させる必要がないため、一般的な特定の被写体に自動的にピントを合わせるオートフォーカス(AF)機能と比較して高速に被写体にピントを合わせることが可能となる。
また、例えば2枚以上の画像を用いて被写体までの距離を算出し(DFD(Depth from Defocus))、レンズの位置(フォーカス位置)を調整するような構成と比較しても、本実施形態においては1枚の画像から距離情報を取得する(距離を推定する)ことができるため、より高速に被写体にピントを合わせることが可能である。
すなわち、本実施形態においては、対象レンズ21の位置を制御するために要する時間(フォーカス調整時間)を低減することが可能であり、撮像装置1を使用して画像を撮像するユーザの利便性を向上させることができる。
また、本実施形態においては、撮像部2によって撮像された撮像画像を順次表示するプレビュー表示を行い、当該表示されている撮像画像中の被写体を選定し、当該選定された被写体までの距離情報を取得する。
なお、被写体は、例えばタッチスクリーンディスプレイに表示された撮像画像に対するユーザの操作(例えば、当該撮像画像中の被写体の位置をタッチする操作)に基づいて選定されることができる。更に、本実施形態においては、上記したように選定された被写体にピントが合うように対象レンズ21の位置を制御することも可能であるし、当該被写体にピントが合わないように対象レンズ21の位置を制御することも可能である。このような構成によれば、ユーザが意図する画像を撮像することが可能となる。
また、本実施形態においては、統計モデル格納部31にはレンズ毎に統計モデルが格納されており、撮像装置1の光学系(撮像部2)に含まれる対象レンズ21に応じた統計モデルに撮像画像が入力されることにより、当該撮像画像中の被写体(選定された被写体)までの距離を示す距離情報が取得される。
ここで、本実施形態において統計モデルが学習する画像中の被写体までの距離に応じて非線形に変化するぼけには、例えば光学系の色収差により生じるぼけ及び当該光学系に取り込まれる光の量を調節する絞り機構の開口部の大きさまたは形状に応じて生じるぼけのうちの少なくとも一方が含まれる。また、画像中の被写体までの距離に応じ非線形に変化するぼけは、当該画像中の位置に応じて更に変化するぼけを含んでいてもよい。なお、本実施形態においては光学系の収差として主に色収差について説明したが、本実施形態において用いられる統計モデルは、他の収差により生じるぼけを学習する(つまり、他の少佐により生じるぼけに基づいて距離を推定する)ものであってもよい。本実施形態においては例えばモノクロ画像に生じるような単色収差でも距離を推定可能であるが、色収差があるカラー画像の場合には距離の推定精度を向上させることができる。
すなわち、本実施形態においては、画像に生じるぼけが距離依存性及び位置依存性を有し、かつ、当該ぼけが撮像装置1の光学系に用いられるレンズ(の種別)に応じて異なる点に着目し、撮像画像を撮像した撮像部2に含まれる対象レンズ21に応じた統計モデルを用いて当該撮像画像中の被写体までの距離を示す距離情報を取得する構成により、当該距離の精度(推定精度)を向上させることができる。
更に、本実施形態においては、対象レンズ21に関するレンズ情報を取得し、当該レンズ情報に基づいて特定されるレンズ(対象レンズ21)に応じた統計モデルを、統計モデル格納部31に格納されている複数の統計モデルの中から選定する。なお、このレンズ情報は、レンズユニット(メモリ)から取得可能である。このような構成によれば、対象レンズ21に応じた適切な統計モデルを用いて距離情報を取得することができる。また、このようにレンズ情報を使用する構成の場合には、統計モデルを選定する際の処理量を低減することができる。
一方、レンズ情報を使用しない場合には、撮像装置1の光学系の収差の影響を受けたサンプル画像に生じているぼけに基づいて収差マップ格納部32に格納されている収差マップを特定し、当該収差マップに応じた統計モデル(つまり、当該収差マップに紐づけられている統計モデル)を用いて距離情報を取得する。このような構成によれば、レンズ情報を使用する構成と比較して処理量は増加するが、単にレンズ情報を使用して統計モデルを選定する場合よりもより適切な統計モデルを選定することができる可能性がある。
なお、上記したように収差マップを特定する際には、サンプル画像全体に生じているぼけを用いてもよいし、サンプル画像の一部の領域に生じているぼけを用いてもよい。換言すれば、サンプル画像全体に生じているぼけに着目して収差マップを特定してもよいし、サンプル画像の一部の領域に生じているぼけのみに着目して収差マップを特定してもよい。サンプル画像全体に生じているぼけを用いた場合にはより適切な収差マップを特定することが可能であるが、サンプル画像の一部の領域に生じているぼけを用いた場合には収差マップを特定する際の処理量を低減することができる。
ここで、本実施形態においては、撮像部2によって撮像された撮像画像に生じているぼけに基づいて被写体までの距離を示す距離情報が取得されるが、当該ぼけのサイズが例えば10ピクセル以上であるような場合には、距離情報を取得することができない場合がある。
このため、上記したぼけのサイズに応じて距離情報を取得することができない場合の対策として、例えば距離取得部38は、図24に示す処理を実行するものとする。具体的には、距離取得部38は、撮像画像の被写体領域に生じているぼけのサイズが許容範囲内であるか否かを判定する(ステップS31)。このステップS31においては、被写体領域に生じているぼけのサイズが予め定められた値(例えば、10ピクセル)以上である場合には、当該ぼけのサイズが許容範囲内にないと判定する。一方、被写体領域に生じているぼけのサイズが予め定められた値未満である場合には、当該ぼけのサイズが許容範囲内にあると判定する。
ぼけのサイズが許容範囲内にないと判定された場合(ステップS31のNO)、距離取得部38は、撮像画像(被写体領域)の解像度を縮小する(ステップS32)。このように撮像画像の解像度を縮小した(低下させた)場合には、当該撮像画像の被写体領域に生じているぼけのサイズ(ピクセル数)を許容範囲内に収まるように小さくすることができる。
ステップS32の処理が実行された場合には、当該ステップS32において解像度が縮小された後の撮像画像を用いて図23に示すステップS27の処理が実行される。
一方、ぼけのサイズが許容範囲内にあると判定された場合(ステップS31のYES)、ステップS32の処理は実行されない。
ここでは、撮像画像の被写体領域に生じているぼけのサイズが予め定められた値以上である場合にステップS32の処理が実行されるものとして説明したが、例えば撮像画像(被写体領域)においてエッジの抽出ができない場合には、ぼけのサイズが大きいと推定して、ステップS32の処理が実行されるようにしてもよい。
上記した図24の処理は、図21に示すステップS13の処理が実行された後、図23に示すステップS27の処理が実行されるまでの間であれば、任意のタイミングで実行されればよい。
なお、本実施形態においては、撮像装置1の光学系に用いられるレンズ毎に統計モデルを生成(用意)しておくものとして説明したが、統計モデル格納部31には、例えば複数のレンズに対して1つの統計モデル(例えば、複数のレンズの各々を用いて撮像された画像を学習した統計モデル)が生成されていてもよい。
更に、本実施形態においては、統計モデルを用いて推定された距離を示す距離情報に基づいて対象レンズ21の位置を制御する構成であれば、統計モデル格納部31に格納されている統計モデルの数は例えば1つであっても構わない。
また、本実施形態においては、撮像装置1が図1に示す構成を有するものとして説明したが、例えば画像処理部3及び制御部4の少なくとも一部は、当該撮像装置1とは別個の装置に配置されていてもよい。
また、一般的なオートフォーカス(AF)機能を有する撮像装置には位相差センサが設けられているが、本実施形態は、このような位相差センサが設けられている撮像装置に適用されても構わない。撮像装置1に位相差センサが設けられている場合であっても、本実施形態において説明したようにフォーカスを制御すればよいが、例えば本実施形態において説明したフォーカス制御と位相差センサを用いたフォーカス制御とのうちの一方をユーザに選択させる構成としてもよい。
ここで、例えば画像全体のぼけ情報とセマンティック情報とを用いて学習した統計モデルを用いて距離を推定するようなものがあるが、この場合には、細かいぼけ情報を利用することができず、更には、環境にロバスト性を持たせる(すなわち、様々な撮像画像から高精度で距離を推定可能とする)ために膨大な学習データが必要となる。
これに対して、本実施形態においては、統計モデルが画像に生じるぼけのみを学習する構成であるため、上記したようなぼけ情報とセマンティック情報とを用いて学習する場合と比較して、撮像画像から距離(距離情報)を取得する際のロバスト性を向上させる(つまり、高いロバスト性を実現する)ことができる。
また、単眼カメラを用いて距離を推定するために当該カメラの開口部にフィルタを設ける(つまり、カメラのレンズに細工を施す)ような構成があるが、このような構成においては当該フィルタによって光の透過率が低下し、カラーバランスが偏りやすい。更に、フィルタ等の部品数の増加によってコストが高くなる。
これに対して、本実施形態においては、光の透過率の低下及びカラーバランスの偏りを生じることはなく、更には、コストが高くなることもない。
また、本実施形態において、統計モデルが画像から抽出された局所領域毎にぼけを学習する場合には、撮像画像から高い精度の距離を推定可能な統計モデルを生成することができる。この場合、撮像画像から抽出された局所領域に関する情報を統計モデルに入力することによって、当該局所領域毎に、当該局所領域内の被写体までの距離を示す距離情報を取得することができる。
なお、局所領域に関する情報には、例えば当該局所領域を構成する各画素と隣接する画素との画素値の差分を示す情報が含まれるが、他の情報が局所領域に関する情報として用いられてもよい。
具体的には、局所領域に関する情報として、画像における当該局所領域の位置情報を更に統計モデルに入力してもよい。このような構成によれば、局所領域の位置を考慮した、より精度の高い距離情報を取得することができる。なお、この位置情報は、例えば撮像画像上における局所領域の中心点の座標を示す情報であるが、他の情報であってもよい。
ここでは統計モデルが画像から抽出された局所領域毎にぼけを学習する場合について説明したが、統計モデルが学習用画像の全領域分のぼけを一括して学習し、撮像画像の全領域分のぼけを入力して距離を推定する構成とした場合には、画像処理部3(距離取得部38)の演算負荷を低減することが可能となる。
なお、本実施形態における統計モデルは、例えばニューラルネットワークまたはランダムフォレストであるものとして説明したが、他のアルゴリズムが適用されたものであってもよい。
次に、本実施形態の変形例に係る撮像装置1(画像処理部3)について説明する。以下の説明においては、上述した本実施形態の説明において用いた図面と同様の部分には同一参照符号を付してその詳しい説明を省略するものとし、当該本実施形態と異なる点についてのみ主に説明する。
まず、図25を参照して、本変形例の概要を説明する。図25に示すように、本変形例においては、統計モデルが撮像画像601に関する情報から距離604を推定する際に、その推定の不確実性の度合い(以下、不確実度と表記)801を画素毎に算出し、当該不確実度801を距離604とともに出力する。この不確実度801の算出方法は、特定の方法に限定されず、既知の様々な方法を適用することができる。
本変形例において、距離取得部38は、統計モデルから出力される不確実度を調べ、当該不確実度が閾値以上であった場合には、例えば取得された距離情報(つまり、不確実度が閾値以上の距離を示す距離情報)を破棄する。なお、破棄された距離情報は、例えば対象レンズ21の位置の制御に用いられない。
また、距離取得部38は、特定の画素について推定された距離に対する不確実度が閾値以上である場合、当該距離を、当該画素の周辺の画素について推定された距離(不確実度が閾値未満である距離)を用いて補正することも可能である。この補正においては、例えば数編の画素について推定された距離の平均値を補正値としてもよいし、当該距離による多数決で補正値を決定してもよい。
図26は、本変形例における統計モデルの学習方法の一例を示す。図26に示すように、統計モデルが不確実度を出力する本変形例においても、基本的には、学習用画像701に関する情報を統計モデルに入力し、統計モデルによって推定された距離702と正解値703との誤差を統計モデルにフィードバックする。ただし、学習用画像701に関する情報が入力された統計モデルにおいては、上記したように推定された距離702に対する不確実度802が算出される。このため、本変形例においては、距離702と正解値703との誤差を不確実度802の二乗で割り算した誤差をフィードバックするものとする。この場合、不確実度802を無限大とした際には誤差がゼロになるため、不確実度802の二乗をペナルティとして誤差に加算するものとする。
本変形例においては、上記したように距離702と正解値703との誤差を不確実度802で補正した値が減少するように統計モデルのパラメータ(例えば、重み係数)が更新される。
ここで、例えば統計モデルにより推定された距離702と正解値703との誤差がない一方で、不確実度802が高い場合、当該距離702は偶然に推定された可能性があると推測することができる。この場合には、距離702(正解値703)の学習が不足していることを認識することができる。
本変形例では、統計モデルにより算出される不確実度を用いることによって、このような学習の偏りを減少させることができる。
なお、上記した図26において説明した学習方法は、統計モデル格納部31に格納されている統計モデルの各々に対して適用される。
以下、本変形例に係る撮像装置1の動作について説明する。なお、本変形例に係る撮像装置1(画像処理部3)において用いられる統計モデルを生成する処理については、上記した不確実度で補正した誤差を用いる点以外は上述した図20に示す処理と同様であるため、その詳しい説明を省略する。
ここでは、撮像画像から距離情報を取得する際の撮像装置1の処理手順について説明する。本変形例においては、上述した図22に示す処理と同様の処理が実行されるが、当該図22に示すステップS14の処理(距離取得処理)が異なる。
図27に示すフローチャートを参照して、本変形例において画像処理部3によって実行される距離取得処理の処理手順の一例について説明する。
まず、上述した図23に示すステップS21~S27の処理に相当するステップS41~S47の処理が実行される。
本変形例においては、ステップS47の処理が実行されると、統計モデルによって、被写体までの距離が推定されるとともに、当該距離に対する不確実度(不確実性の度合い)が算出される。なお、被写体までの距離及び不確実度は、撮像画像(被写体領域)を構成する画素毎に統計モデルから出力される。
これにより、距離取得部38は、統計モデルから出力された距離を示す距離情報及び不確実度を撮像画像中の被写体領域を構成する画素毎に取得する(ステップS48)。
次に、ステップS48において取得された距離情報(つまり、画素毎の距離情報)の各々についてステップS49及びS50の処理が実行される。以下の説明においては、ステップS49及びS50の処理の対象となる距離情報を対象距離情報とし、当該対象距離情報によって示される距離に対する不確実度を対象不確実度とする。更に、統計モデルにおいて対象距離情報によって示される距離が推定(出力)された撮像画像中の被写体領域を構成する画素を対象画素とする。
この場合、距離取得部38は、対象不確実度が閾値以上であるか否かを判定する(ステップS49)。
対象不確実度が閾値以上であると判定された場合(ステップS49のYES)、距離取得部38は、ステップS48において取得された画素毎の距離情報のうち、撮像画像において対象画素の周辺に位置する画素(以下、周辺画素と表記)について推定された距離を示す距離情報であって、当該距離情報によって示される距離に対する不確実度が閾値未満である距離情報を特定する。ここで特定される距離情報は、複数であってもよいし、1つであってもよい。距離取得部38は、特定された距離情報によって示される距離を用いて、対象距離情報によって示される距離を補正する(ステップS50)。周辺画素について推定された距離を示す距離情報の中に、不確実度が閾値未満である距離情報が存在しない場合には、対象距離情報によって示される距離は例えば予め定めた不定値に設定される。
なお、複数の距離情報が特定された場合、対象距離情報によって示される距離は、当該複数の距離情報の各々によって示される距離(つまり、周辺画素について推定された距離)の平均値等に補正されてもよいし、当該複数の距離情報によって示される距離による多数決に基づいて補正されてもよい。また、1つの距離情報が特定された場合、対象距離情報によって示される距離は、当該1つの距離情報によって示される距離に基づいて補正されればよい。
一方、対象不確実度が閾値以上でない(つまり、閾値未満である)と判定された場合(ステップS49のNO)、ステップS50の処理は実行されない。
次に、ステップS48において取得された全ての距離情報について上記したステップS49及びS50の処理が実行されたか否かが判定される(ステップS51)。
全ての距離情報について処理が実行されていないと判定された場合(ステップS51のNO)、ステップS49に戻って処理が繰り返される。この場合、ステップS49及びS50の処理が実行されていない距離情報を対象距離情報として処理が実行される。
一方、全ての距離情報について処理が実行されたと判定された場合(ステップS51のYES)、図27に示す距離取得処理は終了される。
なお、図26に示す例においては、周辺画素について推定された距離を用いて不確実度が閾値以上である距離を補正するものとして説明したが、当該不確実度が閾値以上である距離を示す距離情報は、破棄されて、対象レンズ21の位置の制御に用いられないようにしてもよい。
上記したように本変形例においては、統計モデルから算出される不確実度を利用することによって、当該不確実度が閾値以上の距離(つまり、不確実性の度合いが高く、誤って推定された可能性が高い距離)がそのまま使用されること等を防止することができる。
(応用例)
以下、前述した実施形態及び変形例のような構成を有する撮像装置1が適用される応用例について説明する。ここでは、撮像装置1(画像処理部3)によって取得される距離情報を利用する例について説明する。なお、以下において説明する距離情報は、例えば図21に示すステップS14において取得される距離情報であってもよいし、図21に示すステップS17において撮像された被写体を含む画像に対して距離取得処理が実行されることによって取得される距離情報であってもよい。
図28は、撮像装置1が組み込まれている移動体900の機能構成の一例を示す。なお、図28においては、撮像装置1に備えられる制御部4については省略されている。
移動体900は、例えば自動運転機能を有する自動車、無人航空機、自立型の移動ロボット等として実現され得る。無人航空機は、人が乗ることができない飛行機、回転翼航空機、滑空機、飛行船であって、遠隔操作または自動操縦により飛行させることができるものであり、例えばドローン(マルチコプター)、ラジコン機、農薬散布用ヘリコプター等を含む。自立型の移動ロボットは、無人搬送車(AGV:Automated Guided Vehicle)のような移動ロボット、床を掃除するための掃除ロボット、来場者に各種案内を行うコミュニケーションロボット等を含む。移動体900には、ロボット本体が移動するものだけでなく、ロボットアームのような、ロボットの一部分を移動または回転させるような駆動機構を有する産業用ロボット等も含まれる。
図28に示すように、移動体900は、例えば撮像装置1と制御信号生成部901と駆動機構902とを有する。撮像装置1は、例えば撮像部2が移動体900またはその一部分の進行方向の被写体を撮像することができるように設置される。
図29に示すように、移動体900が自動車900Aである場合、撮像装置1は、前方を撮像するいわゆるフロントカメラとして設置される。なお、撮像装置1は、バック時に後方を撮像するいわゆるリアカメラとして設置されてもよい。また、フロントカメラ及びリアカメラとして複数の撮像装置1が設置されてもよい。更に、撮像装置1は、いわゆるドライブレコーダーとしての機能を兼ねて設置されるものであってもよい。すなわち、撮像装置1は録画機器であってもよい。
図30は、移動体900がドローン900Bである場合の例を示す。ドローン900Bは、駆動機構902に相当するドローン本体911と4つのプロペラ部912~915とを備える。各プロペラ部912~915は、プロペラとモータとを有する。モータの駆動がプロペラに伝達されることによって、当該プロペラが回転し、その回転による揚力によってドローン900Bが浮上する。ドローン本体911の例えば下部には、撮像装置1が搭載されている。
また、図31は、移動体900が自立型の移動ロボット900Cである場合の例を示す。移動ロボット900Cの下部には、駆動機構902に相当する、モータや車輪等を含む動力部921が設けられている。動力部921は、モータの回転数や車輪の向きを制御する。移動ロボット900Cは、モータの駆動が伝達されることによって、路面または床面に設置する車輪が回転し、当該車輪の向きが制御されることにより任意の方向に移動することができる。図31に示す例では、撮像装置1は、例えば撮像部2が人型の移動ロボット900Cの前方を撮像するように、当該移動ロボット900Cの頭部に設置されている。なお、撮像装置1は、移動ロボット900Cの後方や左右を撮像するように設置されてもよいし、複数の方位を撮像するように複数設置されてもよい。また、センサ等を搭載するためのスペースが少ない小型ロボットに撮像装置1を設けて、自己位置、姿勢及び被写体の位置を推定することによって、デッドレコニングを行うこともできる。
なお、図32に示すように移動体900がロボットアーム900Dであり、当該ロボットアーム900Dの一部分の移動及び回転を制御する場合には、撮像装置1は、当該ロボットアーム900Dの先端等に設置されてもよい。この場合、撮像装置1に備えられる撮像部2によってロボットアーム900Dで把持される物体が撮像され、画像処理部3は、ロボットアーム900Dが把持しようとする物体までの距離を推定することができる。これにより、ロボットアーム900Dにおいて、物体の正確な把持動作を行うことができる。
制御信号生成部901は、撮像装置1(画像処理部3)から出力される被写体までの距離を示す距離情報に基づいて駆動機構902を制御するための制御信号を出力する。駆動機構902は、制御信号生成部901から出力される制御信号により、移動体900または当該移動体900の一部分を駆動する。駆動機構902は、例えば移動体900または当該移動体900の一部分の移動、回転、加速、減速、推力(揚力)の加減、進行方向の転換、通常運転モードと自動運転モード(衝突回避モード)との切り替え及びエアバッグ等の安全装置の作動のうちの少なくとも1つを行う。駆動機構902は、例えば被写体までの距離が閾値未満である場合に、移動、回転、加速、推力(揚力)の加減、物体に近寄る方向への方向転換及び自動運転モード(衝突回避モード)から通常運転モードへの切替えのうちの少なくとも1つを行ってもよい。
なお、図29に示す自動車900Aの駆動機構902は、例えばタイヤである。図30に示すドローン900Bの駆動機構902は、例えばプロペラである。図31に示す移動ロボット900Cの駆動機構902は、例えば脚部である。図32に示すロボットアーム900Dの駆動機構902は、例えば撮像装置1が設けられた先端を支持する支持部である。
移動体900は、撮像装置1から出力された被写体までの距離に関する情報(距離情報)が入力されるスピーカやディスプレイを更に備えていてもよい。このスピーカやディスプレイは、撮像装置1と有線または無線で接続されており、被写体までの距離に関する音声または画像を出力するように構成されている。更に、移動体900は、撮像装置1から出力された被写体までの距離に関する情報が入力され、例えば被写体までの距離に応じて点灯及び消灯することができる発光部を有していてもよい。
また、例えば移動体900がドローン900Bである場合においては、上空から、地図(物体の三次元形状)の作成、ビルや地形の構造調査、ひび割れや電線破断等の点検等が行われる際に、撮像部2が対象を撮像した画像を取得し、被写体までの距離が閾値以上であるか否かを判定する。制御信号生成部901は、この判定結果に基づいて、点検対象との距離が一定になるようにドローン900Bの推力を制御するための制御信号を生成する。ここで、推力には揚力も含まれるものとする。駆動機構902がこの制御信号に基づいてドローン900Bを動作させることにより、当該ドローン900Bを点検対象に対して平行して飛行させることができる。移動体900が監視用のドローンである場合、監視対象の物体との距離を一定に保つようにドローンの推力を制御するための制御信号を生成してもよい。
なお、移動体900(例えば、ドローン900B)が各種インフラストラクチャー(以下、単にインフラと表記)の保守点検等に用いられる場合には、当該インフラにおけるひび割れ箇所または錆が発生している箇所等を含む補修が必要な箇所(以下、補修箇所と表記)の画像を撮像部2で撮像することによって、当該補修箇所までの距離を得ることができる。この場合、補修箇所までの距離を利用することによって画像から当該補修箇所のサイズを算出することが可能である。これによれば、例えばインフラ全体を表すマップ上に補修箇所を表示することによって、当該インフラの保守点検者に補修箇所を認識させることができる。また、補修箇所のサイズを事前に保守点検者に伝えておくことは、円滑な補修作業を実施するためにも有用である。なお、補修箇所までの距離(距離情報)に基づいてレンズ21の位置を制御することにより、当該補修箇所にピントを合わせた画像を撮像し、当該画像を保守点検者に提示するようにしてもよい。
また、ドローン900Bの飛行時に、撮像部2が地面方向を撮像した画像を取得し、地面との距離が閾値以上であるか否かを判定する。制御信号生成部901は、この判定結果に基づいて地面からの高さが指定された高さになるようにドローン900Bの推力を制御するための制御信号を生成する。駆動機構902がこの制御信号に基づいてドローン900Bを動作させることにより、当該ドローン900Bを指定された高さで飛行させることができる。ドローン900Bが農薬散布用ドローンであれば、このようにドローン900Bの地面からの高さを一定に保つことで、農薬を均等に散布しやすくなる。
また、移動体900が自動車900Aまたはドローン900Bである場合、自動車900Aの連隊走行やドローン900Bの連携飛行時に、撮像部2が前方の自動車や周囲のドローンを撮像し、当該自動車やドローンまでの距離が閾値以上であるか否かを判定する。制御信号生成部901は、この判定結果に基づいて、前方の自動車や周囲のドローンとの距離が一定になるように、自動車900Aの速度やドローン900Bの推力を制御するための制御信号を生成する。駆動機構902がこの制御信号に基づいて自動車900Aやドローン900Bを動作させることにより、自動車900Aの連隊走行やドローン900Bの連携飛行を容易に行うことができる。
更に、移動体900が自動車900Aである場合、自動車900Aのドライバーが閾値を設定(変更)することができるように、ユーザインタフェースを介してドライバーの指示を受理可能な構成としてもよい。これにより、ドライバーが好む車間距離で自動車900Aを走行させるようなことができる。また、前方の自動車との安全な車間距離を保つために、自動車900Aの速度に応じて閾値を変化させてもよい。安全な車間距離は、自動車900Aの速度によって異なる。そこで、自動車900Aの速度が速いほど閾値を大きく(長く)設定することができる。
また、移動体900が自動車900Aである場合には、進行方向の所定の距離を閾値に設定しておき、当該閾値の手前に物体が表れた際にブレーキを作動させるまたはエアバッグ等の安全装置を作動させる制御信号を生成するようにしてもよい。この場合、自動ブレーキやエアバッグ等の安全装置が駆動機構902に設けられる。
以上述べた少なくとも1つの実施形態によれば、ユーザの利便性を向上させることが可能な撮像装置、方法及びプログラムを提供することができる。
また、本実施形態及び本変形例に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるため、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラウをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。