特許第5871862号(P5871862)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ゴープロ インコーポレイテッドの特許一覧

<>
  • 特許5871862-3D深度情報に基づいたイメージぼかし 図000004
  • 特許5871862-3D深度情報に基づいたイメージぼかし 図000005
  • 特許5871862-3D深度情報に基づいたイメージぼかし 図000006
  • 特許5871862-3D深度情報に基づいたイメージぼかし 図000007
  • 特許5871862-3D深度情報に基づいたイメージぼかし 図000008
  • 特許5871862-3D深度情報に基づいたイメージぼかし 図000009
  • 特許5871862-3D深度情報に基づいたイメージぼかし 図000010
  • 特許5871862-3D深度情報に基づいたイメージぼかし 図000011
  • 特許5871862-3D深度情報に基づいたイメージぼかし 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5871862
(24)【登録日】2016年1月22日
(45)【発行日】2016年3月1日
(54)【発明の名称】3D深度情報に基づいたイメージぼかし
(51)【国際特許分類】
   H04N 13/02 20060101AFI20160216BHJP
   H04N 5/225 20060101ALI20160216BHJP
   H04N 5/232 20060101ALI20160216BHJP
   G06T 5/00 20060101ALI20160216BHJP
   G06T 1/00 20060101ALI20160216BHJP
【FI】
   H04N13/02 030
   H04N5/225 Z
   H04N5/232 Z
   G06T5/00 705
   G06T1/00 315
【請求項の数】23
【外国語出願】
【全頁数】24
(21)【出願番号】特願2013-140131(P2013-140131)
(22)【出願日】2013年7月3日
(65)【公開番号】特開2014-14076(P2014-14076A)
(43)【公開日】2014年1月23日
【審査請求日】2013年10月4日
(31)【優先権主張番号】61/667,888
(32)【優先日】2012年7月3日
(33)【優先権主張国】US
(31)【優先権主張番号】13/831,124
(32)【優先日】2013年3月14日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】513168574
【氏名又は名称】ゴープロ インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】スコット パトリック キャンベル
(72)【発明者】
【氏名】バリニードゥ チョウダリー アドスミリ
【審査官】 岩間 直純
(56)【参考文献】
【文献】 特開平09−181966(JP,A)
【文献】 特開2006−053694(JP,A)
【文献】 特開2005−252459(JP,A)
【文献】 特開2011−188004(JP,A)
【文献】 国際公開第2012/086120(WO,A1)
【文献】 特開2009−053748(JP,A)
【文献】 特開2008−059121(JP,A)
【文献】 国際公開第2006/001361(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 13/02
G06T 1/00
G06T 5/00
H04N 5/222 −
H04N 5/257
(57)【特許請求の範囲】
【請求項1】
イメージぼけを深度情報に基づいて加える方法において、
3Dカメラがキャプチャした3Dイメージを受け取るステップであって、該3Dイメージが複数の被写体および該複数の被写体のそれぞれについての深度情報を有している、ステップと、
前記複数の被写体のうちの一つを対象被写体として識別するステップと、
前記3Dカメラと前記対象被写体との間の第1の距離(V)を、前記対象被写体に関連する前記深度情報に基づいて判定するステップと、
前記対象被写体と前記複数の被写体のうちの第1の追加の被写体との間の第2の距離(ΔV)を、前記第1の追加の被写体に関連する前記深度情報および前記対象被写体に関連する前記深度情報に基づいて判定するステップと、
仮想f値(f♯)および仮想焦点距離(f)を受け取るステップと、
前記第1の追加の被写体のための第1のぼかしファクタ(β)を計算するステップであって、前記第1のぼかしファクタ(β)は第1の値の平方根に比例し、該第1の値は第2の値に定数を加算して得られ、該第2の値は第3の値に第4の値を乗算して得られ、該第3の値は前記第2の距離(ΔV)を第5の値で除算して得られ、該第5の値は前記第2の距離(ΔV)に前記第1の距離(V)にを加算して得られ、および、前記第4の値は、前記第1の距離(V)の値、前記仮想焦点距離(f)の値、および、前記仮想f値(f♯)の値で決定される、ステップと、
前記第1の追加の被写体に対し、前記計算するステップで計算した前記第1のぼかしファクタ(β)に基づいて第1のイメージぼけを加えるステップと
を有する方法。
【請求項2】
請求項1に記載の方法において、
前記3Dイメージが第1のイメージおよび第2のイメージを含み、該第1のイメージが第1のカメラによりキャプチャされおよび該第2のイメージが第2のカメラによりキャプチャされ、2台のカメラは分離距離だけ分離され、および、同一方向に向けられている、方法。
【請求項3】
請求項2に記載の方法において、
前記複数の被写体のそれぞれについての前記深度情報が、前記第1のイメージにおける前記被写体の位置と前記第2のイメージにおける前記被写体の位置との間のオフセットを含む、方法。
【請求項4】
請求項1に記載の方法において、
前記3Dイメージ中の前記複数の被写体のそれぞれについての前記深度情報が、前記複数の被写体のそれぞれについての視差情報を含む、方法。
【請求項5】
請求項1に記載の方法において、前記対象被写体として識別するステップは、前記複数の被写体のうちの1つを前記対象被写体として識別するユーザ入力を受け取るステップを含む、方法。
【請求項6】
請求項1に記載の方法において、前記第1の追加の被写体に対し前記第1のイメージぼけを加えるステップは、
前記第1の追加の被写体に関連する被写体領域および透明領域を含むイメージレイヤを生成するステップと、
ぼかしスポットを生成するステップであって、該ぼかしスポットのサイズが前記第1のぼかしファクタに基づいている、ステップと、
前記ぼかしスポットを前記イメージレイヤに畳み込むステップであって、該畳み込み演算がぼけイメージレイヤを生成し、該ぼけイメージレイヤが、第1のぼけた追加の被写体を持つぼけた被写体領域および透明領域を有している、ステップと、
透明度関数を、前記ぼけた被写体領域と前記透明領域との間の境界に適用するステップとを含む、方法。
【請求項7】
請求項1に記載の方法において、さらに、
前記対象被写体と前記複数の被写体のうちの第2の追加の被写体との間の第3の距離を、前記第2の追加の被写体に関連する前記深度情報および前記対象被写体に関連する前記深度情報に基づいて判定するステップと、
前記第2の追加の被写体のための第2のぼかしファクタを計算するステップであって、該第2のぼかしファクタが、前記第1の距離、前記第3の距離、前記仮想f値、および、前記仮想焦点距離に基づいている、ステップと、
前記第2の追加の被写体に対し、前記第2のぼかしファクタの値に基づいて第2のイメージぼけを加えるステップと
を有する方法。
【請求項8】
請求項7に記載の方法において、前記第1の追加の被写体は、前記3Dカメラへの距離が前記対象被写体よりも近く、前記対象被写体は、前記3Dカメラへの距離が前記第2の追加の被写体よりも近い、方法。
【請求項9】
イメージぼけを深度情報に基づいて加えるシステムであって、コンピュータプログラム命令をストアしおよびプロセッサにより実行するように構成された不揮発性コンピュータ可読媒体を含むシステムにおいて、該命令が、
3Dカメラから3Dイメージを受け取るステップであって、該3Dイメージが、複数の被写体およびそれぞれの被写体に関連する深度情報を有している、ステップと、
前記複数の被写体のうちの一つを対象被写体として識別するステップと、
前記3Dカメラと前記対象被写体との間の第1の距離(V)を、前記対象被写体に関連する前記深度情報に基づいて判定するステップと、
前記対象被写体と前記複数の被写体のうちの第1の追加の被写体との間の第2の距離(ΔV)を、前記第1の追加の被写体に関連する前記深度情報および前記対象被写体に関連する前記深度情報に基づいて判定するステップと、
仮想f値(f♯)および仮想焦点距離(f)を受け取るステップと、
前記第1の追加の被写体のための第1のぼかしファクタ(β)を計算するステップであって、前記第1のぼかしファクタ(β)は第1の値の平方根に比例し、該第1の値は第2の値に定数を加算して得られ、該第2の値は第3の値に第4の値を乗算して得られ、該第3の値は前記第2の距離(ΔV)を第5の値で除算して得られ、該第5の値は前記第2の距離(ΔV)に前記第1の距離(V)にを加算して得られ、および、前記第4の値は、前記第1の距離(V)の値、前記仮想焦点距離(f)の値、および、前記仮想f値(f♯)の値で決定される、ステップと、
前記第1の追加の被写体に対し、前記計算するステップで計算した前記第1のぼかしファクタ(β)に基づいて第1のイメージぼけを加えるステップと
に関し、並びに、
前記システムが前記コンピュータプログラム命令を実行するように構成されたプロセッサを含む、システム。
【請求項10】
請求項9に記載のシステムにおいて、前記3Dカメラが第1のカメラおよび第2のカメラを含み、該2台のカメラは分離距離だけ分離され、および、同一方向に向けられており、該2台のカメラのそれぞれがイメージセンサを備えている、システム。
【請求項11】
請求項10に記載のシステムにおいて、前記3Dイメージ中の前記複数の被写体のそれぞれについての前記深度情報が、前記第1のカメラの前記イメージセンサに対する前記被写体の位置と前記第2のカメラの前記イメージセンサに対する前記被写体の位置との間のオフセットを含む、システム。
【請求項12】
請求項9に記載のシステムにおいて、前記対象被写体として識別するステップは、前記複数の被写体のうちの1つを前記対象被写体として識別するユーザ入力を受け取るステップを含む、システム。
【請求項13】
請求項9に記載のシステムにおいて、前記第1の追加の被写体に対し前記第1のイメージぼけを加えるステップは、
前記第1の追加の被写体に関連する被写体領域および透明領域を含むイメージレイヤを生成するステップと、
ぼかしスポットを生成するステップであって、該ぼかしスポットのサイズが前記第1のぼかしファクタに基づいている、ステップと、
前記ぼかしスポットを前記イメージレイヤに畳み込むステップであって、該畳み込み演算がぼけイメージレイヤを生成し、該ぼけイメージレイヤが、第1のぼけた追加の被写体を持つぼけた被写体領域および透明領域を有している、ステップと、
透明度関数を、前記ぼけた被写体領域と前記透明領域との間の境界に適用するステップとを含む、システム。
【請求項14】
請求項9に記載のシステムにおいて、前記コンピュータ可読媒体がさらに、
前記対象被写体と前記複数の被写体のうちの第2の追加の被写体との間の第3の距離を、前記第2の追加の被写体に関連する前記深度情報および前記対象被写体に関連する前記深度情報に基づいて判定するステップと、
前記第2の追加の被写体のための第2のぼかしファクタを計算するステップであって、該第2のぼかしファクタが、前記第1の距離、前記第3の距離、前記仮想f値、および、前記仮想焦点距離に基づいている、ステップと、
前記第2の追加の被写体に対し、前記第2のぼかしファクタに基づいて第2のイメージぼけを加えるステップと
に関する命令を含むシステム。
【請求項15】
請求項14に記載のシステムにおいて、前記第1の追加の被写体は、前記3Dカメラへの距離が前記対象被写体よりも近く、前記対象被写体は、前記3Dカメラへの距離が前記第2の追加の被写体よりも近い、システム。
【請求項16】
コンピュータプログラム命令をストアしおよびプロセッサにより実行するように構成された不揮発性のコンピュータ可読媒体において、該命令が、
3Dカメラがキャプチャした3Dイメージを受け取るステップであって、該3Dイメージが複数の被写体および該複数の被写体のそれぞれについての深度情報を有している、ステップと、
前記複数の被写体のうちの一つを対象被写体として識別するステップと、
前記3Dカメラと前記対象被写体との間の第1の距離(V)を、前記対象被写体に関連する前記深度情報に基づいて判定するステップと、
前記対象被写体と前記複数の被写体のうちの第1の追加の被写体との間の第2の距離(ΔV)を、前記第1の追加の被写体に関連する前記深度情報および前記対象被写体に関連する前記深度情報に基づいて判定するステップと、
仮想f値(f♯)および仮想焦点距離(f)を受け取るステップと、
前記第1の追加の被写体のための第1のぼかしファクタ(β)を計算するステップであって、前記第1のぼかしファクタ(β)は第1の値の平方根に比例し、該第1の値は第2の値に定数を加算して得られ、該第2の値は第3の値に第4の値を乗算して得られ、該第3の値は前記第2の距離(ΔV)を第5の値で除算して得られ、該第5の値は前記第2の距離(ΔV)に前記第1の距離(V)にを加算して得られ、および、前記第4の値は、前記第1の距離(V)の値、前記仮想焦点距離(f)の値、および、前記仮想f値(f♯)の値で決定される、ステップと、
前記第1の追加の被写体に対し、前記計算するステップで計算した前記第1のぼかしファクタ(β)に基づいて第1のイメージぼけを加えるステップと
に関するコンピュータ可読媒体。
【請求項17】
請求項16に記載のコンピュータ可読媒体において、前記3Dイメージが第1のイメージおよび第2のイメージを含み、該第1のイメージが第1のカメラによりキャプチャされおよび該第2のイメージが第2のカメラによりキャプチャされ、2台のカメラは分離距離だけ分離され、および、同一方向に向けられている、コンピュータ可読媒体。
【請求項18】
請求項17に記載のコンピュータ可読媒体において、前記3Dイメージ中の前記複数の被写体のそれぞれについての前記深度情報が、前記第1のイメージにおける前記被写体の位置と前記第2のイメージにおける前記被写体の位置との間のオフセットを含む、コンピュータ可読媒体。
【請求項19】
請求項16に記載のコンピュータ可読媒体において、前記対象被写体として識別するステップは、前記複数の被写体のうちの1つを前記対象被写体として識別するユーザ入力を受け取るステップを含む、コンピュータ可読媒体。
【請求項20】
請求項16に記載のコンピュータ可読媒体において、
前記第1の追加の被写体に対し前記第1のイメージぼけを加えるステップは、
前記第1の追加の被写体に関連する被写体領域および透明領域を含むイメージレイヤを生成するステップと、
ぼかしスポットを生成するステップであって、該ぼかしスポットのサイズが前記第1のぼかしファクタに基づいている、ステップと、
前記ぼかしスポットを前記イメージレイヤに畳み込むステップであって、該畳み込み演算がぼけイメージレイヤを生成し、該ぼけイメージレイヤが、第1のぼけた追加の被写体を持つぼけた被写体領域および透明領域を有している、ステップと、
透明度関数を、前記ぼけた被写体領域と前記透明領域との間の境界に適用するステップとを含む、コンピュータ可読媒体。
【請求項21】
請求項16に記載のコンピュータ可読媒体において、さらに、
前記対象被写体と前記複数の被写体のうちの第2の追加の被写体との間の第3の距離を、前記第2の追加の被写体に関連する前記深度情報および前記対象被写体に関連する前記深度情報に基づいて判定するステップと、
前記第2の追加の被写体のための第2のぼかしファクタを計算するステップであって、該第2のぼかしファクタが、前記第1の距離、前記第3の距離、前記仮想f値、および、前記仮想焦点距離に基づいている、ステップと、
前記第2の追加の被写体に対し、前記第2のぼかしファクタの値に基づいて第2のイメージぼけを加えるステップと
に関する命令を含む、コンピュータ可読媒体。
【請求項22】
請求項21に記載のコンピュータ可読媒体において、前記第1の追加の被写体は、前記3Dカメラへの距離が前記対象被写体よりも近く、前記対象被写体は、前記3Dカメラへの距離が前記第2の追加の被写体よりも近い、コンピュータ可読媒体。
【請求項23】
イメージぼけを深度情報に基づいて加える方法において、
カメラにより撮られたイメージを受け取るステップであって、該イメージが複数の被写体を有している、ステップと、
前記複数の被写体のうちの一つを対象被写体として識別するステップと、
前記カメラと前記対象被写体との間の第1の距離(V)を判定するステップと、
前記対象被写体と前記複数の被写体のうちの第1の追加の被写体との間の第2の距離(ΔV)を判定するステップと、
仮想f値(f♯)および仮想焦点距離(f)を受け取るステップと、
前記第1の追加の被写体に対し第1のぼかしファクタ(β)に基づいて第1のイメージぼけを加えるステップであって、前記第1のぼかしファクタ(β)は第1の値の平方根に比例し、該第1の値は第2の値に定数を加算して得られ、該第2の値は第3の値に第4の値を乗算して得られ、該第3の値は前記第2の距離(ΔV)を第5の値で除算して得られ、該第5の値は前記第2の距離(ΔV)に前記第1の距離(V)にを加算して得られ、および、前記第4の値は、前記第1の距離(V)の値、前記仮想焦点距離(f)の値、および、前記仮想f値(f♯)の値で決定される、ステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
この開示は、一般的には光学系に関し、より詳細には、ぼかしフィルタを3Dカメラからの深度情報に基づいてイメージに適用して、浅い被写界深度のイメージをキャプチャするように構成された光学系の効果をシミュレートすることに関する。
【背景技術】
【0002】
デジタルカメラの人気が上昇する以前は、大抵の写真と映画は、アナログカメラによってフィルムにキャプチャされた。このようなアナログカメラのセンサは、一般にはデジタルカメラのイメージセンサよりも大きいことから、アナログカメラが被写体を適正にフィルム上に合焦させるために、より大きなレンズと光学系を必要とした。アナログカメラに関連する、より大きな光学系は、イメージの一部だけに焦点が合い、そのイメージの残りがぼやける、被写界深度が浅いイメージをキャプチャするように構成することができる。これらのより大きな光学系に当然に起きるぼけは、視る者の注意をイメージの合焦した単一の部分に惹きつけるために使用できることから、カメラの操作者に有用であった。例えば、カメラを、或るシーンの前景にいる俳優が、背景のぼやけた木々に対照して合焦するように構成することができた。
【0003】
デジタルカメラのイメージセンサはフィルムの物理的な制約を被らないことから、デジタルイメージング技術が新たに進歩するに従い、デジタルセンサはしだいに小型化された。デジタルイメージセンサのより小さなサイズとそれらの関連する光学系がフィルムカメラよりも可搬性があって多用途のデジタルカメラの発展を可能としてきた一方で、より小さなセンササイズはまた、デジタルカメラが浅い被写界深度のイメージをキャプチャすることを妨げている。換言すると、小型デジタルカメラの光学系を構成して、視る者の注意をイメージの単一の部分に惹きつける同様の芸術的なぼけを達成することは困難である。
【発明の概要】
【課題を解決するための手段】
【0004】
前処理において、ぼけをキャプチャイメージについてシミュレートする。3Dカメラから3Dイメージを受け取って、3Dイメージ中の深度情報を用いて、3Dイメージ中の複数の被写体の相対的な距離を判定する。一つの被写体を該イメージの主被写体として選び、該イメージ中の追加の被写体を識別する。識別した被写体に対して、3Dカメラと主被写体の間の距離、主被写体と追加の被写体の間の距離、ならびに、仮想焦点距離および仮想f値に基づきイメージぼけを加える。
【図面の簡単な説明】
【0005】
開示する実施形態はその他の優位性と特徴を備えており、それらは、詳細な説明、添付の請求の範囲、及び、添付図(すなわち図面)から容易に明らかになるであろう。図面についての簡単な紹介は以下の通りである。
図1A】3Dカメラがキャプチャする、一実施形態に従った例示の3Dイメージを表わす図である。
図1B図1Aのイメージ中に表される各被写体を視ている(viewing)ときに3Dカメラのセンサ面に発生する距離オフセットを一実施形態に従って表わす図である。
図1C図1Aのイメージ中に表される各被写体を視ている(viewing)ときに3Dカメラのセンサ面に発生する距離オフセットを一実施形態に従って表わす図である。
図1D図1Aのイメージ中に表される各被写体を視ている(viewing)ときに3Dカメラのセンサ面に発生する距離オフセットを一実施形態に従って表わす図である。
図2】映画的なぼけを3Dイメージに加えるための、一実施形態に従ったシステムを表わすネットワーク図である。
図3】一実施形態に従った、図2の映画的ぼかしモジュールの詳細図を表わすハイレベルブロック図である。
図4】カメラと主被写体、追加の被写体との間の距離を一実施形態に従って表わす図である。
図5】主被写体からの様々な距離におけるぼかしファクタの値を示す、一実施形態に従ったぼかし関数のグラフである。
図6】一実施形態に従った、ぼやけたイメージを3Dカメラからの深度情報に基づいて発生する処理を示すフローチャートである。
【発明を実施するための形態】
【0006】
図面及び以下の説明は、例示のためだけの好ましい実施形態に関するものである。留意すべきは、以下の説明から、本明細書中に開示される構造及び方法の別の形態を、特許請求の範囲の原理から逸脱することなく採用し得る実行可能な代替物として容易に認識できることである。
【0007】
ここで、参照が幾つかの実施形態について詳細になされ、その例が添付図面に示される。どこででも実行可能な類似または同様の参照符号が図面中で用いられ、類似または同様の機能を表すことに注意されたい。図面は、開示するシステム(または方法)の実施形態を例示の目的だけのために示している。当業者は、以下の説明から、本明細書中に表された構造及び方法の別の形態を、本明細書中で説明する原理から逸脱することなく採用し得ることが容易に解るであろう。
【0008】
構成の概観
大型の光学系を用いて浅い被写界深度のイメージをキャプチャしたときに発生するぼけは、コンピュータシステム上で稼動している映画的ぼかしモジュールによる前処理においてシミュレートすることができる。映画的ぼかしモジュールは3Dカメラがキャプチャした3次元(3D)イメージからの深度情報を解析して、3Dカメラと3Dイメージ中の様々な被写体との距離を判定する。映画的ぼかしモジュールはまた、そのイメージ中の被写体(objects)の一つを、そのイメージの主被写体(subject)として識別する。3Dイメージ中の被写体との距離を判定した後に、被写体と主被写体との距離に基づいてぼかしファクタが各被写体について計算され、ぼかしファクタは、各距離において被写体に適用されるぼかしフィルタの入力パラメータとして用いられる。このぼけはカメラの光学系においてではなく前処理において加えられるため、小型のイメージセンサ及び光学系を用いたポータブル3Dカメラを、元のイメージをキャプチャするために使用することもできる。
【0009】
3Dカメラを、互いに平行に向けられ且つ同じ方向を向いた、独立した2台のカメラとして実施することもできる。この2台のカメラはわずかに異なる位置に配置されるため、このカメラがキャプチャした或る被写体の2つのイメージにおける位置には距離オフセットがあり、この距離オフセットを用いて被写体と3Dカメラとの間の距離を判定することができる。この場合、(当技術分野では視差(parallax)情報として知られている)このオフセットは被写体についての深度情報を表している。
【0010】
一実施形態において、映画的ぼかしモジュールは2つのイメージを受け取り、オフセット情報を用いて、イメージを、その各レイヤがカメラから固定した距離間隔における被写体を含んでいる一連の深度レイヤに分割する(深度段階(depth step)と呼ぶ)。例えば、一つのレイヤは、カメラから2.4乃至2.5メートルの間の被写体を含んでいてよい。映画的ぼかしモジュールはまた、パターン認識とユーザ入力の組み合わせを用いて一つの被写体をイメージの主被写体として識別し、その主被写体を含むレイヤがサブジェクトレイヤに指定される。
【0011】
サブジェクトレイヤが識別された後に、ぼかしファクタが各レイヤについて計算される。ぼかしファクタは、そのレイヤとサブジェクトレイヤとの間の距離、3Dカメラとサブジェクトレイヤとの間の距離、及び、ユーザが提供する仮想のf値及び仮想の焦点距離に基づいている。これにより、有益にも、浅い被写界深度のイメージをキャプチャするように構成された大型の光学系に相当する仮想のf値及び仮想の焦点距離をユーザが備えることが可能になる。ぼかしファクタを各レイヤについて計算した後に、ぼかしファクタに基づいて各レイヤにイメージぼけを加えて、個々のぼやけイメージレイヤが次いで合成されて単一のぼやけたイメージを作り出す。
【0012】
本明細書中で用いる通り、3Dイメージとは、3Dカメラとイメージ中の被写体との間の距離を判定するために用いることができる3D深度情報を含んだイメージを言う。同じ様に、3Dカメラは3D深度情報をキャプチャすることができるカメラである。例えば、3Dカメラを、同じ方向に向けられた分離した2台のデジタルカメラとして、図1B乃至1Dを参照して説明されるように実施することもできる。
【0013】
本明細書中で用いる通り、被写体は、カメラがイメージの一部としてキャプチャした物理エンティティである。被写体はカメラから様々な距離に位置することができ、及び/または、フレーム内で様々な位置(例えば、左側、中央、または右側)に位置することもできる。加えて、或るイメージにおける一つの被写体をそのイメージの主被写体として選んでもよい。本明細書中で用いる通り、イメージの主被写体は合焦したままであることを意味する被写体であり、そのイメージ中の他の被写体は追加の被写体である。
【0014】
幾つかのイメージにおいて、視る者の注意を惹きつけるように主被写体を選ぶこともできる。例えば、背景の木々の前に女優を表現するイメージにおいて、女優を主被写体として、木々を追加の被写体としてもよい。別のものとして、主被写体を純粋に芸術的な理由で選んでもよい。例えば、前の例での女優が伸ばした腕に花を抱えており、体の残りは彼女の腕より後ろにあってカメラからさらに遠くに離れていると仮定する。ユーザは、女優よりむしろ花を意図的に主被写体として選ぶことで、女優に注意を惹きつけたいと思うであろう。ユーザは続いて、視る者の注意をぼやけた女優に惹きつける意図で、イメージぼけを女優に加えて花には加えないように映画的ぼかしモジュールを構成することもできる。
【0015】
本明細書中で用いる通り、ぼかしファクタは、イメージ中の被写体に適用されるぼかしフィルタの強さを定義するパラメータである。ぼかしファクタは、図5に示されるぼかし関数などのぼかし関数で計算することもできる。ぼかし関数を構成して、カメラから同一距離にある主被写体とどの追加の被写体も主被写体として1のぼかしファクタを持つようにすることができ、このことは、イメージぼけが付加されることがないことを意味する。この場合、ぼかし関数を追加的に構成し、他の距離にある被写体が1よりも大きいぼかしファクタを持つようにすることができ、このことは、イメージぼけがそれらの被写体に付加され、浅い被写界深度のイメージの効果をシミュレートすることを意味する。

視差情報を用いて被写体の距離を判定すること
図1Aは、一実施形態に従った、3Dカメラがキャプチャすることのできる例示の3Dイメージ100である。図1Aの実施形態において、左側のサイクリスト104がイメージ100の主被写体である。イメージ100はまた、2つの追加の被写体102,106を含んでいる。ウサギ102はサイクリスト104より前方でイメージ100の右側にいて、木106はサイクリスト104より後ろの背景でイメージの中央にある。サイクリスト104がイメージ100の主被写体であるため、ユーザは、サイクリスト104に合焦してウサギ102と木106はぼやけているように被写界深度をシミュレートしたいと思うであろう。
【0016】
図1B−1Dは、一実施形態に従った、図1Aの例示の3Dイメージ100における被写体102,104,106を視ている(viewing)ときに3Dカメラのセンサ面110A,110Bに発生する、相対的な水平距離オフセットを表わす図である。このオフセットは、3Dカメラと各被写体102,104,106との間の距離を計算するために引き続き使用することができる3D深度情報を表し、2個のセンサ110A,110Bにより撮られる2つのイメージの組み合わせが単一の3Dイメージを表す。
【0017】
例示の3Dカメラが各イメージの左側に示されている。図1B−1Dに示された例示の3Dカメラは独立した2台のカメラ(左側カメラ108A及び右側カメラ108B)として実施され、各カメラ108A,108Bは自身のイメージセンサ110A,110Bと自身のレンズ108A,108Bを有する。追加のレンズやアパーチャなどの追加の光学コンポーネントは、簡明さのために図1B−1Dでは省略した。他の実施形態において、3Dカメラは、2つまたはそれよりも多いレンズが付いた単一のカメラ(例えばステレオカメラ)を含んでもよい。
【0018】
図示した実施形態において、2台のカメラ112A,112Bが並んで同一の垂直高さに配置され、図1B−1Dはカメラ112A,112Bと被写体102,104,106のトップダウンビューを表している。他の実施形態では、カメラ112A,112Bを違ったように置くこともできる。例えば、第1のカメラ112Aを第2のカメラ112Bよりも上に配置することも、また、2台のカメラ112A,112Bを斜めに配置することもできる。カメラ112A,112Bの向きはまた、時間とともに変化してもよい。例えば、2台のカメラ112A,112Bがスノーボーダーのヘルメットに装着されているならば、カメラ112A,112Bの向きを、スノーボーダーが種々のスタントやトリックを実行するにつれて急激に変化させる。2台のカメラ112A,112Bが同一の方向に位置したままであってそのカメラ間の距離が分かっている限り、カメラ112A,112Bの向きが3D情報を精確にキャプチャするその能力に影響することはない。
【0019】
図1Bは、図1Aのイメージ100中に表されたウサギ102についてのオフセットを表している。ウサギ102はイメージ100の右側にあるため、右手カメラ112Bの真っ直ぐ前方にあり、左手カメラ112Aの真っ直ぐ前方にはない。したがって、ウサギ102は右手センサ110Bの中央に現れ、左手センサ110Aの左側エッジに現れ、このことは、ウサギ102についてのオフセットがイメージセンサ110A,110Bの幅の半分だけスパンしていることを意味する。
【0020】
図1Cは、図1Aのイメージ100中のサイクリスト104についてのオフセットを表している。サイクリスト104はイメージ100の左側にあるため、左手カメラ112Aの前方にあり、右手カメラ112Bに対し左側にある。この結果、サイクリスト104は左手センサ110Aの中央に現れ、右手センサ110Bの右側に現れる。サイクリスト104はカメラ112A,112Bからウサギ102よりも遠くに離れているため、左手および右手センサ110A,110B上のサイクリストの位置間のオフセットは、ウサギ102についてのオフセットよりも小さい。
【0021】
図1Dは、木106についてのオフセットを表している。木106はイメージ100の中心にあり、左手センサ110Aの中心からわずかに左に現れ、右手センサ110Bの中心からわずかに右に現れる。木はカメラ112A,112Bからウサギ102およびサイクリスト104よりも遠くに離れているため、2個のイメージセンサ110A,110B上の木の位置間のオフセットは、2つのより近い被写体102,104についてのオフセットよりも小さい。
【0022】
図1A−1Dを参照して説明した例は単に説明のためであり、対応する図面では特定の大きさを誇張して、3つの被写体102,104,106についての距離オフセットを強調している。ほとんどの状況において、2台のカメラ108A,108B間の距離は、3Dイメージにキャプチャされた実生活上の被写体のサイズよりも小さい。しかしながら、本明細書中で説明される、被写体の距離とそのイメージセンサ上での距離オフセットの間の関係に関する一般的な原理は、3Dカメラシステムとキャプチャされる被写体の相対的なサイズに関係なく応用が可能である。
【0023】
概して、3Dカメラのセンサ上の被写体位置間のオフセットは、カメラとセンサとの間の距離が増大するにつれて減少し、オフセットを用いて、カメラとセンサとの間の距離を判定することができる。この距離を被写体距離(object distance)と呼ぶ。したがって、(当技術分野において視差情報として知られている)オフセットは、3Dカメラシステムが集めることのできる3D深度情報の一つの例である。視差情報を用いて被写体距離を判定する処理は測距(ranging)と呼ばれ、図3の距離計算機304を参照して詳細にされる。測距処理についてはまた、“Ranging Device and Ranging Module and Image-Capturing Device using the Ranging Device or the Ranging Module”と題する米国特許公開公報第2011/0140086号において説明されており、該公報は参照により全体として本明細書に組み込まれる。被写体距離およびオフセットについての本明細書中の残りの説明は簡潔のために視差情報を用いる実施形態に限定されているが、イメージ中の被写体間の距離および被写体とカメラとの間の距離(例えば、焦点距離(focus distance)、レーザ測距など)を判定する他のどのような好適な方法も用いることもできることに留意されたい。
【0024】
例示のコンピューティング環境
図2は、一実施形態に従った、映画的なぼけを3Dイメージ100に加えるためのシステム200を表すネットワーク図である。システム200は、2台のカメラ202A,202B、ネットワーク216、および、コンピューティングシステム218を有する。図1A−1Dを参照して説明したように、2台のカメラ202A,202Bを用いて、イメージ中の被写体についての視差情報を、異なる2つのアングルからイメージをキャプチャすることによってキャプチャする。カメラ202A,202Bは互いに平行に配置され、或る分離距離だけ分離されて同一の方向に向けられる。このカメラ202A,202Bの平行配置を維持するために、剛性のあるメカニカルハウジング内に配置して互いの相対的な移動を防いでもよい。
【0025】
各カメラ202は光学系204、イメージセンサ206、プロセッサ208、メモリ210、1つ以上のユーザ入力デバイス212、および、ネットワークモジュール214を有する。各カメラ202はまた、ディスプレイ、人工照明(例えばフラッシュ)、または三脚架などの追加の構成要素を含んでもよいが、これらの構成要素はシステム200のぼかし関数に重要ではなく、簡略化のために図2からは省略してある。
【0026】
光学系204は、イメージをイメージセンサ上に合焦させるための光学構成要素を含んでいる。光学構成要素は、例えば、入射瞳の直径を変化させるためのアパーチャ、および、焦点距離(focal distance)を可変する1つ以上の可動レンズを含んでもよい。入射瞳の直径、焦点距離、および、光学系204の他の特性を、カメラの他の構成要素からの電気信号によって、または光学系上の機械的な制御に対するユーザの物理的な相互作用によって制御してもよい。
【0027】
概して、カメラ202A,202Bの光学系204を含んだどのような光学系の構成も、2つのパラメータ、焦点距離およびf値によって特徴づけることもできる。焦点距離は、上でおよび本明細書の残りで説明するように、レンズと、レンズの平行光線(すなわち、レンズから本質的に無限遠にある被写体からの光線)に対する合焦点との距離である。f値は、本明細書中で用いるように、焦点距離と入射瞳の直径との比である。すなわち、焦点距離をf、入射瞳の直径をD、f値をf#とすると、f#=f/Dである。この式において、f値は入射瞳の直径に反比例することが解る。換言すると、より小さなf値はより大きな入射瞳の直径に相当する。当技術分野において知られているように、カメラがキャプチャする被写界深度は、カメラの光学系のf値を減少すること(すなわち、入射瞳のサイズを増大すること)によって、またはレンズの焦点距離を増大することによって、より浅くすることもできる。
【0028】
光学系204には、その焦点距離の範囲およびf値を制限する機械的な制約がある。例えば、光学系204の軸方向の長さが、光学系204の焦点距離の最大値および最小値を確立する場合がある。同じ様に、アパーチャの設計が最大および最小の入射瞳直径を確立する場合があり、これにより、光学系のf値の範囲を制限することになる。加えて、カメラ202の視界は、光学系204の焦点距離およびイメージセンサ206の幅に依存する。
【0029】
イメージセンサ206は、光学系204からの光学イメージを電子イメージに変換する電子部品である。イメージぼけが前処理において付け加えられるため、浅い被写界深度のイメージをキャプチャすることができる大型の光学系204およびイメージセンサ206の必要性は少ないであろう。したがって、小型化した光学系204およびイメージセンサ206を含む小型で可搬性のあるカメラ202A,202Bを用いて、映画的ぼかしモジュールによって使用される視差情報をキャプチャすることもできる。
【0030】
プロセッサ208は、メモリ210にストアされた、コンピュータが読み取り可能な命令を実行するハードウエアデバイスである。プロセッサ208は、カメラの他の構成要素を実行された命令に基づいて制御する。例えば、プロセッサ208は、電子的な制御信号を光学系204に送ることも、またはネットワークモジュール214を用いてデータをネットワーク216上でコンピューティングシステム218または結合された他の何らかのデバイスに送ることもできる。
【0031】
メモリ210は、プロセッサ208が読み取り可能な不揮発性の記憶媒体である。メモリ210は揮発性メモリ(例えばRAM)と不揮発性メモリ(例えば、フラッシュメモリ、ハードディスクなど)の組み合わせを含んでもよく、とりわけ、イメージセンサ208がキャプチャしたイメージデータおよびプロセッサ208が実行する読み取り可能な命令をストアするために用いることもできる。
【0032】
ユーザ入力デバイス212は、ユーザがカメラの電子的機能と交信できるようにする。ユーザ入力デバイス212は、ボタン、ダイヤル、またはタッチスクリーンなどの物理的または電子的な入力デバイスのどのような組み合わせを含んでもよい。ユーザ入力デバイス212の例は、ビデオを記録することを開始するためまたは静止画像をキャプチャするための外部ボタン、タップツーフォーカス機能のついたタッチスクリーン、および、カメラ202のメニュー階層をナビゲートするためのダイヤル/ボタンの組み合わせを含む。加えて、ユーザ入力デバイス212は、無線でカメラ202と通信するリモコンなどの、リモートユーザ入力デバイスを含むこともできる。
【0033】
ネットワークモジュール214は、コンピューティングシステム218または他のカメラ202などの他のデバイスと通信するために、データをネットワーク216上で送信しおよび受信する。ネットワークモジュール214は、特に、メモリ210に保存されたイメージを処理のためにコンピュータシステム218へ転送するために用いられる。別のものとして、ネットワークモジュール214を、イメージセンサ206がキャプチャしたイメージテータをリアルタイムでコンピューティングシステムに送る(すなわち、イメージデータをキャプチャするとすぐに送る)ように構成することもできる。
【0034】
他の実施形態では、システム200が追加のまたはより少ないカメラ202を含んでもよい。例えば、3台目のカメラを、そのカメラが他の2台のカメラのブラインドスポットを視ることのできる位置に追加してもよい。別のものとして、2以上の光学系204およびイメージセンサ206を含む単一のカメラ202(例えばステレオカメラ)を用いて、キャプチャイメージにおける被写体の距離を判定するために用いられる視差情報をキャプチャすることもできる。この場合、2つの光学系204およびイメージセンサ206が平行に向けられ且つ同じ方向を向くように、単一のカメラ202のハウジングを構成してもよい。
【0035】
ネットワーク206は、カメラ202およびコンピューティングシステム218を含む結合されたデバイスがデータを相互に交換できるようにする。ネットワーク206は、有線接続または無線技術の組み合わせを含むこともでき、IEEE 1397、Ethernet(登録商標) 802.11、またはBluetooth(登録商標)などの種々の接続標準およびプロトコルを使用することもできる。ネットワーク206はまた、インターネットを利用して、結合されたデバイス間でデータを交換することもでき、および、CDMA,3G,4Gまたはデジタル加入者回線(DSL)などのリンク技術を含むこともできる。別の実施形態では、ネットワーク216とネットワークモジュール214,224が省略され、イメージデータは、カメラ202からコンピューティングシステム218へ、不揮発性コンピュータ読み取り可能媒体(例えば、取り外し可能なフラッシュメモリカード)をカメラ202からコンピュータ218へ物理的に転送することによって転送される。
【0036】
図2はまた、イメージデータをカメラ202から受け取って処理するコンピューティングシステム218の詳細図である。コンピューティングシステム218は、とりわけ、プロセッサ220、メモリ222、ネットワークモジュール224、ユーザ入力デバイス226、ディスプレイ228、および、映画的ぼかしモジュール230を含む。全体として、コンピューティングシステム218は、これらの構成要素220,222,224,226,228,230を含む、デスクトップコンピュータ、ポータブルコンピュータ(例えばラップトップ)、タブレットコンピュータ、スマートフォン、または同等のその他のカメラなど、どのような電子デバイスであってもよい。
【0037】
カメラ202のプロセッサ208と同様、コンピューティングシステムにおけるプロセッサ220は、コンピュータが読み取り可能な命令を実行するハードウエアデバイスである。一個のプロセッサ220だけが描かれているが、コンピューティングシステム218は、種々タスク専用の複数のプロセッサ220(例えば、中央処理装置および独立したグラフィックプロセッサ)または並列で動作して同一タスクに対して動作する複数のプロセッサ220を含むこともできる。
【0038】
メモリ222は、プロセッサ220が読み取り可能な不揮発性の記憶媒体である。カメラ202のメモリ210と同様に、コンピューティングシステム218のメモリ222は揮発性メモリ(例えばRAM)と不揮発性メモリ(例えば、ソリッドステートドライブ、ハードディスクドライブ、光学ディスク、取り外し可能フラッシュメモリなど)の組み合わせを含んでもよい。
【0039】
ネットワークモジュール224は、ネットワーク216越しに、カメラ202を含む結合されたデバイスと通信する。ネットワークモジュール224を用いて、イメージデータをカメラ202から受け取ってもよい。イメージデータを受け取ると、ネットワークモジュール224はイメージデータを後でアクセスされるメモリ222にストアすることも、またはそのデータを直接、映画的ぼかしモジュール230に送ることもできる。ユーザ入力デバイス226は、コンピューティングシステム218のユーザからの入力を受け取る。ユーザ入力デバイス226は、例えば、キーボード、マウス、またはタッチスクリーンを含むこともできる。ディスプレイ228は、情報をユーザに示す可視出力デバイス(例えばモニタ)である。特に、ディスプレイ228は、カメラ202から受け取ったイメージおよび映画的ぼかしモジュール230が生成したぼけイメージを表示することもできる。
【0040】
映画的ぼかしモジュール230は、カメラ222またはネットワークモジュール224から3Dイメージデータを受け取り、浅い被写界深度のイメージをキャプチャするように構成された大型の光学系の効果に近似する、部分的にぼやけたイメージを生成する。高いレベルで、映画的ぼかしモジュールは3D深度情報(例えば視差情報)を用いて、イメージ中の主被写体と追加の被写体の間の距離(“デフォーカス距離”と呼ばれる)を判定し、および、ぼかしフィルタを関連するデフォーカス距離に基づいて追加の被写体に適用する。映画的ぼかしモジュール230のこの機能については、図3を参照してさらに詳細に説明する。映画的ぼかしモジュール230をコンピューティングシステム218内の独立したエンティティとして表してあるが、モジュール230を、メモリにストアしたコンピュータ読み取り可能な命令として、独立したハードウエアモジュールとして、プロセッサに組み込んだハードウエアモジュールとして、またはそのどのような組み合わせとして実施してもよい。
【0041】
図3は、一実施形態に従った、図2の映画的ぼかしモジュール230の詳細図を表わすハイレベルブロック図である。映画的ぼかしモジュール230は、主被写体識別モジュール302、距離計算機304、レイヤ発生器306、ぼかしファクタ計算機308、および、ぼかしフィルタ310を含む。主被写体識別モジュール302はパターン認識モジュール302Aおよびユーザ選択モジュール302Bを含み、ぼかしフィルタ310はぼかしスポット発生器310A、畳み込みモジュール310B、透明度モジュール310C、および、レイヤ合成モジュール310Dを含む。
【0042】
主被写体識別モジュール302は3Dイメージを受け取り、様々な方法を用いて、イメージ中の一つの被写体をそのイメージの主被写体として識別する。パターン認識モジュール302Aは、パターン認識アルゴリズムを用いて、視る者が興味があるかもしれない被写体を識別する。例えば、パターン認識モジュール302Aは顔認識アルゴリズムを用いて、図1Aの例示のイメージ100におけるサイクリスト104の顔の特徴を識別する。
【0043】
ユーザ選択モジュール302Bは、ユーザが或る被写体をマニュアルでイメージの主被写体として選択できるようにする。一実施形態では、ユーザ選択モジュール302Bはディスプレイ228上にイメージを表示し、ユーザがユーザ入力デバイス226を用いて、表示されたイメージ中の或る被写体を主被写体として識別できるようにする。例えば、パターン認識モジュール302Aがサイクリスト104の顔の特徴を認識することができない場合、ユーザはユーザ入力デバイス226を用いてサイクリスト104を選択することもできる。ユーザ選択モジュール302Bはこのユーザ入力を用い、サイクリスト104を主被写体として指定する。
【0044】
パターン認識モジュール302Aおよびユーザ選択モジュール302Bは協働して動作し、3Dイメージのシーケンス(例えば3Dビデオの複数のフレーム)における主被写体を識別することもできる。例えば、ユーザ選択モジュール302Bを用いてビデオの特定のフレーム(例えば、キーフレームごと、固定した一秒間の間隔でなど)における主被写体をマニュアルで選択することもでき、一方、パターン認識モジュール302Aを用いて、ビデオフレーム中のユーザが選択した主被写体に類似している、ユーザがその主被写体を選択した各フレームに即座に続くパターンを識別する。
【0045】
別のものとして、モジュール302Aおよび302Bのうち一つを省略してもよく、主被写体識別モジュール302が排他的に単一のモジュールに頼って、映画的ぼかしモジュール230の主被写体識別機能を実行してもよい。例えば、どのイメージについてもパターン認識モジュール302Aを用いるように主被写体識別モジュール302を構成することもできる。この構成により、多数のイメージについてなんら特筆すべきユーザ入力なしで主被写体識別処理を行うことかできる。別のものとして、ユーザ選択モジュール302Bを用いて、各イメージの主被写体をマニュアルで識別することもできる。この代替の構成は、ユーザが単に少数のイメージをキャプチャした場合、または、コンピュータリソースが限定されたコンピューティングシステム218上で映画的ぼかしモジュール230が動作している場合に有益であろう。加えて、主被写体識別モジュール302はまた、他のモジュールを追加でまたはパターン認識モジュール302Aおよびユーザ選択モジュール302Bに代えて含むこともできる。
【0046】
距離計算機304は、3Dイメージ中の3D深度情報を解析して、3Dカメラと3Dイメージ中の被写体との間の距離(すなわち、被写体距離)を判定する。図1A乃至1Dを参照して説明した通り、3D深度情報を解析して被写体距離を判定する処理は「測距」と呼ばれる。一実施形態では、距離計算機304は2台のカメラ202A,202Bから2つのイメージを受け取り、このイメージについて、イメージ中の視差情報を解析することで測距する。とりわけ、距離計算機304は式V=(σ・f)/(s・d)を使用し、ここで、σは2台のカメラ202A,202Bの間の分離した距離、fはカメラの光学系204A,204Bの焦点距離、sは2個のイメージセンサ206A,206B上の被写体の位置の間の(例えば複数画素における)オフセット、dは2個のイメージセンサ206A,206B上の一画素の幅、Vは3Dカメラと測距されている被写体の間の距離である。
【0047】
主被写体識別モジュール302がイメージの主被写体を識別した後で、距離計算機304を用いて、主被写体と各追加の被写体との間の距離を判定することもできる。この距離は”デフォーカス距離”と呼ばれ、主被写体距離(subject distance)(すなわち、3Dカメラと主被写体との間の距離、または、主被写体として識別される被写体の被写体距離)を追加の被写体の被写体距離(object distance)から減ずることによって計算することができる。デフォーカス距離は主被写体の前方(すなわち、3Dカメラと主被写体との間)の追加の被写体に対して負であり、主被写体の後方の(すなわち、3Dカメラから主被写体より遠く離れた)追加の被写体に対して正である。追加の被写体に対するデフォーカス距離をぼかしファクタ計算機308において用い、追加の被写体に対するぼかしファクタが計算される。
【0048】
レイヤ発生器306は3Dイメージを一連の深度段階に分割し、被写体を含むレイヤを各段階で発生する。レイヤ発生器306は、距離計算機304で発生した被写体距離を用い、各深度段階の内容(content)を判定する。例えば、レイヤ発生器306は、2.4メートルと2.5メートルの間の被写体距離をもつすべての被写体を第1レイヤに割り当てることができ、2.5メートルと2.6メートルの間の被写体距離をもつすべての被写体を第2レイヤに割り当てること、などができる。この場合、第1レイヤは2.4−2.5メートルの深度段階に対応し、第2レイヤは2.5−2.6メートルの深度段階に対応する。レイヤを発生するために、レイヤ発生器306は透明な後景から始め、対応する深度段階からの被写体を透明な背景のトップに配置する。よって、被写体を含むレイヤの領域は、何らの被写体を含まないレイヤの領域が透明のままである間、不透明である。
【0049】
レイヤを発生した後で、ぼかしファクタ計算機308とぼかしフィルタ310は協働し、ぼかしフィルタを各レイヤに適用する。レイヤ発生器306はまた、主被写体に対応するレイヤをサブジェクトレイヤとして識別し、サブジェクトレイヤにイメージぼけを加えないようにぼかしファクタ計算機308とぼかしフィルタ310を構成することもできる。
【0050】
レイヤ発生器306は、レイヤの深度段階のサイズが3Dイメージの内容に依存して変化するように構成することもできる。例えば、図1Aの例示のイメージ100におけるウサギ102が2.5メートルの被写体距離をもち、草で囲まれていると仮定する。ウサギ102を含む深度段階はより小さい(例えば、2.45−2.50メートルおよび2.50−2.55メートル)とは云え、囲んでいる草の深度段階はより大きい(例えば、2.35−2.45メートルおよび2.55−2.65メートル)。深度段階のサイズを変更すると、視る者の注意を惹きそうな被写体の現実的なぼけ効果を依然発生しつつ、リソース使用の減少に到達することができる。
【0051】
加えて、レイヤ発生器306はまた、何らの被写体を含まないレイヤ(例えば完全に透明なレイヤ)を省略してもよい。例えば、カメラ202A,202Bが第1のスキードライバーのヘルメットに装着されており、第1のスキードライバーが前景の第2のスキードライバーと背景の飛行機からなるイメージをキャプチャすると仮定する。第2のスキードライバーを主被写体として選んだ場合、飛行機だけがイメージ中のただ一つの追加の被写体になる。この場合、カメラと第2のスキードライバーとの間および第2のスキードライバーと飛行機との間の何もない空の深度段階は完全に空になるので、対応するレイヤは、意味のあるイメージデータを何ら含まないものになる。この場合、レイヤ発生器306は対応するレイヤを単に省略して、ぼかしファクタ計算機308とぼかしフィルタ310のリソースの使用を減少させる。
【0052】
ぼかしファクタ計算機308は、レイヤ発生器306が発生した各イメージレイヤについてぼかしファクタを計算する。ぼかしファクタは、イメージレイヤに適用されるぼかしフィルタの強度を決定する。一実施形態では、イメージレイヤについてのぼかしファクタは次式で与えられる。
【0053】
【数1】
【0054】
この式において、fは仮想光学系(カメラ202A,202Bの光学系204A,204Bではない)の焦点距離、f#は同光学系のf値、Vは主被写体距離、ΔVはイメージレイヤに関連する深度段階のデフォーカス距離、βはぼかしファクタである。仮想光学系の焦点距離およびf値はユーザが選ぶこともでき、これにより、有益にも、選んだ被写界深度をもつイメージをもたらす焦点距離およびf値をユーザが選べるようになる。主被写体距離およびデフォーカス距離は距離計算機304によって計算される。この式は光学系の振る舞いを表している。言い換えると、ぼかしファクタは、デフォーカス距離に置かれた点光源(point source)を特定の焦点距離およびf値をもつ仮想光学系を通して視たときにイメージセンサに現れるぼかしスポットのサイズを表現している。したがって、この式は有益にも、カメラ202A,202Bの光学系204A,204Bと同一の焦点距離およびf値の制約によって制限されることのない仮想光学系の効果をシミュレートするために用いられる。
【0055】
ぼかしフィルタ310は、レイヤ発生器306からイメージレイヤを受け取り、イメージレイヤにそのレイヤのぼかしファクタに基づいてぼかしフィルタを適用する。ぼかしスポット発生器310Aはぼかしファクタを使用してぼかしスポットを生成する。ぼかしファクタ計算機308に関して上述したように、ぼかしスポットはイメージの部分であり、この部分は、ユーザの特定の焦点距離およびf値を持つように構成された光学系を用いて、そのイメージの部分を占め且つイメージレイヤに対応するデフォーカス距離に位置する点光源を視た場合に、イメージセンサ206A,206B上に現れる。ぼかしスポット発生器310Aは、ぼかしファクタが1の値をもつ場合にインパルス関数を発生するように構成することもできる。この場合、1のぼかしファクタは、レイヤにどんなイメージぼけもぼかしフィルタにより追加させることはない。
【0056】
一実施形態において、ぼかしスポット発生器310Aは、エアー円盤の形状を近似する、当技術分野で知られた通りのガウス関数を生成する。別の実施形態では、ぼかしスポット発生器310Aは、一様な円盤からなるぼかしスポットを生成する。さらに別の実施形態では、ぼかしスポット発生器310Aは、正五角形などの非円形形状を生成して非円形アパーチャの効果をシミュレートするように構成してもよい。しかしながら、ぼかしスポットの直径は、ぼかしスポットの形状とは関係なく、ぼかしファクタの値に正比例する。言い換えると、ぼかしスポットがガウス関数であろうと、一様な円盤であろうと、または五角形であろうと、ぼかしファクタが増大すればぼかしスポットの直径は増大する。
【0057】
畳み込みモジュール310Bは、ぼかしスポットをイメージレイヤに畳み込んで、ぼやけイメージレイヤを作り出す。上述した通り、イメージレイヤは被写体を含む領域およびどんな被写体も含まない透明領域を含んでいる。したがって、ぼやけイメージレイヤは、ぼやけた被写体を含むぼやけた領域および透明のままである領域を含んでいる。畳み込み動作は、イメージぼけをイメージレイヤの透明領域に拡大させることもできる。よって、ぼやけイメージレイヤにおけるぼやけた領域は、被写体を含む、非ぼやけイメージレイヤにおける領域よりもわずかに面積が大きく、ぼやけイメージレイヤにおける透明領域は、非ぼやけイメージレイヤにおける透明領域よりもわずかに面積が小さい。
【0058】
ぼかしスポットがインパルス関数である場合(例えばぼかしファクタが1の場合)、畳み込み動作はイメージレイヤに何らぼけを付加しない。コンピューティングシステム218上のリソース負荷を軽減するために、ぼかしスポットがインパルス関数であるときは畳み込み動作を実行しないように畳み込みモジュール310Bを構成してもよい。さらにリソース負荷を軽減するために、被写体を含むイメージレイヤの領域にだけぼかしスポットを畳み込むように畳み込みモジュール310Bを構成してもよい。例えば、3Dイメージについての一つのイメージレイヤがスキードライバーだけから構成されている場合、畳み込みモジュール310Bは、スキードライバーを含むイメージレイヤの領域にぼかしスポットを畳み込むだけで、そのレイヤの透明領域をスキップしてもよい。畳み込みモジュール310Bが実行する2次元畳み込み動作は当技術分野において知られており、この畳み込み動作の詳細な説明は簡単のために省略する。
【0059】
透明度モジュール310Cは、ぼやけイメージレイヤの透明度を変化させて、ぼやけイメージレイヤ中のぼやけた被写体が他のイメージレイヤ中の被写体を邪魔するのを防ぐ。現実的なイメージぼけを生成するために、ぼかしスポットのサイズに比例してイメージレイヤの透明度が増大するように透明度モジュール310Cを構成することもできる。
【0060】
一実施形態では、ぼかしスポット発生器310Aが不透明なぼかしスポットを生成し、透明度モジュール310Cは、透明度関数を畳み込みモジュール310Bが発生したぼやけイメージレイヤに適用する。ぼかしスポットは不透明であるため、各ぼやけイメージレイヤは、ぼやけた被写体を含む不透明領域およびどんな被写体も含まない透明領域を含む。この実施形態では、透明度モジュール310Cが不透明領域と隣接透明領域との間の境界エリアに透明度関数を適用して、現実的なイメージぼけをシミュレートする。例えば、透明度関数は大量の透明度を不透明領域の端部に適用でき、および、不透明領域の端部から遠く離れたポイントに加えられる透明度のレベルを減少させることができる。
【0061】
別の実施形態では、ぼかしスポットがイメージレイヤに畳み込まれる前に、透明度モジュール310Cが透明度を計算してぼかしスポットに加える。例えば、ぼかしスポットがガウス関数である場合、中心ではぼかしスポットを不透明にし、中心から離れた距離では徐々に透明にするように透明度モジュール310Cを構成することもできる。
【0062】
レイヤ合成モジュール310Dは、適当な透明度が加えられた後でぼやけイメージレイヤを受け取り、そのレイヤとイメージの他のぼやけレイヤとを合成し、これにより、ユーザの特定の焦点距離およびf値を持つように構成された仮想光学系で撮られたイメージと同一のぼけパターンを持った単一のイメージを生成する。
【0063】
別の実施形態では、映画的ぼかしモジュールの全部または一部を、独立したコンピューティングシステム218内に実装する代わりにカメラ202A,202B上に実装してもよい。例えば、カメラ202A,202B上の対応するモジュールを主被写体識別モジュール302,距離計算機304,およびレイヤ発生器の機能を実行するように構成することもでき、映画的ぼかしモジュール230は、ぼかしファクタを計算することと各レイヤにぼかしフィルタを適用することを、カメラからイメージデータを受け取るとすぐに開始してもよい。映画的ぼかしモジュール230をカメラ202A,202B上に実装する場合は、図2に示したシステム200からコンピューティングシステム218を省略することもできる。しかしながら、カメラ202A,202Bがキャプチャした、ぼやけていないイメージデータを保存して、前処理においてぼかし処理をすることが好ましく、これは、ぼかし処理の間にイメージ情報が失われるためである。換言すると、カメラ202A,202Bが、イメージをキャプチャした直後であって元のイメージをストアする前にぼかしフィルタを適用する場合、元のぼやけていないイメージを再ストアして他の目的のために使用するための方法はない。
【0064】
図4は、一実施形態に従って、3Dカメラ408と主被写体404、および、追加の被写体402、406との間の距離を表わす図である。図4に表された距離を用いて、各被写体402、404、406に対応するイメージレイヤについてぼかしファクタを計算する。第1の距離410(すなわち、主被写体距離)はカメラ408を主被写体404に対応するレイヤから隔てている。加えて、主被写体404を第1の追加のオブジェクトレイヤ402から隔てている第2の距離412(すなわち、デフォーカス距離)、および、主被写体404と第2の追加のオブジェクトレイヤ406との間の第3の距離416(すなわち、他のデフォーカス距離)が在る。
【0065】
図4中の被写体のそれぞれは単一のレイヤの部分として表されているが、これら被写体の一つ以上が複数のレイヤを占めることも可能である。例えば、ウサギが10cmの深度を持つ場合には、ウサギは2.45−2.50mの深度段階に対応する第1のレイヤおよび2.50−2.55mの深度段階に対応する第2のレイヤを占めることができる。この場合、この被写体が占める各レイヤについて異なるデフォーカス距離および異なるぼかしファクタが存在する。加えて、草、茂み、ブッシュ、または他の被写体を図示された3つの被写体間において含むレイヤ402、404、406間にもイメージレイヤが在ってよいが、これら追加の被写体は簡単のために図4から省略してある。
【0066】
図5は、一実施形態に従ったぼかし関数のグラフであり、図4に表されたデフォーカス距離における被写体502,506についてのぼかしファクタの値を示す。ぼかし関数510は、焦点距離(f)、f値(f#)、および、被写体距離(V)をパラメータとして受け取り、ぼかし関数510を用いて、デフォーカス距離(ΔV)に関連するイメージレイヤについてぼかしファクタ(β)を生成する。図3を参照して説明した通り、ぼかしファクタの一つの有益な例は式:
【0067】
【数2】
【0068】
である。
【0069】
図5に表されたぼかし関数510が、この式のグラフである。図5において、このぼかし関数510がβ=1の値をΔV=0のデフォーカス距離において持ち、これはサイクリスト504の位置に対応すること、が解る。したがって、ぼかしフィルタ310は、どんなぼけもサイクリスト504を含むイメージレイヤに加えることがない。一方、非ゼロのデフォーカス距離ΔV=ΔVにウサギ502が存在し、ぼかし関数はβ=βの値を持ち、木は対応するβ=βのぼかし関数を持つデフォーカス距離ΔV=ΔVに存在する。ウサギ502および木506に対応するイメージレイヤのぼかしファクタは両方とも1よりも大きいので、ぼかしフィルタ510は、イメージぼけをこれら2つのレイヤに加える。
【0070】
ぼかしフィルタ510はまた、透明度をウサギ502および木506に対応するイメージレイヤに加えることもできる。図3を参照して説明した通り、透明度を加えることは、3Dカメラ508から離れた被写体をぼけイメージが遮るのを防ぐため、有益である。例えば、ぼかしフィルタ510が透明度をウサギ502に加えて、ウサギ502のぼけイメージがサイクリスト504または木506を遮るのを防ぐこともできる。一実施形態においては、透明度のレベルはぼかし関数に比例し、そして、より大きなぼかしファクタに関連するイメージレイヤにおける被写体はより透明なエッジを持つ。
【0071】
図5の実施形態におけるぼかし関数510は、カメラ508に向かって移動するときのより急峻な勾配で、移動してカメラ508から遠ざかるのと比較して増大することも解る。したがって、ウサギ502は、木506がより大きなデフォーカス距離に在ったとしても、木506よりも大きなぼかしファクタを持つ。図5に表されおよび上式によって定義されるぼかし関数510はカメラ508に対応するデフォーカス距離ΔV=−Vにおいて垂直な非対称性(vertical asymptote)を持つことが解る。
【0072】
図4に戻って、イメージレイヤ402、404、406および図示されないどのレイヤも、各レイヤにぼかしフィルタが適用されおよび透明度が加えられた後で単一のぼけイメージに合成される。一実施形態においては、すべてのぼやけイメージレイヤを、それら全部が生成された後すぐに、一緒に合成してもよい。別のものとして、ぼやけイメージレイヤを一回で一つに合成してもよい。例えば、映画的ぼかしモジュール230は、サブジェクトレイヤ404を第1の追加のオブジェクトレイヤ402と合成し、イメージぼけを第2の追加のイメージレイヤ406に加えて、そして次いで、第2のぼやけレイヤ406を最初の2つのレイヤと合成することもできる。
【0073】
3D深度情報を用いて映画的イメージぼけを加えること
図6は、一実施形態に従った、映画的ぼかしモジュール230を用いてぼやけイメージを3Dカメラからの深度情報に基づいて発生する処理を示すフローチャートである。この処理は、3Dカメラが複数の被写体についての3D深度情報を含む3Dイメージをキャプチャしたときに開始する(600)。図1B乃至1Dを参照して説明した通り、例示の3Dカメラを、同じ方向に向けられた分離した2台のカメラ108A、108Bとして実施することもできる。この場合、カメラの2個のイメージセンサ110A、118B上の被写体の位置間のオフセットが、被写体についての3D深度情報を表す。
【0074】
キャプチャ3Dイメージはネットワーク216上をコンピューティングシステム218上の映画的ぼかしモジュール230へ転送され、主被写体識別モジュール302が3Dイメージ中の被写体の一つをイメージの主被写体として識別する。主被写体識別モジュール302により、パターン認識アルゴリズムとユーザ入力の組み合わせを用いて、イメージの主被写体を識別することもできる。主被写体識別モジュール302が3Dイメージの主被写体を識別すると(605)、距離計算機304が3Dイメージ中の3D深度情報を用い、3Dカメラと主被写体との間の第1の距離(すなわち、主被写体距離)を判定する(615)。図1Aに表された例示のイメージ100について、距離計算機304は2つのイメージにおけるサイクリストの位置間のオフセットを用いて、図4に表される主被写体距離420を計算する。
【0075】
距離計算機304が被写体距離を判定すると(610)、レイヤ発生器306が3Dイメージを一連のイメージレイヤに分割し、距離計算機304は主被写体と第1の追加の被写体を含むイメージレイヤとの間の第2の距離(すなわち、そのレイヤのデフォーカス距離)を判定する(615)。デフォーカス距離を判定するために、距離計算機304ははじめに第1の追加の被写体についての3D深度情報を用いて3Dカメラと第1の追加の被写体との間の距離(すなわち、被写体の被写体距離)を計算する。次に、距離計算機304は主被写体距離を被写体距離から減算してそのレイヤのデフォーカス距離を求める。この結果、3Dカメラと主被写体との間のイメージレイヤは負のデフォーカス距離を有し、主被写体の後方のレイヤは正のデフォーカス距離を有する。
【0076】
次に、コンピューティングデバイス218のユーザ入力デバイス226は、仮想の焦点距離および仮想のf値をユーザから受け取る。ぼかしファクタ計算機308は、仮想の焦点距離および仮想のf値を第1の距離(すなわち、主被写体距離)および第2の距離(すなわち、デフォーカス距離)と協働して用い、第1の追加の被写体に対応するイメージレイヤのためのぼかしファクタを計算する(625)。図3を参照して説明した通り、ぼかしファクタにより、イメージレイヤに適用されるぼかしフィルタの強度が決定される。
【0077】
最後に、ぼかしフィルタは、イメージぼけをイメージレイヤにぼかしファクタの値に基づいて加える(630)。一実施形態において、ぼかしスポット発生器310Aがぼかしファクタに比例するサイズのぼかしスポットを生成し、畳み込みモジュール310Bがぼかしスポットをイメージレイヤに畳み込んでぼけイメージレイヤを生成する。ぼけ被写体がイメージ内でより遠い後方の被写体を遮るのを防ぐために、透明度モジュール310Cは、ぼかしスポットを透明にすることまたは畳み込み後に透明度をぼけイメージに加えることのいずれかにより、透明度をぼけイメージレイヤに追加する。
【0078】
映画的ぼかしモジュール230が長い3Dイメージのシーケンス(例えば、3Dビデオの複数フレーム)を一度に受け取った場合は、図6に表された処理を、複数の3Dイメージについて平行して(in parallel)または順次に(in series)実施することもできる。言い換えると、シーケンス中の全ての3Dイメージを同時に処理することができ、シーケンス中のイメージを一度に処理でき、または、3Dイメージシーケンスを同時に処理される幾つかの3Dイメージのサブフレームに分割することができる。加えて、デフォーカス距離を判定するステップ(615)、ぼかしファクタを計算するステップ(625)、イメージぼけを加えるステップ(635)を典型的には3Dイメージの複数のイメージレイヤについて実行し、複数のぼけイメージレイヤを生成する。3Dイメージの複数のイメージレイヤはまた、平行して、順々に(in sequence)、またはこの2つの何らかの組み合わせで処理することもできる。
【0079】
追加の構成の検討
開示の実施形態は、有益にも、大型の光学系を装備する伝統的なカメラを用いた浅い被写界深度のイメージを考慮している。浅い被写界深度は、ぼやけた背景および前景がユーザの注意をイメージの合焦した単一の主被写体に惹きつけることから、多くの状況において望ましい。通常、大型の光学系および大きなセンサ面を持つカメラは浅い被写界深度のイメージをキャプチャすることを要求される。しかしながら、浅い被写界深度に関連するイメージを前処理において発生することによって、元のイメージを3D深度情報をキャプチャすることのできるどんなカメラでもキャプチャすることができる。したがって、より小型の光学系およびイメージセンサを持つ3Dカメラを使用してもよい。
【0080】
本明細書を通じて、複数のインスタンスが、記載された要素、動作、または構造をシングルインスタンスとして実装することもできる。1以上の方法の個々の動作が独立した動作として表され説明されているが、個々の動作を同時に実行してもよく、各動作を図示した順序で実行する必要はない。例示の構成において独立した要素として提供された構造および機能を、組み合わせた構造または要素として実施してもよい。同様に、単一の要素として提供された構造および機能を分離した複数要素として実施してもよい。これらのおよびその他の変形、修正、追加、ならびに改良は本発明の対象の範囲に含まれる。
【0081】
本明細書では、特定の実施形態について、ロジックまたは多数の要素、モジュール、またはメカニズムを含むものとして説明した。モジュールは、ソフトウエアモジュール(例えば、マシン読み取り可能な媒体にまたは送信信号に組み込まれた符号)またはハードウエアモジュールのいずれか一方を構成すればよい。ハードウエアモジュールは特定の動作を実行可能な有形の装置であり、特定の方法で構成または配置することができる。例示の実施形態では、1以上のコンピュータシステム(例えば、スタンドアロン、クライアント、またはサーバコンピュータシステム)またはコンピュータシステム(例えば、プロセッサまたは一群のプロセッサ)の1以上のハードウエアモジュールを、ソフトウエア(例えば、アプリケーションまたはアプリケーションの一部)によって、本明細書中で説明した通りに特定の動作を実行するハードウエアモジュールとして構成することができる。
【0082】
様々な実施形態において、ハードウエアモジュールを機械的にまたは電気的に実装することもできる。例えば、ハードウエアモジュールは専用回路または特定の動作を実行するために永続的に構成されるロジック(例えば、フィールドプログラマブルゲートアレー(FPGA)または特定用途向け集積回路、エーシック(ASIC)などの特定用途プロセッサ)を有することができる。ハードウエアモジュールはまた、特定の動作を実行するためにソフトウエアによって一時的に構成されるプログラム可能なロジックまたは回路(例えば、汎用プロセッサまたは他のプロセッサ内に包含されるなどを有することもできる。
【0083】
また1以上のハードウエアモジュールが動作して、“クラウドコンピューティング”環境において関連のある動作の実行をサポートする、すなわち、“サース、Software as a Service”(SaaS)として動作することもできる。例えば、動作の少なくとも幾つかを一群のコンピュータ(複数プロセッサを含むマシンの例として)で実施でき、これらの動作はネットワーク(例えばインターネット)を通じてまたは1以上の適当なインターフェイス(例えばアプリケーションプログラムインターフェイス(API))を通じてアクセス可能である。
【0084】
この明細書の幾つかの部分は、マシンメモリ(例えばコンピュータメモリ)内にビットすなわち2進デジタル信号としてストアされたデータに関するアルゴリズムまたは動作のシンボル表現の観点から提供されている。これらのアルゴリズムまたはシンボル表現は、データ処理技術分野における当業者が彼らの仕事の実質を同分野の他の当業者に伝えるために使用される技術の例である。本明細書中で用いた通り、”アルゴリズム”は自己矛盾のない動作のシーケンス,または所望の結果を導く類似の処理である。このコンテキストにおいて、アルゴリズムおよび動作は物理量の物理的取り扱いを包含する。必ずしもではなく典型的には、そのような量は、マシンによってストアされ、アクセスされ、転送され、組み合わせられ、比較され、または他の操作がされることが可能な電子的、磁気的、または光学信号の形をとることができる。
【0085】
他に詳細に記載がなければ、“処理する (processing)”、“コンピューティング(computing)”、“計算する(calculating)”、“判定する(determining)”、“提供する(presenting)”、“表示する(displaying)”など、またはその種の他の用語を用いた本明細書の説明は、物理(例えば、電子、磁気、または光学)量として表されるデータを、1以上のメモリ(例えば、揮発性メモリ、不揮発性メモリ、またはこれらの組み合わせ)、レジスタ、または情報を受け取り、ストアし、送信し、または表示する他のマシン要素内で取り扱いまたは転送するマシン(例えばコンピュータ)の働きまたは処理を言う。
【0086】
本明細書中で用いた通り、用語“有し(comprises)”、“有する(comprising)”、“含む(includes)”、“含んだ(including)”、“持つ(has)”、“持った(having)”など、またはこれらの他のどのような活用形も、排他的でない包含関係をカバーすることを意図している。例えば、要素のリストを含む処理、方法、品物、または装置は必ずしもそれら要素だけに限定されず、そのような処理、方法、品物、または装置に明白にリストされないすなわち固有の他の要素を含むことができる。さらに、それとは反対に明白に述べられていなければ、“または”は包含的な“または”を意味し、排他的な“または”を意味しない。例えば、条件Aまたは条件Bは次のどの一つによっても満足され:Aは真(またはpresentである)でありBは偽(またはpresentでない)である、Aは偽(またはpresentでない)でありBは真(またはpresentである)である、および、AとBの両方が真(またはpresentである)である。
【0087】
この技術分野における当業者は、この開示を読んで、本明細書中に開示された原理を通じてイメージぼけを3D深度情報に基づいて加えるためのシステムおよび処理のためのさらなる追加の別の構造および機能の設計が解るであろう。したがって、特定の実施形態および応用について表しおよび説明したものの、開示した実施形態が本明細書中に開示されたそのものずばりの構造および要素に限定されないことを理解すべきである。この技術分野における当業者にとって明白な様々な修正、変更、および、変形を、本明細書中に開示した方法および装置の配置、動作、および、細部に、添付の請求の範囲に規定した精神および範囲から逸脱することなく実施してもよい。
図1A
図1B
図1C
図1D
図2
図3
図4
図5
図6