JP2023525702A - 機械学習に基づく画像調整 - Google Patents

機械学習に基づく画像調整 Download PDF

Info

Publication number
JP2023525702A
JP2023525702A JP2022566701A JP2022566701A JP2023525702A JP 2023525702 A JP2023525702 A JP 2023525702A JP 2022566701 A JP2022566701 A JP 2022566701A JP 2022566701 A JP2022566701 A JP 2022566701A JP 2023525702 A JP2023525702 A JP 2023525702A
Authority
JP
Japan
Prior art keywords
image
map
image data
maps
input
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.)
Pending
Application number
JP2022566701A
Other languages
English (en)
Other versions
JPWO2021231776A5 (ja
Inventor
シュシル・ダンギ
ハウ・ファン
ヴェンカタ・ラヴィ・キラン・ダヤナ
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2023525702A publication Critical patent/JP2023525702A/ja
Publication of JPWO2021231776A5 publication Critical patent/JPWO2021231776A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • 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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals
    • H04N23/88Camera processing pipelines; Components thereof for processing colour signals for colour balance, e.g. white-balance circuits or colour temperature control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/60Noise processing, e.g. detecting, correcting, reducing or removing noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/643Hue control means, e.g. flesh tone control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/646Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/68Circuits for processing colour signals for controlling the amplitude of colour signals, e.g. automatic chroma control circuits
    • 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/10004Still image; Photographic image
    • 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/10024Color image
    • 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]
    • 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/20172Image enhancement details
    • G06T2207/20182Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals

Landscapes

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

Abstract

撮像システムは、たとえばイメージセンサから、画像データを取得することができる。撮像システムは、機械学習システムへの入力データとして画像データを供給することができ、機械学習システムは、画像データに基づいて1つまたは複数のマップを生成することができる。各マップは、画像データの各画素にある画像処理機能が適用される際に用いられるべき強さを特定することができる。ノイズ低減、鮮明化、または色の飽和などの異なる画像処理機能に対して、異なるマップが生成されてもよい。撮像システムは、たとえば1つまたは複数のマップの各々に従って1つまたは複数の画像処理機能の各々を適用することによって、画像データおよび1つまたは複数のマップに基づいて修正された画像を生成することができる。撮像システムは、画像データおよび1つまたは複数のマップを第2の機械学習システムに供給して、修正された画像を生成することができる。

Description

本開示は、全般に画像処理に関し、より具体的には機械学習に基づく画像調整を実行するためのシステムおよび技法に関する。
カメラは、イメージセンサを使用して、光を受け取り静止画像またはビデオフレームなどの画像フレームを取り込むデバイスである。カメラは、1つまたは複数の画像フレームを受け取り1つまたは複数の画像フレームを処理することができる、イメージシグナルプロセッサ(ISP)などのプロセッサを含むことがある。たとえば、カメラセンサによって取り込まれる生の画像フレームは、最終的な画像を生成するためにISPによって処理されてもよい。カメラは、画像の外観を変えるために、種々の画像キャプチャおよび画像処理の設定で構成されてもよい。ISO、露出時間、開口サイズ、f/stop、シャッタースピード、焦点、およびゲインなどの一部のカメラ設定は、写真の撮影の前またはその間に決定されて適用される。コントラスト、明るさ、飽和度、シャープネス、レベル、曲線、または色の変更などの他のカメラ設定は、写真の後処理を構成することができる。
従来のイメージシグナルプロセッサ(ISP)は、画像に基づく問題空間の様々な区分に対処する別々の個別のブロックを有する。たとえば、典型的なISPは、生のカメラセンサデータに特定の演算を各々適用して最終的な出力画像を生み出す、個別の機能ブロックを有する。そのような機能ブロックには、多くの画像処理機能の中でもとりわけ、モザイク除去、ノイズ低減(ノイズ除去)、色処理、トーンマッピングのためのブロックがあってもよい。これらの機能ブロックの各々は、多数の手動で調節されるパラメータを含み、各顧客の調節の好みに従って再調節されなければならない多数の手動で調節されるパラメータ(たとえば、10000個以上の)のあるISPをもたらす。そのようなパラメータの手動調節は、非常に時間がかかり高価であるので、一般的に一度だけ実行される。一度調節されると、従来のISPは一般に、あらゆる画像に対して同じパラメータを使用する。
いくつかの例では、1つまたは複数の機械学習システムを使用して、機械学習に基づく画像調整を実行するための、システムおよび技法が説明される。撮像システムは、たとえばイメージセンサから、画像データを取得することができる。撮像システムは、機械学習システムへの入力データとして画像データを供給することができ、機械学習システムは、画像データに基づいて1つまたは複数のマップを生成することができる。各マップは、画像データの各画素にある画像処理機能が適用される際に用いられるべき強さを特定することができる。ノイズ低減、鮮明化、または色の飽和などの異なる画像処理機能に対して、異なるマップが生成されてもよい。撮像システムは、たとえば1つまたは複数のマップの各々に従って1つまたは複数の画像処理機能の各々を適用することによって、画像データおよび1つまたは複数のマップに基づいて修正された画像を生成することができる。撮像システムは、画像データおよび1つまたは複数のマップを第2の機械学習システムに供給して、修正された画像を生成することができる。
一例では、画像処理のための装置が提供される。装置は、メモリと、メモリに結合される1つまたは複数のプロセッサ(たとえば、回路で実装される)とを含む。1つまたは複数のプロセッサは、画像データを取得すること、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用して、1つまたは複数のマップを生成することであって、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連する、生成することと、画像データおよび1つまたは複数のマップに基づいて画像を生成することであって、画像が1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む、生成することとを行うように構成され、行うことができる。
別の例では、画像処理の方法が提供される。方法は、画像データを取得するステップと、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用して、1つまたは複数のマップを生成するステップであって、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連する、ステップと、画像データおよび1つまたは複数のマップに基づいて画像を生成するステップであって、画像が1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む、ステップとを含む。
別の例では、命令が記憶されている非一時的コンピュータ可読媒体が提供され、この命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、画像データを取得させ、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用して、1つまたは複数のマップを生成させ、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連し、画像データおよび1つまたは複数のマップに基づいて画像を生成させ、画像が1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む。
別の例では、画像処理のための装置が提供される。装置は、画像データを取得するための手段と、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用して、1つまたは複数のマップを生成するための手段であって、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連する、手段と、画像データおよび1つまたは複数のマップに基づいて画像を生成するための手段であって、画像が1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む、手段とを含む。
いくつかの態様では、1つまたは複数のマップのうちのあるマップは、複数の値を含み、画像処理機能に関連し、そのマップの複数の値の各値は、画像処理機能を画像データの対応する領域に適用する際に用いるべき強さを示す。いくつかの態様では、画像データの対応する領域は、画像の画素に対応する。
いくつかの態様では、1つまたは複数のマップは複数のマップを含み、複数のマップのうちの第1のマップは第1の画像処理機能に関連し、複数のマップのうちの第2のマップは第2の画像処理機能に関連する。いくつかの態様では、複数のマップの少なくとも1つに関連する1つまたは複数の画像処理機能は、ノイズ低減機能、シャープネス調整機能、ディテール調整機能、トーン調整機能、飽和度調整機能、および色相調整機能の少なくとも1つを含む。いくつかの態様では、第1のマップは第1の複数の値を含み、第1のマップの第1の複数の値の各値は、画像データの対応する領域に第1の画像処理機能を適用する際に用いるべき強さを示し、第2のマップは第2の複数の値を含み、第2のマップの第2の複数の値の各値は、画像データの対応する領域に第2の画像処理機能を適用する際に用いるべき強さを示す。
いくつかの態様では、画像データは画像に対応する輝度チャネルデータを含み、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用することは、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像に対応する輝度チャネルデータを使用することを含む。いくつかの態様では、画像データに基づいて画像を生成することは、画像に対応する輝度チャネルデータならびに色差データに基づいて画像を生成することを含む。
いくつかの態様では、1つまたは複数のトレーニングされたニューラルネットワークは、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用することに基づいて1つまたは複数のアフィン係数を出力し、1つまたは複数のマップを生成することは、少なくとも、1つまたは複数のアフィン係数を使用して画像データを変換することによって、第1のマップを生成することを含む。いくつかの態様では、画像データは画像に対応する輝度チャネルデータを含み、1つまたは複数のアフィン係数を使用して画像データを変換することは、1つまたは複数のアフィン係数を使用して輝度チャネルデータを変換することを含む。いくつかの態様では、1つまたは複数のアフィン係数は乗数を含み、1つまたは複数のアフィン係数を使用して画像データを変換することは、画像データの少なくともサブセットの輝度値を乗数によって乗算することを含む。いくつかの態様では、1つまたは複数のアフィン係数はオフセットを含み、1つまたは複数のアフィン係数を使用して画像データを変換することは、画像データの少なくともサブセットの輝度値をオフセットによってオフセットすることを含む。いくつかの態様では、1つまたは複数のトレーニングされたニューラルネットワークは、第1のマップにおける1つまたは複数の勾配を画像データにおける1つまたは複数の勾配と整合させる局所線形性の制約に基づいて、1つまたは複数のアフィン係数を出力する。
いくつかの態様では、画像データおよび1つまたは複数のマップに基づいて画像を生成することは、それらの1つまたは複数のトレーニングされたニューラルネットワークとは別個の1つまたは複数のトレーニングされたニューラルネットワークの第2のセットへの入力として、画像データおよび1つまたは複数のマップを使用することを含む。いくつかの態様では、画像データおよび1つまたは複数のマップに基づいて画像を生成することは、1つまたは複数のトレーニングされたニューラルネットワークの第2のセットを使用して画像データのモザイクを除去することを含む。
いくつかの態様では、1つまたは複数のマップの各マップは、画像データにおいて描写される物体の様々なタイプに基づいて空間的に変化させられる。いくつかの態様では、画像データは、画像データの複数の画素の各画素に対する複数の色成分を有する入力画像を含む。いくつかの態様では、画像データは、1つまたは複数のイメージセンサからの生の画像データを含み、生の画像データは、画像データの複数の画素の各画素に対する少なくとも1つの色成分を含む。
いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに、画像データを取り込むイメージセンサを備え、画像データを取得することは、イメージセンサから画像データを取得することを含む。いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに表示画面を備え、1つまたは複数のプロセッサは、表示画面に画像を表示するように構成される。いくつかの態様では、上で説明された方法、装置、およびコンピュータ可読媒体はさらに通信トランシーバを備え、1つまたは複数のプロセッサは、通信トランシーバを使用して受信者デバイスに画像を送信するように構成される。
いくつかの態様では、装置は、カメラ、モバイルデバイス(たとえば、携帯電話またはいわゆる「スマートフォン」または他のモバイルデバイス)、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、または混合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、または他のデバイスを備える。いくつかの態様では、装置は、1つまたは複数の画像を取り込むためのカメラまたは複数のカメラを含む。いくつかの態様では、装置はさらに、1つまたは複数の画像、通知、および/または他の表示可能なデータを表示するためのディスプレイを含む。
本概要は、特許請求される主題の主要または不可欠な特徴を特定するものではなく、特許請求される主題の範囲を決定するために単独で使用されるものでもない。主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分への参照によって理解されるべきである。
上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照するとより明らかになるだろう。
本出願の例示的な実施形態が、以下の図面を参照して以下で詳細に説明される。
いくつかの例による、画像キャプチャおよび処理システムの例示的なアーキテクチャを示すブロック図である。 いくつかの例による、画像処理機械学習(ML)システムを含むシステムの例を示すブロック図である。 いくつかの例による、P0からP63と標識される複数の画素を含む入力画像の例を示す概念図である。 いくつかの例による、空間チューニングマップの例を示す概念図である。 いくつかの例による、入力画像におけるノイズ低減の強さを調整して修正された画像を生成するために適用される入力ノイズマップの例を示す概念図である。 いくつかの例による、例示的な画像に対してシャープネス調整画像処理機能を異なる強さで適用することの効果の例を示す概念図である。 いくつかの例による、入力画像における鮮明化の強さを調整して修正された画像を生成するために適用される入力シャープネスマップの例を示す概念図である。 いくつかの例による、ガンマカーブの例と、トーンマップにおける異なる値が、例示的な画像に適用されるトーン調整の異なる強さに変換されることの効果の様々な例とを示す概念図である。 いくつかの例による、修正された画像を生成するために入力画像におけるトーン調整の強さに適用される入力トーンマップの例を示す概念図である。 いくつかの例による、輝度-色差(YUV)色空間における飽和度レベルを示す概念図である。 いくつかの例による、色飽和度を調整するための異なるアルファ(α)値を使用して各々処理される例示的な画像の処理される変形を示す概念図である。 いくつかの例による、修正された画像を生成するために入力画像における飽和度調整の強さと向きに適用される入力飽和度マップの例を示す概念図である。 いくつかの例による、色相、飽和度、値(HSV)色空間を示す概念図である。 いくつかの例による、輝度-色差(YUV)色空間における色相ベクトルの修正を示す概念図である。 いくつかの例による、修正された画像を生成するために入力画像における色相調整の強さに適用される入力色相マップの例を示す概念図である。 いくつかの例による、入力画像および複数の空間的に変化するチューニングマップを受け取る画像処理システムを含むシステムの例を示す概念図である。 いくつかの例による、入力画像および複数の空間的に変化するチューニングマップを受け取る画像処理システム、ならびに、入力画像を受け取り複数の空間的に変化するチューニングマップを生成する自動調整機械学習(ML)システムを含む、システムの例を示す概念図である。 いくつかの例による、入力画像を受け取り複数の空間的に変化するチューニングマップを生成する自動調整機械学習(ML)システムを含むシステムの例を示す概念図である。 いくつかの例による、入力画像および複数の空間的に変化するチューニングマップを受け取る画像処理システム、ならびに、入力画像のダウンスケーリングされた変形を受け取り複数の空間的に変化するチューニングマップへとアップスケーリングされる小さな空間的に変化するチューニングマップを生成する自動調整機械学習(ML)システムを含む、システムの例を示す概念図である。 いくつかの例による、画像処理システムおよび/または自動調整機械学習(ML)システムによって使用されてもよいニューラルネットワークの例を示すブロック図である。 いくつかの例による、画像処理システム(たとえば、画像処理MLシステム)のトレーニングの例を示すブロック図である。 いくつかの例による、自動調整機械学習(ML)システムのトレーニングの例を示すブロック図である。 いくつかの例による、局所線形性の制約に従って輝度チャネルデータを修正するアフィン係数を生成することによって、輝度チャネルデータから空間的に変化するチューニングマップを生成する、自動調整機械学習(ML)システムを含むシステムの例を示すブロック図である。 いくつかの例による、自動調整MLシステムの詳細の例を示すブロック図である。 いくつかの例による、自動調整MLシステムのローカルニューラルネットワークのニューラルネットワークアーキテクチャの例を示すブロック図である。 いくつかの例による、自動調整MLシステムのグローバルニューラルネットワークのニューラルネットワークアーキテクチャの例を示すブロック図である。 いくつかの例による、自動調整MLシステムのニューラルネットワークアーキテクチャの例を示すブロック図である。 いくつかの例による、自動調整MLシステムのニューラルネットワークアーキテクチャの別の例を示すブロック図である。 いくつかの例による、spatial attentionエンジンのニューラルネットワークアーキテクチャの例を示すブロック図である。 いくつかの例による、channel attentionエンジンのニューラルネットワークアーキテクチャの例を示すブロック図である。 いくつかの例による、あらかじめ調節されたイメージシグナルプロセッサ(ISP)の例を示すブロック図である。 いくつかの例による、機械学習(ML)イメージシグナルプロセッサ(ISP)の例を示すブロック図である。 いくつかの例による、機械学習(ML)イメージシグナルプロセッサ(ISP)のニューラルネットワークアーキテクチャの例を示すブロック図である。 いくつかの例による、修正された画像を生成するために例示的な入力画像に適用される第1のトーン調整の強さの例を示す概念図である。 いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第2のトーン調整の強さの例を示す概念図である。 いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第1のディテール調整の強さの例を示す概念図である。 いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第2のディテール調整の強さの例を示す概念図である。 いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第1の色飽和度調整の強さの例を示す概念図である。 いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第2の色飽和度調整の強さの例を示す概念図である。 いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第3の色飽和度調整の強さの例を示す概念図である。 いくつかの例による、機械学習(ML)イメージシグナルプロセッサ(ISP)がML ISPを調節するために使用される様々なチューニングパラメータを入力として受け取ることの例を示すブロック図である。 いくつかの例による、機械学習(ML)イメージシグナルプロセッサ(ISP)に提供されてもよい特定のチューニングパラメータ値の例を示すブロック図である。 いくつかの例による、機械学習(ML)イメージシグナルプロセッサ(ISP)に提供されてもよい特定のチューニングパラメータ値の追加の例を示すブロック図である。 いくつかの例による、機械学習(ML)イメージシグナルプロセッサ(ISP)のトレーニングの間に使用されてもよい目的関数および様々な損失の例を示すブロック図である。 いくつかの例による、第1の画像位置において重複しない出力パッチをもたらすパッチごとのモデル推測の例を示す概念図である。 いくつかの例による、第2の画像位置において図32のパッチごとのモデル推測の例を示す概念図である。 いくつかの例による、第3の画像位置において図32のパッチごとのモデル推測の例を示す概念図である。 いくつかの例による、第4の画像位置において図32のパッチごとのモデル推測の例を示す概念図である。 いくつかの例による、画像レベルで適用される空間的に固定されたトーンマップの例を示す概念図である。 いくつかの例による、飽和度調整の強さが空間的に変化する出力画像を生成するように入力画像データを処理するための、空間的に変化するマップの例示的な適用を示す概念図である。 いくつかの例による、トーン調整の強さおよび空間的に変化するディテール調整の強さが空間的に変化する出力画像を生成するように入力画像データを処理するための、空間的に変化するマップの例示的な適用を示す概念図である。 いくつかの例による、入力画像を調整するために1つまたは複数のチューニングマップを使用して画像処理システムによって生成される自動的に調整される画像を示す概念図である。 いくつかの例による、自動調整機械学習(ML)システムを使用して生成される1つまたは複数の空間的に変化するチューニングマップを使用して画像処理システムによって生成される出力画像を示す概念図である。 いくつかの例による、図40Aに示される入力画像から図40Aに示される出力画像を生成するために使用されてもよい空間的に変化するチューニングマップの例を示す概念図である。 いくつかの例による、自動調整機械学習(ML)システムを使用して生成される1つまたは複数の空間的に変化するチューニングマップを使用して画像処理システムによって生成される出力画像を示す概念図である。 いくつかの例による、図41Aに示される入力画像から図41Aに示される出力画像を生成するために使用されてもよい空間的に変化するチューニングマップの例を示す概念図である。 いくつかの例による、画像データを処理するためのプロセスの例を示す流れ図である。 いくつかの例による、画像データを処理するためのプロセスの例を示す流れ図である。 本明細書において説明されるいくつかの態様を実装するためのコンピューティングシステムの例を示す図である。
本開示のいくつかの態様および実施形態が、以下で提供される。当業者には明らかであるように、これらの態様および実施形態のうちのいくつかは独立に適用されてもよく、それらのうちのいくつかは組み合わせて適用されてもよい。以下の説明では、説明のために、本出願の実施形態の完全な理解をもたらすように具体的な詳細が説明される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実践されてもよいことは明らかであろう。図および説明は限定的であることを意図しない。
以下の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用可能性、または構成を限定することを意図しない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実施することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載されたような本出願の趣旨および範囲から逸脱することなく、様々な変更を要素の機能および構成に加えることが可能であることを理解されたい。
カメラは、イメージセンサを使用して、光を受け取り静止画像またはビデオフレームなどの画像フレームを取り込むデバイスである。「画像」、「画像フレーム」、および「フレーム」という用語は、本明細書では交換可能に使用される。カメラは、種々の画像キャプチャおよび画像処理の設定で構成されてもよい。異なる設定は、外観の異なる画像をもたらす。ISO、露出時間、開口サイズ、f/stop、シャッタースピード、焦点、およびゲインなどの一部のカメラ設定は、1つまたは複数の画像フレームの取り込みの前またはその間に決定されて適用される。たとえば、設定またはパラメータは、1つまたは複数の画像フレームを取り込むためのイメージセンサに適用されてもよい。コントラスト、明るさ、飽和度、シャープネス、レベル、曲線、または色の変更などの他のカメラ設定は、1つまたは複数の画像フレームの後処理を構成することができる。たとえば、設定またはパラメータは、イメージセンサによって取り込まれた1つまたは複数の画像フレームを処理するためのプロセッサ(たとえば、イメージシグナルプロセッサまたはISP)に適用されてもよい。
カメラは、イメージセンサから1つまたは複数の画像フレームを受け取り、1つまたは複数の画像フレームを処理することができる、ISPなどのプロセッサを含んでもよい。たとえば、カメラセンサによって取り込まれる生の画像フレームは、最終的な画像を生成するためにISPによって処理されてもよい。いくつかの例では、ISPは、とりわけモザイク除去、ゲイン調整、ホワイトバランス調整、カラーバランスまたは色補正、ガンマ圧縮、トーンマッピングまたは調整、ノイズ除去またはノイズフィルタリング、エッジ強調、コントラスト調整、強度調整(暗くするまたは明るくするなど)などの取り込まれた画像フレームに適用される複数のフィルタまたは処理ブロックを使用して、画像フレームを処理することができる。いくつかの例では、ISPは、画像フレームを処理し、処理された画像フレームを出力することができる、機械学習システム(たとえば、1つまたは複数のトレーニングされたニューラルネットワーク、1つまたは複数のトレーニングされた機械学習モデル、1つまたは複数の人工知能アルゴリズム、および/または1つまたは複数の他の機械学習構成要素)を含んでもよい。
1つまたは複数の機械学習システムを使用して、機械学習に基づく自動画像調整を実行するための、システム、装置、プロセス(方法とも呼ばれる)、およびコンピュータ可読媒体(「システムおよび技法」と本明細書で総称される)が説明される。撮像システムは、たとえばイメージセンサから、画像データを取得することができる。撮像システムは、機械学習システムへの入力データとして画像データを供給することができる。機械学習システムは、画像データに基づいて1つまたは複数のマップを生成することができる。1つまたは複数のマップの各マップは、画像データの各画素にある画像処理機能が適用される際に用いられるべき強さを特定することができる。ノイズ低減、ノイズ追加、鮮明化、不鮮明化、ディテール強調、ディテール低減、トーン調整、色不飽和化、色飽和度向上、色相調整、またはこれらの組合せなどの異なる画像処理機能に対して異なるマップが生成されてもよい。各マップにおける画像処理機能の適用のために画像の異なる画素が異なる強さに対応するように、1つまたは複数のマップが空間的に変化してもよい。撮像システムは、たとえば1つまたは複数のマップの各々に従って1つまたは複数の画像処理機能の各々を適用することによって、画像データおよび1つまたは複数のマップに基づいて修正された画像を生成することができる。いくつかの例では、撮像システムは、画像データおよび1つまたは複数のマップを第2の機械学習システムに供給して、修正された画像を生成することができる。第2の機械学習システムは、機械学習システムとは別個であってもよい。
いくつかのカメラシステムでは、ホストプロセッサ(HP)(場合によってはアプリケーションプロセッサ(AP)とも呼ばれる)は、新しいパラメータ設定を用いてイメージセンサを動的に構成するために使用される。HPは、画像データが正しく処理されるように、入力イメージセンサフレームの厳密な設定と一致するように、ISPパイプラインのパラメータ設定を動的に構成するために使用されてもよい。いくつかの例では、HPは、1つまたは複数のマップに基づいてパラメータ設定を動的に構成するために使用されてもよい。たとえば、パラメータ設定は、マップにおける値に基づいて決定されてもよい。
マップを生成し、画像処理のためにマップを使用することは、画像処理システムに様々な技術的な利点を提供することができる。空間的に変化する画像処理マップは、撮像システムが、画像の異なる領域において異なる強さで画像処理機能を適用することを可能にできる。たとえば、空を描写する画像の領域は、草を描写する同じ画像の別の領域とは、1つまたは複数の画像処理機能に関して異なるように処理されてもよい。複数のマップを並列に生成することができ、画像処理の効率を上げる。
いくつかの例では、機械学習システムは、乗数およびオフセットなどの1つまたは複数のアフィン係数を生成することができ、撮像システムはそれらのアフィン係数を使用して、画像データの成分(たとえば、画像データの輝度チャネル)を修正して各マップを生成することができる。局所線形性の制約により、マップにおける1つまたは複数の勾配を画像データにおける1つまたは複数の勾配と確実に整合することができ、これにより、画像処理機能の適用の際にハロー効果を減らすことができる。マップを生成するためにアフィン係数および/または局所線形性の制約を使用すると、たとえば画像データとマップとのより優れた整合、および描写される物体の境界におけるハロー効果の低減により、マップを生成するためにアフィン係数および/または局所線形性の制約を使用しないシステムよりも、高品質な空間的に変化する画像修正を生み出すことができる。
図1は、画像キャプチャおよび処理システム100のアーキテクチャを示すブロック図である。画像キャプチャおよび処理システム100は、シーンの画像(たとえば、シーン110の画像)を取り込んで処理するために使用される様々な構成要素を含む。画像キャプチャおよび処理システム100は、スタンドアロン画像(または写真)を取り込むことができ、および/または特定の順序で複数の画像(またはビデオフレーム)を含むビデオを取り込むことができる。システム100のレンズ115は、シーン110に面し、シーン110から光を受け取る。レンズ115は、イメージセンサ130に向かって光を曲げる。レンズ115によって受け取られる光は、1つまたは複数の制御機構120によって制御される開口を通り、イメージセンサ130によって受け取られる。
1つまたは複数の制御機構120は、イメージセンサ130からの情報に基づいて、および/またはイメージプロセッサ150からの情報に基づいて、露出、焦点、および/またはズームを制御してもよい。1つまたは複数の制御機構120は、複数の機構および構成要素を含んでもよい。たとえば、制御機構120は、1つまたは複数の露出制御機構125A、1つまたは複数の焦点制御機構125B、および/または1つまたは複数のズーム制御機構125Cを含んでもよい。1つまたは複数の制御機構120はまた、アナログゲイン、フラッシュ、HDR、被写界深度、および/または他の画像キャプチャの特性などの図示されるもの以外の追加の制御機構を含んでもよい。
制御機構120の焦点制御機構125Bは、焦点設定を取得することができる。いくつかの例では、焦点制御機構125Bは、メモリレジスタに焦点設定を記憶する。焦点設定に基づいて、焦点制御機構125Bは、イメージセンサ130の位置に対するレンズ115の位置を調整することができる。たとえば、焦点設定に基づいて、焦点制御機構125Bは、モーターまたはサーボを作動させることによって、イメージセンサ130のより近くに、またはイメージセンサ130からより遠くにレンズ115を動かして、それにより焦点を調整することができる。いくつかの場合、イメージセンサ130の各フォトダイオードの上部にある1つまたは複数のマイクロレンズなどの追加のレンズがシステム100に含まれてもよく、それらは各々、レンズ115から受け取られた光を、フォトダイオードに光が到達する前に対応するフォトダイオードに向かって曲げる。焦点設定は、コントラスト検出オートフォーカス(CDAF)、位相検出オートフォーカス(PDAF)、またはこれらの何らかの組合せを介して決定されてもよい。焦点設定は、制御機構120、イメージセンサ130、および/またはイメージプロセッサ150を使用して決定されてもよい。焦点設定は、画像キャプチャ設定および/または画像処理設定と呼ばれてもよい。
制御機構120の露出制御機構125Aは、露出設定を取得することができる。いくつかの場合、露出制御機構125Aは、メモリレジスタに露出設定を記憶する。この露出設定に基づいて、露出制御機構125Aは、開口のサイズ(たとえば、開口サイズまたはf/stop)、開口が開いている時間の長さ(たとえば、露出時間またはシャッタースピード)、イメージセンサ130の感度(たとえば、ISO速度またはフィルムスピード)、イメージセンサ130によって適用されるアナログゲイン、またはこれらの任意の組合せを制御することができる。露出設定は、画像キャプチャ設定および/または画像処理設定と呼ばれてもよい。
制御機構120のズーム制御機構125Cは、ズーム設定を取得することができる。いくつかの例では、ズーム制御機構125Cは、メモリレジスタにズーム設定を記憶する。ズーム設定に基づいて、ズーム制御機構125Cは、レンズ115および1つまたは複数の追加のレンズを含む、レンズ要素のアセンブリ(レンズアセンブリ)の焦点距離を制御することができる。たとえば、ズーム制御機構125Cは、1つまたは複数のモーターまたはサーボを作動させて互いに対してレンズの1つまたは複数を動かすことによって、レンズアセンブリの焦点距離を制御することができる。ズーム設定は、画像キャプチャ設定および/または画像処理設定と呼ばれてもよい。いくつかの例では、レンズアセンブリは、同焦点ズームレンズまたは可変焦点ズームレンズを含んでもよい。いくつかの例では、レンズアセンブリは、シーン110から光を最初に受け取る集束レンズ(場合によってはレンズ115であってもよい)を含んでもよく、光は次いで、光がイメージセンサ130に到達する前に、集束レンズ(たとえば、レンズ115)とイメージセンサ130との間の無焦点ズームシステムを通過する。いくつかの場合、無焦点ズームシステムは、焦点距離が等しい、または類似している(たとえば、閾値の差の範囲内にある)2つの正(たとえば、収束、凸)レンズと、それらの間の負(たとえば、発散、凹)レンズとを含んでもよい。いくつかの場合、ズーム制御機構125Cは、負レンズ、および正レンズの一方または両方などの無焦点ズームシステムの中のレンズの1つまたは複数を動かす。
イメージセンサ130は、フォトダイオードまたは他の感光素子の1つまたは複数のアレイを含む。各フォトダイオードは、イメージセンサ130によって生み出される画像の中の特定の画素に最終的には対応する光の量を測定する。いくつかの場合、異なるフォトダイオードは、異なるカラーフィルタによって覆われてもよく、したがって、フォトダイオードを覆うフィルタの色と一致する光を測定してもよい。たとえば、ベイヤーカラーフィルタは、赤のカラーフィルタ、青のカラーフィルタ、および緑のカラーフィルタを含み、画像の各画素は、赤のカラーフィルタで覆われる少なくとも1つのフォトダイオードからの赤い光のデータ、青のカラーフィルタで覆われる少なくとも1つのフォトダイオードからの青い光のデータ、および緑のカラーフィルタで覆われる少なくとも1つのフォトダイオードからの緑色の光のデータに基づいて生成される。他のタイプのカラーフィルタは、赤、青、および/もしくは緑のカラーフィルタの代わりに、またはそれらに加えて、黄、赤紫、および/または青緑(「エメラルド」とも呼ばれる)のカラーフィルタを使用してもよい。一部のイメージセンサは、カラーフィルタを完全に欠いていてもよく、代わりに、画素アレイ全体で(場合によっては垂直方向に積み上げられた)異なるフォトダイオードを使用してもよい。画素アレイ全体での異なるフォトダイオードは、異なるスペクトル感度曲線を有してもよいので、異なる光の波長に対応する。モノクロイメージセンサはまた、カラーフィルタを欠いていてもよく、したがって色深度を欠いていてもよい。
いくつかの場合、イメージセンサ130は、代替または追加として、ある時間において、および/またはある角度から、いくつかのフォトダイオードもしくはいくつかのフォトダイオードの一部に光が達するのを妨げる不透明なおよび/または反射性のマスクを含んでもよく、これは位相検出オートフォーカス(PDAF)のために使用されてもよい。イメージセンサ130はまた、フォトダイオードおよび/またはアナログデジタルコンバータ(ADC)によって出力されるアナログ信号を増幅し、フォトダイオードのアナログ信号出力(および/またはアナログゲイン増幅器によって増幅される)をデジタル信号へと変換するための、アナログゲイン増幅器を含んでもよい。いくつかの場合、代わりに、または加えて、制御機構120の1つまたは複数に関して論じられるいくつかの構成要素または機能が、イメージセンサ130に含まれてもよい。イメージセンサ130は、電荷結合デバイス(CCD)センサ、電子増倍CCD(EMCCD)センサ、アクティブピクセルセンサ(APS)、相補型金属酸化膜半導体(CMOS)、N型金属酸化膜半導体(NMOS)、ハイブリッドCCD/CMOSセンサ(たとえば、sCMOS)、またはこれらの何らかの他の組合せであってもよい。
イメージプロセッサ150は、1つまたは複数のイメージシグナルプロセッサ(ISP)(ISP154を含む)、1つまたは複数のホストプロセッサ(ホストプロセッサ152を含む)、および/またはコンピューティングデバイス5000に関して論じられる任意の他のタイプのプロセッサ5010の1つまたは複数などの1つまたは複数のプロセッサを含んでもよい。ホストプロセッサ152は、デジタルシグナルプロセッサ(DSP)および/または他のタイプのプロセッサであってもよい。いくつかの実装形態では、イメージプロセッサ150は、ホストプロセッサ152およびISP154を含む単一の集積回路またはチップ(システムオンチップまたはSoCと呼ばれる)である。いくつかの場合、チップはまた、1つまたは複数の入力/出力ポート(たとえば、入力/出力(I/O)ポート156)、中央処理装置(CPU)、グラフィクス処理装置(GPU)、ブロードバンドモデム(たとえば、3G、4GまたはLTE、5Gなど)、メモリ、接続構成要素(たとえば、Bluetooth(商標)、全地球測位システム(GPS)など)、これらの任意の組合せ、および/または他の構成要素を含んでもよい。I/Oポート156は、Inter-Integrated Circuit 2(I2C)インターフェース、Inter-Integrated Circuit 3(I3C)インターフェース、シリアルペリフェラルインターフェース(SPI)インターフェース、シリアル汎用入力/出力(GPIO)インターフェース、Mobile Industry Processor Interface (MIPI)(MIPI CSI-2など)、物理(PHY)層ポートまたはインターフェース、Advanced High-performance Bus (AHB)バス、これらの任意の組合せ、および/または他の入力/出力ポートなどの1つまたは複数のプロトコルまたは仕様に従った、任意の適切な入力/出力ポートまたはインターフェースを含んでもよい。1つの説明のための例では、ホストプロセッサ152は、I2Cポートを使用してイメージセンサ130と通信することができ、ISP154は、MIPIポートを使用してイメージセンサ130と通信することができる。
イメージプロセッサ150は、モザイク除去、色空間変換、画像フレームダウンサンプリング、画素補間、自動露出(AE)制御、自動ゲイン制御(AGC)、CDAF、PDAF、自動ホワイトバランス、HDR画像を形成するための画像フレームの統合、画像認識、物体認識、特徴認識、入力の受け取り、出力の管理、メモリの管理、またはこれらの何らかの組合せなどのいくつかのタスクを実行してもよい。イメージプロセッサ150は、ランダムアクセスメモリ(RAM)140/5020、読み取り専用メモリ(ROM)145/5025、キャッシュ、メモリユニット、別の記憶デバイス、またはこれらの何らかの組合せに、画像フレームおよび/または処理された画像を記憶してもよい。
様々な入力/出力(I/O)デバイス160は、イメージプロセッサ150に接続されてもよい。I/Oデバイス160は、表示画面、キーボード、キーパッド、タッチスクリーン、トラックパッド、タッチ感知表面、プリンタ、任意の他の出力デバイス5035、任意の他の入力デバイス5045、またはこれらの何らかの組合せを含んでもよい。いくつかの場合、I/Oデバイス160の物理キーボードもしくはキーパッドを通じて、またはI/Oデバイス160のタッチスクリーンの仮想キーボードもしくはキーパッドを通じて、キャプションが画像処理デバイス105Bに入力されてもよい。I/O160は、システム100と1つまたは複数の周辺デバイスとの間の有線接続を可能にする、1つまたは複数のポート、ジャック、または他のコネクタを含んでもよく、システム100は、それを通じて、1つまたは複数の周辺デバイスからデータを受け取り、および/またはデータを1つまたは複数の周辺デバイスに送信してもよい。I/O160は、システム100と1つまたは複数の周辺デバイスとの間のワイヤレス接続を可能にする、1つまたは複数のワイヤレストランシーバを含んでもよく、システム100は、それを通じて、1つまたは複数の周辺デバイスからデータを受け取り、および/またはデータを1つまたは複数の周辺デバイスに送信してもよい。周辺デバイスは、前に論じられたタイプのI/Oデバイス160のいずれかを含んでもよく、ポート、ジャック、ワイヤレストランシーバ、または他の有線および/もしくはワイヤレスコネクタに結合されると、それら自体がI/Oデバイス160であると見なされてもよい。
いくつかの場合、画像キャプチャおよび処理システム100は、単一のデバイスであってもよい。いくつかの場合、画像キャプチャおよび処理システム100は、画像キャプチャデバイス105A(たとえば、カメラ)および画像処理デバイス105B(たとえば、カメラに結合されるコンピューティングデバイス)を含む、2つ以上の別々のデバイスであってもよい。いくつかの実装形態では、画像キャプチャデバイス105Aおよび画像処理デバイス105Bは、たとえば1つまたは複数のワイヤ、ケーブル、もしくは他の電子的なコネクタを介して、および/または1つまたは複数のワイヤレストランシーバを介してワイヤレスに一緒に結合されてもよい。いくつかの実装形態では、画像キャプチャデバイス105Aおよび画像処理デバイス105Bは、互いに切り離されていてもよい。
図1に示されるように、垂直の破線は、図1の画像キャプチャおよび処理システム100を、画像キャプチャデバイス105Aおよび画像処理デバイス105Bをそれぞれ表す2つの部分へと分割する。画像キャプチャデバイス105Aは、レンズ115、制御機構120、およびイメージセンサ130を含む。画像処理デバイス105Bは、イメージプロセッサ150(ISP154およびホストプロセッサ152を含む)、RAM140、ROM145、およびI/O160を含む。いくつかの場合、ISP154および/またはホストプロセッサ152などのなどの画像キャプチャデバイス105Aに示されるいくつかの構成要素が、画像キャプチャデバイス105Aに含まれてもよい。
画像キャプチャおよび処理システム100は、モバイルもしくは固定の電話ハンドセット(たとえば、スマートフォン、携帯電話など)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、表示デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、インターネットプロトコル(IP)カメラ、または任意の他の好適な電子デバイスなどの電子デバイスを含んでもよい。いくつかの例では、画像キャプチャおよび処理システム100は、セルラーネットワーク通信、802.11 Wi-Fi通信、ワイヤレスローカルエリアネットワーク(WLAN)通信、またはこれらの何らかの組合せなどのワイヤレス通信のための1つまたは複数のワイヤレストランシーバを含んでもよい。いくつかの実装形態では、画像キャプチャデバイス105Aおよび画像処理デバイス105Bは、異なるデバイスであってもよい。たとえば、画像キャプチャデバイス105Aはカメラデバイスを含むことができ、画像処理デバイス105Bは、モバイルハンドセット、デスクトップコンピュータ、または他のコンピューティングデバイスなどのコンピューティングデバイスを含むことができる。
画像キャプチャおよび処理システム100はいくつかの構成要素を含むものとして示されるが、画像キャプチャおよび処理システム100は図1に示されるものより多数の構成要素を含んでもよいことを、当業者は理解するだろう。画像キャプチャおよび処理システム100の構成要素は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアの1つまたは複数の組合せを含んでもよい。たとえば、いくつかの実装形態では、画像キャプチャおよび処理システム100の構成要素は、1つまたは複数のプログラム可能電子回路(たとえば、マイクロプロセッサ、GPU、DSP、CPU、および/または他の適切な電子回路)を含んでもよい、電子回路もしくは他の電子ハードウェアを含むことができ、および/もしくはそれらを使用して実装されることが可能であり、ならびに/または、本明細書において説明される様々な動作を実行するために、コンピュータソフトウェア、ファームウェア、もしくはこれらの任意の組合せを含むことができ、および/もしくはそれらを使用して実装されることが可能である。ソフトウェアおよび/またはファームウェアは、コンピュータ可読記憶媒体に記憶され、画像キャプチャおよび処理システム100を実装する電子デバイスの1つまたは複数のプロセッサによって実行可能である、1つまたは複数の命令を含んでもよい。
従来のカメラシステム(たとえば、イメージセンサおよびISP)は、パラメータを用いて調節され、調節されたパラメータに従って画像を処理する。ISPは通常、固定された調節方法を使用して、製造の間に調節される。カメラシステム(たとえば、イメージセンサおよびISP)はまた、通常はとりわけ光レベル、色温度、露出時間などのあらかじめ定められた条件に基づいて、グローバルな画像調整を実行する。通常のカメラシステムはまた、粗い精度のヒューリスティクスに基づく調節を使用して調節される(たとえば、ウィンドウに基づく局所トーンマッピング)。結果として、従来のカメラシステムは、画像に含まれる内容に基づいて画像を強調することが可能ではない。
機械学習に基づく画像調整を実行するための、システム、装置、プロセス、およびコンピュータ可読媒体が、本明細書において説明される。機械学習に基づく画像調整技法を、処理される画像(たとえば、ISPおよび/または画像後処理システムによって出力される)に適用することができ、および/またはイメージセンサからの生の画像データに適用することができる。機械学習に基づく画像調整技法は、画像に含まれるシーンの内容に基づいて、各画像に対する動的な調節(従来のカメラシステムの固定された調節ではなく)を提供することができる。機械学習に基づく画像調整技法はまた、ヒューリスティクスに基づく調節のみを提供することとは対照的に、追加のセマンティックコンテキストに基づく調整(たとえば、セグメンテーション情報)を組み込む能力を提供することができる。
いくつかの例では、機械学習に基づく画像調整技法を実行するために、1つまたは複数のチューニングマップも使用することができる。いくつかの例では、チューニングマップは入力画像と同じ分解能を有することができ、チューニングマップ内の各値は入力画像の中の画素に対応する。いくつかの例では、チューニングマップは、入力画像のダウンサンプリングされた変形に基づくことができ、したがって、入力画像より低い分解能を有することができ、チューニングマップ内の各値は、入力画像の中の1つより多くの画素に対応する(たとえば、入力画像のダウンサンプリングされた変形が入力画像の半分の長さおよび幅を有する場合、正方形または長方形の構造の中に4つ以上の隣接する画素がある)。チューニングマップは、空間チューニングマップまたは空間的に変化するチューニングマップとも呼ぶことができ、これは、チューニングマップの値がチューニングマップの中の各位置に対して空間的に変化できることを指している。いくつかの例では、チューニングマップ内の各値は、入力画像の所定のサブセットに対応してもよい。いくつかの例では、チューニングマップ内の各値は入力画像全体に対応することができ、この場合、チューニングマップは空間的に固定されたチューニングマップと呼ばれることがある。
チューニングマップは、各画像の画素レベルの調整を行う能力を画像処理機械学習システムに与え、グローバルな画像調整だけではなく高精度の画像の調整を可能にする。いくつかの例では、チューニングマップは、イメージプロセッサ150、ホストプロセッサ152、ISP154、またはこれらの組合せによって自動的に生成されてもよい。いくつかの例では、機械学習システムを使用すると、チューニングマップは自動的に生成されてもよい。いくつかの例では、機械学習システムを使用すると、チューニングマップには画素ごとの精度があってもよい。たとえば、画素レベルのチューニングマップを生成するために第1の機械学習システムを使用することができ、第2の機械学習システムは、入力画像および1つまたは複数のチューニングマップを処理して、修正された画像(調整された画像または処理された画像とも呼ばれる)を生成することができる。いくつかの例では、第1の機械学習システムは、イメージプロセッサ150、ホストプロセッサ152、ISP154、もしくはこれらの組合せによって少なくとも一部実行されてもよく、および/またはそれらとインターフェースしてもよい。いくつかの例では、第2の機械学習システムは、イメージプロセッサ150、ホストプロセッサ152、ISP154、もしくはこれらの組合せによって少なくとも一部実行されてもよく、および/またはそれらとインターフェースしてもよい。
図2は、画像処理機械学習(ML)システム210を含むシステムの例を示すブロック図である。画像処理MLシステム210は、1つまたは複数の入力画像および1つまたは複数の空間チューニングマップ201を入力として取得する。例示的な入力画像202が図2に示される。画像処理MLシステム210は、任意のタイプの画像データを処理することができる。たとえば、いくつかの例では、画像処理MLシステム210に提供される入力画像は、図1の画像キャプチャデバイス105Aのイメージセンサ130によって取り込まれた、ならびに/または、ISP(たとえば、図1のISP154)および/もしくはカメラシステムの任意の後処理構成要素によって処理された、画像を含んでもよい。画像処理MLシステム210は、1つまたは複数の畳み込みニューラルネットワーク(CNN)、1つまたは複数のCNN、1つまたは複数のトレーニングされたニューラルネットワーク(NN)、1つまたは複数のNN、1つまたは複数のトレーニングされたサポートベクターマシン(SVM)、1つまたは複数のSVM、1つまたは複数のトレーニングされたランダムフォレスト、1つまたは複数のランダムフォレスト、1つまたは複数のトレーニングされた決定木、1つまたは複数の決定木、1つまたは複数のトレーニングされた勾配ブースティングアルゴリズム、1つまたは複数の勾配ブースティングアルゴリズム、1つまたは複数のトレーニングされた回帰アルゴリズム、1つまたは複数の回帰アルゴリズム、またはこれらの組合せを使用して実装されてもよい。画像処理MLシステム210、および/または上で列挙された機械学習要素のいずれかは、教師あり学習(画像処理MLシステム210の一部であってもよい)、教師なし学習、強化学習、深層学習、またはこれらの組合せを使用してトレーニングされてもよい。
いくつかの例では、入力画像202は、画像データの各画素に対する複数の彩度成分および/または色成分(たとえば、赤(R)色成分またはサンプル、緑(G)色成分またはサンプル、および青(B)色成分またはサンプル)を含んでもよい。いくつかの場合、デバイスは複数のカメラを含むことができ、画像処理MLシステム210は、複数のカメラの1つまたは複数によって取得される画像を処理することができる。1つの説明のための例では、より広角の(たとえば、より視野(FOV)が広い)より大きな画像を取り込み、より多くの光を取り込み(様々な利点の中でもとりわけ、より高いシャープネスとクラリティをもたらす)、360度(たとえば、仮想現実)ビデオを生成し、および/またはシングルカメラデバイスによって達成されるものより向上した他の機能を実行するために、デュアルカメラ携帯電話、タブレット、または他のデバイスが使用されてもよい。
いくつかの例では、画像処理MLシステム210は、1つまたは複数のイメージセンサによって提供される生の画像データを処理することができる。たとえば、画像処理MLシステム210に提供される入力画像は、イメージセンサ(たとえば、図1のイメージセンサ130)によって生成される生の画像データを含んでもよい。いくつかの場合、イメージセンサは、生の画像データのフレームを取り込むことができるフォトダイオードのアレイを含んでもよい。各フォトダイオードは、画素位置を表すことができ、その画素位置に対する画素値を生成することができる。フォトダイオードからの生の画像データは、フレームの中の各画素位置に対する単一の明度またはグレースケール値を含んでもよい。たとえば、カラーフィルタアレイは、イメージセンサと統合されてもよく、または、モノクロ情報を明度に変換するためにイメージセンサ(フォトダイオードの上に置かれる)とともに使用されてもよい。カラーフィルタアレイの1つの説明のための例には、ベイヤーパターンカラーフィルタアレイ(またはベイヤーカラーフィルタアレイ)があり、イメージセンサが、各ピクセル位置に赤、緑、または青のいずれか1つのフィルタがあるベイヤーパターンを有する画素のフレームを取り込むことを可能にする。いくつかの場合、デバイスは複数のイメージセンサを含むことができ、この場合、画像処理MLシステム210は、複数のイメージセンサによって取得される生の画像データを処理することができる。たとえば、複数のカメラをもつデバイスは、複数のカメラを使用して画像データを取り込むことができ、画像処理MLシステム210は、複数のカメラからの生の画像データを処理することができる。
様々なタイプの空間チューニングマップが、画像処理MLシステム210への入力として提供されてもよい。空間チューニングマップの各タイプは、それぞれの画像処理機能に関連してもよい。空間チューニングマップは、たとえばノイズチューニングマップ、シャープネスチューニングマップ、トーンチューニングマップ、飽和度チューニングマップ、色相チューニングマップ、これらの任意の組合せ、および/または他の画像処理機能のための他のチューニングマップを含んでもよい。たとえば、ノイズチューニングマップは、ノイズオーグメンテーション(たとえば、ノイズ低減、ノイズ追加)が入力画像の異なる部分の場所(たとえば、座標)にマッピングされる入力画像の異なる部分(たとえば、異なる画素)に適用される際に用いられるべき強さに対応する値を含んでもよい。シャープネスチューニングマップは、シャープネスオーグメンテーション(たとえば、鮮明化)が入力画像の異なる部分の場所(たとえば、座標)にマッピングされる入力画像の異なる部分(たとえば、異なる画素)に適用される際に用いられるべき強さに対応する値を含んでもよい。トーンチューニングマップは、トーンオーグメンテーション(たとえば、トーンマッピング)が入力画像の異なる部分の場所(たとえば、座標)にマッピングされる入力画像の異なる部分(たとえば、異なる画素)に適用される際に用いられるべき強さに対応する値を含んでもよい。飽和度チューニングマップは、飽和度オーグメンテーション(たとえば、飽和度の向上または飽和度の低減)が入力画像の異なる部分の場所(たとえば、座標)にマッピングされる入力画像の異なる部分(たとえば、異なる画素)に適用される際に用いられるべき強さに対応する値を含んでもよい。色相チューニングマップは、色相オーグメンテーション(たとえば、色相のシフト)が入力画像の異なる部分の場所(たとえば、座標)にマッピングされる入力画像の異なる部分(たとえば、異なる画素)に適用される際に用いられるべき強さに対応する値を含んでもよい。
いくつかの例では、チューニングマップにおける値は、0という値から1という値にわたってもよい。この範囲は両端を含み、したがって0および/または1を可能な値として含んでもよい。この範囲は両端を含まず、したがって0および/または1を可能な値として含まなくてもよい。たとえば、チューニングマップの中の各位置は、0と1の間のあらゆる値を含んでもよい。いくつかの例では、チューニングマップの1つまたは複数は、0と1の間の値以外の値を含んでもよい。様々なチューニングマップが、以下でより詳しく説明される。入力飽和度マップ203が、空間チューニングマップの例として図2に示される。
本明細書の図面のすべてが白黒で示されているが、入力画像202は、前景に桃色の赤い花を描写し、背景の一部に緑色の葉があり、背景の別の部分に白い壁がある、色彩のある画像を表す。入力飽和度マップ203は、前景の桃色の赤い花を描写する入力画像202の中の画素のエリアに対応する0.5という値を含む。値が0.5であるこのエリアは、入力飽和度マップ203では灰色で示されている。入力飽和度マップ203における0.5という値は、そのエリアの飽和度が上昇も低下もせず同じままであるべきであることを示す。入力飽和度マップ203は、背景(緑色の葉と白い壁)を描写する入力画像202の中の画素のエリアに対応する0.0という値を含む。値が0.0であるこのエリアは、入力飽和度マップ203では黒で示されている。入力飽和度マップ203における0.0という値は、そのエリアが完全に不飽和化されるべきであることを示す。修正された画像216は、前景の花はまだ入力画像202と同じ程度に飽和している(まだ桃色であり赤い)が、背景(緑色の葉と白い壁の両方)は完全に不飽和化しており、したがってグレースケールで描写されるような、画像を表す。
各チューニングマップ(入力飽和度マップ203など)は、修正された画像(修正された画像216など)を生成するために処理されるように、画像処理MLシステム210への入力として提供される1つまたは複数の入力画像(入力画像202など)のサイズおよび/または解像度と、同じサイズおよび/または同じ解像度を有してもよい。各チューニングマップ(入力飽和度マップ203など)は、チューニングマップに基づいて生成される修正された画像(修正された画像216など)のサイズおよび/または解像度と同じサイズおよび/または同じ解像度を有してもよい。いくつかの例では、チューニングマップ(入力チューニングマップ203など)は、入力画像(入力画像202など)より小さくてもよく、または大きくてもよく、この場合、チューニングマップまたは入力画像のいずれか(または両方)が、修正された画像216が生成される前にダウンスケーリングもしくはアップスケーリングされ、および/またはアップサンプリングされてもよい。
いくつかの例では、チューニングマップ303は、グレースケール画像などの画像として記憶されてもよい。調整マップ303において、チューニングマップ303の画素における灰色の色合いが、その画素に対する値を示してもよい。説明のための例では、黒は0.0という値を表してもよく、中程度の灰色または中間の灰色は0.5という値を表すことができ、白は1.0という値を表してもよい。他の灰色の色合いは、上で説明されたものの間の値を表してもよい。たとえば、明るい灰色は、0.5と1.0の間の値(たとえば、0.6、0.7、0.8、0.9)を表すことができる。暗い灰色は、0.5と0.0の間の値(たとえば、0.1、0.2、0.3、0.4)を表すことができる。いくつかの例では、白が0.0という値を表し、黒が1.0という値を表すような、反対の方式を使用することができる。
図3Aは、いくつかの例による、P0からP63と標識される複数の画素を含む入力画像302の例を示す概念図である。入力画像は、幅が7ピクセルであり、高さが7ピクセルである。画素は、各行の中で左から右に、一番上の行から開始して一番下の行に向かって数え上げる方式で、P0からP63まで順番に番号を付けられる。
図3Bは、いくつかの例による、空間チューニングマップ303の例を示す概念図である。チューニングマップ303は、V0からV63まで標識された複数の値を含む。チューニングマップは、幅が7ピクセルであり、高さが7ピクセルである。画素は、各行の中で左から右に、一番上の行から開始して一番下の行に向かって数え上げる方式で、V0からV63まで順番に番号を付けられる。
チューニングマップ303内の各値は、入力画像302の中の画素に対応する。たとえば、チューニングマップ303の中の値V0は、入力画像302の中の画素P0に対応する。チューニングマップ303の中の値は、入力画像302の中の対応する画素を調整または修正するために使用される。いくつかの例では、調整マップ303の中の各値は、画像処理機能を画像データの対応する画素に適用する際に用いるべき強さおよび/または向きを示す。いくつかの例では、チューニングマップ303の中の各値は、対応する画素に適用すべき画像処理機能の量を示す。たとえば、チューニングマップ303の中のV0に対する第1の値(たとえば、0という値、1という値、または他の値)は、チューニングマップの画像処理機能が入力画像302の中の対応する画素P0に0という強さで適用されるべきである(まったく適用されない)ことを示すことができる。別の例では、チューニングマップ303の中のV15に対する第2の値(たとえば、0という値、1という値、または他の値)は、画像処理機能が入力画像302の中の対応する画素P15に最大の強さで適用される(画像処理機能の最大の量)ことを示す。異なるタイプのチューニングマップにおける値は、それぞれの画像処理機能の異なるレベルの適用可能性を示すことができる。1つの説明のための例では、チューニングマップ303は飽和度マップであってもよく、飽和度マップにおける0という値は、対応する画素が完全に不飽和化し、画素がグレースケールまたはモノクロになる(不飽和化または負の飽和の向きに最大の強さ)ことを示すことができ、飽和度マップにおける0.5という値は、対応する画素に飽和化または不飽和化の効果が適用されない(0という飽和化の強さ)を示すことができ、飽和度マップにおける1という値は、最大の飽和化(飽和化または正の飽和の向きに最大の強さ)を示すことができる。飽和度マップにおける0と1の間の値は、上で説明されたレベルの間の飽和度の様々な変化するレベルを示す。たとえば、0.2という値はわずかな不飽和化(不飽和化または負の飽和の向きに低い強さ)を表し、0.8という値はわずかな飽和度の向上(飽和化または正の飽和の向きに低い強さ)を表す。
画像処理MLシステム210は、1つまたは複数の入力画像および1つまたは複数の空間チューニングマップ201を処理して、修正された画像215を生成する。例示的な修正された画像216が図2に示される。修正された画像216は、入力画像202の修正されたバージョンである。上で論じられたように、飽和度マップ203は、入力画像202の前景に示される桃色の赤い花を描写する画素に対応する飽和度マップ203の中のエリアに対して、0.5という値を含む。飽和度マップ203は、画像202の前景の花を描写しない(そして代わりに背景を描写する)画像202の画素に対応する位置に対して、0という値を含む。飽和度マップ203における0という値は、それらの値に対応する画素が完全に不飽和化される(不飽和化または負の飽和の向きに最大の強さ)ことを示す。結果として、花を表現する画素を除く修正された画像215の中のすべての画素が、グレースケール(黒と白)で描写される。飽和度マップ203における0.5という値は、それらの値に対応する画素に飽和度の変化がないこと(0という飽和化の強さ)を示す。
画像処理MLシステム210は、1つまたは複数の入力画像および1つまたは複数の空間チューニングマップ201を処理して、修正された画像215を生成するようにトレーニングされる、1つまたは複数のニューラルネットワークを含んでもよい。1つの説明のための例では、画像処理MLシステム210をトレーニングするために、教師あり学習技法が使用されてもよい。たとえば、画像処理MLシステム210のニューラルネットワークのノードの重み(およびいくつかの場合には、バイアスなどの他のパラメータ)を調整するために、バックプロパゲーショントレーニングプロセスが使用されてもよい。バックプロパゲーションは、フォワードパス、損失関数、バックワードパス、および重み更新を含む。フォワードパス、損失関数、バックワードパス、およびパラメータ更新は、1回のトレーニングの反復に対して実行される。このプロセスは、ニューラルネットワークのパラメータの重みが正確に調節されるまで、トレーニングデータの各セットに対してある回数繰り返される。画像処理MLシステム210に関するさらなる詳細が本明細書において与えられる。
上で説明されたように、様々なタイプの空間チューニングマップが、画像処理MLシステム210による使用のために提供されてもよい。空間チューニングマップの一例は、入力画像の画素に適用すべきノイズ除去(ノイズ低減)の量を示すノイズマップである。
図4は、入力画像402におけるノイズ低減の強さを調整して修正された画像を生成するために適用される入力ノイズマップ404の例を示す概念図である。「滑らか」として括弧付きで標識されている入力画像402の左下の角の部分は、目に見えるノイズがほとんどまたはまったくない。入力画像402の残りの部分は、「ノイズが多い」として括弧付きで標識されており、(粗い外観とともに)目に見えるノイズを含む。
ノイズマップキー405が図4に示される。ノイズマップキー405は、ノイズマップ404における0という値が、ノイズ除去が適用されないことを示すことと、1という値が、最大のノイズ除去が適用されることを示すこととを示す。示されるように、入力ノイズマップ404は、ノイズがほとんどまたはまったくない入力画像402の左下の領域における画素(画像402の左下の領域における画素)の「滑らか」なエリアに対応するノイズマップ404の黒色のエリアに対して、0という値を含む。入力ノイズマップ404は、ノイズがある入力画像402の中の画素の「ノイズが多い」エリアに対応するノイズマップ404の中の残りの明るい灰色の色合いのエリアに対して、0.8という値を含む。画像処理MLシステム210は、入力画像402および入力ノイズマップ404を処理して、修正された画像415を生み出すことができる。示されるように、修正された画像415は、0.8という値を有するノイズマップ404の中の位置に対応する入力画像402の中の画素に対して、画像処理MLシステム210によって実行されるノイズ除去に基づいてノイズを含まない。
空間チューニングマップの別の例は、入力画像の画素に適用される鮮明化の量を示す鮮明化マップである。たとえば、不鮮明な画像は、画像の画素を鮮明化することによって、焦点を合わせることができる。
図5は、いくつかの例による、例示的な画像に対してシャープネス調整画像処理機能を異なる強さで適用することの効果の例を示す概念図である。いくつかの例では、シャープネスマップにおける0という値は、対応する出力画像を生成するために、入力画像の中の対応する画素に鮮明化が適用されないことを示し、シャープネスマップにおける1という値は、対応する出力画像を生成するために、入力画像の中の対応する画素に最大の鮮明化が適用されることを示す。シャープネス調整マップにおける値が0に設定されるとき、画像510が画像処理MLシステム210によって生成され、このとき、鮮明化は画像510に適用されない(または強さ0の鮮明化が適用される)。シャープネスマップにおける値が0.4に設定されるとき、画像511が画像処理MLシステム210によって生成され、このとき、中程度の量の鮮明化(中程度の強さの鮮明化)が画像511の画素に適用される。シャープネスマップにおける値が1.0に設定されるとき、画像512が生成され、このとき、最大の量の鮮明化(最大の強さの鮮明化)が画像512の画素に適用される。
強調された画像(または鮮明化された画像)は、入力画像およびシャープネスマップに基づいて、画像処理MLシステム210によって生成されてもよい。たとえば、画像処理MLシステム210は、シャープネスマップを使用して、入力画像を鮮明化し、鮮明化された画像(強調された画像とも呼ばれる)を生み出すことができる。鮮明化された(または強調された)画像は、画像のディテールならびにアルファ(α)パラメータに依存する。たとえば、鮮明化された(または強調された)画像を生成するために、強調された画像=元の入力画像+α×ディテールという式が使用されてもよい。シャープネスマップにおける値は、画像処理MLシステム210に、アルファ(α)パラメータと画像ディテールパラメータの両方を修正させて鮮明化された画像を取得させることができる。鮮明化された(または強調された)画像の生成の説明のための例として、画像処理MLシステム210は、エッジ保存非線形フィルタを適用することなどによって、エッジ保存フィルタリングを入力画像に適用することができる。エッジ保存非線形フィルタの例には、バイラテラルフィルタがある。いくつかの場合、バイラテラルフィルタは、空間シグマ(spatial sigma)および距離シグマ(range sigma)を含む、2つのハイパーパラメータを有する。空間シグマは、フィルタウィンドウサイズを制御する(より大きいウィンドウサイズはより大きな平滑化をもたらす)。距離シグマは、強度次元に沿ってフィルタサイズを制御する(より大きい値では異なる強度が一緒に不鮮明になる)。いくつかの例では、画像ディテールは、入力画像からフィルタリングされた画像(エッジ保存フィルタリングから生じる滑らかにされた画像)を差し引くことによって取得されてもよい。次いで、鮮明化された(または強調された)画像が、画像ディテールの(アルファ(α)パラメータによって表される)ある部分を元の入力画像に追加することによって取得されてもよい。画像ディテールおよびアルファ(α)を使用して、鮮明化された(強調された)画像は、次のように取得されてもよい。強調された画像=元の入力画像+α×ディテール
図6は、いくつかの例による、入力画像602における鮮明化の強さを調整して修正された画像615を生成するために適用される入力シャープネスマップ604の例を示す概念図である。明らかに、入力画像602は不鮮明な外観を有する。シャープネスマップキー605は、ノイズマップ604における0という値が、入力画像602の対応する画素に鮮明化が適用されない(鮮明化が0という強さで適用される)ことを示すことと、1という値が、対応する画素に最大の鮮明化が適用される(鮮明化が最大の強さで適用される)ことを示すこととを規定する。示されるように、入力シャープネスマップ604は、シャープネスマップ604の左下の部分における黒い色合いのエリアに対して0という値を含む。入力シャープネスマップ604は、シャープネスマップ604の残りのエリア(明るい灰色の色合い)に対して0.9という値を含む。画像処理MLシステム210は、入力画像602および入力シャープネスマップ604を処理して、修正された画像615を生み出すことができる。示されるように、0という値を有するシャープネスマップ604の中の位置に対応する修正された画像615の画素は不鮮明であるが(鮮明化が0という強さで適用されたので)、0.9という値を有するシャープネスマップ604の中の位置に対応する修正された画像615の画素は、そのエリアにおける画像処理MLシステム210によって高い強度で実行される鮮明化により、鮮明である(不鮮明ではない)。
トーンマップは、空間チューニングマップの別の例である。トーンマップは、入力画像の画素に適用される輝度調整の量を示し、輝度調整はより暗いまたは明るいトーンの画像をもたらす。ガンマ値は画素に対する輝度の量を制御し、これはガンマ補正と呼ばれる。たとえば、ガンマ補正は、
Figure 2023525702000002
と表記される変換として定義することができ、Iinは入力値(たとえば、画素または画像全体)であり、γはガンマ値であり、Ioutは出力値(たとえば、画素または出力画像全体)である。ガンマ変換関数は、異なるタイプの画像に対して異なるように適用されてもよい。たとえば、赤-緑-青(RGB)色空間では、同じガンマ変換が画像のRチャネル、Gチャネル、およびBチャネルに適用されてもよい。別の例では、YUV色空間(輝度成分(Y)および2つの色差成分U(青への突出)およびV(赤への突出))では、ガンマ変換関数は、画像の輝度(Y)チャネルだけに(たとえば、画像の画素のY成分またはサンプルだけに)適用されてもよい。
図7は、いくつかの例による、ガンマカーブ715の例と、トーンマップにおける異なる値が、例示的な画像に適用されるトーン調整の異なる強さに変換されることの効果の様々な例とを示す概念図である。いくつかの例では、ガンマ(γ)の範囲は10-0.4から100.4であり、これは0.4から2.5という値に相当する。ガンマの指数-0.4から0.4は、トーンチューニングマップを計算するために、0から1の範囲にマッピングされてもよい。たとえば、トーンマップにおける0という値は、0.4というガンマ(γ)値(10-0.4に相当する)が入力画像の中の対応する画素に適用されることを示し、トーンマップにおける0.5という値は、1.0というガンマ(γ)値(100.0に相当する)が入力画像の中の対応する画素に適用されることを示し、トーンマップにおける1という値は、2.5というガンマ(γ)値(100.4に相当する)が入力画像の中の対応する画素に適用されることを示す。出力画像710、出力画像711、および出力画像712はすべて、同じ入力画像に異なる強さのトーン調整を適用することによって生成される。画像710は、0.4というガンマ値が適用されるときに画像処理MLシステム210によって生成され、輝度の向上、したがって入力画像より明るい画像をもたらす。画像711は、1.0というガンマ値が適用されるときに生成され、輝度の変化をもたらさない。したがって、出力画像711は入力画像とトーンが同一である。画像712は、2.5というガンマ値が適用されるときに生成され、輝度の低下、したがって入力画像より暗い画像をもたらす。
図8は、いくつかの例による、修正された画像815を生成するために入力画像802におけるトーン調整の強さに適用される入力トーンマップ804の例を示す概念図である。トーンマップキー805は、トーンマップ804における0という値が、0.4というガンマ(γ)値が入力画像802の対応する画素に適用される(強さ0.4のトーン調整)ことを示すことと、トーンマップ804における0.5という値が、1.0というガンマ(γ)値が入力画像802の中の対応する画素に適用される(トーンに変化がないことを示す強さ1.0のトーン調整)ことを示すことと、トーンマップ804における1という値が、2.5というガンマ(γ)値が入力画像802における対応する画素に適用される(最大の強さ2.5のトーン調整)ことを示すこととを、規定する。入力トーンマップ804は、トーンマップ804の左半分における位置のグループ(暗い灰色の色合いのエリア)に対して0.12という値を含む。0.12という値は、0.497という近似的なガンマ(γ)値に対応する。たとえば、指数をExponent=((0.12-0.5)*0.4)/0.5=-0.304として決定することができ、ガンマ(γ)値をGamma=10Exponent=10(-0.304)=0.497として決定することができる。トーンマップ804は、トーンマップ804の右半分における位置の残りのグループ(中程度の灰色の色合いのエリア)に対して0.5という値を含む。0.5という値は、1.0というガンマ(γ)値に対応する。
画像処理MLシステム210は、入力画像802および入力トーンマップ804を処理して、修正された画像815を生成することができる。示されるように、修正された画像815の左半分における画素は、0.12というトーンマップ値に基づくガンマ変換において0.497というガンマ(γ)値が使用されることにより、より明るいトーン(入力画像802の左半分における対応する画素と比較して、および/または修正された画像815の右半分における画素と比較して)を有する。修正された画像815の右半分における画素は、0.5というトーンマップ値に基づくガンマ変換において1.0というガンマ(γ)値が使用されることにより、入力画像802の右半分における対応する画素と同じトーン(および/または修正された画像815の左半分における画素と比較してより暗いトーン)を有する。
飽和度マップは、空間チューニングマップの別の例である。飽和度マップは、入力画像の画素に適用される飽和度の量を示し、色値が修正された画像をもたらす。飽和度マップでは、飽和度は、(たとえば、以下の式1から3に示されるような)対応するグレースケール画像からRGB画素(またはYUVなどの別の色空間を使用して定義される画素)間の差を指す。この飽和度は、場合によっては「飽和度差」と呼ばれ得てもよい。たとえば、画像の飽和度の上昇により、画像の色がより強くなることがあり、一方、飽和度の低下により、色がトーンダウンすることがある。飽和度が十分に下げられる場合、画像は不飽和化することがあり、グレースケール画像をもたらしてもよい。以下で説明されるように、場合によってはAlpha Blending技法を実行することができ、アルファ(α)値が色の飽和度を決定する。
飽和度調整は、異なる技法を使用して適用されてもよい。YUV色空間では、画像の画素のU色差成分(青への突出)およびY色差成分(赤への突出)の値は、画像に対して異なる飽和度レベルを設定するために調整されてもよい。
図9は、YUV色空間における飽和度レベルを示す概念図915であり、x軸はU色差成分(青への突出)を表し、y軸はV色差成分(赤への突出)を表す。輝度(Y)は、図9の略図では128という値で一定である。不飽和化は図の中心において表され、Uの値は128、Vの値は128であり、このとき画像はグレースケール(不飽和化した)画像である。距離が遠くなるにつれて(より高いまたは低いUおよび/もしくはVの値)、飽和度はより高くなる。たとえば、中心からのより長い距離は、より高い飽和度に対応する。
別の例では、Alpha Blending技法は、飽和度を調整するために使用されてもよい。輝度(Y)とR、G、Bチャネルとの間のマッピングは、以下の式を使用して表されてもよい。
R'=α×R+(1-α)×Y 式(1)
G'=α×G+(1-α)×Y 式(2)
B'=α×B+(1-α)×Y 式(3)
図10は、いくつかの例による、色飽和度を調整するための異なるアルファ(α)値を使用して各々処理される例示的な画像の処理される変形を示す概念図である。1未満のαの値(α<1)では、画像は飽和度がより低くなる。たとえば、α=0であるとき、R'、G'、およびB'の値のすべてが、輝度(Y)値(α=0:R'=G'=B'=Y)に等しく、グレースケール(不飽和化)をもたらす。出力画像1020、出力画像1021、および出力画像1022はすべて、同じ入力画像に異なる強さの飽和度調整を適用することによって生成される。入力画像は、互いに隣り合っている3人の女性の顔を示す。図10はカラーではなくグレースケールで示されているので、出力画像1020、出力画像1021、および出力画像1022の赤のチャネルが、赤色の飽和度の変化を示すために図10において示されている。赤色の飽和度の上昇はより明るいエリアとして見えるが、赤色の飽和度の低下はより暗いエリアとして見える。α=1であるとき、飽和度に関する効果はない。たとえば、α=1であるとき、式(1)-(3)は、R'=R、G'、 G、およびB'=Bをもたらす。図10の出力画像1021は、アルファ(α)値が1.0という値に設定されることに基づいて、飽和化の効果がない画像の例である。したがって、出力画像1021は、色飽和度に関して入力画像と同一である。図10の出力画像1020は、0.0というアルファ(α)値に起因するグレースケール(不飽和化した)画像の例である。図10は出力画像1020の赤のチャネルを示すので、出力画像1020におけるより暗い顔(出力画像1021と、したがって入力画像と比較して)は、顔の赤色の飽和度がより低いことを示す。1より大きいαの値(α>1)に対して、画像の飽和度はより高くなる。R、G、およびBの値は、最高の強度に制限されてもよい。図10の出力画像1022は、2.0というアルファ(α)値に起因する大きく飽和した画像の例である。図10は出力画像1020の赤のチャネルを示すので、出力画像1022におけるより明るい顔(出力画像1021と、したがって入力画像と比較して)は、顔の赤色の飽和度がより高いことを示す。
図11は、入力画像1102および入力飽和度マップ1104の例を示す概念図である。飽和度マップキー1105は、飽和度マップ1104における0という値が不飽和化を示し、0.5という値が飽和化の効果がないことを示し、1という値が飽和化を示すことを規定する。入力飽和度マップ1104は、飽和度マップ1104の左下部分の位置のグループに対して0.5という値を含み、入力画像1102の対応する画素に飽和化の効果が適用されないことを示す。飽和度マップ1104は、飽和度マップ1104の左下部分の外側の位置のグループに対して0.1という値を含む。0.1という値は、飽和度が低下した(ほとんど不飽和化した)画素をもたらす。
画像処理MLシステム210は、入力画像1102および入力飽和度マップ1104を処理して、修正された画像1115を生成することができる。示されるように、修正された画像1115の左下部分の画素は、0.5という飽和度マップ値に基づいてそれらの画素に飽和化の効果が適用されないことにより、入力画像1102の中の対応する画素と同じである。修正された画像1115の残りの画素は、0.1という飽和度マップ値に基づいてそれらの画素に飽和度の低下が適用されることにより、より暗い緑色の外観(ほぼグレースケール)を有する。
空間調整マップの別の例は、色相マップである。色相は画像における色であり、飽和度(HSV色空間における)はその色の強さ(または濃さ)である。色相マップは、入力画像の画素に適用される色変化の量を示す。色相調整は、異なる技法を使用して適用されてもよい。たとえば、色相、飽和度、値(HSV)色空間が、RGB色空間の表現である。HSV表現は、飽和度次元と色相次元を使用して異なる色がどのように一緒に混合するかをモデル化する。
図12Aは、HSV色空間を示す概念図1215であり、飽和度はy軸上で表され、色相はx軸上で表され、値は255という値を有する。色相(色)は、x軸上で示されるように修正されてもよい。示されるように、色相はラップアラウンドされ、この場合、0および180という色相は同じ赤色を表す(OpenCVの取り決めによれば、Hue:0=Hue:180)。図は黒と白で示されているので、色は、HSV色空間においてそれらが現れる箇所に文字で書かれている。
HSV空間における飽和度は、上で論じられた飽和度マップによって定義される飽和度と等価ではないことに留意されたい。たとえば、HSV色空間において飽和度に言及するとき、飽和度は標準的なHSV色空間の定義を指し、このとき飽和度は特定の色の濃さである。しかしながら、HSVの値によっては、0という飽和度値は、画素を黒く見せることもあり(値=0)、灰色に見せることもあり(値=128)、または白く見せることもある(値=255)。この飽和度は、場合によっては「HSV飽和度」と呼ばれ得てもよい。色飽和度および明度はHSV空間において結びついているので、飽和度のこの定義(HSV飽和度)は本明細書では使用されない。代わりに、本明細書では、飽和度とは、画素がどれだけ色彩があるか、または灰色に見えるかを指し、これは上で説明されたアルファ(α)値によって捉えることができる。
図12Bは、YUV色空間を示す概念図1216である。元のUVベクトル1217は、中心点1219(U=128、V=128)に対して相対的に示される。元のUVベクトル1217は、角度(θ)を調整することによって修正することができ、色相修正されたベクトル1218によって示される修正された色相(色)をもたらす。色相修正されたベクトル1218は、中心点1219に対して相対的に示される。YUV色空間では、UVベクトルの向きは、中心点1219に関して修正されてもよい(図9に示されるように、U=128、V=128)。UVベクトルの修正は、色相調整がどのように機能してもよいかの例を示し、色相調整の強さは角度(θ)に対応し、色相調整の向きは角度(θ)が負であるか正であるかに対応する。
図13は、いくつかの例による、修正された画像1315を生成するために入力画像1302における色相調整の強さに適用される入力色相マップ1304の例を示す概念図である。色相マップキー1305は、色相マップ1304における0.5という値が効果を示さない(色相または色の変化なし)(0という強さの色相調整)ことを規定する。0.5以外のあらゆる値が、現在の色に対する相対的な色相の変化を示す(0ではない強さの色相調整)。たとえば、説明のための例として図12Aを参照すると、現在の色が緑(すなわち、色相=60)である場合、色を青に変えるために60という色相の値が加算されてもよい(すなわち、色相=60+60=120)。別の例では、緑色を赤に変えるために、60という色相の値が、60という現在の色相の値から差し引かれ得てもよい(すなわち、色相=60-60=0)。入力色相マップ1304は、色相マップ1304の左上部分の位置のグループ(中程度の灰色の色合いのエリア)に対して0.5という値を含み、入力画像1302の対応する画素に色相の変化が適用されない(0という強さの色相調整)ことを示す。色相マップ1304は、色相マップ1304の左上部分の外側の位置のグループ(暗い灰色の色合いのエリア)に対して0.4という値を含む。0.4という値により、入力画像1302の中の画素が現在の色相から修正された色相へと変更される。0.4という値は0.0より0.5に近いので、入力画像1302と比較した色相の変化はわずかである。入力色相マップ1304によって示される色相の変化は、入力画像1302における各画素の色相に対する相対的な変化である。各画素のマッピングは、図12Aに示される色空間を使用して決定されてもよい。本明細書において説明される他の調整マップのように、色相マップ値は0~1にわたることができ、これは、色相マップの適用の間に実際の0~180の値の範囲に再マッピングされる。
入力画像1302は、紫色の文字で"Griffith-"と書かれた黄色の壁の一部分を示す。画像処理MLシステム210は、入力画像1302および入力色相マップ1304を処理して、修正された画像1315を生成することができる。示されるように、修正された画像1315の左上部分の画素は、そのエリアにおける0.5という色相マップ値に基づいてそれらの画素に色相の変化が適用されない(0という強さの色相調整)ことにより、入力画像1302の中の対応する画素と同じ色相である。したがって、修正された画像1315の左上部分における画素は、入力画像1302の黄色の壁の黄色の色相を保つ。修正された画像1315の残りの画素は、0.4という色相マップ値に基づいてそれらの画素に色相の変化が適用されることにより、入力画像1302における画素と比較して変化した色相を有する。具体的には、修正された画像1315の残りにおいて、入力画像1302において黄色に見える壁のエリアは、修正された画像1315では橙色に見える。修正された画像1315の残りにおいて、入力画像1302において紫色に見える"Griffith-"という文字は、修正された画像1315では異なる色合いの紫色に見える。
いくつかの例では、複数のチューニングマップが、入力画像1402とともに画像処理MLシステム210に入力されてもよい。いくつかの例では、複数のチューニングマップは、ノイズ除去、ノイズ追加、鮮明化、不鮮明化(たとえば、ぼかし)、トーン調整、飽和度調整、ディテール調整、色相調整、またはこれらの組合せなどの異なる画像処理機能に対応する異なるチューニングマップを含んでもよい。いくつかの例では、複数のチューニングマップは、同じ画像処理機能に対応する異なるチューニングマップを含んでもよいが、たとえば入力画像1402内の異なるエリア/位置を異なる方法で修正してもよい。
図14Aは、入力画像1402および複数の空間的に変化するチューニングマップ1404を受け取る画像処理システム1406を含むシステムの例を示す概念図である。いくつかの例では、画像処理システム1406は、画像処理MLシステム210であってもよく、および/または画像処理MLシステム210の機械学習(ML)システムなどのMLシステムを含んでもよい。MLシステムは、MLを使用して画像処理機能を適用してもよい。いくつかの例では、画像処理システム1406は、MLシステムなしで画像処理機能を適用してもよい。画像処理システム1406は、1つまたは複数のトレーニングされたサポートベクターマシン、1つまたは複数のトレーニングされたニューラルネットワーク、またはこれらの組合せを使用して実装されてもよい。
空間的に変化するチューニングマップ1404は、ノイズマップ、シャープネスマップ、チューニングマップ、飽和度マップ、色相マップ、および/または画像処理機能に関連する別の他のマップの1つまたは複数を含んでもよい。入力画像1402および複数のチューニングマップ1404を入力として使用して、画像処理システム1406は修正された画像1415を生成する。画像処理システム1406は、空間的に変化するチューニングマップ1404に含まれる値に基づいて入力画像1402の画素を修正し、修正された画像1415をもたらすことができる。たとえば、画像処理システム1406は、ある画像処理機能を、その画像処理機能に対応する空間的に変化するチューニングマップ1404のうちの1つに含まれる値により示される強さで入力画像1402の各画素に適用することによって、入力画像1402の画素を修正することができ、各画像処理機能および空間的に変化するチューニングマップ1404の対応する1つに対してそのような修正を行い、修正された画像1415をもたらすことができる。空間的に変化するチューニングマップ1404は、少なくとも図14B、図14C、図14D、図16B、図17、図18、図19、図20、図21A、図21B、図21C、および図21Dに関してさらに論じられるようなMLシステムを使用して生成されてもよい。
図14Bは、いくつかの例による、入力画像1402および複数の空間的に変化するチューニングマップ1404を受け取る画像処理システム1406、ならびに、入力画像1402を受け取り複数の空間的に変化するチューニングマップ1404を生成する自動調整機械学習(ML)システム1405を含む、システムの例を示す概念図である。自動調整MLシステム1405は、入力画像1402を処理して、空間的に変化するチューニングマップ1404を生成することができる。チューニングマップ1404および入力画像1402は、画像処理システム1406への入力として提供されてもよい。画像処理システム1406は、チューニングマップ1404に基づいて入力画像1402を処理して、図14Aに関して上で説明されたものと同様の修正された画像1415を生成することができる。自動調整MLシステム1405は、1つまたは複数の畳み込みニューラルネットワーク(CNN)、1つまたは複数のCNN、1つまたは複数のトレーニングされたニューラルネットワーク(NN)、1つまたは複数のNN、1つまたは複数のトレーニングされたサポートベクターマシン(SVM)、1つまたは複数のSVM、1つまたは複数のトレーニングされたランダムフォレスト、1つまたは複数のランダムフォレスト、1つまたは複数のトレーニングされた決定木、1つまたは複数の決定木、1つまたは複数のトレーニングされた勾配ブースティングアルゴリズム、1つまたは複数の勾配ブースティングアルゴリズム、1つまたは複数のトレーニングされた回帰アルゴリズム、1つまたは複数の回帰アルゴリズム、またはこれらの組合せを使用して実装されてもよい。自動調整MLシステム1405、および/または上で列挙された機械学習要素のいずれか(自動調整MLシステム1405の一部であってもよい)は、教師あり学習、教師なし学習、強化学習、深層学習、またはこれらの組合せを使用してトレーニングされてもよい。
図14Cは、いくつかの例による、入力画像1402を受け取り複数の空間的に変化するチューニングマップ1404を生成する自動調整機械学習(ML)システム1405の例を示す概念図である。図14Cに示される例では、空間的に変化するチューニングマップ1404は、ノイズマップ、トーンマップ、飽和度マップ、色相マップ、およびシャープネスマップを含む。したがって、画像処理システム1406は、図14Cには示されていないが、ノイズマップにおいて示される強さでノイズ低減を適用することができ、トーンマップにおいて示される強さおよび/もしくは向きでトーン調整を適用することができ、飽和度マップにおいて示される強さおよび/もしくは向きで飽和度調整を適用することができ、色相マップにおいて示される強さおよび/もしくは向きで色相調整を適用することができ、ならびに/または、シャープネスマップにおいて示される強さで鮮明化を適用することができる。
図14Dは、いくつかの例による、入力画像1402および複数の空間的に変化するチューニングマップ1404を受け取る画像処理システム1406、ならびに、入力画像1422のダウンスケーリングされた変形を受け取り複数の空間的に変化するチューニングマップ1404へとアップスケーリングされる小さな空間的に変化するチューニングマップ1424を生成する自動調整機械学習(ML)システム1405を含む、システムの例を示す概念図である。図14Dのシステムは図14Bのシステムと似ているが、ダウンサンプラ1418およびアップサンプラ1426を含む。ダウンサンプラ1418は、入力画像1402をダウンサンプリングし、ダウンスケーリングし、または縮小して、ダウンサンプリングされた入力画像1422を生成する。図14Bのように入力画像1402を入力として受け取るのではなく、自動調整機械学習(ML)システム1405は、ダウンサンプリングされた入力画像1422を図14Dにおける入力として受け取る。自動調整機械学習(ML)システム1405は、小さな空間的に変化するチューニングマップ1424を生成し、これは各々、ダウンサンプリングされた入力画像1422と同じサイズおよび/または寸法を共有してもよい。アップサンプラ1426は、小さな空間的に変化するチューニングマップ1424をアップサンプリングし、アップスケーリングし、および/または拡大して、空間的に変化するチューニングマップ1404を生成することができる。いくつかの例では、アップサンプラ1426は双線形アップサンプリングを実行することができる。そして、空間的に変化するチューニングマップ1404は、入力画像1402とともに、画像処理システム1406によって入力として受け取られてもよい。
ダウンサンプリングされた入力画像1422は入力画像1402と比較してより小さいサイズおよび/または解像度を有するので、自動調整機械学習(ML)システム1405にとって、図14Bのように入力画像1402から直接空間的に変化するチューニングマップ1404を生成するよりも、図14Dのようにダウンサンプラ1418によって実行されるダウンサンプリングおよび/またはアップサンプラ1426によって実行されるアップサンプリングとともにダウンサンプリングされた入力画像1422から小さな空間的に変化するチューニングマップ1424を生成する方が、自動調整機械学習(ML)システム1405にとって高速であり効率的である(計算リソース、帯域幅、および/または電池の消費の点で)ことがある。
上で説明されたように、画像処理システム1406、画像処理MLシステム210、および/または自動調整機械学習(ML)システム1405は、教師あり学習技法を使用してトレーニングされてもよい1つまたは複数のニューラルネットワークを含んでもよい。
図15は、いくつかの例による、画像処理システム1406および/または自動調整機械学習(ML)システム1405によって使用されてもよいニューラルネットワーク1500の例を示すブロック図1600Aである。ニューラルネットワーク1500は、畳み込みニューラルネットワーク(CNN)、オートエンコーダ、ディープビリーフネット(DBN)、再帰ニューラルネットワーク(RNN)、敵対的生成ネットワーク(GAN)、および/または他のタイプのニューラルネットワークなどの任意のタイプの深層ネットワークを含んでもよい。
ニューラルネットワーク1500の入力層1510は入力データを含む。入力層1510の入力データは、入力画像フレームのピクセルを表すデータを含んでもよい。説明のための例では、入力層1510の入力データは、(たとえば、自動調整MLシステム1405の、および/または画像処理システム1406のNN1500のための)図14A~図14Dの入力画像1402および/またはダウンサンプリングされた入力画像1422の画素を表すデータを含んでもよい。説明のための例では、入力層1510の入力データは、(たとえば、自動調整MLシステム1405のNN1500ための)図14A~図14Dの空間的に変化するチューニングマップ1404の画素を表すデータを含んでもよい。画像は、生の画素データ(たとえばベイヤーフィルタに基づいて画素ごとに単一の色を含む)を含むイメージセンサからの画像データ、または処理された画素値(たとえば、RGB画像のRGB画素)を含んでもよい。ニューラルネットワーク1500は、複数の隠れ層1512a、1512bから1512nを含む。隠れ層1512a、1512bから1512nはn個の隠れ層を含み、"n"は1以上の整数である。隠れ層の数は、所与の用途に必要とされる程度に多くの層を含むようになされてもよい。ニューラルネットワーク1500はさらに、隠れ層1512a、1512bから1512nによって実行される処理から生じる出力を提供する、出力層1514を含む。説明のための例では、出力層1514は、(たとえば、画像処理システム1406および/または画像処理MLシステム210のNN1500のための)図2の修正された画像215または図14A~図14Dの修正された画像1415などの修正された画像を提供することができる。説明のための例では、出力層1514は、(たとえば、自動調整MLシステム1405のNN1500のための)図14A~図14Dの空間的に変化するチューニングマップ1404および/または図14Dの小さな空間的に変化するチューニングマップ1424を提供することができる。
ニューラルネットワーク1500は、相互接続されるフィルタの多層ニューラルネットワークである。各フィルタは、入力データを表す特徴を学習するようにトレーニングされてもよい。フィルタに関連する情報は異なる層の間で共有され、情報が処理されるにつれて各層が情報を保持する。いくつかの場合、ニューラルネットワーク1500はフィードフォワードネットワークを含むことができ、その場合、ネットワークの出力が自分にフィードバックされるようなフィードバック接続がない。いくつかの場合、ネットワーク1500は再帰ニューラルネットワークを含むことができ、これは、入力を読み取る間に、ノードにわたって情報が搬送されることを可能にするループを有することができる。
いくつかの場合、様々な層間のノードとノードの相互接続を通じて、情報を層間で交換することができる。いくつかの場合、ネットワークは畳み込みニューラルネットワークを含むことができ、これは、ある層の中のあらゆるノードを次の層の中のあらゆる他のノードにつながないことがある。層間で情報が交換されるネットワークでは、入力層1510のノードは、第1の隠れ層1512aの中のノードのセットを活性化することができる。たとえば、示されるように、入力層1510の入力ノードの各々は、第1の隠れ層1512aのノードの各々に接続されてもよい。隠れ層のノードは、活性化関数(たとえば、フィルタ)をこれらの情報に適用することによって、各入力ノードの情報を変換することができる。次いで、変換から導出される情報は、次の隠れ層1512bのノードに渡され、それを活性化することができ、次の隠れ層1512bは固有の指定された機能を実行することができる。例示的な機能には、畳み込み機能、ダウンサンプリング、アップスケーリング、データ変換、および/または任意の他の適切な機能がある。隠れ層1512bの出力は次いで、次の隠れ層のノードを活性化することができ、以下同様である。最後の隠れ層1512nの出力は、出力層1514の1つまたは複数のノードを活性化することができ、これは処理された出力画像をもたらす。いくつかの場合、ニューラルネットワーク1500の中のノード(たとえば、ノード1516)は、複数の出力線を有するものとして示され、ノードは単一の出力を有し、ノードから出力されるものとして示されるすべての線が同じ出力値を表す。
いくつかの場合、各ノードまたはノード間の相互接続は、ニューラルネットワーク1500のトレーニングから導出されるパラメータのセットである重みを有することができる。たとえば、ノード間の相互接続は、相互接続されたノードについて学習された情報を表すことができる。相互接続は、(たとえば、トレーニングデータセットに基づいて)調整できる調整可能な数値の重みを有することができ、ニューラルネットワーク1500が入力に対して適応的であることと、より多くのデータが処理されるにつれて学習できることとを可能にする。
ニューラルネットワーク1500は、出力層1514を通じて出力を提供するために、異なる隠れ層1512a、1512bから1512nを使用して、入力層1510の中のデータからの特徴を処理するようにあらかじめトレーニングされる。
図16Aは、いくつかの例による、画像処理システム1406(たとえば、画像処理MLシステム210)のトレーニングの例を示すブロック図1600Bである。図16Aを参照すると、画像処理システム1406(たとえば、画像処理MLシステム210)によって実装されるニューラルネットワーク(たとえば、ニューラルネットワーク1500)は、入力画像およびチューニングマップを処理するためにあらかじめトレーニングされてもよい。図16Aに示されるように、トレーニングデータは、入力画像1606および入力チューニングマップ1607を含む。入力画像1402は、入力画像1606の例であってもよい。空間的に変化するチューニングマップは、入力チューニングマップ1607の例であってもよい。入力画像1606および入力チューニングマップ1607は、画像処理MLシステム210のニューラルネットワーク(たとえば、ニューラルネットワーク1500)へと入力されてもよく、ニューラルネットワークは出力画像1608を生成することができる。修正された画像1415は、出力画像1608の例であってもよい。たとえば、単一の入力画像およびいくつかのチューニングマップ(たとえば、上で論じられたノイズマップ、シャープネスマップ、トーンマップ、飽和度マップ、および/もしくは色相マップ、ならびに/または、画像処理機能に関連する別の他のマップ)をニューラルネットワークに入力することができ、ニューラルネットワークは出力画像を出力することができる。別の例では、入力画像のバッチおよびいくつかの対応するチューニングマップをニューラルネットワークに入力することができ、ニューラルネットワークは次いでいくつかの出力画像を生成することができる。
損失を決定する(以下で説明される)ために画像処理システム1406(たとえば、画像処理MLシステム210)の出力画像1608と比較するために、参照出力画像1609のセットも提供されてもよい。参照出力画像は、入力画像1606の各入力画像のために提供されてもよい。たとえば、参照出力画像1609からの出力画像は、カメラシステムによって以前に生成され、入力チューニングマップ1607からのいくつかのチューニングマップに基づいて対応する入力画像に対して望まれる特性を有する、最終的な出力画像を含んでもよい。
ニューラルネットワークのパラメータは、バックプロパゲーションエンジン1612による出力画像1608と参照出力画像1609の比較に基づいて調節されてもよい。パラメータは、ニューラルネットワークの重み、バイアス、および/または他のパラメータを含んでもよい。いくつかの場合、ニューラルネットワーク(たとえば、ニューラルネットワーク1500)は、バックプロパゲーションと呼ばれるトレーニングプロセスを使用して、ノードの重みを調整することができる。バックプロパゲーションは、フォワードパス、損失関数、バックワードパス、および重み更新を含んでもよい。フォワードパス、損失関数、バックワードパス、およびパラメータ更新は、1回のトレーニングの反復に対して実行される。このプロセスを、層の重みが正確に調整されるほど十分にニューラルネットワークがトレーニングされるまで、トレーニング画像の各セットに対してある反復の回数繰り返すことができる。ニューラルネットワークが適切にトレーニングされると、画像処理システム1406(たとえば、画像処理MLシステム210)は、任意の入力画像およびいくつかのチューニングマップを処理して、チューニングマップに基づいて入力画像の修正されたバージョンを生成することができる。
フォワードパスは、入力画像(または入力画像のバッチ)およびいくつかのチューニングマップ(たとえば、上で論じられたノイズマップ、シャープネスマップ、トーンマップ、飽和度マップ、および/または色相マップの1つまたは複数)をニューラルネットワークに通すことを含んでもよい。隠れ層の様々なフィルタの重みは最初に、ニューラルネットワークがトレーニングされる前にランダム化されてもよい。入力画像は、画像の画素を表す数字の多次元アレイを含んでもよい。一例では、アレイは、128行および128列の画素位置ならびに画素位置あたり11個の入力値を伴う、128×128×11の数字のアレイを含んでもよい。
ニューラルネットワークのための最初のトレーニングの反復では、初期化において重みがランダムに選択されていることにより、出力はいずれの特徴量またはノードへの選好も与えない値を含むことがある。たとえば、出力が画素位置当たり多数の色成分を伴うアレイである場合、出力画像は入力の不正確な色表現を描写することがある。初期の重みを用いると、ニューラルネットワークは、低レベルの特徴を決定することが不可能であるので、明度が何である可能性があるかの正確な決定を行うことができない。出力における誤差を分析するために、損失関数を使用することができる。あらゆる適切な損失関数の定義を使用することができる。損失関数の一例は、平均二乗誤差(MSE)を含む。MSEは、
Figure 2023525702000003
と定義され、これは、差の二乗(実際の答から予測される(出力)の答を引いたものを二乗したもの)の平均(mean)または平均(average)を計算する。項nは、合計における値の数である。損失は、Etotalの値に等しくなるように設定することができる。
実際の値は予測される出力と大きく異なるので、損失(または誤差)は第1のトレーニングデータ(画像データおよび対応するチューニングマップ)では大きくなる。トレーニングの目標は、予測される出力がトレーニングラベルと同じになるように、損失の量を最小にすることである。ニューラルネットワークは、どの入力(重み)がネットワークの損失に最も寄与したかを決定することによってバックワードパスを実行することができ、損失が減り最終的に最小になるように、重みを調整することができる。いくつかの場合、ネットワークの損失に最も寄与した重みを決定するために、重みに関する損失の微分係数(または他の適切な関数)(dL/dWと表記され、Wは特定の層における重みである)を計算することができる。微分係数が計算された後、フィルタのすべての重みを更新することによって、重み更新を実行することができる。たとえば、勾配の反対方向に重みが変化するように、重みを更新することができる。重み更新を
Figure 2023525702000004
と表記することができ、wは重みを示し、wiは初期の重みを示し、ηは学習率を示す。学習率を任意の適切な値に設定することができ、高い学習率はより大きい重みの更新を含み、より小さい値はより小さい重みの更新を示す。
図16Bは、いくつかの例による、自動調整機械学習(ML)システム1405のトレーニングの例を示すブロック図である。図16Bを参照すると、自動調整機械学習(ML)システム1405によって実装されるニューラルネットワーク(たとえば、ニューラルネットワーク1500)は、入力画像1606および/またはダウンサンプリングされた入力画像1616を処理するためにあらかじめトレーニングされてもよい。図16Bに示されるように、トレーニングデータは、入力画像1606および/またはダウンサンプリングされた入力画像1616を含む。入力画像1402は、入力画像1606の例であってもよい。ダウンサンプリングされた入力画像1422は、ダウンサンプリングされた入力画像1616の例であってもよい。入力画像1606および/またはダウンサンプリングされた入力画像1616を、自動調整機械学習(ML)システム1405のニューラルネットワーク(たとえば、ニューラルネットワーク1500)に入力することができ、ニューラルネットワークは出力チューニングマップ1618を生成することができる。空間的に変化するチューニングマップ1404は、出力チューニングマップ1618の例であってもよい。小さな空間的に変化するチューニングマップ1424は、出力チューニングマップ1618の例であってもよい。たとえば、入力画像1606はニューラルネットワークへの入力であってもよく、ニューラルネットワークは、1つまたは複数の出力チューニングマップ1618(たとえば、上で論じられたノイズマップ、シャープネスマップ、トーンマップ、飽和度マップ、および/もしくは色相マップの1つまたは複数、ならびに/または、画像処理機能に関連する別の他のマップ)を出力することができる。たとえば、ダウンサンプリングされた入力画像1616はニューラルネットワークへの入力であってもよく、ニューラルネットワークは、1つまたは複数の(小さな)出力チューニングマップ1618(たとえば、上で論じられたノイズマップ、シャープネスマップ、トーンマップ、飽和度マップ、および/もしくは色相マップの1つまたは複数の小さな変形、ならびに/または、画像処理機能に関連する別の他のマップ)を出力することができる。別の例では、入力画像1606および/またはダウンサンプリングされた入力画像1616のバッチはニューラルネットワークへの入力であってもよく、ニューラルネットワークは次いでいくつかの出力チューニングマップ1618を生成することができる。
図16Bを参照すると、自動調整機械学習(ML)システム1405によって実装されるニューラルネットワーク(たとえば、ニューラルネットワーク1500)は、図16Aのバックプロパゲーションエンジン1612と類似するバックプロパゲーションエンジン1622を含んでもよい。図16Bのバックプロパゲーションエンジン1622は、図16Aのバックプロパゲーションエンジン1612が参照出力画像1609を受け取って使用するのと同様の方式で、参照出力チューニングマップ1619を受け取って使用することができる。
上で述べられたように、いくつかの実装形態では、チューニングマップは、画像処理MLシステム210とは別個の機械学習システムを使用して自動的に生成されてもよい。
図17は、いくつかの例による、局所線形性の制約1720に従って輝度チャネルデータ(Iy)を修正するアフィン係数(a,b)を生成することによって、輝度チャネルデータ(Iy)から空間的に変化するチューニングマップオメガ(Ω)を生成する、画像処理MLシステムおよび自動調整機械学習(ML)システム1705を含むシステムの例を示すブロック図である。自動調整機械学習(ML)システム1705は、1つまたは複数のトレーニングされたサポートベクターマシン、1つまたは複数のトレーニングされたニューラルネットワーク、またはこれらの組合せを使用して実装されてもよい。自動調整機械学習(ML)システム1705は、図17においてIRGBとして示される、入力画像データ(入力画像1402など)を受け取ることができる。入力画像データIRGBからの輝度チャネルデータは、Iyと呼ばれる。いくつかの例では、輝度チャネルデータIyは実質的に、入力画像データIRGBのグレースケールバージョンである。自動調整MLシステム1705は、入力画像データIRGBを入力として受け取り、ここではaおよびbとして示される1つまたは複数のアフィン係数を出力する。1つまたは複数のアフィン係数は乗数aを含む。1つまたは複数のアフィン係数はオフセットbを含む。自動調整MLシステム1705、または別の撮像システムは、式Ω=a*Iy+bに従って輝度チャネルデータIyにアフィン係数を適用することによって、チューニングマップΩを生成することができる。自動調整MLシステム1705、または別の撮像システムは、式∇Ω=a*∇Iyに従って局所線形性の制約1720を課すことができる。局所線形性の制約1720の使用により、マップにおける1つまたは複数の勾配を画像データにおける1つまたは複数の勾配と確実に整合することができ、これは、画像処理機能の適用の際にハロー効果を減らすことができる。マップを生成するためにアフィン係数および/または局所線形性の制約1720を使用すると、たとえば画像データとマップとのより優れた整合、および描写される物体の境界におけるハロー効果の低減により、マップを生成するためにアフィン係数および/または局所線形性の制約を使用しないシステムよりも、高品質な空間的に変化する画像修正を生み出すことができる。生成される各チューニングマップは、1つまたは複数のアフィン係数の固有のセット(たとえば、a、b)を含んでもよい。たとえば、図14Cの例では、自動調整MLシステム1405は、1つの入力画像1402から5つの異なる空間的に変化するチューニングマップ1404を生成する。したがって、図14Cの自動調整MLシステム1405は、5つの異なる空間的に変化するチューニングマップ1404の各々に対して1つのセットという、1つまたは複数のアフィン係数(たとえば、a、b)の5つのセットを生成することができる。アフィン係数(たとえば、aおよび/またはb)の1つまたは複数も、空間的に変化してもよい。
自動調整MLシステム1705は、1つまたは複数の畳み込みニューラルネットワーク(CNN)、1つまたは複数のCNN、1つまたは複数のトレーニングされたニューラルネットワーク(NN)、1つまたは複数のNN、1つまたは複数のトレーニングされたサポートベクターマシン(SVM)、1つまたは複数のSVM、1つまたは複数のトレーニングされたランダムフォレスト、1つまたは複数のランダムフォレスト、1つまたは複数のトレーニングされた決定木、1つまたは複数の決定木、1つまたは複数のトレーニングされた勾配ブースティングアルゴリズム、1つまたは複数の勾配ブースティングアルゴリズム、1つまたは複数のトレーニングされた回帰アルゴリズム、1つまたは複数の回帰アルゴリズム、またはこれらの組合せを使用して実装されてもよい。自動調整MLシステム1705、および/または上で列挙された機械学習要素のいずれか(自動調整MLシステム1705の一部であってもよい)は、教師あり学習、教師なし学習、強化学習、深層学習、またはこれらの組合せを使用してトレーニングされてもよい。
図18は、自動調整MLシステム1705の詳細を示すブロック図である。示されるように、自動調整MLシステム1705は、パッチごとの処理(たとえば、画像の画像パッチの処理)のために使用されるローカルニューラルネットワーク1806および完全な画像を処理するために使用されるグローバルニューラルネットワーク1807を含む。ローカルニューラルネットワーク1806は、画像パッチ1825(完全な画像入力1826の一部である)を入力として受け取ることができ、処理することができる。グローバルニューラルネットワーク1807は、完全な画像入力1826を入力として受け取ることができ、処理することができる。グローバルニューラルネットワーク1807からの出力は、ローカルニューラルネットワーク1806に提供されてもよい。いくつかの例では、自動調整MLシステム1705は、空間的に変化するチューニングマップ1804を出力することができる。いくつかの例では、自動調整MLシステム1705はアフィン係数1822(たとえば、図17のようなa、b)を出力することができ、自動調整MLシステム1705はそれらを輝度(Y)チャネル1820に適用して、空間的に変化するチューニングマップ1804を生成することができる。
いくつかの例では、計算の効率性のために、グローバルニューラルネットワーク1807は、1つまたは複数のダウンサイジングされた低解像度の画像(完全な解像度の画像からダウンスケーリングされた、ダウンサンプリングされた、および/またはダウンサイジングされた)を供給されてもよく、ローカルニューラルネットワーク1806は、対応する完全な分解能の空間的に変化するチューニングマップを取得するために、1つまたは複数の完全な解像度のまたは高解像度の画像パッチを供給されてもよい。高解像度の画像パッチ(たとえば、画像パッチ1825)および低解像度の完全な画像入力(たとえば、画像入力1826)は、(図18に示されるような)同じ画像に基づいてもよいが、高解像度の画像パッチ1825は、低解像度の完全な画像入力1826の高解像度バージョンに基づく。たとえば、低解像度の完全な画像入力1826は、高解像度の画像パッチ1825の抽出元であるより高解像度の画像のダウンスケーリングされたバージョンであってもよい。ローカルNN1806は、高解像NN1806と呼ばれ得てもよい。グローバルNN1807は、低解像NN1807と呼ばれ得てもよい。
輝度(Y)チャネル1820は、画像パッチ1825に由来するものとして示されるが、完全な画像入力1826に由来することがある。輝度(Y)チャネル1820は、高分解能または低分解能であってもよい。輝度(Y)チャネル1820は、完全な画像入力1826に対する輝度データを、その元の高分解能で、またはダウンスケーリングされた低分解能で含んでもよい。輝度(Y)チャネル1820は、画像パッチ1825に対する輝度データを、その元の高分解能で、またはダウンスケーリングされた低分解能で含んでもよい。
図19は、自動調整MLシステム1705のローカルニューラルネットワーク1806のニューラルネットワークアーキテクチャ1900の例を示すブロック図である。ローカルニューラルネットワーク1806は、高分解能ローカルニューラルネットワーク1806または高分解能ニューラルネットワーク1806と呼ばれることがある。ニューラルネットワークアーキテクチャ1900は、入力として、高解像度であってもよい画像パッチ1825を受け取る。ニューラルネットワークアーキテクチャ1900は、高分解能であってもよいアフィン係数1822(たとえば、図17のようなaおよび/またはb)を出力する。アフィン係数1822は、図17、図18、図20、図21A、および/または図21Bに示されるようなチューニングマップ1804を生成するために使用されてもよい。キー1920は、様々なNNの動作が図19においてどのように示されるかを特定する。たとえば、3×3のフィルタおよび1というストライドを伴う畳み込みは、右を指しており輪郭が黒い、太く白い矢印により示されている。2×2のフィルタおよび2というストライドを伴う畳み込みは、下を指している太く黒い矢印により示されている。アップサンプリング(たとえば、双線形アップサンプリング)は、上を指している太く黒い矢印により示されている。
図20は、自動調整MLシステム1705のグローバルニューラルネットワーク1807のニューラルネットワークアーキテクチャ2000の例を示すブロック図である。グローバルニューラルネットワーク1807は、低分解能グローバルニューラルネットワーク1807または低分解能ニューラルネットワーク1807と呼ばれることがある。ニューラルネットワークアーキテクチャ2000は、入力として、ダウンサンプリングされていてもよい、および/または低解像度であってもよい完全な画像入力1826を受け取る。ニューラルネットワークアーキテクチャ2000は、低分解能であってもよいグローバル特徴2010を出力する。キー2020は、様々なNNの動作が図20においてどのように示されるかを特定する。たとえば、3×3のフィルタおよび1というストライドを伴う畳み込みは、右を指しており輪郭が黒い、太く白い矢印により示されている。2×2のフィルタおよび2というストライドを伴う畳み込みは、下を指している太く黒い矢印により示されている。平均プーリングは、対角方向に黒い縞模様があり輪郭が黒い、下を指している太く白い矢印により示されている。全結合層は、右を指している細く黒い矢印により示されている。
図21Aは、いくつかの例による、自動調整MLシステム1705のニューラルネットワークアーキテクチャ2100Aを示すブロック図である。低解像度の完全な画像1826は、自動調整MLシステム1705のグローバルNN1807が画像のグローバル情報を生成することを可能にする。低解像度のグローバルニューラルネットワーク1807は、完全な画像を処理し、入力から出力に向かうときに組み込むことが重要であるグローバル特徴を決定する。解像度が下げられた画像をグローバルニューラルネットワーク1807の入力として使用することによって、グローバル情報の計算は、完全な解像度の画像が使用された場合と比較してかなり軽量になる。高解像度のパッチ1825は、画像の局所的な特徴に不連続な箇所がないように、自動調整ネットワークが局所的に一貫したものになることを可能にする。ローカルNNが、画像パッチ1825にも基づいてアフィン係数1822を生成する間に、および/または画像パッチ1825にも基づいてチューニングマップ1804を生成する間に、グローバル特徴を考慮できるように、1つまたは複数の畳み込み演算の後で、グローバル特徴が層へと(たとえば、付加バイアスを伴うchannel attentionを介して)組み込まれ得てもよい。図21Aに示されるように、アフィン係数1822は、チューニングマップ1804を生成するためにYチャネル1820と組み合わせられ得てもよい。
キー2120Aは、様々なNNの動作が図21Aにおいてどのように示されるかを特定する。たとえば、3×3のフィルタおよび1というストライドを伴う畳み込みは、右を指しており輪郭が黒い、太く白い矢印により示されている。2×2のフィルタおよび2というストライドを伴う畳み込みは、下を指している太く黒い矢印により示されている。アップサンプリング(たとえば、双線形アップサンプリング)は、上を指している太く黒い矢印により示されている。付加バイアスを伴うchannel attentionは、上および/または左(たとえば、グローバルNN1807によって決定されるグローバル特徴から上方向)を指している細く黒い矢印により示される。
図21Bは、いくつかの例による、自動調整MLシステム1705のニューラルネットワークアーキテクチャ2100Bの別の例を示すブロック図である。ニューラルネットワークアーキテクチャ2100Bへの入力は、入力画像2130であってもよい。入力画像2130は、高解像度の完全な画像であってもよい。入力画像2130は、元の高解像度の、またはダウンスケーリングされた低解像度の、完全な画像入力1826であってもよい。入力画像2130は、高解像度の、またはダウンスケーリングされた低解像度の、画像パッチ1825であってもよい。ニューラルネットワークアーキテクチャ2100Bは、入力画像2130を処理して、入力画像2130に基づいてアフィン係数1822を生成してもよい。ニューラルネットワークアーキテクチャ2100Bは、入力画像2130を処理して、入力画像2130に基づいてチューニングマップ1804を生成してもよい。アフィン係数1822は、チューニングマップ1804を生成するためにYチャネル1820と組み合わせられ得てもよい。spatial attentionエンジン2110およびchannel attentionエンジン2115は、ニューラルネットワークアーキテクチャ2100Bの一部である。spatial attentionエンジン2110は、図21Cにおいてさらに詳しく示されている。channel attentionエンジン2115は、図21Dにおいてさらに詳しく示されている。
キー2120Bは、様々なNNの動作が図21A、図21B、および図21Cにおいてどのように示されるかを特定する。たとえば、3×3のフィルタおよび1というストライドを伴う畳み込みは、右を指しており輪郭が黒い、太く白い矢印により示されている。1×1のフィルタおよび1というストライドを伴う畳み込みは、下を指している細く黒い矢印により示されている。2×2のフィルタおよび2というストライドを伴う畳み込みは、下を指している太く黒い矢印により示されている。アップサンプリング(たとえば、双線形アップサンプリング)は、上を指している太く黒い矢印により示されている。attention、アップサンプリング、および乗算を含む演算は、上および/または横を指している細く黒い矢印により示されている。円で囲まれた「X」の記号は、アフィン係数1822をYチャネル1820に適用することを示す。二重の円で囲まれた「X」の記号は、拡大の後の要素ごとの乗算を示す。横方向に延びる細い破線の黒い矢印(図21Dの)は、共有されるパラメータを示す。
いくつかの例では、ローカルNN1808は、最初にアフィン係数1822を生成することなく、チューニングマップ1804を直接生成することができる。
図21Cは、いくつかの例による、spatial attentionエンジン2110のニューラルネットワークアーキテクチャ2100Cの例を示すブロック図である。spatial attentionエンジン2110は、最大プーリング、平均プーリング、および連結を含む。
図21Dは、いくつかの例による、channel attentionエンジン2115のニューラルネットワークアーキテクチャ2100Dの例を示すブロック図である。spatial attentionエンジン2110は、最大プーリング、平均プーリング、共有されるパラメータ、および合計を含む。
機械学習を使用してアフィン係数1822および/またはチューニングマップ1804を生成することによって、撮像システムは、カスタマイズ性とコンテキスト感度の向上を実現する。撮像システムは、ハローなどの視覚的なアーティファクトを生み出すことなく、入力画像の内容に対してうまく機能する調整マップを提供することが可能である。機械学習に基づくアフィン係数1822および/またはチューニングマップ1804の生成はまた、画像処理パラメータの従来の手動の調節より効率的であってもよい。機械学習に基づくアフィン係数1822および/またはチューニングマップ1804の生成に基づいて、撮像の革新を加速することもできる。たとえば、機械学習を使用したアフィン係数1822および/またはチューニングマップ1804の生成は、高速にかつ容易に、追加のセンサ、異なるタイプのレンズ、異なるタイプのカメラアレイ、および他の変更からのデータとともに動作するように適応することを可能にしてもよい。
自動調整MLシステム1705のニューラルネットワークは、画像処理MLシステム210に関して上で説明されたものと同様に、教師あり学習技法を使用してトレーニングされてもよい。たとえば、自動調整MLシステム1705のニューラルネットワークのパラメータを調節するために、バックプロパゲーションが使用されてもよい。トレーニングデータは、入力画像と、異なるチューニングマップを適用することによって所望される特性を持つ既知の出力画像とを含んでもよい。たとえば、入力画像および出力画像に基づいて、ニューラルネットワークは、入力画像に適用されると対応する出力を与えるマスクのセットを生成するようにトレーニングされる。説明のための例として飽和度およびトーンを使用すると、ニューラルネットワークは、出力画像における画素の特性を達成するためにどれだけの飽和化とトーンが入力画像の様々な画素に適用される必要があるかを決定しようとする。そのような例では、ニューラルネットワークは、トレーニングに基づいて飽和度マップおよびトーンマップを生成することができる。
(ニューラルネットワークがトレーニングされると)自動調整MLシステム1705の推測手順が、入力画像を処理してチューニングマップ1804を生み出すことによって実行されてもよい。たとえば、グローバル特徴は、グローバルニューラルネットワーク1807によって、入力画像の低解像度バージョンから抽出されてもよい。単一の推測が、低解像度の完全な画像入力に対して実行されてもよい。次いで、ローカルニューラルネットワーク1806を使用して、パッチに基づく推測を実行することができ、グローバルニューラルネットワーク1807からのグローバル特徴が推測の間にローカルネットワーク1806に供給される。次いで、高解像度のパッチに基づく推測が、チューニングマップ1804を生み出すために入力画像のパッチに対して実行される。
いくつかの例では、上で説明された画像処理MLシステム210(およびいくつかの場合には自動調整MLシステム1705)は、画像を取り込むとき、または以前に取り込まれた画像を処理するときに使用されてもよい。たとえば、画像を取り込むとき、画像処理MLシステム210は、画像を処理して、チューニングマップの使用に基づいて最適な特性(たとえば、ノイズ、シャープネス、飽和度、色相などに関して)を持つ出力画像を生成することができる。別の例では、以前に生成された記憶されている画像は、チューニングマップの使用に基づいて最適な特性を持つ強調された出力画像を生成するために、画像処理MLシステム210によって取り出されて処理されてもよい。
いくつかの例では、上で説明された画像処理MLシステム210(およびいくつかの場合には自動調整MLシステム1705)は、ISPを調節するときに使用されてもよい。たとえば、ISPのためのパラメータは従来、望ましい出力画像のために入力画像をどのように処理すべきかということについて経験のある専門家により手動で調節される。ISPモジュール(たとえば、フィルタ)と調節可能なパラメータの真の数との間の相関の結果として、専門家は、特定のカメラセンサとISPの組合せに基づいてパラメータのためのデバイス設定を決定し、試験し、および/または調整するために、数週間(たとえば、3~8週間)要することがある。カメラセンサまたは他のカメラの特徴(たとえば、レンズの特性または欠陥、開口サイズ、シャッターの速度と動き、フラッシュの明るさと色、および/または他の特徴)が、取り込まれる画像に、したがってISPのための調節可能なパラメータの少なくとも一部に影響してもよいので、カメラセンサとISPの各々の組合せが専門家により調節されることがある。
図22は、あらかじめ調節されたイメージシグナルプロセッサ(ISP)2208の例を示すブロック図である。示されるように、イメージセンサ2202は生の画像データを取り込む。イメージセンサ2202のフォトダイオードは、変化する灰色の色合い(またはモノクローム)を取り込む。カラーフィルタリングされた生の入力データ2204(たとえば、ベイヤーパターンを有する)を提供するために、イメージセンサにカラーフィルタを適用することができる。ISP2208は、生のカメラセンサデータに特定の演算を各々適用して最終的な出力画像を生み出す、個別の機能ブロックを有する。たとえば、機能ブロックは、とりわけモザイク除去、ゲイン、ホワイトバランス、色補正、ガンマ圧縮(またはガンマ補正)、トーンマッピング、ノイズ低減(ノイズ除去)に専用のブロックを含んでもよい。たとえば、ISP2208のモザイク除去機能ブロックは、隣接する画素を使用して画素の色と明るさを補間することによって、カラーフィルタリングされた生の入力データ2204を使用して出力カラー画像2209を生成するのを助けることができる。このモザイク除去処理は、所与の画素の色と明るさのデータを評価し、それらの値を近隣の画素からのデータと比較するために、ISP2208によって使用されてもよい。ISP2208は次いで、モザイク除去アルゴリズムを使用して、画素に対する適切な色と明るさの値を生み出すことができる。ISP2208は、多数のあってもよい画像処理機能の中でもとりわけ、ノイズ低減、鮮明化、色空間の間でのトーンマッピングおよび/または変換、オートフォーカス、ガンマ、露出、ホワイトバランスなどの様々な他の画像処理機能を、最終的な出力カラー画像2209を提供する前に実行することができる。
ISP2208の機能ブロックは、手動で調節される多数のチューニングパラメータ2206がある仕様を満たすことを要求する。いくつかの場合、10000個を超えるパラメータが、所与のISPのために調節されて制御される必要がある。たとえば、ある仕様に従って出力カラー画像2209を最適化するために、各機能ブロックのためのアルゴリズムは、アルゴリズムのチューニングパラメータ2206を調節することによって最適化されなければならない。空間において生じる様々な事例を扱うために、新しい機能ブロックも継続的に追加されなければならない。多数の手動で調節されるパラメータは、ISPに対する非常に時間がかかり高価なサポート要件につながる。
いくつかの場合、ISPは、共同で複数のISP機能を実行するために、機械学習システム(機械学習ISPと呼ばれる)を使用して実装されてもよい。
図23は、機械学習(ML)イメージシグナルプロセッサ(ISP)2300の例を示すブロック図である。機械学習ISP2300は、イメージセンサ2302から生の画像データを受け取ることができる入力インターフェース2301を含んでもよい。いくつかの場合、イメージセンサ2302は、生の画像データのフレーム2304を取り込むフォトダイオードのアレイを含む。各フォトダイオードは、画素位置を表すことができ、その画素位置に対する画素値を生成することができる。フォトダイオードからの生の画像データは、フレーム2304の中の各画素位置に対する単一の明度またはグレースケール値を含んでもよい。たとえば、カラーフィルタアレイは、イメージセンサ2302と統合されてもよく、モノクロ情報を明度に変換するためにイメージセンサ2302(フォトダイオードの上に置かれる)とともに使用されてもよい。
カラーフィルタアレイの1つの説明のための例には、ベイヤーパターンカラーフィルタアレイ(またはベイヤーカラーフィルタアレイ)があり、イメージセンサ2302が、各ピクセル位置に赤、緑、または青のフィルタのいずれか1つがあるベイヤーパターンを有する画素のフレームを取り込むことを可能にする。たとえば、生の画像データのフレーム2304からの生の画像パッチ2306は、ベイヤーカラーフィルタがイメージセンサ2302とともに使用されることに基づいて、ベイヤーパターンを有する。図23に示される生の画像パッチ2306のパターンにおいて示されるように、ベイヤーパターンは、赤のフィルタ、青のフィルタ、および緑のフィルタを含む。ベイヤーカラーフィルタは、入ってくる光をフィルタで除去することによって動作する。たとえば、パターンの緑の部分を伴うフォトダイオードは緑色の情報を通し(画素の半分)、パターンの赤の部分を伴うフォトダイオードは赤色の情報を通し(画素の4分の1)、パターンの青の部分を伴うフォトダイオードは青色の情報を通す(画素の4分の1)。
いくつかの場合、デバイスは複数のイメージセンサ(イメージセンサ2302に似ていてもよい)を含むことができ、この場合、本明細書において説明される機械学習ISPの動作は、複数のイメージセンサによって取得される生の画像データに適用されてもよい。たとえば、複数のカメラがあるデバイスは、複数のカメラを使用して画像データを取り込むことができ、機械学習ISP2300は、複数のカメラからの生の画像データにISP動作を適用することができる。1つの説明のための例では、より広角の(たとえば、より視野(FOV)が広い)より大きな画像を取り込み、より多くの光を取り込み(様々な利点の中でもとりわけ、より高いシャープネスとクラリティをもたらす)、360度(たとえば、仮想現実)ビデオを生成し、および/またはシングルカメラデバイスによって達成されるものより向上した他の機能を実行するために、デュアルカメラ携帯電話、タブレット、または他のデバイスが使用されてもよい。
生の画像パッチ2306は、機械学習ISP2300による処理のために、入力インターフェース2301に提供され、それにより受け取られる。機械学習ISP2300は、ISPのタスクのためにニューラルネットワークシステム2303を使用することができる。たとえば、ニューラルネットワークシステム2303のニューラルネットワークは、イメージセンサによって取り込まれる生の画像トレーニングデータから最終的な出力画像へのマッピングを直接導くようにトレーニングされてもよい。たとえば、ニューラルネットワークは、多数の生のデータ入力(たとえば、カラーフィルタリングされたパターンを伴う)の例を使用して、また、望まれる対応する出力画像の例を使用して、トレーニングされてもよい。トレーニングデータを使用して、ニューラルネットワークシステム2303は、出力画像を得るために必要とされる生の入力からのマッピングを学習することができ、その後で、ISP2300は、従来のISPによって生み出されるものと同様の出力画像を生み出すことができる。
ISP2300のニューラルネットワークは、入力層、複数の隠れ層、および出力層を含んでもよい。入力層は、イメージセンサ2302によって取得される生の画像データ(たとえば、生の画像パッチ2306または生の画像データの完全なフレーム)を含む。隠れ層は、生の画像データに、および/または前の隠れ層からの出力に適用されてもよい、フィルタを含んでもよい。隠れ層のフィルタの各々は、フィルタのノードの重要性を示すために使用される重みを含んでもよい。1つの説明のための例では、フィルタは、入力アレイの周りで畳み込まれる3×3の畳み込みフィルタを含んでもよく、3×3のフィルタの各エントリは固有の重み値を有する。入力アレイに適用される3×3のフィルタの各々の畳み込みの反復(またはストライド)において、単一の重み付けられた出力特徴値が生み出されてもよい。ニューラルネットワークは、一連の多数の隠れ層を有してもよく、前方の層は入力の低水準の特性を決定し、後方の層はより複雑な特性の階層を構築する。ISP2300のニューラルネットワークの隠れ層は、データの高次元の表現と接続される。たとえば、層は、多数のチャネル(次元)を伴ういくつかの反復的な畳み込みのブロックを含んでもよい。いくつかの場合、チャネルの数は、RGBまたはYCbCr画像におけるチャネルの数より桁が1つ大きくてもよい。以下で与えられる説明のための例は、各々64個のチャネルを伴う反復的な畳み込みを含み、高品質の画像ディテールを生み出す非線形の階層ネットワーク構造をもたらす。たとえば、本明細書においてより詳しく説明されるように、チャネルの数n(たとえば、64個のチャネル)は、各画素位置におけるデータのn次元(たとえば、64次元)の表現を有することを指す。概念的には、チャネルの数nは、画素位置における「n個の特徴」(たとえば、64個の特徴)を表す。
ニューラルネットワークシステム2303は、様々な複数のISP機能を共同で達成する。ニューラルネットワークシステム2303によって適用されるニューラルネットワークの特定のパラメータは、従来のISPでは明確に類似するものがなく、逆に、従来のISPシステムの特定の機能ブロックは、機械学習ISPには明確に対応するものがない。たとえば、機械学習ISPは、様々な機能を実行するために典型的なISPが含む可能性のある個々の機能ブロックを有するのではなく、単一のユニットとして信号処理機能を実行する。ニューラルネットワークシステム2303によって適用されるニューラルネットワークのさらなる詳細が以下で説明される。
いくつかの例では、機械学習ISP2300は、入力データを増強するために追加の画像チューニングパラメータを処理することができる、任意選択の前処理エンジン2307も含んでもよい。そのような追加の画像チューニングパラメータ(または増強データ)は、たとえばトーンデータ、半径方向距離データ、オートホワイトバランス(AWB)ゲインデータ、これらの任意の組合せ、および/または入力データの画素を増強することができる任意の他の追加のデータを含んでもよい。生の入力画素を補うことによって、入力は生の画像データの各画素位置に対する値の多次元のセットになる。
決定された高水準の特徴に基づいて、ニューラルネットワークシステム2303は、生の画像パッチ2306に基づいてRGB出力2308を生成することができる。RGB出力2308は、赤色成分、緑色成分、および青色成分を画素ごとに含む。本出願では、RGB色空間が例として使用される。輝度および色差(YCbCrまたはYCV)色成分、または他の適切な色成分などの他の色空間も使用されてもよいことを当業者は理解するだろう。RGB出力2308は、機械学習ISP2300の出力インターフェース2305から出力され、最終的な出力画像2309(出力層を構成する)における画像パッチを生成するために使用されてもよい。いくつかの場合、RGB出力2308の中の画素のアレイは、入力される生の画像パッチ2306の次元より少ない次元を含んでもよい。ある説明のための例では、生の画像パッチ2306は、生の画素の128×128のアレイ(たとえば、ベイヤーパターンの)を含んでもよいが、ニューラルネットワークシステム2303のそれぞれの畳み込みフィルタの適用により、RGB出力2308は画素の8×8のアレイを含むようになる。RGB出力2308の出力サイズが生の画像パッチ2306より小さいことは、畳み込みフィルタの適用と、畳み込みフィルタの各々を通じて処理されるデータをパディングしないようにニューラルネットワークシステム2303を設計することとの副産物である。複数の畳み込み層があることによって、出力サイズはより低減される。そのような場合、入力される生の画像データのフレーム2304からのパッチは重複していることがあるので、最終的な出力画像2309は完全なピクチャを含む。得られる最終的な出力画像2309は、ニューラルネットワークシステム2303によって生の入力データから導かれる処理された画像データを含む。最終的な出力画像2309は、表示のためにレンダリングされ、圧縮(またはコーディング)のために使用され、記憶され、またはあらゆる他の画像ベースの目的のために使用されてもよい。
図24は、機械学習(ML)イメージシグナルプロセッサ(ISP)2300のニューラルネットワークアーキテクチャ2400の例を示すブロック図である。画素シャッフルアップサンプリングは、チャネルの次元が空間次元に沿って形状変更されるようなアップサンプリング方法である。説明を目的とする2倍(2x)のアップサンプリングを使用する一例では、4つのチャネルに沿ったxxxx(4つのチャネル×1つの空間位置を指す)が、2倍の空間次元:xx xx(1つのチャネル×4つの空間位置を指す)を伴う単一のチャネルを生成するために使用される。画素シャッフルアップサンプリングの例は、Andrew Aitken他による"Checkerboard artifact free sub-pixel convolution"において説明されており、これは全体がすべての目的のために参照によって本明細書に組み込まれる。
機械学習を使用してISP機能を実行することによって、ISPはカスタマイズ可能になる。たとえば、標的となるデータ例を提示し、トレーニングを通じてネットワークの重みを変更することによって、様々な機能を開発して適用することができる。機械学習に基づくISPは、ハードワイヤードISPまたはヒューリスティックに基づくISPと比較して、更新のために高速なターンアラウンドを達成することもできる。さらに、機械学習に基づくISPは、あらかじめ調節されるISPのために必要とされるチューニングパラメータを調節する時間のかかるタスクをなくす。たとえば、ISPインフラストラクチャを管理するために、大量の労力と人員が使用される。機械学習ISPのためにホリスティックな開発を使用することができ、その開発の間に、エンドツーエンドシステムが直接最適化されて作成される。このホリスティックな開発は、あらかじめ調節されるISPの機能ブロックの1つ1つの開発とは対照的である。機械学習ISPに基づいて、撮像の革新を加速することもできる。たとえば、カスタマイズ可能な機械学習ISPは、多くの革新の可能性を解き放ち、様々な進化の中でもとりわけ、開発者およびエンジニアが、新規のセンサ、レンズ、カメラアレイとともに機能するように解決策をより迅速に導き、開発し、適応させることを可能にする。
上で述べられたように、上で説明された画像処理システム1406(たとえば、画像処理MLシステム210)および/または自動調整MLシステム1405は、ML ISPおよび/または従来のISPを調節するときに使用されてもよい。上で説明された様々なチューニングマップ(たとえば、上で論じられたノイズマップ、シャープネスマップ、トーンマップ、飽和度マップ、および/もしくは色相マップ、ならびに/または画像処理機能に関連する別の他のマップ)が、ISPを調節するために使用されてもよい。マップは、ISOを調節するために使用されるとき、調節可能ノブと呼ばれ得てもよい。ISPを調節するために使用されてもよいチューニングマップ(または調節可能ノブ)の例には、とりわけ局所的なトーン操作(たとえば、トーンマップを使用した)、ディテール強調、色飽和がある。いくつかの場合、局所的なトーン操作は、(たとえば、OpenCVを使用した)コントラスト制限適応ヒストグラム均等化を含んでもよい。いくつかの場合、ディテール強調は、(たとえば、OpenCVを使用した)エッジ認識フィルタリングのためにドメイン変換を使用して実行されてもよい。いくつかの例では、色飽和は、Pillowライブラリを使用して実行されてもよい。いくつかの実装形態では、自動調整MLシステム1705は、ISPを調節するために使用されるチューニングマップまたはノブを生成するために使用されてもよい。
キー2420は、様々なNNの動作が図21Aにおいてどのように示されるかを特定する。たとえば、3×3のフィルタおよび1というストライドを伴う畳み込みは、右を指しており輪郭が黒い、太く白い矢印により示されている。2×2のフィルタおよび2というストライドを伴う畳み込みは、下を指している太く黒い矢印により示されている。アップサンプリング(たとえば、双線形アップサンプリング)は、上を指している太く黒い矢印により示されている。
図25Aは、いくつかの例による、修正された画像を生成するために例示的な入力画像に適用される第1のトーン調整の強さの例を示す概念図である。図25Aの修正された画像に対するトーン調整の強さは0.0である。
図25Bは、いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第2のトーン調整の強さの例を示す概念図である。図25Aの修正された画像に対するトーン調整の強さは0.5である。
図25Aおよび図25Bは、OpenCVの実装形態を使用してCLAHEを実行することによる、様々なトーンレベルの適用の例を示す画像である。たとえば、画像を固定された格子へと区分することができ、累積分布関数(CDF)を計算する前に、あらかじめ定められた値にヒストグラムを制限することができる。制限値は、局所的なトーン操作の強さを決定することができる。図25Aおよび図25Bの例では、適用は0.5という最大の制限値を含む。最終的な結果を得るために、格子変換は補間されてもよい。示されるように、トーンの変化は、ISPにより処理される画像の画素に適用される異なる量の輝度調整をもたらし、これはより暗いまたは明るいトーンの画像をもたらすことができる。
図26Aは、いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第1のディテール調整の強さの例を示す概念図である。図26Aの修正された画像に対するディテール調整(ディテール強調)の強さは0.0である。
図26Bは、いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第2のディテール調整の強さの例を示す概念図である。図26Aの修正された画像に対するディテール調整(ディテール強調)の強さは0.5である。
図26Aおよび図26Bは、OpenCVの実装形態を使用した様々なディテール強調の適用の例を示す画像である。たとえば、元の画像のエッジ保存平滑化のために、ディテール強調が使用されてもよい。ディテールは、飽和度マップに関して上で説明されたように表現されてもよい。たとえば、画像ディテールは、入力画像からフィルタリングされた画像(エッジ保存フィルタリングから生じる滑らかにされた画像)を差し引くことによって取得されてもよい。ディテールは、複数の規模で強調されてもよい。距離シグマは0.05に等しくてもよい(Range sigma = 0.05)。上で述べられたように、空間シグマはバイラテラルフィルタのハイパーパラメータである。空間シグマは、ディテール強調の強さを制御するために使用されてもよい。いくつかの例では、最大の空間シグマは5.0に設定されてもよい(Max Spatial Sigma = 5.0)。図26Aは空間シグマが0に等しい例を与えるが、図26Bは空間シグマが5.0という最大値に等しい例を示す。示されるように、図26Bの画像は、図26Aの画像と比較してより鮮明なディテールおよびより多くのノイズを有する。
図27Aは、いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第1の色飽和度調整の強さの例を示す概念図である。図27Aの修正された画像に対する第1の色飽和度値は0.0であり、最大の色不飽和の強さを示す。図27Aの修正された画像は、図25Aの例示的な入力画像のグレースケールバージョンを表す。
図27Bは、いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第2の色飽和度調整の強さの例を示す概念図である。図27Aの修正された画像に対する第2の色飽和度調整の強さは1.0であり、飽和度の変化がないことを示す(0という飽和度調整の強さ)。図27Bの修正された画像は、色飽和度において図25Aの例示的な入力画像と一致する。
図27Cは、いくつかの例による、修正された画像を生成するために図25Aの例示的な入力画像に適用される第3の色飽和度調整の強さの例を示す概念図である。図27Cの修正された画像に対する第3の色飽和度値は2.0であり、最大の色飽和度の増大の強さを示す。図27Cの修正された画像は、図25Aの例示的な入力画像の過度に飽和したバージョンを表す。図27Cの修正された画像の過剰に飽和した性質を示そうとして、図27A~図27Bまたは図25Aと比較して、図27Cではいくつかの要素がより明るく表されている。
図27A、図27B、および図27Cは、様々な色飽和度調整の適用の例を示す画像である。図27Aの画像は、0という飽和度が適用されて、図9から図11に関して上で説明されたものと同様のグレースケール(不飽和化した)画像が生じるときの画像を示す。図27Bの画像は、1.0という飽和度が適用されて、飽和度に変化が生じないときの画像を示す。図27Cの画像は、2.0という飽和度が適用されて、高度に飽和した画像が生じるときの画像を示す。
図28は、機械学習(ML)イメージシグナルプロセッサ(ISP)が、ML ISP2300を調節するために使用される様々なチューニングパラメータ(上記のチューニングマップと同様に)を入力として受け取ることの例を示すブロック図である。ML ISP2300は、図23に関して上で論じられたML ISP2300と同様であってもよく、同様の動作を実行してもよい。ML ISP2300は、トレーニングされた機械学習(ML)モデル2802を含む。パラメータの処理に基づいて、ML ISP2300のトレーニングされたMLモデル2802は、チューニングパラメータに基づいて強調された画像を出力する。シミュレートされたISOノイズと生の画像の中心からの半径方向距離とを伴う生の画像を含む画像データ2804が、入力として与えらえる。生の画像を取り込むために使用されるチューニングパラメータ2806は、赤チャネルゲイン、青チャネルゲイン、ISO速度、および露出時間を含む。チューニングパラメータ2806は、トーン強調の強さ、ディテール強調の強さ、および色飽和の強さを含む。追加のチューニングパラメータ2806は、上で論じられたチューニングマップと同様であり、画像レベルで適用されてもよく(単一の値が画像全体に適用される)、または画素レベルで適用されてもよい(画像の中の各画素に対して異なる値)。
図29は、機械学習(ML)イメージシグナルプロセッサ(ISP) ML ISP2300に提供されてもよい特定のチューニングパラメータ値の例を示すブロック図である。例示的な生の入力画像が、生の画像の中心からの半径方向距離を表す画像とともに示されている。示される生の画像データは、たとえば1つの色チャネル(たとえば、緑)だけのための画像データを表してもよい。生の入力画像を取り込むために使用されるチューニングパラメータ2816に対して、赤のゲイン値は1.957935であり、青のゲイン値は1.703827であり、ISO速度は500であり、露出時間は3.63e-04である。チューニングパラメータは、0.0というトーンの強さ、0.0というディテールの強さ、および1.0という飽和化の強さを含む。
図30は、機械学習(ML)イメージシグナルプロセッサ(ISP) ML ISP2300に提供されてもよい特定のチューニングパラメータ値の追加の例を示すブロック図である。図29に示されるものと同じ生の入力画像、半径方向距離情報、および画像キャプチャパラメータ(赤のゲイン、青のゲイン、ISO速度、および露出時間)が、図30に示されている。図29のチューニングパラメータ2816と比較して異なるチューニングパラメータ2826が与えられる。チューニングパラメータ2826は、0.2というトーンの強さ、1.9というディテールの強さ、および1.9という飽和化の強さを含む。図30の出力強調画像2828は、チューニングパラメータの違いに基づいて、図29の出力強調画像2808と比較して異なる外観を有する。たとえば、図30の出力強調画像2828は、高度に飽和しておりより精細なディテールを有するが、図29の強調画像は、飽和化の効果またはディテール強調がない。図28から図30はカラーではなくグレースケールで示されているので、出力強調画像2828および出力強調画像2808の赤のチャネルが、赤色の飽和度の変化を示すために図28から図30に示されている。赤色の飽和度の上昇はより明るいエリアとして見えるが、赤色の飽和度の低下はより暗いエリアとして見える。図30は出力強調画像2828の赤のチャネルを示すので、出力強調画像2828におけるより明るい花(出力強調画像2808および生の画像データと比較して)は、出力強調画像2828の花の赤色がより飽和していることを示す。
ML ISP2300のトレーニングされたMLモデル2802は、チューニングパラメータ(たとえば、チューニングマップまたはノブ)を処理し、強調または修正された出力画像を生成するようにトレーニングされる。トレーニングのセットアップは、PyTorch Implementationを含んでもよい。ネットワーク受容野は、160×160に設定されてもよい。トレーニング画像は、1つまたは複数のデバイスによって取り込まれる数千の画像を含んでもよい。パッチに基づくトレーニングを実行することができ、このとき、(画像全体ではなく)入力画像のパッチが、トレーニングの間にML ISP2300に提供されてもよい。いくつかの例では、入力パッチは320×320というサイズを有し、ML ISP2300によって生成される出力パッチは160×160というサイズを有する。サイズの低減は、ML ISP2300のニューラルネットワークの畳み込みの性質に基づいてもよい(たとえば、ニューラルネットワークはCNNまたは畳み込みフィルタを使用する他のネットワークとして実装される)。いくつかの場合、各々のトレーニングの反復において、画像パッチのバッチがML ISP2300に提供されてもよい。ある説明のための例では、バッチサイズは128個の画像を含んでもよい。ニューラルネットワークは、validation lossが安定するまでトレーニングされてもよい。いくつかの場合、ネットワークをトレーニングするために確率的勾配降下法(たとえば、Adam最適化器)が使用されてもよい。いくつかの場合、0.0015という学習率が使用されてもよい。いくつかの例では、トレーニングされたMLモデル2802は、1つまたは複数のトレーニングされたサポートベクターマシン、1つまたは複数のトレーニングされたニューラルネットワーク、またはこれらの組合せを使用して実装されてもよい。
図31は、機械学習(ML)イメージシグナルプロセッサ(ISP)ML ISP2300のトレーニングの間に使用されてもよい目的関数および様々な損失の例を示すブロック図である。画素ごとの損失は、L1損失およびL2損失を含む。画素ごとの損失は、ML ISP2300によって生成される出力画像に対してより優れた色再現をもたらすことができる。ML ISP2300をトレーニングするために、構造損失も使用されてもよい。構造損失は、構造類似性インデックス(SSIM)を含む。SSIMのために、7×7というウィンドウサイズおよび1.5というガウシアンシグマが使用されてもよい。使用できる別の構造損失は、マルチスケールSSIM(MS-SSIM)である。MS-SSIMのために、7×7というウィンドウサイズ、1.5というガウシアンシグマ、および[0.9, 0.1]というスケール重みが使用されてもよい。高周波情報をより保つために、構造損失が使用されてもよい。図31に示されるようなL1損失およびMS-SSIMなどの画素ごとの損失および構造損失が一緒に使用されてもよい。
いくつかの例では、ML ISP2300は、ML ISP2300のニューラルネットワークがトレーニングされた後、パッチごとのモデル推測を実行することができる。たとえば、ニューラルネットワークへの入力は、生の画像データのフレームからの1つまたは複数の生の画像パッチ(たとえば、ベイヤーパターンを有する)を含むことができ、出力は、出力RGBパッチ(またはYUVなどの他の色成分表現を有するパッチ)を含むことができる。ある説明のための例では、ニューラルネットワークは、128×128ピクセルの生の画像パッチを入力として取り込み、8×8×3のRGBパッチを最終的な出力として生み出す。ニューラルネットワークによって適用される様々な畳み込みフィルタの畳み込みの性質に基づいて、生の画像パッチからの8×8のアレイの外側の画素位置の多くが、最終的な8×8の出力パッチを生成するためにネットワークによって消費される。入力から出力でデータがそのように減少することは、画素を処理するための近隣情報を理解するために必要とされるコンテキストの量によるものである。すべての近隣情報およびコンテキストを伴うより大きい入力の生の画像パッチがあることは、より小さい出力RGBパッチの処理と産生の助けとなる。
いくつかの例では、入力から出力で画素位置が減少することに基づいて、128×128の生の画像パッチは、それらが生の入力画像において重複するように設計される。そのような例では、8×8の出力は重複していない。たとえば、生の画像フレームの左上の角にある最初の128×128の生の画像パッチに対して、最初の8×8のRGB出力パッチが生み出される。生の画像フレームの中の次の128×128のパッチは、最後の128×128のパッチの右の8個の画素であるので、最後の128×128の画素パッチと重複する。次の128×128のパッチは、第2の8×8のRGB出力パッチを生み出すためにニューラルネットワークによって処理される。第2の8×8のRGBパッチは、完全な最終的な出力画像において、最初の8×8のRGB出力パッチ(前の128×128の生の画像パッチを使用して生み出される)の隣に置かれる。そのような処理が、完全な出力画像を構成する8×8のパッチが生み出されるまで実行されてもよい。
図32は、いくつかの例による、第1の画像位置において重複しない出力パッチをもたらすパッチごとのモデル推測の例を示す概念図である。
図33は、いくつかの例による、第2の画像位置における図32のパッチごとのモデル推測の例を示す概念図である。
図34は、いくつかの例による、第3の画像位置における図32のパッチごとのモデル推測の例を示す概念図である。
図35は、いくつかの例による、第4の画像位置における図32のパッチごとのモデル推測の例を示す概念図である。
図32、図33、図34、および図35は、重複しない出力パッチをもたらす、パッチごとのモデル推測の例を示す図である。図32から図35に示されるように、入力パッチはko+160というサイズを有してもよく、koは出力パッチサイズである(出力パッチサイズはkoに等しい)。対角方向に縞模様がある画素は、パディング画素(たとえば、反射性)を指す。図32から図35において破線の輪郭をもつボックスにより示されるように、入力パッチは重複する。白いボックスにより示されるように、出力パッチは重複しない。
上で説明されたように、追加のチューニングパラメータ(またはチューニングマップまたは調節ノブ)は、画像レベルで適用されてもよく(単一の値が画像全体に適用される)、または画素レベルで適用されてもよい(画像の中の各画素に対して異なる値)。
図36は、画像レベルで適用される空間的に固定されたトーンマップ(またはマスク)の例を示す概念図であり、tの単一の値が画像のすべての画素に適用される。上で説明されたように、(たとえば、図8に示されるように)画像の様々な画素のための異なる値を含み、したがって空間的に変化してもよいトーンマップが、提供されてもよい。
図37は、いくつかの例による、入力画像データ3702を処理して、飽和度調整の強さが空間的に変化する出力画像3715を生成するための、空間的に変化するマップ3703(またはマスク)の適用の例を示す概念図である。空間的に変化するマップ3703は、飽和度マップを含む。空間的に変化するマップ3703は、イメージセンサによって生み出される生の画像3702(ベイヤー画像とも呼ばれる)の中の画素に対応する各位置に対する値を含む。空間的に固定されたマップとは対照的に、空間的に変化するマップ3703の中の異なる位置の値は異なってもよい。空間的に変化するマップ3703は、前景の花を描写する生の画像3702の中の画素のエリアに対応する0.5という値を含む。値が0.5であるこのエリアは、空間的に変化するマップ3703では灰色で示されている。空間的に変化するマップ3703における0.5という値は、そのエリアの飽和度が上昇も低下もせず同じままであるべきであることを示す。空間的に変化するマップ3703は、花の後ろの背景を描写する生の画像3702の中の画素のエリアに対応する0.0という値を含む。値が0.0であるこのエリアは、空間的に変化するマップ3703では黒で示されている。入力飽和度マップ203における0.0という値は、そのエリアが完全に不飽和化されるべきであることを示す。修正された画像3715は、空間的に変化するマップ3703に基づく強さと向きに飽和化を適用することによって(たとえば、画像処理MLシステム210によって)生成される画像の例を示す。修正された画像3705は、前景の花はまだ参照画像3716と同じ程度に飽和している(飽和化の強さが変化していない)が、背景は完全に不飽和化しており、したがってグレースケールで描写されるような、画像を表す。参照画像3716は、生の画像3702の全体に適用される中立的な飽和度(0.5)を用いてシステムが生み出すことが予想される、基本画像として使用される。図37はカラーではなくグレースケールで示されているので、修正された画像3705および参照画像3716の緑のチャネルが、緑色の飽和度の変化を示すために図37において示されている。緑色の飽和度の上昇はより明るいエリアとして見えるが、緑色の飽和度の低下はより暗いエリアとして見える。図37は修正された画像3705の緑のチャネルを示し、花の後ろの背景は主に緑色であるので、背景は修正された画像3705では(参照画像3716と比較して)非常に暗く見え、修正された画像3705の背景の緑色が不飽和化している(参照画像3716と比較して)ことを示す。
図38は、いくつかの例による、入力画像データ3802を処理して、トーン調整の強さが空間的に変化しディテール調整の強さが空間的に変化する出力画像3815を生成するための、空間的に変化するマップ3803の例示的な適用を示す概念図である。空間的に変化するマップ3703は、トーンマップを含む。空間的に変化するマップ3803は、イメージセンサによって生み出される生の画像3802(ベイヤー画像とも呼ばれる)の中の画素に対応する各位置に対する値を含む。空間的に変化するマップ3803の中の異なる位置の値は異なってもよい。空間的に変化するマップ3803は、前景の花を描写する生の画像3802の中の画素のエリアに対応する、0.5というトーン値および5.0というディテール値を含む。トーン値が0.5でありディテール値が5.0であるこのエリアは、空間的に変化するマップ3803では白で示されている。空間的に変化するマップ3803における0.5というトーン値は、1.0というガンマ(γ)値(100.0に対応する)を示し、そのエリアにおけるトーンが変化なく同じままであるべきであることを意味する。空間的に変化するマップ3803における5.0というディテール値は、そのエリアのディテールが上昇すべきであることを示す。空間的に変化するマップ3803は、花の後ろの背景を描写する生の画像3802の中の画素のエリアに対応する、0.0というトーン値および0.0というディテール値を含む。トーン値が0.0でありディテール値が0.0であるこのエリアは、空間的に変化するマップ3803では黒で示されている。入力トーンマップ203における0.0というトーン値は、2.5というガンマ(γ)値(100.4に対応する)を示し、そのエリアにおけるトーンが暗くされるべきであることを意味する。図38のトーン値からガンマ値へのマッピングの向きは、図7のトーン値からガンマ値へのマッピングの向きと逆であり、0が明るくし、1が暗くする。空間的に変化するマップ3803における5.0というディテール値は、そのエリアのディテールが低下すべきであることを示す。修正された画像3815は、空間的に変化するマップ3803に基づく強さと向きにトーンおよびディテールを修正することによって(たとえば、画像処理MLシステム210によって)生成される画像の例を示す。修正された画像3805は、前景の花が同じトーン(参照画像3816と比較して)を、しかし向上したディテール(参照画像3816と比較して)を有し、背景は暗くされたトーン(参照画像3816と比較して)および低減されたディテール(参照画像3816と比較して)を有する画像を表す。参照画像3816は、生の画像3802の全体に適用される中立的なトーン(0.5)および中立的なディテールを用いてシステムが生み出すことが予想される、基本画像として使用される。
図39は、入力画像を調整するために1つまたは複数のチューニングマップを使用して画像処理システムによって生成される自動的に調整される画像を示す概念図である。
図40Aは、いくつかの例による、自動調整機械学習(ML)システムを使用して生成される1つまたは複数の空間的に変化するチューニングマップを使用して画像処理システムによって生成される出力画像を示す概念図である。入力画像および出力画像が図40Aに示されている。出力画像は、1つまたは複数の空間的に変化するチューニングマップに基づいて修正される入力画像の修正された変形である。
図40Bは、いくつかの例による、図40Aに示される入力画像から図40Aに示される出力画像を生成するために使用されてもよい空間的に変化するチューニングマップの例を示す概念図である。図40Aの入力画像および出力画像を再び示すことに加えて、図40Bは、ディテールマップ、ノイズマップ、トーンマップ、飽和度マップ、および色相マップを示す。
図41Aは、いくつかの例による、自動調整機械学習(ML)システムを使用して生成される1つまたは複数の空間的に変化するチューニングマップを使用して画像処理システムによって生成される出力画像を示す概念図である。入力画像および出力画像が図41Aに示されている。出力画像は、1つまたは複数の空間的に変化するチューニングマップに基づいて修正される入力画像の修正された変形である。
図41Bは、いくつかの例による、図41Aに示される入力画像から図41Aに示される出力画像を生成するために使用されてもよい空間的に変化するチューニングマップの例を示す概念図である。図41Aの入力画像を再び示すことに加えて、図41Bは、シャープネスマップ、ノイズマップ、トーンマップ、飽和度マップ、および色相マップを示す。
図42Aは、本明細書において説明される技法を使用して1つまたは複数のニューラルネットワークを使用して画像データを処理するためのプロセス4200の例を示すフローチャートである。プロセス4200は、撮像システムによって実行されてもよい。撮像システムは、たとえば画像キャプチャおよび処理システム100、画像キャプチャデバイス105A、画像処理デバイス105B、イメージプロセッサ150、ISP154、ホストプロセッサ152、画像処理MLシステム210、図14Aのシステム、図14Bのシステム、図14Cのシステム、図14Dのシステム、画像処理システム1406、自動調整MLシステム1405、ダウンサンプラ1418、アップサンプラ1426、ニューラルネットワーク1500、ニューラルネットワークアーキテクチャ1900、ニューラルネットワークアーキテクチャ2000、ニューラルネットワークアーキテクチャ2100A、ニューラルネットワークアーキテクチャ2100B、spatial attentionエンジン2110、channel attentionエンジン2115、イメージセンサ2202、あらかじめ調節されるISP2208、機械学習(ML)ISP2300、ニューラルネットワークシステム2303、前処理エンジン2307、入力インターフェース2301、出力インターフェース2305、ニューラルネットワークアーキテクチャ2400、トレーニングされた機械学習モデル2802、プロセス4200を実行する撮像システム、コンピューティングシステム4300、またはこれらの組合せを含んでもよい。
ブロック4202において、プロセス4200は、撮像システムが画像データを取得することを含む。いくつかの実装形態では、画像データは、画像データの各画素に対する複数の色成分を有する処理された画像を含む。たとえば、画像データは、1つまたは複数のRGB画像、1つまたは複数のYUV画像、または、図1に示される画像キャプチャおよび処理システム100によって生成されるシーン110の画像などのカメラシステムによって以前に取り込まれて処理された他のカラー画像を含んでもよい。いくつかの実装形態では、画像データは、1つまたは複数のイメージセンサ(たとえば、イメージセンサ130)からの生の画像データを含む。生の画像データは、画像データの各画素に対する単一の色成分を含む。いくつかの場合、生の画像データは、ベイヤーカラーフィルタアレイなどのカラーフィルタアレイによってフィルタリングされる1つまたは複数のイメージセンサから取得される。いくつかの実装形態では、画像データは、画像データの1つまたは複数のパッチを含む。画像データのパッチは、画像データのフレームのサブセットを含む。いくつかの場合、修正された画像を生成することは、出力画像データの複数のパッチを生成することを含む。出力画像データの各パッチは、出力画像の画素のサブセットを含んでもよい。
生の画像データの例は、画像キャプチャおよび処理システム100を使用して取り込まれる画像データ、画像キャプチャデバイス105Aおよび/または画像処理デバイス105Bを使用して取り込まれる画像データ、入力画像202、入力画像302、入力画像402、入力画像602、入力画像802、入力画像1102、入力画像1302、入力画像1402、ダウンサンプリングされた入力画像1422、入力層1510、入力画像1606、入力画像1606、ダウンサンプリングされた入力画像1616、図17のIRGB、図17の輝度チャネルIy、輝度チャネル1820、画像パッチ1825、完全な画像入力1826、入力画像2130、カラーフィルタリングされた生の入力データ2204、出力カラー画像2209、生の画像データのフレーム2304、生の画像パッチ2306、RGB出力2308、最終的な出力画像2309、図24の生の入力画像、図24の出力RGB画像、図25A~図25Bの入力画像、図26A~図26Bの入力画像、図27A~図27Cの入力画像、画像データ2804、画像データ2814、図32~図35の入力パッチ、生の画像3702、参照画像3716、生の画像3802、参照画像3816、図39の入力画像、図40A~図40Bの入力画像、図41A~図41Bの入力画像、ブロック4252の画像データ、本明細書において説明される他の画像データ、本明細書において説明される他の画像、またはこれらの組合せを含んでもよい。いくつかの例では、プロセス4200のブロック4202は、プロセス4250のブロック4252に対応してもよい。
ブロック4204において、プロセス4200は、撮像システムが1つまたは複数のマップを取得することを含む。1つまたは複数のマップは、本明細書では1つまたは複数のチューニングマップとも呼ばれる。1つまたは複数のマップの各マップは、それぞれの画像処理機能に関連する。各マップはまた、画像データの対応する画素に適用すべき画像処理機能の量を示す値を含む。たとえば、1つまたは複数のマップのうちのあるマップは、複数の値を含み、画像処理機能に関連し、そのマップの複数の値の各値は、画像データの対応する画素に適用すべき画像処理機能の量を示す。上で論じられた図3Aおよび図3Bは、例示的なチューニングマップ(図3Bのチューニングマップ303)の値および例示的な入力画像(図3Aの入力画像302)の対応する画素を示す。
いくつかの場合、1つまたは複数のマップに関連する1つまたは複数の画像処理機能は、ノイズ低減機能、シャープネス調整機能、トーン調整機能、飽和度調整機能、色相調整機能、またはこれらの任意の組合せを含む。いくつかの例では、画像処理機能に各々関連する複数のチューニングマップが取得されてもよい。たとえば、1つまたは複数のマップは複数のマップを含み、複数のマップのうちの第1のマップは第1の画像処理機能に関連し、複数のマップのうちの第2のマップは第2の画像処理機能に関連する。いくつかの場合、第1のマップは第1の複数の値を含むことができ、第1のマップの第1の複数の値の各値は、画像データの対応する画素に適用すべき第1の画像処理機能の量を示す。第2のマップは第2の複数の値を含むことができ、第2のマップの第2の複数の値の各値は、画像データの対応する画素に適用すべき第2の画像処理機能の量を示す。いくつかの場合、複数のマップの第1のマップに関連する第1の画像処理機能は、ノイズ低減機能、シャープネス調整機能、トーン調整機能、飽和度調整機能、および色相調整機能のうちの1つを含み、複数のマップの第2のマップに関連する第2の画像処理機能は、ノイズ低減機能、シャープネス調整機能、トーン調整機能、飽和度調整機能、および色相調整機能のうちの異なる1つを含む。ある説明のための例では、ノイズ低減機能に関連するノイズマップを取得することができ、シャープネス調整機能に関連するシャープネスマップを取得することができ、トーン調整機能に関連するトーンマップを取得することができ、飽和度調整機能に関連する飽和度マップを取得することができ、色相調整機能に関連する色相マップを取得することができる。
いくつかの例では、撮像システムは、ブロック4254のように、機械学習システムを使用して1つまたは複数のマップを生成することができる。機械学習システムは、1つまたは複数のトレーニングされた畳み込みニューラルネットワーク(CNN)、1つまたは複数のCNN、1つまたは複数のトレーニングされたニューラルネットワーク(NN)、1つまたは複数のNN、1つまたは複数のトレーニングされたサポートベクターマシン(SVM)、1つまたは複数のSVM、1つまたは複数のトレーニングされたランダムフォレスト、1つまたは複数のランダムフォレスト、1つまたは複数のトレーニングされた決定木、1つまたは複数の決定木、1つまたは複数のトレーニングされた勾配ブースティングアルゴリズム、1つまたは複数の勾配ブースティングアルゴリズム、1つまたは複数のトレーニングされた回帰アルゴリズム、1つまたは複数の回帰アルゴリズム、またはこれらの組合せを含んでもよい。機械学習システム、および/または上で列挙された機械学習要素(機械学習システムの一部であってもよい)のいずれかは、教師あり学習、教師なし学習、強化学習、深層学習、またはこれらの組合せを使用してトレーニングされてもよい。ブロック4204において1つまたは複数のマップを生成する機械学習システムは、ブロック4206において修正された画像を生成する機械学習システムと同じ機械学習システムであってもよい。ブロック4204において1つまたは複数のマップを生成する機械学習システムは、ブロック4206において修正された画像を生成する機械学習システムとは異なる機械学習システムであってもよい。
1つまたは複数のマップの例は、入力飽和度マップ203、空間チューニングマップ303、入力ノイズマップ404、入力鮮明化マップ604、入力トーンマップ804、入力飽和度マップ1104、入力色相マップ1304、空間的に変化するチューニングマップ1404、小さな空間的に変化するチューニングマップ1424、出力層1514、入力チューニングマップ1607、出力チューニングマップ1618、参照出力チューニングマップ1619、図17の空間的に変化するチューニングマップオメガ(Ω)、チューニングマップ1804、チューニングパラメータ2206、チューニングパラメータ2806、チューニングパラメータ2616、チューニングパラメータ2826、図36のトーンマップ、空間的に変化するマップ3703、空間的に変化するマップ3803、図40Bのディテールマップ、図40Bのノイズマップ、図40Bのトーンマップ、図40Bの飽和度マップ、図40Bの色相マップ、図41Bのシャープネスマップ、図41Bのノイズマップ、図41Bのトーンマップ、図41Bの飽和度マップ、図41Bの色相マップ、ブロック4254の1つまたは複数のマップ、本明細書において説明される他の空間的に変化するマップ、本明細書において説明される他の空間的に固定されるマップ、本明細書において説明される他のマップ、本明細書において説明される他のマスク、またはこれらの任意の組合せを含む。画像処理機能の例は、ノイズ低減、ノイズ追加、シャープネス調整、ディテール調整、トーン調整、色飽和度調整、色相調整、本明細書において説明される任意の他の画像処理機能、本明細書において説明される任意の他の画像処理パラメータ、またはこれらの任意の組合せを含む。いくつかの例では、プロセス4200のブロック4204は、プロセス4250のブロック4254に対応してもよい。
ブロック4206において、プロセス4200は、撮像システムが、機械学習システムへの入力として画像データおよび1つまたは複数のマップを使用して、修正された画像を生成することを含む。修正された画像は、出力画像と呼ばれることがある。修正された画像は、1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む。いくつかの場合、機械学習システムは少なくとも1つのニューラルネットワークを含む。いくつかの例では、プロセス4200は、修正された画像を生成するために使用される機械学習システムと異なる追加の機械学習システムを使用して、1つまたは複数のマップを生成することを含む。たとえば、1つまたは複数のマップを生成するために、図17の自動調整MLシステム1705を使用することができ、入力画像および1つまたは複数のマップに基づいて修正された画像を生成するために、画像処理MLシステム210を使用することができる。
修正された画像の例は、修正された画像215、修正された画像415、画像510、画像511、画像512、修正された画像615、出力画像710、出力画像711、および出力画像712、修正された画像815、出力画像1020、出力画像1021、出力画像1022、修正された画像1115、修正された画像1315、修正された画像1415、出力層1514、出力画像1608、参照出力画像1609、出力カラー画像2209、RGB出力2308、最終的な出力画像2309、図24の出力RGB画像、図25A~図25Bの修正された画像、図26A~図26Bの修正された画像、図27A~図27Cの修正された画像、出力強調画像2808、出力強調画像2828、図32~図35の出力パッチ、出力画像3715、参照画像3716、出力画像3815、参照画像3816、図39の自動的に調整される画像、図40A~図40Bの出力画像、図41Aの出力画像、ブロック4206の修正された画像、本明細書において説明される他の画像データ、本明細書において説明される他の画像、またはこれらの組合せを含む。いくつかの例では、プロセス4200のブロック4206は、プロセス4250のブロック4256に対応してもよい。
ブロック4206の機械学習システムは、1つまたは複数のトレーニングされた畳み込みニューラルネットワーク(CNN)、1つまたは複数のCNN、1つまたは複数のトレーニングされたニューラルネットワーク(NN)、1つまたは複数のNN、1つまたは複数のトレーニングされたサポートベクターマシン(SVM)、1つまたは複数のSVM、1つまたは複数のトレーニングされたランダムフォレスト、1つまたは複数のランダムフォレスト、1つまたは複数のトレーニングされた決定木、1つまたは複数の決定木、1つまたは複数のトレーニングされた勾配ブースティングアルゴリズム、1つまたは複数の勾配ブースティングアルゴリズム、1つまたは複数のトレーニングされた回帰アルゴリズム、1つまたは複数の回帰アルゴリズム、またはこれらの組合せを含んでもよい。ブロック4206の機械学習システム、および/または上で列挙された機械学習要素(機械学習システムの一部であってもよい)のいずれかは、教師あり学習、教師なし学習、強化学習、深層学習、またはこれらの組合せを使用してトレーニングされてもよい。
図42Bは、本明細書において説明される技法を使用して1つまたは複数のニューラルネットワークを使用して画像データを処理するためのプロセス4250の例を示すフローチャートである。プロセス4250は、撮像システムによって実行されてもよい。撮像システムは、たとえば画像キャプチャおよび処理システム100、画像キャプチャデバイス105A、画像処理デバイス105B、イメージプロセッサ150、ISP154、ホストプロセッサ152、画像処理MLシステム210、図14Aのシステム、図14Bのシステム、図14Cのシステム、図14Dのシステム、画像処理システム1406、自動調整MLシステム1405、ダウンサンプラ1418、アップサンプラ1426、ニューラルネットワーク1500、ニューラルネットワークアーキテクチャ1900、ニューラルネットワークアーキテクチャ2000、ニューラルネットワークアーキテクチャ2100A、ニューラルネットワークアーキテクチャ2100B、ニューラルネットワークアーキテクチャ2100C、ニューラルネットワークアーキテクチャ2100D、spatial attentionエンジン2110、channel attentionエンジン2115、イメージセンサ2202、あらかじめ調節されるISP2208、機械学習(ML)ISP2300、ニューラルネットワークシステム2303、前処理エンジン2307、入力インターフェース2301、出力インターフェース2305、ニューラルネットワークアーキテクチャ2400、トレーニングされた機械学習モデル2802、プロセス4200を実行する撮像システム、コンピューティングシステム4300、またはこれらの組合せを含んでもよい。
ブロック4252において、プロセス4250は、撮像システムが画像データを取得することを含む。いくつかの実装形態では、画像データは、画像データの各画素に対する複数の色成分を有する処理された画像を含む。たとえば、画像データは、1つまたは複数のRGB画像、1つまたは複数のYUV画像、または、図1に示される画像キャプチャおよび処理システム100によって生成されるシーン110の画像などのカメラシステムによって以前に取り込まれて処理された他のカラー画像を含んでもよい。画像データの例は、画像キャプチャおよび処理システム100を使用して取り込まれる画像データ、画像キャプチャデバイス105Aおよび/または画像処理デバイス105Bを使用して取り込まれる画像データ、入力画像202、入力画像302、入力画像402、入力画像602、入力画像802、入力画像1102、入力画像1302、入力画像1402、ダウンサンプリングされた入力画像1422、入力層1510、入力画像1606、ダウンサンプリングされた入力画像1616、図17のIRGB、図17の輝度チャネルIy、輝度チャネル1820、画像パッチ1825、完全な画像入力1826、入力画像2130、カラーフィルタリングされた生の入力データ2204、出力カラー画像2209、生の画像データのフレーム2304、生の画像パッチ2306、RGB出力2308、最終的な出力画像2309、図24の生の入力画像、図24の出力RGB画像、図25A~図25Bの入力画像、図26A~図26Bの入力画像、図27A~図27Cの入力画像、画像データ2804、画像データ2814、図32~図35の入力パッチ、生の画像3702、参照画像3716、生の画像3802、参照画像3816、図39の入力画像、図40A~図40Bの入力画像、図41A~図41Bの入力画像、ブロック4202の生の画像データ、本明細書において説明される他の画像データ、本明細書において説明される他の画像、またはこれらの組合せを含んでもよい。撮像システムは、画像データを取り込むイメージセンサを含んでもよい。撮像システムは、イメージセンサに結合されるイメージセンサコネクタを含んでもよい。ブロック4252における画像データを取得することは、イメージセンサから、および/またはイメージセンサコネクタを通じて、画像データを取得することを含んでもよい。
いくつかの例では、画像データは、画像データの複数の画素の各画素に対する複数の色成分を有する入力画像を含む。入力画像はすでに、たとえばISP154におけるモザイク除去を通じて、少なくとも部分的に処理されていることがある。入力画像は、画像キャプチャおよび処理システム100、画像キャプチャデバイス105A、画像処理デバイス105B、イメージプロセッサ150、イメージセンサ130、ISP154、ホストプロセッサ152、イメージセンサ2202、またはこれらの組合せを使用して、取り込まれ、および/または処理されてもよい。いくつかの例では、画像データは、1つまたは複数のイメージセンサからの生の画像データを含み、生の画像データは、画像データの複数の画素の各画素に対する少なくとも1つの色成分を含む。1つまたは複数のイメージセンサの例は、イメージセンサ130およびイメージセンサ2202を含んでもよい。生の画像データの例は、画像キャプチャおよび処理システム100を使用して取り込まれる画像データ、画像キャプチャデバイス105Aを使用して取り込まれる画像データ、入力画像202、入力画像302、入力画像402、入力画像602、入力画像802、入力画像1102、入力画像1302、入力画像1402、ダウンサンプリングされた入力画像1422、入力層1510、入力画像1606、ダウンサンプリングされた入力画像1616、図17のIRGB、図17の輝度チャネルIy、輝度チャネル1820、画像パッチ1825、完全な画像入力1826、入力画像2130、カラーフィルタリングされた生の入力データ2204、生の画像データのフレーム2304、生の画像パッチ2306、図24の生の入力画像、図25A~図25Bの入力画像、図26A~図26Bの入力画像、図27A~図27Cの入力画像、画像データ2804、画像データ2814、図32~図35の入力パッチ、生の画像3702、参照画像3716、生の画像3802、参照画像3816、図39の入力画像、図40A~図40Bの入力画像、図41A~図41Bの入力画像、ブロック4202の生の画像データ、本明細書において説明される他の生の画像データ、本明細書において説明される他の画像データ、本明細書において説明される他の画像、またはこれらの組合せを含んでもよい。画像データは、画像データの各画素に対する単一の色成分(たとえば、赤、緑、または青)を含んでもよい。画像データは、画像データの各画素に対する複数の色成分(たとえば、赤、緑、および/または青)を含んでもよい。いくつかの場合、画像データは、ベイヤーカラーフィルタアレイなどのカラーフィルタアレイによってフィルタリングされる1つまたは複数のイメージセンサから取得される。いくつかの例では、画像データは、画像データの1つまたは複数のパッチを含む。画像データのパッチは、たとえば1つまたは複数の連続するエリアまたは領域に対応する、画像データのフレームのサブセットを含む。いくつかの場合、修正された画像を生成することは、出力画像データの複数のパッチを生成することを含む。出力画像データの各パッチは、出力画像の画素のサブセットを含んでもよい。いくつかの例では、プロセス4250のブロック4252は、プロセス4200のブロック4202に対応してもよい。
ブロック4254において、プロセス4250は、撮像システムが、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用して、1つまたは複数のマップを生成することを含む。1つまたは複数のマップの各マップは、それぞれの画像処理機能に関連する。いくつかの例では、プロセス4250のブロック4254は、プロセス4200のブロック4204に対応してもよい。1つまたは複数のトレーニングされたニューラルネットワークの例は、画像処理MLシステム210、自動調整MLシステム1405、ニューラルネットワーク1500、自動調整MLシステム1705、ローカルニューラルネットワーク1806、グローバルニューラルネットワーク1807、ニューラルネットワークアーキテクチャ1900、ニューラルネットワークアーキテクチャ2000、ニューラルネットワークアーキテクチャ2100A、ニューラルネットワークアーキテクチャ2100B、ニューラルネットワークアーキテクチャ2100C、ニューラルネットワークアーキテクチャ2100D、ニューラルネットワークシステム2303、ニューラルネットワークアーキテクチャ2400、機械学習ISP2300、トレーニングされた機械学習モデル2802、1つまたは複数のトレーニングされた畳み込みニューラルネットワーク(CNN)、1つまたは複数のCNN、1つまたは複数のトレーニングされたニューラルネットワーク(NN)、1つまたは複数のNN、1つまたは複数のトレーニングされたサポートベクターマシン(SVM)、1つまたは複数のSVM、1つまたは複数のトレーニングされたランダムフォレスト、1つまたは複数のランダムフォレスト、1つまたは複数のトレーニングされた決定木、1つまたは複数の決定木、1つまたは複数のトレーニングされた勾配ブースティングアルゴリズム、1つまたは複数の勾配ブースティングアルゴリズム、1つまたは複数のトレーニングされた回帰アルゴリズム、1つまたは複数の回帰アルゴリズム、本明細書において説明される任意の他のトレーニングされたニューラルネットワーク、本明細書において説明される任意の他のニューラルネットワーク、本明細書において説明される任意の他のトレーニングされる機械学習モデル、本明細書において説明される任意の他の機械学習モデル、本明細書において説明される任意の他のトレーニングされる機械学習システム、本明細書において説明される任意の他の機械学習システム、またはこれらの任意の組合せを含む。ブロック4254の1つまたは複数のトレーニングされたニューラルネットワーク、および/または上で列挙された機械学習要素(ブロック4254の1つまたは複数のトレーニングされたニューラルネットワークの一部であってもよい)のいずれかは、教師あり学習、教師なし学習、強化学習、深層学習、またはこれらの組合せを使用してトレーニングされてもよい。
1つまたは複数のマップの例は、入力飽和度マップ203、空間チューニングマップ303、入力ノイズマップ404、入力鮮明化マップ604、入力トーンマップ804、入力飽和度マップ1104、入力色相マップ1304、空間的に変化するチューニングマップ1404、小さな空間的に変化するチューニングマップ1424、出力層1514、入力チューニングマップ1607、出力チューニングマップ1618、参照出力チューニングマップ1619、図17の空間的に変化するチューニングマップオメガ(Ω)、チューニングマップ1804、チューニングパラメータ2206、チューニングパラメータ2806、チューニングパラメータ2616、チューニングパラメータ2826、図36のトーンマップ、空間的に変化するマップ3703、空間的に変化するマップ3803、図40Bのディテールマップ、図40Bのノイズマップ、図40Bのトーンマップ、図40Bの飽和度マップ、図40Bの色相マップ、図41Bのシャープネスマップ、図41Bのノイズマップ、図41Bのトーンマップ、図41Bの飽和度マップ、図41Bの色相マップ、ブロック4204の1つまたは複数のマップ、本明細書において説明される他の空間的に変化するマップ、本明細書において説明される他の空間的に固定されるマップ、本明細書において説明される他のマップ、本明細書において説明される他のマスク、またはこれらの任意の組合せを含む。画像処理機能の例は、ノイズ低減、ノイズ追加、シャープネス調整、ディテール調整、トーン調整、色飽和度調整、色相調整、本明細書において説明される任意の他の画像処理機能、本明細書において説明される任意の他の画像処理パラメータ、またはこれらの任意の組合せを含む。
1つまたは複数のマップの各マップは、複数の値を含んでもよく、画像処理機能に関連してもよい。複数の値の例は、空間チューニングマップ303の値V0~V56を含んでもよい。複数の値の例は、入力飽和度マップ203、入力ノイズマップ404、入力鮮明化マップ604、入力トーンマップ804、入力飽和度マップ1104、入力色相マップ1304、空間的に変化するチューニングマップ1404、小さな空間的に変化するチューニングマップ1424、空間的に変化するマップ3703、空間的に変化するマップ3803、図40Bのディテールマップ、図40Bのノイズマップ、図40Bのトーンマップ、図40Bの飽和度マップ、図40Bの色相マップ、図41Bのシャープネスマップ、図41Bのノイズマップ、図41Bのトーンマップ、図41Bの飽和度マップ、図41Bの色相マップ、およびブロック4204の1つまたは複数のマップを含んでもよい。マップの複数の値の各値は、画像データの対応する領域に画像処理機能を適用する際に用いるべき強さを示してもよい。いくつかの例では、より高い数値(たとえば、1)は、画像データの対応する領域に画像処理機能を適用する際に用いるべきより強い強さを示してもよいが、より低い数値(たとえば、0)は、画像データの対応する領域に画像処理機能を適用する際に用いるべきより弱い強さを示してもよい。いくつかの例では、より低い数値(たとえば、0)は、画像データの対応する領域に画像処理機能を適用する際に用いるべきより強い強さを示してもよいが、より高い数値(たとえば、1)は、画像データの対応する領域に画像処理機能を適用する際に用いるべきより弱い強さを示してもよい。いくつかの例では、値(たとえば、0.5)は、0という強さで画像データの対応する領域に画像処理機能を適用することを示してもよく、これにより、画像処理機能は適用されず、したがって画像処理機能を使用した画像データの変化はなくなってもよい。画像データの対応する領域は、ブロック4202の画像データおよび/またはブロック4256の画像の画素に対応してもよい。画像データの対応する領域は、ブロック4202の画像データの、および/またはブロック4256の画像の複数の画素に対応してもよく、たとえばこのとき、たとえばスーパーピクセルを形成するために、再サンプリングするために、リサイズするために、および/またはリスケーリングするために、複数の画素がビニングされる。画像データの対応する領域は連続する領域であってもよい。複数の画素は連続する領域にあってもよい。複数の画素は互いに隣接してもよい。
マップの複数の値の各値は、画像データの対応する領域に画像処理機能を適用する際に用いるべき向きを示してもよい。いくつかの例では、閾値を超える数値(たとえば、0.5を超える)は、画像データの対応する領域に画像処理機能を適用する際に用いるべき正の向きを示してもよいが、閾値を下回る数値(たとえば、0.5を下回る)は、画像データの対応する領域に画像処理機能を適用する際に用いるべき負の向きを示してもよい。いくつかの例では、閾値を超える数値(たとえば、0.5を超える)は、画像データの対応する領域に画像処理機能を適用する際に用いるべき負の向きを示してもよいが、閾値を下回る数値(たとえば、0.5を下回る)は、画像データの対応する領域に画像処理機能を適用する際に用いるべき正の向きを示してもよい。画像データの対応する領域は、ブロック4202の画像データおよび/またはブロック4256の画像の画素に対応してもよい。画像データの対応する領域は、ブロック4202の画像データの、および/またはブロック4256の画像の複数の画素に対応してもよく、たとえばこのとき、たとえばスーパーピクセルを形成するために、再サンプリングするために、リサイズするために、および/またはリスケーリングするために、複数の画素がビニングされる。画像データの対応する領域は連続する領域であってもよい。複数の画素は連続する領域にあってもよい。複数の画素は互いに隣接してもよい。
いくつかの例では、飽和度調整に対する正の向きは過剰飽和をもたらしてもよいが、飽和度調整に対する負の向きは過少飽和または不飽和化をもたらしてもよい。いくつかの例では、トーン調整に対する正の向きは明るさおよび/または光度の上昇をもたらしてもよいが、トーン調整に対する負の向きは明るさおよび/または光度の低下をもたらしてもよい(またはその逆である)。いくつかの例では、シャープネス調整に対する正の向きはシャープネスの上昇(たとえば、ぼかしの減少)をもたらしてもよいが、シャープネス調整に対する負の向きはシャープネスの低下(たとえば、ぼかしの増加)をもたらしてもよい(またはその逆である)。いくつかの例では、ノイズ調整に対する正の向きはノイズ低減をもたらしてもよいが、トーン調整に対する負の向きはノイズ生成および/または追加をもたらしてもよい(またはその逆である)。いくつかの例では、色相調整に対する正および負の向きは、図12Bの概念図1216のような、色相調整されたベクトル1218の異なる角度シータ(θ)に対応してもよい。たとえば、色相調整に対する正および負の向きは、図12Bの概念図1216のような、色相調整されたベクトル1218の正および負の角度シータ(θ)に対応してもよい。いくつかの例では、画像処理機能のうちの1つまたは複数を、本明細書において論じられるような正の向きの処理に限定することができ、または、本明細書において論じられるような負の向きの処理に限定することができる。
1つまたは複数のマップは、複数のマップを含んでもよい。複数のマップのうちの第1のマップは第1の画像処理機能に関連してもよく、複数のマップのうちの第2のマップは第2の画像処理機能に関連してもよい。第2の画像処理機能は、第1の画像処理機能とは異なってもよい。いくつかの例では、複数のマップの少なくとも1つに関連する1つまたは複数の画像処理機能は、ノイズ低減機能、シャープネス調整機能、ディテール調整機能、トーン調整機能、飽和度調整機能、色相調整機能、またはこれらの組合せの少なくとも1つを含む。ある説明のための例では、ノイズ低減機能に関連するノイズマップを取得することができ、シャープネス調整機能に関連するシャープネスマップを取得することができ、トーン調整機能に関連するトーンマップを取得することができ、飽和度調整機能に関連する飽和度マップを取得することができ、色相調整機能に関連する色相マップを取得することができる。
第1のマップは第1の複数の値を含むことができ、第1のマップの第1の複数の値の各値は、画像データの対応する領域に第1の画像処理機能を適用する際に用いるべき強さおよび/または向きを示す。第2のマップは第2の複数の値を含むことができ、第2のマップの第2の複数の値の各値は、画像データの対応する領域に第2の画像処理機能を適用する際に用いるべき強さおよび/または向きを示す。画像データの対応する領域は、ブロック4202の画像データおよび/またはブロック4256の画像の画素に対応してもよい。画像データの対応する領域は、ブロック4202の画像データの、および/またはブロック4256の画像の複数の画素に対応してもよく、たとえばこのとき、たとえばスーパーピクセルを形成するために、再サンプリングするために、リサイズするために、および/またはリスケーリングするために、複数の画素がビニングされる。画像データの対応する領域は連続する領域であってもよい。複数の画素は連続する領域にあってもよい。複数の画素は互いに隣接してもよい。
いくつかの例では、画像データは、画像に対応する輝度チャネルデータを含む。輝度チャネルデータの例は、図17の輝度チャネルIyおよび/または輝度チャネル1820のデータを含んでもよい。1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用することは、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像に対応する輝度チャネルを使用することを含んでもよい。いくつかの例では、画像データに基づいて画像を生成することは、画像に対応する輝度チャネルデータならびに色差データに基づいて画像を生成することを含む。
いくつかの例では、1つまたは複数のトレーニングされたニューラルネットワークは、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用することに基づいて、1つまたは複数のアフィン係数を出力する。アフィン係数の例は、図17のアフィン係数aおよびbを含む。1つまたは複数のアフィン係数を出力する1つまたは複数のトレーニングされたニューラルネットワークの例は、自動調整MLシステム1705、ニューラルネットワークアーキテクチャ1900、ニューラルネットワークアーキテクチャ2000、ニューラルネットワークアーキテクチャ2100A、ニューラルネットワークアーキテクチャ2100B、ニューラルネットワークアーキテクチャ2100C、ニューラルネットワークアーキテクチャ2100D、またはこれらの組合せを含む。いくつかの例では、自動調整MLシステム1405は、アフィン係数(たとえば、aおよび/またはb)を生成することができ、アフィン係数に基づいて、空間的に変化するチューニングマップ1404および/または小さな空間的に変化するチューニングマップ1424を生成することができる。1つまたは複数のマップを生成することは、少なくとも、1つまたは複数のアフィン係数を使用して画像データを変換することによって、第1のマップを生成することを含んでもよい。画像データは、画像に対応する輝度チャネルデータを含んでもよいので、1つまたは複数のアフィン係数を使用して画像データを変換することは、1つまたは複数のアフィン係数を使用して輝度チャネルデータを変換することを含む。たとえば、図17は、式Ω=a*Iy+bに従ってチューニングマップΩを生成するために、図17のアフィン係数aおよびbを使用して輝度チャネルIyから輝度チャネルデータを変換することを示す。1つまたは複数のアフィン係数は、図17の乗数aなどの乗数を含んでもよい。1つまたは複数のアフィン係数を使用して画像データを変換することは、画像データの少なくともサブセットの輝度値を乗数によって乗算することを含んでもよい。1つまたは複数のアフィン係数は、図17のオフセットaなどのオフセットを含んでもよい。1つまたは複数のアフィン係数を使用して画像データを変換することは、画像データの少なくともサブセットの輝度値をオフセットによってオフセットすることを含んでもよい。いくつかの例では、1つまたは複数のトレーニングされたニューラルネットワークは、第1のマップにおける1つまたは複数の勾配を画像データにおける1つまたは複数の勾配と整合させる局所線形性の制約にも基づく、1つまたは複数のアフィン係数を出力する。局所線形性の制約の例は、局所線形性の制約1720を含んでもよく、これは式∇Ω=a*∇Iyに基づく。いくつかの例では、画像データ(たとえば、輝度データ)の少なくともサブセットを変換するために画像データの少なくともサブセットに(たとえば、輝度データに)1つまたは複数のアフィン係数を適用することは、局所線形性の制約によって制御されてもよい。
いくつかの例では、ブロック4254の1つまたは複数のトレーニングされたニューラルネットワークは、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを受け取ったことに応答して、1つまたは複数のマップを直接生成および/または出力する。たとえば、1つまたは複数のトレーニングされたニューラルネットワークは、アフィン係数を生成および/または出力することなく、画像に基づいて直接1つまたは複数のマップを生成および/または出力することができる。自動調整MLシステム1405は、たとえば空間的に変化するチューニングマップ1404および/もしくは小さな空間的に変化するチューニングマップ1424を直接生成ならびに/または出力することができる。いくつかの例では、アフィン係数を生成して使用するものとして本明細書において示され、および/もしくは説明される、様々なニューラルネットワークならびに/または機械学習システムは、アフィン係数をまず生成することなく、代わりに1つまたは複数のマップを直接出力するように修正されてもよい。たとえば、図17および/または図18の自動調整MLシステム1705は、アフィン係数1822を生成および/もしくは出力する代わりに、またはそれに加えて、チューニングマップ1804を出力層として直接生成および/または出力するように修正されてもよい。ニューラルネットワークアーキテクチャ1900は、アフィン係数1822を生成および/もしくは出力する代わりに、またはそれに加えて、チューニングマップ1804を出力層として直接生成および/または出力するように修正されてもよい。ニューラルネットワークアーキテクチャ2100Aは、アフィン係数1822を生成および/もしくは出力する代わりに、またはそれに加えて、チューニングマップ1804を出力層として直接生成および/または出力するように修正されてもよい。ニューラルネットワークアーキテクチャ2100Bは、アフィン係数1822を生成および/もしくは出力する代わりに、またはそれに加えて、チューニングマップ1804を出力層として直接生成および/または出力するように修正されてもよい。
1つまたは複数のマップの各マップは空間的に変化してもよい。1つまたは複数のマップの各マップは、画像データの異なる領域において描写される物体の様々なタイプまたはカテゴリに基づいて空間的に変化させられ得てもよい。そのようなマップの例は、入力飽和度マップ203、空間的に変化するマップ3703、および空間的に変化するマップ3803を含み、ここで、前景の花を描写する画像データの領域および背景を描写する画像データの領域は、1つまたは複数の対応する画像処理機能を適用する際に用いるべき異なる強さおよび/または向きにマッピングする。他の例では、マップは、人、顔、衣服、植物、空、水、雲、建物、表示画面、金属、プラスチック、コンクリート、レンガ、毛髪、木、質感のある表面、本明細書において論じられる任意の他のタイプもしくはカテゴリの物体、またはこれらの組合せなどの異なるタイプもしくはカテゴリの物体を描写する領域において異なる強さおよび/または向きに画像処理機能が適用されてもよいことを示してもよい。1つまたは複数のマップの各マップは、画像データの異なる領域における異なる色に基づいて空間的に変化させられ得てもよい。1つまたは複数のマップの各マップは、画像データの異なる領域における異なる画像属性に基づいて空間的に変化させられ得てもよい。たとえば、入力ノイズマップ404は、すでに滑らかである入力画像402のエリアにおいてノイズ除去が実行されるべきではないことを示すが、ノイズのある入力画像402のエリアにおいて比較的強いノイズ除去が実行されるべきであることを示す。
ブロック4256において、プロセス4250は、撮像システムが、画像データおよび1つまたは複数のマップに基づいて画像を生成することを含む。画像は、1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む。画像は、出力画像、修正された画像、またはこれらの組合せと呼ばれることがある。画像の例は、修正された画像215、修正された画像415、画像510、画像511、画像512、修正された画像615、出力画像710、出力画像711、および出力画像712、修正された画像815、出力画像1020、出力画像1021、出力画像1022、修正された画像1115、修正された画像1315、修正された画像1415、出力層1514、出力画像1608、参照出力画像1609、出力カラー画像2209、RGB出力2308、最終的な出力画像2309、図24の出力RGB画像、図25A~図25Bの修正された画像、図26A~図26Bの修正された画像、図27A~図27Cの修正された画像、出力強調画像2808、出力強調画像2828、図32~図35の出力パッチ、出力画像3715、参照画像3716、出力画像3815、参照画像3816、図39の自動的に調整される画像、図40A~図40Bの出力画像、図41Aの出力画像、ブロック4206の修正された画像、本明細書において説明される他の画像データ、本明細書において説明される他の画像、またはこれらの組合せを含む。いくつかの例では、プロセス4250のブロック4256は、プロセス4200のブロック4206に対応してもよい。画像は、画像キャプチャおよび処理システム100、画像処理デバイス105B、イメージプロセッサ150、ISP154、ホストプロセッサ152、画像処理MLシステム210、画像処理システム1406、ニューラルネットワーク1500、機械学習(ML)ISP2300、ニューラルネットワークシステム2303、前処理エンジン2307、入力インターフェース2301、出力インターフェース2305、ニューラルネットワークアーキテクチャ2400、トレーニングされた機械学習モデル2802、ブロック4206の機械学習システム、またはこれらの組合せなどのイメージプロセッサを使用して生成されてもよい。
いくつかの例では、画像データおよび1つまたは複数のマップに基づいて画像を生成することは、それらの1つまたは複数のトレーニングされたニューラルネットワークとは別個の1つまたは複数のトレーニングされたニューラルネットワークの第2のセットへの入力として、画像データおよび1つまたは複数のマップを使用することを含む。1つまたは複数のトレーニングされたニューラルネットワークの第2のセットの例は、画像処理MLシステム210、画像処理システム1406、ニューラルネットワーク1500、機械学習(ML)ISP2300、ニューラルネットワークシステム2303、ニューラルネットワークアーキテクチャ2400、トレーニングされた機械学習モデル2802、ブロック4206の機械学習システム、またはこれらの組合せを含んでもよい。いくつかの例では、画像データおよび1つまたは複数のマップに基づいて画像を生成することは、1つまたは複数のトレーニングされたニューラルネットワークの第2のセットを使用して画像データのモザイクを除去することを含む。
1つまたは複数のトレーニングされたニューラルネットワークの第2のセットは、1つまたは複数のトレーニングされた畳み込みニューラルネットワーク(CNN)、1つまたは複数のCNN、1つまたは複数のトレーニングされたニューラルネットワーク(NN)、1つまたは複数のNN、1つまたは複数のトレーニングされたサポートベクターマシン(SVM)、1つまたは複数のSVM、1つまたは複数のトレーニングされたランダムフォレスト、1つまたは複数のランダムフォレスト、1つまたは複数のトレーニングされた決定木、1つまたは複数の決定木、1つまたは複数のトレーニングされた勾配ブースティングアルゴリズム、1つまたは複数の勾配ブースティングアルゴリズム、1つまたは複数のトレーニングされた回帰アルゴリズム、1つまたは複数の回帰アルゴリズム、またはこれらの組合せを含んでもよい。1つまたは複数のトレーニングされたニューラルネットワークの第2のセット、および/または上で列挙された機械学習要素(1つまたは複数のトレーニングされたニューラルネットワークの第2のセットの一部であってもよい)のいずれかは、教師あり学習、教師なし学習、強化学習、深層学習、またはこれらの組合せを使用してトレーニングされてもよい。いくつかの例では、1つまたは複数のトレーニングされたニューラルネットワークの第2のセットは、ブロック4254の1つまたは複数のトレーニングされたニューラルネットワークであってもよい。いくつかの例では、1つまたは複数のトレーニングされたニューラルネットワークの第2のセットは、ブロック4254の1つまたは複数のトレーニングされたニューラルネットワークと、少なくとも1つのトレーニングされたニューラルネットワークを共有することができる。いくつかの例では、1つまたは複数のトレーニングされたニューラルネットワークの第2のセットは、ブロック4254の1つまたは複数のトレーニングされたニューラルネットワークとは別個であってもよい。
撮像システムは表示画面を含んでもよい。撮像システムは、表示画面に結合される表示画面コネクタを含んでもよい。撮像システムは、たとえば表示画面コネクタを使用して画像を表示画面に(および/またはディスプレイコントローラに)送信することによって、表示画面に画像を表示することができる。撮像システムは、有線および/またはワイヤレスであってもよい通信トランシーバを含んでもよい。撮像システムは、通信トランシーバを使用して画像を受信者デバイスに送信することができる。受信者デバイスは、任意のタイプのコンピューティングシステム4300またはそれらの任意の構成要素であってもよい。受信者デバイスは、画像を表示することができる、表示画面および/またはプロジェクタを持つデバイスなどの出力デバイスであってもよい。
いくつかの態様では、撮像システムは、画像データを取得するための手段と、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用して、1つまたは複数のマップを生成するための手段であって、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連する、手段と、画像データおよび1つまたは複数のマップに基づいて画像を生成するための手段であって、画像が1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む、手段とを含んでもよい。いくつかの例では、画像データを取得するための手段は、イメージセンサ130、画像キャプチャデバイス105A、画像キャプチャおよび処理システム100、イメージセンサ2202、またはこれらの組合せを含んでもよい。いくつかの例では、1つまたは複数のマップを生成するための手段は、画像処理デバイス105B、画像キャプチャおよび処理システム100、イメージプロセッサ150、ISP154、ホストプロセッサ152、画像処理MLシステム210、自動調整MLシステム1405、ニューラルネットワーク1500、自動調整MLシステム1705、ローカルニューラルネットワーク1806、グローバルニューラルネットワーク1807、ニューラルネットワークアーキテクチャ1900、ニューラルネットワークアーキテクチャ2000、ニューラルネットワークアーキテクチャ2100A、ニューラルネットワークアーキテクチャ2100B、ニューラルネットワークアーキテクチャ2100C、ニューラルネットワークアーキテクチャ2100D、ニューラルネットワークシステム2303、ニューラルネットワークアーキテクチャ2400、機械学習ISP2300、トレーニングされた機械学習モデル2802、またはこれらの組合せを含んでもよい。いくつかの例では、修正された画像を生成するための手段は、画像処理デバイス105B、画像キャプチャおよび処理システム100、イメージプロセッサ150、ISP154、ホストプロセッサ152、画像処理MLシステム210、画像処理システム1406、ニューラルネットワーク1500、機械学習(ML)ISP2300、ニューラルネットワークシステム2303、前処理エンジン2307、入力インターフェース2301、出力インターフェース2305、ニューラルネットワークアーキテクチャ2400、トレーニングされた機械学習モデル2802、ブロック4206の機械学習システム、またはこれらの組合せを含んでもよい。
いくつかの例では、本明細書において説明されるプロセス(たとえば、プロセス4200、プロセス4250、および/または本明細書において説明される他のプロセス)は、コンピューティングデバイスまたは装置によって実行されてもよい。一例では、プロセス4200および/またはプロセス4250は、図2の画像処理MLシステム210によって実行されてもよい。別の例では、プロセス4200および/またはプロセス4250は、図43に示されるコンピューティングシステム4300を伴うコンピューティングデバイスによって実行されてもよい。たとえば、図43に示されるコンピューティングシステム4300を伴うコンピューティングデバイスは、画像処理MLシステム210の構成要素を含むことができ、図43の動作を実施することができる。
コンピューティングデバイスは、モバイルデバイス(たとえば、携帯電話)、デスクトップコンピューティングデバイス、タブレットコンピューティングデバイス、ウェアラブルデバイス(たとえば、VRヘッドセット、ARヘッドセット、ARグラス、ネットワーク接続ウォッチもしくはスマートウォッチ、または他のウェアラブルデバイス)、サーバコンピュータ、自律運転車もしくは自律運転車のコンピューティングデバイス、ロボティックデバイス、テレビジョン、ならびに/または、プロセス4200および/もしくはプロセス4250を含む本明細書において説明されるプロセスを実行するためのリソース能力を持つ任意の他のコンピューティングデバイスなどの任意の適切なデバイスを含んでもよい。いくつかの場合、コンピューティングデバイスまたは装置は、1つまたは複数の入力デバイス、1つまたは複数の出力デバイス、1つまたは複数のプロセッサ、1つまたは複数のマイクロプロセッサ、1つまたは複数のマイクロコンピュータ、1つまたは複数のカメラ、1つまたは複数のセンサ、および/または本明細書において説明されるプロセスのステップを行うように構成される他の構成要素などの様々な構成要素を含んでもよい。いくつかの例では、コンピューティングデバイスは、ディスプレイ、データを通信および/または受信するように構成されるネットワークインターフェース、これらの任意の組合せ、および/または他の構成要素を含んでもよい。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信および/または受信するように構成されてもよい。
コンピューティングデバイスの構成要素は、回路で実装されてもよい。たとえば、構成要素は、1つまたは複数のプログラム可能電子回路(たとえば、マイクロプロセッサ、グラフィクス処理装置(GPU)、デジタルシグナルプロセッサ(DSP)、中央処理装置(CPU)、および/または他の適切な電子回路)を含んでもよい、電子回路もしくは他の電子ハードウェアを含むことができ、および/もしくはそれらを使用して実装されることが可能であり、ならびに/または、本明細書において説明される様々な動作を実行するために、コンピュータソフトウェア、ファームウェア、もしくはこれらの任意の組合せを含むことができ、および/もしくはそれらを使用して実装されることが可能である。
プロセス4200およびプロセス4250は、論理フロー図として示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実施されてもよい動作のシーケンスを表す。コンピュータ命令の文脈では、動作は、1つまたは複数のプロセッサによって実行されると、記載された動作を実施する、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることを意図せず、説明する任意の数の動作は、プロセスを実装するために任意の順序で、かつ/または並列に組み合わせられ得てもよい。
加えて、プロセス4200、プロセス4250、および/または本明細書において説明される他のプロセスは、実行可能命令を用いて構成された1つまたは複数のコンピュータシステムの制御下で実行されてもよく、1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで、まとめて実行するコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として実装されてもよい。上で述べられたように、コードは、たとえば1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形で、コンピュータ可読記憶媒体または機械可読記憶媒体に記憶されてもよい。コンピュータ可読記憶媒体または機械可読記憶媒体は非一時的であってもよい。
図43は、現在の技術のいくつかの態様を実装するためのシステムの例を示す図である。具体的には、図43はコンピューティングシステム4300の例を示し、これは、たとえば内部コンピューティングシステム、リモートコンピューティングシステム、カメラ、または、システムの構成要素が接続4305を使用して互いに通信しているそれらの任意の構成要素を構成する、任意のコンピューティングデバイスであってもよい。接続4305は、バスを使用した物理接続、またはチップセットアーキテクチャなどにおけるプロセッサ4310への直接接続であってもよい。接続4305はまた、仮想接続、ネットワーキングされた接続、または論理接続であってもよい。
いくつかの実施形態では、コンピューティングシステム4300は、本開示において説明される機能がデータセンター、複数のデータセンター、ピアネットワークなどに分散されてもよいような分散型システムである。いくつかの実施形態では、説明されたシステム構成要素の1つまたは複数は、構成要素の説明の対象である機能の一部またはすべてを各々実行するような多くの構成要素を表す。いくつかの実施形態では、構成要素は物理デバイスまたは仮想デバイスであってもよい。
例示的なシステム4300は、少なくとも1つの処理ユニット(CPUまたはプロセッサ)4310と、読み取り専用メモリ(ROM)4320およびランダムアクセスメモリ(RAM)4325などのシステムメモリ4315を含む様々なシステム構成要素をプロセッサ4310に結合する接続4305とを含む。コンピューティングシステム4300は、プロセッサ4310に直接接続される、その近くにある、またはその一部として統合される高速メモリのキャッシュ4312を含んでもよい。
プロセッサ4310は、プロセッサ4310、ならびにソフトウェア命令が実際のプロセッサ設計へと組み込まれるような専用プロセッサを制御するように構成される、記憶デバイス4330に記憶されるサービス4332、4334、および 4336などの任意の汎用プロセッサおよびハードウェアサービスまたはソフトウェアサービスを含んでもよい。プロセッサ4310は基本的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであってもよい。マルチコアプロセッサは、対称でも非対称でもよい。
ユーザ対話を可能にするために、コンピューティングシステム4300は、発話のためのマイクロフォン、ジェスチャ入力またはグラフィカル入力のためのタッチ感知スクリーン、キーボード、マウス、モーション入力、発話などの任意の数の入力機構を表すことができる、入力デバイス4345を含む。コンピューティングシステム4300はまた、出力デバイス4335を含むことができ、これはいくつかの出力機構の1つまたは複数であってもよい。いくつかの事例では、マルチモーダルシステムは、ユーザがコンピューティングシステム4300と通信するために複数のタイプの入力/出力を提供することを可能にしてもよい。コンピューティングシステム4300は通信インターフェース4340を含むことができ、これは全般に、ユーザ入力およびシステム出力を支配して管理することができる。通信インターフェースは、オーディオジャック/プラグ、マイクロフォンジャック/プラグ、ユニバーサルシリアルバス(USB)ポート/プラグ、Apple(登録商標)Lightning(登録商標)ポート/プラグ、イーサネットポート/プラグ、光ファイバポート/プラグ、プロプライエタリ有線ポート/プラグ、BLUETOOTH(登録商標)ワイヤレス信号伝送、BLUETOOTH(登録商標) low energy(BLE)ワイヤレス信号伝送、IBEACON(登録商標)ワイヤレス信号伝送、高周波識別(RFID)ワイヤレス信号伝送、近距離通信(NFC)ワイヤレス信号伝送、専用短距離通信(DSRC)ワイヤレス信号伝送、802.11 Wi-Fiワイヤレス信号伝送、ワイヤレスローカルエリアネットワーク(WLAN)信号伝送、可視光通信(VLC)、Worldwide Interoperability for Microwave Access (WiMAX)、赤外線(IR)通信ワイヤレス信号伝送、公衆交換電話網(PSTN)信号伝送、統合サービスデジタルネットワーク(ISDN)信号伝送、3G/4G/5G/LTEセルラーデータネットワークワイヤレス信号伝送、アドホックネットワーク信号伝送、無線波信号伝送、マイクロ波信号伝送、赤外線信号伝送、可視光信号伝送、紫外光信号伝送、電磁媒体に沿ったワイヤレス信号伝送、またはこれらの何らかの組合せを利用したものを含む、有線および/もしくはワイヤレストランシーバを使用した有線通信またはワイヤレス通信の、受信および/または送信を実行もしくは促進してもよい。通信インターフェース4340はまた、1つまたは複数の全地球航法衛星システム(GNSS)システムに関連する1つまたは複数の衛星からの1つまたは複数の信号の受信に基づいて、コンピューティングシステム4300の位置を決定するために使用される、1つまたは複数のGNSS受信機またはトランシーバを含んでもよい。GNSSシステムは、限定はされないが、米国の全地球測位システム(GPS)、ロシアの全地球航法衛星システム(GLONASS)、中国の北斗航法衛星システム(BDS)、および欧州のGalileo GNSSを含む。いずれの特定のハードウェア構成に対しても作用する制約がないので、この基本的な特徴は、開発されるにつれて、改善されたハードウェアまたはファームウェアの構成により容易に置き換えられることがある。
記憶デバイス4330は、不揮発性の、および/または非一時的な、および/またはコンピュータ可読のメモリデバイスであってもよく、ハードディスクであってもよく、または、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、磁気ストリップ/ストライプ、任意の他の磁気記憶媒体、フラッシュメモリ、メモリスタメモリ、任意の他のソリッドステートメモリ、コンパクトディスク読み取り専用メモリ(CD-ROM)光学ディスク、再書き込み可能コンパクトディスク(CD)光学ディスク、デジタルビデオディスク(DVD)光学ディスク、ブルーレイディスク(BDD)光学ディスク、ホログラフィック光学ディスク、別の光学媒体、セキュアデジタル(SD)カード、マイクロセキュアデジタル(microSD)カード、メモリスティック(登録商標)カード、スマートカードチップ、EMVチップ、加入者識別モジュール(SIM)カード、ミニ/マイクロ/ナノ/ピコSIMカード、別の集積回路(IC)チップ/カード、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、読み取り専用メモリ(ROM)、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラム可能読み取り専用メモリ(EPROM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、フラッシュEPROM(FLASHEPROM)、キャッシュメモリ(L1/L2/L3/L4/L5/L#)、抵抗性ランダムアクセスメモリ(RRAM/ReRAM)、位相変化メモリ(PCM)、スピントランスファートルクRAM(STT-RAM)、別のメモリチップもしくはカートリッジ、および/またはこれらの組合せなどのコンピュータによりアクセス可能であるデータを記憶できる他のタイプのコンピュータ可読媒体であってもよい。
記憶デバイス4330は、それを定義するコードがプロセッサ4310によって実行されるとシステムに機能を実行させる、ソフトウェアサービス、サーバ、サービスなどを含んでもよい。いくつかの態様では、特定の機能を実行するハードウェアサービスは、機能を実行するために、プロセッサ4310、接続4305、出力デバイス4335などの必要なハードウェア構成要素と接続している、コンピュータ可読媒体に記憶されているソフトウェア構成要素を含むことができる。
本明細書において使用される場合、「コンピュータ可読媒体」という用語は、限定はされないが、ポータブルまたは非ポータブルの記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを記憶、収容、または搬送することができる様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶されてもよいとともに、ワイヤレスにまたは有線接続を介して伝搬する搬送波および/または一時的な電子信号を含まない、非一時的媒体を含んでもよい。非一時的媒体の例は、限定はされないが、磁気ディスクもしくは磁気テープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、またはメモリデバイスを含んでもよい。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表すことがある、コードおよび/または機械実行可能命令を記憶していることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受けることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を使用して渡され、転送され、または送信されてもよい。
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたはワイヤレス信号を含んでもよい。しかしながら、言及されるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号それ自体などの媒体を明確に除く。
具体的な詳細が、本明細書において与えられる実施形態および例の完全な理解を提供するために、上記の説明において与えられている。しかしながら、本実施形態がこれらの具体的な詳細なしに実践されてもよいことが、当業者によって理解されるだろう。説明を明快にするために、いくつかの事例では、本技術は、デバイス、デバイス構成要素、ソフトウェア、またはハードウェアとソフトウェアの組合せで具現化される方法におけるステップもしくはルーチンを含む機能ブロックを含む個々の機能ブロックを含むものとして提示されることがある。図面に示され、かつ/または本明細書に記載されるもの以外の追加の構成要素が使用されてもよい。たとえば、不必要な詳細で実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセス、および他の構成要素がブロック図の形で構成要素として示されることがある。他の事例では、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細なしで示されることがある。
また、個々の実施形態が、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスまたは方法として上で説明されることがある。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実行することができる。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了するときに終了するが、図に含まれない追加のステップを有することがある。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに相当することがある。プロセスが関数に相当するとき、その終了は、その関数が呼出し関数またはメイン関数に戻ることに相当してもよい。
上で説明された例によるプロセスおよび方法は、記憶されているか、またはそうでなければコンピュータ可読媒体から入手可能なコンピュータ実行可能命令を使用して実装されてもよい。そのような命令は、たとえば汎用コンピュータ、専用コンピュータ、または処理デバイスに、特定の機能または機能のグループを実行させるか、またはそうでなければ実行するように汎用コンピュータ、専用コンピュータ、または処理デバイスを構成する、命令およびデータを含んでもよい。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であってもよい。コンピュータ実行可能命令は、たとえばアセンブリ言語、ファームウェア、ソースコードなどのバイナリ、中間フォーマット命令であってもよい。命令、使用される情報、および/または説明された例による方法の間に作成される情報を記憶するために使用されることがあるコンピュータ可読媒体の例は、磁気または光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク接続された記憶デバイスなどを含む。
これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらのどの組合せを含むことができ、様々なフォームファクタのうちのいずれをもとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶されてもよい。プロセッサは、必要なタスクを実行してもよい。フォームファクタの典型的な例は、ラップトップ、スマートフォン、モバイルフォン、タブレットデバイスまたは他の小型フォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどを含む。本明細書において説明される機能は、周辺装置またはアドインカードにおいても具現化されてもよい。そのような機能は、さらなる例として、異なるチップの中の回路基板または単一のデバイスの中で実行される異なるプロセス上でも実装されてもよい。
命令、そのような命令を伝えるための媒体、命令を実行するための計算リソース、およびそのような計算リソースをサポートするための他の構造は、本開示において説明される機能を提供するための例示的な手段である。
上記の説明では、本出願の態様は、それらの特定の実施形態を参照して説明されているが、本出願はそれらに限定されないことを当業者は認識するだろう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されているが、本発明の概念が別の方法で様々に具現化または利用されてもよく、従来技術による限定を除いて、添付の特許請求の範囲がそのような変形を含むものと解釈されることを意図することを理解されたい。上で説明された適用例の様々な特徴および態様は、個別または一緒に使用されてもよい。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書で説明されたものを越えた任意の数の環境および適用例において利用されてもよい。したがって、本明細書および図面は、限定ではなく例示であると見なされるべきである。例示のために、方法は特定の順序で説明された。代替の実施形態では、説明された順序とは異なる順序で方法が実行されてもよいことを理解されたい。
本明細書において使用される、未満(「<」)およびよりも大きい(「>」)という記号または用語は、本記述の範囲から逸脱することなく、それぞれ、以下(「≦」)および以上(「≧」)という記号で置き換えられ得てもよいことを、当業者は理解するだろう。
構成要素がいくつかの動作を実行する「ように構成される」ものとして説明される場合、そのような構成は、たとえば動作を実行するように電子回路もしくは他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路(たとえば、マイクロプロセッサ、もしくは他の適切な電子回路)をプログラムすることによって、またはそれらの任意の組合せで達成されてもよい。
「に結合される」という句は、直接もしくは間接的のいずれかで別の構成要素に物理的に接続される任意の構成要素、および/または別の構成要素(たとえば、有線もしくはワイヤレス接続、および/または他の適切な通信インターフェースを介して別の構成要素に接続された)と直接または間接的のいずれかで通信する、任意の構成要素を指す。
セット「の少なくとも1つ」および/またはセットの「1つまたは複数」と記載するクレームの文言または他の文言は、セットの1つの要素またはセットの(任意の組合せでの)複数の要素がクレームを満足することを示す。たとえば、「AおよびBのうちの少なくとも1つ」を記載するクレームの文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCのうちの少なくとも1つ」を記載するクレームの文言は、A、B、C、またはAおよびB、またはAおよびC、またはBおよびC、またはAおよびBおよびCを意味する。セット「の少なくとも1つ」および/またはセットの「1つまたは複数」という文言は、セットに列挙される項目にセットを限定しない。たとえば、「AおよびBのうちの少なくとも1つ」を記述するクレームの文言は、A、B、またはAおよびBを意味することができ、加えて、AおよびBのセットに列挙されていない項目をさらに含むことができる。
本明細書において開示される実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装されてもよい。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、全般にそれらの機能に関して上で説明されている。そのような機能が、ハードウェアとして実装されるか、ソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約によって決まる。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装してもよいが、そのような実装形態の決定は、本出願の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書において説明された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの様々なデバイスのいずれにおいて実装されてもよい。モジュールまたは構成要素として説明された任意の特徴が、集積論理デバイスの中で一緒に、または個別であるが相互動作可能な論理デバイスとして別々に実装されてもよい。ソフトウェアで実装される場合、技法は、実行されると、上で説明された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備える、コンピュータ可読データ記憶媒体によって少なくとも部分的に実現されてもよい。コンピュータ可読データ記憶媒体は、コンピュータプログラム製品の一部を形成してもよく、これはパッケージング材料を含んでもよい。コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、たとえば同期式ダイナミックランダムアクセスメモリ(SDRAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASHメモリ、磁気または光学データ記憶媒体などのようなメモリまたはデータ記憶媒体を備えてもよい。技法は、追加または代替として、伝搬される信号または波などの命令またはデータ構造の形でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、かつ/または実行されてもよい、コンピュータ可読通信媒体によって少なくとも部分的に実現されてもよい。
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路構成もしくは個別論理回路構成などの1つまたは複数のプロセッサを含んでもよいプロセッサによって実行されてもよい。そのようなプロセッサは、本開示に記載された技法のいずれかを実行するように構成されてもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成としても実装されてもよい。したがって、本明細書において使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書において説明された技法の実装に適した任意の他の構造もしくは装置のいずれかを指すことがある。加えて、いくつかの態様では、本明細書において説明された機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に設けられてもよく、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれてもよい。
本開示の説明のための態様は、以下を含む。
態様1. 画像データを処理するための方法であって、画像データを取得するステップと、1つまたは複数のマップを取得するステップであって、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連する、ステップと、機械学習システムへの入力として画像データおよび1つまたは複数のマップを使用して、修正された画像を生成するステップであって、修正された画像が、1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む、ステップとを備える、方法。
態様2. 1つまたは複数のマップのうちのあるマップが、複数の値を含み、画像処理機能に関連し、そのマップの複数の値の各値が、画像データの対応する画素に適用すべき画像処理機能の量を示す、態様1の方法。
態様3. 1つまたは複数のマップに関連する1つまたは複数の画像処理機能が、ノイズ低減機能、シャープネス調整機能、トーン調整機能、飽和度調整機能、および色相調整機能の少なくとも1つを含む、態様1から2のいずれかの方法。
態様4. 1つまたは複数のマップが複数のマップを含み、複数のマップのうちの第1のマップが第1の画像処理機能に関連し、複数のマップのうちの第2のマップが第2の画像処理機能に関連する、態様1から3のいずれかの方法。
態様5. 第1のマップは第1の複数の値を含み、第1のマップの第1の複数の値の各値が、画像データの対応する画素に適用すべき第1の画像処理機能の量を示し、第2のマップが第2の複数の値を含み、第2のマップの第2の複数の値の各値が、画像データの対応する画素に適用すべき第2の画像処理機能の量を示す、態様4の方法。
態様6. 複数のマップの第1のマップに関連する第1の画像処理機能が、ノイズ低減機能、シャープネス調整機能、トーン調整機能、飽和度調整機能、および色相調整機能のうちの1つを含み、複数のマップの第2のマップに関連する第2の画像処理機能が、ノイズ低減機能、シャープネス調整機能、トーン調整機能、飽和度調整機能、および色相調整機能のうちの異なる1つを含む、態様4または5のいずれか1つの方法。
態様7. 修正された画像を生成するために使用される機械学習システムと異なる追加の機械学習システムを使用して、1つまたは複数のマップを生成するステップをさらに備える、態様1から6のいずれか1つの方法。
態様8. 画像データが、画像データの各画素に対する複数の色成分を有する処理された画像を含む、態様1から7のいずれか1つの方法。
態様9. 画像データが、1つまたは複数のイメージセンサからの生の画像データを含み、生の画像データが、画像データの各画素に対する単一の色成分を含む、態様1から7のいずれか1つの方法。
態様10. 生の画像データがカラーフィルタアレイによってフィルタリングされた1つまたは複数のイメージセンサから取得される、態様9の方法。
態様11. カラーフィルタアレイがベイヤーカラーフィルタアレイを含む、態様10の方法。
態様12. 画像データが画像データのパッチを含み、画像データのパッチが画像データのフレームのサブセットを含む、態様1から11のいずれか1つの方法。
態様13. 修正された画像を生成するステップが、出力画像データの複数のパッチを生成するステップを含み、出力画像データの各パッチが出力画像の画素のサブセットを含む、態様12の方法。
態様14. 機械学習システムが少なくとも1つのニューラルネットワークを含む、態様1から13のいずれか1つの方法。
態様15. 画像データを記憶するように構成されるメモリと、回路で実装され態様1から14のいずれかによる動作を実行するように構成されるプロセッサとを備える、装置。
態様16. カメラである、態様15の装置。
態様17. カメラを含むモバイルデバイスである、態様15の装置。
態様18: 1つまたは複数の画像を表示するように構成されるディスプレイをさらに備える、態様15から17のいずれか1つの装置。
態様19. 1つまたは複数の画像を取り込むように構成されるカメラをさらに備える、態様15から18のいずれか1つの装置。
態様20. 実行されると、デバイスの1つまたは複数のプロセッサに態様1から14のいずれかの方法を実行させる命令を記憶する、コンピュータ可読記憶媒体。
態様21. 態様1から14のいずれかによる動作を実行するための1つまたは複数の手段を備える、装置。
態様22. 態様1から14のいずれかによる動作を実行するための手段を備える、画像データを処理するための装置。
態様23. 実行されると、1つまたは複数のプロセッサに態様1から14のいずれかの動作を実行させる命令を記憶する、コンピュータ可読記憶媒体。
態様24. 画像データを処理するための装置であって、メモリと、メモリに結合される1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、画像データを取得し、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用して、1つまたは複数のマップを生成し、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連し、画像データおよび1つまたは複数のマップに基づいて画像を生成し、画像が1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む、ように構成される、装置。
態様25. 1つまたは複数のマップのうちのあるマップが、複数の値を含み、画像処理機能に関連し、そのマップの複数の値の各値が、画像処理機能を画像データの対応する領域に適用する際に用いるべき強さを示す、態様24の装置。
態様26. 画像データの対応する領域が、画像の画素に対応する、態様25の装置。
態様27. 1つまたは複数のマップが複数のマップを含み、複数のマップのうちの第1のマップが第1の画像処理機能に関連し、複数のマップのうちの第2のマップが第2の画像処理機能に関連する、態様24から26のいずれかの装置。
態様28. 複数のマップの少なくとも1つに関連する1つまたは複数の画像処理機能が、ノイズ低減機能、シャープネス調整機能、ディテール調整機能、トーン調整機能、飽和度調整機能、および色相調整機能の少なくとも1つを含む、態様27の装置。
態様29. 第1のマップが第1の複数の値を含み、第1のマップの第1の複数の値の各値が、画像データの対応する領域に第1の画像処理機能に適用する際に用いるべき強さを示し、第2のマップが第2の複数の値を含み、第2のマップの第2の複数の値の各値が、画像データの対応する領域に第2の画像処理機能を適用する際に用いるべき強さを示す、態様27から28のいずれか1つの装置。
態様30. 画像データが画像に対応する輝度チャネルデータを含み、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用することが、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像に対応する輝度チャネルデータを使用することを含む、態様24から29のいずれかの装置。
態様31. 画像データに基づいて画像を生成することが、画像に対応する輝度チャネルデータならびに色差データに基づいて画像を生成することを含む、態様30の装置。
態様32. 1つまたは複数のトレーニングされたニューラルネットワークが、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用することに基づいて1つまたは複数のアフィン係数を出力し、1つまたは複数のマップを生成することが、少なくとも、1つまたは複数のアフィン係数を使用して画像データを変換することによって、第1のマップを生成することを含む、態様30から31のいずれかの装置。
態様33. 画像データが画像に対応する輝度チャネルデータを含み、1つまたは複数のアフィン係数を使用して画像データを変換することが、1つまたは複数のアフィン係数を使用して輝度チャネルデータを変換することを含む、態様30から32のいずれかの装置。
態様34. 1つまたは複数のアフィン係数が乗数を含み、1つまたは複数のアフィン係数を使用して画像データを変換することが、画像データの少なくともサブセットの輝度値を乗数によって乗算することを含む、態様30から33のいずれかの装置。
態様35. 1つまたは複数のアフィン係数がオフセットを含み、1つまたは複数のアフィン係数を使用して画像データを変換することが、画像データの少なくともサブセットの輝度値をオフセットによってオフセットすることを含む、態様30から34のいずれかの装置。
態様36. 1つまたは複数のトレーニングされたニューラルネットワークが、第1のマップにおける1つまたは複数の勾配を画像データにおける1つまたは複数の勾配と整合させる局所線形性の制約にも基づく、1つまたは複数のアフィン係数を出力する、態様30から35のいずれかの装置。
態様37. 画像データおよび1つまたは複数のマップに基づいて画像を生成するために、1つまたは複数のプロセッサが、1つまたは複数のトレーニングされたニューラルネットワークとは別個の1つまたは複数のトレーニングされたニューラルネットワークの第2のセットへの入力として、画像データおよび1つまたは複数のマップを使用するように構成される、態様24から36のいずれかの装置。
態様38. 画像データおよび1つまたは複数のマップに基づいて画像を生成するために、1つまたは複数のプロセッサが、1つまたは複数のトレーニングされたニューラルネットワークの第2のセットを使用して画像データのモザイクを除去するように構成される、態様37の装置。
態様39. 1つまたは複数のマップの各マップが、画像データにおいて描写される物体の様々なタイプに基づいて空間的に変化させられる、態様24から38のいずれかの装置。
態様40. 画像データが、画像データの複数の画素の各画素に対する複数の色成分を有する入力画像を含む、態様24から39のいずれかの装置。
態様41. 画像データが、1つまたは複数のイメージセンサからの生の画像データを含み、生の画像データが、画像データの複数の画素の各画素に対する少なくとも1つの色成分を含む、態様24から40のいずれかの装置。
態様42. 画像データを取り込むイメージセンサをさらに備え、画像データを取得することが、イメージセンサから画像データを取得することを含む、態様24から41のいずれかの装置。
態様43. 表示画面をさらに備え、1つまたは複数のプロセッサが、表示画面に画像を表示するように構成される、態様24から42のいずれかの装置。
態様44. 通信トランシーバをさらに備え、1つまたは複数のプロセッサが、通信トランシーバを使用して受信者デバイスに画像を送信するように構成される、態様24から43のいずれかの装置。
態様45. 画像データを処理するための方法であって、画像データを取得するステップと、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用して、1つまたは複数のマップを生成するステップであって、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連する、ステップと、画像データおよび1つまたは複数のマップに基づいて画像を生成するステップであって、画像が1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む、ステップとを備える、方法。
態様46. 1つまたは複数のマップのうちのあるマップが、複数の値を含み、画像処理機能に関連し、そのマップの複数の値の各値が、画像処理機能を画像データの対応する領域に適用する際に用いるべき強さを示す、態様45の方法。
態様47. 画像データの対応する領域が、画像の画素に対応する、態様46の方法。
態様48. 1つまたは複数のマップが複数のマップを含み、複数のマップのうちの第1のマップが第1の画像処理機能に関連し、複数のマップのうちの第2のマップが第2の画像処理機能に関連する、態様45から47のいずれかの方法。
態様49. 複数のマップの少なくとも1つに関連する1つまたは複数の画像処理機能が、ノイズ低減機能、シャープネス調整機能、ディテール調整機能、トーン調整機能、飽和度調整機能、および色相調整機能の少なくとも1つを含む、態様48の方法。
態様50. 第1のマップが第1の複数の値を含み、第1のマップの第1の複数の値の各値が、画像データの対応する領域に第1の画像処理機能に適用する際に用いるべき強さを示し、第2のマップが第2の複数の値を含み、第2のマップの第2の複数の値の各値が、画像データの対応する領域に第2の画像処理機能を適用する際に用いるべき強さを示す、態様48から49のいずれかの方法。
態様51. 画像データが画像に対応する輝度チャネルデータを含み、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用するステップが、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像に対応する輝度チャネルデータを使用するステップを含む、態様45から50のいずれかの方法。
態様52. 画像データに基づいて画像を生成するステップが、画像に対応する輝度チャネルデータならびに色差データに基づいて画像を生成するステップを含む、態様51の方法。
態様53. 1つまたは複数のトレーニングされたニューラルネットワークが、1つまたは複数のトレーニングされたニューラルネットワークへの入力として画像データを使用することに基づいて1つまたは複数のアフィン係数を出力し、1つまたは複数のマップを生成するステップが、少なくとも、1つまたは複数のアフィン係数を使用して画像データを変換することによって、第1のマップを生成するステップを含む、態様45から52のいずれかの方法。
態様54. 画像データが画像に対応する輝度チャネルデータを含み、1つまたは複数のアフィン係数を使用して画像データを変換するステップが、1つまたは複数のアフィン係数を使用して輝度チャネルデータを変換するステップを含む、態様53の方法。
態様55. 1つまたは複数のアフィン係数が乗数を含み、1つまたは複数のアフィン係数を使用して画像データを変換するステップが、画像データの少なくともサブセットの輝度値を乗数によって乗算するステップを含む、態様53から54のいずれかの方法。
態様56. 1つまたは複数のアフィン係数がオフセットを含み、1つまたは複数のアフィン係数を使用して画像データを変換するステップが、画像データの少なくともサブセットの輝度値をオフセットによってオフセットするステップを含む、態様53から55のいずれかの方法。
態様57. 1つまたは複数のトレーニングされたニューラルネットワークが、第1のマップにおける1つまたは複数の勾配を画像データにおける1つまたは複数の勾配と整合させる局所線形性の制約にも基づく、1つまたは複数のアフィン係数を出力する、態様53から56のいずれかの方法。
態様58. 画像データおよび1つまたは複数のマップに基づいて画像を生成するステップが、1つまたは複数のトレーニングされたニューラルネットワークとは別個の1つまたは複数のトレーニングされたニューラルネットワークの第2のセットへの入力として、画像データおよび1つまたは複数のマップを使用するステップを含む、態様45から57のいずれかの方法。
態様59. 画像データおよび1つまたは複数のマップに基づいて画像を生成するステップが、1つまたは複数のトレーニングされたニューラルネットワークの第2のセットを使用して画像データのモザイクを除去するステップを含む、態様58の方法。
態様60. 1つまたは複数のマップの各マップが、画像データにおいて描写される物体の様々なタイプに基づいて空間的に変化させられる、態様45から59のいずれかの方法。
態様61. 画像データが、画像データの複数の画素の各画素に対する複数の色成分を有する入力画像を含む、態様45から60のいずれかの方法。
態様62. 画像データが、1つまたは複数のイメージセンサからの生の画像データを含み、生の画像データが、画像データの複数の画素の各画素に対する少なくとも1つの色成分を含む、態様45から61のいずれかの方法。
態様63. 画像データを取得するステップが、イメージセンサから画像データを取得するステップを含む、態様45から62のいずれかの方法。
態様64. 表示画面に画像を表示するステップをさらに備える、態様45から63のいずれかの方法。
態様65. 通信トランシーバを使用して画像を受信者デバイスに送信するステップをさらに備える、態様45から64のいずれかの方法。
態様66. 実行されると、デバイスの1つまたは複数のプロセッサに態様45から64のいずれかの方法を実行させる命令を記憶する、コンピュータ可読記憶媒体。
態様67. 態様45から64のいずれかによる動作を実行するための1つまたは複数の手段を備える、装置。
態様68. 態様45から64のいずれかによる動作を実行するための手段を備える、画像データを処理するための装置。
態様69. 実行されると、1つまたは複数のプロセッサに態様45から64のいずれかの動作を実行させる命令を記憶する、コンピュータ可読記憶媒体。
態様70. 画像データを処理するための装置であって、メモリと、メモリに結合される1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、画像データを取得し、機械学習システムへの入力として画像データを使用して、1つまたは複数のマップを生成し、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連し、画像データおよび1つまたは複数のマップに基づいて画像を生成し、画像が1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む、ように構成される、装置。
態様71. 1つまたは複数のマップのうちのあるマップが、複数の値を含み、画像処理機能に関連し、そのマップの複数の値の各値が、画像処理機能を画像データの対応する領域に適用する際に用いるべき強さを示す、態様70の装置。
態様72. 画像データの対応する領域が、画像の画素に対応する、態様71の装置。
態様73. 1つまたは複数のマップが複数のマップを含み、複数のマップのうちの第1のマップが第1の画像処理機能に関連し、複数のマップのうちの第2のマップが第2の画像処理機能に関連する、態様70から72のいずれかの装置。
態様74. 複数のマップの少なくとも1つに関連する1つまたは複数の画像処理機能が、ノイズ低減機能、シャープネス調整機能、ディテール調整機能、トーン調整機能、飽和度調整機能、および色相調整機能の少なくとも1つを含む、態様73の装置。
態様75. 第1のマップが第1の複数の値を含み、第1のマップの第1の複数の値の各値が、画像データの対応する領域に第1の画像処理機能に適用する際に用いるべき強さを示し、第2のマップが第2の複数の値を含み、第2のマップの第2の複数の値の各値が、画像データの対応する領域に第2の画像処理機能を適用する際に用いるべき強さを示す、態様73から74のいずれか1つの装置。
態様76. 画像データが画像に対応する輝度チャネルデータを含み、機械学習システムへの入力として画像データを使用することが、機械学習システムへの入力として画像に対応する輝度チャネルデータを使用することを含む、態様70から75のいずれかの装置。
態様77. 画像データに基づいて画像を生成することが、画像に対応する輝度チャネルデータならびに色差データに基づいて画像を生成することを含む、態様76の装置。
態様78. 機械学習システムが、機械学習システムへの入力として画像データを使用することに基づいて1つまたは複数のアフィン係数を出力し、1つまたは複数のマップを生成することが、少なくとも、1つまたは複数のアフィン係数を使用して画像データを変換することによって、第1のマップを生成することを含む、態様76から77のいずれかの装置。
態様79. 画像データが画像に対応する輝度チャネルデータを含み、1つまたは複数のアフィン係数を使用して画像データを変換することが、1つまたは複数のアフィン係数を使用して輝度チャネルデータを変換することを含む、態様76から78のいずれかの装置。
態様80. 1つまたは複数のアフィン係数が乗数を含み、1つまたは複数のアフィン係数を使用して画像データを変換することが、画像データの少なくともサブセットの輝度値を乗数によって乗算することを含む、態様76から79のいずれかの装置。
態様81. 1つまたは複数のアフィン係数がオフセットを含み、1つまたは複数のアフィン係数を使用して画像データを変換することが、画像データの少なくともサブセットの輝度値をオフセットによってオフセットすることを含む、態様76から80のいずれかの装置。
態様82. 機械学習システムが、第1のマップにおける1つまたは複数の勾配を画像データにおける1つまたは複数の勾配と整合させる局所線形性の制約にも基づく、1つまたは複数のアフィン係数を出力する、態様76から81のいずれかの装置。
態様83. 画像データおよび1つまたは複数のマップに基づいて画像を生成するために、1つまたは複数のプロセッサが、機械学習システムとは別個の機械学習システムの第2のセットへの入力として、画像データおよび1つまたは複数のマップを使用するように構成される、態様70から82のいずれかの装置。
態様84. 画像データおよび1つまたは複数のマップに基づいて画像を生成するために、1つまたは複数のプロセッサが、機械学習システムの第2のセットを使用して画像データのモザイクを除去するように構成される、態様83の装置。
態様85. 1つまたは複数のマップの各マップが、画像データにおいて描写される物体の様々なタイプに基づいて空間的に変化させられる、態様70から84のいずれかの装置。
態様86. 画像データが、画像データの複数の画素の各画素に対する複数の色成分を有する入力画像を含む、態様70から85のいずれかの装置。
態様87. 画像データが、1つまたは複数のイメージセンサからの生の画像データを含み、生の画像データが、画像データの複数の画素の各画素に対する少なくとも1つの色成分を含む、態様70から86のいずれかの装置。
態様88. 画像データを取り込むイメージセンサをさらに備え、画像データを取得することが、イメージセンサから画像データを取得することを含む、態様70から87のいずれかの装置。
態様89. 表示画面をさらに備え、1つまたは複数のプロセッサが、表示画面に画像を表示するように構成される、態様70から88のいずれかの装置。
態様90. 通信トランシーバをさらに備え、1つまたは複数のプロセッサが、通信トランシーバを使用して受信者デバイスに画像を送信するように構成される、態様70から89のいずれかの装置。
態様91. 画像データを処理するための方法であって、画像データを取得するステップと、機械学習システムへの入力として画像データを使用して、1つまたは複数のマップを生成するステップであって、1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連する、ステップと、画像データおよび1つまたは複数のマップに基づいて画像を生成するステップであって、画像が1つまたは複数のマップの各マップに関連するそれぞれの画像処理機能に基づく特性を含む、ステップとを備える、方法。
態様92. 1つまたは複数のマップのうちのあるマップが、複数の値を含み、画像処理機能に関連し、そのマップの複数の値の各値が、画像処理機能を画像データの対応する領域に適用する際に用いるべき強さを示す、態様91の方法。
態様93. 画像データの対応する領域が、画像の画素に対応する、態様92の方法。
態様94. 1つまたは複数のマップが複数のマップを含み、複数のマップのうちの第1のマップが第1の画像処理機能に関連し、複数のマップのうちの第2のマップが第2の画像処理機能に関連する、態様91から93のいずれかの方法。
態様95. 複数のマップの少なくとも1つに関連する1つまたは複数の画像処理機能が、ノイズ低減機能、シャープネス調整機能、ディテール調整機能、トーン調整機能、飽和度調整機能、および色相調整機能の少なくとも1つを含む、態様94の方法。
態様96. 第1のマップが第1の複数の値を含み、第1のマップの第1の複数の値の各値が、画像データの対応する領域に第1の画像処理機能に適用する際に用いるべき強さを示し、第2のマップが第2の複数の値を含み、第2のマップの第2の複数の値の各値が、画像データの対応する領域に第2の画像処理機能を適用する際に用いるべき強さを示す、態様94から95のいずれかの方法。
態様97. 画像データが画像に対応する輝度チャネルデータを含み、機械学習システムへの入力として画像データを使用するステップが、機械学習システムへの入力として画像に対応する輝度チャネルデータを使用するステップを含む、態様91から96のいずれかの方法。
態様98. 画像データに基づいて画像を生成するステップが、画像に対応する輝度チャネルデータならびに色差データに基づいて画像を生成するステップを含む、態様97の方法。
態様99. 機械学習システムが、機械学習システムへの入力として画像データを使用することに基づいて1つまたは複数のアフィン係数を出力し、1つまたは複数のマップを生成するステップが、少なくとも、1つまたは複数のアフィン係数を使用して画像データを変換することによって、第1のマップを生成するステップを含む、態様91から98のいずれかの方法。
態様100. 画像データが画像に対応する輝度チャネルデータを含み、1つまたは複数のアフィン係数を使用して画像データを変換するステップが、1つまたは複数のアフィン係数を使用して輝度チャネルデータを変換するステップを含む、態様99の方法。
態様101. 1つまたは複数のアフィン係数が乗数を含み、1つまたは複数のアフィン係数を使用して画像データを変換するステップが、画像データの少なくともサブセットの輝度値を乗数によって乗算するステップを含む、態様99から100のいずれかの方法。
態様102. 1つまたは複数のアフィン係数がオフセットを含み、1つまたは複数のアフィン係数を使用して画像データを変換するステップが、画像データの少なくともサブセットの輝度値をオフセットによってオフセットするステップを含む、態様99から101のいずれかの方法。
態様103. 機械学習システムが、第1のマップにおける1つまたは複数の勾配を画像データにおける1つまたは複数の勾配と整合させる局所線形性の制約にも基づく、1つまたは複数のアフィン係数を出力する、態様99から102のいずれかの方法。
態様104. 画像データおよび1つまたは複数のマップに基づいて画像を生成するステップが、機械学習システムとは別個の機械学習システムの第2のセットへの入力として、画像データおよび1つまたは複数のマップを使用するステップを含む、態様91から103のいずれかの方法。
態様105. 画像データおよび1つまたは複数のマップに基づいて画像を生成するステップが、機械学習システムの第2のセットを使用して画像データのモザイクを除去するステップを含む、態様104の方法。
態様106. 1つまたは複数のマップの各マップが、画像データにおいて描写される物体の様々なタイプに基づいて空間的に変化させられる、態様91から105のいずれかの方法。
態様107. 画像データが、画像データの複数の画素の各画素に対する複数の色成分を有する入力画像を含む、態様91から106のいずれかの方法。
態様108. 画像データが、1つまたは複数のイメージセンサからの生の画像データを含み、生の画像データが、画像データの複数の画素の各画素に対する少なくとも1つの色成分を含む、態様91から107のいずれかの方法。
態様109. 画像データを取得するステップが、イメージセンサから画像データを取得するステップを含む、態様91から108のいずれかの方法。
態様110. 表示画面に画像を表示するステップをさらに備える、態様91から109のいずれかの方法。
態様111. 通信トランシーバを使用して画像を受信者デバイスに送信するステップをさらに備える、態様91から110のいずれかの方法。
態様112. 実行されると、デバイスの1つまたは複数のプロセッサに態様91から111のいずれかの方法を実行させる命令を記憶する、コンピュータ可読記憶媒体。
態様113. 態様91から111のいずれかによる動作を実行するための1つまたは複数の手段を備える、装置。
態様114. 態様91から111のいずれかによる動作を実行するための手段を備える、画像データを処理するための装置。
態様115. 実行されると、1つまたは複数のプロセッサに態様91から111のいずれかの動作を実行させる命令を記憶する、コンピュータ可読記憶媒体。
100 画像キャプチャおよび処理システム
105A 画像キャプチャデバイス
105B 画像処理デバイス
110 シーン
115 レンズ
120 制御機構
125A 露出制御機構
125B 焦点制御機構
125C ズーム制御機構
130 イメージセンサ
140 RAM
145 ROM
150 イメージプロセッサ
152 ホストプロセッサ
154 ISP
156 I/O
160 I/O
201 入力画像および空間チューニングマップ
202 入力画像
203 入力飽和度マップ
210 画像処理MLシステム
215 修正された画像
216 修正された画像
302 入力画像
303 チューニングマップ
402 入力画像
404 入力ノイズマップ
405 ノイズマップキー
415 修正された画像
510 画像
511 画像
512 画像
602 入力画像
604 入力鮮明化マップ
605 シャープネスマップキー
615 修正された画像
710 出力画像
711 出力画像
712 出力画像
715 ガンマカーブ
802 入力画像
804 入力トーンマップ
805 トーンマップキー
815 修正された画像
1020 出力画像
1021 出力画像
1022 出力画像
1102 入力画像
1104 入力飽和度マップ
1105 飽和度マップキー
1115 修正された画像
1217 元のUVベクトル
1218 色相が修正されたベクトル
1219 中心点
1302 入力画像
1304 入力色相マップ
1305 色相マップキー
1315 修正された画像
1402 入力画像
1404 空間的に変化するチューニングマップ
1405 自動調整MLシステム
1406 画像処理システム
1415 修正された画像
1418 ダウンサンプラ
1422 ダウンサンプリングされた入力画像
1424 小さな空間的に変化するチューニングマップ
1426 アップサンプラ
1500 ニューラルネットワーク
1510 入力層
1512 隠れ層
1514 出力層
1516 ノード
1606 入力画像
1607 入力チューニングマップ
1608 出力画像
1609 参照出力画像
1612 バックプロパゲーションエンジン
1616 ダウンサンプリングされた入力画像
1618 出力チューニングマップ
1619 参照出力チューニングマップ
1622 バックプロパゲーションエンジン
1705 自動調整MLシステム
1720 局所線形性の制約
1804 空間的に変化するチューニングマップ
1806 ローカルニューラルネットワーク
1807 グローバルニューラルネットワーク
1820 Yチャネル
1822 アフィン係数
1825 画像パッチ
1826 完全な画像入力
1920 キー
2010 グローバル特徴量
2020 キー
2110 Spatial Attentionエンジン
2120 Channel Attentionエンジン
2120 キー
2130 入力画像
2202 イメージセンサ
2204 カラーフィルタリングされた生入力データ
2206 チューニングパラメータ
2208 ISP
2209 出力カラー画像
2300 機械学習ISP
2301 入力インターフェース
2302 イメージセンサ
2303 ニューラルネットワークシステム
2304 フレーム
2305 出力インターフェース
2306 生の画像パッチ
2307 前処理エンジン
2308 RGB出力
2309 最終的な出力画像
2420 キー
2802 トレーニングされた機械学習モデル
2804 画像データ
2806 チューニングパラメータ
2808 強調された画像
2814 画像データ
2816 チューニングパラメータ
2826 チューニングパラメータ
2828 強調された画像
3702 入力画像データ
3703 空間的に変化するマップ
3715 出力画像
3716 参照画像
3802 入力画像データ
3803 空間的に変化するマップ
3815 修正された画像
3816 参照画像
4305 接続
4310 プロセッサ
4312 キャッシュ
4315 メモリ
4320 ROM
4325 RAM
4330 記憶デバイス
4332 サービス1
4334 サービス2
4335 出力デバイス
4336 サービス3
4340 通信インターフェース
4345 入力デバイス

Claims (30)

  1. 画像データを処理するための装置であって、
    メモリと、
    前記メモリに結合される1つまたは複数のプロセッサであって、
    画像データを取得することと、
    1つまたは複数のトレーニングされたニューラルネットワークへの入力として前記画像データを使用して1つまたは複数のマップを生成することであって、前記1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連する、ことと、
    前記画像データおよび前記1つまたは複数のマップに基づいて画像を生成することであって、前記画像が、前記1つまたは複数のマップの各マップに関連する前記それぞれの画像処理機能に基づく特性を含む、ことと
    を行うように構成される、プロセッサと
    を備える、装置。
  2. 前記1つまたは複数のマップのうちのあるマップが、複数の値を含み、かつ画像処理機能に関連し、前記マップの前記複数の値の各値が、前記画像処理機能を前記画像データの対応する領域に適用する際に用いるべき強さを示す、請求項1に記載の装置。
  3. 前記画像データの前記対応する領域が前記画像の画素に対応する、請求項2に記載の装置。
  4. 前記1つまたは複数のマップが複数のマップを含み、前記複数のマップのうちの第1のマップが第1の画像処理機能に関連し、前記複数のマップのうちの第2のマップが第2の画像処理機能に関連する、請求項1に記載の装置。
  5. 前記複数のマップの少なくとも1つに関連する1つまたは複数の画像処理機能が、ノイズ低減機能、シャープネス調整機能、ディテール調整機能、トーン調整機能、飽和度調整機能、および色相調整機能の少なくとも1つを含む、請求項4に記載の装置。
  6. 前記第1のマップが第1の複数の値を含み、前記第1のマップの前記第1の複数の値の各値が、前記画像データの対応する領域に前記第1の画像処理機能に適用する際に用いるべき強さを示し、前記第2のマップが第2の複数の値を含み、前記第2のマップの前記第2の複数の値の各値が、前記画像データの対応する領域に前記第2の画像処理機能を適用する際に用いるべき強さを示す、請求項4に記載の装置。
  7. 前記画像データが画像に対応する輝度チャネルデータを含み、前記1つまたは複数のトレーニングされたニューラルネットワークへの入力として前記画像データを使用することが、前記1つまたは複数のトレーニングされたニューラルネットワークへの入力として前記画像に対応する前記輝度チャネルデータを使用することを含む、請求項1の記載の装置。
  8. 前記画像データに基づいて前記画像を生成することが、前記画像に対応する前記輝度チャネルデータならびに色差データに基づいて前記画像を生成することを含む、請求項7に記載の装置。
  9. 前記1つまたは複数のトレーニングされたニューラルネットワークが、前記1つまたは複数のトレーニングされたニューラルネットワークへの入力として前記画像データを使用することに基づいて1つまたは複数のアフィン係数を出力し、前記1つまたは複数のマップを生成することが、少なくとも前記1つまたは複数のアフィン係数を使用して前記画像データを変換することによって第1のマップを生成することを含む、請求項1に記載の装置。
  10. 前記画像データが画像に対応する輝度チャネルデータを含み、前記1つまたは複数のアフィン係数を使用して前記画像データを変換するステップが、前記1つまたは複数のアフィン係数を使用して前記輝度チャネルデータを変換するステップを含む、請求項9に記載の装置。
  11. 前記1つまたは複数のアフィン係数が乗数を含み、前記1つまたは複数のアフィン係数を使用して前記画像データを変換することが、前記画像データの少なくともサブセットの輝度値を前記乗数によって乗算することを含む、請求項9に記載の装置。
  12. 前記1つまたは複数のアフィン係数がオフセットを含み、前記1つまたは複数のアフィン係数を使用して前記画像データを変換することが、前記画像データの少なくともサブセットの輝度値を前記オフセットによってオフセットすることを含む、請求項9に記載の装置。
  13. 前記1つまたは複数のトレーニングされたニューラルネットワークがまた、前記第1のマップにおける1つまたは複数の勾配を前記画像データにおける1つまたは複数の勾配と整合させる局所線形性の制約に基づく、前記1つまたは複数のアフィン係数を出力する、請求項9に記載の装置。
  14. 前記画像データおよび前記1つまたは複数のマップに基づいて前記画像を生成するために、前記1つまたは複数のプロセッサが、前記1つまたは複数のトレーニングされたニューラルネットワークとは別個の1つまたは複数のトレーニングされたニューラルネットワークの第2のセットへの入力として、前記画像データおよび前記1つまたは複数のマップを使用するように構成される、請求項1に記載の装置。
  15. 前記画像データおよび前記1つまたは複数のマップに基づいて前記画像を生成するために、前記1つまたは複数のプロセッサが、1つまたは複数のトレーニングされたニューラルネットワークの前記第2のセットを使用して前記画像データのモザイクを除去するように構成される、請求項14に記載の装置。
  16. 前記1つまたは複数のマップの各マップが、前記画像データにおいて描写される物体の様々なタイプに基づいて空間的に変化させられる、請求項1に記載の装置。
  17. 前記画像データが、前記画像データの複数の画素の各画素に対する複数の色成分を有する入力画像を含む、請求項1に記載の装置。
  18. 前記画像データが、1つまたは複数のイメージセンサからの生の画像データを含み、前記生の画像データが、前記画像データの複数の画素の各画素に対する少なくとも1つの色成分を含む、請求項1に記載の装置。
  19. 前記画像データを取り込むイメージセンサをさらに備え、前記画像データを取得することが、前記イメージセンサから前記画像データを取得することを含む、請求項1に記載の装置。
  20. 表示画面をさらに備え、前記1つまたは複数のプロセッサが、前記表示画面に前記画像を表示するように構成される、請求項1に記載の装置。
  21. 通信トランシーバをさらに備え、前記1つまたは複数のプロセッサが、前記通信トランシーバを使用して受信者デバイスに前記画像を送信するように構成される、請求項1に記載の装置。
  22. 画像データを処理するための方法であって、
    画像データを取得するステップと、
    1つまたは複数のトレーニングされたニューラルネットワークへの入力として前記画像データを使用して、1つまたは複数のマップを生成するステップであって、前記1つまたは複数のマップの各マップがそれぞれの画像処理機能に関連する、ステップと、
    前記画像データおよび前記1つまたは複数のマップに基づいて画像を生成するステップであって、前記画像が、前記1つまたは複数のマップの各マップに関連する前記それぞれの画像処理機能に基づく特性を含む、ステップと
    を備える、方法。
  23. 前記1つまたは複数のマップのうちのあるマップが、複数の値を含み、かつ画像処理機能に関連し、前記マップの前記複数の値の各値が、前記画像処理機能を前記画像データの対応する領域に適用する際に用いるべき強さを示す、請求項22に記載の方法。
  24. 前記1つまたは複数のマップが複数のマップを含み、前記複数のマップのうちの第1のマップが第1の画像処理機能に関連し、前記複数のマップのうちの第2のマップが第2の画像処理機能に関連する、請求項22に記載の方法。
  25. 前記画像データが画像に対応する輝度チャネルデータを含み、前記1つまたは複数のトレーニングされたニューラルネットワークへの入力として前記画像データを使用するステップが、前記1つまたは複数のトレーニングされたニューラルネットワークへの入力として前記画像に対応する前記輝度チャネルデータを使用するステップを含む、請求項22の記載の方法。
  26. 前記1つまたは複数のトレーニングされたニューラルネットワークが、前記1つまたは複数のトレーニングされたニューラルネットワークへの入力として前記画像データを使用することに基づいて1つまたは複数のアフィン係数を出力し、前記1つまたは複数のマップを生成するステップが、少なくとも前記1つまたは複数のアフィン係数を使用して前記画像データを変換することによって第1のマップを生成するステップを含む、請求項22に記載の方法。
  27. 前記1つまたは複数のアフィン係数が乗数を含み、前記1つまたは複数のアフィン係数を使用して前記画像データを変換するステップが、前記画像データの少なくともサブセットの輝度値を前記乗数によって乗算するステップを含む、請求項26に記載の方法。
  28. 前記1つまたは複数のアフィン係数がオフセットを含み、前記1つまたは複数のアフィン係数を使用して前記画像データを変換するステップが、前記画像データの少なくともサブセットの輝度値を前記オフセットによってオフセットするステップを含む、請求項26に記載の方法。
  29. 前記画像データおよび前記1つまたは複数のマップに基づいて前記画像を生成するステップが、前記1つまたは複数のトレーニングされたニューラルネットワークとは別個の1つまたは複数のトレーニングされたニューラルネットワークの第2のセットへの入力として、前記画像データおよび前記1つまたは複数のマップを使用するステップを含む、請求項22に記載の方法。
  30. 前記1つまたは複数のマップの各マップが、前記画像データにおいて描写される物体の様々なタイプに基づいて空間的に変化させられる、請求項22に記載の方法。
JP2022566701A 2020-05-13 2021-05-13 機械学習に基づく画像調整 Pending JP2023525702A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063024417P 2020-05-13 2020-05-13
US63/024,417 2020-05-13
US17/316,567 2021-05-10
US17/316,567 US11983846B2 (en) 2020-05-13 2021-05-10 Machine learning based image adjustment
PCT/US2021/032316 WO2021231776A1 (en) 2020-05-13 2021-05-13 Machine learning based image adjustment

Publications (2)

Publication Number Publication Date
JP2023525702A true JP2023525702A (ja) 2023-06-19
JPWO2021231776A5 JPWO2021231776A5 (ja) 2024-05-10

Family

ID=78512175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022566701A Pending JP2023525702A (ja) 2020-05-13 2021-05-13 機械学習に基づく画像調整

Country Status (7)

Country Link
US (1) US11983846B2 (ja)
EP (1) EP4150559A1 (ja)
JP (1) JP2023525702A (ja)
KR (1) KR20230011288A (ja)
CN (1) CN115461780A (ja)
BR (1) BR112022022218A2 (ja)
WO (1) WO2021231776A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11995153B2 (en) * 2020-09-24 2024-05-28 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
US20220374714A1 (en) * 2021-05-19 2022-11-24 Nvidia Corporation Real time enhancement for streaming content
US11606544B2 (en) * 2021-06-08 2023-03-14 Black Sesame Technologies Inc. Neural network based auto-white-balancing
US11778305B2 (en) * 2021-06-18 2023-10-03 Qualcomm Incorporated Composite image signal processor
US11303800B1 (en) * 2021-07-13 2022-04-12 Shenzhen GOODIX Technology Co., Ltd. Real-time disparity upsampling for phase detection autofocus in digital imaging systems
US20230186446A1 (en) * 2021-12-15 2023-06-15 7 Sensing Software Image processing methods and systems for low-light image enhancement using machine learning models
CN114331903B (zh) * 2021-12-31 2023-05-12 电子科技大学 一种图像修复方法及存储介质
CN114677291B (zh) * 2022-02-25 2023-05-12 荣耀终端有限公司 一种图像处理方法、装置及相关设备
US12020364B1 (en) * 2022-04-07 2024-06-25 Bentley Systems, Incorporated Systems, methods, and media for modifying the coloring of images utilizing machine learning
US20230386144A1 (en) * 2022-05-27 2023-11-30 Snap Inc. Automated augmented reality experience creation system
CN115314604B (zh) * 2022-10-12 2023-03-24 杭州魔点科技有限公司 色彩校正矩阵的生成方法、系统、电子装置和存储介质
KR102664214B1 (ko) * 2022-12-14 2024-05-10 고려대학교 산학협력단 질감 보존을 위한 자가-잔차 학습 기반 자가 감독 노이즈 제거 장치 및 방법
CN116248895B (zh) * 2023-05-06 2023-07-21 上海扬谷网络科技有限公司 虚拟现实全景漫游的视频云转码方法及系统
CN116991298B (zh) * 2023-09-27 2023-11-28 子亥科技(成都)有限公司 一种基于对抗神经网络的虚拟镜头控制方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4659631B2 (ja) * 2005-04-26 2011-03-30 富士重工業株式会社 車線認識装置
US8649555B1 (en) * 2009-02-18 2014-02-11 Lucasfilm Entertainment Company Ltd. Visual tracking framework
JP2015088096A (ja) * 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
CN110786011B (zh) * 2017-06-26 2021-09-24 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
US11263782B2 (en) * 2017-10-11 2022-03-01 Qualcomm Incorporated Image signal processor for processing images
US10643306B2 (en) 2017-10-11 2020-05-05 Qualcomm Incoporated Image signal processor for processing images
CN109191558B (zh) 2018-07-27 2020-12-08 深圳市商汤科技有限公司 图像打光方法和装置
US11776129B2 (en) * 2020-12-16 2023-10-03 Qualcomm Incorporated Semantic refinement of image regions

Also Published As

Publication number Publication date
KR20230011288A (ko) 2023-01-20
CN115461780A (zh) 2022-12-09
US20210360179A1 (en) 2021-11-18
WO2021231776A1 (en) 2021-11-18
US11983846B2 (en) 2024-05-14
EP4150559A1 (en) 2023-03-22
BR112022022218A2 (pt) 2022-12-13

Similar Documents

Publication Publication Date Title
US11983846B2 (en) Machine learning based image adjustment
US10643306B2 (en) Image signal processor for processing images
US11895409B2 (en) Image processing based on object categorization
US20200211229A1 (en) Image signal processor for processing images
US11776129B2 (en) Semantic refinement of image regions
US20210390747A1 (en) Image fusion for image capture and processing systems
US20220138964A1 (en) Frame processing and/or capture instruction systems and techniques
TW202320019A (zh) 影像修改技術
US20230388623A1 (en) Composite image signal processor
WO2023192706A1 (en) Image capture using dynamic lens positions
US20220414847A1 (en) High dynamic range image processing
CN113379611A (zh) 图像处理模型的生成方法、处理方法、存储介质及终端
CN113379608A (zh) 一种图像处理方法、存储介质及终端设备
WO2023283855A1 (en) Super resolution based on saliency
US20240144717A1 (en) Image enhancement for image regions of interest
US20230370727A1 (en) High dynamic range (hdr) image generation using a combined short exposure image
WO2023140979A1 (en) Motion based exposure control for high dynamic range imaging

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240424

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240424