JP7401663B2 - デュアルカメラおよびデュアルピクセルからのジョイント深度予測 - Google Patents

デュアルカメラおよびデュアルピクセルからのジョイント深度予測 Download PDF

Info

Publication number
JP7401663B2
JP7401663B2 JP2022522358A JP2022522358A JP7401663B2 JP 7401663 B2 JP7401663 B2 JP 7401663B2 JP 2022522358 A JP2022522358 A JP 2022522358A JP 2022522358 A JP2022522358 A JP 2022522358A JP 7401663 B2 JP7401663 B2 JP 7401663B2
Authority
JP
Japan
Prior art keywords
depth
scene
depth information
joint
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022522358A
Other languages
English (en)
Other versions
JP2022551958A (ja
Inventor
ラウル・ガーグ
ニール・ワドワ
ショーン・ファネッロ
クリスティアン・ヘイン
インダ・ジャン
セルジオ・オルツ・エスコラーノ
ヤエル・プリチ・ケイナーン
マーク・レヴォイ
シャラム・イザディ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2022551958A publication Critical patent/JP2022551958A/ja
Application granted granted Critical
Publication of JP7401663B2 publication Critical patent/JP7401663B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20004Adaptive image processing
    • G06T2207/20012Locally adaptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Description

関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれる、2019年10月14日出願の米国仮特許出願第62/914,988号の優先権を主張する。
モバイル電話、パーソナルコンピュータ、およびタブレットを含む多くの現代のコンピューティングデバイスは、静止カメラおよび/またはビデオカメラなどの画像キャプチャデバイスを含む。画像キャプチャデバイスは、人、動物、風景、および/またはオブジェクトを含む画像などの画像をキャプチャすることができる。
いくつかの画像キャプチャデバイスおよび/またはコンピューティングデバイスは、キャプチャされた画像を補正またはそうでなければ修正することができる。たとえば、いくつかの画像キャプチャデバイスは、フラッシュ照明などの明るい光を使用してキャプチャされた画像に存在し得る人および動物の赤く見える目などのアーチファクトを除去する「赤目」補正を提供することができる。取り込まれた画像が補正された後、補正された画像は、保存され、表示され、送信され、紙に印刷され、および/またはそうでなければ利用され得る。いくつかの場合には、オブジェクトの画像は、画像キャプチャ中に不十分な照明に悩まされることがある。
本明細書では、シーン内の要素の深度を推定するために使用することができる深度推定技法に関する実施形態が開示される。具体的には、コンピューティングシステムは、ニューラルネットワークをトレーニングして、複数のソース(たとえば、カメラおよび/または他のコンピューティングシステム)から取得された推定データ(たとえば、元の画像および/または予備的な深度マップ)を組み合わせて、シーンのジョイント深度マップを生成し得る。複数の推定技法を利用することによって、ニューラルネットワークは、各技法のより正確な側面に依存する一方で、技法のあまり正確でない側面に(たとえあったとしても)あまり依存しない方法で、深度推定技法を組み合わせてもよい。ニューラルネットワークによって出力された深度マップは、その後、元の画像(または画像の集合)のうちの1つまたは複数の特徴を修正するために使用することができる。たとえば、画像の背景部分を部分的にぼかして、前景内の1つまたは複数のオブジェクトを目立たせてもよい。
したがって、第1の例示的な実施形態では、方法は、コンピューティングシステムにおいて、第1のソースからのシーンを表す第1の組の深度情報と、第2のソースからのシーンを表す第2の組の深度情報とを取得するステップを伴う。方法はまた、コンピューティングシステムにおいて、ニューラルネットワークを使用して、シーン内の要素のそれぞれの深度を伝達するジョイント深度マップを決定するステップであり、ニューラルネットワークが、第1の組の深度情報と第2の組の深度情報との組合せに基づいて、ジョイント深度マップを決定する、決定するステップも伴う。方法は、ジョイント深度マップに基づいてシーンを表す画像を修正するステップをさらに伴う。
第2の例示的な実施形態では、製造品は、カメラデバイスによる実行時に、カメラデバイスに、第1の例示的な実施形態による動作を実行させるプログラム命令を記憶した非一時的コンピュータ可読媒体を含み得る。
第3の例示的な実施形態では、システムは、複数のソース、コンピューティングシステム、ならびにデータストレージおよびプログラム命令を含み得る。プログラム命令は、データストレージに記憶されてもよく、少なくとも1つのプロセッサによる実行時に、コンピューティングシステムに、第1の例示的な実施形態による動作を実行させてもよい。
第4の例示的な実施形態では、システムは、第1の例示的な実施形態の動作の各々を実行するための様々な手段を含み得る。
前述の概要は、例示的なものにすぎず、いかなる形でも限定的であることを意図するものではない。上述の例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴は、図面および以下の詳細な説明を参照することによって明らかになるであろう。
例示的な実施形態による、コンピューティングデバイスの概略図を示す図である。 例示的な実施形態による、サーバデバイスクラスタの概略図を示す図である。 例示的な実施形態による、ANNアーキテクチャを示す図である。 例示的な実施形態による、ANNのトレーニングを示す図である。 例示的な実施形態による、畳み込みニューラルネットワーク(CNN)アーキテクチャを示す図である。 例示的な実施形態による、畳み込みを示す図である。 例示的な実施形態による、ANNおよびモバイルデバイスを伴うシステムを示す図である。 例示的な実施形態による、シーンの深度推定を生成するためのシステムを示す図である。 例示的な実施形態による、ジョイント深度推定アーキテクチャのための第1の構成を示す図である。 例示的な実施形態による、図7Aに示すジョイント深度推定アーキテクチャの一実装形態を示す図である。 例示的な実施形態による、ジョイント深度推定アーキテクチャの第2の構成を示す図である。 例示的な実施形態による、ジョイント深度推定に基づく画像の修正を示す図である。 例示的な実施形態による、方法のフローチャートである。 本明細書で提示される少なくともいくつかの実施形態に従って構成された、コンピューティングシステム上でコンピュータプロセスを実行するためのコンピュータプログラムの概念的な部分図を示す概略図である。
例示的な方法、デバイス、およびシステムについて、本明細書で説明する。「例(example)」または「例示的(exemplary)」という語は、例、事例、または例示として働くことを意味するように、本明細書で使用されることを理解されたい。「例」または「例示的」として本明細書で説明する任意の実施形態または特徴は、必ずしも他の実施形態または特徴よりも好ましいかまたは好都合であるものとして解釈されることになるとは限らない。本明細書に提示される主題の範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を行うことができる。
深度推定は、画像処理に含まれるいくつかの用途を有する技法である。深度推定データは、多くの場合、深度マップとして構成され、深度マップは、視点(たとえば、1つまたは複数のカメラの観点)からのシーンオブジェクトの表面の距離に関する情報を記憶するマップまたは他のデータ構造とすることができる。たとえば、カメラによってキャプチャされた画像の深度マップは、カメラから画像内に描かれたオブジェクトの表面までの距離に関する情報を指定することができ、深度マップは、ピクセル単位(または他の単位)で画像の情報を指定することができる。たとえば、深度マップは、画像内のピクセルごとの深度値を含むことができ、画像IMのピクセルPIXについての深度マップDMの深度値DV1は、視点から、画像IM内のピクセルPIXによって示される1つまたは複数のオブジェクトまでの距離を表す。別の例として、画像は、領域(たとえば、NおよびMが正の整数である場合、N×Mピクセルのブロック)に分割することができ、深度マップは、画像内のピクセルの領域ごとの深度値を含むことができる(たとえば、画像IMのピクセル領域PIXRについての深度マップDMの深度値DV2は、視点から、画像IM内のピクセル領域PIXRによって示される1つまたは複数のオブジェクトまでの距離を表す)。画像のピクセルと深度マップの深度値との間の他の深度マップおよび対応も可能である。
深度マップを開発するための様々な方法があり、各々、推定の精度を低下させる可能性があるいくつかの障害物を有する。一態様では、シーンの深度マップを推定することは、複数のカメラからキャプチャされた画像を使用して立体視を実行することを伴い得る。人間の視覚における3次元(3D)感知と同様に、立体視は、シーンを示す画像の1つまたは複数の対内のシーン内の同じ点を表す画像ピクセルを識別し、比較することを伴い得る。特に、カメラは、わずかに異なる視点からシーンをキャプチャするので、その中の点の3D位置は、各カメラからその点まで延びる光線を使用する三角測量を介して決定することができる。プロセッサが、画像にわたってより多くのピクセル対を識別すると、プロセッサは、シーンについて深度マップを生成できるようになるまで、シーン内のより多くの点に深度を割り当て得る。いくつかの例では、相関ステレオ法を使用して、ステレオ画像内のピクセルの対応を取得し、その結果、各ステレオ画像で数千の3D値が生成され得る。
デュアルカメラによってキャプチャされたシーンを表す画像の対を比較すると、プロセッサは、画像間の1つまたは複数のわずかな差を検出し得る。たとえば、画像を比較すると、カメラに対してシーンの前景に位置するオブジェクトは、比較的静止したままであるように見え、背景はシフト(たとえば、垂直移動)するように見えることがある。異なる画像にわたる背景のこのシフトは、視差と呼ぶことができ、視差は、シーン内の表面の深度を決定するために使用することができる。上記のように、プロセッサは、ビュー間の対応するピクセルを識別し、さらにカメラのベースライン(すなわち、カメラ間の距離)を考慮に入れることによって、視差の大きさ、したがってシーンの1つまたは複数の点の深度を推定することができる。
シーンの深度マップを推定するために使用される別のアプローチは、単一のカメラを使用することを伴う。特に、シーンの異なる視点を取得するために複数のカメラを使用するのではなく、カメラは、シーンのわずかに異なる視点を生成するためにデュアルピクセルを使用することを可能にし得る。デュアルピクセル技法は、デュアルカメラをミラーリングするが、ピクセルを異なる部分(たとえば、2つの部分)に分割することを伴う。次いで、各ピクセルの異なる部分は、異なる視点からシーンを表し、深度を推定することを可能にし得る。たとえば、デュアルピクセル画像は、左ピクセルおよび右ピクセルなど2つの部分に分割されたピクセルを含み得る。いくつかの例では、ピクセルの異なる部分は、サブピクセルと呼ばれることがある。
ピクセルを異なる部分に分割することによって、画像は、左ピクセル画像および右ピクセル画像など2つの画像として分割され、分析され得る。次いで、左ピクセル画像および右ピクセル画像は、デュアルカメラに関して上記で説明した深度推定プロセスと同様の方法で処理することができる。特に、左右のピクセル画像からの対応するピクセルの対は、シーン内の表面の深度を推定するために、異なるピクセル部分(たとえば、数ミリメートル以下)間のベースラインと一緒に対にされ、使用され得る。したがって、デュアルピクセルの異なる部分間のベースラインは、デュアルカメラ間のベースラインよりもはるかに小さい可能性があるが、プロセッサは、シーンの深度マップを導出するために、画像内のデュアルピクセルを使用して、上述したのと同様の深度推定プロセスを実行し得る。
上記に示したように、デバイスは、異なる方法でシーンの深度を推定するように構成され得る。いくつかの状況では、シーンの深度マップを推定するために使用される技法は、深度マップの精度に影響を及ぼす可能性がある。特に、1つまたは複数のカメラに対するオブジェクトの近接性は、深度推定の精度に影響を及ぼす可能性がある。デュアルカメラ間のベースラインが大きくなると、オブジェクトがカメラの近く(たとえば、1メートル以下)に位置しているとき、シーンの深度マップの精度が低下する可能性がある。逆に、デュアルピクセルに関連付けられたベースラインが小さくなると、カメラから遠く(たとえば、10メートル以上)に位置する表面の深度推定の精度が低下する可能性がある。したがって、画像の深度マップを決定するために、両方の技法が使用され得るが、技法のうちの1つがより良好な結果を生成し得るいくつかの状況が存在する。したがって、コンピューティングシステムが、複雑さを低減し、シーンのために生成される深度マップの精度を高めることができる方法で、上記の技法を使用することができることが望ましい場合がある。
本明細書で提示される例は、デュアルカメラおよびデュアルピクセルからのジョイント深度予測のための方法およびシステムについて説明する。上記で説明した異なる深度推定技法に関連付けられた潜在的な障害を克服するために、例示的な実施形態は、複数の深度推定技法の組合せを使用して、シーンの深度マップを生成することを伴い得る。たとえば、コンピューティングシステムは、デュアルカメラ技法およびデュアルピクセル技法を使用して、シーンの深度マップを生成し得る。深度マップを生成するとき、デュアルカメラに関連付けられたより大きい視差は、カメラからより遠くに位置するオブジェクトについてのより正確な深度推定を可能にし、一方、デュアルピクセルに関連付けられたより小さい視差は、近くに位置するオブジェクトについてのより正確な深度推定を可能にし得る。
いくつかの例では、ステレオ画像を使用して導出される深度推定は、デュアルピクセル技法を使用して改善することができる。特に、深度推定の精度は、視差が、セマンティック、デフォーカス、および他の潜在的なキューを含む、画像に存在する多くの深度キューのうちの1つであるという観察に基づいて改善され得る。例示的なセマンティックキューは、比較的近いオブジェクトが、比較的遠いオブジェクトよりも多くのピクセルを画像内で占めるという推論であり得る。デフォーカスキューは、観察者(たとえば、カメラ)から比較的遠い点が、比較的近い点よりもあまり鮮明でない/ぼやけて見えるという観察に基づくキューであり得る。いくつかの例では、ニューラルネットワークは、デュアルピクセル画像の視差キュー、セマンティックキュー、および他の態様を使用して、入力デュアルピクセル画像の深度マップを予測するようにトレーニングされ得る。
いくつかの実施形態では、ニューラルネットワークは、ジョイント深度予測を生成するために、深度データ(たとえば、カメラからの画像および/または深度推定)の重み付け分析を実行するようにトレーニングされてもよい。このようにして、ジョイント深度マップは、各深度推定技法のより正確な側面を組み合わせながら、技法のあまり正確でない側面に依存することは少ない(またはまったく依存しない)場合がある。トレーニングを通して、ニューラルネットワークは、画像を修正するために、または他の画像処理技法を実行するために後で使用することができる最適なジョイント深度推定を生成する方法で、深度情報入力にどのように重み付けするかを学習し得る。
一例を説明すると、ニューラルネットワークが、画像をキャプチャするカメラで構成されたデバイスの視点から遠く離れて位置するシーンのジョイント深度マップを推定しているとき、ニューラルネットワークは、単一のカメラを使用して画像から導出された深度情報に適用される重みと比較して、より大きい重みを、複数のカメラステレオ構成を使用してキャプチャされた画像から導出された深度情報に適用し得る。このようにして、マルチカメラ立体視の強度は、シングルカメラ技法から導出される影響よりも大きい影響を、最終ジョイント深度マップに与え得る。別の例として、ニューラルネットワークが、カメラで構成されたデバイスの視点の近くに位置するシーンのジョイント深度マップを推定しているとき、ニューラルネットワークは、マルチカメラステレオ技法に適用される重みと比較して、より大きい重みを、シングルカメラ技法(たとえば、デュアルピクセル、緑サブピクセル)を使用してキャプチャされた画像から導出された深度情報に適用し得る。シングルカメラ技法は、近視野シーンのために生成されたジョイント深度マップに積極的に影響を及ぼす可能性があるより正確な結果を提供し得る。
ジョイント深度マップは、様々な用途に使用することができる。いくつかの例では、ジョイント深度予測を使用して、1つまたは複数の画像を修正することができる。たとえば、画像を部分的にぼかすために、深度データによって決定された、カメラの視点からより遠い深度を有する画像の背景部分を、少なくとも部分的にぼかすことができる。適切なぼかしソフトウェアは、深度マップを使用して、前景オブジェクトを鮮明な焦点に保ちながら、自然で心地よい深度依存的ぼかしを画像の背景に適用することができる。また、画像の深度マップは、計算写真、拡張現実、および画像処理における他の用途を有してもよい。
いくつかの実施形態では、システムは、デュアルカメラ技法およびデュアルピクセル技法を使用して、シーン内の異なる向きの線およびテクスチャに関する相補的情報をさらに取得し得る。特に、各技法のベースラインが直交するとき、システムは、シーン内の線およびテクスチャの異なる向きを識別するために、技法の組合せを使用し得る。たとえば、デュアルカメラは、画像内で同じ配向を有する線の深度を推定することを困難にし得るベースライン配向(たとえば、垂直または水平ベースライン)を有し得る。デュアルピクセルのベースラインがデュアルカメラのベースライン配向に対して直交する場合、デュアルピクセル画像を使用して、デュアルカメラを使用して検出することが困難なラインおよびテクスチャの深度を推定するのを助けることができる。したがって、情報を使用して、前景内の1つまたは複数のオブジェクト上の画像の焦点を強調する部分的なぼかしなど、上記で説明した1つまたは複数の画像処理技法を実行することができる。加えて、複数の技法を使用して、デバイスから近距離および遠距離でキャプチャされたポートレートモード画像などの画像を改善することができる。
I. 例示的なコンピューティングデバイスおよびクラウドベースのコンピューティング環境
以下の実施形態は、開示されたANN実装形態を使用し得る例示的なコンピューティングデバイスおよびシステムのアーキテクチャおよび動作の態様、ならびにその特徴および利点について説明する。
図1は、本明細書の実施形態に従って動作するように構成されたコンピューティングデバイスに含まれ得る構成要素のうちのいくつかを示す、コンピューティングシステム100を例示する簡略化されたブロック図である。コンピューティングシステム100は、クライアントデバイス(たとえば、ユーザによってアクティブに操作されるデバイス)、サーバデバイス(たとえば、クライアントデバイスに計算サービスを提供するデバイス)、または何らかの他のタイプの計算プラットフォームとすることができる。いくつかのサーバデバイスは、特定の動作を実行するために、時々クライアントデバイスとして動作し、いくつかのクライアントデバイスは、サーバ機能を組み込み得る。
この例では、コンピューティングシステム100は、プロセッサ102、メモリ104、ネットワークインターフェース106、および入出力ユニット108を含み、これらはすべて、システムバス110または同様の機構によって結合され得る。いくつかの実施形態では、コンピューティングシステム100は、他のコンポーネントおよび/または周辺デバイス(たとえば、着脱可能ストレージ、プリンタなど)を含んでもよい。
プロセッサ102は、中央処理ユニット(CPU)、コプロセッサ(たとえば、数学、グラフィックス、または暗号化コプロセッサ)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、および/またはプロセッサ動作を実行する集積回路またはコントローラの形態など、任意のタイプのコンピュータ処理要素のうちの1つまたは複数とすることができる。いくつかの場合には、プロセッサ102は、1つまたは複数のシングルコアプロセッサであってもよい。他の場合には、プロセッサ102は、複数の独立した処理ユニットを有する1つまたは複数のマルチコアプロセッサであってもよい。プロセッサ102はまた、実行されている命令および関連するデータを一時的に記憶するためのレジスタメモリ、ならびに最近使用された命令およびデータを一時的に記憶するためのキャッシュメモリも含み得る。
メモリ104は、限定はしないが、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、および不揮発性メモリを含む、任意の形態のコンピュータ使用可能メモリであり得る。これは、ほんの数例として、フラッシュメモリ、ハードディスクドライブ、ソリッドステートドライブ、再書込み可能コンパクトディスク(CD)、再書込み可能デジタルビデオディスク(DVD)、および/またはテープストレージを含み得る。
コンピューティングシステム100は、固定メモリならびに1つまたは複数のリムーバブルメモリユニットを含み得、後者は、限定はしないが、様々なタイプのセキュアデジタル(SD)カードを含む。したがって、メモリ104は、メインメモリユニットならびに長期ストレージの両方を表す。他のタイプのメモリは、生物学的メモリを含み得る。
メモリ104は、プログラム命令および/またはプログラム命令が動作し得るデータを記憶し得る。例として、メモリ104は、これらのプログラム命令を、本明細書または添付の図面に開示される方法、プロセス、または動作のいずれかを実行するためにプロセッサ102によって命令が実行可能であるように、非一時的コンピュータ可読媒体上に記憶し得る。
図1に示すように、メモリ104は、ファームウェア104A、カーネル104B、および/またはアプリケーション104Cを含み得る。ファームウェア104Aは、コンピューティングシステム100の一部または全部をブートまたはそうでなければ開始するために使用されるプログラムコードであり得る。カーネル104Bは、メモリ管理、プロセスのスケジューリングおよび管理、入出力、および通信のためのモジュールを含むオペレーティングシステムであってもよい。カーネル104Bは、オペレーティングシステムがコンピューティングシステム100のハードウェアモジュール(たとえば、メモリユニット、ネットワーキングインターフェース、ポート、およびバス)と通信することを可能にするデバイスドライバも含み得る。アプリケーション104Cは、ウェブブラウザまたは電子メールクライアントなど1つまたは複数のユーザ空間ソフトウェアプログラム、ならびにこれらのプログラムによって使用される任意のソフトウェアライブラリであり得る。いくつかの例では、アプリケーション104Cは、1つまたは複数のニューラルネットワークアプリケーションを含み得る。メモリ104は、これらおよび他のプログラムおよびアプリケーションによって使用されるデータを記憶することもできる。
ネットワークインターフェース106は、Ethernet(たとえば、高速Ethernet、ギガビットEthernetなど)などの1つまたは複数のワイヤラインインターフェースの形態をとり得る。ネットワークインターフェース106は、同軸ケーブルまたは電力線などの1つまたは複数の非Ethernet媒体を介した通信、または同期光ネットワーキング(SONET)またはデジタル加入者線(DSL)技術などの広域媒体を介した通信もサポートし得る。加えて、ネットワークインターフェース106は、IEEE 802.11(Wifi)、BLUETOOTH(登録商標)、全地球測位システム(GPS)、または広域ワイヤレスインターフェースなどの1つまたは複数のワイヤレスインターフェースの形態をとり得る。しかしながら、他の形態の物理層インターフェースおよび他のタイプの標準または独自の通信プロトコルが、ネットワークインターフェース106を介して使用され得る。さらに、ネットワークインターフェース106は、複数の物理インターフェースを含み得る。たとえば、コンピューティングシステム100のいくつかの実施形態は、Ethernet、BLUETOOTH(登録商標)、およびWifiインターフェースを含み得る。
入出力ユニット108は、コンピューティングシステム100および/または他のコンピューティングシステムとのユーザおよび周辺デバイスの対話を容易にし得る。入出力ユニット108は、キーボード、マウス、1つまたは複数のタッチスクリーン、センサ、生体センサなど1つまたは複数のタイプの入力デバイスを含み得る。同様に、入出力ユニット108は、スクリーン、モニタ、プリンタ、および/または1つもしくは複数の発光ダイオード(LED)など1つまたは複数のタイプの出力デバイスを含み得る。追加または代替として、コンピューティングシステム100は、たとえば、ユニバーサルシリアルバス(USB)または高精細度マルチメディアインターフェース(HDMI(登録商標))ポートインターフェースを使用して、他のデバイスと通信してもよい。
いくつかの実施形態では、クラスタ化アーキテクチャをサポートするために、コンピューティングシステム100の1つまたは複数のインスタンスが展開され得る。これらのコンピューティングデバイスの正確な物理的位置、接続性、および構成は、クライアントデバイスにとって未知および/または重要ではない可能性がある。したがって、コンピューティングデバイスは、様々なリモートデータセンター位置に収容され得る「クラウドベースの」デバイスと呼ばれ得る。加えて、コンピューティングシステム100は、ニューラルネットワークを使用すること、およびニューラル光輸送を実装することを含む、本明細書で説明する実施形態の実行を可能にし得る。
図2は、例示的な実施形態による、クラウドベースのサーバクラスタ200を示す。図2では、コンピューティングデバイス(たとえば、コンピューティングシステム100)の1つまたは複数の動作を、サーバデバイス202、データストレージ204、およびルータ206の間で分散させてもよく、これらのすべては、ローカルクラスタネットワーク208によって接続され得る。サーバクラスタ200内のサーバデバイス202、データストレージ204、およびルータ206の数は、サーバクラスタ200に割り当てられたコンピューティングタスクおよび/またはアプリケーションに依存し得る。いくつかの例では、サーバクラスタ200は、ニューラルネットワークの使用およびニューラル光輸送機能の実装を含む、本明細書で説明する1つまたは複数の動作を実行し得る。
サーバデバイス202は、コンピューティングシステム100の様々なコンピューティングタスクを実行するように構成することができる。たとえば、1つまたは複数のコンピューティングタスクを、サーバデバイス202のうちの1つまたは複数の間で分散させることができる。これらのコンピューティングタスクを並列に実行することができる程度まで、このようなタスクの分散は、これらのタスクを完了し、結果を返すための合計時間を短縮し得る。簡単にするために、サーバクラスタ200と個々のサーバデバイス202の両方を「サーバデバイス」と呼ぶことがある。この用語は、1つまたは複数の別個のサーバデバイス、データストレージデバイス、およびクラスタルータが、サーバデバイス動作に関与し得ることを暗示するものと理解されたい。
データストレージ204は、ハードディスクドライブおよび/またはソリッドステートドライブのグループに対する読取りおよび書込みアクセスを管理するように構成されたドライブアレイコントローラを含むデータ記憶アレイであってもよい。ドライブアレイコントローラは、単独で、またはサーバデバイス202と併せて、データストレージ204に記憶されたデータのバックアップコピーまたは冗長コピーを管理して、サーバデバイス202のうちの1つまたは複数がクラスタデータストレージ204のユニットにアクセスするのを防止するドライブ障害または他のタイプの障害から保護するようにも構成され得る。ドライブ以外の他のタイプのメモリが使用されてもよい。
ルータ206は、サーバクラスタ200の内部および外部の通信を提供するように構成されたネットワーキング機器を含み得る。たとえば、ルータ206は、(i)クラスタネットワーク208を介してサーバデバイス202とデータストレージ204との間のネットワーク通信、および/または(ii)ネットワーク212への通信リンク210を介してサーバクラスタ200と他のデバイスとの間のネットワーク通信を提供するように構成された1つまたは複数のパケット交換および/またはルーティングデバイス(スイッチおよび/またはゲートウェイを含む)を含み得る。
加えて、クラスタルータ206の構成は、サーバデバイス202およびデータストレージ204のデータ通信要件、ローカルクラスタネットワーク208の待ち時間およびスループット、通信リンク210の待ち時間、スループット、およびコスト、ならびに/あるいはシステムアーキテクチャのコスト、速度、フォールトトレランス、耐性、効率、および/または他の設計目標に寄与する可能性のある他の要因に少なくとも部分的に基づくことができる。
可能な例として、データストレージ204は、構造化照会言語(SQL)データベースなど任意の形態のデータベースを含み得る。限定はしないが、テーブル、アレイ、リスト、ツリー、およびタプルを含む、様々なタイプのデータ構造が、そのようなデータベースに情報を記憶し得る。さらに、データストレージ204内の任意のデータベースは、モノリシックであってもよいし、複数の物理デバイスにわたって分散されていてもよい。
サーバデバイス202は、クラスタデータストレージ204にデータを送信し、クラスタデータストレージ204からデータを受信するように構成され得る。この送信および取出しは、それぞれ、SQLクエリまたは他のタイプのデータベースクエリ、およびそのようなクエリの出力の形態をとり得る。追加のテキスト、画像、ビデオ、および/またはオーディオも含まれ得る。さらに、サーバデバイス202は、受信されたデータをウェブページ表現に編成し得る。そのような表現は、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)、または他の何らかの標準化されたまたは独自のフォーマットなどのマークアップ言語の形態をとり得る。さらに、サーバデバイス202は、限定はしないが、Perl、Python、PHP Hypertext Preprocessor(PHP)、Active Server Pages(ASP)、JavaScriptなど様々なタイプのコンピュータ化されたスクリプト言語を実行する能力を有し得る。これらの言語で書かれたコンピュータプログラムコードは、クライアントデバイスへのウェブページの提供、ならびにウェブページとのクライアントデバイスの対話を容易にし得る。
II. 人工ニューラルネットワーク
A. 例示的なANN
人工ニューラルネットワーク(ANN)は、個々に並列に、および中央制御なしで動作するいくつかの単純なユニットが、複雑な問題を解決するために結合することができる計算モデルである。ANNは、隣接する層のノード間の接続を有する、いくつかの層に配列されたいくつかのノードとして表される。
例示的なANN300が図3Aに示されている。特に、ANN300は、フィードフォワード多層ニューラルネットワークを表すが、類似の構造および原理が、たとえば、畳み込みニューラルネットワーク(CNN)、リカレントニューラルネットワーク、および反復ニューラルネットワークにおいて使用される。ANN300は、画像処理技法(たとえば、セグメンテーション、セマンティックセグメンテーション、画像強調)、または本明細書に記載のニューラル光輸送機能の学習など、特定のタスクを実行するようにトレーニングされたANNを表すことができる。さらなる例では、ANN300は、コンピュータビジョン、リスク評価など他のタスクを実行することを学習することができる。
図3Aに示すように、ANN300は、入力層304、隠れ層306、隠れ層308、および出力層310の4つの層からなる。入力層304の3つのノードはそれぞれ、初期入力値302としてX1、X2、およびX3を受信する。出力層310の2つのノードは、それぞれ、最終出力値312としてY1およびY2を生成する。したがって、ANN300は、入力層304以外の各層のノードが前の層のすべてのノードから入力を受信するという点で、完全接続ネットワークである。
ノードの対の間の実線の矢印は、中間値が流れる接続を表し、それぞれの中間値に適用されるそれぞれの重みに各々関連付けられる。各ノードは、出力値を生成するために、その入力値およびそれらの関連する重み(たとえば、0から1までの値)に対して演算を実行する。いくつかの場合には、この演算は、各入力値および関連する重みの積のドット積和を伴い得る。活性化関数は、出力値を生成するために、ドット積和の結果に適用されてもよい。他の演算も可能である。
たとえば、ノードが、{w1,w2,…,wn}のそれぞれの重みを有するn個の接続上で入力値{x1,x2,…,xn}を受信する場合、ドット積和dは、以下のように決定され得る。
Figure 0007401663000001
式中、bは、ノード固有または層固有のバイアスである。
特に、ANN300の完全接続の性質は、1つまたは複数の重みに0の値を与えることによって、部分接続ANNを効果的に表すために使用することができる。同様に、b項を除去するために、バイアスを0に設定することもできる。
ロジスティック関数などの活性化関数を使用して、dを0から1までの出力値yにマッピングすることができる。
Figure 0007401663000002
シグモイド関数やtanh関数など、ロジスティック関数以外の関数を代わりに使用してもよい。
次いで、yは、ノードの出力接続の各々で使用されてもよく、そのそれぞれの重みによって修正される。特に、ANN300では、入力値および重みは、最終出力値312が生成されるまで、左から右に、各層のノードに適用される。ANN300が完全にトレーニングされた場合、最終出力値312は、ANN300が解決するようにトレーニングされた問題に対する提案された解である。意味のある、有用な、合理的に正確な解を取得するために、ANN300は、少なくともある程度のトレーニングを必要とする。
B. トレーニング
ANNをトレーニングすることは、ANNに、何らかの形式の監視トレーニングデータ、すなわち、入力値と所望の、またはグラウンドトゥルースの出力値の組を提供することを伴い得る。たとえば、ANNが画像処理タスクを実行することを可能にする監視トレーニングは、トレーニング画像と、トレーニング画像の所望の出力(たとえば、所望のセグメンテーション)を表す対応するグラウンドトゥルースマスクとを含む画像の対を提供することを伴い得る。ANN300の場合、このトレーニングデータは、m組の入力値と出力値との対を含み得る。より形式的には、トレーニングデータは、以下のように表され得る。
Figure 0007401663000003
式中、i=1…mであり、
Figure 0007401663000004
および
Figure 0007401663000005
は、X1,i、X2,i、およびX3,iの入力値に対する所望の出力値である。
トレーニングプロセスは、そのような組からの入力値をANN300に適用し、関連する出力値を生成することを伴う。生成された出力値とグラウンドトゥルース出力値との間の誤差を評価するために、損失関数を使用することができる。いくつかの事例では、この損失関数は、差の和、平均2乗誤差、または何らかの他のメトリックであり得る。いくつかの場合には、誤差値は、m組のすべてについて決定され、誤差関数は、これらの値の総計(たとえば、平均)を計算することを伴う。
誤差が決定されると、誤差を低減しようとして、接続上の重みが更新される。簡単に言えば、この更新プロセスは、「良好な」重みに報酬を与え、「不良な」重みにペナルティを課す。したがって、更新は、トレーニングデータの将来の反復のためにより低い誤差をもたらす様式で、ANN300を介して誤差の「責任」を分配する。たとえば、更新プロセスは、トレーニング画像に対するANN300の以後の適用が、トレーニング画像に対応するグラウンドトゥルースマスクにより厳密に一致する新しい出力を生成するように、ANN300の少なくとも1つの重みを修正することを伴い得る。
トレーニングプロセスは、重みが収束するまで、トレーニングデータをANN300に適用し続ける。収束は、誤差がしきい値未満であるか、または誤差の変化がトレーニングの連続的な反復の間で十分に小さいときに生じる。この時点で、ANN300は、「トレーニングされた」と言われ、未知の出力値を予測するために、新しい組の入力値に適用することができる。画像処理技法を実行するようにトレーニングされると、ANN300は、入力画像のために作成されたグラウンドトゥルース(すなわち、所望の結果)に非常に似た入力画像の出力を生成し得る。
ANNのための多くのトレーニング技法は、何らかの形態の逆伝搬を利用する。逆伝搬の間、入力信号は、ネットワークを介して出力に向かって順伝搬され、次いで、ネットワーク誤差は、ターゲット変数に関して計算され、入力に向かって逆方向に逆伝搬される。特に、逆伝搬は、ANN300を介して、右から左へ、一度に1層ずつ誤差を分配する。したがって、隠れ層308と出力層310との間の接続の重みが第1に更新され、隠れ層306と隠れ層308との間の接続の重みが第2に更新され、以下同様である。この更新は、活性化関数の導関数に基づく。
誤差の決定および逆伝搬をさらに説明するために、動作中のプロセスの例を見ることが有用である。しかしながら、逆伝搬は、最も単純なANNを除いて、表すのが非常に複雑になる可能性がある。したがって、図3Bは、逆伝搬の例示的な例を提供するために、非常に簡単なANN330を導入する。
Figure 0007401663000006
ANN330は、3つの層、入力層334、隠れ層336、および出力層338からなり、各々2つのノードを有する。初期入力値332は入力層334に提供され、出力層338は最終出力値340を生成する。いくつかの例では、重みは、接続およびバイアス(たとえば、図3Bに示すb1、b2)の各々に割り当てられ、隠れ層336内の各ノードのネット入力にも適用され得る。明快のために、Table 1(表1)は、重みを、これらの重みが適用される接続を有するノードの対にマッピングする。一例として、w2は、ノードI2とH1との間の接続に適用され、w7は、ノードH1とO2との間の接続に適用され、以下同様である。
ANN330のトレーニングの目標は、最終出力値340が指定された所望の出力に十分に近づくまで、フィードフォワードおよび逆伝搬の何回かの反復にわたって重みを更新することである。単一の組のトレーニングデータの使用は、その組についてのみANN330を効果的にトレーニングすることに留意されたい。複数の組のトレーニングデータが使用される場合、ANN330は、これらの組に従って同様にトレーニングされる。
1. 例示的なフィードフォワードパス
フィードフォワードパスを開始するために、隠れ層336内の各ノードへの正味入力が計算される。正味入力から、これらのノードの出力は、活性化関数を適用することによって見つけることができる。ノードH1の場合、正味入力netH1は、以下のとおりである。
netH1=w1X1+w2X2+b1 (4)
この入力に活性化関数(ここではロジスティック関数)を適用することにより、ノードH1の出力、outH1は、次のように決定される。
Figure 0007401663000007
ノードH2について、同じ手順に従い、出力outH2を決定することができる。フィードフォワード反復における次のステップは、出力層338のノードに対して同じ計算を実行することである。たとえば、ノードO1への正味入力、netO1は、以下のとおりである。
netO1=w5 outH1+w6 outH2+b2 (6)
したがって、ノードO1の出力、outO1は、以下のとおりである。
Figure 0007401663000008
ノードO2について、同じ手順に従い、出力outO2を決定することができる。この時点で、損失関数に基づいて、総誤差Δを決定することができる。たとえば、損失関数は、出力層508内のノードの2乗誤差の和とすることができる。言い換えれば、
Δ=ΔO1O2
Figure 0007401663000009
各項における乗法定数
Figure 0007401663000010
は、逆伝搬の間の微分を単純化するために使用される。全体的な結果は、いずれにしても学習率によってスケーリングされるので、この定数は、トレーニングに悪影響を及ぼさない。それにもかかわらず、この時点で、フィードフォワード反復が完了し、逆伝搬が開始する。
2. 逆伝搬
上述したように、逆伝搬の目標は、重みが将来のフィードフォワード反復においてより少ない誤差に寄与するように重みを更新するために、Δ(すなわち、損失関数に基づいて決定される総誤差)を使用することである。一例として、重みw5を考える。この目標は、w5の変化がΔにどのくらい影響を及ぼすかを決定することを伴う。これは、偏導関数
Figure 0007401663000011
として表すことができる。連鎖法則を使用して、この項は、以下のように展開することができる。
Figure 0007401663000012
したがって、w5への変更のΔへの影響は、(i)outO1への変更のΔへの影響、(ii)netO1への変更のoutO1への影響、および(iii)w5への変更のnetO1への影響の積に等しい。これらの乗法項の各々は、独立して決定することができる。直観的には、このプロセスは、w5がnetO1に及ぼす影響、netO1がoutO1に及ぼす影響、およびoutO1がΔに及ぼす影響を分離するものと考えることができる。
このプロセスは、出力層338に供給される他の重みについて繰り返すことができる。逆伝搬の終了時にすべての重みに対する更新が決定されるまで、重みは更新されないことに留意されたい。次いで、すべての重みは、次のフィードフォワード反復の前に更新される。
残りの重みw1、w2、w3、およびw4に対する更新が計算された後、逆伝搬パスが隠れ層336まで続けられる。このプロセスは、出力層338に供給される他の重みについて繰り返すことができる。この時点で、逆伝搬反復は終了し、すべての重みが更新されている。ANN330は、以後のフィードフォワードおよび逆伝搬反復を介してトレーニングされ続け得る。いくつかの事例では、いくつかのフィードフォワードおよび逆伝搬反復(たとえば、数千回の反復)の後、誤差を低減して、元の所望の結果に近い結果を生成することができる。その時点で、Y1およびY2の値は、目標値に近づく。図示のように、微分可能な損失関数を使用することによって、所望の結果と比較されるANN330によって出力される予測の総誤差が決定され、それに応じてANN330の重みを修正するために使用され得る。
いくつかの場合には、システムのハイパーパラメータ(たとえば、バイアスb1およびb2、ならびに学習レートα)が調整される場合、より少ない反復で、同等量のトレーニングを達成することができる。たとえば、学習率を特定の値に近づけると、誤り率がより急速に低下する可能性がある。加えて、バイアスは、重みがどのように更新されるかと同様の方法で、学習プロセスの一部として更新することができる。
それにもかかわらず、ANN330は、単純化された例にすぎない。任意に複雑なANNは、特定の問題または目標に対処するように調整された入力層および出力層の各々におけるノードの数を用いて開発することができる。さらに、2つ以上の隠れ層を使用することができ、各隠れ層に任意の数のノードがあり得る。
III. 畳み込みニューラルネットワーク
畳み込みニューラルネットワーク(CNN)は、CNNがノードのいくつかの層からなり、それらの間に重み付けされた接続、および層ごとのバイアスが可能であるという点で、ANNと同様である。重みおよびバイアスは、上述のフィードフォワードおよび逆伝搬手順によって更新されてもよい。損失関数を使用して、フィードフォワード処理の出力値を所望の出力値と比較してもよい。
一方、CNNは、通常、初期入力値が1つまたは複数の画像から導出されるという明示的な仮定を用いて設計される。いくつかの実施形態では、画像パッチ内の各ピクセルの各カラーチャネルは、別個の初期入力値である。ピクセル当たり3つのカラーチャネル(たとえば、赤、緑、および青)を仮定すると、ピクセルの小さい32×32パッチでさえ、第1の隠れ層内のノードごとに3072の重みが入ってくることになる。明らかに、画像処理のためにナイーブなANNを使用することは、トレーニングに長時間を要する非常に大きく複雑なモデルをもたらす可能性がある。
代わりに、CNNは、ほとんどすべての画像に見られる固有の構造を利用するように設計される。特に、CNN内のノードは、前の層内の少数のノードにのみ接続される。このCNNアーキテクチャは、3次元と考えることができ、ノードは、幅、高さ、および深さを有するブロックに配置されている。たとえば、3つのカラーチャネルを有するピクセルの前述の32×32パッチは、32ノードの幅、32ノードの高さ、および3ノードの深さを有する入力層に配置されてもよい。
例示的なCNN400が図4Aに示されている。ピクセルX1…Xmとして表される初期入力値402は、入力層404に提供される。上述したように、入力層404は、ピクセルX1…Xmのカラーチャネルの幅、高さ、および数に基づいて3次元を有し得る。入力層404は、1組または複数組の特徴抽出層に値を提供し、各組は、畳み込み層406、RELU層408、およびプーリング層410のインスタンスを含む。プーリング層410の出力は、1つまたは複数の分類層412に提供される。最終出力値414は、初期入力値402の簡潔な特徴づけを表す特徴ベクトルに配列されてもよい。
畳み込み層406は、これらの入力値の3次元空間配置の周りに1つまたは複数のフィルタをスライドさせることによって、その入力値を変換することができる。フィルタは、ノードに適用されるバイアスと、それらの間の接続の重みとによって表され、一般に、入力値のものよりも小さい幅および高さを有する。各フィルタの結果は、幅および高さが入力値のものと同じサイズを有することができる出力値の2次元ブロック(特徴マップと呼ばれる)であってもよく、またはこれらの次元のうちの1つまたは複数が異なるサイズを有してもよい。各フィルタの出力の組合せは、深度次元における特徴マップの層をもたらし、各層は、フィルタのうちの1つの出力を表す。
フィルタを適用することは、フィルタ内のエントリと入力値の2次元深度スライスとの間のドット積和を計算することを伴い得る。この例が図4Bに示されている。行列420は、畳み込み層への入力を表し、したがって、たとえば、画像データとすることができる。畳み込み演算は、出力424を決定するために、行列420上にフィルタ422をオーバーレイする。たとえば、フィルタ422が行列420の左上隅に位置し、各エントリのドット積和が計算されると、結果は4となる。これは、出力424の左上隅に配置される。
図4Aに戻ると、CNNは、トレーニング中にフィルタを学習し、その結果、これらのフィルタは、最終的に、入力値内の特定の位置で特定のタイプの特徴を識別することができる。一例として、畳み込み層406は、初期入力値402が導出された画像パッチ内のエッジおよび/または色を最終的に検出することができるフィルタを含むことができる。受容野と呼ばれるハイパーパラメータは、畳み込み層406内の各ノードと入力層404との間の接続の数を決定する。これにより、各ノードは、入力値のサブセットに焦点を合わせることができる。
RELU層408は、畳み込み層406によって提供される出力に活性化関数を適用する。実際には、正規化線形ユニット(RELU)関数、またはその変形が、CNNにおいて強力な結果を提供するようだと判定されている。RELU関数は、f(x)=max(0,x)として定義される単純なしきい値関数である。したがって、xが負であるときには出力は0であり、xが負でないときにはxである。RELU関数に対する平滑化された微分可能な近似は、ソフトプラス関数である。これは、f(x)=log(1+ex)として定義される。それにもかかわらず、他の機能がこの層で使用されてもよい。
プーリング層410は、RELU層408からの出力の各2次元深度スライスをダウンサンプリングすることによって、データの空間サイズを縮小する。1つの可能なアプローチは、深度スライスの各2×2ブロックにストライド2の2×2フィルタを適用することである。これは、各深度スライスの幅および高さを2分の1に減少させ、したがって、データの全体的なサイズが75%減少する。
分類層412は、特徴ベクトルの形式で最終出力値414を計算する。一例として、画像分類器であるようにトレーニングされたCNNでは、特徴ベクトル内の各エントリは、画像パッチが特定のクラスのアイテム(たとえば、人間の顔、猫、浜辺、木など)を含む確率を符号化し得る。
いくつかの実施形態では、複数の組の特徴抽出層がある。したがって、プーリング層410のインスタンスは、畳み込み層406のインスタンスに出力を提供し得る。さらに、プーリング層410のインスタンスごとに、畳み込み層406およびRELU層408の複数のインスタンスがあってもよい。
CNN400は、画像処理に使用することができる一般的な構造を表す。畳み込み層406および分類層412は、ANN300内の層と同様に重みおよびバイアスを適用し、これらの重みおよびバイアスは、CNN400が学習できるように、逆伝搬中に更新され得る。一方、RELU層408およびプーリング層410は、一般に、固定的な演算を適用し、したがって、学習しない場合がある。
ANNとは異ならず、CNNは、本明細書の例に示されるものとは異なる数の層を含むことができ、これらの層の各々は、異なる数のノードを含み得る。したがって、CNN400は、説明のためのものにすぎず、CNNの構造を限定するものと考えないものとする。
図5は、例示的な実施形態による、コンピューティングシステム502およびモバイルデバイス510上で動作するANNを伴うシステム500を示す。
コンピューティングシステム502上で動作するANNは、上記のANN300またはANN330に対応し得る。たとえば、ANNは、ジョイント深度マップを決定することを含む、説明された動作を実行するように命令を実行するように構成され得る。いくつかの例では、ANNは、他のタイプの中でも、CNN(たとえば、CNN400)、フィードフォワードANN、勾配降下ベースの活性化関数ANN、または調節フィードバックANNを表し得る。
一例として、ANNは、1組のトレーニング画像に基づいて複数の画像処理パラメータまたは技法を決定することができる。たとえば、ANNは、人間の専門家のように画像をどのように操作するかを「学習」するために機械学習プロセスを受けることができる。1組のトレーニング画像は、多数の画像の対を含むことができる。たとえば、ANNは、1,000~10,000の画像の対を分析することができる。画像の対の各々は、「元の」画像(本明細書では入力画像とも呼ばれる)と、元の画像が有する所望の品質を表す対応するグラウンドトゥルースマスクとを含むことができる。いくつかの事例では、グラウンドトゥルースマスクは、トレーニング画像の所望のセグメンテーションを表す。さらなる例では、グラウンドトゥルースマスクは、ANNの適用後に対応する入力画像が有する他の所望の品質を表すことができる。
マスクは、画像処理においてしばしば使用され、画像内のピクセル値をゼロまたは他の何らかの背景値に設定することを伴い得る。たとえば、マスク画像は、ピクセル強度値のいくつかがゼロであり、他のピクセル値が非ゼロである画像(たとえば、「1」および「0」を使用するバイナリマスク)に対応し得る。マスク画像においてピクセル強度値がゼロである場合はいつでも、結果として得られるマスクされた画像のピクセル強度を背景値(たとえば、ゼロ)に設定することができる。さらに説明すると、例示的なマスクは、画像の前景内のオブジェクトに対応するすべてのピクセルを白に設定し、背景特徴またはオブジェクトに対応するすべてのピクセルを黒に設定することを伴い得る。予測マスクは、ANNによって生成される画像の推定セグメンテーション(または他の推定出力)に対応することができる。予測マスクは、入力画像の所望のセグメンテーションを表すことができるグラウンドトゥルースマスクと比較することができる。
例示的な実施形態では、グラウンドトゥルースマスクは、Adobe Lightroom、Adobe Photoshop、Adobe Photoshop Elements、Google Picasa、Microsoft Photos、DxO OpticsPro、Corel PaintShop Pro、またはApple Photosなどの画像処理/操作プログラムを使用して、人間によって開発および調整することができる。他の例では、グラウンドトゥルースマスクは、1つまたは複数の以前にトレーニングされたANNによって開発することができる。たとえば、グラウンドトゥルースマスクは、ANNの複数の反復を使用して決定することができる。別の例では、グラウンドトゥルースマスクは、ANNと人間による追加の調整との組合せに基づいて生成することができる。本明細書では、他のタイプの画像処理ソフトウェアが可能であり、企図されていることが理解されよう。あるいは、画像対は、プリセットもしくはランダムフィルタまたは他の画像調整アルゴリズムを使用して、元の画像の調整を表すことができる。
機械学習プロセス中に、ANNは、人間によって行われる異なるタイプの画像操作(またはより計算的に複雑な処理)を表す1組の「重み」を決定することができる。より具体的には、これらの重みは、露出、明瞭度、コントラスト、先鋭度、色相、彩度、色、色収差、焦点、色合い、ホワイトバランス、カラーマッピング、HDRトーンマッピングなどの様々な画像パラメータに関連付けることができる。重みは、セグメンテーション、セマンティックセグメンテーション、またはANNによって適用される他の画像処理技法に影響を与えることもできる。他の画像パラメータに関連付けられた重みが可能であることが理解されよう。時間とともに、十分な数のトレーニング画像を用いて、ANNは、ANNの表現のために使用することができる1組の画像処理パラメータとしてこれらの重みを開発することができる。他の例では、ANNの重みは、ANNが実行するようにトレーニングされている他のタスクに依存し得る。
図6は、例示的な実施形態による、向上した深度推定のためのシステムを示す。システム600は、複数の深度推定技法を使用して、向上した深度推定を分析し、生成するために、ニューラルネットワークをトレーニングし、使用し得る例示的なシステムを表す。図6に示すように、システム600は、マルチカメラ深度情報602(たとえば、2つ以上のカメラからの立体視)およびシングルカメラ深度情報604(たとえば、デュアルピクセル612、緑サブピクセル614)を使用することを伴い得る。深度情報602、604の組合せは、その後、画像のボケ効果をシミュレートする、または他の方法で画像の一部を部分的にぼかすなど、様々な方法でシーンの画像を強調するために使用することができるシーンのジョイント深度予測を開発し、提供するために、ニューラルネットワーク(たとえば、ANN、CNN)によって使用され得る。
1つまたは複数のコンピューティングシステム(たとえば、図1に示すコンピューティングシステム100)は、システム600の機能を実行し得る。たとえば、複数のカメラを有するスマートフォンは、マルチカメラ深度情報602およびシングルカメラ深度情報604をキャプチャし得る。画像をキャプチャするカメラは、マルチカメラ深度情報602およびシングルカメラ深度情報604の一方または両方を提供するように構成されてもよい。たとえば、スマートフォンは、一方または両方のカメラがシングルカメラ深度情報604のための画像をキャプチャするようにも構成されたステレオで動作することができる一対のカメラを含み得る。したがって、スマートフォンおよび/または別のコンピューティングシステム(たとえば、リモートサーバ)は、画像および深度推定値を使用して、シーンのジョイント深度マップを生成することができる、トレーニングされたニューラルネットワークを実行し得る。ジョイント深度マップは、画像の出力を後で修正するために、1つまたは複数のコンピューティングシステムによって使用することができる。一例を示すために、深度マップを使用して、画像の背景部分を部分的にぼかして、前景に位置するオブジェクトの焦点を強調することができる。
システム600内に実装されるニューラルネットワークは、1つまたは複数のコンピューティングシステムによってトレーニングされ得る。加えて、トレーニングされたニューラルネットワークは、ウェアラブルコンピューティングデバイス、スマートフォン、ラップトップコンピュータ、およびサーバなど様々なコンピューティングデバイス上で実行し得る。いくつかの例では、第1のコンピューティングシステムは、ニューラルネットワークをトレーニングし、トレーニングされたニューラルネットワークを第2のコンピューティングシステムに提供し得る。
マルチカメラ深度情報602は、ステレオ配置における2つ以上のカメラなど複数のカメラから取得された画像および他のデータを表し得る。いくつかの例では、マルチカメラ深度情報602は、ジョイント深度マップ推定を開発するために、トレーニングされたニューラルネットワークによって処理される画像を含み得る。他の例では、マルチカメラ深度情報602は、深度マップの形態の深度データ、またはマルチカメラ深度推定技法(たとえば、立体視)を使用して導出された他のデータを含み得る。これらの例では、トレーニングされたニューラルネットワークは、ジョイント深度マップを決定するために深度データ(および潜在的にカメラからキャプチャされた画像)を取得し得る。
いくつかの実施形態では、立体視は、ステレオ前処理608およびステレオ較正610を伴い得る。ステレオ前処理608は、以後の深度分析のために複数組の画像を準備することを伴い得る。これは、ステレオ較正610のために画像をクリーンアップし、編成することを含み得る。いくつかの例では、ステレオ前処理は、カメラ(たとえば、望遠カメラ)のためのリングバッファを使用することを伴い得、生の望遠画像は、メモリおよび電力を節約するために、センサ2×2でビニングされ得る。加えて、画像のフレームは、ノイズを低減するために位置合わせされ、マージされてもよい。これは、光度のより大きいダイナミックレンジを再生するために使用することができるハイダイナミックレンジイメージング(HDRI)に類似し得る。いくつかの例では、ステレオ前処理608はまた、(指定されている場合)主カメラのものと一致するようにベースフレームを選択することを伴い得る。加えて、低解像度仕上げを使用して時間を節約することができる。
ステレオ較正610は、動きおよび/または直接自己修正(DSR)からの特徴整合および構造の1つまたは組合せを使用することを伴い得る。いくつかの例では、複数のカメラからの画像を使用する深度推定は、他の技法を伴い得る。特徴整合は、局所的特徴を使用して画像領域を整合させるために、複数の画像にわたる特徴を検出することを伴い得る。局所的特徴は、オクルージョンおよびクラッタに対してロバストであり得、オブジェクトの大きいデータベースを区別するのに役立ち得る。これは、画像間で差異を決定することを可能にし、画像アラインメントおよび3D再構成(たとえば、ステレオ)を支援することができる。スケール不変特徴変換(SIFT)または高速化ロバスト特徴(SURF)など、異なるタイプの特徴検出器が使用されてもよい。
動きからの構造は、局所的動き信号と結合され得る2D画像シーケンスから3D構造を推定することを伴い得る。画像間の対応を見つけるために、コーナー点(複数の方向に勾配を有するエッジ)などの特徴を画像間で追跡することができる。次いで、経時的な特徴軌跡を使用して、それらの3D位置およびカメラの動きを再構成することができる。いくつかの事例では、幾何学的情報(3D構造およびカメラの動き)は、特徴またはコーナーへの中間抽象化なしに、画像から直接推定されてもよい。
DSRは、ステレオ修正を実行するために使用されてもよく、カメラのすべての対について個々のオフライン較正の必要性を取り除き得る。DSRは、元の画像と変換された画像との間の対応する点の垂直変位を最小限に抑えることを伴い得る。DSRは、電話機上のデュアルカメラ(たとえば、ステレオ用に配置されたカメラ)に固有であってもよい。いくつかの例では、ベースラインのYおよびZ成分が小さい場合、画像のうちの1つのみをワープすることによって画像を修正することができる。これは、画像空間において特徴整合を整列させることによってワープを直接解くことを可能にする。
シングルカメラ深度情報604は、深度情報のために個別に使用することができる1つまたは複数のカメラから取得された画像および他のデータを表し得る。たとえば、スマートフォンまたは別のコンピューティングシステムは、デュアルピクセル612および緑サブピクセル614など深度推定技法のための画像をキャプチャするように構成されたカメラを含み得る。他のシングルカメラ技法を使用して、トレーニングされたニューラルネットワークがシーンのジョイント深度推定を生成するために使用され得る深度情報を導出することができる。
いくつかの例では、シングルカメラ深度情報604は、ジョイント深度マップ推定を開発するために、トレーニングされたニューラルネットワークによって処理される画像を含み得る。他の例では、シングルカメラ深度情報602は、深度マップの形態の深度データ、または1つもしくは複数のシングルカメラ深度推定技法(たとえば、デュアルピクセル612および緑サブピクセル614)を使用して導出された他のデータを含み得る。これらの例では、トレーニングされたニューラルネットワークは、ジョイント深度マップを決定するために深度データ(および潜在的に1つまたは複数のカメラからキャプチャされた画像)を取得し得る。
デュアルピクセル612および緑サブピクセル614は、単一のカメラを使用してキャプチャされた画像に基づいて深度マップを生成することを可能にすることができる同様の技法である。たとえば、深度は、各デュアルピクセル画像を2つの異なるシングルピクセル画像として使用し、2つの異なるシングルピクセル画像を一致させようと試みることによって、デュアルピクセル画像から計算されてもよい。各点の深度は、ピクセルが2つのビューの間でどれだけ動くかを決定する。緑サブピクセル614は、深度を決定するために三角測量を使用して分析される画像から複数の画像を生成する方法として、画像のピクセル内の緑サブピクセルを使用することを伴い得る同様の技法を表し得る。
ニューラルネットワークを使用した深度予測606は、トレーニングされたニューラルネットワークを使用して、別の構造における向上した深度マップまたは深度データを生成することを伴い得る。トレーニングされたニューラルネットワークは、マルチカメラ深度情報602およびシングルカメラ深度情報604を入力として使用して、出力としてジョイント深度マップを生成することができる。ジョイント深度マップは、画像の1つまたは複数の部分を部分的にぼかすなど、シーンの1つまたは複数の画像を後に修正するために使用されてもよい。
図7Aは、例示的な実施形態による、ジョイント深度推定アーキテクチャのための第1の構成を示す。ジョイント深度推定アーキテクチャ700は、デュアルピクセル入力702および差分ボリューム入力710など複数の入力に基づいてジョイント深度マップを生成するために使用され得る例示的なアーキテクチャを表す。他の例示的な構成も可能である。
デュアルピクセル入力702および差分ボリューム入力710は、深度推定および推定の関連する信頼度を導出するための入力として使用され得るシングルカメラおよびマルチカメラ深度情報を表す。たとえば、ニューラルネットワーク704または別の処理技法は、デュアルピクセル入力702を使用して、デュアルピクセル入力702に従ってシーンの深度マップを表すデュアルピクセル深度706を生成し得る。加えて、デュアルピクセル深度706は、深度マップに関連付けられた信頼レベルを示すデュアルピクセル信頼度708を含み得る。信頼レベルは、デュアルピクセル深度706の異なる部分について異なり得る。同様に、ニューラルネットワーク712または別の処理技法は、差分ボリューム入力710を使用して、差分ボリューム入力710に従ってシーンの深度マップを表し得るコストボリューム深度714を生成し得る。コストボリューム深度714は、深度マップの一部に関連付けられた1つまたは複数の信頼レベルを表すコストボリューム信頼度716も含み得る。ニューラルネットワークは、最終深度マップ720を生成するために、デュアルピクセル深度706、デュアルピクセル信頼度708、コストボリューム深度714、およびコストボリューム信頼度716などの情報を使用し、718で組み合わせ得る。
図7Bは、例示的な実施形態による、図7Aに示すジョイント深度推定アーキテクチャの一実装形態を示す。実装730は、図7Aに示すジョイント深度推定アーキテクチャ700の例示的な実装を表し、深度予測732、736、信頼度734、738、およびジョイント深度マップ740を含む。
特に、デュアルピクセル入力702および差分ボリューム入力710を受信すると、深度予測732、736および関連する信頼度734、738を決定するために、1つまたは複数のプロセスを実行することができる。図7Bに示すように、信頼度734は、深度予測732に関連付けられ、実装730の深度マップに表される男性の境界付近のより高い信頼度を示す。同様に、信頼度738は、深度予測736に関連付けられ、背景に対するより高い信頼度を示す。したがって、ニューラルネットワークは、信頼度734、738を使用して深度予測732、736を使用し、組み合わせて、ジョイント深度マップ表現740を決定することができる。たとえば、ジョイントマップ表現740は、できる
図8は、例示的な実施形態による、別のジョイント深度推定アーキテクチャを示す。ジョイント深度推定アーキテクチャ800は、デュアルピクセル入力802および差分ボリューム入力808など複数の入力に基づいてジョイント深度マップを生成するために使用され得る別の例示的なアーキテクチャを表す。他の例示的な構成も可能である。
デュアルピクセル入力802および差分ボリューム入力808は、入力に基づいてジョイント深度マップを表す最終深度810を決定するための入力として使用され得るシングルカメラおよびマルチカメラ深度情報を表す。特に、ニューラルネットワーク804は、1つまたは複数のエンコーダおよび/または共有デコーダ806を使用して、入力を処理して、最終深度810のためのジョイント深度マップを開発することができる。たとえば、ニューラルネットワーク804は、デュアルピクセル入力802および差分ボリューム入力808を符号化し、組み合わせ、共有デコーダ806を通って、最終深度810のためのジョイント深度マップを生成するようにトレーニングされた1つまたは複数のニューラルネットワークを含み得る。
図9は、例示的な実施形態による、ジョイント深度推定に基づく画像の修正を示す。入力画像900は、1つまたは複数のカメラによってキャプチャされた画像または画像の集合を表す。たとえば、スマートフォンまたはウェアラブルデバイスのカメラは、入力画像900をキャプチャし得る。したがって、入力画像900は、入力画像900の前景に配置されたおもちゃの犬902を含むシーンを伝達する。特に、シーンは、おもちゃの犬902が人の足904および椅子906の前のデッキ上に配置されていることを示す。したがって、入力画像900は、入力画像900のいかなる部分もぼやけていない明瞭なプレゼンテーションとして、2D内のすべての要素とともに図9に示されている。たとえば、入力画像900は、いかなる修正も適用されずにひとたびカメラによってキャプチャされると、画像がどのように見えるかを表し得る。
いくつかの例では、入力画像900は、1組の画像を表し得る。1組の画像は、図9に示すジョイント深度推定908を導出するために使用され得る。一実施形態では、ジョイント深度マップ908は、図6~図8に関して上述したように、入力画像900および他の画像から導出された深度推定値を使用したニューラルネットワークによって開発され得る。
ジョイント深度マップ908は、入力画像900によって表されるシーン内の要素の推定深度を示す。特に、ジョイント深度マップ908は、背景に位置するより暗い部分(たとえば、足904および椅子906)と比較して、カメラのより近くに位置する要素を示す、より明るい部分(たとえば、おもちゃの犬902)を有する入力画像900の部分の推定深度を示す。図示のように、ジョイント深度マップ908の陰影は、おもちゃの犬902が前景に位置していることを示すように見え(たとえば、より明るい陰影)、足904および椅子906は、背景に位置を有するように見える(たとえば、より暗い陰影)。言い換えれば、ジョイント深度マップ908は、おもちゃの犬902が、足904および椅子906と比較して、画像キャプチャ中にカメラのより近くに位置したことを示す。
加えて、図9は、元々キャプチャされた入力画像900の修正バージョンを表す修正画像910をさらに示す。ジョイント深度マップ908を使用することによって、修正画像910は、ボケ効果と同様の方法で、前景内のおもちゃの犬902ならびに足904および椅子906に焦点を合わせて生成されている。
いくつかの例では、修正画像910を生成することは、画像コントラストを増加させるために画像の部分を先鋭化することを伴い得る。特に、先鋭化は、修正画像910におけるエッジの鮮明度を高め得る。たとえば、おもちゃの犬902のエッジが先鋭化され得る。先鋭化は、1つのステップまたは一連の反復で実行することができる。
さらなる例では、修正画像910を生成することは、画像の1つまたは複数の部分をぼかすことを伴い得る。ぼかしは、入力画像900および他の入力画像から画像グレインおよびノイズを除去し得る。いくつかの事例では、ぼかしは、ぼかし効果を生成するために、修正画像910の部分にノイズを追加または除去することを伴い得る。ガウス関数によって画像の一部をぼかすことを伴うガウスぼかしが使用され得る。ボケ効果とは異なり、ガウスぼかしは、半透明のスクリーンを通して画像の部分を見るのと同様に、滑らかなぼかしを生成し得る。このように、ガウスぼかしは、画像要素を強調するために実行されてもよい。他の例では、他のタイプのぼかし効果を使用することができる。たとえば、円形ボックスのぼかしを使用して、修正画像910の背景要素をぼかすことができる。
いくつかの例では、シーンの一部に焦点を合わせ、シーンの1つまたは複数の他の部分をぼかした状態で画像の新しいバージョンを生成することは、エッジ認識平滑化を実行することを伴い得る。特に、エッジ認識平滑化は、新しいバージョンにおける焦点を合わせた部分が、ぼやけたシーンの1つまたは複数の他の部分に対してスムーズエッジを有することを可能にし得る。
いくつかの実施形態では、修正画像910内で焦点を合わせた部分およびぼやけた部分は、入力画像900をキャプチャするときに最初に受信されたユーザ入力を考慮に入れることができる。たとえば、入力画像900をキャプチャする準備をするとき、カメラデバイスは、ビューファインダを使用してカメラの潜在的な画像の視点を表示し得る。ビューファインダは、ユーザが、画像キャプチャ中にカメラが焦点を合わせるべきシーンの一部を選択することを可能にするタッチスクリーンであってもよい。その結果、修正画像910を生成するとき、カメラデバイスは、どの要素(たとえば、おもちゃの犬902)に焦点を合わせるか、およびどの要素を修正画像910内でぼかすかを決定するときに、ユーザによるシーンの事前選択を考慮に入れることができる。
図10は、例示的な実施形態による、ニューラル光輸送機能を実施するための方法1000のフローチャートである。方法1000は、ブロック1002、1004、および1006のうちの1つまたは複数によって示されるように、1つまたは複数の動作、機能、またはアクションを含み得る。ブロックは、順次示されているが、これらのブロックは、いくつかの事例では、並列に、および/または本明細書で説明されるものとは異なる順序で実行され得る。また、様々なブロックは、より少ないブロックに組み合わされてもよく、追加のブロックに分割されてもよく、および/または所望の実装に基づいて除去されてもよい。
さらに、方法1000ならびに本明細書で開示される他のプロセスおよび方法について、フローチャートは、本実施形態の1つの可能な実装の機能および動作を示す。この点に関して、各ブロックは、モジュール、セグメント、またはプログラムコードの一部を表すことができ、プログラムコードは、プロセス内の特定の論理機能またはステップを実装するためにプロセッサによって実行可能な1つまたは複数の命令を含む。プログラムコードは、たとえば、ディスクまたはハードドライブを含む記憶デバイスなどの任意のタイプのコンピュータ可読媒体またはメモリに記憶されてもよい。
コンピュータ可読媒体は、たとえば、レジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ(RAM)のような、短期間の間データを記憶するコンピュータ可読媒体などの非一時的コンピュータ可読媒体を含み得る。コンピュータ可読媒体はまた、たとえば、読取り専用メモリ(ROM)、光または磁気ディスク、コンパクトディスク読取り専用メモリ(CD-ROM)のような、二次または持続的長期ストレージなどの非一時的媒体またはメモリも含み得る。
コンピュータ可読媒体はまた、任意の他の揮発性または不揮発性記憶システムであってもよい。コンピュータ可読媒体は、たとえば、コンピュータ可読記憶媒体、有形記憶デバイス、または他の製造品と見なすことができる。さらに、方法1000ならびに本明細書で開示される他のプロセスおよび方法の場合、図10の各ブロックは、プロセス内の特定の論理機能を実行するように配線された回路を表すことができる。
ブロック1002で、方法1000は、第1のソースからのシーンを表す第1の組の深度情報と、第2のソースからのシーンを表す第2の組の深度情報とを取得するステップを伴い得る。コンピューティングシステムは、カメラ、センサ、および/またはコンピューティングシステムを含む様々なタイプのソースから1組または複数組の深度情報を取得し得る。
コンピューティングシステムは、単一のカメラからシーンを表す深度情報(たとえば、第1の組の深度情報)を受信し得、第1の組の深度情報が、シーンを表す1つまたは複数のデュアルピクセル画像に対応する。第1の組の深度情報は、単一のカメラから取得されたデュアルピクセル画像に基づくシーンの第1の深度推定を含み得る。いくつかの例では、コンピューティングシステムは、デュアルピクセル深度推定および/または緑サブピクセル深度推定のために画像をキャプチャするように構成された1つまたは複数のカメラから深度情報(たとえば、深度推定値および/または画像)を受信し得る。
加えて、コンピューティングシステムは、一対のステレオカメラから深度情報(たとえば、第2の組の深度情報)を受信し得る。特に、第2の組の深度情報は、シーンを表す1組または複数組のステレオ画像に対応し得る。第2の組の深度情報は、シーンを表す1組または複数組のステレオ画像に基づいて生成されたシーンの第2の深度推定を含み得る。いくつかの例では、シーンの第2の深度推定は、差分ボリューム技法を使用して決定される。差分ボリューム技法は、望遠画像を異なる深度の平面上に投影し、メイン画像から減算してスタックを形成することを伴い得る。いくつかの事例では、差分ボリューム技法は、深度推定を1つまたは複数の画像と位置合わせすることを可能にし得る。
ブロック1004では、方法1000は、ニューラルネットワークを使用して、シーン内の要素のそれぞれの深度を伝達するジョイント深度マップを決定するステップを伴い得る。ニューラルネットワークは、第1の組の深度情報と第2の組の深度情報との組合せに基づいて、ジョイント深度マップを決定し得る。特に、ニューラルネットワークは、最適なジョイント深度マップを生成するために、複数のソース(たとえば、単一のカメラ、ステレオカメラ)から導出された複数組の深度情報をどのように組み合わせるかを決定するようにトレーニングされてもよい。最適なジョイント深度マップは、シーン内の異なる要素を明確に区別し、シーン内の背景要素と前景要素との間の明確な差を示すことができる。ジョイント深度マップは、要素のシャープエッジと、1つの技法のみを使用して確立された深度マップに対する他の潜在的な改善とを含み得る。
いくつかの例では、ジョイント深度マップを決定することは、ニューラルネットワークによって、第1の重みを第1の組の深度情報に割り当て、第2の重みを第2の組の深度情報に割り当てることを伴い得る。決定することは、第1の組の深度情報に割り当てられた第1の重みと、第2の組の深度情報に割り当てられた第2の重みとに基づいて、ジョイント深度マップを決定することをさらに伴い得る。いくつかの事例では、ニューラルネットワークによって、第1の重みを第1の組の深度情報に割り当て、第2の重みを第2の組の深度情報に割り当てることは、シーンの画像をキャプチャしたカメラとシーンの前景の要素との間の距離に基づき得る。加えて、深度情報(たとえば、画像および/または深度推定値)に割り当てられる重みは、ニューラルネットワークをトレーニングするために使用されるトレーニングデータ(たとえば、画像セット)などの他の要因に依存し得る。
いくつかの例では、ジョイント深度マップを決定することは、深度情報の組に関連付けられた信頼度に基づいてもよい。たとえば、ジョイント深度は、第1の組の深度情報に関連付けられた第1の信頼度と、第2の組の深度情報に関連付けられた第2の信頼度とに基づいて決定され得る。信頼度は、様々な方法で決定され得る。たとえば、カメラから受信された画像に基づいて深度推定値を開発するコンピューティングシステムは、各推定値に信頼度を割り当て得る。例示のために、ニューラルネットワークまたは別のプロセスは、三角測量、立体視、差分ボリューム計算、デュアルピクセル、および緑サブピクセルなどの様々な技法を使用して、1つまたは複数の画像に基づいて深度を推定するように構成され得る。したがって、ネットワークまたはプロセスは、各深度推定値にも信頼度を割り当て得る。信頼度は、深度推定値の全体に対するものであってもよいし、深度推定値の一部に対するものであってもよい。いくつかの例では、コンピューティングシステムは、ニューラルネットワークが、第1の組の深度情報に関連付けられた第1の信頼度と、第2の組の深度情報に関連付けられた第2の信頼度とを使用してジョイント深度マップを決定するように、第1の組の深度情報と第2の組の深度情報とをニューラルネットワークへの入力として提供し得る。
加えて、ジョイント深度マップを決定することは、ニューラルネットワークがデコーダを使用してジョイント深度マップを決定するように、ニューラルネットワークへの入力として深度情報の組(たとえば、第1の組および第2の組)を使用することに基づき得る。それらは、シーン内の要素の深度を識別し、それらを区別することができる他のイメージング処理技法を実行するようにニューラルネットワークがトレーニングされるとき、ニューラルネットワークへの入力として働き得る。
ブロック1006で、方法1000は、ジョイント深度マップに基づいてシーンを表す画像を修正するステップを伴う。たとえば、1つまたは複数の画像修正技法が、ジョイント深度マップに基づいてシーンを描写する1つまたは複数の画像に対して実行されてもよい。これらの画像は、深度情報の組を開発するために最初にキャプチャされた画像に対応してもよく、または同じシーンの新しい画像であってもよい。
いくつかの例では、画像の1つまたは複数の部分は、ジョイント深度マップに基づいて部分的にぼかされてもよい。たとえば、画像の背景部分をぼかして、前景内の1つまたは複数のオブジェクトを目立たせてもよい。
いくつかの例では、ニューラルネットワークをトレーニングすることは、トレーニングデータを生成するように構成され、同期された複数のカメラリグを使用することを伴い得る。たとえば、デュアルカメラは、グラウンドトゥルース深度を計算するために、10個のビューを提供することができる。さらなる例では、ステレオ較正からの疎点クラウドを使用して、ジョイント深度マップを、ほぼメトリックな深度に変換することができる。
いくつかの例では、デバイスは、ポートレートモードなどの特定のモードで画像をキャプチャするときに、本明細書で説明する技法のうちの1つまたは複数を実行することができる。特定のモード(たとえば、ポートレートモード)は、コンピューティングシステムがシーン内のピクセルにおけるオブジェクトの距離を最初に推定すること(すなわち、深度決定)を伴い得る。次いで、コンピューティングシステムは、元の画像(たとえば、HDR+画像)内の各ピクセルを、深度に基づくサイズの半透明ディスクで置き換えることによって、結果をレンダリングし得る。
さらなる例では、システムは、テクスチャおよびラインの識別および深度推定をさらに向上させるために、各深度推定技法に関連付けられたベースライン配向情報を使用し得る。たとえば、デュアルピクセルは、第1の配向(たとえば、垂直)を有するベースラインを有し、デュアルカメラは、第1の配向に直交する第2の配向(たとえば、水平)を有するベースラインを有し得る。直交の配向を有することによって、ニューラルネットワークまたは別の画像処理技法は、ベースラインの直交性を使用して、テクスチャ、ラインの配向、および要素の深度など、シーンに関する導出情報をさらに向上させることができる。
図11は、本明細書で提示される少なくともいくつかの実施形態に従って構成された、コンピューティングシステム上でコンピュータプロセスを実行するためのコンピュータプログラムの概念的な部分図を示す概略図である。いくつかの実施形態では、開示された方法は、機械可読フォーマットで非一時的コンピュータ可読記憶媒体上に、または他の非一時的媒体もしくは製造品上に符号化されたコンピュータプログラム命令として実装され得る。
一実施形態では、例示的なコンピュータプログラム製品1100は、信号担持媒体1102を使用して提供され、信号担持媒体1102は、1つまたは複数のプロセッサによって実行されると、図1~図10に関して上記で説明した機能または機能の一部を提供し得る1つまたは複数のプログラミング命令1104を含み得る。いくつかの例では、信号担持媒体1102は、限定はしないが、ハードディスクドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、デジタルテープ、メモリなどの非一時的コンピュータ可読媒体1106を含み得る。いくつかの実装形態では、信号担持媒体1102は、限定はしないが、メモリ、リード/ライト(R/W)CD、R/W DVDなどのコンピュータ記録可能媒体1108を含み得る。いくつかの実装形態では、信号担持媒体1102は、限定はしないが、デジタルおよび/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波路、有線通信リンク、ワイヤレス通信リンクなど)などの通信媒体1110を含み得る。したがって、たとえば、信号担持媒体1102は、ワイヤレス形式の通信媒体1110によって搬送されてもよい。
1つまたは複数のプログラミング命令1104は、たとえば、コンピュータ実行可能命令および/または論理実装命令であり得る。いくつかの例では、図1のコンピュータシステム100などのコンピューティングデバイスは、コンピュータ可読媒体1106、コンピュータ記録可能媒体1108、および/または通信媒体1110のうちの1つまたは複数によってコンピュータシステム100に伝達されるプログラミング命令1104に応答して、様々な動作、機能、またはアクションを提供するように構成され得る。
非一時的コンピュータ可読媒体は、互いから離れて位置することができる複数のデータ記憶要素の間で分散させることもできる。あるいは、記憶された命令の一部またはすべてを実行するコンピューティングデバイスは、サーバなど別のコンピューティングデバイスとすることができる。
上記の詳細な説明は、添付の図面を参照して、開示されたシステム、デバイス、および方法の様々な特徴および機能を説明している。様々な態様および実施形態が本明細書で開示されてきたが、他の態様および実施形態が明らかになるであろう。本明細書で開示された様々な態様および実施形態は、例示の目的であり、限定することを意図するものではなく、真の範囲は、以下の特許請求の範囲によって示される。
本明細書で説明された構成は、単に例示の目的のためのものであることを理解されたい。したがって、他の構成および他の要素(たとえば、機械、装置、インターフェース、機能、順序、および機能のグループ化など)を代わりに使用することができ、いくつかの要素は、所望の結果に従って完全に省略され得ることを、当業者は諒解されよう。さらに、説明された要素の多くは、任意の適切な組合せおよび位置で、個別のまたは分散されたコンポーネントとして、あるいは他のコンポーネントと併せて実装され得る機能エンティティである。
100 コンピューティングシステム
102 プロセッサ
104 メモリ
104A ファームウェア
104B カーネル
104C アプリケーション
106 ネットワークインターフェース
108 入出力ユニット
110 システムバス
200 クラウドベースのサーバクラスタ
202 サーバデバイス
204 データストレージ
206 ルータ
208 ローカルクラスタネットワーク
210 通信リンク
212 ネットワーク
300 ANN
302 初期入力値
304 入力層
306 隠れ層
308 隠れ層
310 出力層
312 最終出力値
330 ANN
332 初期入力値
334 入力層
336 隠れ層
338 出力層
340 最終出力値
400 CNN
402 初期入力値
404 入力層
406 畳み込み層
408 RELU層
410 プーリング層
412 分類層
414 最終出力値
420 行列
422 フィルタ
424 出力
500 システム
502 コンピューティングシステム
508 出力層
510 モバイルデバイス
600 システム
602 マルチカメラ深度情報
604 シングルカメラ深度情報
606 ニューラルネットワークを使用した深度予測
608 ステレオ前処理
610 ステレオ較正
612 デュアルピクセル
614 緑サブピクセル
700 ジョイント深度推定アーキテクチャ
702 デュアルピクセル入力
704 ニューラルネットワーク
706 デュアルピクセル深度
708 デュアルピクセル信頼度
710 差分ボリューム入力
712 ニューラルネットワーク
714 コストボリューム深度
716 コストボリューム信頼度
720 最終深度マップ
730 実装
732 深度予測
736 深度予測
734 信頼度
738 信頼度
740 ジョイント深度マップ
800 ジョイント深度推定アーキテクチャ
802 デュアルピクセル入力
804 ニューラルネットワーク
806 共有デコーダ
808 差分ボリューム入力
810 最終深度
900 入力画像
902 おもちゃの犬
904 人の足
906 椅子
908 ジョイント深度推定
910 修正画像
1100 コンピュータプログラム製品
1102 信号担持媒体
1104 プログラミング命令
1106 非一時的コンピュータ可読媒体
1108 コンピュータ記録可能媒体
1110 通信媒体

Claims (18)

  1. コンピューティングシステムにおいて、第1のソースからのシーンを表す第1の組の深度情報と、第2のソースからの前記シーンを表す第2の組の深度情報とを取得するステップと、
    前記コンピューティングシステムにおいて、ニューラルネットワークを使用して、前記シーン内の要素のそれぞれの深度を伝達するジョイント深度マップを決定するステップであって、前記ニューラルネットワークが、前記第1の組の深度情報と前記第2の組の深度情報との組合せに基づいて、前記ジョイント深度マップを決定し、前記シーン内の要素のそれぞれの深度を伝達する前記ジョイント深度マップを決定するステップが、前記第1の組の深度情報に関連付けられた第1の信頼度と、前記第2の組の深度情報に関連付けられた第2の信頼度とに基づいて、前記ジョイント深度マップを決定するステップを含む、ステップと、
    前記ジョイント深度マップに基づいて前記シーンを表す画像を修正するステップと
    を含む方法。
  2. 前記第1のソースからの前記シーンを表す前記第1の組の深度情報と、前記第2のソースからの前記シーンを表す前記第2の組の深度情報とを取得するステップが、
    単一のカメラから前記シーンを表す前記第1の組の深度情報を受信するステップであって、前記第1の組の深度情報が、前記シーンを表す1つまたは複数のデュアルピクセル画像に対応する、ステップ
    を含む、請求項1に記載の方法。
  3. 前記第1のソースからの前記シーンを表す前記第1の組の深度情報と、前記第2のソースからの前記シーンを表す前記第2の組の深度情報とを取得するステップが、
    前記1つまたは複数のデュアルピクセル画像に基づく前記シーンの第1の深度推定を受信するステップ
    を含む、請求項2に記載の方法。
  4. 前記第1のソースからの前記シーンを表す前記第1の組の深度情報と、前記第2のソースからの前記シーンを表す前記第2の組の深度情報とを取得するステップが、
    1対のステレオカメラからの前記シーンを表す前記第2の組の深度情報を受信するステップであって、前記第2の組の深度情報が、前記シーンを表す1組または複数組のステレオ画像に対応する、ステップ
    を含む、請求項1に記載の方法。
  5. 前記第1のソースからの前記シーンを表す前記第1の組の深度情報と、前記第2のソースからの前記シーンを表す前記第2の組の深度情報とを取得するステップが、
    前記シーンを表す前記1組または複数組のステレオ画像に基づく前記シーンの第2の深度推定を受信するステップ
    を含む、請求項4に記載の方法。
  6. 前記シーン内の要素のそれぞれの深度を伝達する前記ジョイント深度マップを決定するステップが、
    前記ニューラルネットワークによって、第1の重みを前記第1の組の深度情報に割り当て、第2の重みを前記第2の組の深度情報に割り当てるステップと、
    前記第1の組の深度情報に割り当てられた前記第1の重みと、前記第2の組の深度情報に割り当てられた前記第2の重みとに基づいて、前記ジョイント深度マップを決定するステップと
    を含む、請求項1に記載の方法。
  7. 前記ニューラルネットワークによって、前記第1の重みを前記第1の組の深度情報に割り当て、前記第2の重みを前記第2の組の深度情報に割り当てるステップが、前記シーンの前記画像をキャプチャしたカメラと前記シーンの前景の要素との間の距離に基づく、請求項6に記載の方法。
  8. 前記シーン内の要素のそれぞれの深度を伝達する前記ジョイント深度マップを決定するステップが、
    前記ニューラルネットワークがデコーダを使用して前記ジョイント深度マップを決定するように、前記ニューラルネットワークへの入力として、前記第1の組の深度情報および前記第2の組の深度情報を提供するステップ
    を含む、請求項1に記載の方法。
  9. 前記シーン内の要素のそれぞれの深度を伝達する前記ジョイント深度マップを決定するステップが、
    前記ニューラルネットワークが、前記第1の組の深度情報に関連付けられた前記第1の信頼度と、前記第2の組の深度情報に関連付けられた前記第2の信頼度とを使用して前記ジョイント深度マップを決定するように、前記第1の組の深度情報と前記第2の組の深度情報とを前記ニューラルネットワークへの入力として提供するステップ
    を含む、請求項1に記載の方法。
  10. 前記ジョイント深度マップに基づいて前記シーンを表す前記画像を修正するステップが、
    前記ジョイント深度マップに基づいて、前記画像の1つまたは複数の背景部分に部分的なぼかしを適用するステップ
    を含む、請求項1に記載の方法。
  11. 複数のソースと、
    第1のソースからのシーンを表す第1の組の深度情報と、第2のソースからの前記シーンを表す第2の組の深度情報とを取得することと、
    ニューラルネットワークを使用して、前記シーン内の要素のそれぞれの深度を伝達するジョイント深度マップを決定することであって、前記ニューラルネットワークが、前記第1の組の深度情報と前記第2の組の深度情報との組合せに基づいて、前記ジョイント深度マップを決定し、前記シーン内の要素のそれぞれの深度を伝達する前記ジョイント深度マップを決定することが、前記第1の組の深度情報に関連付けられた第1の信頼度と、前記第2の組の深度情報に関連付けられた第2の信頼度とに基づいて、前記ジョイント深度マップを決定することを含む、決定することと、
    前記ジョイント深度マップに基づいて前記シーンを表す画像を修正することと
    を行うように構成されている、コンピューティングシステムと
    を含むシステム。
  12. 前記コンピューティングシステムが、前記第1の組の深度情報が前記シーンを表す1つまたは複数のデュアルピクセル画像に対応するように、単一のカメラから前記シーンを表す前記第1の組の深度情報を受信するように構成されている、請求項11に記載のシステム。
  13. 前記第1の組の深度情報が、前記1つまたは複数のデュアルピクセル画像に基づく前記シーンの第1の深度推定を含む、請求項12に記載のシステム。
  14. 前記コンピューティングシステムが、前記第2の組の深度情報が前記シーンを表す1組または複数組のステレオ画像に対応するように、1対のステレオカメラからの前記シーンを表す前記第2の組の深度情報を受信するように構成されている、請求項11に記載のシステム。
  15. 前記第2の組の深度情報が、前記1組または複数組のステレオ画像に基づく前記シーンの第2の深度推定を含み、前記シーンの前記第2の深度推定が、差分ボリューム技法を使用して決定される、請求項14に記載のシステム。
  16. 前記コンピューティングシステムが、前記ニューラルネットワークを使用して、前記ニューラルネットワークによる前記第1の組の深度情報および前記第2の組の深度情報に対するデコーダの適用に基づいて、前記シーン内の要素のそれぞれの深度を伝達する前記ジョイント深度マップを決定するように構成されている、請求項11に記載のシステム。
  17. 前記コンピューティングシステムが、
    前記ジョイント深度マップに基づいて、前記画像の1つまたは複数の背景部分に部分的なぼかしを適用することによって、前記シーンを表す前記画像を修正するように構成されている、請求項11に記載のシステム。
  18. 命令を記憶するように構成された非一時的コンピュータ可読記録媒体であって、前記命令が、1つまたは複数のプロセッサを含むコンピューティングシステムによって実行されると、前記コンピューティングシステムに、
    第1のソースからのシーンを表す第1の組の深度情報と、第2のソースからの前記シーンを表す第2の組の深度情報とを取得することと、
    ニューラルネットワークを使用して、前記シーン内の要素のそれぞれの深度を伝達するジョイント深度マップを決定することであって、前記ニューラルネットワークが、前記第1の組の深度情報と前記第2の組の深度情報との組合せに基づいて、前記ジョイント深度マップを決定し、前記シーン内の要素のそれぞれの深度を伝達する前記ジョイント深度マップを決定することが、前記第1の組の深度情報に関連付けられた第1の信頼度と、前記第2の組の深度情報に関連付けられた第2の信頼度とに基づいて、前記ジョイント深度マップを決定することを含む、決定することと、
    前記ジョイント深度マップに基づいて前記シーンを表す画像を修正することと
    を含む動作を実行させる、
    非一時的コンピュータ可読記録媒体。
JP2022522358A 2019-10-14 2020-04-27 デュアルカメラおよびデュアルピクセルからのジョイント深度予測 Active JP7401663B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962914988P 2019-10-14 2019-10-14
US62/914,988 2019-10-14
PCT/US2020/030108 WO2021076185A1 (en) 2019-10-14 2020-04-27 Joint depth prediction from dual-cameras and dual-pixels

Publications (2)

Publication Number Publication Date
JP2022551958A JP2022551958A (ja) 2022-12-14
JP7401663B2 true JP7401663B2 (ja) 2023-12-19

Family

ID=75538586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022522358A Active JP7401663B2 (ja) 2019-10-14 2020-04-27 デュアルカメラおよびデュアルピクセルからのジョイント深度予測

Country Status (6)

Country Link
US (1) US20220343525A1 (ja)
EP (1) EP4038575A4 (ja)
JP (1) JP7401663B2 (ja)
KR (1) KR20220052359A (ja)
CN (1) CN114556422A (ja)
WO (1) WO2021076185A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941080B2 (en) * 2021-05-20 2024-03-26 Retrocausal, Inc. System and method for learning human activities from video demonstrations using video augmentation
US20230188691A1 (en) * 2021-12-14 2023-06-15 Robert John Hergert Active dual pixel stereo system for depth extraction
KR20240020854A (ko) * 2022-08-09 2024-02-16 삼성전자주식회사 깊이 맵을 획득하기 위한 전자 장치 및 방법
CN115423724B (zh) * 2022-11-03 2023-03-21 中国石油大学(华东) 强化学习参数优化的水下图像增强方法、装置及介质
CN116721143B (zh) * 2023-08-04 2023-10-20 南京诺源医疗器械有限公司 3d医学图像的深度信息处理装置及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190289281A1 (en) 2018-03-13 2019-09-19 Magic Leap, Inc. Image-enhanced depth sensing via depth sensor control

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101214536B1 (ko) * 2010-01-12 2013-01-10 삼성전자주식회사 뎁스 정보를 이용한 아웃 포커스 수행 방법 및 이를 적용한 카메라
KR101820456B1 (ko) * 2011-06-27 2018-01-22 에스케이플래닛 주식회사 깊이 맵 생성 방법 및 장치
TW201432622A (zh) * 2012-11-07 2014-08-16 Koninkl Philips Nv 產生一關於一影像之深度圖
US9619933B2 (en) * 2014-06-16 2017-04-11 Occipital, Inc Model and sizing information from smartphone acquired image sequences
US10019657B2 (en) * 2015-05-28 2018-07-10 Adobe Systems Incorporated Joint depth estimation and semantic segmentation from a single image

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190289281A1 (en) 2018-03-13 2019-09-19 Magic Leap, Inc. Image-enhanced depth sensing via depth sensor control

Also Published As

Publication number Publication date
KR20220052359A (ko) 2022-04-27
EP4038575A4 (en) 2023-11-15
CN114556422A (zh) 2022-05-27
EP4038575A1 (en) 2022-08-10
WO2021076185A1 (en) 2021-04-22
US20220343525A1 (en) 2022-10-27
JP2022551958A (ja) 2022-12-14

Similar Documents

Publication Publication Date Title
JP7401663B2 (ja) デュアルカメラおよびデュアルピクセルからのジョイント深度予測
US10535141B2 (en) Differentiable jaccard loss approximation for training an artificial neural network
US11074714B2 (en) Eye tracking method and system
US10755173B2 (en) Video deblurring using neural networks
KR102574141B1 (ko) 이미지 디스플레이 방법 및 디바이스
Jiang et al. Learning to see moving objects in the dark
WO2022166412A1 (zh) 基于协同分割与数据增强的自监督三维重建方法及系统
ES2967691T3 (es) Ajuste de una representación digital de una región de cabeza
US20170148222A1 (en) Real-time mobile device capture and generation of art-styled ar/vr content
IL271519B2 (en) A method and system for performing simultaneous localization and mapping using complex image transformation
US20220327769A1 (en) Neural light transport
CN112884682A (zh) 一种基于匹配与融合的立体图像颜色校正方法及系统
JP7444179B2 (ja) 画像処理システム、画像処理方法および画像処理プログラム
JP7452698B2 (ja) 画像間の空間的関係をラベリングする強化学習モデル
US20230419600A1 (en) Volumetric performance capture with neural rendering
CN116157805A (zh) 利用神经嵌入的相机图像或视频处理流水线
CN109978928B (zh) 一种基于加权投票的双目视觉立体匹配方法及其系统
Orozco et al. HDR multiview image sequence generation: Toward 3D HDR video
JP7291389B2 (ja) 対象識別方法、情報処理装置、情報処理プログラム、および照明装置
JP2023003763A (ja) 学習装置、画像処理装置、学習処理方法、及びプログラム
JP2018081378A (ja) 画像処理装置、撮像装置、画像処理方法および画像処理プログラム
US20240046434A1 (en) Image processing method and image processing apparatus performing the same
Aydin RAW Bayer Domain Image Alignment
CN118230109A (zh) 基于u-net网络的多聚焦监控图像融合方法
Nazzar Automated detection of defects in 3D movies

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231207

R150 Certificate of patent or registration of utility model

Ref document number: 7401663

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150