(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-21
(45)【発行日】2022-01-31
(54)【発明の名称】単視点深度予測のための絞りの監視
(51)【国際特許分類】
G06T 7/00 20170101AFI20220124BHJP
G06T 7/50 20170101ALI20220124BHJP
G06N 3/08 20060101ALI20220124BHJP
G06N 20/00 20190101ALI20220124BHJP
【FI】
G06T7/00 350C
G06T7/50
G06N3/08
G06N20/00 130
(21)【出願番号】P 2020524586
(86)(22)【出願日】2017-11-03
(86)【国際出願番号】 US2017059841
(87)【国際公開番号】W WO2019089039
(87)【国際公開日】2019-05-09
【審査請求日】2020-08-04
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ワドワ,ニール
(72)【発明者】
【氏名】バロン,ジョナサン
(72)【発明者】
【氏名】ガーグ,ラフル
(72)【発明者】
【氏名】スリニバサン,プラトゥル
【審査官】山田 辰美
(56)【参考文献】
【文献】特開2010-081002(JP,A)
【文献】米国特許出願公開第2017/0132758(US,A1)
【文献】特表2015-522198(JP,A)
【文献】特開2004-310504(JP,A)
【文献】特開2017-034388(JP,A)
【文献】特開2014-157425(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06N 3/08
G06N 20/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
方法であって、
複数の画像を取得するステップを含み、前記複数の画像のうち少なくとも2つの画像からなるセットには共通シーンが記述されており、前記少なくとも2つの画像からなるセットは、第1被写界深度を有するソース画像と、第2被写界深度を有する目標画像とを含み、前記第2被写界深度は、前記第1被写界深度よりも浅く、前記方法は、さらに、
人工ニューラルネットワークを利用して前記共通シーンの深度マップを前記ソース画像に基づいて決定するステップと、
決定された前記共通シーンの深度マップに基づいて、前記第2被写界深度に対応する被写界深度を有するように、前記ソース画像に基づく予測画像を決定するステップと、
前記予測画像と前記目標画像との差分を求めるステップと、
求められた前記差分に基づいて前記人工ニューラルネットワークを更新するステップと、
対象シーンの画像を取得するステップと、
前記更新された人工ニューラルネットワークを利用して前記対象シーンの深度マップを前記対象シーンの画像に基づいて生成するステップとを含む、方法。
【請求項2】
前記
共通シーンの深度マップに基づいて前記ソース画像に基づく予測画像を決定するステップは、微分可能絞りレンダリング関数を使用するステップを含む、請求項1に記載の方法。
【請求項3】
前記微分可能絞りレンダリング関数を使用して前記予測画像を決定するステップは、
前記ソース画像に基づいて推定ライトフィールドを決定するステップと、
前記
共通シーンの深度マップに基づいて前記推定ライトフィールドをせん断および投影して前記予測画像を決定するステップとを含む、請求項2に記載の方法。
【請求項4】
前記人工ニューラルネットワークを利用して前記共通シーンの深度マップを前記ソース画像に基づいて決定するステップは、
前記人工ニューラルネットワークを利用して深度値セットを前記ソース画像に基づいて決定するステップを含み、前記深度値セットに含まれる各深度値は、前記ソース画像内のそれぞれの位置に対応し、
前記人工ニューラルネットワークを利用して前記共通シーンの深度マップを前記ソース画像に基づいて決定するステップは、
前記深度値セットをアップサンプリングして前記共通シーンの深度マップを生成するステップをさらに含む、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記深度値セットをアップサンプリングして前記共通シーンの深度マップを生成するステップは、バイラテラル法を用いて前記深度値セットを前記ソース画像に基づいてアップサンプリングするステップを含む、請求項4に記載の方法。
【請求項6】
前記目標画像は第1の目標画像であり、前記予測画像は第1の予測画像であり、求められた前記差分は、第1の求められた差分であり、前記少なくとも2つの画像からなるセットは、第3被写界深度を有する第2の目標画像をさらに含み、前記第3被写界深度は前記第2被写界深度とは異なり、かつ前記第1被写界深度よりも浅く、前記方法は、
決定された前記共通シーンの深度マップに基づいて、前記第3被写界深度に対応する被写界深度を有するように、前記ソース画像に基づく第2の予測画像を決定するステップと、
前記第2の予測画像と前記第2の目標画像との第2差分を求めるステップとをさらに含み、
前記人工ニューラルネットワークを更新するステップは、前記
人工ニューラルネットワークを前記第2差分に基づいて更新するステップを含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記共通シーンが記述された前記少なくとも2つの画像からなるセットを取得するステップは、
ライトフィールドカメラを使用して前記共通シーンからのライトフィールドを撮影するステップと、
前記第1被写界深度を有するように、前記撮影されたライトフィールドに基づいて前記ソース画像を生成するステップと、
前記第2被写界深度を有するように、前記撮影されたライトフィールドに基づいて前記目標画像を生成するステップとを含む、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記共通シーンが記述された前記少なくとも2つの画像からなるセットを取得するステップは、
第1の絞り設定にセットされたカメラを使用して前記ソース画像を撮影するステップと、
第2の絞り設定にセットされた前記カメラを使用して前記目標画像を撮影するステップとを含み、前記第2の絞り設定の幅は、前記第1の絞り設定よりも広い、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記対象シーンの画像を取得するステップは、携帯電話を操作して前記対象シーンの画像を撮影するステップを含み、前記方法は、
前記人工ニューラルネットワークが更新されたことを前記携帯電話にサーバから送信するステップをさらに含み、前記更新された人工ニューラルネットワークを利用して前記対象シーンの深度マップを前記対象シーンの画像に基づいて生成するステップは、前記携帯電話のプロセッサが前記更新された人工ニューラルネットワークを利用して前記対象シーンの深度マップを生成するステップを含む、請求項1~8のいずれか1項に記載の方法。
【請求項10】
決定された前記対象シーンの深度マップに基づいて、前記対象シーンの画像に画像処理を行うステップをさらに含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
前記人工ニューラルネットワークは、畳み込みニューラルネットワークである、請求項1~10のいずれか1項に記載の方法。
【請求項12】
方法であって、
システムが、複数の画像を取得するステップを含み、前記複数の画像のうち少なくとも2つの画像からなるセットには共通シーンが記述されており、前記少なくとも2つの画像からなるセットは、第1被写界深度を有するソース画像と、第2被写界深度を有する目標画像とを含み、前記第2被写界深度は、前記第1被写界深度よりも浅く、前記方法は、さらに、
前記システムが、人工ニューラルネットワークを利用して前記共通シーンの深度マップを前記ソース画像に基づいて決定するステップと、
前記システムが、決定された前記共通シーンの深度マップに基づいて、前記第2被写界深度に対応する被写界深度を有するように、前記ソース画像に基づく予測画像を決定するステップと、
前記システムが、前記予測画像と前記目標画像との差分を求めるステップと、
前記システムが、求められた前記差分に基づいて前記人工ニューラルネットワークを更新するステップと、
前記人工ニューラルネットワークが更新されたことを前記システムからリモートデバイスに送信するステップとを含む、方法。
【請求項13】
前記
共通シーンの深度マップに基づいて前記ソース画像に基づく予測画像を決定するステップは、微分可能絞りレンダリング関数を使用するステップを含む、請求項12に記載の方法。
【請求項14】
前記微分可能絞りレンダリング関数を使用して前記予測画像を決定するステップは、
前記ソース画像に基づいて推定ライトフィールドを決定するステップと、
前記
共通シーンの深度マップに基づいて前記推定ライトフィールドをせん断および投影して前記予測画像を決定するステップとを含む、請求項13に記載の方法。
【請求項15】
前記目標画像は第1の目標画像であり、前記予測画像は第1の予測画像であり、求められた前記差分は、第1の求められた差分であり、前記少なくとも2つの画像からなるセットは、第3被写界深度を有する第2の目標画像をさらに含み、前記第3被写界深度は前記第2被写界深度とは異なり、かつ前記第1被写界深度よりも浅く、前記方法は、
決定された前記共通シーンの深度マップに基づいて、前記第3被写界深度に対応する被写界深度を有するように、前記ソース画像に基づく第2の予測画像を決定するステップと、
前記第2の予測画像と前記第2の目標画像との第2差分を求めるステップとをさらに含み、
前記人工ニューラルネットワークを更新するステップは、前記
人工ニューラルネットワークを前記第2差分に基づいて更新するステップを含む、請求項12~14のいずれか1項に記載の方法。
【請求項16】
前記人工ニューラルネットワークは、畳み込みニューラルネットワークである、請求項12~15のいずれか1項に記載の方法。
【請求項17】
方法であって、
シーンの複数の画像を取得するステップを含み、前記画像は、各々、被写界深度が浅く、かつ焦点距離が異なり、前記方法は、さらに、
人工ニューラルネットワークを利用して前記シーンの深度マップを前記複数の画像に基づいて決定するステップと、
前記複数の画像および決定された前記シーンの深度マップに基づいて、前記シーンの被写界深度が大きい予測画像を決定するステップと、
決定された
前記シーンの深度マップに基づいて、前記複数の画像のうちの特定の画像に対応する焦点距離を有するように、前記被写界深度が大きい予測画像に基づく被写界深度の浅い予測画像を決定するステップと、
前記被写界深度の浅い予測画像と前記特定の画像との差分を求めるステップと、
求められた前記差分に基づいて前記人工ニューラルネットワークを更新するステップと、
前記更新された人工ニューラルネットワークを利用して、更新された前記シーンの深度マップを前記複数の画像に基づいて決定するステップとを含む、方法。
【請求項18】
前記人工ニューラルネットワークは、オートエンコーダ畳み込みニューラルネットワークである、請求項17に記載の方法。
【請求項19】
決定された前記
前記シーンの深度マップに基づいて、前記複数の画像のうちの前記特定の画像に対応する焦点距離を有するように、前記被写界深度が大きい予測画像に基づく被写界深度の浅い予測画像を決定するステップは、微分可能絞りレンダリング関数を使用するステップを含む、請求項17~18のいずれか1項に記載の方法。
【請求項20】
前記シーンの複数の画像を取得するステップは、カメラを操作して前記シーンの複数の画像の各画像をそれぞれ異なる焦点距離設定を用いて撮影するステップを含む、請求項17~19のいずれか1項に記載の方法。
【請求項21】
プログラム命令を格納した非一時的なコンピュータ読み取り可能な媒体を備える製品であって、前記プログラム命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、請求項1~20のいずれか1項に記載の方法を実行させる、製品。
【請求項22】
コントローラと、
プログラム命令を格納した非一時的なコンピュータ読み取り可能な媒体とを備え、前記プログラム命令は、前記コントローラによって実行されると、前記コントローラに、請求項1~20のいずれか1項に記載の方法を実行させる、システム。
【請求項23】
コンピュータによって実行されるプログラムであって、前記プログラムは、前記コンピュータに、請求項1~20のいずれか1項に記載の方法を実行させる、プログラム。
【発明の詳細な説明】
【背景技術】
【0001】
背景
画像の深度マップを決定するための様々な方法が存在する。このような深度マップには、画像内のオブジェクトおよび/または領域の深度、たとえば、当該画像を撮影または生成するために用いられるカメラからこのようなオブジェクトまでの距離が記述されている場合がある。いくつかの例では、距離センサ(たとえば、レーダー、ライダー、超音波測距システム)を用いて深度マップを決定するための情報を提供することができる。さらなる例では、複数の関連画像(たとえば、ステレオ画像ペアの左眼用画像および右目用画像)を利用して深度マップを決定することができる。
【発明の概要】
【発明が解決しようとする課題】
【0002】
概要
深度マップは、様々な方法によって1枚の画像から求めることができる。これは、たとえば画像内に存在するビジュアルキュー基づいて人工ニューラルネットワーク(ANN)またはその他のアルゴリズムに1枚の画像を適用して深度マップを生成することを含み得る。次に、この深度マップを用いて、たとえば、ナビゲーション、距離ベースのぼかし処理またはフィルタ処理をソース画像に適用すること、またはその他の適用など、様々な適用を容易にすることができるようになる。
【0003】
1枚の画像から深度マップを生成するために利用されるANN(またはその他のアルゴリズム)は、様々な処理に従って開発され得る。本開示では、自然情景の画像のセットに基づいてANNを訓練する方法を提供する。各画像セットは、それぞれ異なる絞りおよび/または焦点距離で共通シーンを撮影した2枚以上の画像を含む。共通シーンのソース画像(たとえば、全焦点画像、または、被写界深度が大きいその他の画像)をANNに適用して予測深度マップを生成する。次に、予測深度マップを用いて、共通シーンの画像のセットのうちの別の画像(たとえば、目標画像)に(焦点距離、絞り、またはその他の光学特性が)対応する予測画像を、ソース画像に基づいて生成する。次に、予測画像と目標画像との差を用いてANNを訓練できる(たとえば、この差を誤差信号として用いて、ANNを誤差逆伝搬法で更新することによって)。
【0004】
このような更新処理を複数回実行し、複数の画像セットに基づいてANNを生成することができる。次に、(たとえば、携帯電話のプロセッサによって)このような訓練済みのANNを使用して、自然情景の1枚の画像(たとえば、屋内環境または屋外環境の人間、動物、植物、またはその他のオブジェクトの画像)から深度マップを求めることができる。ANNの出力は、まばらであったり、分解能が目標分解能(たとえば、入力画像(複数可)の分解能と一致する分解能)よりも低かったりする。このような例では、ANNの出力をアップサンプリングして、より高分解能の深度マップを提供することができる。このようなアップサンプリングは、補間法、バイラテラル法、またはその他の方法を用いて、より高分解能の深度マップを生成することを含むことができる。バイラテラル法を使って深度マップをアップサンプリングすることは、低分解能の深度マップに表現された深度に対応する高分解能の深度マップを、入力画像(複数可)内のオブジェクトのエッジまたはその他の特徴に対応するシャープなエッジまたはその他のシャープな特徴を示すように生成することを含み得る。
【0005】
予測画像を生成することは、より幅の広い絞り、異なる焦点距離、またはその他のソース画像上の変更の効果をシミュレーションすることによって、絞りレンダリング関数を適用して予測画像を生成することを含み得る。たとえば、この絞りレンダリング関数は、ソース画像をゆがませ、ライトフィールドの推定を決定してソース画像を生成した後、推定ライトフィールドをせん断および投影して予測画像を生成するように動作する。絞りレンダリング関数は微分可能であって、誤差逆伝搬法またはその他のANN訓練技術を容易にするであろう。
【0006】
いくつかの実施の形態では、ANNを特定のシーンの画像の1つのセット上で訓練し、シーンの画像のうちの1つ(またはそれ以上)の画像の深度マップを生成することができる。たとえば、本開示の方法に従って、それぞれ異なる焦点距離を有するシーンの被写界深度の浅い画像のセットを使用して、深度予測を行うANN(たとえば、オートエンコーダネットワーク)および(たとえば、画像セットのうちの1つの画像の)シーンの深度マップの両方を訓練することができる。
【0007】
本明細書に記載の方法は、画像からなる訓練セットを、訓練セットの画像内の深度の「グラウンドトゥルース(ground truth)」についての情報を必要とせずに、深度予測人工ニューラルネットワークの訓練のために利用できるようにする。さらには、これらの画像は、(たとえば、ステレオ画像ペアを訓練に用いた)複雑な多視点構成をせずに取得できる。その代わりに、このような訓練セットの画像は、1つの視点からのシーンを観測する1つの撮像装置を用いて、たとえば、異なる焦点距離および/または絞り設定で複数の画像を撮影することによって、または、ライトフィールドカメラを使用してシーンから受けるライトフィールドについての情報をキャプチャすることによって取得され得る。そのため、この方法は、複雑な多視点構成および/または低分解能の深度を検知する高価な構成を必要とし得る深度予測人工ニューラルネットワークを訓練するための従来技術に伴う問題に対処する。訓練済みの深度予測ニューラルネットワークを利用して1枚の画像から深度情報を生成してもよい。
【課題を解決するための手段】
【0008】
第1の態様では、方法は、(i)複数の画像を取得するステップを含み、複数の画像のうち少なくとも2つの画像からなるセットには共通シーンが記述されており、少なくとも2つの画像からなるセットは、第1被写界深度を有するソース画像と、第2被写界深度を有する目標画像とを含み、第2被写界深度は、第1被写界深度よりも浅く、方法は、さらに、(ii)人工ニューラルネットワークを利用して共通シーンの深度マップをソース画像に基づいて決定するステップと、(iii)決定された共通シーンの深度マップに基づいて、第2被写界深度に対応する被写界深度を有するように、ソース画像に基づく予測画像を決定するステップと、(iv)予測画像と目標画像との差分を求めるステップと、(v)求められた差分に基づいて人工ニューラルネットワークを更新するステップと、(vi)対象シーンの画像を取得するステップと、(vii)更新された人工ニューラルネットワークを利用して対象シーンの深度マップを対象シーンの画像に基づいて生成するステップとを含む。
【0009】
上記態様は、次の任意選択の特徴のうちの1つ以上を含んでもよい。第1の深度マップに基づいてソース画像に基づく予測画像を決定するステップは、微分可能絞りレンダリング関数(a differentiable aperture rendering function)を使用するステップを含んでもよい。微分可能絞りレンダリング関数を使用して予測画像を決定するステップは、ソース画像に基づいて推定ライトフィールドを決定するステップと、第1の深度マップに基づいて推定ライトフィールドをせん断および投影して予測画像を決定するステップとを含んでもよい。人工ニューラルネットワークを利用して共通シーンの深度マップをソース画像に基づいて決定するステップは、人工ニューラルネットワークを利用して深度値セットをソース画像に基づいて決定するステップを含み、深度値セットに含まれる各深度値は、ソース画像内のそれぞれの位置に対応し、人工ニューラルネットワークを利用して共通シーンの深度マップをソース画像に基づいて決定するステップは、深度値セットをアップサンプリングして共通シーンの深度マップを生成するステップをさらに含んでもよい。深度値セットをアップサンプリングして共通シーンの深度マップを生成するステップは、バイラテラル法を用いて深度値セットをソース画像に基づいてアップサンプリングするステップを含んでもよい。目標画像は第1の目標画像であってもよい。予測画像は第1の予測画像であってもよい。求められた差分は、第1の求められた差分であってもよい。少なくとも2つの画像からなるセットは、第3被写界深度を有する第2の目標画像をさらに含み、第3被写界深度は第2被写界深度とは異なり、かつ第1被写界深度よりも浅くてもよく、方法は、さらに、決定された共通シーンの深度マップに基づいて、第3被写界深度に対応する被写界深度を有するように、ソース画像に基づく第2の予測画像を決定するステップと、第2の予測画像と第2の目標画像との第2差分を求めるステップとをさらに含み、人工ニューラルネットワークを更新するステップは、ニューラルネットワークを第2差分に基づいて更新するステップを含んでもよい。共通シーンが記述された少なくとも2つの画像からなるセットを取得するステップは、ライトフィールドカメラを使用して共通シーンからのライトフィールドを撮影するステップと、第1被写界深度を有するように、撮影されたライトフィールドに基づいてソース画像を生成するステップと、第2被写界深度を有するように、撮影されたライトフィールドに基づいて目標画像を生成するステップとを含んでもよい。共通シーンが記述された少なくとも2つの画像からなるセットを取得するステップは、第1の絞り設定にセットされたカメラを使用してソース画像を撮影するステップと、第2の絞り設定にセットされたカメラを使用して目標画像を撮影するステップとを含み、第2の絞り設定の幅は、第1の絞り設定よりも広くてもよい。対象シーンの画像を取得するステップは、携帯電話を操作して対象シーンの画像を撮影するステップを含んでもよく、方法は、人工ニューラルネットワークが更新されたことを携帯電話にサーバから送信するステップをさらに含んでもよく、更新された人工ニューラルネットワークを利用して対象シーンの深度マップを対象シーンの画像に基づいて生成するステップは、携帯電話のプロセッサが更新された人工ニューラルネットワークを利用して対象シーンの深度マップを生成するステップを含む。方法は、決定された対象シーンの深度マップに基づいて、対象シーンの画像に画像処理を行うステップをさらに含んでもよい。人工ニューラルネットワークは、畳み込みニューラルネットワークであってもよい。
【0010】
さらなる態様では、方法は、(i)システムが、複数の画像を取得するステップを含み、複数の画像のうち少なくとも2つの画像からなるセットには共通シーンが記述されており、少なくとも2つの画像からなるセットは、第1被写界深度を有するソース画像と、第2被写界深度を有する目標画像とを含み、第2被写界深度は、第1被写界深度よりも浅く、方法は、さらに、(ii)システムが、人工ニューラルネットワークを利用して共通シーンの深度マップをソース画像に基づいて決定するステップと、(iii)システムが、決定された共通シーンの深度マップに基づいて、第2被写界深度に対応する被写界深度を有するように、ソース画像に基づく予測画像を決定するステップと、(iv)システムが、予測画像と目標画像との差分を求めるステップと、(v)システムが、求められた差分に基づいて人工ニューラルネットワークを更新するステップと、(vi)人工ニューラルネットワークが更新されたことをシステムからリモートデバイスに送信するステップとを含む。
【0011】
さらに別の態様では、方法は(i)シーンの複数の画像を取得するステップを含み、画像は、各々、被写界深度が浅く、かつ焦点距離が異なり、方法は、さらに、(ii)人工ニューラルネットワークを利用してシーンの深度マップを複数の画像に基づいて決定するステップと、(iii)複数の画像および決定されたシーンの深度マップに基づいて、シーンの被写界深度が大きい予測画像を決定するステップと、(iv)決定された共通シーンの深度マップに基づいて、複数の画像のうちの特定の画像に対応する焦点距離を有するように、被写界深度が大きい予測画像に基づく被写界深度の浅い予測画像を決定するステップと、(v)被写界深度の浅い予測画像と特定の画像との差分を求めるステップと、(vi)求められた差分に基づいて人工ニューラルネットワークを更新するステップと、(vii)更新された人工ニューラルネットワークを利用して、更新されたシーンの深度マップを複数の画像に基づいて決定するステップとを含む。
【0012】
人工ニューラルネットワークは、オートエンコーダ畳み込みニューラルネットワークであってもよい。決定された共通シーンの深度マップに基づいて、複数の画像のうちの特定の画像に対応する焦点距離を有するように、被写界深度が大きい予測画像に基づく被写界深度の浅い予測画像を決定するステップは、微分可能絞りレンダリング関数を使用するステップを含んでもよい。シーンの複数の画像を取得するステップは、カメラを操作してシーンの複数の画像の各画像をそれぞれ異なる焦点距離設定を用いて撮影するステップを含んでもよい。
【0013】
これらおよびその他の態様、利点、および代替例は、下記の詳細な説明を添付の図面を適宜参照しながら読むことによって当業者に明らかになるであろう。さらには、本明細書のこの概要欄などに示した説明は、クレームされる主題を一例として示しており、限定でないことを理解されたい。
【図面の簡単な説明】
【0014】
【
図1】デバイスによって撮影されている例示的なシーンのコンテンツを示す図である。
【
図2A】
図1のデバイスのカメラによって撮影された
図1に示すシーンの例示的な画像である。
【
図2B】
図1のデバイスのカメラによって撮影された
図1に示すシーンの例示的な画像である。
【
図2C】
図1のデバイスのカメラによって撮影された
図1に示すシーンの例示的な画像である。
【
図3】
図1のデバイスの視点からの
図1に示すシーンの深度マップの例を示す図である。
【
図6】例示的なコンピューティングシステムの構成要素の一部を示す簡略ブロック図である。
【発明を実施するための形態】
【0015】
詳細な説明
本明細書において、方法およびシステムの例を説明する。単語「exemplary」、「example」、および「illustrative」は、本明細書において、「一例、例、または例示」を意味すると理解されたい。本明細書に「exemplary」、「example」または「illustrative」と記載されたいずれの実施の形態または特徴も、その他の実施の形態または特徴よりも好ましいまたは有利であると必ずしも解釈されるわけではない。さらには、本明細書に記載の例示的な実施の形態は、限定ではない。開示のシステムおよび方法の特定の態様を幅広い様々な異なる構成に配置または組み合わせることができることは、容易に理解できるであろう。
【0016】
I.例示的な画像および適用例
一般に、撮像とは、デジタルフォーマット、化学フォーマット、またはその他のフォーマット(たとえば、写真および/または動画)で実世界の環境またはシーンの色特性および輝度特性を撮影して記憶することを指す。数多くの異なるフォーマット(たとえば、カラー撮像、白黒撮像)で画像を撮影することを容易にする多種多様な撮像装置が存在する(たとえば、CCD、光検出器アレイ、アクティブ画素センサ)。
【0017】
様々な応用において、画像に存在するオブジェクトの深度を決定することは有利であり得る。このような深度マップは、画像内の位置ごとに、たとえば、画像の画素ごとに深度値を含むことができる。このような深度マップの深度値は、互いに相対して画像に描かれたオブジェクトの位置、このようなオブジェクトと画像を生成するために使用されるカメラまたはその他の検知デバイスとの距離、または、画像内に表されたオブジェクトまたは位置のその他の深度関連のパラメータに関係し得る。たとえば、画像は、屋外シーンを描いている可能性があり、この画像について求められた深度マップは、シーンにあるオブジェクトおよび/または位置と画像を撮影するために用いられたカメラとの距離を記述し得る。次に、このような深度マップを用いて(たとえば、シーンに存在するオブジェクトおよび位置をマッピングする、シーンを通してロボットまたはその他のデバイスを移動させる)シーン内のオブジェクトの形状および位置を特定し、深度を意識した画像処理またはその他の画像処理を画像に対して行う(たとえば、被写界深度の浅い画像をシミュレーションするためにシーン内の一定の深度のオブジェクトをぼかす)、またはその他の応用を容易にすることができる。
【0018】
図1は、近くのオブジェクト103と遠くのオブジェクト105とを含んだシーン100を示す図である。これに加えて、
図1は、機能の中でも特に、近くのオブジェクト103の近傍に配置されてシーン100の可視光画像を生成するように構成されるデバイス110を示す。シーン100の可視光画像を生成することは、当該シーンの1つ以上のライトフィールド画像、(たとえば、それぞれ異なる焦点距離における)シーンの被写界深度が浅い1つ以上の画像、シーンの被写界深度が深い1つ以上の画像を(たとえば、小さい絞り設定を用いて)生成すること、またはシーン100についてのその他の画像に関する情報を生成することを含み得る。
【0019】
一例として、デバイス110は、携帯電話(たとえば、スマートフォン)、スチールカメラ、ビデオカメラ、コンピュータ(デスクトップ、ノートブック、タブレット端末、またはハンドヘルドコンピュータなど)、PDA(Personal Digital Assistant)、ホームオートメーションコンポーネント、DVR(Digital Video Recorder)、デジタルテレビ、リモコン、ウェアラブルコンピューティングデバイス、または少なくとも1つのカメラを装備したその他の種類のデバイスであってもよいが、これに限定されない。デバイス110は、デジタルカメラなどの個別の物理デバイス、カメラアプリケーションがソフトウェアで動作する特定の物理ハードウェアプラットフォーム、またはカメラ機能を実行するように構成されたハードウェアとソフトウェアとのその他の組合せを表し得ることを理解されたい。
【0020】
デバイス110は、画像撮影要素115を含む。画像撮影要素115は、可視光画像を生成するように動作してもよい。画像撮影要素115は、ライトフィールド画像、または画像撮影要素115が露出されるシーン100から受け取ったライトフィールドについてのその他の情報を生成するように構成されたライトフィールドカメラまたはその他の構成要素を含み得る。このようなライトフィールドカメラは、複数の絞り、レンズ、または、画像撮影要素115のそれぞれの複数の位置で受光した光に基づいて画像情報を生成することを容易にするように構成されたその他の光学素子を含み得る。追加的または代替的に、画像撮影要素115は、1つ以上のカメラを含み得る。このようなカメラは、絞り設定、焦点距離、焦点深度、または画像撮影要素115のその他の画像取得プロパティを調整するために光学素子(たとえば、可変絞り、1つ以上のレンズ)を調整するように構成された1つ以上のアクチュエータを含み得る。このようなカメラは、(たとえば、カメラの絞り設定を調整することによって)被写界深度が異なるシーン100の複数の画像を生成し、焦点距離が異なるシーン100の複数の被写界深度の浅い画像を生成する、および/またはシーン100の被写界深度の大きい画像を生成するように操作され得る。追加的または代替的に、このようなカメラは、シーン100の被写界深度の大きい画像を生成するように構成された小型の固定絞り(たとえば、カメラは、ピンホールカメラであり得る)を含むことができる。
【0021】
図2Aは、近くのオブジェクト画像253aと遠くのオブジェクト画像255aとを含む、シーン100の被写界深度の大きい画像250aの例を示す図である。大きな被写界深度を有する被写界深度の大きい画像250aの例では、画像撮影要素115からの距離に関わらず、ほぼすべてのオブジェクトがほぼ焦点が合った状態で画像に描かれる(たとえば、253a、255a)。このような被写界深度の大きい画像250aは、絞りが小さいカメラ(たとえば、ピンホールカメラ)、または、デバイスからの距離が異なるオブジェクトから受光した光が焦点が合った状態で撮像されるように画像を生成するように構成された撮像装置によって生成することができる。追加的または代替的に、ライトフィールドカメラを用いてシーン100のライトフィールド画像を生成することができ、ライトフィールド画像を(たとえば、せん断して投影することによって)処理して、シーン100の被写界深度の大きい画像を生成することができる。
【0022】
図2Bは、近くのオブジェクト画像253bと遠くのオブジェクト画像255bとを含む、シーン100の被写界深度の浅い画像250bの第1の例を示す図である。被写界深度の浅い画像(たとえば、250b)では、画像を生成するために使用された撮像装置(たとえば、画像撮影要素115)からの距離によって異なるが、画像に描かれた特定のオブジェクトの焦点はほぼ合っているが、画像に描かれたほかのオブジェクトは、ほぼぼやけているおよび/または焦点が合っていない。第1の被写界深度の浅い画像250bの焦点距離は、近くのオブジェクト画像253bに焦点が合うように、近くのオブジェクト103と画像撮影要素115との距離に対応している。画像撮影要素115から離れている遠くのオブジェクト105では、遠くのオブジェクト画像255bに焦点が合っていない。
【0023】
図2Cは、近くのオブジェクト画像253cと遠くのオブジェクト画像255cとを含む、シーン100の被写界深度の浅い画像250cの第2の例を示す図である。第2の被写界深度の浅い画像250cの焦点距離は、第1の例の被写界深度の浅い画像250dの焦点距離よりも大きい。第2の被写界深度の浅い画像250cの焦点距離は、遠くのオブジェクト画像255cに焦点が合うように、遠くのオブジェクト105と画像撮影要素115との距離に対応している。画像撮影要素115に近い近くのオブジェクト103では、近くのオブジェクト画像253cに焦点が合っていない。
【0024】
シーン100の深度マップを決定することができる。このような深度マップは、シーン100内の様々なオブジェクトおよび/または位置の深度を表す複数の深度値を含み得る。このような深度値は、シーン内の撮像装置115とオブジェクト/位置との距離を表し得る。追加的または代替的に、深度は、シーン100内のオブジェクトまたは位置の相対距離を表し得る(たとえば、シーン内のオブジェクト/位置間の距離であるが、このようなオブジェクト/位置と撮像装置115との絶対距離ではない)。このような深度マップは、例示的な画像250a、250b、250cのうちの1つの画像内のそれぞれの位置に対応する深度値セットを含み得る。たとえば、深度マップは、例示的な画像250a、250b、250cのうちの1つの画像に含まれる画素の各々に対応する深度値を含み得る。
【0025】
図3は、例示的な画像250a、250b、250cのうちの1つ以上の画像に対応し得るおよび/または当該1つ以上の画像から生成され得る例示的な深度マップ300を示す図である。例示的な深度マップ300は、シーン100にあるオブジェクト/位置と撮像装置115との絶対距離に対応し得る。例示的な深度マップ300の特定の画素または領域のグレースケールカラーは、例示的な画像250a、250b、250cのうちの1つの画像の例示的な深度マップ300の特定の画素または領域に対応する例示的な画像の画素または領域に描かれたオブジェクト/位置と撮像装置115との距離に対応する。
【0026】
シーンのこのような深度マップ(たとえば、300)は、様々な方法で生成することができる。いくつかの例では、距離センサを利用して深度マップを生成することができる。これには、光、音、またはその他のエネルギーのパターンをシーンの中に発すること、これに応答してシーンにあるオブジェクト/位置から受け取る光、音、またはその他のエネルギーを検出することと、受け取ったエネルギーのなんらかの性質(たとえば、TOF(Time Of Flight)、位相、受け取り角度)を用いてシーンにあるオブジェクト/位置の深度を求めることとが含まれ得る。追加的または代替的に、それぞれ異なる視点からシーンの複数の画像を生成することができ、この異なる視点の相対的な位置および角度に基づいて生成された画像を使用して深度マップを生成することができる。たとえば、2つのカメラを用いてシーンのステレオ画像ペアを生成でき、立体視の方法を利用して深度マップをステレオ画像ペアに基づいて決定することができる。さらに別の例では、同じ視点からシーン(たとえば、100)を撮影した1つ以上の画像(たとえば、250a、250b、250c)を情報ソースとして使用してシーンの深度マップを求めることができる。これは、人工ニューラルネットワークまたはその他のアルゴリズムを利用して、画像のうちの1つ以上の画像内のオブジェクトの深度値を求めることを含み得る。たとえば、画像からなる訓練セットおよび/またはその「グラウンドトゥルース」深度マップに基づいて人工ニューラルネットワークを訓練して深度マップを生成してから、このような訓練済みの人工ニューラルネットワークを適用して追加画像の深度マップを求めることができる。追加的または代替的に、その他の方法を用いてシーンの深度マップを決定することができる。
【0027】
II.画像ベースの深度マップ予測の例
深度マップは、シーンの1つ以上の画像に基づいて様々な方法で求めることができる。いくつかの例では、パターンマッピング、三角測量、立体視画像処理という方法、および/またはその他の方法を用いて、シーン上の異なる視点に対応するシーンの複数の画像に基づいて深度マップを決定してもよい。シーンの1枚の画像に基づいてシーンの深度マップを決定することも可能である。これは、画像のコンテンツの(たとえば、画像に描かれたオブジェクトの)正体、画像内の相対的な位置/順序、またはその他の情報を求めることによって実現することができる。様々な機械学習技術またはその他のアルゴリズムを適用して画像に描かれたオブジェクトまたはその他のコンテンツを識別したり、画像内のこのようなオブジェクトの範囲を特定したり、画像内のこのようなコンテンツの順序および/または重なりを判断したり、画像に描かれたオブジェクトまたはその他のコンテンツについてのその他の情報を求めたり、および/またはこのような画像の深度マップを求めたりすることができる。
【0028】
いくつかの例では、人工ニューラルネットワーク(ANN)を適用して、深度マップまたはその他の深度情報を画像に基づいて求めることができる。このようなANNは、2つ以上の層を含み得、線形関数、対数関数、またはその他の特定の出力関数を含み得、全結合ニューロンまたはその他の結合ニューロンを含み得、異なる層のニューロン間に再帰型接続および/またはフィードフォワード接続を含み得、入力情報および/または層間を通過する情報を処理するためのフィルタまたはその他の要素を含み得、または、その他の方法で構成されて入力画像に基づいた深度および/もしくは深度マップの決定を容易にすることができる。
【0029】
ANNを利用して深度マップを入力画像に基づいて生成することは、入力画像に適用できる1つ以上のフィルタを含み得、次に、このようなフィルタの出力は、ANNの1つ以上のニューロンの入力に適用され得る。たとえば、このようなANNは、畳み込みニューラルネットワーク(CNN)であり得るまたは畳み込みニューラルネットワークを含み得る。畳み込みニューラルネットワークとは、ANNベースの分類、または2次元以上の次元内で要素がまとめられている画像またはその他の大きな次元の入力に基づいたその他の処理を容易にするように構成された様々なANNである。当該2つ以上の次元は、入力構造体における何らかの構造体に関連し得る(たとえば、画像の2次元空間内の相対的な位置は、画像の画素同士の類似度に関連し得るため)。
【0030】
本明細書の実施の形態では、CNNは、入力画像に適用される少なくとも1つの2次元フィルタを含み、次に、フィルタ処理された入力画像をCNN(たとえば、CNNの畳み込み層の)のニューロンに適用する。このようなフィルタおよび入力画像の畳み込みは、入力画像に存在する特徴の存在、位置、またはその他の情報を表し得る(たとえば、入力画像にあるエッジ、顔、またはその他の特徴の存在および/または位置)。CNNのニューロンのセットは、同じフィルタを入力画像に適用することによって決まるそれぞれの入力を受けることができる。追加的または代替的に、CNNのニューロンのセットは、異なるフィルタと対応付けられ得、それぞれのフィルタを入力画像に適用することによって決まるそれぞれの入力を受けることができる。このようなフィルタは、CNNの訓練中に訓練することができ、または、予め指定することができる。たとえば、このようなフィルタは、ウェーブレットフィルタ、センターサラウンドフィルタ、バイオインスパイアードフィルタカーネル(たとえば、動物の視覚情報処理受容野の研究より)、またはその他の予め指定されたフィルタパターンを表し得る。
【0031】
CNNまたはその他の様々なANNは、(たとえば、それぞれ異なるフィルタおよび/または特徴量に対応する)複数の畳み込み層、プーリング層、整流層、全結合層、またはその他の種類の層を含み得る。CNNの畳み込み層は、フィルタを用いた入力画像の畳み込み、またはその他の入力(たとえば、フィルタ処理された入力画像、ダウンサンプリングされた入力画像、またはその他の処理が施された入力画像)の畳み込みを表す。たとえば、最大値ノルム、平均ノルム、L2ノルム、またはその他のプーリング関数をCNNの上位層(複数可)のニューロンのサブセット、出力、またはその他の特徴量に適用することによって、CNNのプーリング層が非線形ダウンサンプリングをCNNの上位層に適用する。CNNの整流層は、正規化非線形関数(たとえば、不飽和活性化関数、シグモイド関数)を上位層の出力に適用する。CNNの全結合層は、CNNの1つ以上の上位層にあるニューロンの一部またはすべてからの入力を受ける。全結合層のニューロンの出力を使用して入力画像内のそれぞれの位置の深度値を(たとえば、入力画像の画素ごとに)求めることができる。
【0032】
CNNのニューロンは、対応する入力の次元に従ってまとめることができる。たとえば、入力が画像(2次元入力)である場合、CNNの(たとえば、CNNの入力層の、CNNのプーリング層の)ニューロンは、2次元入力画像における位置に対応し得る。CNNの異なる層にあるニューロンおよび/またはフィルタ間の接続は、このような位置に関係し得る。たとえば、CNNの畳み込み層にあるニューロンは、入力画像の一部、または、CNNのその他の層の一部、つまり、畳み込み層ニューロンの位置の近傍に位置する一部とフィルタとの畳み込みに基づく入力を受けることができる。別の例では、CNNのプーリング層にあるニューロンは、プーリング層のニューロンの位置の近傍に位置する、プーリング層よりも上位の層(たとえば、畳み込み層、上位のプーリング層)のニューロンからの入力を受け付けることができる。
【0033】
ANNは、各深度値が入力画像内のそれぞれの位置に対応するように、入力画像に基づいて深度値セットを生成することができる。いくつかの例では、これは、入力画像の画素の各々の深度値(すなわち、入力画像内の画素の位置の各々に対応する深度値)をANNが生成することを含み得る。いくつかの例では、ANNから出力された当該深度値セットをアップサンプリングして深度マップを生成する(たとえば、入力画像の分解能と等しい分解能を有する深度マップを生成する)ことができる。
【0034】
様々な方法を用いてANNまたはその他のアルゴリズムによって出力された深度値をアップサンプリングして、入力画像の深度マップを生成することができる。いくつかの例では、このアップサンプリングは、エッジを意識した方法で入力画像に対して行われ得る。たとえば、バイラテラル法を用いて複数の深度値を入力画像に基づいてアップサンプリングすることができ、出力深度マップは、たとえば、入力画像に存在するエッジまたはその他のシャープな特徴に対応するエッジまたはその他のシャープな特徴を各所に示す。このようなバイラテラル法によって、バイラテラルコスト関数が小さくなるように、このような深度マップの深度値を生成することができる。バイラテラルコスト関数は、出力深度マップと入力深度値との類似度に関係する1つ以上の項、および出力深度マップの平滑性に関係する1つ以上のさらなる項を含み得る。入力画像にあるシャープな特徴(たとえば、入力画像に描かれたオブジェクトのエッジまたはその他のエッジ)に対応する出力深度マップにあるシャープな特徴によってよりも、入力画像にあるシャープな特徴に対応しない出力深度マップにあるシャープな特徴によってコスト関数がさらに増えるように、1つ以上の平滑性項が決定され得る。
【0035】
III.訓練方法の例
画像から深度マップを生成するために用いられるANNまたはその他のアルゴリズムを訓練して、生成された深度マップの品質を向上させることができる。この訓練は、訓練画像セットに基づいてANN(またはその他のアルゴリズム)を更新または繰り返し更新することを含み得る。このような訓練は、特定の訓練画像をANNに適用することと、出力深度マップを決定することと、次に、予測深度マップと「グラウンドトゥルース」深度マップ(またはその他の訓練データ)との対応度に基づいて誤差または損失を判断することとを含むことができる。次に、決定された対応度に基づいて、ANNを更新し得る(たとえば、誤差逆伝搬法を介して)。
【0036】
実際には、このような「グラウンドトゥルース」深度情報にアクセスすることは難しい。このような情報は、距離センサ(たとえば、レーザー測距器、ライダー、超音波距離センサ)を利用して直接生成することができるが、このようなセンサは高価であり、操作が難しく、このようなセンサによって生成される深度情報は、分解能が低かったり、ノイズが多かったり、低品質であったりする可能性がある。(たとえば、ステレオカメラを使用して)異なる視点からシーンの複数の画像を撮影し、立体視アルゴリズムまたはその他の方法を用いてシーンの画像間の発散またはその他の対応関係に基づいてシーンの深度マップを生成することによって深度情報を生成することができる。しかしながら、このような多視点構成は高価であり、操作が難しく、特定の誤差(たとえば、シーンの画像に存在する横方向と縦方向の深度キューが非対称な誤差)を示す深度マップが生成されてしまう可能性がある。
【0037】
本明細書に記載の方法は、1つの視点から撮影された画像情報に基づいたANNの訓練を容易にすることによって上記短所を改善することができる。特定の視点から撮影された画像情報は、絞り、焦点深度、焦点距離、またはその他の深度に関連する画像プロパティが異なるシーンの複数の異なる画像を含む、または当該複数の異なる画像の生成を可能にする。次に、異なる画像のうちの少なくとも1つに基づいて、訓練されていないANNを使用して深度マップを生成する。この予測深度マップを用いて、シミュレーションされた画像を、少なくとも1つの画像に基づいて生成する。シミュレーションされた画像は、絞り、焦点深度、焦点距離、および/またはその他の深度に関連する画像プロパティがシーンの「真」画像のうちの1つに対応する。次に、シミュレーションされた画像と「真」画像との対応度を用いてANNを更新する。
【0038】
このような方法は、深度によって異なるぼかしを画像に適用するために使用する深度マップを決定する(たとえば、携帯電話のカメラなどによって生成された焦点深度が大きい画像から「ポートレイト」のような画像を生成する)ことに適している。これは、シミュレーションされた「ぼやけた」画像と、シミュレーションされた「ぼやけた」画像に絞りが対応する画像との差分をこの訓練方法が利用できるためである。絞りは、「全焦点」ではない画像の「ぼやけ」に関し得る画像プロパティである。従って、このような訓練済みのANNが不正確な深度マップをシーンの入力画像に基づいて生成してしまう例では、生成された深度マップの誤りによって、深度によって異なるぼかしをこの深度マップを用いて入力画像に対して適用すると、深度に左右される像ぶれをより精密にシミュレーションしているぼやけた入力画像ができてしまう可能性がある。
【0039】
ANNを訓練するための複数の画像を生成するために、複数の異なるシーンおよび/またはそれらの視点の画像のセットまたはその他の画像情報を本明細書に記載したように取得することができる。ANNを訓練するために使用される画像のセットまたはその他の画像情報は、様々な方法で使用することができる。いくつかの例では、1つ以上のカメラまたはその他の画像撮影装置を1つの視点から操作して、シーンの画像のセットを生成することができる。シーケンスの画像は、絞り設定、焦点深度、焦点距離、および/またはその他の画像プロパティが異なる。たとえば、焦点距離が異なるシーンの複数の異なる画像を1つのカメラが撮影することができる(たとえば、アクチュエータ、またはカメラの光学系の焦点距離を制御するためのその他の手段を操作することによって)。追加的または代替的に、ライトフィールドカメラを使用してシーンのライトフィールドを生成することができる。次に、ライトフィールドを使用して、たとえば絞り設定が異なる、シーンの異なる画像のセットを生成することができる。これは、ライトフィールドをせん断およびスライスし、1つ以上の画像を生成することを含み得る。ANNの訓練を容易にするために、シーンの画像のセットをその他の方法で取得することができる。
【0040】
いくつかの例では、ANNを訓練するために用いられる画像のセットは、被写界深度および/または絞り設定が異なり得る。このような画像セットは、第1被写界深度を有する第1画像(たとえば、全焦点である画像または大きな被写界深度を示す画像)と、第1被写界深度よりも浅い第2被写界深度を有する第2画像(たとえば、被写界深度の浅い画像)とを含み得る。上述したように、異なる設定(たとえば、異なる絞り設定)に応じて1つ以上のカメラを操作することによって、1つのライトフィールド画像から画像を生成することによって、またはその他の方法によってこのような画像を取得することができる。ANNを第1画像(たとえば、全焦点である画像および/またはより大きな被写界深度を有する画像)に適用して深度マップを生成することができる。生成された深度マップを用いて第1画像を変形して、第2画像の被写界深度に対応するシミュレーションされた被写界深度を有する予測画像を作成することができる。次に、第2画像と予測画像との差分を利用してANNを更新することができる。このような処理は、ANNを訓練するために、第1画像および第2画像を使用して、ならびに/または追加の画像セットを使用して複数回生じ得る。次に、訓練済みのANNを使用して追加画像(たとえば、携帯電話を使って撮影された画像)の深度マップを決定する。
【0041】
図4は、このようなANN訓練方法の要素を説明するフローチャートの例である。複数の画像(「TRAINING IMAGE SET」)は、共通シーンを描いたソース画像「SOURCE IMAGE」)と目標画像(「TARGET IMAGE」)とを含む(たとえば、ソース画像および目標画像が同じ視点からの公園の特定の場所を描いている)。ソース画像は、第1被写界深度を有するため、全焦点画像である。目標画像は、第1被写界深度よりも浅い第2被写界深度を有するため、被写界深度が浅い。
【0042】
ANN(「ARTIFICIAL NEURAL NETWORK:人工ニューラルネットワーク」)は、ソース画像および目標画像に描かれたシーンの深度マップ(「DEPTH MAP」)をソース画像に基づいて決定するために利用される。ANNは、入力画像に基づいた深度マップを提供するように、(たとえば、上述したような)様々な方法で構成され得る。たとえば、ANNは、畳み込みニューラルネットワークであり得る。次に、絞りレンダリング関数(「APERTURE RENDERING FUNCTION」)を用いてソース画像を深度マップに基づいて変形し、第2被写界深度に対応する被写界深度(すなわち、目標画像の被写界深度)を有する予測画像(「PREDICTED IMAGE」)を生成する。よって、ANNによって出力された深度マップがソース画像および目標画像に描かれたオブジェクトの深度を精密に表している場合、予測画像は、目標画像に相当するはずである。
【0043】
予測画像と目標画像との差分(「ERROR SIGNAL」)を求めて、ANNを更新するために使用することができる。求められたこのような差分は、たとえば、予測画像と目標画像との間で対応する画素の値を減算することによって求められる差分画像を含み得る。ANNを更新することは、求められた予測画像と目標画像との差分に損失関数を適用すること、誤差逆伝搬法を実行すること、当該差分のANNの係数についての勾配を求めること、またはその他の方法に従って、求められた差分に基づいてANNを更新することを含み得る。
【0044】
入力画像に対応する深度マップに基づいてシーンの入力画像を変形して予測画像を生成するために、絞りレンダリング関数は、様々な方法または変換を含み得る。指定された絞り設定、焦点距離、焦点深度、または、入力画像に描かれたオブジェクトまたは位置の深度に関するその他の指定された画像プロパティでシーンを撮影した画像に予測画像が対応するように、絞りレンダリング関数はこのような変形処理を行う。たとえば、絞りレンダリング関数は、全焦点入力画像および深度マップに基づいて予測ライトフィールドを生成できる。次に、絞りレンダリング関数は、決定したライトフィールドをスライスおよびせん断して予測画像を生成することができる。いくつかの例では、誤差逆伝搬法を用いて(たとえば、求められた予測画像と目標画像との差分を微分可能絞りレンダリング関数により逆伝播することによって)ANNを更新できるように、絞りレンダリング関数は、深度マップについて微分可能であり得る(たとえば、1つ以上の微分可能変換またはその他の処理を実行することを含み得る)。
【0045】
上述した(たとえば、
図4で)ANNを更新するための処理を複数回行ってANNを訓練することができる。たとえば、これらの処理は、ANNが収束するまで(たとえば、繰り返しごとのANN係数の変化の度合いが指定された絶対レベルまたは相対レベルよりも低くなるまで)、繰り返しごとに求められた誤差信号の大きさの測定値(たとえば、誤差の平方和、修正された誤差の和)が指定された絶対レベルまたは相対レベルよりも低くなるまで、指定された繰り返し回数またはその他の条件に従って繰り返し実行され得る。
【0046】
さらに、特定のシーンの3つ以上の画像を使用して情報を生成し、ANNを訓練することができる。たとえば、特定のシーンの(たとえば、
図4のような)訓練画像のセットは、浅い被写界深度を有し、かつ、絞り設定が異なる(または、その他の画像プロパティ、たとえば、焦点距離が異なる)複数の目標画像を含み得る。このような例では、絞りレンダリング関数を予測深度マップに基づいて使用して、ソース画像を複数回変形して複数の予測画像を生成することができる。予測画像の各々は、複数の目標画像のうちのそれぞれ対応する画像に絞り設定またはその他の画像プロパティが対応し得る。次に、対になる目標画像と予測画像との差分を求めて、ANNの更新に使用することができる。
【0047】
さらに、
図4で説明した実施の形態は、例示的な実施の形態であって、限定ではない。たとえば、ANNを訓練するために使用される複数の画像は、異なるシーンに対応する複数の画像セットを含み得る。このような画像セットの各々は、1つ以上の全焦点画像、被写界深度の浅い画像、または本明細書に記載のANN訓練方法の1つ以上の要素を実行するために使用できる共通シーンのその他の画像を含み得る。このような例では、各画像セットは、ANNを更新するために使用できる1つの(またはそれ以上の)差分画像、またはANNを更新するために(たとえば、その他の画像セットから判断されたこのような情報と組み合わせて)使用できるその他の誤差情報を提供できる。
【0048】
いくつかの例では、ANNを訓練するために使用されるシーンの画像セットは、焦点距離が異なる複数」の被写界深度の浅い画像を含むことができる。上述したように、このような画像は、異なる設定(たとえば、異なる焦点距離設定)に従って1つ以上のカメラを操作することによって、1つのライトフィールド画像から生成することによって、またはその他の方法によって取得できる。ANNを画像のうちの1つ以上に適用して深度マップを生成することができる。生成された深度マップを使用して、当該シーンの画像セットに基づいて当該シーンの被写界深度の大きい画像(たとえば、全焦点画像)を予測することができる。次に、深度マップを用いて、被写界深度が大きい予測画像を1回以上変形させ、シーンの画像セットのそれぞれの画像に対応するシミュレーションされた焦点距離、絞り設定、またはその他の画像プロパティを有する1つ以上の被写界深度の浅い予測画像を作成することができる。第2画像の被写界深度。次に、被写界深度の浅い予測画像と訓練セットに含まれる対応する画像との差分を利用してANNを更新することができる。シーンの画像セットを使用しておよび/またはそれぞれの追加シーンの追加の画像セットを使用してこのような処理を複数回行なってANNを訓練することができる。次に、訓練済みのANNを利用して追加画像(たとえば、携帯電話を使って撮影された画像)の深度マップを決定することができる。
【0049】
図5は、このようなANN訓練方法の要素を説明するフローチャートの例を示す図である。複数の画像(「TRAINING IMAGE SET」)は、共通シーンを描いた第1画像「FIRST IMAGE」)と第2画像(「SECOND IMAGE」)とを含む(たとえば、第1画像および第2画像は、同じ視点からの公園の特定の場所を描いている)。第1画像は、浅い被写界深度と第1焦点距離とを有し、第1焦点距離またはその近くにあるシーンの要素が焦点が合わせられた状態で第1画像に描かれている。また、第2画像は、浅い被写界深度と、第1焦点距離とは異なる第2焦点距離とを有し、第2焦点距離またはその近くにあるシーンの要素が焦点が合わせられた状態で第2画像に描かれている。
【0050】
ANN(「ARTIFICIAL NEURAL NETWORK」)を使用して、第1画像および第2画像に描かれたシーンの深度マップ(「DEPTH MAP」)を、第1画像および第2画像のうちの1つ以上に基づいて決定する。(たとえば、上述したような)様々な方法で、入力画像に基づいて深度マップを提供するようにANNを構成することができる。たとえば、ANNは、畳み込みニューラルネットワークであり得る。次に、レンダリング関数(「RENDERING FUNCTION」たとえば、絞りレンダリング関数)を用いて、シーンの被写界深度の大きい画像(「PREDICTED LARGE DEPTH-OF-FIELD IMAGE」)を深度マップならびに第1画像および第2画像のうちの1つ以上画像に基づいて予測する。いくつかの例では、レンダリング関数は、本明細書において説明した絞りレンダリング関数であり得、または当該絞りレンダリング関数を含み得る。追加的または代替的に、レンダリング関数は、プレノプティックイメージングからの画像再現技術またはその他の方法を用いて複数の被写界深度の浅い画像から全焦点画像を生成することができる。
【0051】
次に、絞りレンダリング関数(「APERTURE RENDERING FUNCTION」)を用いて、被写界深度が大きい予測画像を深度マップに基づいて変形させて、第2焦点距離(すなわち、第2画像の焦点距離)に対応する焦点距離を有するように被写界深度の浅い画像(「PREDICTED SHALLOW DEPTH-OF-FIELD IMAGE」)を生成する。よって、ANNによって出力された深度マップが第1画像および第2画像に描かれたオブジェクトの深度を精密に表している場合、被写界深度の浅い予測画像は、第2画像に相当するはずである。
【0052】
被写界深度の浅い予測画像と第2画像との差分(「ERROR SIGNAL」)を求めて、ANNを更新するために使用することができる。求められたこのような差分は、たとえば、被写界深度の浅い予測画像と第2画像との間で対応する画素の値を減算することによって求められる差分画像を含み得る。ANNを更新することは、求められた予測画像と目標画像との差分に損失関数を適用すること、誤差逆伝搬法を実行すること、当該差分のANNの係数についての勾配を求めること、またはその他の方法に従って、求められた差分に基づいてANNを更新することを含み得る。いくつかの例では、ANNは、オートエンコーダANNであり得、深度マップがオートエンコーダANNの内部「符号化」層を表す。このような例では、オートエンコーダANNの訓練(たとえば、教師なし訓練技術)に適したANN訓練技術を応用してANNを更新することができる。
【0053】
上述した(たとえば、
図5で)ANNを更新するための処理を複数回行ってANNを訓練することができる。たとえば、これらの処理は、ANNが収束するまで(たとえば、繰り返しごとのANN係数の変化の度合いが指定された絶対レベルまたは相対レベルよりも低くなるまで)、繰り返しごとに求められた誤差信号の大きさの測定値(たとえば、誤差の平方和、修正された誤差の和)が指定された絶対レベルまたは相対レベルよりも低くなるまで、指定された繰り返し回数またはその他の条件に従って繰り返し実行され得る。
【0054】
さらに、特定のシーンの3つ以上の画像を使用して情報を生成し、ANNを訓練することができる。たとえば、特定のシーンの(たとえば、
図5のような)訓練画像のセットは、焦点距離が異なる(または、その他の画像プロパティ、たとえば、絞り設定が異なる)追加の被写界深度の浅い画像を含み得る。ここのような例では、絞りレンダリング関数を予測深度マップに基づいて使用して、被写界深度が大きい予測画像を複数回変形して複数の被写界深度の浅い予測画像を生成することができる。被写界深度の浅い予測画像の各々は、訓練セットの複数の浅い被写界深度の画像のうちのそれぞれ対応する画像に焦点距離またはその他の画像プロパティが対応し得る。次に、対になる被写界深度の浅い入力画像と被写界深度の浅い予測画像との差分を求めて、ANNの更新に使用することができる。
【0055】
さらに、
図5で説明した実施の形態は、例示的な実施の形態であって、限定ではない。たとえば、ANNを訓練するために使用される複数の画像は、異なるシーンに対応する複数の画像セットを含み得る。このような画像セットの各々は、1つ以上の全焦点画像、被写界深度の浅い画像、または本明細書に記載のANN訓練方法の1つ以上の要素を実行するために使用できる共通シーンのその他の画像を含み得る。このような例では、各画像セットは、ANNを更新するために使用できる1つの(またはそれ以上の)差分画像、またはANNを更新するために(たとえば、その他の画像セットから判断されたこのような情報と組み合わせて)使用できるその他の誤差情報を提供できる。
【0056】
ANNは、サーバ、クラウドコンピューティングサービス、またはその他のコンピューティングシステムによって、本明細書に記載の技術に従って訓練することができる。次に、ANNを訓練するために用いられるシステムは、訓練済みのANNを適用して、さらなる画像の深度マップを求めることができる。たとえば、システムは、(たとえば、携帯電話、デジタルカメラ、またはその他の画像キャプチャシステムから)追加画像を受信し、これらの画像に訓練済みのANNを適用してこれらの画像の深度マップを生成することができる。次に、システムは、たとえば、求められた深度マップを、追加画像(複数可)を提供したデバイスまたはシステムに送信することができる。
【0057】
追加的または代替的に、サーバまたはその他のシステムは、ANNを本明細書に記載したように訓練してから、ANNが訓練済みであること(たとえば、訓練済みのANNの係数、内部構造、またはその他の具体的な点を示すもの)をその他のシステムに送信できる。次に、当該その他のシステムが訓練済みのANNを追加画像に適用することができる。たとえば、サーバは、本明細書に記載のようにANNを訓練して、ANNが訓練済みであることを(たとえば、インターネットおよび/またはセルラデータネットワークを介して)携帯電話に送信することができる。次に、携帯電話を操作して訓練済みのANNを画像(たとえば、携帯電話のカメラを介して撮影された画像)に適用し、このような画像の深度マップを生成することができる。ANNが訓練済みであることを送信することは、既に動作中のシステム(たとえば、携帯電話、デジタルカメラ、またはインターネットと通信中のその他のデバイス)に有線または無線コンポーネントを介して情報を送信することを含み得る。追加的または代替的に、ANNが訓練済みであることをシステムに送信することは、システムのアセンブリおよび/またはプログラミング中に生じ得る。たとえば、ANNが訓練済みであることを送信することは、訓練済みのANNを用いてコントローラまたはメモリ(たとえば、フラッシュメモリまたはその他の非一時的なコンピュータ読み取り可能な媒体)をプログラミングした後、コントローラまたはメモリをデバイスまたはその他のシステムに組み込むことを含み得る。
【0058】
なお、ANNを本明細書に記載のように訓練するために使用する画像は、後でさらなる対象画像(たとえば、携帯電話によって撮影された画像)に適用するためにANNを訓練するのに利用される「訓練データ」または「訓練画像」として特徴付けられてもよいが、これらの特徴付けは、本明細書に記載の方法の非限定例である。ANNは、対象シーンの2枚以上の画像を使用して訓練してから、画像のうちの1つに基づいてシーンの深度マップを生成するために使用してもよい。たとえば、携帯電話またはその他の画像キャプチャシステムは、(たとえば、携帯電話のカメラを使用して)それぞれ異なる絞り設定、焦点距離、またはその他の画像プロパティを有するシーンの複数の画像を撮影するように動作する。次に、携帯電話のプロセッサ、または携帯電話と通信しているプロセッサが、複数の画像を使用してANNを訓練できる。次に、訓練済みのANNを使用して、撮影画像のうちの1つ以上に基づいてシーンの深度マップを生成できる。
【0059】
IV.例示的なシステム
演算機能(たとえば、ANNを利用して深度マップを1つ以上の画像に基づいて生成するおよび/または本明細書に記載したようなANNを複数の画像に基づいて訓練するための機能)を1つ以上のコンピューティングシステムによって実行してもよい。このようなコンピューティングシステムは、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、サーバ、クラウドコンピューティングネットワーク、および/またはプログラマブルロジックコントローラなど、コンピューティングデバイスに組み込まれてもよく、または当該コンピューティングデバイスの形をとってもよい。この例では、
図6は、カメラコンポーネント624を備え得る例示的なコンピューティングデバイス600の構成要素のうちのいくつかを示す簡略ブロック図である。カメラコンポーネント624は、可視光カメラ、赤外線カメラ、ライトフィールドカメラ、プレノプティックカメラ、またはその他の種類のカメラなど、1つ以上のカメラを含んでもよい。
【0060】
一例として、コンピューティングデバイス600は、携帯電話(たとえば、スマートフォン)、スチールカメラ、ビデオカメラ、FAX端末、コンピュータ(デスクトップ、ノートブック、タブレット端末、またはハンドヘルドコンピュータなど)、PDA(Personal Digital Assistant)、ホームオートメーションコンポーネント、DVR(Digital Video Recorder)、デジタルテレビ、リモコン、ウェアラブルコンピューティングデバイス、ロボット、ドローン、自動運転車、またはなんらかの画像キャプチャ機能および/または画像処理機能を備えたその他の種類のデバイスであってもよいが、これらに限定されない。コンピューティングデバイス600は、デジタルカメラなどの物理的なカメラ装置、カメラアプリケーションがソフトウェアで動作する特定の物理ハードウェアプラットフォーム、または画像キャプチャおよび/または画像処理機能を実行するように構成されたハードウェアとソフトウェアとのその他の組合せを表してもよいことを理解されたい。
【0061】
図6に示すように、コンピューティングデバイス600は、通信インターフェース602と、ユーザインターフェース604と、プロセッサ606と、データストレージ608と、カメラコンポーネント624とを備えてもよく、それらのすべては、システムバス、ネットワーク、またはその他の接続メカニズム610によって互いに通信可能にリンクされてもよい。
【0062】
通信インターフェース602は、電気信号、磁気信号、電磁信号、光信号、またはその他の信号のアナログまたはデジタル変調を利用してコンピューティングデバイス600がその他のデバイス、アクセス網、および/または転送ネットワークと通信を行うことができるように機能してもよい。よって、通信インターフェース602は、POT(Plain Old Telephone Service)通信および/またはIP(Internet Protocol)もしくはその他のパケット通信など、回線交換および/またはパケット交換通信を容易にすることができる。たとえば、通信インターフェース602は、無線アクセスネットワークまたはアクセスポイントとのワイヤレス通信のために配置されたチップセットおよびアンテナを含んでもよい。また、通信インターフェース602は、Ethernet(登録商標)、USB(Universal Serial Bus)、またはHDMI(登録商標)(High-Definition Multimedia Interface)ポートなど、有線インターフェースの形をとってもよく、当該有線インターフェースを含んでもよい。また、通信インターフェース602は、Wifi、BLUETOOTH(登録商標)、GPS(Global Poitioning System)、またはワイドエリアワイヤレスインターフェース(たとえば、WiMAXまたは3GPP LTE(Long-Term Evolution))などのワイヤレスインターフェースの形をとってもよく、当該ワイヤレスインターフェースを含んでもよい。しかしながら、通信インターフェース602とは異なるその他の形態の物理層インターフェースおよびその他の種類の規格またはプロプライエタリ通信プロトコルを使用してもよい。さらには、通信インターフェース602は、複数の物理通信インターフェースを含んでもよい(たとえば、Wifiインターフェース、BLUETOOTH(登録商標)インターフェース、およびワイドエリアワイヤレスインターフェース)。
【0063】
いくつかの実施の形態では、通信インターフェース602は、コンピューティングデバイス600がその他デバイス、リモートサーバ、アクセス網、および/または転送ネットワークと通信を行うことができるように機能してもよい。たとえば、コンピューティングデバイス600が訓練済みのANNを利用して深度マップを撮影画像に基づいて生成できるようにするために、通信インターフェース602は、リモートサーバまたはその他のリモートデバイスまたはシステムとの通信を介して訓練済みのANNにアクセスするように機能してもよい。たとえば、コンピューティングシステム600は、携帯電話、デジタルカメラ、またはその他の画像撮影装置であり得、遠隔システムは、このような訓練済みのANNを含んだメモリを含んだサーバであり得る。追加的または代替的に、遠隔システムは、カメラまたはその他の撮像装置を備え、被写界深度の大きい画像、全焦点画像、被写界深度の浅い画像、ライトフィールド画像、またはコンピューティングデバイス600が上述したようにアクセスでき、かつ、コンピューティングデバイス600が使用してANNを本明細書に記載したように訓練することができるその他の画像情報を生成するように構成され得る。
【0064】
ユーザインターフェース604は、たとえば、ユーザから入力を受けるおよび/またはユーザに出力を行うなど、コンピューティングデバイス600がユーザとやり取りできるように機能してもよい。よって、ユーザインターフェース604は、キーパッド、キーボード、タッチパネルまたは存在感知パネル、コンピュータマウス、トラックボール、ジョイスティック、マイクロフォンなどの入力コンポーネントを含んでもよい。また、ユーザインターフェース604は、ディスプレイ画面など、1つ以上の出力コンポーネントを含んでもよい。ディスプレイ画面は、たとえば、存在感知パネルと組み合わされてもよい。ディスプレイ画面は、CRT、LCD、および/またはLED技術、もしくは現在知られているまたは今後開発されるその他の技術に基づいていてもよい。また、ユーザインターフェース604は、スピーカー、スピーカージャック、オーディオ出力ポート、音声出力装置、イヤホン、および/またはその他同様のデバイスを介して聞き取り可能な出力(複数可)を生成するように構成されてもよい。
【0065】
いくつかの実施の形態では、ユーザインターフェース604は、コンピューティングデバイス600がサポートするスチールカメラ機能および/またはビデオカメラ機能の(たとえば、カメラコンポーネント624を用いて撮影された画像の機能の)ファインダーとして機能するディスプレイを含んでもよい。さらに、ユーザインターフェース604は、カメラコンポーネント624の設定およびピント合わせならびにカメラコンポーネント624を用いた画像の撮影を容易にする1つ以上のボタン、スイッチ、ノブ、および/またはダイヤルを含んでもよい。これらのボタン、スイッチ、ノブ、および/またはダイヤルの一部またはすべてを、タッチパネルまたは存在感知パネル上の機能として実装することも可能である。ユーザインターフェース604は、ユーザが本明細書に記載の機能または処理を開始して、たとえば、訓練済みのANNを用いて撮影画像の深度マップを生成すること、(たとえば、「ポートレートモード」のカメラアプリケーションの一部として被写界深度の浅い画像をシミュレーションするために)決定された深度マップに基づいて撮影画像を処理することを可能にするように構成されてもよい。
【0066】
プロセッサ606は、1つ以上の汎用プロセッサ(たとえばマイクロプロセッサ)および/または1つ以上の特定用途向けのプロセッサ(たとえば、DPS(Digital Signal Processor)、GPU(Graphics Processing Unit)、FPU(Floating Point Unit)、ネットワークプロセッサ、またはASIC(Application-Specific Integrated Circuit)を含んでもよい。ある例では、特定用途向けのプロセッサは、アプリケーションまたは機能の中でも、画像処理、画像位置合わせ、および画像合成を行うことが可能であってもよい。データストレージ608は、磁気記憶装置、光記憶装置、フラッシュストレージ、または有機記憶装置など、1つ以上の揮発性記憶装置コンポーネントおよび/または不揮発性記憶装置コンポーネントを含んでもよく、すべてまたは一部は、プロセッサ606と一体化してもよい。データストレージ608は、取り外し可能なおよび/または固定の構成要素を含んでもよい。
【0067】
プロセッサ606は、データストレージ608に格納されたプログラム命令618(たとえば、コンパイル済みもしくは非コンパイルプログラムロジックおよび/または機械コード)を実行して本明細書に記載の様々な関数を実行可能であってもよい。そのため、データストレージ608は、プログラム命令を格納した非一時的なコンピュータ読み取り可能な媒体を含んでもよく、当該プログラム命令は、コンピューティングデバイス600によって実行されると、コンピューティングデバイス600に、本明細書および/または添付の図面に開示の方法、処理、または機能のいずれかを実行させる。プロセッサ606によるプログラム命令618の実行により、プロセッサ606がデータ612を利用できるようになり得る。
【0068】
一例として、プログラム命令618は、オペレーティングシステム622(たとえば、オペレーティングシステムカーネル、デバイスドライバ(複数可)、および/またはその他のモジュール)と、コンピューティングデバイス600上にインストールされた1つ以上のアプリケーションプログラム620(たとえば、カメラ機能、ANNの訓練、画像ベースの深度マップの生成)とを含んでもよい。データ612は、訓練画像614および/または1つ以上の訓練済みのANN616を含んでもよい。訓練画像614を用いて、本明細書に記載のANNを訓練する(たとえば、訓練済みのANN616を生成および/または更新)してもよい。訓練済みのANN616を適用して、入力画像(たとえば、カメラコンポーネント624を使用して撮影された画像および/または通信インターフェース602を介してアクセスされた画像)に基づいて深度マップを生成してもよい。
【0069】
アプリケーションプログラム620は、1つ以上のAPI(Application Programming Interface)を通してオペレーティングシステム622と通信してもよい。これらのAPIによって、たとえば、アプリケーションプログラム620が訓練済みのANN616を読み書きすること、通信インターフェース602を介して情報を送受信すること、ユーザインターフェース604上で情報を受け付けるおよび/またはディスプレイすること、カメラコンポーネント624を使用して画像を撮影することなどが容易になる。
【0070】
アプリケーションプログラム620は、(たとえば、通信インターフェース602を介して)1つ以上のオンラインのアプリケーションストアまたはアプリケーションマーケットを通してコンピューティングデバイス600にダウンロード可能な「アプリ」という形をとってもよい。しかしながら、ウェブブラウザを介して、またはコンピューティングデバイス600の物理インターフェース(たとえば、USBポート)を通してなど、ほかの方法でコンピューティングデバイス600にアプリケーションプログラムをインストールすることもできる。
【0071】
カメラコンポーネント624は、絞り、シャッター、記録面(たとえば、写真フィルムおよび/またはイメージセンサ)、レンズ、および/またはシャッターを含んでもよいが、これに限定されない。カメラコンポーネント624は、プロセッサ606によって実行されるソフトウェアにより(たとえば、アプリケーションプログラム620により)、少なくとも一部が制御されてもよい。さらには、カメラコンポーネント624は、複数のカメラシステムを含んでもよく、各カメラシステムは、それぞれの絞り、シャッター、記録面、レンズ、イメージセンサ、プロセッサ、および/またはその他の要素を含む。
【0072】
複数のカメラシステムが含まれる場合、いくつかの構成要素はシステム同士で共有され、その他の構成要素は共有されなくてもよい。たとえば、各カメラは、それ自体の絞り、レンズ、およびイメージセンサを備える一方で、プロセッサ、データ、バス、および/またはシャッターボタンなどのその他の構成要素を共有できる。別の例として、各カメラは、それ自体のレンズを備えるが、同じイメージセンサを共有できる。代替的に、個々のカメラシステムの構成要素を、その個々のカメラシステムのためにのみ利用し、ほかのカメラシステムと供給しなくてもよい。
【0073】
V.方法例
図7は、ANNを訓練して入力画像の深度マップを決定するための方法700のフローチャートである。方法700は、複数の画像を取得するステップ(710)を含む。当該複数の画像のうちの少なくとも2つの画像からなるセットには、共通シーンが記述されており、当該少なくとも2つの画像からなるセットは、第1被写界深度を有するソース画像と、第2被写界深度を有する目標画像とを含む。第2被写界深度は、第1被写界深度よりも浅い。方法700は、人工ニューラルネットワークを利用して、共通シーンの深度マップをソース画像に基づいて決定するステップ(720)をさらに含む。方法700は、決定された共通シーンの深度マップに基づいて、第2被写界深度に対応する被写界深度を有するように、ソース画像に基づく予測画像を決定するステップ(730)をさらに含む。方法700は、予測画像と目標画像との差分を求めるステップ(740)と、求められた差分に基づいて人工ニューラルネットワークを更新するステップ(750)とをさらに含む。方法700は、対象シーンの画像を取得するステップ(760)と、更新済みの人工ニューラルネットワークを利用して、対象シーンの深度マップを対象シーンの画像に基づいて生成するステップ(770)とをさらに含む。
【0074】
これらの実施の形態は、追加要素または特徴を含むことができる。いくつかの実施の形態では、ソース画像に基づく予測画像を第1の深度マップに基づいて決定するステップは、微分可能絞りレンダリング関数を使用するステップを含むことができる。微分可能絞りレンダリング関数を使用するステップは、ソース画像に基づいて推定ライトフィールドを決定するステップと、第1の深度マップに基づいて推定ライトフィールドをせん断および投影して予測画像を決定するステップとを含むことができる。
【0075】
いくつかの実施の形態では、人工ニューラルネットワークを利用してソース画像に基づいて共通シーンの深度マップを決定するステップは、人工ニューラルネットワークを利用して、深度値セットをソース画像に基づいて決定するステップを含み、深度値セットに含まれる各深度値は、ソース画像内のそれぞれの位置に対応し、当該決定するステップは、さらに、深度値セットをアップサンプリングして共通シーンの深度マップを生成するステップを含み得る。深度値セットをアップサンプリングして共通シーンの深度マップを生成するステップは、バイラテラル法を用いて深度値セットをソース画像に基づいてアップサンプリングするステップを含み得る。
【0076】
いくつかの実施の形態では、目標画像は第1の目標画像であり、予測画像は第1の予測画像であり、求められた差分は、第1の求められた差分である。このような実施の形態では、当該少なくとも2つの画像からなるセットは、第2被写界深度とは異なり、かつ、第1被写界深度よりも浅い第3被写界深度を有する第2の目標画像をさらに含む。このような実施の形態は、決定された共通シーンの深度マップに基づいて、第3被写界深度に対応する被写界深度を有するように、ソース画像に基づく第2の予測画像を決定するステップと、第2の予測画像と第2の目標画像との第2差分を求めるステップとをさらに含む。このような実施の形態では、人工ニューラルネットワークを更新するステップは、第2差分に基づいてニューラルネットワークを更新するステップを含む。
【0077】
いくつかの実施の形態では、共通シーンを記述した当該少なくとも2つの画像からなるセットを取得するステップは、ライトフィールドカメラを使用して共通シーンからライトフィールドを撮影するステップと、撮影されたライトフィールドに基づいて、第1被写界深度を有するようにソース画像を生成するステップと、撮影されたライトフィールドに基づいて、第2被写界深度を有するように目標画像を生成するステップとを含む。
【0078】
いくつかの実施の形態では、共通シーンを記述した当該少なくとも2つの画像からなるセットを取得するステップは、第1の絞り設定にセットされたカメラを使用してソース画像を撮影するステップと、第2の絞り設定にセットされたカメラを使用して目標画像を撮影するステップとを含み、第2の絞り設定の幅は、第1の絞り設定よりも広い。
【0079】
いくつかの実施の形態では、対象シーンの画像を取得するステップは、携帯電話を操作して対象シーンの画像を撮影するステップを含む。このような実施の形態は、人工ニューラルネットワークが更新済みであることをサーバから携帯電話に送信するステップをさらに含み得る。このような実施の形態では、更新済みの人工ニューラルネットワークを利用して、対象シーンの深度マップを対象シーンの画像に基づいて生成するステップは、携帯電話のプロセッサが更新済みの人工ニューラルネットワークを利用して対象シーンの深度マップを生成するステップを含む。
【0080】
上記実施の形態のいくつかは、決定された対象シーンの深度マップに基づいて対象シーンの画像に画像処理を行うステップをさらに含み得る。
【0081】
上記実施の形態のいくつかでは、人工ニューラルネットワークは、畳み込みニューラルネットワークである。
【0082】
図8は、ANNを訓練して入力画像の深度マップを決定するための方法800のフローチャートである。方法800は、システムが複数の画像を取得するステップ(810)を含む。当該複数の画像のうちの少なくとも2つの画像からなるセットには、共通シーンが記述されており、当該少なくとも2つの画像からなるセットは、第1被写界深度を有するソース画像と、第2被写界深度を有する目標画像とを含む。第2被写界深度は、第1被写界深度よりも浅い。方法800は、システムが人工ニューラルネットワークを利用して、共通シーンの深度マップをソース画像に基づいて決定するステップ(820)をさらに含む。この方法は、システムが決定された共通シーンの深度マップに基づいて、第2被写界深度に対応する被写界深度を有するように、ソース画像に基づく予測画像を決定するステップ(830)をさらに含む。方法800は、システムが予測画像と目標画像との差分を求めるステップ(840)と、求められた差分に基づいてシステムが人工ニューラルネットワークを更新するステップ(850)とをさらに含む。方法は、人工ニューラルネットワークが更新済みであることをシステムからリモートデバイスに送信するステップ(860)をさらに含む。
【0083】
これらの実施の形態は、追加要素または特徴を含むことができる。いくつかの実施の形態では、ソース画像に基づく予測画像を第1の深度マップに基づいて決定するステップは、微分可能絞りレンダリング関数を使用するステップを含む。微分可能絞りレンダリング関数を使用して予測画像を決定するステップは、ソース画像に基づいて推定ライトフィールドを決定するステップと、推定ライトフィールドを第1の深度マップに基づいてせん断および投影して予測画像を決定するステップとを含み得る。
【0084】
いくつかの実施の形態では、目標画像は第1の目標画像であり、予測画像は第1の予測画像であり、求められた差分は、第1の求められた差分である。このような実施の形態では、当該少なくとも2つの画像からなるセットは、第2被写界深度とは異なり、かつ、第1被写界深度よりも浅い第3被写界深度を有する第2の目標画像をさらに含む。このような実施の形態は、決定された共通シーンの深度マップに基づいて、第3被写界深度に対応する被写界深度を有するように、ソース画像に基づく第2の予測画像を決定するステップと、第2の予測画像と第2の目標画像との第2差分を求めるステップとをさらに含み得る。このような実施の形態では、人工ニューラルネットワークを更新するステップは、第2差分に基づいてニューラルネットワークを更新するステップを含み得る。
【0085】
いくつかの実施の形態では、人工ニューラルネットワークは、畳み込みニューラルネットワークである。
【0086】
図9は、ANNを訓練して入力画像の深度マップを決定するための方法900のフローチャートである。方法900は、シーンの複数の画像を取得するステップ(910)を含む。画像は、各々、浅い被写界深度を有し、かつ焦点距離が異なる。方法900は、人工ニューラルネットワークを利用してシーンの深度マップを複数の画像に基づいて決定するステップ(920)と、複数の画像および決定されたシーンの深度マップに基づいて、シーンの被写界深度が大きい予測画像を決定するステップ(930)とをさらに含む。方法900は、決定された共通シーンの深度マップに基づいて、複数の画像のうちの特定の画像に対応する焦点距離を有するように、被写界深度が大きい予測画像に基づく被写界深度の浅い予測画像を決定するステップ(940)をさらに含む。方法900は、被写界深度の浅い予測画像と特定の画像との差分を求めるステップ(950)と、求められた差分に基づいて人工ニューラルネットワークを更新するステップ(960)と、更新された人工ニューラルネットワークを利用して、更新されたシーンの深度マップを複数の画像に基づいて決定するステップ(970)とをさらに含む。
【0087】
これらの実施の形態は、追加要素または特徴を含むことができる。いくつかの実施の形態では、決定された共通シーンの深度マップに基づいて、複数の画像のうちの特定の画像に対応する焦点距離を有するように、被写界深度が大きい予測画像に基づく被写界深度の浅い予測画像を決定するステップは、微分可能絞りレンダリング関数を使用するステップを含む。
【0088】
いくつかの実施の形態では、シーンの複数の画像を取得するステップは、カメラを操作してシーンの複数の画像の各画像をそれぞれ異なる焦点距離設定を用いて撮影するステップを含む。
【0089】
VI.まとめ
上記詳細な説明では、開示のシステム、デバイス、および方法の様々な特徴および機能について、添付の図面を参照しながら記載している。図では、同様の記号は、別段の説明がない限り、通常、同様の構成要素を識別する。詳細な説明に記載された実施の形態、図面、および特許請求の範囲は、限定ではない。本明細書に記載に提示する発明の主題の範囲を逸脱することなくその他の実施の形態を利用したり、その他の変更を行なったりすることができる。本明細書に一般的に記載し、図に例示した本開示の態様を並び替えたり、置き換えたり、組み合わせたり、別々に分けたり、幅広い様々な異なる構成に設計したりする(これら全ては本明細書において明示的に予想済みである)ことができることは容易に理解されるであろう。
【0090】
図示したまたは本明細書に記載したメッセージフロー図、シナリオ、およびフローチャートの一部またはすべてについて、各ステップ、ブロックおよび/または通信は、例示的な実施の形態に係る、情報の処理および/または情報の送信を表してもよい。別の実施の形態も、これらの例示的な実施の形態の範囲に含まれる。これらの別の実施の形態では、たとえば、ステップ、ブロック、送信、通信、要求、応答、および/またはメッセージとして記載された機能は、関係する機能に応じて、ほぼ同時または逆の順序を含む、図示または説明した順序とは異なる順序で実行されてもよい。さらには、本明細書に記載した数よりも多いまたは少ないステップ、ブロックおよび/または機能を、本明細書に記載のメッセージフロー図、シナリオ、およびフローチャートのいずれかにを用いてもよく、これらのメッセージフロー図、シナリオ、およびフローチャートの一部またはすべてを互いに組み合わせてもよい。
【0091】
情報の処理を表すステップまたはブロックは、本明細書に記載の方法または技術の特定の論理関数を実行するように構成され得る回路に相当してもよい。代替的に、またはさらに、情報の処理を表すステップまたはブロックは、モジュール、セグメント、またはプログラムコードの一部(関連データを含む)に相当し得る。プログラムコードは、特定の論理関数または動作を当該方法または技術において実装するためにプロセッサによって実行可能な1つ以上の命令を含んでもよい。プログラムコードおよび/または関連データは、ディスクドライブ、ハードドライブ、またはその他の記憶媒体を含む、記憶装置などの任意の種類のコンピュータ読み取り可能な媒体に記憶されてもよい。
【0092】
また、コンピュータ読み取り可能な媒体は、レジスタメモリ、プロセッサキャッシュ、および/またはRAM(Random Access Memory)のような、データを短期間記憶するコンピュータ読み取り可能な媒体など、非一時的なコンピュータ読み取り可能な媒体を含んでもよい。また、コンピュータ読み取り可能な媒体は、たとえば、ROM(Read Only Memory)、光ディスクもしくは磁気ディスク、および/またはCD-ROM(Compact-Disc Read Only Memory)のような、二次記憶装置または永続長期記憶装置など、プログラムコードおよび/またはデータを長期間記憶する非一時的なコンピュータ読み取り可能な媒体を含んでもよい。また、コンピュータ読み取り可能な媒体は、その他の揮発性または不揮発性記憶システムであってもよい。コンピュータ読み取り可能な媒体は、たとえば、コンピュータ読み取り可能な記憶媒体、または有形の記憶装置と考えられてもよい。
【0093】
また、1つ以上の情報送信を表すステップまたはブロックは、同じ物理デバイスにあるソフトウェアおよび/またはハードウェアモジュール間の情報送信に対応してもよい。しかしながら、その他の情報送信は、それぞれ異なる物理デバイスにあるソフトウェアモジュールおよび/またはハードウェアモジュール間であってもよい。
【0094】
様々な態様および実施の形態を本明細書に開示したが、その他の態様および実施の形態も当業者に明らかになるであろう。本明細書に開示の様々な態様および実施の形態は、例示であり、限定ではなく、実際の範囲は、添付の特許請求の範囲に示されている。
【0095】
例示的な実施の形態は、全体を通して、ANNを利用して深度マップを入力画像に基づいて生成しているが、別のアルゴリズムを適用して深度マップが画像に基づいて生成され得ることも予想される。たとえば、カーネル法、ベイズ推論アルゴリズム、強化学習アルゴリズム、セルオートマン、決定木、ブースト決定木、またはその他の別のアルゴリズムおよび/またはそれらの組合せを本明細書に記載の方法に従って適用して、深度マップを入力画像に基づいて生成することができる。それに応じて、たとえば、誤差情報(たとえば、被写界深度の浅い予測画像と撮影またはその他の方法で取得した「グラウンドトゥルース」被写界深度の浅い画像との差分画像)を提供することによって、ANNを訓練するための本明細書に記載の方法をこのような別のアルゴリズムに適用してアルゴリズムを訓練することができる。誤差情報は、このような別のアルゴリズムに適用してアルゴリズムを更新できる(たとえば、誤差逆伝搬法、強化学習、または当該選択された別のアルゴリズムに適したその他の技術を用いる)。