(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-26
(45)【発行日】2024-03-05
(54)【発明の名称】画像強調のための人工知能技法
(51)【国際特許分類】
G06T 5/60 20240101AFI20240227BHJP
【FI】
G06T5/60
(21)【出願番号】P 2021531458
(86)(22)【出願日】2019-08-07
(86)【国際出願番号】 US2019045473
(87)【国際公開番号】W WO2020033524
(87)【国際公開日】2020-02-13
【審査請求日】2022-07-05
(32)【優先日】2018-08-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】メタ プラットフォームズ, インク.
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】ジュー, ボー
(72)【発明者】
【氏名】ヤン, ハイタオ
(72)【発明者】
【氏名】シェン, リーイン
(72)【発明者】
【氏名】ラモンド, ウィリアム スコット
【審査官】村松 貴士
(56)【参考文献】
【文献】米国特許出願公開第2012/0307116(US,A1)
【文献】米国特許出願公開第2017/0132758(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00 - 5/94
H04N 5/222 - 5/28
H04N 23/70 - 23/76
(57)【特許請求の範囲】
【請求項1】
機械学習システムを訓練し、画像を強調するためのシステムであって、
プロセッサと、
プロセッサ実行可能命令を記憶する非一過性のコンピュータ可読記憶媒体であって、前記プロセッサ実行可能命令は、前記プロセッサによって実行されると、
前記機械学習システムを訓練するために使用されるべき訓練画像のセットを取得することであって、前記取得することは、
場面の入力画像を取得することと、
前記場面の複数の画像を平均化することによって、前記場面の標的出力画像を取得することであって、前記標的出力画像は、前記入力画像の標的強調を表す、ことと
を含む、ことと、
前記訓練画像のセットを使用して、前記機械学習システムを訓練することと
を実施することを前記プロセッサに行わせる、非一過性のコンピュータ可読記憶媒体と を備える、システム。
【請求項2】
前記命令は、
入力画像のセットを取得することであって、前記入力画像のセットの中の各入力画像は、対応する場面のものである、ことと、
標的出力画像のセットを取得することであって、前記入力画像のセットの中の入力画像毎に、前記対応する場面の複数の画像を平均化することによって、前記対応する場面の標的出力画像を取得することを含む、ことと、
前記入力画像のセットおよび前記標的出力画像のセットを使用して、前記機械学習システムを訓練することと
を前記プロセッサにさらに行わせる
、請求項1に記載のシステム。
【請求項3】
前記入力画像を取得することは、所定のISO閾値を上回るISO設定において前記入力画像を取得することを含む、請求項1に記載の
システム。
【請求項4】
前記ISO閾値は、約1,500~500,000のISO範囲から選択される、請求項3に記載の
システム。
【請求項5】
前記複数の画像を平均化することは、前記複数の画像内の各ピクセル場所を横断して算術平均を算出することを含む、請求項1に記載の
システム。
【請求項6】
前記訓練画像のセットを取得することは、複数の画像捕捉設定のために訓練画像のセットを取得することを含む、請求項1に記載のシステム。
【請求項7】
前記訓練画像のセットを取得することは、前記画像の入力セットおよび前記画像の出力セットを捕捉するために使用される撮像デバイスの雑音を捕捉する1つ以上の画像を取得することを含む、請求項1に記載のシステム。
【請求項8】
前記命令は、訓練画像の第2のセットを取得することを実施することと、前記訓練画像の第2のセットを使用して、前記機械学習システムを再訓練することとを前記プロセッサにさらに行わせる、請求項1に記載のシステム。
【請求項9】
前記命令は、
個別の撮像デバイスから前記訓練画像のセットを取得することと、
前記個別の
撮像デバイスからの画像の第1の訓練セットに基づいて前記機械学習システムを訓練し、前記個別の
撮像デバイスのための前記機械学習システムによる強調を最適化することと
を前記プロセッサにさらに行わせる、請求項1に記載のシステム。
【請求項10】
前記機械学習システムは、ニューラルネットワークを備える、請求項1に記載のシステム。
【請求項11】
前記機械学習システムを訓練することは、複数の損失関数の線形結合を最小限にすることを含む、請求項1に記載のシステム。
【請求項12】
前記機械学習システムを訓練することは、人間によって知覚可能な周波数範囲内の性能のために前記機械学習システムを最適化することを含む、請求項1に記載のシステム。
【請求項13】
前記機械学習システムを訓練することは、
個別の入力画像に対応する、前記機械学習システムによって発生される強調画像を取得することと、
前記個別の入力画像に対応する、前記標的出力画像のセットのうちの個別の標的出力画像を取得することと、
帯域通過フィルタを通して前記強調画像および前記標的出力画像を通過させることと、
フィルタ処理された
前記強調画像およびフィルタ処理された
前記標的出力画像に基づいて、前記機械学習システムを訓練することと
を含む、請求項12に記載のシステム。
【請求項14】
前記機械学習システムを訓練することは、
前記訓練画像のセットを捕捉するために使用される撮像デバイスと関連付けられる雑音画像を取得することであって、前記雑音画像は、前記撮像デバイスによって発生される雑音を捕捉する、ことと、
前記雑音画像を前記機械学習システムの中への入力として含むことと
を含む、請求項1に記載のシステム。
【請求項15】
前記機械学習システムを訓練するために使用されるべき前記訓練画像のセットを取得することは、
減光フィルタを使用して、入力画像のセットを取得することであって、前記入力画像のセットのうちの各画像は、対応する場面のものである、ことと、
標的出力画像のセットを取得することであって、前記入力画像のセットの中の入力画像毎に、前記減光フィルタを用いることなく捕捉される前記対応する場面の標的出力画像を取得することを含み、前記標的出力画像は、前記入力画像の標的強調を表す、ことと
を含む、請求項1に記載のシステム。
【請求項16】
画像を自動的に強調するためのシステムであって、前記システムは、
プロセッサと、
前記プロセッサによって実装される機械学習システムであって、前記機械学習システムは、
入力画像を受信することと、
前記入力画像に基づいて、前記入力画像内よりも多く照明される前記入力画像の少なくとも一部を備える出力画像を発生させることと
を行うように構成される、機械学習システムと
を備え、
前記機械学習システムは、訓練画像のセットに基づいて訓練され、前記訓練画像のセットは、
場面の入力画像と、
前記場面の標的出力画像であって、前記標的
出力画像は、前記場面の複数の画像を平均化することによって取得され、前記標的出力画像は、前記入力画像の標的強調を表す、標的出力画像と
を備える、システム。
【請求項17】
前記訓練画像のセットの1つ以上の入力画像は、減光フィルタを用いて捕捉され、
前記訓練画像のセットの1つ以上の出力画像は、前記減光フィルタを用いることなく捕捉される、請求項16に記載のシステム。
【請求項18】
前記プロセッサは、
第1の画像を受信することと、
前記第1の画像を第1の複数の画像部分に分割することと、
前記第1の複数の画像部分を前記機械学習システムに入力することと、
前記機械学習システムから第2の複数の画像部分を受信することと、
前記第2の複数の画像を組み合わせ、出力画像を発生させることと
を行うように構成される、請求項16に記載のシステム。
【請求項19】
前記機械学習システムは、前記第1の複数の画像部分のうちの個別の
画像部分に関して、
当該個別の画像部分の一部を切り取るように構成され、前記個別の画像部分の
前記一部は、前記個別の画像部分のピクセルのサブセットを備える、請求項18に記載のシステム。
【請求項20】
前記プロセッサは、
前記第1の複数の
画像部分のサイズを判定することと、
前記第1の画像を前記第1の複数の
画像部分に分割することと
を行うように構成され、
前記第1の複数の
画像部分はそれぞれ、前記サイズを有する、請求項18に記載のシステム。
【請求項21】
前記機械学習システムは、畳み込みニューラルネットワークまたは密に接続された畳み込みニューラルネットワークを備えるニューラルネットワークを備える、請求項11に記載のシステム。
【請求項22】
前記プロセッサは、
第1の画像を取得することと、
前記第1の画像を量子化して、量子化された画像を取得することと、
前記量子化された画像を前記機械学習システムに入力することと、
前記機械学習システムから個別の出力画像を受信することと
を行うように構成される、請求項16に記載のシステム。
【請求項23】
機械学習システムを訓練し、画像を強調するためのコンピュータ化方法であって、前記方法は、
前記機械学習システムを訓練するために使用されるべき訓練画像のセットを取得することであって、前記取得することは、
場面の入力画像を取得することと、
前記場面の複数の画像を平均化することによって、前記場面の標的出力画像を取得することであって、前記標的出力画像は、前記入力画像の標的強調を表す、ことと
を含む、ことと、
前記訓練画像のセットを使用して、前記機械学習システムを訓練することと
を含む、方法。
【請求項24】
画像を強調するための機械学習モデルを訓練する方法であって、前記方法は、
少なくとも1つのコンピュータハードウェアプロセッサを使用して、
表示されたビデオフレームの標的画像にアクセスすることであって、前記標的画像は、前記機械学習モデルの標的出力を表す、ことと、
前記表示されたビデオフレームの入力画像にアクセスすることであって、前記入力画像は、前記標的画像に対応し、前記機械学習モデルへの入力を表す、ことと、
前記標的画像および前記標的画像に対応する前記入力画像を使用して、前記機械学習モデルを訓練し、訓練された機械学習モデルを取得することと
を実施することを含む、方法。
【請求項25】
第1の露出時間を使用して、前記表示されたビデオフレームの標的画像を、撮像デバイスを使用して捕捉することと、
第2の露出時間を使用して、前記表示されたビデオフレームの入力画像を、前記撮像デバイスを使用して捕捉することであって、前記第2の露出時間は、前記第1の露出時間未満である、ことと
をさらに含む、請求項24に記載の方法。
【請求項26】
減光フィルタを用いて、前記表示されたビデオフレームの入力画像を、撮像デバイスを使用して捕捉することと、
減光フィルタを用いることなく、前記表示されたビデオフレームの標的画像を、前記撮像デバイスを使用して捕捉することと
をさらに含む、
請求項24に記載の方法。
【請求項27】
撮像デバイスを使用して、前記表示されたビデオフレームの入力画像を捕捉することと、
前記ビデオフレームの複数の静止捕捉の各ピクセル場所を平均化することによって、前記撮像デバイスを使用して、前記表示されたビデオフレームの標的画像を捕捉することと
をさらに含む、請求項24に記載の方法。
【請求項28】
第1の露出時間を使用して、前記表示されたビデオフレームの標的画像を、撮像デバイスを使用して捕捉することであって、前記表示されたビデオフレームは、第1の明度において表示される、ことと、
前記第1の露出時間を使用して、前記表示されたビデオフレームの入力画像を、前記撮像デバイスを使用して捕捉することであって、前記表示されたビデオフレームは、前記第1の明度よりも暗い第2の明度において表示される、ことと
をさらに含む、請求項24に記載の方法。
【請求項29】
前記入力画像および前記標的画像はそれぞれ、前記入力画像および標的画像が、前記表示されたビデオフレームと関連付けられるデータと異なる第2のデータを含むように、関連付けられる内側部分において前記表示されたビデオフレームを備え、
前記方法は、前記
表示されたビデオフレームと関連付けられる前記データを含むように、かつ前記第2のデータを除外するように、前記入力画像および前記標的画像のそれぞれを切り取ることをさらに含む、請求項24に記載の方法。
【請求項30】
前記入力画像および前記標的画像はそれぞれ、前記ビデオフレームを表示するディスプレイデバイスの第2のピクセル数未満である同一の第1のピクセル数を備える、請求項29に記載の方法。
【請求項31】
画像にアクセスすることと、
前記画像を入力として前記訓練された機械学習モデルに提供し、前記画像に関する更新されたピクセル値を示す対応する出力を取得することと、
前記訓練された機械学習モデルからの出力を使用して、前記画像を更新することと
をさらに含む、請求項24に記載の方法。
【請求項32】
複数の付加的標的画像であって、前記付加的標的画像のうちの各標的画像は、
関連付けられる表示されたビデオフレームのものであり、
前記関連付けられる表示されたビデオフレームに関する前記機械学習モデルの関連付けられる標的出力を表す、
複数の付加的標的画像と、
複数の付加的入力画像であって、前記付加的入力画像のうちの各入力画像は、
前記入力画像が、対応する標的画像と同一の表示されたビデオフレームのものであるように、前記付加的標的画像のうちの標的画像に対応し、
前記対応する標的画像に関する前記機械学習モデルへの入力を表す、
複数の付加的入力画像と
にアクセスすることと、
(a)前記標的画像および前記標的画像に対応する前記入力画像と、(b)前記複数の付加的標的画像および前記複数の付加
的入力画像とを使用して、前記機械学習モデルを訓練し、訓練された機械学習モデルを取得することと
をさらに含む、請求項24に記載の方法。
【請求項33】
画像を強調するための機械学習モデルを訓練するためのシステムであって、前記システムは、
ビデオのビデオフレームを表示するためのディスプレイと、
デジタル撮像デバイスであって、
表示された前
記ビデオフレームの標的画像を捕捉することであって、前記標的画像は、前記機械学習モデルの標的出力を表す、ことと、
前記表示されたビデオフレームの入力画像を捕捉することであって、前記入力画像は、前記標的画像に対応し、前記機械学習モデルへの入力を表す、ことと
を行うように構成される、デジタル撮像デバイスと、
少なくとも1つのハードウェアプロセッサと、プロセッサ実行可能命令を記憶する少なくとも1つの非一過性のコンピュータ可読記憶媒体とを備えるコンピューティングデバイスであって、前記プロセッサ実行可能命令は、前記少なくとも1つのハードウェアプロセッサによって実行されると、
前記標的画像および前記入力画像にアクセスすることと、
前記標的画像および前記標的画像に対応する前記入力画像を使用して、前記機械学習モデルを訓練し、訓練された機械学習モデルを取得することと
を実施することを前記少なくとも1つのハードウェアプロセッサに行わせる、コンピューティングデバイスと
を備える、システム。
【請求項34】
前記ディスプレイは、テレビ、プロジェクタ、またはそれらのある組み合わせを備える、請求項33に記載のシステム。
【請求項35】
プロセッサ実行可能命令を記憶する少なくとも1つのコンピュータ可読記憶媒体であって、前記プロセッサ実行可能命令は、少なくとも1つのプロセッサによって実行されると、
表示されたビデオフレームの標的画像にアクセスすることであって、前記標的画像は、機械学習モデルの標的出力を表す、ことと、
前記表示されたビデオフレームの入力画像にアクセスすることであって、前記入力画像は、前記標的画像に対応し、前記機械学習モデルへの入力を表す、ことと、
前記標的画像および前記標的画像に対応する前記入力画像を使用して、前記機械学習モデルを訓練し、訓練された機械学習モデルを取得することと
を実施することを前記少なくとも1つのプロセッサに行わせる、少なくとも1つのコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、参照することによってその全体として本明細書に組み込まれる、「Artificial Intelligence Techniques for Image Enhancement」と題され、2018年に8月7日に出願された、米国仮出願第62/715,732号の優先権を35 U.S.C. § 119(e)の下で主張する。
【0002】
本明細書に説明される技法は、概して、人工知能(AI)技法を使用し、画像を強調するための方法および装置に関する。
【背景技術】
【0003】
画像(例えば、デジタル画像、ビデオフレーム等)が、多くの異なるタイプのデバイスによって捕捉され得る。例えば、ビデオ録画デバイス、デジタルカメラ、画像センサ、医用画像デバイス、電磁場感知、および/または音響監視デバイスが、画像を捕捉するために使用され得る。捕捉された画像は、画像が捕捉された環境または条件の結果として、質が悪くなり得る。例えば、暗い環境内および/または不良な照明条件下で捕捉される画像は、画像の大部分が概ね暗く、ならびに/もしくは雑音が多くなるほど、質が悪くなり得る。捕捉された画像はまた、低コストおよび/または低品質画像センサを使用するデバイス等のデバイスの物理的制約に起因して、質が悪くなり得る。
【発明の概要】
【課題を解決するための手段】
【0004】
種々の側面によると、システムおよび方法が、弱光条件および/または雑音の多い画像内で捕捉される画像等の質の悪い画像を強調するために提供される。弱光条件において撮像デバイスによって捕捉される画像は、捕捉された画像に、例えば、不良なコントラスト、ぼやけ、雑音アーチファクトを持たせる、および/または別様に画像内の1つ以上のオブジェクトを明確に表示させない場合がある。本明細書に説明される技法は、人工知能(AI)アプローチを使用して、これらおよび他のタイプの画像を強調し、明確な画像を生成する。
【0005】
いくつかの実施形態は、機械学習システムを訓練し、画像を強調するためのシステムに関する。本システムは、プロセッサと、プロセッサによって実行されると、プロセッサに、機械学習システムを訓練するために使用されるべき訓練画像のセットを取得するステップであって、場面の入力画像を取得するステップと、場面の複数の画像を平均化することによって、場面の標的出力画像を取得するステップであって、標的出力画像は、入力画像の標的強調を表す、ステップとを含む、取得するステップと、訓練画像のセットを使用して、機械学習システムを訓練するステップとを実施させる、プロセッサ実行可能命令を記憶する、非一過性のコンピュータ可読記憶媒体とを含む。
【0006】
いくつかの実施例では、本システムはさらに、入力画像のセットを取得し、入力画像のセットの中の各入力画像は、対応する場面のものであり、入力画像のセットの中の入力画像毎に、対応する場面の複数の画像を平均化することによって、対応する場面の標的出力画像を取得するステップを含み、標的出力画像のセットを取得し、入力画像のセットおよび標的出力画像のセットを使用して、機械学習システムを訓練するように構成される。
【0007】
いくつかの実施例では、入力画像を取得するステップは、所定のISO閾値を上回るISO設定において入力画像を取得するステップを含む。
【0008】
いくつかの実施例では、ISO閾値は、約1,500~500,000のISO範囲から選択される。
【0009】
いくつかの実施例では、複数の画像を平均化するステップは、複数の画像内の各ピクセル場所を横断して算術平均を算出するステップを含む。
【0010】
いくつかの実施例では、訓練画像のセットを取得するステップは、複数の画像捕捉設定のために訓練画像のセットを取得するステップを含む。
【0011】
いくつかの実施例では、訓練画像のセットを取得するステップは、画像の入力セットおよび画像の出力セットを捕捉するために使用される撮像デバイスの雑音を捕捉する、1つ以上の画像を取得するステップを含む。
【0012】
いくつかの実施例では、命令はさらに、プロセッサに、訓練画像の第2のセットを取得するステップを実施させ、訓練画像の第2のセットを使用して、機械学習システムを再訓練させる。
【0013】
いくつかの実施例では、命令はさらに、プロセッサに、個別の撮像デバイスから訓練画像のセットを取得させ、個別のデバイスからの画像の第1の訓練セットに基づいて機械学習システムを訓練させて、個別のデバイスのための機械学習システムによる強調を最適化させる。
【0014】
いくつかの実施例では、機械学習システムは、ニューラルネットワークを備える。
【0015】
いくつかの実施例では、機械学習システムを訓練するステップは、複数の損失関数の線形結合を最小限にするステップを含む。
【0016】
いくつかの実施例では、機械学習システムを訓練するステップは、人間によって知覚可能な周波数範囲内の性能のために機械学習システムを最適化するステップを含む。
【0017】
いくつかの実施例では、機械学習システムを訓練するステップは、個別の入力画像に対応する、機械学習システムによって発生される強調画像を取得するステップと、個別の入力画像に対応する、標的出力画像のセットのうちの個別の標的出力画像を取得するステップと、帯域通過フィルタを通して強調画像および標的出力画像を通過させるステップと、フィルタ処理された強調画像およびフィルタ処理された標的出力画像に基づいて、機械学習システムを訓練するステップとを含む。
【0018】
いくつかの実施例では、機械学習システムを訓練するステップは、訓練画像のセットを捕捉するために使用される撮像デバイスと関連付けられる雑音画像を取得するステップであって、雑音画像は、撮像デバイスによって発生される雑音を捕捉する、ステップと、雑音画像を機械学習システムの中への入力として含むステップとを含む。
【0019】
いくつかの実施例では、機械学習システムを訓練するために使用されるべき訓練画像のセットを取得するステップは、減光フィルタを使用して、入力画像のセットを取得するステップであって、入力画像のセットのうちの各画像は、対応する場面のものである、ステップと、入力画像のセットの中の入力画像毎に、減光フィルタを用いることなく捕捉される、対応する場面の標的出力画像を取得するステップを含む、標的出力画像のセットを取得するステップであって、標的出力画像は、入力画像の標的強調を表す、ステップとを含む。
【0020】
いくつかの実施形態は、画像を自動的に強調するためのシステムに関する。本システムは、プロセッサと、プロセッサによって実装される機械学習システムであって、入力画像を受信し、入力画像に基づいて、入力画像内よりも多く照明される入力画像の少なくとも一部を備える、出力画像を発生させるように構成される、機械学習システムとを含む。機械学習システムは、場面の入力画像と、場面の標的出力画像であって、標的画像は、場面の複数の画像を平均化することによって取得され、標的出力画像は、入力画像の標的強調を表す、標的出力画像とを含む、訓練画像のセットに基づいて訓練される。
【0021】
いくつかの実施例では、訓練画像のセットの1つ以上の入力画像は、減光フィルタを用いて捕捉され、訓練画像のセットの1つ以上の出力画像は、減光フィルタを用いることなく捕捉される。
【0022】
いくつかの実施例では、プロセッサは、第1の画像を受信し、第1の画像を第1の複数の画像部分に分割し、第1の複数の画像部分を機械学習システムに入力し、機械学習システムから第2の複数の画像部分を受信し、第2の複数の画像を組み合わせ、出力画像を発生させるように構成される。
【0023】
いくつかの実施例では、機械学習システムは、第1の複数の画像部分のうちの個別のものに関して、個別の画像部分の一部を切り取るように構成され、個別の画像部分の一部は、個別の画像部分のピクセルのサブセットを備える。
【0024】
いくつかの実施例では、プロセッサは、第1の複数の部分のサイズを判定し、第1の画像を第1の複数の部分に分割するように構成され、第1の複数の部分はそれぞれ、サイズを有する。
【0025】
いくつかの実施例では、機械学習システムは、畳み込みニューラルネットワークまたは密に接続された畳み込みニューラルネットワークを備える、ニューラルネットワークを備える。
【0026】
いくつかの実施例では、プロセッサは、第1の画像を取得し、第1の画像を量子化して、量子化された画像を取得し、量子化された画像を機械学習システムに入力し、機械学習システムから個別の出力画像を受信するように構成される。
【0027】
いくつかの実施形態は、機械学習システムを訓練し、画像を強調するためのコンピュータ化方法に関する。本方法は、機械学習システムを訓練するために使用されるべき訓練画像のセットを取得するステップであって、場面の入力画像を取得するステップと、場面の複数の画像を平均化することによって、場面の標的出力画像を取得するステップであって、標的出力画像は、入力画像の標的強調を表す、ステップとを含む、取得するステップを含む。本方法は、訓練画像のセットを使用して、機械学習システムを訓練するステップを含む。
【0028】
いくつかの実施形態は、画像を強調するための機械学習モデルを訓練する方法に関する。本方法は、少なくとも1つのコンピュータハードウェアプロセッサを使用し、表示されたビデオフレームの標的画像にアクセスするステップであって、標的画像は、機械学習モデルの標的出力を表す、ステップと、表示されたビデオフレームの入力画像にアクセスするステップであって、入力画像は、標的画像に対応し、機械学習モデルへの入力を表す、ステップと、標的画像および標的画像に対応する入力画像を使用して、機械学習モデルを訓練し、訓練された機械学習モデルを取得するステップとを実施するステップを含む。
【0029】
いくつかの実施例では、本方法はさらに、第1の露出時間を使用して、表示されたビデオフレームの標的画像を、撮像デバイスを使用して捕捉するステップと、第2の露出時間を使用して、表示されたビデオフレームの入力画像を、撮像デバイスを使用して捕捉するステップであって、第2の露出時間は、第1の露出時間未満である、ステップとを含む。
【0030】
いくつかの実施形態では、本方法はさらに、減光フィルタを用いて、表示されたビデオフレームの入力画像を、撮像デバイスを使用して捕捉するステップと、減光フィルタを用いることなく、表示されたビデオフレームの標的画像を、撮像デバイスを使用して捕捉するステップとを含む。
【0031】
いくつかの実施例では、本方法は、撮像デバイスを使用して、表示されたビデオフレームの入力画像を捕捉するステップと、ビデオフレームの複数の静止捕捉の各ピクセル場所を平均化することによって、撮像デバイスを使用して、表示されたビデオフレームの標的画像を捕捉するステップとを含む。
【0032】
いくつかの実施例では、本方法は、第1の露出時間を使用して、表示されたビデオフレームの標的画像を、撮像デバイスを使用して捕捉するステップであって、表示されたビデオフレームは、第1の明度において表示される、ステップと、第1の露出時間を使用して、表示されたビデオフレームの入力画像を、撮像デバイスを使用して捕捉するステップであって、表示されたビデオフレームは、第1の明度よりも暗い第2の明度において表示される、ステップとを含む。
【0033】
いくつかの実施例では、入力画像および標的画像はそれぞれ、入力画像および標的画像が、表示されたビデオフレームと関連付けられるデータと異なる第2のデータを含むように、関連付けられる内側部分において表示されたビデオフレームを備え、方法はさらに、第1のデータを含むように、かつ第2のデータを除外するように、入力画像および標的画像のそれぞれを切り取るステップを含む。
【0034】
いくつかの実施例では、入力画像および標的画像はそれぞれ、ビデオフレームを表示するディスプレイデバイスの第2のピクセル数未満である、同一の第1のピクセル数を備える。
【0035】
いくつかの実施例では、本方法は、画像にアクセスするステップと、画像を入力として訓練された機械学習モデルに提供し、画像に関する更新されたピクセル値を示す、対応する出力を取得するステップと、訓練された機械学習モデルからの出力を使用して、画像を更新するステップとを含む。
【0036】
いくつかの実施例では、本方法は、複数の付加的標的画像にアクセスするステップを含み、付加的標的画像のうちの各標的画像は、関連付けられる表示されたビデオフレームのものであり、関連付けられる表示されたビデオフレームに関する機械学習モデルの関連付けられる標的出力を表す。本方法は、付加的入力画像にアクセスするステップを含み、付加的入力画像のうちの各入力画像は、入力画像が、対応する標的画像と同一の表示されたビデオフレームのものであるように、付加的標的画像のうちの標的画像に対応し、対応する標的画像に関する機械学習モデルへの入力を表す。本方法は、(a)標的画像および標的画像に対応する入力画像、ならびに(b)複数の付加的標的画像および複数の付加的な関連付けられる入力画像を使用して、機械学習モデルを訓練し、訓練された機械学習モデルを取得するステップを含む。
【0037】
いくつかの実施形態は、画像を強調するための機械学習モデルを訓練するためのシステムに関する。本システムは、ビデオのビデオフレームを表示するためのディスプレイと、表示されたビデオフレームの標的画像を捕捉し、標的画像は、機械学習モデルの標的出力を表し、表示されたビデオフレームの入力画像を捕捉するように構成され、入力画像は、標的画像に対応し、機械学習モデルへの入力を表す、デジタル撮像デバイスとを含む。本システムは、少なくとも1つのハードウェアプロセッサと、少なくとも1つのハードウェアプロセッサによって実行されると、少なくとも1つのハードウェアプロセッサに、標的画像および入力画像にアクセスするステップと、標的画像および標的画像に対応する入力画像を使用して、機械学習モデルを訓練し、訓練された機械学習モデルを取得するステップとを実施させる、プロセッサ実行可能命令を記憶する、少なくとも1つの非一過性のコンピュータ可読記憶媒体とを備える、コンピューティングデバイスを含む。
【0038】
いくつかの実施例では、ディスプレイは、テレビ、プロジェクタ、またはそれらのある組み合わせを備える。
【0039】
いくつかの実施形態は、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、表示されたビデオフレームの標的画像にアクセスするステップであって、標的画像は、機械学習モデルの標的出力を表す、ステップと、表示されたビデオフレームの入力画像にアクセスするステップであって、入力画像は、標的画像に対応し、機械学習モデルへの入力を表す、ステップと、標的画像および標的画像に対応する入力画像を使用して、機械学習モデルを訓練し、訓練された機械学習モデルを取得するステップとを実施させる、プロセッサ実行可能命令を記憶する、少なくとも1つのコンピュータ可読記憶媒体に関する。
【0040】
したがって、以下に続く、その発明を実施するための形態がさらに理解され得るために、かつ当技術分野への本寄与がさらに認識され得るために、開示される主題の特徴が、かなり広義に概説されている。当然ながら、以降に説明されるであろう、かつ本明細書に添付される請求項の主題を形成するであろう、開示される主題の付加的特徴が存在する。本明細書で採用される語句および用語は、説明の目的のためであり、限定的と見なされるべきではないことを理解されたい。
【図面の簡単な説明】
【0041】
図面では、種々の図に図示される各同じまたはほぼ同じコンポーネントが、同様の参照文字によって表される。明確にする目的のために、全てのコンポーネントが、全ての図面で標識されるわけではない場合がある。図面は、必ずしも一定の縮尺で描かれず、代わりに、本明細書に説明される技法およびデバイスの種々の側面を図示することに重点が置かれている。
【0042】
【
図1A】
図1A-Bは、いくつかの実施形態による、画像強調システムの動作を図示するブロック図を示す。
【
図1B】
図1A-Bは、いくつかの実施形態による、画像強調システムの動作を図示するブロック図を示す。
【0043】
【
図2A】
図2Aは、いくつかの実施形態による、機械学習システムを訓練するためのプロセスを示す。
【0044】
【
図2B】
図2Bは、いくつかの実施形態による、訓練画像のセットを取得するための例示的プロセスを示す。
【0045】
【
図2C】
図2Cは、いくつかの実施形態による、訓練画像のセットを取得するための別の例示的プロセスを示す。
【0046】
【
図3A】
図3Aは、いくつかの実施形態による、入力および出力画像の一部を使用して、機械学習システムを訓練するためのプロセスを示す。
【0047】
【
図3B】
図3Bは、いくつかの実施形態による、画像を部分に分割することによって画像を強調するためのプロセスを示す。
【0048】
【
図3C】
図3Cは、いくつかの実施形態による、機械学習システムによって実施されるフィルタリング動作において縁歪みを軽減するためのプロセスを示す。
【0049】
【
図4】
図4は、いくつかの実施形態による、機械学習システムを訓練するためのプロセスを示す。
【0050】
【
図5】
図5は、いくつかの実施形態による、機械学習システムを訓練するための画像の訓練セットのうちの画像を発生させるためのプロセスを示す。
【0051】
【
図6】
図6は、本明細書に説明される技術のいくつかの実施形態による、本明細書に説明される技術の側面が実装され得る、例示的システムを示す。
【0052】
【
図7】
図7は、本明細書に説明される技術のいくつかの実施形態による、訓練データの制御された発生のための例示的プロセスのフローチャートを示す。
【0053】
【
図8】
図8は、本明細書に説明される技術のいくつかの実施形態による、画像を強調するための
図7のプロセスから取得される、訓練された機械学習モデルを使用するための例示的プロセスを図示する。
【0054】
【
図9】
図9は、いくつかの実施形態による、種々の側面が実装され得る、分散コンピュータシステムのブロック図を示す。
【発明を実施するための形態】
【0055】
本発明者らは、撮像デバイス(例えば、デジタルカメラ、画像センサ、医用画像デバイス、および/または電磁場センサ)が、弱光において捕捉される画像等の雑音の多い画像を捕捉するときに、うまく機能しない場合があることを認識している。例えば、デジタルカメラは、典型的には、続いて、カラーフィルタアレイ(CFA)を通してフィルタ処理される光波を、光学レンズを介して受光し、受光された光波を電気信号に変換する、画像センサを有し得る。電気信号は、次いで、画像信号処理(ISP)アルゴリズムの連鎖を通して、1つ以上のデジタル値(例えば、赤色、青色、および緑色(RGB)チャネル値)に変換される。撮像デバイスによって捕捉される画像の品質は、少量の照明が存在する条件では、不良となり得る。例えば、デジタルカメラでは、画像センサは、少量の光が存在するときに、画像内の1つ以上のオブジェクトを区別するために十分な情報を捕捉するために十分に敏感ではない場合がある。したがって、弱光は、不良なコントラスト、雑音アーチファクト、および/または画像内のぼやけたオブジェクトを伴う画像につながり得る。
【0056】
弱光において画像を捕捉するための従来のソリューションは、弱光における性能のために特殊化される画像センサの使用を伴い得る。しかしながら、そのようなセンサは、他の画像センサに対してより大きいサイズを有し得る。例えば、スマートフォン用のデジタルカメラは、サイズ制限により、そのような特殊センサをスマートフォンの中に組み込むことが不可能であり得る。特殊センサはまた、より多くの電力および他のリソースを要求し、したがって、デバイス(例えば、スマートフォン)の効率を低減させ得る。さらに、そのような特殊センサは、多くの場合、弱光における動作のために特殊化されていない画像センサよりも有意に高価である。他のソリューションは、多くの場合、異なる用途を横断して実装されることができない、限られたユースケースを有する。例えば、赤外線もしくは熱センサ、LIDAR、および/または同等物の追加が、弱光において捕捉される画像を改良するために使用されてもよい。しかしながら、これは、多くの場合、付加的ハードウェアおよびリソースを要求する。多くのリソース制約型デバイスは、そのようなソリューションを組み込むことが不可能であり得る。
【0057】
本発明者らは、弱光条件において捕捉されるもの等の雑音の多い画像を強調し、デバイスの既存のハードウェアに追加または変更を要求することなく、より高い品質の画像を取得するための技法を開発してきた。本技法はまた、従来的ISPアルゴリズム等の他の従来の技法よりも良好な性能を提供することもできる。強調画像はさらに、画像セグメンテーション、オブジェクト検出、顔認識、および/または他の用途等の画像を利用する他の用途の改良された性能を提供し得る。
【0058】
教師あり学習は、概して、入出力訓練データセットを使用して、機械学習モデルを訓練するプロセスを指す。機械学習モデルは、ニューラルネットワークを使用して、適切なモデルパラメータ(例えば、加重および/またはバイアス等)を見出し、変換を適切に実施し、機械学習モデルが新しいデータを取り扱うことを可能にすること等によって、訓練データの入出力ペアの間でマップする方法を学習する。機械学習技法が、デバイスの既存のハードウェアに追加または変更を要求することなく、撮像デバイスによって捕捉される画像および/またはビデオを強調するために使用されてもよい。例えば、デジタルカメラによって捕捉される画像またはビデオが、画像またはビデオの強調バージョンの出力を取得するように、入力として訓練された機械学習モデルに提供されてもよい。本発明者らは、新しい入力画像またはビデオフレームを強調するために使用される機械学習モデルを訓練するために使用され得る、画像の入出力セットの制御された発生のための技法を開発してきた。いくつかの実施形態では、機械学習モデルは、暗い入力画像の弱光強調を実施し、明るい高品質の標的画像を生成するために使用されることができる。いくつかの実施形態では、機械学習モデルは、入力画像(例えば、高いISO値において撮影される)の雑音除去を実施し、雑音除去された標的画像を生成するために使用されることができる。解説を容易にするために、限定的であることを意図することなく、入力画像はまた、本明細書では「暗い画像」とも称され得、出力画像は、本明細書では「標的画像」および/または「明るい画像」と称され得る。標的画像は、機械学習モデルによって発生されることになる、標的照明出力の側面を表し得る。
【0059】
用語「暗い画像」および「明るい画像」は、本明細書では解説を容易にするために使用されるが、明度のみを指すこと、または明度に関しない画像の特性を除外することを意図していないことを理解されたい。例えば、本技法は、雑音の多い画像を処理し、より良好な信号対雑音比を伴う画像を発生させるために使用されることができる。したがって、本明細書に説明されるいくつかの実施例は、暗い画像および明るい画像を指すが、本技法は、雑音、明度、コントラスト、ぼやけ、アーチファクト、および/または他の雑音アーチファクトを含む、入力画像の種々のタイプの望ましくない側面を処理するために使用され得ることを理解されたい。したがって、本明細書に説明される技法を使用して処理される入力画像は、望ましくない側面を伴う任意のタイプの画像であり得、出力画像は、望ましくない側面が軽減および/または除去された(例えば、本明細書に説明されるように、機械学習技法を使用して発生され得る)画像を表すことができる。
【0060】
本発明者らは、教師あり学習を使用する(例えば、ニューラルネットワークを用いた)未加工画像データの強調が、本明細書では同一のオブジェクトまたは場面の暗い入力画像および対応する明るい標的画像のペア等の暗いおよび明るい画像の入力標的訓練ペアとも称される、入出力を使用して達成され得ることを発見および認識している。入力標的画像を捕捉するために使用される、いくつかの技法は、少ない照明を用いて実世界オブジェクトまたは場面の写真を撮影することを含み、それによって、暗い画像は、短い露出(例えば、1/15または1/30秒)を用いて捕捉され、明るい画像は、長い露出(例えば、1秒、2秒、10秒、またはそれを上回る)を用いて捕捉されることができる。長い露出を使用することによって、結果として生じる明るい画像は、はるかに明るく、別様に場面に存在するよりも多くの周囲光が存在する場合のように見える。低照明場面を捕捉する入力標的画像を使用することは、低照明条件において使用されるときに、機械学習モデルに撮像デバイスの雑音特性を捕捉させ得る、機械学習モデルを使用して処理されるであろう、予期される入力画像と類似する照明の下で捕捉される入力画像を使用して、機械学習モデルを訓練することができる。
【0061】
しかしながら、本発明者らは、デバイスによって捕捉される画像を強調する際の機械学習モデルの性能が、機械学習モデルを訓練するために使用される訓練データ(例えば、入力画像および/または対応する標的出力画像)の品質によって限定されることを認識している。弱光においてデバイスによって捕捉されるであろう画像をより正確に表す入力画像を使用して訓練される、機械学習モデルは、弱光においてデバイスによって捕捉される画像のより良好な強調を提供するであろう。本発明者らはまた、種々の実世界場面および場所に関して収集されるデータを含む、広範囲の実世界訓練データを提供することが望ましいことも認識している。しかしながら、このように明るい画像を捕捉することは、訓練目的のために望ましくあり得る、運動を伴う場面が、明るい画像にぼやけを引き起こし得るという事実によって複雑化され得る。多くの実世界場面が、運動を含むため、既存の技法は、そのような場面の入力標的画像ペアを十分に捕捉するために使用されることができない。特に、ビデオ強調の目的のために、運動を伴う場面の明るい連続フレームを捕捉することは、不可能ではないとしても困難であり得る。例えば、場面の写真を撮影するときに、写真は、運動に起因するぼやけを呈し得る。同様に、場面のビデオを捕捉するとき、(例えば、長さがわずか1/30秒である)場面の明るいフレームを捕捉することが望ましくあり得るが、暗い環境を使用し、場面の暗い画像も捕捉するとき等に、そのような画像を捕捉することは困難であり得る。
【0062】
加えて、訓練目的のためにも望ましくあり得る、異なる場面の画像を伴う広いデータセットを捕捉するために、オペレータが、カメラを各場所まで、および/または各場所における種々の撮像点の周囲に物理的に移動させる必要があり、これは、十分な訓練データを適切に集めることの実用性をさらに限定する。例えば、場面の十分な数の入力標的画像ペアを捕捉するために、カメラを場面内の数百または数千の場所、ならびに数十万の異なる場所まで移動させることを要求し得る。そのような技法が、カメラが各場所に物理的に存在することを要求するため、時間、進行、および/または同等物への実用的制約に起因して、訓練データのロバスト性を有意に限定し得る。
【0063】
本発明者らは、事前捕捉されたビデオを使用して、実世界データをシミュレートするためのコンピュータ化技法を開発してきた。本技法は、フレーム毎にビデオフレームを表示する、ディスプレイデバイス(例えば、テレビまたはプロジェクタ)を使用するステップを含む。いくつかの実施形態では、事前捕捉されたビデオは、フレームが、十分な持続時間にわたって、および/または十分な明度において表示されることを可能にし、撮像デバイスが、同一のビデオフレームの暗い画像および明るい画像の両方を捕捉することを可能にする。標的画像は、したがって、通常の照明条件下で撮像デバイスによって捕捉された場合のように、ビデオフレーム内に場面を表すことができ、入力画像は、弱光において撮像デバイスによって捕捉された場合のように、ビデオフレーム内に場面を表し得る。いくつかの実施形態では、撮像デバイスは、短い露出時間を使用してフレームの暗い画像を捕捉し、長い露出時間を使用してフレームの明るい画像を捕捉することができる。いくつかの実施形態では、ディスプレイの明度は、典型的に使用されるものよりも短い露出時間を用いて、および/または暗い画像を捕捉するために使用されるものと類似する露出時間を使用して、明るい画像が捕捉されることを可能にするように調節されることができる。本明細書に説明される技法は、したがって、各ビデオフレームの暗いおよび明るい画像の制御された発生を提供する。フレーム毎に画像を捕捉することによって、本技法は、個々の入力標的画像ペアが、ぼやけに起因するアーチファクトを呈さないように、運動を伴う場面の入力標的画像ペアを発生させるために使用されることができる。本技法は、撮像デバイスが、十分な訓練データを収集するために数千の実際の場所に物理的に存在する(かつそこに物理的に移動される)ことを要求する代わりに、種々の場面にわたって高速データ収集を可能にすることができる。
【0064】
以下の説明では、多数の具体的詳細が、開示される主題の徹底的な理解を提供するために、開示される主題のシステムおよび方法、ならびにそのようなシステムおよび方法が動作し得る環境等に関して、記載される。加えて、下記に提供される実施例は、例示的であり、開示される主題の範囲内に該当する他のシステムおよび方法が存在することが検討されることを理解されたい。
【0065】
一側面によると、システムが、弱光条件において捕捉される画像等の雑音の多い画像を強調するために提供される。本システムは、訓練画像のセットを使用し、画像を強調するために使用されることになる機械学習システムを訓練する。本システムは、弱光条件において捕捉される画像(例えば、ある種の雑音を呈する「暗い」画像)を表す、訓練画像の入力セットを使用する。画像の本入力セットは、例えば、強調のために機械学習システムに入力されるであろう、弱光画像を表し得る。本システムは、訓練画像の第1のセットに対応する、訓練画像の出力セットを使用する。画像の出力セットは、入力画像を処理した後に機械学習システムによって出力されることになる画像の第1のセットの標的バージョン(例えば、入力画像よりも少ない雑音を含む、「明」または「明るい」画像)であってもよい。いくつかの実施形態では、画像の第1および第2のセットは、それぞれ、機械学習システムを訓練するために、教師あり学習スキームで訓練データの入力および出力として使用されてもよい。
【0066】
いくつかの実施形態では、本システムは、入力画像内の輝度のレベルを増加させるために訓練されてもよい。いくつかの実施形態では、本システムは、増加した輝度を伴う出力画像を発生させるように構成されてもよい。いくつかの実施形態では、本システムは、入力画像の輝度を2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、および/または20倍増加させ得る。いくつかの実施形態では、本システムは、入力画像の1つ以上の部分の輝度を、入力画像の1つ以上の他の部分に対して異なる量だけ増加させるように構成されてもよい。いくつかの実施形態では、本システムは、入力画像の輝度を5~15倍増加させるように構成されてもよい。いくつかの実施形態では、本システムは、入力画像の輝度を6~13倍増加させるように構成されてもよい。いくつかの実施形態では、本システムは、入力画像の輝度を少なくとも2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、または20倍増加させるように構成されてもよい。
【0067】
いくつかの実施形態では、本システムは、明度、コントラスト、ぼやけ、および/または同等物等の入力画像を破損する雑音アーチファクトを除去するように訓練されてもよい。入力画像を破損している雑音アーチファクトを除去することによって、本技法は、画像の信号対雑音比を増加させ得る。例えば、本技法は、信号対雑音比を、例えば、約2~20dB増加させ得る。
【0068】
いくつかの実施形態では、画像の入力セットは、減光フィルタを使用して、撮像デバイスを用いて画像を捕捉することによって、取得される。減光フィルタは、撮像デバイスのレンズに入射する光の強度を低減させる、または修正する、光学フィルタである。本発明者らは、減光フィルタを使用し、訓練セットの中の入力画像のセットを発生させることが、弱光において撮影される画像の特性を正確に反映し得ることを認識している。例えば、減光フィルタによって捕捉される画像は、弱光条件において捕捉される画像内のものに類似する雑音特性を有する。訓練セットの中の個別の入力画像に対応する出力画像が、減光フィルタを使用することなく、撮像デバイスを用いて同一の画像を捕捉することによって、取得されてもよい。出力画像は、訓練され得る機械学習システムに基づいて、個別の入力画像の標的強調バージョンを表す。本発明者らは、減光フィルタの使用が、他のカメラ設定を使用すること(例えば、ISO設定を変更すること、光源強度を低減させること、および/または露出時間を短縮すること)に起因するであろう、入力セットと出力セットとの間の変動を低減させながら、弱光条件において捕捉される画像内にあろう雑音特性を反映する画像の訓練セットを提供することを認識している。
【0069】
いくつかの実施形態では、画像の入力セットは、例えば、デジタルサンプリングプロセスにおいて低強度ピクセル値の量子化正確度を改良する、および/または最大限にし得る、高ISO値を伴う画像を捕捉することによって、取得される。いくつかの実施形態では、ISO値は、約1,600~500,000の範囲内であるISO値であり得る。例えば、高級消費者カメラは、最大500,000のISOを有し得る。いくつかの実施形態では、値は、特殊ハードウェア実装に関して最大500万等、500,000よりも高くあり得る。いくつかの実施形態では、ISO値は、ISO閾値を上回るように選択されることができる。訓練セットの中の個別の入力画像に対応する出力画像が、(例えば、画像の入力セットを捕捉するために使用される同一および/または類似ISO設定において)入力画像の複数の捕捉を生成し、続いて、複数の捕捉を横断してピクセル毎に強度を平均化すること等によって入力画像のセットを処理することによって、取得されてもよい。出力画像は、訓練され得る機械学習システムに基づいて、個別の入力画像の標的強調バージョンを表す。本発明者らは、いくつかの実施形態では、単回および/または数回の長い露出が、出力画像を捕捉するために使用され得る一方で、長い露出を使用することは、例えば、熱雑音を増加させることによって、センサの雑音性質を変化させ得ることを認識している。冷却間隔(例えば、連続捕捉の合間の1秒の冷却間隔)を伴ってとられる短い露出のセット(例えば、50、100、200等の短い露出の大規模セット)を横断してピクセル強度を平均化することは、入力フレームのものと一致する出力の熱雑音性質を保つことができる、ニューラルネットワークがより単純な変換関数を学習することを可能にすることができる、および/またはより圧縮性のニューラルネットワークモデルを可能にすることができる。
【0070】
別の側面によると、システムが、入力画像を複数の画像部分に分割するために提供される。本システムは、次いで、個々の入力として該部分を機械学習システムにフィードしてもよい。本システムは、個々の強調された出力部分をともにスティッチし、最終強調画像を発生させるように構成されてもよい。本発明者らは、画像を部分に分割することが、本システムが画像全体を一度に処理するよりも速く、画像の訓練および強調を実施することを可能にすることを認識している。
【0071】
別の側面によると、カメラのセンサからの雑音のみを含む、1つ以上の画像(本明細書では「雑音画像」とも称される)を、機械学習システムを訓練するための画像の訓練セットの中に入力画像として含む、システムが、提供される。画像は、画像のピクセル値のみが、撮像デバイスのコンポーネント(例えば、画像センサ)から発生される雑音に起因するように、ゼロに近い露出を用いて捕捉されてもよい。本システムは、雑音画像を使用し、機械学習システムを使用して実施される画像強調へのセンサ雑音の影響を低減させるように構成されてもよい。これは、種々の撮像デバイス設定(例えば、ISO設定および露出時間)を横断してAIシステムの画像強調性能を正規化し得る。
【0072】
別の側面によると、システムが、機械学習システムが人間に知覚可能である画像特徴を強調するために最適化されるように、機械学習システムを訓練するために提供される。いくつかの実施形態では、本システムは、人間によって知覚可能である周波数に関して機械学習システムを最適化するように構成されてもよい。本システムは、周波数に関して最適に機能するように、機械学習システムを訓練するように構成されてもよい。
【0073】
本明細書に説明されるものは、画像強調のための機械学習モデルを訓練するために使用され得る、訓練データの制御された発生のためのシステムおよびコンピュータ化技法である。テレビまたはプロジェクタ等のディスプレイデバイスが、表示されたフレームが訓練データを発生させるために使用され得るように、制御された様式でビデオのフレームを表示することができる。撮像デバイス(例えば、デジタルカメラ)は、表示されたビデオフレームの標的画像および入力画像を捕捉するように構成されることができる。標的および入力画像は、異なる露出時間を使用して、および/またはディスプレイの明度を調節することによって、捕捉されることができる。いくつかの実施形態では、標的画像は、通常の照明条件下で撮像デバイスによって捕捉された場合のようにビデオフレーム内に場面を表す、ビデオフレームの捕捉される画像(例えば、本明細書では「明るい画像」と称される)であってもよく、入力画像は、弱光において撮像デバイスによって捕捉された場合のようにビデオフレーム内に場面を表す、ビデオフレームの捕捉される画像(例えば、本明細書では「暗い画像」と称される)であってもよい。入力標的画像発生プロセスは、複数の入力画像および関連付けられる標的画像を含む、訓練データセットを発生させるように、繰り返されることができる。
【0074】
入力画像および標的画像は、次いで、機械学習モデルを訓練するために使用されてもよい。いくつかの実施形態では、機械学習モデルは、暗い画像を処理し、対応する明るい画像を発生させるために使用されることができる。標的画像は、暗い画像の照明を強調することによって発生されることになる、標的照明出力(例えば、赤色、緑色、および/または青色値、未加工ベイヤーパターン値、熱/赤外線センサデータ、ならびに/もしくは同等物等)を表し得る。したがって、暗い画像および対応する標的画像のセットを含む訓練データが、画像を照明することによって弱光条件において捕捉される画像を強調するために使用され得る、機械学習モデルを訓練するために使用されてもよい。
【0075】
いくつかの実施形態では、発生された暗い入力画像および対応する十分に照明された標的画像のセットを含むデータセットが、機械学習モデルを訓練し、撮像デバイスによって捕捉される画像(例えば、弱光条件下で捕捉される画像)を照明するために使用されてもよい。例えば、機械学習モデルは、対応する暗い画像に基づいて、標的の明るい画像を発生させるように訓練されることができる。訓練プロセスは、したがって、機械学習モデルを訓練し、新しい暗い画像に基づいて、暗い画像の照明(例えば、ピクセル毎の未加工ピクセルデータ、ピクセル毎の赤色、緑色、青色(RGB)値等)に基づく明るい画像に対応する、出力照明(例えば、ピクセル毎の未加工ピクセルデータ、ピクセル毎のRGB値等)を発生させることができる。
【0076】
画像は、写真であってもよい。例えば、画像は、撮像デバイス(例えば、デジタルカメラ)によって捕捉される写真であってもよい。画像はまた、ビデオの一部であってもよい。例えば、画像は、ビデオを構成する1つ以上のフレームであってもよい。
【0077】
本明細書に説明されるいくつかの実施形態は、本発明者らが従来の画像強調システムで認識した、上記に説明される課題に対処する。しかしながら、本明細書に説明される全ての実施形態が、これらの課題の全てに対処するわけではないことを理解されたい。また、本明細書に説明される技術の実施形態は、画像強調における上記に議論される課題に対処すること以外の方法のために使用され得ることも理解されたい。
【0078】
図1Aは、パラメータ102Aのセットを伴う機械学習システム102を示す。いくつかの実施形態では、機械学習システム102は、入力画像を受信し、強調された出力画像を発生させるように構成されるシステムであってもよい。機械学習システム102は、訓練画像のセット104に基づいて、訓練段階110の間にパラメータ102Aの値を学習してもよい。訓練段階110後に、学習されたパラメータ値112Aを伴って構成される、訓練された機械学習システム112が、取得される。訓練された機械学習システム112は、種々の撮像デバイス114A-Bによって捕捉される1つ以上の画像116を強調するために、画像強調システム111によって使用される。画像強調システム111は、画像116を受信し、1つ以上の強調画像118を出力する。
【0079】
いくつかの実施形態では、機械学習システム102は、弱光条件において捕捉された画像を強調するための機械学習システムであってもよい。いくつかの実施形態では、弱光条件において捕捉される画像は、十分な量の光強度が画像内の1つ以上のオブジェクトを捕捉するために存在しなかったものであってもよい。いくつかの実施形態では、弱光条件において捕捉される画像は、50ルクス未満の光源を用いて捕捉される画像であってもよい。いくつかの実施形態では、弱光条件において捕捉される画像は、1ルクス未満またはそれと等しい光源を用いて捕捉される画像であってもよい。いくつかの実施形態では、弱光条件において捕捉される画像は、2ルクス、3ルクス、4ルクス、または5ルクス未満またはそれと等しい光源を用いて捕捉される画像であってもよい。機械学習システム102は、弱光設定において捕捉された入力画像を受信し、より強い強度の光源を用いて捕捉された場合のようにオブジェクトを表示する、対応する出力画像を発生させるように構成されてもよい。
【0080】
いくつかの実施形態では、機械学習システム102は、1つ以上のパラメータ102Aを伴うニューラルネットワークを含んでもよい。ニューラルネットワークは、それぞれが1つ以上のノードを有する、複数の層から構成されてもよい。ニューラルネットワークのパラメータ102Aは、ニューラルネットワークの層内のノードによって使用される係数、加重、フィルタ、または他のタイプのパラメータであってもよい。ノードは、係数を使用して入力データを組み合わせ、ノードのアクティブ化機能の中にパスされる出力値を発生させる。アクティブ化機能は、ニューラルネットワークの次の層にパスされる出力値を発生させる。ニューラルネットワークの最終出力層によって発生される値は、タスクを実施するために使用されてもよい。いくつかの実施形態では、ニューラルネットワークの最終出力層は、入力画像の強調バージョンを発生させるために使用されてもよい。例えば、出力層の値は、ニューラルネットワークによって出力されることになる画像に関するピクセル値を発生させるための機能への入力として使用されてもよい。いくつかの実施形態では、ニューラルネットワークの出力層は、入力画像の強調バージョンを備えてもよい。例えば、ニューラルネットワークの出力層は、入力画像の強調バージョンのピクセルの値を規定してもよい。
【0081】
いくつかの実施形態では、機械学習システム102は、畳み込みニューラルネットワーク(CNN)を含んでもよい。CNNは、ノードの複数の層から構成されてもよい。パラメータ102Aは、CNNの各層において適用されるフィルタを含んでもよい。CNNの各層は、層への入力が畳み込まれる、1つ以上の学習可能フィルタのセットであってもよい。フィルタのそれぞれを用いた畳み込みの結果は、層の出力を発生させるために使用される。層の出力は、次いで、畳み込み動作の別のセットが後続の層の1つ以上のフィルタによって実施されるために、後続の層にパスされてもよい。いくつかの実施形態では、CNNの最終出力層は、入力画像の強調バージョンを発生させるために使用されてもよい。例えば、出力層の値は、ニューラルネットワークによって出力されることになる画像に関するピクセル値を発生させるための機能への入力として使用されてもよい。いくつかの実施形態では、ニューラルネットワークの出力層は、入力画像の強調バージョンを備えてもよい。例えば、CNNの出力層は、強調画像のピクセルに関する値を規定してもよい。いくつかの実施形態では、畳み込みニューラルネットワークは、U-ネットである。
【0082】
いくつかの実施形態では、機械学習システム102は、人工ニューラルネットワーク(ANN)を含んでもよい。いくつかの実施形態では、機械学習システム102は、リカレントニューラルネットワーク(RNN)を含んでもよい。いくつかの実施形態では、機械学習システム102は、決定木を含んでもよい。いくつかの実施形態では、機械学習システム102は、サポートベクターマシン(SVM)を含んでもよい。いくつかの実施形態では、機械学習システムは、遺伝的アルゴリズムを含んでもよい。いくつかの実施形態は、特定のタイプの機械学習モデルに限定されない。いくつかの実施形態では、機械学習システム102は、1つ以上の機械学習モデルの組み合わせを含んでもよい。例えば、機械学習システム102は、1つ以上のニューラルネットワーク、1つ以上の決定木、および/または1つ以上のサポートベクターマシンを含んでもよい。
【0083】
機械学習システムが、訓練段階110の間に訓練された後に、訓練された機械学習システム112が、取得される。訓練された機械学習システム112は、訓練画像104に基づいて機械学習システム112によって実施される画像強調の性能を最適化する、パラメータ112Aを学習している場合がある。学習されたパラメータ112Aは、機械学習システムのハイパーパラメータの値、機械学習システムの係数または加重の値、および機械学習システムの他のパラメータの値を含んでもよい。学習されたパラメータ112Aのうちのいくつかのパラメータが、訓練段階110の間に手動で判定されてもよい一方で、他のものは、訓練段階110の間に実施される自動訓練技法によって判定されてもよい。
【0084】
いくつかの実施形態では、画像強調システム111は、訓練された機械学習システム112を使用し、1つ以上の撮像デバイス114A-Bから受信される1つ以上の画像116の画像強調を実施する。例えば、撮像デバイスは、カメラ114Aと、スマートフォン114Bのデジタルカメラとを含んでもよい。いくつかの実施形態は、機械学習システム112が異なる撮像デバイスから受信された画像を強調し得るため、本明細書に説明される撮像デバイスからの画像に限定されない。
【0085】
画像強調システム111は、受信された画像116を使用し、訓練された機械学習システム112への入力を発生させる。いくつかの実施形態では、画像強調システム111は、1つ以上の機械学習モデル(例えば、ニューラルネットワーク)への入力として、画像116のピクセル値を使用するように構成されてもよい。いくつかの実施形態では、画像強調システム111は、画像116を部分に分割し、各部分のピクセル値を入力として機械学習システム112の中に別個にフィードするように構成されてもよい。いくつかの実施形態では、受信された画像116は、複数のチャネルに関する値を有してもよい。例えば、受信された画像116は、赤色チャネル、緑色チャネル、および青色チャネルに関する値を有してもよい。これらのチャネルはまた、本明細書では「RGBチャネル」と称され得る。
【0086】
受信された画像116を強調した後、画像強調システム111は、強調画像118を出力する。いくつかの実施形態では、強調画像118は、画像116が受信されたデバイスに出力されてもよい。例えば、強調画像118は、画像116が受信されたモバイルデバイス114Bに出力されてもよい。モバイルデバイス114Bは、デバイス114Bのディスプレイ内に強調画像118を表示し、強調画像118を記憶してもよい。いくつかの実施形態では、画像強調システム111は、発生された強調画像118を記憶するように構成されてもよい。いくつかの実施形態では、画像強調システム111は、画像強調システム111の性能の後続の評価および/または機械学習システム112の再訓練のために強調画像118を使用するように構成されてもよい。
【0087】
いくつかの実施形態では、画像強調システム111は、そこから画像116が受信されたデバイス上に展開されてもよい。例えば、画像強調システム111は、モバイルデバイス114Bによって実行されると、受信された画像116の強調を実施する、モバイルデバイス114B上にインストールされたアプリケーションの一部であってもよい。いくつかの実施形態では、画像強調システム111は、1つ以上の別個のコンピュータ上に実装されてもよい。画像強調システム111は、通信インターフェースを介して画像116を受信してもよい。通信インターフェースは、無線ネットワーク接続または有線接続であってもよい。例えば、画像強調システム111は、サーバ上に実装されてもよい。サーバは、ネットワークを介して(例えば、インターネットを介して)画像116を受信してもよい。別の実施例では、画像強調システム111は、デバイス114A-Bのうちの1つ以上のものから有線接続(例えば、USB)を介して画像116を受信する、デスクトップコンピュータであってもよい。いくつかの実施形態は、画像強調システム111が画像116を取得する方法によって限定されない。
【0088】
図1Bは、撮像デバイス(例えば、撮像デバイス114Aまたは114B)によって捕捉される画像の画像強調を実施するための画像強調システム111の例示的実装を図示する。オブジェクト120からの光波が、撮像デバイスの光学レンズ122を通して通過し、画像センサ124に到達する。画像センサ124は、光学レンズ122から光波を受信し、受信された光波の強度に基づいて、対応する電気信号を発生させる。電気信号は、次いで、電気信号に基づいてオブジェクト120の画像のデジタル値(例えば、数値RGBピクセル値)を発生させる、アナログ/デジタル(A/D)コンバータに伝送される。画像強調システム111は、画像111を受信し、訓練された機械学習システム112を使用して、画像を強調する。例えば、オブジェクト120の画像が、オブジェクトがぼやけている、および/または不良なコントラストが存在する、弱光条件において捕捉された場合、画像強調システム111は、オブジェクトのぼやけを修正する、および/またはコントラストを改良し得る。画像強調システム111は、オブジェクトを人間の眼により明確に識別できるようにしながら、画像の明度をさらに改良し得る。画像強調システム111は、さらなる画像処理128のために強調画像を出力してもよい。例えば、撮像デバイスは、画像にさらなる処理(例えば、明度、ホワイト、鮮明度、コントラスト)を実施してもよい。画像が、次いで、出力130されてもよい。例えば、画像は、撮像デバイスのディスプレイ(例えば、モバイルデバイスのディスプレイ)に出力される、および/または撮像デバイスによって記憶されてもよい。
【0089】
いくつかの実施形態では、画像強調システム111は、具体的タイプの画像センサ124を用いた動作のために最適化されてもよい。撮像デバイスによって実施されるさらなる画像処理128の前に、画像センサから受信される未加工値に画像強調を実施することによって、画像強調システム111は、デバイスの画像センサ124のために最適化されてもよい。例えば、画像センサ124は、光を捕捉する相補型金属酸化膜半導体(CMOS)シリコンセンサであってもよい。センサ124は、入射光量子を電子に変換する複数のピクセルを有してもよく、これは、ひいては、A/Dコンバータ126の中にフィードされる電気信号を発生させる。別の実施例では、画像センサ124は、電荷結合素子(CCD)センサであってもよい。いくつかの実施形態は、いずれの特定のタイプのセンサにも限定されない。
【0090】
いくつかの実施形態では、画像強調システム111は、特定のタイプまたはモデルの画像センサを使用して捕捉される訓練画像に基づいて、訓練されてもよい。撮像デバイスによって実施される画像処理128は、デバイスの特定の構成および/または設定に基づいて、ユーザの間で異なり得る。例えば、異なるユーザが、選好および用途に基づいて、撮像デバイス設定を異なるように設定させてもよい。画像強調システム111は、A/Dコンバータから受信される未加工値に強調を実施し、撮像デバイスによって実施される画像処理120に起因する変動を排除してもよい。
【0091】
いくつかの実施形態では、画像強調システム111は、A/Dコンバータ126から受信される数値ピクセル値の形式を変換するように構成されてもよい。例えば、値は、整数値であってもよく、画像強調システム111は、ピクセル値を浮動小数点値に変換するように構成されてもよい。いくつかの実施形態では、画像強調システム111は、各ピクセルから黒色レベルを減算するように構成されてもよい。黒色レベルは、いずれの色も示さない、撮像デバイスによって捕捉される画像のピクセルの値であってもよい。故に、画像強調システム111は、受信された画像のピクセルから閾値を減算するように構成されてもよい。いくつかの実施形態では、画像強調システム111は、各ピクセルから一定値を減算し、画像内のセンサ雑音を低減させるように構成されてもよい。例えば、画像強調システム111は、画像の各ピクセルから60、61、62、または63を減算してもよい。
【0092】
いくつかの実施形態では、画像強調システム111は、ピクセル値を正規化するように構成されてもよい。いくつかの実施形態では、画像強調システム111は、ピクセル値を、ピクセル値を正規化するための値で除算するように構成されてもよい。いくつかの実施形態では、画像強調システム111は、各ピクセル値を、可能な限り最大のピクセル値と黒色レベルに対応するピクセル値との間の差(例えば、60、61、62、63)で除算するように構成されてもよい。いくつかの実施形態では、画像強調システム111は、各ピクセル値を、捕捉された画像内の最大ピクセル値および捕捉された画像内の最小ピクセル値で除算するように構成されてもよい。
【0093】
いくつかの実施形態では、画像強調システム111は、デモザイキングを受信された画像に実施するように構成されてもよい。画像強調システム111は、デモザイキングを実施し、A/Dコンバータ126から受信されるピクセル値に基づいて、カラー画像を構築してもよい。システム111は、ピクセル毎に複数のチャネルの値を発生させるように構成されてもよい。いくつかの実施形態では、システム111は、4つの色チャネルの値を発生させるように構成されてもよい。例えば、システム111は、赤色チャネル、2つの緑色チャネル、および青色チャネル(RGGB)に関する値を発生させてもよい。いくつかの実施形態では、システム111は、ピクセル毎に3つの色チャネルの値を発生させるように構成されてもよい。例えば、システム111は、赤色チャネル、緑色チャネル、および青色チャネルに関する値を発生させてもよい。
【0094】
いくつかの実施形態では、画像強調システム111は、画像を複数の部分に分割するように構成されてもよい。画像強調システム111は、各部分を別個に強調し、次いで、各部分の強調バージョンを出力強調画像に組み合わせるように構成されてもよい。画像強調システム111は、受信された入力毎に機械学習システム112への入力を発生させてもよい。例えば、画像は、500×500ピクセルのサイズを有してもよく、システム111は、画像を100×100ピクセル部分に分割してもよい。システム111は、次いで、各100×100部分を機械学習システム112に入力し、対応する出力を取得してもよい。システム111は、次いで、各100×100部分に対応する出力を組み合わせ、最終画像出力を発生させてもよい。いくつかの実施形態では、システム111は、入力画像と同一のサイズである出力画像を発生させるように構成されてもよい。
【0095】
図2Aは、いくつかの実施形態による、機械学習システムを訓練するためのプロセス200を示す。プロセス200は、
図1A-Bを参照して上記に説明される訓練段階110の一部として実施されてもよい。例えば、プロセス200は、パラメータ102Aを伴う機械学習システム102を訓練し、学習されたパラメータ112Aを伴う訓練された機械学習システム112を取得するように実施されてもよい。プロセス200は、本技術の側面が本点において限定されないため、1つ以上のハードウェアプロセッサを含む、任意のコンピューティングデバイスを使用して実施されてもよい。
【0096】
プロセス200は、システム実行プロセス200が訓練画像のセットを取得する、ブロック202から開始する。本システムは、機械学習システムによって実施されることが予期される、画像の強調を表す訓練画像を取得し得る。いくつかの実施形態では、本システムは、入力画像のセット、および出力画像の対応するセットを取得するように構成されてもよい。出力画像は、入力画像が訓練されている機械学習システムによって発生されるために、標的強調出力を提供する。いくつかの実施形態では、入力画像は、弱光条件において捕捉される画像を表す、画像であってもよい。入力画像はまた、本明細書では「暗い画像」とも称され得る。出力画像は、画像内の照明を増加させた、暗い画像の強調バージョンを表す、対応する出力画像であってもよい。出力画像は、本明細書では「明画像」と称され得る。本システムは、本明細書に説明されるように、デジタルカメラ、ビデオ録画デバイス、および/または同等物を含む、1つ以上の撮像デバイスによって捕捉される訓練画像を取得してもよい。例えば、いくつかの実施形態では、画像は、本明細書に説明される技法を使用して処理され得る、ビデオフレームであり得る。本システムは、有線接続を介して、または無線で(例えば、ネットワーク接続を介して)、画像を受信するように構成されてもよい。
【0097】
いくつかの実施形態では、本システムは、暗い画像を取得するように構成されてもよい。暗い画像は、弱光条件を模倣するための機構を使用して、1つ以上の場面を捕捉してもよい。いくつかの実施形態では、本システムは、画像を捕捉するために使用される撮像デバイスの露出時間を短縮することによって、暗い画像を取得し得る。対応する明画像が、次いで、撮像デバイスによって使用される露出時間を増加させることによって捕捉されてもよい。いくつかの実施形態では、本システムは、照明をオブジェクトに提供する光源の強度を低減させ、次いで、画像を捕捉することによって、暗い画像を取得し得る。対応する明画像が、次いで、光源の強度を増加させることによって捕捉されてもよい。本発明者らは、減光フィルタの使用が、他の技法よりも正確に弱光条件を表し得ることを認識している。例えば、減光フィルタは、カメラ設定の残りが、画像が通常の光を使用して捕捉された場合と同一のままであることを可能にすることができる。したがって、減光フィルタは、訓練データ内のそれらのカメラ設定を中和することができる。露出時間を短縮すること等によって、他の技法を使用して暗い画像を捕捉するときに、暗い画像は、画像センサの雑音性質を正確に捕捉しない場合がある。露出時間を短縮することは、例えば、センサ内の電子雑音(例えば、熱雑音、暗電流等)の時間を短縮し得る。そのような雑音低減は、したがって、捕捉された画像に、データセット内の電子雑音を現実的に反映させない場合があり、これは、(例えば、暗い画像に固有である雑音を解消および/または抑制する方法を学習するための訓練プロセスの重要な一部であり得るため)画像の処理の重要な一部であり得る。別の実施例として、光源強度を低減させるときに、画像は、依然として、(例えば、いくつかの部分が他の部分よりも多く照明され、これが、訓練ステップに影響を及ぼし得るように)強度の一様な分布を有していない場合がある。減光フィルタを使用して、訓練画像を取得するための例示的プロセス210が、
図2Bを参照して下記に説明される。
【0098】
いくつかの実施形態は、アプローチの組み合わせを使用して、暗いおよび明画像を取得し得る。例えば、いくつかの減光フィルタは、フィルタが調節される度に、光の量を半減させる方法で減光フィルタ係数を倍にし得るように、離散化されてもよい。したがって、カメラシステムの他の側面が、システムの段階的調節を精緻化するように調節されてもよい。例えば、露出時間は、より精緻化された様式(例えば、フィルタを調節することによって行われるであろうように、光を半減させない)で光を低減させる、調節を可能にするように調節されることができる。
【0099】
いくつかの実施形態では、本システムは、具体的デバイスを使用して捕捉される訓練画像を取得するように構成されてもよい。いくつかの実施形態では、本システムは、具体的タイプの画像センサを使用して捕捉される訓練画像を取得するように構成されてもよい。例えば、本システムは、特定のタイプの画像センサ(例えば、具体的モデル)から捕捉される訓練画像を受信してもよい。取得された画像は、次いで、特定のタイプの画像センサを採用して、撮像デバイスによって捕捉されるであろう、画像を表し得る。故に、機械学習システムは、特定のタイプの画像センサに関する性能のために最適化されてもよい。
【0100】
いくつかの実施形態では、訓練画像のセットは、訓練された機械学習システムによる強調のために受信されるであろう、画像を一般化するように選択されてもよい。訓練セットは、異なる撮像デバイス設定に関して変動する、画像のセットを含んでもよい。いくつかの実施形態では、本システムは、画像デバイス捕捉設定の異なる値に関して訓練画像の別個のセットを取得するように構成されてもよい。いくつかの実施形態では、本システムは、撮像デバイスの異なるISO設定に関して訓練画像を取得し、撮像デバイスの異なる光感度レベルを表すように構成されてもよい。例えば、本システムは、50~2,000の異なるISO設定に関して訓練画像を取得してもよい。高いISOは、可能な限り多くの信号を提供し得るため、いくつかの用途では望ましくあり得るが、より高いISOは、付加的雑音を有し得る。したがって、異なるISO設定は、異なる雑音特性を有し得る。本明細書にさらに議論されるように、1つ以上のニューラルネットワークが、ISOを取り扱うように訓練されることができる。例えば、異なるニューラルネットワークが、ISO設定毎に訓練されることができる、またはISO設定のセットを網羅する1つのニューラルネットワークが、訓練されることができる、もしくはそれらのある組み合わせである。
【0101】
訓練画像のセットを取得した後、プロセス200は、本システムが、取得された訓練画像を使用して機械学習システムを訓練する、行為204に進む。いくつかの実施形態では、本システムは、入力が、取得された暗い画像であり、対応する出力が、暗い画像に対応する、取得された明画像である、自動教師あり学習を実施するように構成されてもよい。いくつかの実施形態では、本システムは、教師あり学習を実施し、機械学習システムの1つ以上のパラメータの値を判定するように構成されてもよい。
【0102】
いくつかの実施形態では、機械学習システムは、画像強調を実施するように訓練されることになる、1つ以上のニューラルネットワークを含んでもよい。いくつかの実施形態では、機械学習システムは、1つ以上の畳み込みニューラルネットワーク(CNN)を含んでもよい。畳み込みニューラルネットワークが、所与の入力画像のために一連の畳み込み動作を実施する。畳み込み動作は、各層において1つ以上のフィルタを使用して、実施される。フィルタで使用されるべき値は、訓練プロセスの間に判定されることになる。いくつかの実施形態では、CNNはさらに、前の層からの入力を個別の加重で乗算し、次いで、積をともに合計し、値を発生させる、ノードを伴う1つ以上の層を含んでもよい。値は、次いで、ノード出力を発生させるように、アクティブ化機能の中にフィードされてもよい。フィルタ内の値および/または畳み込みニューラルネットワークの係数の値は、訓練プロセスの間に学習されてもよい。
【0103】
いくつかの実施形態では、本システムは、損失関数を最適化することによって、機械学習システムのパラメータを訓練するように構成されてもよい。損失関数は、機械学習システムによって発生される出力と標的出力との間の差(例えば、誤差)を規定し得る。例えば、個別の暗い画像に関して、損失関数は、暗い画像の入力に応答して機械学習システムによって発生される強調画像と、訓練セットの中の個別の暗い画像に対応する明画像との間の差を規定し得る。いくつかの実施形態では、本システムは、訓練を実施し、訓練画像の取得されたセットに関する損失関数を最小限にするように構成されてもよい。入力された暗い画像に関して機械学習システムの出力から計算される損失関数の値に基づいて、本システムは、機械学習システムの1つ以上のパラメータを調節してもよい。いくつかの実施形態では、本システムは、最適化関数を使用し、損失関数の値に基づいて機械学習システムのパラメータに行うべき調節を計算するように構成されてもよい。いくつかの実施形態では、本システムは、正確度の閾値レベルが損失関数によって示されるように試験画像に関して到達されるまで、調節を機械学習システムのパラメータに実施するように構成されてもよい。例えば、本システムは、損失関数の最小値が訓練画像に関して取得されるまで、訓練の間にパラメータを調節するように構成されてもよい。いくつかの実施形態では、本システムは、勾配降下アルゴリズムによる調節を判定するように構成されてもよい。いくつかの実施形態では、本システムは、バッチ勾配降下、確率的勾配降下、および/またはミニバッチ勾配降下を実施するように構成されてもよい。いくつかの実施形態では、本システムは、勾配降下を実施する際に適応学習率を使用するように構成されてもよい。例えば、本システムは、RMSpropアルゴリズムを使用し、勾配降下において適応学習率を実装するように構成されてもよい。
【0104】
いくつかの実施形態では、本システムは、異なるおよび/または複数の損失関数を使用するように構成されてもよい。いくつかの実施形態では、本システムは、複数の損失関数の組み合わせを使用するように構成されてもよい。例えば、本システムは、平均絶対誤差(MAE)、構造類似性(SSIM)指数、色差損失関数、および/または他の損失関数(例えば、
図4と併せて議論されるように、帯域通過画像に適用される損失関数)のうちの1つ以上のものを使用するように構成されてもよい。いくつかの実施形態では、色差は、ピクセルの間のユークリッド距離を使用して計算されてもよい。いくつかの実施形態では、色差は、ピクセルの間のデルタ-E94距離メトリックを使用して計算されてもよい。いくつかの実施形態は、特定の色差メトリックに限定されない。いくつかの実施形態では、本システムは、損失関数を1つ以上の個々のチャネル(例えば、赤色チャネル、緑色チャネル、青色チャネル)に適用するように構成されてもよい。
【0105】
いくつかの実施形態では、本システムは、下記の
図4を参照して説明されるように、特定の範囲の周波数に関して機械学習システムの性能を最適化するために、損失関数を機械学習システムのフィルタ処理された出力に適用するように構成されてもよい。
【0106】
いくつかの実施形態では、本システムは、複数の損失関数の線形結合を使用するように構成されてもよい。いくつかの実施形態では、本システムは、画像の1つ以上のチャネルのMAE、フィルタ処理された出力のMAE、およびSSIMの線形結合を使用するように構成されてもよい。例えば、複数の損失関数の組み合わせは、下記の方程式1に示される通りであってもよい。
方程式1:誤差
=1.6*赤色チャネルのMAE+1.0*緑色チャネルのMAE
+1.6*青色チャネルのMAE+1.4SSIM+1.5*周波数フィルタ処理されたMAE
【0107】
いくつかの実施形態では、本システムは、機械学習システムの1つ以上のハイパーパラメータを設定するように構成されてもよい。いくつかの実施形態では、本システムは、自動訓練プロセスを開始することに先立って、ハイパーパラメータの値を設定するように構成されてもよい。ハイパーパラメータは、ニューラルネットワーク内の層の数(本明細書では「ネットワーク深度」とも称される)、CNNによって使用されるべきフィルタのカーネルサイズ、CNNで使用するべきフィルタの数の計数、および/または畳み込みプロセスで進められるべきステップのサイズを規定する歩長を含んでもよい。いくつかの実施形態では、本システムは、ニューラルネットワークの各層の出力が、後続の層に入力されることに先立って正規化される、バッチ正規化を採用するように、機械学習システムを構成してもよい。例えば、第1の層からの出力は、第1の層において発生される値の平均を減算し、各値を値の標準偏差で除算することによって、正規化されてもよい。いくつかの実施形態では、バッチ正規化の使用は、訓練可能なパラメータをニューラルネットワークの層に追加してもよい。例えば、本システムは、各ステップにおいて正規化のために使用される、ガンマおよびベータパラメータを追加してもよい。機械学習システムは、層の各出力からベータ値を減算し、次いで、各出力をガンマ値で除算してもよい。いくつかの実施形態では、ニューラルネットワークスペースは、量子化を使用して圧縮されることができる。
【0108】
いくつかの実施形態では、機械学習システムのハイパーパラメータは、手動で構成されてもよい。いくつかの実施形態では、機械学習システムのハイパーパラメータは、自動的に判定されてもよい。例えば、大規模算出技法が、異なるパラメータを使用してモデルを訓練するために使用されることができ、結果は、共有記憶装置の中に記憶される。共有記憶装置は、最良モデルを判定し、ひいては、自動様式で最良パラメータ(またはパラメータの値の範囲)を判定するように、クエリを行われることができる。いくつかの実施形態では、本システムは、1つ以上のハイパーパラメータ値と関連付けられる性能を示す、1つ以上の値を記憶するように構成されてもよい。本システムは、ハイパーパラメータ値への調節を自動的に判定し、システムの性能を改良するように構成されてもよい。いくつかの実施形態では、本システムは、データベース内に個別のハイパーパラメータ値を伴って構成されるときに、機械学習システムの性能を示す値を記憶するように構成されてもよい。本システムは、具体的ハイパーパラメータ値を伴って構成されるときに、機械学習システムの性能を示す値に関して、データベースにクエリを行うように構成されてもよい。
【0109】
いくつかの実施形態では、機械学習システムは、CNNを含んでもよい。いくつかの実施形態では、機械学習システムは、深度毎の分離可能な畳み込みおよび完全畳み込みの混合を使用し、機械学習システムが訓練されるために要求される時間を短縮し、続いて、画像の強調を実施するように構成されてもよい。いくつかの実施形態では、深度毎の分離可能な畳み込みおよび完全畳み込みの混合が、機械学習システムのために要求される空間を縮小するために使用されてもよい。例えば、機械学習システムのパラメータの数を削減するためである。
【0110】
ブロック204において機械学習システムを訓練した後、プロセス200は、機械学習システムが画像強調のために使用される、ブロック206に進む。例えば、訓練された機械学習システムは、1つ以上の受信された画像の強調を実施するために、画像強調システム111によって使用されてもよい。いくつかの実施形態では、システム111は、画像を取得し、機械学習システムの学習および構成されたパラメータに従って、対応する明画像を発生させるように構成されてもよい。
【0111】
図2Bは、いくつかの実施形態による、訓練画像のセットを取得するための例示的プロセス210を示す。プロセス210は、
図2を参照して上記に説明されるプロセス200の一部として実施されてもよい。例えば、プロセス210は、画像の訓練セットのための暗い画像および対応する明画像のセットを取得するように実施されてもよい。プロセス210は、本技術の側面が本点において限定されないため、1つ以上のハードウェアプロセッサを含む、任意のコンピューティングデバイスを使用して実施されてもよい。
【0112】
プロセス210は、システム実行プロセス210が、減光フィルタを使用して捕捉された画像の訓練セットに関して1つ以上の入力画像を取得する、行為212から開始する。入力画像は、弱光条件において捕捉される場面の画像を表すことになる、暗い画像であってもよい。いくつかの実施形態では、減光フィルタ(ND)フィルタを伴う撮像デバイス(例えば、デジタルカメラ)が、画像を捕捉するために使用されてもよい。いくつかの実施形態では、本システムは、撮像デバイスによって捕捉される入力画像を受信してもよい。例えば、本システムは、ネットワーク(例えば、インターネット)を経由して無線伝送を介して、入力画像を受信してもよい。別の実施例では、本システムは、撮像デバイスとの有線接続(例えば、USB)を介して、入力画像を受信してもよい。さらに別の実施例では、入力画像は、撮像デバイスによって捕捉される入力画像が記憶される、別のシステム(例えば、クラウド記憶装置)から受信されてもよい。
【0113】
NDフィルタは、NDフィルタが撮像デバイスの画像センサに到達する光の強度を低減させるにつれて、画像が捕捉される、弱光条件をシミュレートし得る。NDフィルタの動作は、下記の方程式2によって説明され得る。
方程式2:I=I0
*10-d
【0114】
方程式2では、I0は、NDフィルタ上に入射する光の強度であり、dは、NDフィルタの密度であり、Iは、NDフィルタを通して通過した後の光の強度である。いくつかの実施形態では、NDフィルタは、画像センサに到達することに先立って、それを通して通過する光の強度を変化させる材料から成ってもよい。例えば、NDフィルタは、光が、撮像デバイスに到達することに先立って、ガラスまたは樹脂の部品を通して通過するように、撮像デバイスに入射する光の経路内で画像センサの前に設置されるガラスまたは樹脂の暗色化された部品であってもよい。いくつかの実施形態では、NDフィルタは、フィルタの密度の変動を可能にする、可変NDフィルタであってもよい。これは、NDフィルタが調節されることを可能にし、光強度が低減されることになる量を設定する。いくつかの実施形態では、NDフィルタは、電子制御型NDフィルタであってもよい。電子制御型NDフィルタは、制御された電気信号に基づいて、撮像デバイスの画像センサに到達することに先立って、NDフィルタが光の強度を低減させる可変量を提供し得る。例えば、電子制御型NDフィルタは、光強度が電圧の印加に基づいて低減される量を変化させる、液晶要素から成ってもよい。電圧は、撮像デバイスによって制御されてもよい。
【0115】
いくつかの実施形態では、入力画像が、種々のレベルの弱光条件をシミュレートするように、複数の異なるNDフィルタ密度設定を使用して、ブロック212において取得されてもよい。例えば、場面の複数の画像が、NDフィルタに関して異なる密度設定を使用して、捕捉されてもよい。いくつかの実施形態では、画像が、単一のNDフィルタ密度設定を使用して、取得されてもよい。
【0116】
いくつかの実施形態では、入力画像は、撮像デバイスの異なる画像捕捉設定を横断して、ブロック212においてNDフィルタを使用して取得されてもよい。例えば、入力画像は、撮像デバイスの露出時間、ISO設定、シャッタ速度、および/または開口の異なる設定のためにNDフィルタを使用して、捕捉されてもよい。故に、画像の訓練セットが、画像が捕捉され得る、広範囲の撮像デバイス構成を反映し得る。
【0117】
ブロック212において入力画像を捕捉した後、プロセス210は、本システムが、ブロック212において取得される入力画像に対応する1つ以上の出力画像を取得する、ブロック214に進む。入力画像を捕捉するために使用された撮像デバイスが、NDフィルタを用いることなく、出力画像を捕捉するために使用されてもよい。したがって、出力画像は、入力画像の強調バージョンを表し得る。いくつかの実施形態では、出力画像は、撮像デバイスの異なる画像捕捉設定を横断して捕捉されてもよい。例えば、出力画像が、入力画像を捕捉するために使用された撮像デバイス構成毎に捕捉されてもよい。故に、訓練セットの中の出力画像は、画像が捕捉され得る、撮像デバイス構成の範囲を反映し得る。
【0118】
次に、プロセス210は、本システムが、画像の訓練セットの中に含まれることになる、全ての場面に関する入力画像および対応する出力画像が捕捉されたかどうかを判定する、ブロック216に進む。いくつかの実施形態では、本システムは、閾値数の場面が捕捉されたかどうかを判定するように構成されてもよい。例えば、本システムは、機械学習システムを訓練するための適切な多様性を提供する、閾値数の場面が捕捉されたかどうかを判定してもよい。いくつかの実施形態では、本システムは、場面の十分な多様性が取得されたかどうかを判定するように構成されてもよい。いくつかの実施形態では、本システムは、画像が訓練セットの中の画像内のオブジェクトの数の十分な多様性のために取得されたかどうかを判定するように構成されてもよい。いくつかの実施形態では、本システムは、画像が訓練セットの画像内の色の十分な多様性のために取得されたかどうかを判定するように構成されてもよい。
【0119】
ブロック216において、本システムが、画像の訓練セットの全ての場面に関する画像が取得されたことを判定する場合、プロセス210は、本システムが、機械学習システムを訓練するために取得された入力および出力画像を使用する、ブロック218に進む。入力および出力画像は、
図2Aを参照して上記に説明されるように、機械学習システムの1つ以上の機械学習モデルを訓練するために使用されてもよい。例えば、取得された入力および出力画像は、
図1A-Bを参照して上記に説明される画像強調システム111によって画像を強調するために使用される、1つ以上のニューラルネットワークを訓練するために、システムによって使用されてもよい。
【0120】
ブロック216において、本システムが、画像の訓練セットの全ての場面に関する画像が取得されていないことを判定する場合、プロセス210は、本システムが、別の場面に関する1つ以上の画像を取得する、ブロック212に進む。本システムは、次いで、再度、ブロック212-214におけるステップを実施し、画像の訓練セットに追加されるべき場面の入力画像および対応する出力画像の別のセットを取得してもよい。
【0121】
図2Cは、いくつかの実施形態による、訓練画像のセットを取得するための別の例示的プロセス230を示す。プロセス210および230は、別個の図と併せて説明されるが、いずれかおよび/または両方のプロセスの技法が、訓練画像を取得するために使用され得ることを理解されたい。例えば、いくつかの実施形態は、プロセス210と併せて説明される減光技法、プロセス230と併せて説明される平均化技法、および/または他の技法を使用し、本明細書にさらに説明されるような機械学習システムを訓練するために使用され得る、訓練画像を取得してもよい。プロセス210のように、プロセス230は、
図2を参照して上記に説明されるプロセス200の一部として実施されてもよい。例えば、プロセス230は、画像の訓練セットに関して暗い画像および対応する明画像のセットを取得するように実施されてもよい。プロセス230は、本技術の側面が本点において限定されないため、1つ以上のハードウェアプロセッサを含む、任意のコンピューティングデバイスを使用して実施されてもよい。
【0122】
プロセス230は、システム実行プロセス230が、画像の訓練セットに関して1つ以上の入力画像を取得する、行為232から開始する。いくつかの実施形態では、入力画像は、通常の露出時間(例えば、場面内の雑音および/または光を増加ならびに/もしくは減少させるように設計される、修正された露出時間ではない)を使用して撮影される、雑音の多い画像および/または暗い画像であり得る。いくつかの実施形態では、入力画像は、比較的に高いISO値を使用して捕捉されることができる。高いISO値は、例えば、デジタルサンプリングプロセスにおいて低強度ピクセル値の量子化正確度を改良する、および/または最大限にすることに役立ち得る。いくつかの実施形態では、入力画像は、例えば、約1,500~500,000に及ぶISOおよび/または高いISO値と見なされる他のISO値(例えば、画像をより明るく見せるために十分に高いISO値であり、また、画像内の雑音を増加させ得る)を使用して、捕捉されることができる。いくつかの実施形態では、ISO値は、約1,500~500,000に及ぶ閾値および/または同等物等のISO閾値を上回り得る。
【0123】
プロセス230は、行為232から行為234に進み、本システムは、入力画像毎に、入力画像によって捕捉される同一の場面の対応する出力画像を取得する。いくつかの実施形態では、本システムは、複数の別個に捕捉された画像(例えば、ステップ232において取得される入力画像および/または別個の画像を含む)を使用して、出力画像を取得し、複数の画像を使用して、出力画像を判定することができる。いくつかの実施形態では、出力画像を判定するために使用される画像のセットは、行為232において入力画像を捕捉するために使用される、同一および/または類似設定(例えば、露出時間、ISO等)を用いて捕捉されることができる。いくつかの実施形態では、行為232および234は、別個の行為として示されるが、行為は、画像の単一のセットを捕捉することによって実施されることができる。例えば、本システムは、いくつかの画像を捕捉するように構成されることができ、本システムは、入力フレームとなるべき捕捉された画像のうちのいずれか1つを選定することができ、出力画像は、セットの中の残りの画像および/またはセットの中の全ての画像(入力画像として選択される画像を含む)に基づいて、発生されることができる。
【0124】
いくつかの実施形態では、本システムは、対応する出力画像を判定するために使用するべき所定数の画像を使用および/または捕捉するように構成されることができる。例えば、本システムは、50枚の画像、100枚の画像、1,000枚の画像、および/または同等物を捕捉するように構成されることができる。例えば、捕捉される画像の数は、より多くの画像内の点平均化が信号対雑音比にわずかな改良のみを提供する、数であり得る。いくつかの実施形態では、本システムは、異なる数の画像を使用するように構成されてもよい。
【0125】
いくつかの実施形態では、画像のセットの中の各画像が、(例えば、出力画像を判定するために使用される画像のセットを捕捉しながら、撮像デバイスの温度を軽減および/または制御することに役立つために)撮像デバイスが冷却することを可能にするように、連続捕捉の合間の休止周期を使用して、捕捉されることができる。例えば、短い露出(例えば、入力画像を捕捉するために使用される同一のもの)が、画像のセットの中の画像のそれぞれを捕捉するために使用されることができ、冷却間隔(例えば、0.25秒、0.5秒、1秒、2秒等の休止周期)が、行為232において判定される入力フレームを捕捉するときのものと一致する撮像デバイスの雑音性質を保つことに役立つために使用されることができる。したがって、行為232において入力画像を捕捉するために使用される同一の設定の下で捕捉される画像のセットを使用することによって、同一および/または類似雑音性質を呈する出力画像が、発生されることができる。
【0126】
いくつかの実施形態では、本システムは、複数の画像を横断してピクセル毎に強度を平均化することによって、出力画像を判定することができる。例えば、いくつかの実施形態では、本システムは、各ピクセル場所において画像のセットを横断して算術平均を判定することができる。いくつかの実施形態では、線形結合を判定すること、および/または画像のセットを処理し、入力画像の雑音除去されたバージョンに類似する出力画像を発生させる任意の他の機能等の他の技法も、使用されることができる。いくつかの実施形態では、出力画像は、雑音除去後処理技法を使用して処理される。
【0127】
次に、プロセス230は、本システムが、画像の訓練セットの中に含まれることになる、全ての場面に関する入力画像および対応する出力画像が捕捉されたかどうかを判定する、ブロック236に進む。いくつかの実施形態では、プロセス210と併せて説明されるように、本システムは、閾値数の場面が捕捉されたかどうかを判定するように構成されてもよい。
【0128】
ブロック236において、本システムが、画像の訓練セットの全ての場面に関する画像が取得されたことを判定する場合、プロセス230は、本システムが、機械学習システムを訓練するために取得された入力および出力画像を使用する、ブロック238に進む。入力および出力画像は、
図2Aを参照して上記に説明されるように、機械学習システムの1つ以上の機械学習モデルを訓練するために使用されてもよい。例えば、取得された入力および出力画像は、
図1A-Bを参照して上記に説明される画像強調システム111によって画像を強調するために使用される、1つ以上のニューラルネットワークを訓練するために、システムによって使用されてもよい。画像のセットに基づいて出力画像を判定することによって(例えば、本明細書に説明されるように、捕捉の合間の冷却間隔を伴ってとられる短い露出を平均化することによって)、本技法は、機械学習システムが、(例えば、入力画像と異なる雑音特性を呈する出力画像を使用することと比較して)より単純な変換関数を学習することを可能にすることができる、より圧縮性のニューラルネットワークモデルを可能にすることができる、および/または同等物である。
【0129】
ブロック236において、本システムが、画像の訓練セットの全ての場面に関する画像が取得されていないことを判定する場合、プロセス230は、本システムが、別の場面に関する1つ以上の画像を取得する、ブロック232に進む。本システムは、次いで、再度、ブロック232-234におけるステップを実施し、画像の訓練セットに追加されるべき場面の入力画像および対応する出力画像の別のセットを取得してもよい。
【0130】
図3Aは、いくつかの実施形態による、入力および出力画像の一部を使用して、機械学習システムを訓練するためのプロセス300を示す。プロセス300は、
図2を参照して上記に説明されるプロセス200の一部として実施されてもよい。例えば、プロセス300は、弱光条件において捕捉される画像を強調するために画像強調システム111によって使用されることになる、機械学習システムを訓練することの一部として実施されてもよい。プロセス300は、本技術の側面が本点において限定されないため、1つ以上のハードウェアプロセッサを含む、任意のコンピューティングデバイスを使用して実施されてもよい。
【0131】
本発明者らは、機械学習システムへの入力のサイズが縮小される場合、機械学習システム(例えば、本システムが「暗い」画像を「明」画像に変換する処理速度)がより高速にされ得ることを認識している。より小さい入力サイズを用いると、機械学習システムは、より少ないパラメータ、および実施するべきより少ない動作を有し得、したがって、より迅速に実行されることができる。より小さい入力サイズはまた、機械学習システムの1つ以上のパラメータを訓練するために要求される訓練時間を短縮し得る。より小さい入力サイズを用いると、機械学習システムは、値が学習される必要がある、より少ないパラメータを有し得る。これは、ひいては、訓練の間にシステムによって実施されるべき算出の数を削減する。故に、機械学習システムへのより小さい入力は、システムが機械学習システムをより効率的に訓練することを可能にする。
【0132】
プロセス300は、システム実施プロセス300が、訓練セットの中の入力画像のそれぞれを複数の画像部分に分割する、ブロック302から開始する。入力画像は、例えば、未加工高解像度画像であってもよい。いくつかの実施形態では、本システムは、個別の入力画像を等しく定寸された部分のグリッドに分割するように構成されてもよい。限定的であることを意図していない、単純な例証的実施例として、サイズ500×500の入力画像が、100×100画像部分のグリッドに分割されてもよい。いくつかの実施形態では、本システムは、入力画像が分割されることになる画像部分のサイズを動的に判定するように構成されてもよい。例えば、本システムは、画像を分析し、画像内のオブジェクトを識別するように構成されてもよい。本システムは、画像部分が完全なオブジェクトを含むことを確実にする、画像部分のサイズを判定してもよい。いくつかの実施形態では、本システムは、画像部分のサイズを判定し、訓練時間および/または画像強調のために要求される時間を最小限にするように構成されてもよい。例えば、本システムは、画像部分のサイズの入力を処理することになる、機械学習システムを訓練するための予期される時間に基づいて、画像部分のサイズを判定してもよい。別の実施例では、本システムは、機械学習システムが画像強調を実施するために使用されるときのサイズを有する入力を処理するための予期される時間に基づいて、画像部分のサイズを判定してもよい。いくつかの実施形態では、本システムは、全ての入力画像を同一のサイズの部分に分割するように構成されてもよい。いくつかの実施形態では、本システムは、入力画像を異なるサイズの部分に分割するように構成されてもよい。
【0133】
次に、プロセス300は、本システムが、対応する出力画像を画像部分に分割する、ブロック304に進む。いくつかの実施形態では、本システムは、対応する入力画像が分割されたものと同一の様式で、出力画像を部分に分割するように構成されてもよい。例えば、500×500入力画像が、100×100画像部分に分割された場合、訓練セットの中の対応する出力画像もまた、100×100画像部分に分割されてもよい。
【0134】
次に、プロセス300は、本システムが、機械学習システムを訓練するために入力画像部分および出力画像部分を使用する、ブロック306に進む。いくつかの実施形態では、本システムは、機械学習システムを訓練するための教師あり学習を実施するために、個々の入力および対応する出力として入力画像部分および出力画像部分を使用するように構成されてもよい。いくつかの実施形態では、訓練される機械学習システムに従って、入力画像部分は、暗い画像のセットを形成してもよく、出力画像部分は、対応する明画像のセットを形成してもよい。
【0135】
図3Bは、いくつかの実施形態による、画像を部分に分割することによって画像を強調するためのプロセス310を示す。プロセス310は、画像を強調することの一部として実施されてもよい。例えば、プロセス310は、撮像デバイスから取得される画像を強調することの一部として、画像強調システム111によって実施されてもよい。プロセス310は、本技術の側面が本点において限定されないため、1つ以上のハードウェアプロセッサを含む、任意のコンピューティングデバイスを使用して実施されてもよい。
【0136】
プロセス310は、システム実行プロセス310が、入力画像を受信する、ブロック312から開始する。いくつかの実施形態では、本システムは、撮像デバイス(例えば、デジタルカメラ)によって捕捉される画像を取得してもよい。例えば、本システムは、撮像デバイスから画像を受信してもよい。別の実施例では、本システムは、撮像デバイス上のアプリケーションの一部として実行され、撮像デバイスの記憶装置から撮像デバイスによって捕捉された画像にアクセスしてもよい。さらに別の実施例では、本システムは、撮像デバイスと別個の別のシステム(例えば、クラウド記憶装置)から捕捉された画像を取得してもよい。
【0137】
次に、プロセス310は、本システムが、画像を複数の画像部分に分割する、ブロック314に進む。いくつかの実施形態では、本システムは、機械学習システムを訓練するときに画像の訓練セットの中の入力画像が分割された、同一に定寸された入力部分に画像を分割するように構成されてもよい。いくつかの実施形態では、本システムは、画像を複数の等しく定寸された部分に分割するように構成されてもよい。いくつかの実施形態では、本システムは、画像を分析し、部分のサイズを判定し、次いで、判定されたサイズを有する部分に画像を分割するように構成されてもよい。例えば、本システムは、画像内の1つ以上のオブジェクトを識別し、オブジェクトの識別に基づいて、画像部分のサイズを判定するように構成されてもよい。いくつかの実施形態では、本システムは、画像部分のサイズを判定し、部分内のコントラスト変化の影響を軽減するように構成されてもよい。例えば、100×100サイズの画像部分が、間に大きいコントラストが存在するオブジェクトを有する場合、画像部分は、画像部分内のコントラスト差の影響を低減させるように拡張されてもよい。
【0138】
次に、プロセス310は、本システムが、ブロック314において取得される複数の画像部分のうちの1つを選択する、ブロック316に進む。いくつかの実施形態では、本システムは、画像部分のうちの1つを無作為に選択するように構成されてもよい。いくつかの実施形態では、本システムは、オリジナル画像内の画像部分の位置に基づいて、シーケンス内の画像部分のうちの1つを選択するように構成されてもよい。例えば、本システムは、画像内の具体的な点(例えば、具体的ピクセル位置)から開始する画像部分を選択してもよい。
【0139】
次に、プロセス310は、本システムが、選択された画像部分を機械学習システムへの入力として使用する、ブロック318に進む。いくつかの実施形態では、機械学習システムは、弱光条件において捕捉される画像に関して画像強調を実施するための訓練された機械学習システムであってもよい。例えば、機械学習システムは、
図1A-Bを参照して上記に説明され、
図2を参照して説明されるプロセス200に従って訓練される、訓練された機械学習システム112であってもよい。機械学習システムは、選択された画像部分が入力として使用され得る、1つ以上のモデル(例えば、ニューラルネットワークモデル)を含んでもよい。本システムは、選択された画像部分を機械学習モデルに入力してもよい。
【0140】
次に、プロセス310は、本システムが、対応する出力画像部分を取得する、ブロック320に進む。いくつかの実施形態では、本システムは、機械学習システムの出力を取得してもよい。例えば、本システムは、画像部分が入力された、訓練されたニューラルネットワークモデルの出力を取得してもよい。機械学習システムの出力は、入力画像部分の強調バージョンであってもよい。例えば、入力画像部分は、弱光条件において撮影されている場合がある。結果として、画像部分内の1つ以上のオブジェクトは、可視ではない場合がある、ぼやけている場合がある、または画像部分は、不良なコントラストを有し得る。対応する出力画像は、オブジェクトが可視で明確であり、画像部分が改良されたコントラストを有するように、増加した照明を有し得る。
【0141】
次に、プロセス310は、本システムが、最初に受信された画像が分割された画像部分の全てが処理されたかどうかを判定する、ブロック322に進む。例えば、オリジナル画像が、500×500のサイズを有し、100×100画像部分に分割された場合、本システムは、100×100画像部分のそれぞれが処理されたかどうかを判定してもよい。本システムは、100×100画像部分のそれぞれが機械学習システムに入力されたかどうか、および対応する出力部分が入力部分毎に取得されたかどうかを判定してもよい。
【0142】
ブロック322において、本システムが、処理されていない受信された画像の部分が存在することを判定する場合、プロセス310は、本システムが、別の画像部分を選択し、ブロック318-320を参照して上記に説明されるように画像部分を処理する、ブロック316に進む。ブロック322において、本システムが、全ての画像部分が処理されたことを判定する場合、プロセス310は、本システムが、取得された出力画像部分を組み合わせ、出力画像を発生させる、ブロック324に進む。いくつかの実施形態では、本システムは、機械学習システムの出力から発生される出力画像部分を組み合わせ、出力画像を取得するように構成されてもよい。例えば、オリジナル画像が、100×100部分に分割された500×500画像であった場合、本システムは、100×100画像の機械学習システムからの出力を組み合わせてもよい。本システムは、最初に取得された画像内の対応する入力画像部分の位置に100×100出力画像部分のそれぞれを位置付け、出力画像を取得するように構成されてもよい。出力画像は、ブロック312において取得される画像の強調バージョンであってもよい。例えば、オリジナル画像は、弱光条件において撮像デバイスによって捕捉されている場合がある。取得された出力画像は、オリジナル画像内で捕捉される場面の表示を改良する、捕捉された画像の強調バージョン(例えば、改良されたコントラストおよび/または低減されるぼやけ)であってもよい。
【0143】
図2Aを参照して上記に説明されるように、いくつかの実施形態では、機械学習システムは、機械学習システムに入力される画像部分に1つ以上の畳み込み動作を実施するように構成されてもよい。畳み込み動作が、フィルタカーネルと入力画像部分のピクセル値との間で実施されてもよい。畳み込み動作は、畳み込みが実施されている画像部分内のピクセル位置を囲繞する、ピクセル値の線形結合をとることによって、対応する畳み込み出力の値を判定することを伴い得る。例えば、フィルタカーネルが、3×3行列である場合、畳み込み動作は、個別のピクセル位置の周囲の3×3行列内のピクセルのピクセル値をカーネル内の加重で乗算し、それらを合計して、畳み込み動作の出力における個別のピクセル位置に関する値を取得することを伴い得る。畳み込み動作を実施する際に生じる1つの問題は、画像部分の縁におけるピクセル位置が、位置の全ての側面上で個別のピクセル位置を囲繞するピクセルを有していない場合があることである。例えば、3×3カーネル行列を用いた畳み込み動作に関して、画像部分の左縁上のピクセル位置は、カーネルが畳み込まれ得る、その左側にいずれのピクセルも有していないであろう。これに対処するために、従来のシステムは、0値ピクセルで画像部分をパッドしてもよい。しかしながら、これは、0値ピクセルが撮像デバイスによって捕捉される画像からの情報を表さないため、画像部分の縁上に歪みを引き起こし得る。
【0144】
図3Cは、いくつかの実施形態による、機械学習システムによって実施されるフィルタリング動作の間の縁歪みの上記に説明される問題を軽減するためのプロセス330を示す。プロセス330は、機械学習システムの訓練および/または画像強調の間に実施されてもよい。例えば、プロセス330は、弱光条件において捕捉される画像を強調するために画像強調システム111によって使用されることになる、機械学習システムを訓練することの一部として実施され、続いて、画像強調の間に強調システム111によって実施されてもよい。プロセス330は、本技術の側面が本点において限定されないため、1つ以上のハードウェアプロセッサを含む、任意のコンピューティングデバイスを使用して実施されてもよい。
【0145】
プロセス330は、システム実施プロセス330が、画像部分を取得する、ブロック332から開始する。画像部分は、
図3A-Bを参照してプロセス300および310を用いて上記に説明されるように取得されてもよい。
【0146】
次に、プロセス330は、本システムが、画像部分の切り取られた部分を判定する、ブロック334に進む。いくつかの実施形態では、本システムは、切り取られた部分の縁の周囲にいくつかのピクセルを有する、画像部分の切り取られた部分を判定してもよい。例えば、画像部分が、100×100画像である場合、本システムは、100×100画像の中心における98×98画像である画像部分の切り取られた部分を判定してもよい。したがって、画像部分の切り取られた部分は、画像部分の縁を囲繞するピクセルを有する。これは、切り取られた部分の縁におけるピクセルが畳み込み動作のための囲繞ピクセルを有することを確実にし得る。
【0147】
次に、プロセス330は、本システムが、画像部分の切り取られた部分を機械学習システムへの入力として使用する、ブロック336に進む。いくつかの実施形態では、本システムは、入力としてオリジナル画像部分全体をパスするが、フィルタ動作(例えば、畳み込み)を画像部分の切り取られた部分に適用するように構成されてもよい。これは、機械学習システムの出力から発生される、強調出力画像部分の縁における歪みを排除し得る。例えば、畳み込み動作が、100×100画像部分の98×98の切り取られた部分に3×3フィルタカーネルを用いて実施される場合、98×98の切り取られた部分の縁におけるピクセルに実施される畳み込みは、3×3フィルタカーネル内の位置のそれぞれと整合するピクセルを有するであろう。これは、0値ピクセルで画像部分をパッドすること等の従来の技法と比較して、縁歪みを低減させ得る。
【0148】
いくつかの実施形態では、本システムは、付加的ピクセルを組み込み、システムによって実施されることになる後続の切り取り動作を考慮する、画像部分サイズを判定してもよい(例えば、本システムは、結果として生じる処理された部分をともにスティッチし、完全強調画像を作成することに先立って、画像の強調部分を切り取ってもよい)。例えば、本システムが、続いて、画像部分の切り取られた100×100部分にフィルタリング動作を実施し得るため、本システムは、102×102のサイズを伴う画像部分を取得するように構成されてもよい。フィルタリング動作の間に付加的ピクセルを除去することによって、切り取られた部分は、上記に議論される縁効果がなくなり得る。
【0149】
図4は、いくつかの実施形態による、機械学習システムを訓練するためのプロセス400を示す。プロセス400は、画像内の特定の周波数範囲に関して機械学習システムを最適化するように実施されてもよい。例えば、機械学習システムが人間によって知覚可能である周波数範囲内で最良に機能することを確実にするためである。プロセス400は、画像強調を実施するために使用されるべき機械学習システムを訓練することの一部として(例えば、
図2Aを参照して上記に説明されるプロセス200の一部として)実施されてもよい。プロセス400は、本技術の側面が本点において限定されないため、1つ以上のハードウェアプロセッサを含む、任意のコンピューティングデバイスを使用して実施されてもよい。
【0150】
プロセス400は、システム実施プロセス400が、機械学習システムを訓練するために使用されている画像の訓練セットからの標的画像、および機械学習システムによって発生される対応する出力画像を取得する、ブロック402から開始する。標的画像は、訓練される機械学習システムに従って、対応する暗い画像の標的強調出力を表す、明画像であってもよい。機械学習システムによって発生される出力画像は、機械学習システムの訓練の間に機械学習システムによって発生される、実際の出力画像であってもよい。
【0151】
次に、プロセス400は、本システムが、フィルタを出力画像および標的画像に適用する、ブロック404に進む。いくつかの実施形態では、本システムは、周波数フィルタを出力画像および標的画像に適用し、周波数の1つ以上の特定の範囲をそれぞれ含む、フィルタ処理された標的画像およびフィルタ処理された出力画像を取得してもよい。いくつかの実施形態では、フィルタは、ある範囲内の周波数を通過させ、範囲外の周波数を減衰させる、帯域通過フィルタを備えてもよい。いくつかの実施形態では、周波数範囲は、人間によって知覚可能である周波数の範囲であってもよい。例えば、帯域通過フィルタは、430THz~770THzの範囲内の周波数を通過させてもよい。
【0152】
いくつかの実施形態では、フィルタを出力画像または標的画像のうちの個別のものに適用するために、本システムは、個別の画像を周波数ドメインに変換してもよい。例えば、本システムは、個別の画像をフーリエ変換し、周波数ドメイン内の対応する画像を取得してもよい。フィルタは、周波数ドメイン内の関数として定義されてもよい。フィルタを変換された画像に適用するために、本システムは、フィルタ関数をフーリエ変換された画像で乗算し、フィルタ処理された出力を取得するように構成されてもよい。本システムは、次いで、フィルタ処理された出力の結果を逆フーリエ変換し、フィルタ処理された画像を取得してもよい。
【0153】
次に、プロセス400は、本システムが、フィルタ処理された標的画像および出力画像に基づいて、機械学習システムを訓練する、ブロック406に進む。訓練の間に、機械学習システムによって出力される実際の画像は、機械学習システムの性能を判定するように、訓練セットからの標的画像と比較されてもよい。例えば、本システムは、1つ以上の誤差メトリックに従って、標的画像と出力画像との間の誤差を判定してもよい。誤差メトリックの結果は、訓練の間に機械学習システムの1つ以上のパラメータに行うべき調節を判定するために使用されてもよい。ブロック406では、本システムは、対応するフィルタ処理された出力画像とフィルタ処理された標的画像との間の差に基づいて、出力画像と標的画像との間の誤差を判定してもよい。いくつかの実施形態では、本システムは、フィルタ処理された画像に基づいて、1つ以上の誤差メトリックの値を判定するように構成されてもよい。いくつかの実施形態では、本システムは、フィルタ処理された出力画像とフィルタ処理された標的画像との間のチャネル毎の平均絶対誤差(MAE)を判定するように構成されてもよい。いくつかの実施形態では、本システムは、フィルタ処理された画像の間の二乗平均平方根誤差(RMSE)を判定するように構成されてもよい。いくつかの実施形態は、加えて、または代替として、1つ以上の他の誤差メトリックを使用してもよい。本システムは、次いで、判定された誤差に基づいて、機械学習システムのパラメータへの調節を判定してもよい。例えば、本システムは、本システムが機械学習システムを訓練するように実行している勾配降下アルゴリズムにおける判定された誤差を使用して、調節を判定するように構成されてもよい。
【0154】
フィルタ処理された標的画像とフィルタ処理された出力画像との間の誤差に基づいて、機械学習システムを訓練することによって、本システムは、特定の範囲の周波数に関して機械学習システムの性能を最適化し得る。いくつかの実施形態では、本システムは、人間によって知覚可能である周波数の範囲に関して機械学習システムを最適化するように構成されてもよい。例えば、機械学習システムは、人間によって知覚可能である光波または周波数に関して、より正確に画像を強調するように訓練されてもよい。
【0155】
図5は、いくつかの実施形態による、機械学習システムを訓練するための画像の訓練セットのうちの画像を発生させるためのプロセス500を示す。プロセス500は、機械学習システムの性能への撮像デバイスのコンポーネントからの雑音の影響を低減させるように実施されてもよい。プロセス500は、画像強調を実施するために使用されるべき機械学習システムを訓練することの一部として(例えば、
図2Aを参照して上記に説明されるプロセス200の一部として)実施されてもよい。プロセス500は、本技術の側面が本点において限定されないため、1つ以上のハードウェアプロセッサを含む、任意のコンピューティングデバイスを使用して実施されてもよい。
【0156】
プロセス500は、システム実施プロセス500が、撮像デバイスに対応する1つ以上の雑音画像を取得する、ブロック502から開始する。雑音画像は、撮像デバイスのコンポーネントによって発生される雑音を特徴付け得る。例えば、画像内の雑音が、撮像デバイスの電気回路内の無作為な変動によって引き起こされ得る。いくつかの実施形態では、雑音画像は、ゼロに近い露出において撮像デバイスによって捕捉される画像であってもよい。ゼロに近い露出において捕捉される画像内のピクセル値は、撮像デバイスによって発生される雑音によって引き起こされ得る。いくつかの実施形態では、ゼロに近い露出の画像が、1,000、1,050、1,100、1,150、1,200、1,250、1,300、1,350、1,400、1,450、および/または1,500のISO設定を使用することによって、捕捉され得る。いくつかの実施形態では、ゼロに近い露出の画像が、50、51、52、53、54、55、56、57、58、59、60、61、62、63、64、65、66、67、68、69、または70ミリ秒の露出時間を使用することによって、捕捉され得る。いくつかの実施形態では、ゼロに近い露出の画像が、50ミリ秒、55ミリ秒、60ミリ秒、65ミリ秒、70ミリ秒、75ミリ秒、または80ミリ秒未満の露出時間を使用して、捕捉され得る。いくつかの実施形態では、ゼロに近い露出の画像が、光がレンズに入射しないように防止することによって、捕捉され得る。いくつかの実施形態では、ゼロに近い露出の画像が、本明細書に説明される技法の組み合わせを使用して、捕捉され得る。
【0157】
いくつかの実施形態では、本システムは、撮像デバイスの具体的設定に対応する、1つ以上の雑音画像を取得するように構成されてもよい。いくつかの実施形態では、雑音画像は、撮像デバイスの特定のISO設定に対応し得る。雑音画像は、特定のISO設定を伴って構成されるときに撮像デバイスによって捕捉され得る。このように、本システムは、機械学習システムが、異なるISO設定に関して正確に機能することができるように、種々の異なるISO設定に関して機械学習システムを一般化し得る、訓練セットの中の画像を含んでもよい。
【0158】
次に、プロセス500は、本システムが、雑音画像に対応する、1つ以上の出力標的画像を発生させる、ブロック504に進む。標的画像は、機械学習システムが強調のために機械学習システムに入力される画像内の雑音を扱うことになる方法を表す、画像であってもよい。いくつかの実施形態では、本システムは、0の値を有する全てのピクセルを伴う画像として、標的出力画像を発生させるように構成されてもよい。これは、続いて、機械学習システムを訓練し、強調のために処理される画像内で検出されるセンサ雑音の影響を排除し得る。
【0159】
次に、プロセス500は、本システムが、雑音画像および対応する出力標的画像を使用し、機械学習システムを訓練する、ブロック506に進む。いくつかの実施形態では、本システムは、教師あり学習スキームで機械学習システムを訓練するための画像の訓練セットの一部として、入力画像および出力標的画像を使用するように構成されてもよい。いくつかの実施形態では、本システムは、機械学習システムを訓練し、強調のために機械学習システムによって処理される画像内に存在する雑音の影響を中和してもよい。
【0160】
いくつかの実施形態では、本システムは、雑音画像を訓練セットの1つ以上の入力画像と組み合わせるように構成されてもよい。いくつかの実施形態では、本システムは、雑音画像を入力画像と連結することによって、雑音画像を訓練セットの入力画像と組み合わせるように構成されてもよい。本システムは、入力画像の別個のチャネルとして雑音画像ピクセル値を付加することによって、雑音画像を連結してもよい。例えば、入力画像は、1つの赤色、2つの緑色、および1つの青色チャネルを有してもよい。雑音画像もまた、1つの赤色、2つの緑色、および1つの青色チャネルを有してもよい。雑音画像のチャネルは、付加的チャネルとして付加され、したがって、入力画像に合計8つのチャネル(すなわち、雑音画像の付加された1つの赤色、2つの緑色、および1つの青色チャネルとともに、オリジナルの1つの赤色、2つの緑色、および1つの青色チャネル)を与え得る。いくつかの実施形態では、雑音画像のチャネルは、入力画像のものと異なり得る。
【0161】
いくつかの実施形態では、本システムは、入力画像のピクセル値を雑音画像のものと組み合わせることによって、雑音画像を訓練セットの1つ以上の入力画像と組み合わせるように構成されてもよい。例えば、雑音画像のピクセル値は、入力画像のものに加算される、またはそこから減算されてもよい。別の実施例では、雑音画像のピクセル値は、加重され、次いで、入力画像のピクセル値と組み合わせられてもよい。
【0162】
図6は、本明細書に説明される技術のいくつかの実施形態による、本明細書に説明される技術の側面が実装され得る、例示的システム150を示す。システム150は、ディスプレイ152と、撮像デバイス154と、訓練システム156とを含む。ディスプレイ152は、ビデオデータ158のフレームを表示するために使用される。撮像デバイス154は、ディスプレイ152によって表示されるビデオフレームの画像を捕捉するように構成される。撮像デバイス154は、
図1Aと併せて議論されるように、独立型デジタルカメラ114Aまたはスマートフォン114Bのデジタルカメラ等の任意の撮像デバイスであり得る。訓練システム156は、例えば、
図1Aに示される訓練システム110であってもよく、訓練システム110と併せて説明されるように、機械学習モデルを訓練するために使用される、訓練画像160を発生させることができる。ビデオデータ158は、セットトップボックスを通して、ビデオ再生デバイス(例えば、コンピュータ、DVDプレーヤ、再生能力を伴うビデオレコーダ、および/または同等物)を通して、コンピューティングデバイス(例えば、訓練システム156および/または別個のコンピューティングデバイス)を通して、ならびに/もしくは同等物を通して、ディスプレイ152に提供されてもよい。
【0163】
ディスプレイ152は、ビデオフレームを表示することが可能な任意の光投影機構であり得る。例えば、ディスプレイ152は、発光ダイオード(LED)テレビ(TV)、有機LED(OLED)TV、量子ドット付き液晶ディスプレイ(LCD)(QLED)、プラズマTV、陰極線管(CRT)TV、および/または任意の他のタイプのTV等のTVならびに/もしくはスマートTVであり得る。いくつかの実施形態では、HD TV、4K TV、8K TV等の高解像度TVが、使用されることができる。別の実施例として、ディスプレイ152は、プロジェクタ画面、壁、および/または他の面積上に光を投影するプロジェクタ等のプロジェクタであり得る。
【0164】
撮像デバイス154は、入力画像および標的画像を捕捉するように構成されることができる。例えば、撮像デバイスは、暗い入力画像を捕捉し、弱光条件をシミュレートしてもよい。いくつかの実施形態では、参照オブジェクトの画像が、弱光条件をシミュレートする露出時間を用いて捕捉されてもよい。例えば、参照オブジェクトの画像は、約1ミリ秒、10ミリ秒、20ミリ秒、30ミリ秒、40ミリ秒、50ミリ秒、60ミリ秒、70ミリ秒、80ミリ秒、90ミリ秒、または100ミリ秒の露出時間を用いて捕捉されてもよい。いくつかの実施形態では、参照オブジェクトの画像は、明るい光条件をシミュレートする露出時間を用いて捕捉されてもよい。例えば、参照オブジェクトの画像は、約1分、2分、または10分の露出時間を用いて捕捉されてもよい。
【0165】
いくつかの実施形態では、ビデオデータ158は、弱光条件および/または明るい条件下で場面を捕捉することができる。例えば、いくつかの実施形態では、ビデオデータは、弱光条件において場面のビデオを捕捉することができる。例えば、ビデオは、50ルクス未満の照明を提供する光源を用いて場面を捕捉してもよい。別の実施例として、ビデオデータは、閾値量の照明を用いて(例えば、少なくとも200ルクスの光源を用いて)1つ以上の場面の1つ以上のビデオを捕捉し、捕捉されたビデオのフレームを標的画像として使用することによって、明るい標的画像を捕捉することができる。いくつかの実施形態では、ビデオは、訓練データを発生させるため以外の別の目的のために撮影されるビデオであり得、入力および標的画像ペアを発生させるように、本明細書に説明される技法を使用して処理されることができる。
【0166】
いくつかの実施形態では、ビデオデータ158は、圧縮および/または非圧縮ビデオデータであり得る。例えば、いくつかの実施形態では、非圧縮ビデオデータは、1つ以上の圧縮アーチファクト(例えば、ブロッキング等)を含み得るデータを使用することを回避するために、使用されることができる。いくつかの実施形態では、圧縮ビデオが、圧縮ビデオ内のキーフレームおよび/またはI-フレームを使用すること等によって、使用されることができる。
【0167】
図7は、本明細書に説明される技術のいくつかの実施形態による、訓練データの制御された発生のための例示的プロセス700のフローチャートを示す。方法700は、ディスプレイデバイス(例えば、
図6のディスプレイ152)が、ビデオデータ(例えば、
図6のビデオデータ158)のビデオフレームを表示する、ステップ702から開始する。方法700は、ステップ704に進み、撮像デバイス(例えば、
図6の撮像デバイス154)が、訓練システム156によって訓練されるであろう機械学習モデルの標的出力を表す、表示されたビデオフレームの標的画像(例えば、明るい画像)を捕捉する。方法700は、ステップ706に進み、撮像デバイスは、捕捉された標的画像に対応し、訓練システム156によって訓練されるであろう機械学習モデルへの入力を表す、表示されたビデオフレームの入力画像(例えば、暗い画像)を捕捉する。ステップ704および706は、方法700では、特定の順序で示されるが、任意の順序が、入力および標的画像を捕捉するために使用されることができる(例えば、入力画像が、標的画像に先立って捕捉されることができる、入力画像および標的画像が、同一および/または複数の撮像デバイスを使用して同時に捕捉されることができる等である)ため、これは、例示目的のためにすぎない。
【0168】
方法700は、ステップ708に進み、コンピューティングデバイス(例えば、
図6に示される訓練システム156)が、標的画像および入力画像にアクセスし、標的画像および入力画像を使用して機械学習モデルを訓練し、訓練された機械学習モデルを取得する。いくつかの実施形態では、本システムは、(1)ブロック706において捕捉される入力画像を、訓練データセットの入力として使用し、(2)ブロック704において捕捉される標的画像を、訓練データセットの標的出力として使用し、(3)教師あり学習アルゴリズムを訓練データに適用するように構成されてもよい。個別の入力画像に対応する標的画像は、訓練された機械学習モデルが出力することになる、入力画像の標的強調バージョンを表し得る。
【0169】
ブロック708において機械学習モデルを訓練した後、プロセス700は、終了する。いくつかの実施形態では、本システムは、訓練された機械学習モデルを記憶するように構成されてもよい。本システムは、機械学習モデルの1つ以上の訓練されたパラメータの値を記憶してもよい。実施例として、機械学習モデルは、1つ以上のニューラルネットワークを含んでもよく、本システムは、ニューラルネットワークの訓練された加重の値を記憶してもよい。別の実施例として、機械学習モデルは、畳み込みニューラルネットワークを含み、本システムは、畳み込みニューラルネットワークの1つ以上の訓練されたフィルタを記憶してもよい。いくつかの実施形態では、本システムは、画像(例えば、撮像デバイスによって弱光条件において捕捉される)を強調する際に使用するための訓練された機械学習モデルを(例えば、画像強調システム111内に)記憶するように構成されてもよい。
【0170】
ステップ706からステップ702までの
図7の点線矢印によって示されるように、ビデオの異なるフレームの複数の標的画像および対応する入力画像が、捕捉されることができる。同一のビデオから、および/または複数のビデオからのものを含む、複数の標的画像および入力画像を捕捉し、訓練セットを構築することが望ましくあり得る。したがって、いくつかの実施形態では、本技法は、ビデオの複数および/または全てのフレームの標的および入力画像を捕捉することができる、ならびに/もしくは複数のビデオのフレームの標的および入力画像を捕捉することができる。
【0171】
いくつかの実施形態では、本技法は、室内の唯一の光が、ディスプレイデバイスによって発生される光であるように、制御された部屋または環境で実装されることができる。いくつかの実施形態では、撮像デバイスは、ディスプレイデバイスから放出される光(例えば、TVから放出される光)を捕捉するように構成されることができる。いくつかの実施形態では、撮像デバイスは、プロジェクタからプロジェクタ画面または他の表面上に投影される光等の表面から反射される光を捕捉するように構成されることができる。
【0172】
いくつかの実施形態では、撮像デバイスは、ディスプレイデバイスのフレームレートに基づいて、標的および入力画像を捕捉するように構成されることができる。例えば、ディスプレイは、60Hz、120Hz、および/または同等物等の異なるフレームレートを有してもよい。補償されない場合、撮像デバイスは、エイリアシングを引き起こす様式で画像を捕捉し得る。例えば、ローリングシャッタを使用するとき、いくつかのフレームレートにおいて、ローリングシャッタは、エイリアシング(例えば、ナイキスト周波数を満たすフレームレート)をもたらすように、TVフレームレートと相互作用してもよい。本技法は、エイリアシング効果を回避するサンプリングレートにおいて画像を捕捉するステップを含むことができる。
【0173】
いくつかの実施形態では、本システムは、機械学習モデルが、画像捕捉技術(例えば、カメラモデルまたは画像センサモデル)によって捕捉される画像を強調するように訓練され得るように、特定の画像捕捉技術によって捕捉される入力標的画像を使用するように構成されてもよい。例えば、機械学習モデルは、弱光において画像捕捉技術を使用して捕捉される画像を照明するように訓練されてもよい。機械学習モデルは、機械学習モデルが画像捕捉技術の誤差特性を補正するために最適化され得るように、画像捕捉技術の誤差プロファイルに関して訓練されてもよい。いくつかの実施形態では、本システムは、あるタイプの画像センサから取得されるデータにアクセスするように構成されてもよい。実施例として、本システムは、CMOS画像センサの特定のモデルによって捕捉される標的画像にアクセスしてもよい。いくつかの実施形態では、本システムは、特定のカメラモデルによって捕捉される訓練画像にアクセスするように構成されてもよい。本明細書に説明されるように、例えば、本システムは、Canon EOS Rebel T7i EF-S 18-135カメラおよび/または任意の他のタイプのカメラによって捕捉される標的画像にアクセスしてもよい。いくつかの実施形態は、本明細書に説明される特定のタイプの画像捕捉技術に限定されない。
【0174】
撮像デバイスは、異なる露出時間を使用すること、および/または異なる明度設定においてディスプレイを捕捉すること等によって、種々の技法を使用して、表示されたビデオフレームの標的および入力画像を捕捉することができる。いくつかの実施形態では、撮像デバイスは、異なる露出時間を使用して、標的および入力画像を捕捉することができる。例えば、撮像デバイスは、第1の露出時間を使用して、標的画像を捕捉することができ、第1の露出時間未満である第2の露出時間を使用して、表示されたビデオフレームの入力画像を捕捉することができる。いくつかの実施形態では、撮像デバイスは、閾値量の照明を用いて(例えば、少なくとも200ルクスを用いて)表示されたビデオフレームの画像を捕捉するために十分に長い第1の露出時間を使用することによって、標的画像を捕捉してもよい。いくつかの実施形態では、撮像デバイスは、ある弱光基準を用いて(例えば、50ルクス未満を用いて)入力画像または暗い画像を捕捉してもよい。
【0175】
いくつかの実施形態では、撮像デバイスは、ディスプレイの異なる明度設定を使用して、表示されたビデオフレームの標的および入力画像を捕捉することができる。例えば、撮像デバイスは、ディスプレイが第1の明度においてビデオフレームを表示しているときに標的画像を捕捉することができ、第1の明度よりも暗い第2の明度において入力画像を捕捉することができる。いくつかの実施形態では、ディスプレイの明度は、撮像デバイスが、同一の露出時間を使用して、標的および入力画像を捕捉し得るように、調節されることができる。いくつかの実施形態では、ディスプレイの露出時間および/または明度は、(例えば、ビデオデータが弱光条件または通常/明るい光条件下で捕捉されたかどうかに応じて)基礎的ビデオが捕捉された方法に基づいて、調節されることができる。
【0176】
いくつかの実施形態では、TVの明度は、正確な色を伴って関連付けられるルクス値をそれぞれ反映する、明度値を判定するように、プロファイルされることができる。例えば、TVは、0~100、0~50、および/または同等物等の所定の範囲から調節され得る、明度値のみを有し得る。明度が、増加されるにつれて、各色のルクスが、同様に直線様式で増加するように、明度が0から100まで変化するにつれて、ディスプレイのRGB値のルクスが、本質的に直線的に増加することが、予期されるはずである。しかしながら、本発明者らは、TV上の明度値を変化させるときに、種々の明度レベルに関するRGB値が、異なるプロファイルを有し得、レベル毎に直線的に変化しない場合があることを発見および認識している。したがって、いくつかのTVに関して、明度設定とともに直線的に増加する代わりに、RGBルクス値は、いくつかの点において迅速に、次いで、他の点においてゆっくりと増加し得る。例えば、低明度設定(例えば、5、7、10等)に関して、ディスプレイは、0.5ルクスにおいて表示される暗い場面が、実際の光では0.5ルクスにおいて場面と同一ではない場合があるように、その明度レベルに関してTVのある色を(正確に)表現することができない場合がある。別の実施例として、高明度設定(例えば、60、70、80)に関して、ディスプレイはまた、ある色を正確に表現することができない場合がある。
【0177】
いくつかの実施形態では、較正プロセスが、種々の訓練画像を捕捉するために使用するべきTVの明度レベルを判定するために、使用されることができる。例えば、ルクスメータが、明度レベルを較正するために使用されることができる。いくつかの実施形態では、ディスプレイデバイスは、較正プロセスの一部としてカラーチャートを表示し、特定の明度/ルクスレベルが正確なRGB値(例えば、同一のレベルのルクス照明下で場面を視認する場合のようなものに類似するRGB値)を出力するかどうかを判定することができる。カラーチャートは、例えば、0~100に及ぶ、赤色、青色、緑色、および黒色(白色までの)バー等の種々のバーを含んでもよい。判定された較正プロファイルは、保存され、暗い画像を捕捉するための適切な明度設定および明るい画像を捕捉するための適切な明度設定等の種々のタイプの画像を捕捉するときに、TVに関する適切な明度設定を判定するために使用されることができる。
【0178】
図8は、本明細書に説明される技術のいくつかの実施形態による、画像を強調するためのプロセス700から取得される、訓練された機械学習モデルを使用するための例示的プロセス800を図示する。プロセス800は、任意の好適なコンピューティングデバイスによって実施されてもよい。実施例として、プロセス800は、
図1A-Bを参照して説明される画像強調システム111によって実施されてもよい。
【0179】
プロセス800は、本システムが、強調するべき画像にアクセスする、ブロック802から開始する。いくつかの実施形態では、本システムは、撮像デバイス(例えば、デジタルカメラまたはその画像センサ)によって捕捉される画像にアクセスするように構成されてもよい。例えば、本システムは、デバイスが場面の写真を捕捉するために使用されるときに、捕捉される画像にアクセスしてもよい。別の実施例として、本システムは、デバイスがビデオを捕捉するために使用されるときに、ビデオのフレームにアクセスしてもよい。いくつかの実施形態では、本システムは、(例えば、
図1Bを参照して上記に説明されるように)デバイスが画像処理を捕捉された画像に適用する前に、画像にアクセスするように構成されてもよい。いくつかの実施形態では、本システムは、デバイスによって(例えば、スマートフォンのデジタルカメラによって)捕捉される画像にアクセスする、デバイス(例えば、スマートフォン)上にインストールされたアプリケーションを含んでもよい。アプリケーションは、捕捉された画像がユーザに表示される前に、画像にアクセスしてもよい。
【0180】
次に、プロセス800は、本システムが、ブロック802においてアクセスされる画像を訓練された機械学習モデルに提供する、ブロック804に進む。例えば、本システムは、ブロック802においてアクセスされる画像を、
図7を参照して本明細書に説明されるプロセス700を使用して訓練される機械学習モデルに提供してもよい。いくつかの実施形態では、本システムは、画像ピクセル値を機械学習モデルへの入力として提供することによって、画像を機械学習モデルへの入力として提供するように構成されてもよい。例えば、画像は、1,000×1,000ピクセル画像であってもよい。本システムは、機械学習モデルへの入力として、ピクセルのそれぞれにおいてピクセル値を提供してもよい。いくつかの実施形態では、本システムは、画像をピクセル値のセットに平坦化するように構成されてもよい。例えば、本システムは、(1)500×500ピクセル画像をピクセル値の250,000×1アレイに平坦化し、(2)機械学習モデルへの入力としてアレイを提供してもよい。例証すると、機械学習モデル(例えば、CNN)は、複数の入力を有してもよい。本システムは、複数の入力として画像からピクセル値を提供するように構成されてもよい。
【0181】
いくつかの実施形態では、本システムは、(1)画像を複数の部分に分割し、(2)各部分を機械学習モデルへの入力として提供することによって、画像を機械学習モデルへの入力として提供するように構成されてもよい。例えば、本システムは、画像の一部のそれぞれのピクセル値を機械学習モデルへの入力として提供してもよい。本システムは、画像の一部のピクセル値をアレイとして機械学習モデルに入力してもよい。
【0182】
いくつかの実施形態では、本システムは、機械学習モデルに提供される入力画像に対応する、強調出力画像を取得するように構成されてもよい。いくつかの実施形態では、本システムは、(1)強調されるべき画像のピクセル値を機械学習モデルに提供することに応答して、複数のピクセル値を取得し、(2)取得されたピクセル値から強調画像を発生させることによって、強調出力画像を取得するように構成されてもよい。例えば、機械学習モデルは、本明細書に説明されるようなCNNであってもよい。本実施例では、ピクセル値は、CNNの第1の畳み込み層への入力として提供されてもよい。
【0183】
ブロック804において画像を機械学習モデルへの入力として提供した後に、プロセス800は、本システムが、機械学習モデルの出力から強調画像を取得する、ブロック806に進む。いくつかの実施形態では、本システムは、機械学習モデルから、強調画像のピクセル値を取得するように構成されてもよい。例えば、機械学習モデルは、500×500出力画像のピクセルにおいてピクセル値を規定する、ピクセル値の250,000×1アレイを出力してもよい。いくつかの実施形態では、本システムは、(1)機械学習モデルから入力画像の複数の部分の強調バージョンを取得し、(2)強調画像部分を組み合わせ、強調画像を発生させるように構成されてもよい。画像部分を機械学習モデルへの入力として提供し、入力画像部分に対応する出力を組み合わせるための例示的プロセスが、
図5B-Cを参照して本明細書に説明される。
【0184】
いくつかの実施形態では、本システムが機械学習モデルの出力から強調画像を取得した後、プロセス800は、終了する。例えば、本システムは、強調画像を出力してもよい。いくつかの実施形態では、本システムは、強調画像を記憶するように構成されてもよい。例えば、本システムは、デバイス(例えば、スマートフォン)のハードドライブ上に強調画像を記憶してもよい。いくつかの実施形態では、本システムは、付加的画像処理のために強調画像をパスするように構成されてもよい。例えば、デバイスは、機械学習モデルから取得される強調画像に適用され得る、写真に適用される付加的画像強調処理を有してもよい。
【0185】
いくつかの実施形態では、機械学習モデルの出力から強調画像を取得した後、プロセス800は、(ブロック806からブロック802までの鎖線によって示されるように)本システムが、強調するべき別の画像にアクセスする、ブロック802に戻る。例えば、本システムは、撮像デバイスによって捕捉されている、または前もって捕捉されたビデオから、一連のビデオフレームを受信してもよい。本システムは、ブロック802-806のステップをビデオの各フレームに実施するように構成されてもよい。いくつかの実施形態では、本システムは、ビデオのフィードを視聴するデバイスのユーザが、強調ビデオフレームを視聴し得るように、リアルタイムで各ビデオフレームを強調してもよい。ビデオが、弱光において(例えば、日没後に屋外で)捕捉されている場合、本システムは、撮像デバイスのディスプレイ上で視聴されているビデオが強調される(例えば、色が明るくされる)ように、捕捉されているビデオの各フレームを強調してもよい。別の実施例として、本システムは、ブロック802-806のステップを撮像デバイスによって捕捉される一連の写真に実施してもよい。
【0186】
図9は、種々の側面が実装され得る、特別に構成された分散コンピュータシステム900のブロック図を示す。示されるように、分散コンピュータシステム900は、情報を交換する、1つ以上のコンピュータシステムを含む。より具体的には、分散コンピュータシステム900は、コンピュータシステム902、904、および906を含む。示されるように、コンピュータシステム902、904、および906は、通信ネットワーク908によって相互接続され、それを通してデータを交換してもよい。ネットワーク908は、それを通してコンピュータシステムがデータを交換し得る、任意の通信ネットワークを含んでもよい。ネットワーク908を使用して、データを交換するために、コンピュータシステム902、904、および906、ならびにネットワーク908は、とりわけ、ファイバチャネル、トークンリング、イーサネット(登録商標)、無線イーサネット、Bluetooth(登録商標)、IP、IPV6、TCP/IP、UDP、DTN、HTTP、FTP、SNMP、SMS、MMS、SS6、JSON、SOAP、CORBA、REST、およびウェブサービスを含む、種々の方法、プロトコル、および規格を使用してもよい。データ転送がセキュアであることを確実にするために、コンピュータシステム902、904、および906は、例えば、SSLまたはVPN技術を含む、種々のセキュリティ対策を使用して、ネットワーク908を介してデータを伝送してもよい。分散コンピュータシステム900は、3つのネットワーク化されたコンピュータシステムを図示するが、分散コンピュータシステム900は、そのように限定されず、任意の媒体および通信プロトコルを使用してネットワーク化される、任意の数のコンピュータシステムおよびコンピューティングデバイスを含んでもよい。
【0187】
図9に図示されるように、コンピュータシステム902は、プロセッサ910と、メモリ912と、相互接続要素914と、インターフェース916と、データ記憶要素918とを含む。本明細書に開示される側面、機能、およびプロセスのうちの少なくともいくつかを実装するために、プロセッサ910は、操作されたデータをもたらす、一連の命令を実施する。プロセッサ910は、任意のタイプのプロセッサ、マルチプロセッサ、またはコントローラであってもよい。例示的プロセッサは、Intel Xeon、Itanium、Core、Celeron、またはPentium(登録商標)プロセッサ、AMD Opteronプロセッサ、Apple A10またはA5プロセッサ、Sun Ultra SPARCプロセッサ、IBM Power5+プロセッサ、IBMメインフレームチップ、もしくは量子コンピュータ等の市販のプロセッサを含んでもよい。プロセッサ910は、相互接続要素914によって、1つ以上のメモリデバイス912を含む、他のシステムコンポーネントに接続される。
【0188】
メモリ912は、コンピュータシステム902の動作の間に、プログラム(例えば、プロセッサ910によって実行可能となるようにコード化される一連の命令)およびデータを記憶する。したがって、メモリ912は、ダイナミックランダムアクセスメモリ(「DRAM」)またはスタティックメモリ(「SRAM」)等の比較的に高性能で揮発性のランダムアクセスメモリであってもよい。しかしながら、メモリ912は、ディスクドライブまたは他の不揮発性記憶デバイス等のデータを記憶するための任意のデバイスを含んでもよい。種々の実施例は、メモリ912を、特定化された、ある場合には、一意の構造に編成し、本明細書に開示される機能を実施してもよい。これらのデータ構造は、特定のデータおよびタイプのデータに関する値を記憶するように定寸および/または編成されてもよい。
【0189】
コンピュータシステム902のコンポーネントが、相互接続機構914等の相互接続要素によって結合される。相互接続要素914は、IDE、SCSI、PCI、およびInfiniBand等の特殊または標準コンピューティングバス技術に準拠する1つ以上の物理的バス等のシステムコンポーネントの間の任意の通信結合を含んでもよい。相互接続要素914は、命令およびデータを含む通信が、コンピュータシステム902のシステムコンポーネントの間で交換されることを可能にする。
【0190】
コンピュータシステム902はまた、入力デバイス、出力デバイス、および複合入出力デバイス等の1つ以上のインターフェースデバイス916を含む。インターフェースデバイスは、入力を受信する、または出力を提供してもよい。より具体的には、出力デバイスは、外部提示のために情報をレンダリングしてもよい。入力デバイスは、外部ソースから情報を受け取ってもよい。インターフェースデバイスの実施例は、キーボード、マウスデバイス、トラックボール、マイクロホン、タッチスクリーン、印刷デバイス、ディスプレイ画面、スピーカ、ネットワークインターフェースカード等を含む。インターフェースデバイスは、コンピュータシステム902が、情報を交換すること、およびユーザならびに他のシステム等の外部エンティティと通信することを可能にする。
【0191】
データ記憶要素918は、プロセッサ910によって実行されるプログラムまたは他のオブジェクトを定義する命令が記憶される、コンピュータ可読および書込可能な不揮発性または非一過性のデータ記憶媒体を含む。データ記憶要素918はまた、媒体上または内に記録され、プログラムの実行の間にプロセッサ910によって処理される、情報を含んでもよい。より具体的には、情報は、記憶空間を節約する、またはデータ交換性能を増加させるように具体的に構成される、1つ以上のデータ構造内に記憶されてもよい。命令は、エンコードされた信号として持続的に記憶されてもよく、命令は、プロセッサ910に、本明細書に説明される機能のうちのいずれかを実施させてもよい。媒体は、例えば、とりわけ、光ディスク、磁気ディスク、またはフラッシュメモリであってもよい。動作時、プロセッサ910またはある他のコントローラは、データを、不揮発性記録媒体から、データ記憶要素918内に含まれる記憶媒体よりも速いプロセッサ910による情報へのアクセスを可能にする、メモリ912等の別のメモリに読み込ませる。メモリは、データ記憶要素918内またはメモリ912内に位置してもよいが、しかしながら、プロセッサ910は、メモリ内のデータを操作し、次いで、処理が完了した後に、データをデータ記憶要素918と関連付けられる記憶媒体にコピーする。種々のコンポーネントが、記憶媒体と他のメモリ要素との間のデータ移動を管理してもよく、実施例は、特定のデータ管理コンポーネントに限定されない。さらに、実施例は、特定のメモリシステムまたはデータ記憶システムに限定されない。
【0192】
コンピュータシステム902は、種々の側面および機能が実践され得る、1つのタイプのコンピュータシステムとして、一例として示されるが、側面および機能は、
図9に示されるようにコンピュータシステム902上に実装されることに限定されない。種々の側面および機能が、
図9に示されるものと異なるアーキテクチャまたはコンポーネントを有する、1つ以上のコンピュータ上で実践されてもよい。例えば、コンピュータシステム902は、本明細書に開示される特定の動作を実施するように合わせられる、特定用途向け集積回路(「ASIC」)等の特別にプログラムされた特殊用途ハードウェアを含んでもよい。別の実施例が、Motorola PowerPCプロセッサとともにMAC OS System Xを起動する、いくつかの特殊用途コンピューティングデバイス、および専用ハードウェアならびにオペレーティングシステムを起動する、いくつかの特殊コンピューティングデバイスのグリッドを使用して、同一の機能を実施してもよい。
【0193】
コンピュータシステム902は、コンピュータシステム902内に含まれるハードウェア要素の少なくとも一部を管理する、オペレーティングシステムを含む、コンピュータシステムであってもよい。いくつかの実施例では、プロセッサ910等のプロセッサまたはコントローラが、オペレーティングシステムを実行する。実行され得る特定のオペレーティングシステムの実施例は、Microsoft Corporationから入手可能である、Windows(登録商標) NT、Windows(登録商標) 2000(Windows(登録商標) ME)、Windows(登録商標) XP、Windows(登録商標) Vista、またはWindows(登録商標) 6、8、もしくは6オペレーティングシステム等のWindows(登録商標)ベースのオペレーティングシステム、Apple Computerから入手可能である、MAC OS System XオペレーティングシステムまたはiOSオペレーティングシステム、多くのLinux(登録商標)ベースのオペレーティングシステム配布のうちの1つ、例えば、Red Hat Inc.から入手可能であるEnterprise Linux(登録商標)オペレーティングシステム、Oracle Corporationから入手可能であるSolarisオペレーティングシステム、もしくは種々のソースから入手可能であるUNIX(登録商標)オペレーティングシステムを含む。多くの他のオペレーティングシステムも、使用されてもよく、実施例は、いずれの特定のオペレーティングシステムにも限定されない。
【0194】
プロセッサ910およびオペレーティングシステムはともに、高レベルプログラミング言語におけるアプリケーションプログラムが書かれる、コンピュータプラットフォームを定義する。これらのコンポーネントアプリケーションは、通信プロトコル、例えば、TCP/IPを使用して、通信ネットワーク、例えば、インターネットを経由して通信する、実行可能、中間、バイトコード、またはインタープリタ型コードであってもよい。同様に、側面が、.Net、SmallTalk、Java(登録商標)、C++、Ada,C#(C-Sharp)、Python、またはJavaScript(登録商標)等のオブジェクト指向プログラミング言語を使用して、実装されてもよい。他のオブジェクト指向プログラミング言語もまた、使用されてもよい。代替として、機能、スクリプト、または論理プログラミング言語が、使用されてもよい。
【0195】
加えて、種々の側面および機能が、プログラムされていない環境で実装されてもよい。例えば、HTML、XML、または他の形式で作成される文書は、ブラウザプログラムのウィンドウ内で閲覧されたときに、グラフィカルユーザインターフェースの側面をレンダリングする、または他の機能を実施することができる。さらに、種々の実施例が、プログラムされた、またはプログラムされていない要素、もしくはそれらの任意の組み合わせとして実装されてもよい。例えば、ウェブページが、HTMLを使用して実装されてもよい一方で、ウェブページ内から呼び出されるデータオブジェクトは、C++で書かれてもよい。したがって、実施例は、具体的プログラミング言語に限定されず、任意の好適なプログラミング言語が、使用され得る。故に、本明細書に開示される機能コンポーネントは、本明細書に説明される機能を実施するように構成される、多種多様な要素(例えば、特殊ハードウェア、実行可能コード、データ構造、またはオブジェクト)を含んでもよい。
【0196】
いくつかの実施例では、本明細書に開示されるコンポーネントは、コンポーネントによって実施される機能に影響を及ぼす、パラメータを読み取ってもよい。これらのパラメータは、揮発性メモリ(RAM等)または不揮発性メモリ(磁気ハードドライブ等)を含む、任意の形態の好適なメモリ内に物理的に記憶されてもよい。加えて、パラメータは、専用データ構造(ユーザスペースアプリケーションによって定義されるデータベースもしくはファイル等)内に、または一般的に共有されるデータ構造(オペレーティングシステムによって定義されるアプリケーションレジストリ等)内に論理的に記憶されてもよい。加えて、いくつかの実施例は、外部エンティティがパラメータを修正することを可能にし、それによって、コンポーネントの挙動を構成する、システムおよびユーザインターフェースの両方を提供する。
【0197】
前述の開示に基づいて、本明細書に開示される実施形態は、特定のコンピュータシステムプラットフォーム、プロセッサ、オペレーティングシステム、ネットワーク、または通信プロトコルに限定されないことが、当業者に明白となるべきである。また、本明細書に開示される実施形態は、具体的アーキテクチャに限定されないことが、明白となるべきである。
【0198】
本明細書に説明される方法および装置の実施形態は、以下の説明に記載される、または付随する図面に図示される、構造およびコンポーネントの配列の詳細に用途において限定されないことを理解されたい。方法および装置は、他の実施形態における実装、および種々の方法で実践されること、または実行されることが可能である。具体的実装の実施例が、例証目的のためのみに本明細書に提供され、限定的であることを意図していない。特に、いずれか1つ以上の実施形態に関連して説明される行為、要素、および特徴は、任意の他の実施形態において類似する役割から除外されることを意図していない。
【0199】
用語「約」、「実質的に」、および「およそ」は、いくつかの実施形態では、標的値の±20%以内、いくつかの実施形態では、標的値の±10%以内、いくつかの実施形態では、標的値の±5%以内、さらに、いくつかの実施形態では、標的値の±2%以内を意味するために使用されてもよい。用語「約」および「およそ」は、標的値を含んでもよい。
【0200】
このように、本発明の少なくとも1つの実施形態のいくつかの側面を説明したが、種々の改変、修正、および改良が、当業者に容易に想起されるであろうことを理解されたい。そのような改変、修正、および改良は、本開示の一部であることを意図しており、本発明の精神および範囲内に該当することを意図している。故に、前述の説明および図面は、一例にすぎない。